mirror of
https://github.com/boykopovar/AnyPS5.git
synced 2026-11-05 13:20:11 +00:00
6.9 KiB
6.9 KiB
libSceNpMatching2 technical debt
Unknown function info
- sceNpMatching2CreateContextInternal, sceNpMatching2CreateJoinRoomA, sceNpMatching2GetLobbyInfoList, sceNpMatching2GetLobbyMemberDataInternal, sceNpMatching2GetLobbyMemberDataInternalList, sceNpMatching2GetMemoryInfo, sceNpMatching2GetRoomJoinedSlotMaskLocal, sceNpMatching2GetRoomMemberDataExternalList, sceNpMatching2GetRoomMemberIdListLocal, sceNpMatching2GetRoomPasswordLocal, sceNpMatching2GetSignalingOptParamLocal (libSceNpMatching2) - names and NIDs are present in the PS5 3.20 export inventory, but no credible prototypes were found. The declarations have no parameters solely to resolve known imports; this is not an ABI claim and callers must not call them until signatures are verified
- sceNpMatching2GetSslMemoryInfo, sceNpMatching2GetUserInfoListA, sceNpMatching2GetWorldIdArrayForAllServers, sceNpMatching2GrantRoomOwner, sceNpMatching2JoinLobby, sceNpMatching2JoinRoomA, sceNpMatching2LeaveLobby, sceNpMatching2RegisterManualUdpSignalingCallback, sceNpMatching2SendLobbyChatMessage, sceNpMatching2SetExtraInitParam, sceNpMatching2SetLobbyMemberDataInternal, sceNpMatching2SetRoomDataInternalExt (libSceNpMatching2) - names and NIDs are present in the PS5 3.20 export inventory, but no credible prototypes were found. The declarations have no parameters solely to resolve known imports; this is not an ABI claim and callers must not call them until signatures are verified
- sceNpMatching2SetSignalingOptParam, sceNpMatching2SignalingAbortConnection, sceNpMatching2SignalingCancelPeerNetInfo, sceNpMatching2SignalingEnableManualUdpMode, sceNpMatching2SignalingEstablishConnection, sceNpMatching2SignalingGetConnectionInfoA, sceNpMatching2SignalingGetLocalNetInfo, sceNpMatching2SignalingGetPeerNetInfo, sceNpMatching2SignalingGetPeerNetInfoResult, sceNpMatching2SignalingGetPingInfo, sceNpMatching2SignalingGetPort (libSceNpMatching2) - names and NIDs are present in the PS5 3.20 export inventory, but no credible prototypes were found. The declarations have no parameters solely to resolve known imports; this is not an ABI claim and callers must not call them until signatures are verified
- sceNpMatching2SignalingSetPort (libSceNpMatching2) - names and NIDs are present in the PS5 3.20 export inventory, but no credible prototypes were found. The declarations have no parameters solely to resolve known imports; this is not an ABI claim and callers must not call them until signatures are verified
Functional
- sceNpMatching2Initialize, sceNpMatching2Terminate (libSceNpMatching2) - only the library state is kept: initialization checks the parameter's
sizefield (0x28, or 0x30 with an SSL pool) as shadPS4 does and starts no thread; a second initialization returnsALREADY_INITIALIZEDand a termination without oneNOT_INITIALIZED. The pool, thread and SSL settings are not used: no matching server is reached. Not measured on a console - sceNpMatching2CreateContext and the context calls (libSceNpMatching2) - offline only, not measured on a PS5: the checks follow shadPS4 and its context manager (a
0x28-byte parameter, ten ids handed out round-robin).sceNpMatching2ContextStartreturns0x804101E2(SCE_NET_ERROR_RESOLVER_ETIMEDOUT), which shadPS4 says was confirmed on a console disconnected from the internet, so no context starts andsceNpMatching2ContextStopanswersCONTEXT_NOT_STARTED. Callbacks and the default request option are checked but never used. The room, user, world, server-id and signaling-info calls still throw - sceNpMatching2CreateContextA (libSceNpMatching2) - offline only: the A parameter (user id, service label, then a
sizeof 0x10) and its checks follow a later shadPS4, and the user id is unused. The context takes the next of the same ten slots with 0x100 added: firmware 13.42, run natively, gave context 1 tosceNpMatching2CreateContextand 258 (0x0102) to thesceNpMatching2CreateContextAafter it. That the 0x100 marks A contexts, and that slot 2 alone does not name the A context, are read from that single pair - sceNpMatching2RegisterLobbyEventCallback, sceNpMatching2RegisterLobbyMessageCallback (libSceNpMatching2) - offline only, not measured on a PS5: checked like the room callbacks, as shadPS4 does (event, message), and never called: no lobby is joined offline
- sceNpMatching2SignalingGetConnectionStatus, sceNpMatching2AbortContextStart (libSceNpMatching2) - not measured on a console. With no room joined offline, the status call writes 0 (inactive) and returns 0 for a known context, as shadPS4 does; the PS3 module in RPCS3 also writes inactive but returns
INVALID_ROOM_ID. A null status pointer throws (shadPS4 skips the write, RPCS3 returnsINVALID_ARGUMENT); peer address and port are never written. The abort returnsNOT_INITIALIZEDbefore initialization, as RPCS3 does, and 0 for any context id, as both do