mirror of
https://github.com/boykopovar/AnyPS5.git
synced 2026-10-23 09:03:22 -05:00
AnyPS5 resolves a title's imports by NID, so a title that imports a system function that no AnyPS5 library provides fails to load with an unresolved import. This declares 222 such exports across 11 PS5 system libraries that AnyPS5 implements but does not provide. Each declaration calls NotImplemented_nid_no_patch and returns 0; none of them implements the function. A declaration with a credible prototype uses it and cites the source with a pinned commit; the rest are declared without parameters, which resolves the import without making an ABI claim. The technical-debt files record the limitation per library. The list is the intersection of the export table of the console's library (function symbols only), the pinned aerolib names and the functions not yet defined anywhere in the repo. Every name recomputes to its NID with tools/nid_names.py. libSceAudio3d and libSceVoice are left out because #8331 declares them.
3.6 KiB
3.6 KiB
libSceSharePlay technical debt
Unknown function info
- sceSharePlayCrashDaemon, sceSharePlayGetCurrentConnectionInfo, sceSharePlayGetCurrentInfo, sceSharePlayGetEvent, sceSharePlayNotifyDialogOpen, sceSharePlayNotifyForceCloseForCdlg, sceSharePlayResumeScreenForCdlg, sceSharePlayServerLock (libSceSharePlay) - the list is the intersection of the export table of the console's libSceSharePlay (function symbols only), the pinned aerolib names and the functions not yet defined anywhere in the repo. No credible prototypes were found; they are declared without parameters solely to resolve known imports, not as an ABI claim, and callers must not call them until signatures are verified.
- sceSharePlayServerUnLock, sceSharePlaySetMode, sceSharePlaySetProhibition, sceSharePlaySetProhibitionModeWithAppId, sceSharePlayStartStandby, sceSharePlayStartStreaming, sceSharePlayStopStandby, sceSharePlayStopStreaming (libSceSharePlay) - the list is the intersection of the export table of the console's libSceSharePlay (function symbols only), the pinned aerolib names and the functions not yet defined anywhere in the repo. No credible prototypes were found; they are declared without parameters solely to resolve known imports, not as an ABI claim, and callers must not call them until signatures are verified.
- sceSharePlayInitialize (libSceSharePlay) - the library keeps no state, so the heap is not used. A null heap is accepted: PPSA11386 passes a null heap and 0x1800 bytes and stops on any non-zero result. The error for a zero size is unknown, so it throws
Functional
- sceSharePlayGetCurrentConnectionInfoA (libSceSharePlay) - reports no Share Play session, as the library keeps none: status 0 (DORMANT), mode 0, empty online IDs, account IDs 0 and both user IDs -1 (
SCE_USER_SERVICE_USER_ID_INVALID). A null pointer returnsSCE_SHARE_PLAY_ERROR_INVALID_ARGS(0x810E0001). The 72-byteSceSharePlayConnectionInfoAlayout and the error code follow KytyPS5 and fpPS4, which agree on both; KytyPS5 sets the user IDs to -1 and fpPS4 leaves them 0, and which one the console returns is not verified. KytyPS5 also returnsSCE_SHARE_PLAY_ERROR_NOT_INITIALIZEDbeforesceSharePlayInitialize; this library keeps no initialization state and does not. - sceSharePlayProhibitController (libSceSharePlay) - accepts 0 (allow) and 1 (prohibit) and returns 0, following sharpemu. The setting is not stored, as no Share Play session or visitor controller exists and no export reads it back. sharpemu rejects any other value with its synthetic
0x80020003, not a Share Play code, so other values throw. Like the other exports here it does not requiresceSharePlayInitialize. Theintargument type and the console's error for other values are unverified