Repository navigation
feat(libScePad): declare the unknown import zBsgF0q8DIM - #4962
Merged
oneandonlydean merged 1 commit intoOct 14, 2026
Merged
oneandonlydean merged 1 commit into
oneandonlydean merged 1 commit into
Conversation
9 tasks done
fdfawef324
force-pushed
the
feat/libScePad-unknown-zBsgF0q8DIM
branch
3 times, most recently
from
October 13, 2026 21:56
abc20fd to
b917748
Compare
fdfawef324
force-pushed
the
feat/libScePad-unknown-zBsgF0q8DIM
branch
2 times, most recently
from
October 14, 2026 00:58
bc73762 to
4050705
Compare
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 <noreply@anthropic.com>
fdfawef324
force-pushed
the
feat/libScePad-unknown-zBsgF0q8DIM
branch
from
October 14, 2026 02:49
4050705 to
babc68d
Compare
12 tasks done
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What
Marvel's Wolverine (PPSA03671) stops at load with
unresolved ELF import zBsgF0q8DIM from libScePad.prx. This exports that NID from libScePad asscePadUnknown_zBsgF0q8DIM, followingscePadUnknown_n3kSX62fgNo:APS5_EXPORTwith the NID, declared without parameters, and the body callsNotImplemented_nid_no_patch(__func__). With this change,tools/import_audit.pyover the title's registries lists no absent import (the title was not run with it), and a call fails with a clear NotImplemented error naming the export.The name is still unknown. The aerolib list pinned in
tools/nid_names.pyhas no entry for the NID. I hashed withcompute_nid, and nothing matched:scePad*name in SharpProspero (Interop/Pad/Pad.cs), shadPS4 (src/core/libraries/pad/pad.h,pad.cpp), OpenOrbis (include/orbis/Pad.h,PadTracker.h, the Pad docs page), aerolib and ourExport.cpp;scePad*/scePadVrController*/scePadHd*/scePadHaptic*/sceUser*combinations of common verbs, nouns (trigger effect and its states, motion sensor state, angular velocity, tilt correction, vibration, haptics, HD, audio, light bar, player LED, controller and device information, and others) and suffixes (Ext,Ext2,ForMultiplePads,State(s)and others).How the title calls it: the executable has an import stub for this NID, but no direct call or jump to that stub, no RIP-relative reference to it or to its GOT slot (other than from the stub itself), and no absolute copy of its address. With the same scan, the stubs for
scePadReadStateandscePadSetTriggerEffectdo show their callers. So the argument count and whether the result is used could not be found, and the debt entry says so. It goes under Unknown function info indocs/dev/debt/libScePad.md.No test is added. Main declared the PPSA02530 and PPSA29866 imports without one, and
GuestPPSA01530Exports.cpponly calls each declared name and expects the genericnot implementederror. A missing export already fails at startup, so adding to that list would be the export-only test CONTRIBUTING forbids.Overlap: #4620 (open) also adds libScePad stubs and edits
docs/dev/debt/libScePad.md. None of its 23 names hashes to this NID, but the two may conflict textually at the end of both files.Tested
Windows Server 2025, WinLibs GCC 15.2.0, Release,
mainea2bbef plus this commit:tools/import_audit.pyover copies of the title's registries (appplus the libc, libRenoirCore, libcohtml and libSceNpCppWebApi guest registries), with the title's own modules passed as--modules. Onmain, 1 import is absent (zBsgF0q8DIM, libScePad). With this change, 0 are absent and the import is listed as a throwing stub. The other 13 throwing stubs the title imports are unchanged: sceAcmBatchJobPriority, sceAgcDriverRequestCaptureStart/Stop, sceAudioOut2Set3DLatency, sceAudioOut2MasteringInit/SetParam, sceSaveDataGetConvertProgress, sceSaveDataCancel, _umtx_op, sceCoredumpGetStopInfoGpu_Agc, sceCoredumpSetUserDataType, sceCoredumpGetStopInfoCpu, __tls_get_addr.guest_padandguest_ppsa01530_exportspass.tools/check_conventions.pypasses.The title was not run.
Checklist
main; no other open PR implements the same functionsNotImplemented_nid_no_patch); silent stubs are listed under Silent stubs in their library's technical debt file.mdfiles or images added to the repository (attach them to this PR)🤖 Generated with Claude Code