mirror of
https://github.com/boykopovar/AnyPS5.git
synced 2026-10-27 00:28:14 +00:00
5.1 KiB
5.1 KiB
libSceNpWebApi2 technical debt
Silent stubs
- sceNpWebApi2AddWebTraceTag (libSceNpWebApi2) - the
(request id, value)signature follows shadPS4. A title imports it. It validates that the value pointer is not null (returningINVALID_ARGUMENT0x80553402), accepts any request id, and stores nothing: no request reaches a service, assceNpWebApi2SendRequestfails withUNAVAILABLEat once, so trace tags are not transmitted offline - sceNpWebApi2SetRequestTimeout (libSceNpWebApi2) - the
(request id, timeout)signature follows shadPS4. Pinball FX (PPSA08755) calls it while its main menu loads. It succeeds for any request id and stores nothing: no request reaches a service, assceNpWebApi2SendRequestfails withUNAVAILABLEat once, so no timeout can expire. shadPS4 returnsLIB_CONTEXT_NOT_FOUND,USER_CONTEXT_NOT_FOUNDorREQUEST_NOT_FOUNDfor an id it does not know; this library keeps no context or request table (sceNpWebApi2CreateRequesthands out counter values, andsceNpWebApi2AbortRequest,sceNpWebApi2AddHttpRequestHeaderandsceNpWebApi2DeleteRequestalso accept any id), so those errors are not reported until the request functions track their ids together
Unknown function info
- sceNpWebApi2AddMultipartPart, sceNpWebApi2IntCreateRequest, sceNpWebApi2IntPushEventCreateCtxIndFilter and sceNpWebApi2SetMultipartContentType (libSceNpWebApi2) - names and NIDs are present in the PS5 3.20 export inventory; no-argument prototypes follow shadPS4's PS4 stubs, not measured on a console. These declarations have no parameters solely to resolve known imports and make no ABI claim.
- sceNpWebApi2InitializeForPresence, sceNpWebApi2IntInitialize and sceNpWebApi2IntInitialize2 (libSceNpWebApi2) - create a library context like
sceNpWebApi2Initialize, as shadPS4 does on the PS4: the argument structures (32 and 40 bytes) and thestruct_sizecheck that returnsSCE_NP_WEBAPI2_ERROR_INVALID_ARGUMENTfollow its declarations. The context type shadPS4 records (2 for the internal initializers, 3 for presence), the context name and the push configuration group are not kept, and the 0x8000 context limit is not applied. Not measured on a PS5 - sceNpWebApi2CreateMultipartRequest and sceNpWebApi2SendMultipartRequest (libSceNpWebApi2) - names and NIDs are present in the PS5 3.20 export inventory. The signatures follow the PS4 implementations in shadPS4 and its multipart sender; opaque struct pointers use
const void*orvoid*to preserve source constness. These prototypes are not measured on a console. - sceNpWebApi2IntPushEventCreateDestPs4CtxIndFilter (libSceNpWebApi2) - no credible prototype was found; it is declared without parameters solely to resolve known imports and makes no ABI claim.
- Push handle lifecycle: PS5 create/delete/abort signatures and invalid-context/invalid-handle errors are confirmed. Handles track ownership, timeout and abort state; deletion and context termination remove them. Network push operations and cancellation of active requests remain unimplemented.
- sceNpWebApi2GetMemoryPoolStats: PS5 confirms the context/statistics arguments and 32-byte output. An invalid context returns
0x80553404without changing output; a valid context with null output succeeds. Allocator accounting remains absent: peak and current usage still report zero instead of native pool allocations. - sceNpWebApi2PushEventSetHandleTimeout: PS5 confirms three 32-bit arguments, ownership validation and storing the entire timeout value without range checks. The stored timeout is not consumed because asynchronous push operations are unimplemented.