From babc68df7454fd93869e3ceff258374caa16f3b8 Mon Sep 17 00:00:00 2001 From: fdfawef324 <287205748+fdfawef324@users.noreply.github.com> Date: Tue, 13 Oct 2026 02:08:25 -0400 Subject: [PATCH] feat(libScePad): declare the unknown import zBsgF0q8DIM PPSA03671 fails to load because no library exports NID zBsgF0q8DIM from libScePad. The NID database has no name for it and no candidate pad name hashes to it, so it is exported under its NID as scePadUnknown_zBsgF0q8DIM, declared without parameters, and throws when called. Adds an Unknown function info entry to the libScePad debt file. Co-Authored-By: Claude Opus 5.5 --- core/libs/prx/libScePad/Export.cpp | 6 ++++++ docs/dev/debt/libScePad.md | 1 + 2 files changed, 7 insertions(+) diff --git a/core/libs/prx/libScePad/Export.cpp b/core/libs/prx/libScePad/Export.cpp index db18fe77d6..bc8838e917 100644 --- a/core/libs/prx/libScePad/Export.cpp +++ b/core/libs/prx/libScePad/Export.cpp @@ -319,4 +319,10 @@ int APS5_VABI scePadVrControllerGetTriggerEffectStates(void) { return 0; } +APS5_EXPORT("zBsgF0q8DIM", scePadUnknown_zBsgF0q8DIM); +int APS5_VABI scePadUnknown_zBsgF0q8DIM() { + NotImplemented_nid_no_patch(__func__); + return 0; +} + } diff --git a/docs/dev/debt/libScePad.md b/docs/dev/debt/libScePad.md index 8cfd5341d6..04435c2849 100644 --- a/docs/dev/debt/libScePad.md +++ b/docs/dev/debt/libScePad.md @@ -8,3 +8,4 @@ - [scePadSetVibrationMode](../../../core/libs/prx/libScePad/Export.cpp) (libScePad) - modes 0 to 3 are accepted and stored; the meaning of mode 3 is unknown (PPSA21480 calls it with 3 right after `scePadOpen` and aborts on failure; [SharpProspero](https://github.com/SvenGDK/SharpProspero/blob/main/src/SharpProspero/Interop/Pad/Pad.cs) names only 1 and 2). The stored mode has no other effect - [scePadIsRemoteController](../../../core/libs/prx/libScePad/Export.cpp) (libScePad) - the name hashes to NID `fCWdlnmB1Ks`; the signature `(int handle, bool* remote)` comes from PPSA16064, which zeroes a byte, passes its address after `scePadGetControllerInformation` and ignores the result. The error codes follow the other pad calls. Controllers are local devices, so the answer is always false - [scePadSetAngularVelocityBiasCorrectionState](../../../core/libs/prx/libScePad/Export.cpp) (libScePad) - inferred signature `(int handle, bool enabled)` follows `scePadSetTiltCorrectionState` and `scePadSetAngularVelocityDeadbandState`; an invalid handle returns `PAD_ERROR_INVALID_HANDLE`, disabling is a no-op, and enabling throws because bias correction is not modelled +- [scePadUnknown_zBsgF0q8DIM](../../../core/libs/prx/libScePad/Export.cpp) (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