2.4 KiB
2.4 KiB
libScePad technical debt
Unknown function info
- 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 - scePadSetVibrationMode (libScePad) - modes 0 to 3 are accepted and stored; the meaning of mode 3 is unknown (PPSA21480 calls it with 3 right after
scePadOpenand 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