AnyPS5/docs/dev/debt/libSceNpManager.md

2.4 KiB

libSceNpManager technical debt

Unknown function info

  • sceNpGetSandboxInfo (libSceNpManager, NID ZVZ++68nNI8) - the name hashes to the imported NID (found with nidhunt, confirmed with tools/nid_names.py). STAR WARS: Galactic Racer (PPSA28416) imports it; its OnlineSubsystemPS5 calls it with one pointer to a 0x50-byte stack buffer and reads the buffer as a string (discussions/3086). The returned string, the exact parameter struct and console errors are unknown, so every call throws without reading or writing caller memory. A working implementation belongs with that title's bring-up.
  • sceNpSetTimeout (libSceNpManager) - the signature follows orbital, shadPS4 and SharpProspero; the rejected values (all five 0, negative retries, a resolve timeout under 1 s or another timeout under 10 s, 0 meaning the default) are shadPS4's, not checked on a console. An id that was never created or was deleted returns REQUEST_NOT_FOUND, as in shadPS4; there is no network, so the timeouts are not stored

Functional

  • NP reachability callbacks retain one callback and its user data; duplicate registration and unregistering an absent callback return the errors used by shadPS4. No callback is delivered because the existing NP model remains signed out with reachability unavailable.
  • sceNpCheckNpAvailability (libSceNpManager) - the (req_id, online_id) signature and the errors follow shadPS4 with no user signed in to PSN: a null online id is SCE_NP_ERROR_INVALID_ARGUMENT, and any other online id matches no user, SCE_NP_ERROR_USER_NOT_FOUND; the request id is not checked, as in the other NpManager requests