mirror of
https://github.com/boykopovar/AnyPS5.git
synced 2026-10-22 08:33:12 -05:00
3.8 KiB
3.8 KiB
libSceNpManager technical debt
Unknown function info
- sceNpGetSandboxInfo (libSceNpManager, NID
ZVZ++68nNI8) - the name hashes to the imported NID (found with nidhunt, confirmed withtools/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. - sceNpUnknown_8weiQyIdI3A (libSceNpManager, NID
8weiQyIdI3A) - the name is not in aerolib. EA SPORTS FC 27 (PPSA34015) fails to loadlibSceNpManager.prxwithout it (unresolved ELF import/GetLastError: 127). Its only call ismov edi, r14d(a user id) andlea rsi, [rbp-0x40]after a 17-byte copy into that buffer (mov edx, 0x11);test eax, eaxfollows. The C name, the type of the 17-byte object and the console return are unknown, so every call throws without reading or writing caller memory. - sceNpUnknown_WxLcN76q19o (libSceNpManager, NID
WxLcN76q19o) - the name is not in aerolib. PPSA34015 imports it fromlibSceNpManager.prxas a strongJUMP_SLOTwith no call found in the eboot; the loader still requires the export. Arguments, result and console errors are unknown, so every call throws. - 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 - sceNpGetUserIdByAccountId - the
(account id, user id output)signature and its errors follow shadPS4: account id 0 or a null output returnsSCE_NP_ERROR_INVALID_ARGUMENT, and a signed-out NP returnsSCE_NP_ERROR_SIGNED_OUTwithout writing the output. NP is always signed out here, so no account id resolves to a user
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 isSCE_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