mirror of
https://github.com/boykopovar/AnyPS5.git
synced 2026-10-18 23:07:07 -05:00
5.1 KiB
5.1 KiB
libScePad technical debt
Unknown function info
- scePadUnknown_n3kSX62fgNo (libScePad, NID
n3kSX62fgNo) - firmware 13.60 returned0x80920005beforescePadInitand0x809200ffafter it in the #3177 probe; the tested call read or wrote no argument pointers. PPSA15645 calls the import afterscePadOpen, but its return and side effects in that state are unknown. The NID name and signature are unknown, so the statuses are not named by presumed error meanings - scePadSetAngularVelocityDeadbandState (libScePad) - with the deadband on, each angular velocity axis whose magnitude is below 0.017453292 rad/s (1 degree per second) reads as 0, before the orientation is integrated; it starts off. Threshold, per-axis test and default follow duaLib, which reimplements the PC
libScePad.dll; the console's threshold is not measured, and the deadband is kept per library rather than per handle since one pad handle exists - scePadOpen and scePadOpenExt (libScePad) - special ports (type 2) return
DEVICE_NOT_CONNECTED(0x80920007) because the host has no special controller, andscePadGetHandlehas no handle for them; whether the console opens a handle and reports the device as disconnected later is unknown. scePadOpenExt handles only special ports. PPSA01317 passes a 16-byte param that names the device by vendor and product id (b7 0e 04 0e ...for 0x0eb7:0x0e04) and skips the user on any negative result. Other port types throw - scePadVrControllerReadState (libScePad, NID
iA-DdobUen8) - the name hashes to the imported NID; the(int handle, void* state)signature follows PS5VR (PPSA99177), which passes a PS VR2 Sense controller handle fromscePadOpentype 3 or 4 and a 0x68-byte state it reads as buttons at 0, stick bytes at 4 and a connected byte at 0x40. The title calls it only aftersceHmd2Initializesucceeds, which it does not here, so every call throws; the state layout is otherwise unknown - PPSA07411 PS VR2 imports declared without parameters, signatures unknown, added without an implementation because the title fails to load without them: scePadVrControllerSetVibration, scePadVrControllerSetVibrationMode and scePadVrControllerReadCombinedState (libScePad) and sceVrTracker2ResetLocalCoordinate (libSceVrTracker2)
- scePadSetVibrationMode (libScePad) - modes 1 to 3 and 5 are accepted and stored. On a PS5 (firmware 13.60) the call returns
0x80920005beforescePadInit, then rejects a mode of 0 or below withINVALID_ARGbefore it checks the handle, and returnsINVALID_HANDLEfor a bad handle with any higher mode; whether an open handle accepts modes above 3 was not measured, since the payload could not open a pad; 5 is accepted because PPSA25286 passes it on its open handle at start-up; the meanings of modes 3 and 5 are unknown (PPSA21480 calls it with 3 right afterscePadOpenand aborts on failure; SharpProspero names only 1 and 2). The stored mode has no other effect - scePadIsRemoteController (libScePad) - the name hashes to NID
fCWdlnmB1Ks; the signature(int handle, bool* remote)comes from PPSA16064, which zeroes a byte, passes its address afterscePadGetControllerInformationand ignores the result. The error codes follow the other pad calls. Controllers are local devices, so the answer is always false - scePadSetAngularVelocityBiasCorrectionState (libScePad) - inferred signature
(int handle, bool enabled)followsscePadSetTiltCorrectionStateandscePadSetAngularVelocityDeadbandState; an invalid handle returnsPAD_ERROR_INVALID_HANDLE, disabling is a no-op, and enabling throws because bias correction is not modelled - scePadUnknown_zBsgF0q8DIM (libScePad, NID
zBsgF0q8DIM) - PPSA03671 imports it and fails to load without it. The aerolib list has no name for the NID, and none of the pad names in SharpProspero, shadPS4 or OpenOrbis, nor the trigger effect, motion sensor, VR controller, HD and haptic names tried, hashes to it. It is declared without parameters and throws. The title's executable has an import stub for it but no call, jump or address reference to that stub, so the argument count and whether the result is used are unknown - scePadUnknown_n3kSX62fgNo (libScePad, NID
n3kSX62fgNo) - PPSA01530 and PPSA13356 import it and fail to load without it. The real name is unknown; it is declared without parameters and throws