mirror of
https://github.com/boykopovar/AnyPS5.git
synced 2026-10-27 00:28:14 +00:00
Co-Authored-By: Claude Opus 5.5 <[email protected]> Claude-Session: https://claude.ai/code/session_01RoucYS7mQpV23WDUEwXLuU
2.8 KiB
2.8 KiB
libSceNpWebApi technical debt
Unknown function info
- sceNpWebApiInitialize, sceNpWebApiTerminate, sceNpWebApiCreateHandle, sceNpWebApiDeleteHandle, sceNpWebApiCreatePushEventFilter, sceNpWebApiDeletePushEventFilter (libSceNpWebApi, PS4) - signatures, id ranges (library contexts 1 to 0x7fff, handles and filters below 0xf0000000) and errors (
LIB_CONTEXT_NOT_FOUND,HANDLE_NOT_FOUND,PUSH_EVENT_FILTER_NOT_FOUND,INVALID_ARGUMENTfor a missing filter parameter) follow shadPS4; they are not checked on a console. The libHttp context and pool size are kept but not used, since no request is ever sent. Limbo (CUSA01664) creates a context, a handle and filters when its game starts. - sceNpWebApiCreateServicePushEventFilter (libSceNpWebApi, PS4) - a filter for a PSN service needs the signed-in user, and no user is signed in to PSN, so a valid call returns
SIGNED_IN_USER_NOT_FOUNDafter the context and handle checks, as shadPS4 does with its network disabled.sceNpWebApiDeleteServicePushEventFiltertherefore never finds a filter. - sceNpWebApiCreateContext, sceNpWebApiDeleteContext, sceNpWebApiCreateRequest, sceNpWebApiDeleteRequest, sceNpWebApiAbortRequest, sceNpWebApiSendRequest (libSceNpWebApi, PS4) - the online id is not looked up: as in shadPS4, a user context belongs to the initial user, so a library context holds at most one. With no user signed in to PSN,
sceNpWebApiSendRequestreturnsNOT_SIGNED_INunless the request is aborted. Id layouts and the delete, abort and not-found results match an offline PS4 Pro probe on firmware 10.71 (#9797); other checks follow shadPS4. That homebrew probe, with a non-retail SDK version, accepted method 99, soINVALID_ARGUMENTfor a method after DELETE from SDK 2.50 is unverified.sceNpWebApiTerminatealso deletes user contexts and requests; shadPS4 stops after the first user context. - sceNpWebApiRegisterPushEventCallback, sceNpWebApiUnregisterPushEventCallback, sceNpWebApiRegisterServicePushEventCallback, sceNpWebApiUnregisterServicePushEventCallback (libSceNpWebApi, PS4) - registered callbacks are never called, since no push event arrives. A null function is rejected from SDK 1.00 and the filter must exist in the library context from SDK 2.50, as in shadPS4; this is not checked on a console. No service filter can be created, so from SDK 2.50 a service callback returns
SERVICE_PUSH_EVENT_FILTER_NOT_FOUND. Callback ids come from the counter of handles and filters.