Files
AnyPS5/docs/dev/debt/libSceNpMatching2.md
simnJS ad9a68f9ba feat(libSceNpMatching2): answer signaling connection status and context start abort offline
sceNpMatching2SignalingGetConnectionStatus reports every member inactive
for a known context, since no room is joined offline, and leaves the peer
address and port untouched; a null status pointer throws.
sceNpMatching2AbortContextStart returns NOT_INITIALIZED before
initialization and 0 afterwards. Checks follow shadPS4, with RPCS3's
differences recorded in the technical debt entry.
2026-10-27 17:57:03 +01:00

5.6 KiB

libSceNpMatching2 technical debt

Unknown function info

Functional

  • sceNpMatching2Initialize, sceNpMatching2Terminate (libSceNpMatching2) - only the library state is kept: initialization checks the parameter's size field (0x28, or 0x30 with an SSL pool) as shadPS4 does and starts no thread; a second initialization returns ALREADY_INITIALIZED and a termination without one NOT_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). sceNpMatching2ContextStart returns 0x804101E2 (SCE_NET_ERROR_RESOLVER_ETIMEDOUT), which shadPS4 says was confirmed on a console disconnected from the internet, so no context starts and sceNpMatching2ContextStop answers CONTEXT_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
  • 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 returns INVALID_ARGUMENT); peer address and port are never written. The abort returns NOT_INITIALIZED before initialization, as RPCS3 does, and 0 for any context id, as both do