Files
AnyPS5/docs/dev/debt/libSceNpUtility.md
T
MarcZX10 c2e8c2130b docs(libSceNpUtility): drop the duplicate Net* entry and the stub it replaced from the old lists
sceNpLookupCreateTitleCtxA has its own entry now, and sceNpLookupNetAbortRequest and sceNpLookupNetCensorComment were listed twice.
2026-10-27 00:29:59 +00:00

15 KiB

libSceNpUtility technical debt

  • sceNpLookupCreateTitleCtxA, sceNpWordFilterCreateTitleCtxA - throw through NotImplemented_nid_no_patch; behaviour and the PS5 prototypes are unmeasured. The only source of the parameter lists is shadPS4's PS4-derived prototypes (GPLv2, used as a reference only), with no second reference; structure pointers are void* because no layout is known.

Unknown function info

Functional

  • sceNpBandwidthTestInitStart, sceNpBandwidthTestShutdownWithDetailedInfo (libSceNpUtility) - offline answers, not measured on a PS5: InitStart returns SCE_NP_ERROR_SIGNED_OUT as sceNpBandwidthTestInitStartDownload and InitStartUpload do, so no test is ever started, and ShutdownWithDetailedInfo returns SCE_NP_ERROR_INVALID_ARGUMENT and writes nothing, as sceNpBandwidthTestShutdown does. Neither reads an argument, so their parameterless declarations stand; their prototypes are still unknown
  • NpLookup and NpWordFilter (libSceNpUtility) - offline only, not measured on a PS5: the argument checks and their order, the limit of 32 title contexts and 32 requests, the word filter id bases 0x01000001 and 0x02000001, the 0x400-byte comment limit and single-use requests (INVALID_TYPE) follow shadPS4's lookup and word filter calls. sceNpLookupNpId, sceNpWordFilterCensorComment and sceNpWordFilterSanitizeComment then finish with SCE_NP_ERROR_SIGNED_OUT and write no NpId or comment; shadPS4's word filter accepts every comment as a stand-in for the server, so its result is not used
  • NpLookup and NpWordFilter waits and timeouts (libSceNpUtility) - IDs here carry no service: on the console, measured on firmware 13.42's module in an emulator (#10640), each ID holds its service in its high bits (Lookup requests 0x2xxxxxxx and title contexts 0x4xxxxxxx, word filter 0x02xxxxxx and 0x04xxxxxx), and SetTimeout, AbortRequest, PollAsync and WaitAsync find the object by those bits whichever service's call is made; here each call finds only its own service's IDs, which keep the ranges above. The timeouts are checked as measured and then have no effect, since no request reaches a server; the console stores them. A wait on a request deleted meanwhile returns INVALID_ID, unmeasured. The measured checks are followed: a null result first (0x80550704), a synchronous request (0x80550307 for Lookup, INVALID_ID for the word filter), the timeout bounds and the 0x18-byte async parameter