mirror of
https://github.com/boykopovar/AnyPS5.git
synced 2026-11-04 13:07:32 +00:00
The hmd2s and hmd2n sweeps left 19 libSceHmd2 exports that either write into their arguments or take a slot number rather than a pointer first. A third probe called the writers with zero-filled and with 0xAA-filled buffers, dumping every byte that changed, and the slot exports with a first argument of 0, 1, 2, 3, 4, 5, 8, 16, 255 and -1. Before sceHmd2Initialize, six writers put fixed bytes in their output (a 2 and a zero byte; 0x2000 and 0x100 as 64-bit sizes; four floats; six or twelve floats of 0 and 0.5 followed by 0x8a720003), and twelve exports accept a slot of 0 to 1, 2 or 3 and answer 0x8a720009 above it, with 0, -1, 0x8a721002, 0x8a721003, 0x8a72002c or 0x8a72100f for a valid slot. They are bound here, by NID, to 14 handlers with the measured checks, returning their value while the library is not initialized and throwing if sceHmd2Initialize ever succeeds. The one export whose answer depends on the contents of an in-out structure stays unimplemented and is described in the debt file. Co-Authored-By: Claude Fable 5.1 <[email protected]>