mirror of
https://github.com/boykopovar/AnyPS5.git
synced 2026-11-05 13:20:11 +00:00
Adds the measured row to guest_np_web_api (method 99 at SDK version 0x05050001 is INVALID_ARGUMENT and leaves the request id alone), as rooklz suggested in review, and says in the debt entry that the 2.50 threshold comes from shadPS4. Co-Authored-By: Claude Opus 5.5 <[email protected]>
3.2 KiB
3.2 KiB
libSceNpWebApi technical debt
Unknown function info
- sceNpWebApiGetHttpStatusCode, sceNpWebApiReadData - 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 arevoid*because no layout is known. - 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. Method 99 after DELETE givesINVALID_ARGUMENT(0x80552902) from a probe built at SDK 0x05050001; the 2.50 threshold is shadPS4's, not measured.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.