Files
AnyPS5/docs/dev/debt/libSceSharePlay.md
T
juanpimg 1f1add461e feat(prx): declare the missing PS5 3.20 system exports in the next tier of libraries
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.
2026-10-20 23:22:17 +02:00

3.6 KiB

libSceSharePlay technical debt

Unknown function info

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 returns SCE_SHARE_PLAY_ERROR_INVALID_ARGS (0x810E0001). The 72-byte SceSharePlayConnectionInfoA layout 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 returns SCE_SHARE_PLAY_ERROR_NOT_INITIALIZED before sceSharePlayInitialize; 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 require sceSharePlayInitialize. The int argument type and the console's error for other values are unverified