mirror of
https://github.com/boykopovar/AnyPS5.git
synced 2026-11-04 13:07:32 +00:00
sceNpPartyGetState, GetStateAsUserA, GetId, GetMembers/A, GetMemberInfo/A, GetMemberSessionInfo, GetMemberVoiceInfo and SendBinaryMessage return NOT_INITIALIZED before sceNpPartyInitialize and after sceNpPartyTerminate, and GetStateAsUserA refuses user -1, as a firmware 13.42 run of the module shows.
3.6 KiB
3.6 KiB
libSceNpParty technical debt
Unknown function info
- sceNpPartyGetState and sceNpPartyGetStateAsUserA (libSceNpParty) - the 16-bit state, its
NOT_IN_PARTYvalue 2 and theINVALID_ARGUMENT(0x80552504) error follow shadPS4's np_party.h and np_error.h (PS4); shadPS4 does not check for a null state. Both returnNOT_INITIALIZED(0x80552503) beforesceNpPartyInitializeand aftersceNpPartyTerminate, andsceNpPartyGetStateAsUserAreturnsINVALID_ARGUMENTfor user -1, as a firmware 13.42 run of the module under an emulator shows; there the state itself comes from the party service. Not measured on a PS5 - sceNpPartyGetId, sceNpPartyGetMembersA, sceNpPartyGetMemberInfoA, sceNpPartyGetMemberSessionInfo, sceNpPartyGetMemberVoiceInfo and sceNpPartySendBinaryMessage (libSceNpParty) - the user is never in a party, so these return
NOT_IN_PARTY(0x80552506, shadPS4's np_error.h) and write nothing, orINVALID_ARGUMENTfor a null pointer; the signatures are from Orbital's type database. LikesceNpPartyGetStatethey returnNOT_INITIALIZED(0x80552503) first when the library is not initialized, as the 13.42 run shows for these andsceNpPartyGetMembers/GetMemberInfo. That run reaches the party service past the module's own checks and finds no localNOT_IN_PARTY, so the answer after initialization stays this model. Not measured on a PS5 - sceNpPartyInitialize, sceNpPartyTerminate, sceNpPartyCheckCallback and sceNpPartyRegisterHandlerA (libSceNpParty) - an initialized flag with
ALREADY_INITIALIZED(0x80552502) andNOT_INITIALIZED(0x80552503) from shadPS4's np_error.h; the handlers are accepted but never called, since no party event can happen. Whether the console refuses a null initialize parameter, and which check comes first, is not known - sceNpPartyCreate, sceNpPartyCreateA, sceNpPartyGetStateAsUser, sceNpPartyGetVoiceChatPriority, sceNpPartyJoin, sceNpPartyLeave, sceNpPartyRegisterPrivateHandler, sceNpPartySetVoiceChatPriority, sceNpPartyShowInvitationList, sceNpPartyShowInvitationListA and sceNpPartyUnregisterPrivateHandler (libSceNpParty) - Orbital has no prototypes for these and no credible ones 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
- sceNpPartyGetMembers, sceNpPartyGetMemberInfo and sceNpPartyRegisterHandler (libSceNpParty) - the signatures are from fpPS4 (PS4) and match their
Avariants, so they behave like them: no party,NOT_IN_PARTYfrom shadPS4, and handlers accepted but never called. How the console's non-Amember structures differ from theAones is not known, and nothing is written to them. Not measured on a PS5