mirror of
https://github.com/boykopovar/AnyPS5.git
synced 2026-10-22 08:33:12 -05:00
15 KiB
15 KiB
libSceNpTus technical debt
Unknown function info
- TUS variable outputs (libSceNpTus) - the layouts of the variable arrays of the
sceNpTusGetMultiSlotVariable*calls and ofoutVariableinsceNpTusAddAndGetVariableAAsyncare not verified, so the output is never written andvariableArraySize/outVariableSizeare not checked; shadPS4, and RPCS3 in its PS3sceNpTusGetMultiSlotVariable*andsceNpTusAddAndGetVariable*calls, returnINVALID_ALIGNMENTunless the size isarrayLenvariables of the call's type, or one variable foroutVariable. The signatures and the community error codes follow shadPS4, which fpPS4 agrees with for the context and request calls; no console measurement. - Multi-slot variable calls (libSceNpTus) - the argument checks of the multi-slot get, set and delete calls are not measured on a console; they follow shadPS4, where they differ between functions:
arrayLen < 1isINSUFFICIENT_ARGUMENTin the NpId and virtual-user delete calls and insceNpTusGetMultiSlotVariableVUserAsync, andINVALID_ARGUMENTin the others; a null NpId is accepted except in delete; an empty virtual user ID isINVALID_ARGUMENT. RPCS3's PS3 module has only the NpId and virtual-user calls; it returnsINVALID_ARGUMENTfor an empty array in all of them, rejects a null target in get and set and does not check for an empty virtual user ID. - sceNpTusSetThreadParam (libSceNpTus) - unknown signature
- sceNpTssCreateNpTitleCtx (libSceNpTus) - unknown signature
- sceNpTssCreateNpTitleCtxA (libSceNpTus) - unknown signature
- sceNpTusCreateTitleCtx (libSceNpTus) - unknown signature
- sceNpTusSetTimeout (libSceNpTus) - unknown signature
- sceNpTusChangeModeForOtherSaveDataOwners (libSceNpTus) - unknown signature
- sceNpTusGetMultiUserVariable (libSceNpTus) - unknown signature
- sceNpTusGetMultiUserVariableVUser (libSceNpTus) - unknown signature
- sceNpTusGetMultiUserVariableAsync (libSceNpTus) - unknown signature
- sceNpTusGetMultiUserVariableVUserAsync (libSceNpTus) - unknown signature
- sceNpTusGetFriendsVariable (libSceNpTus) - unknown signature
- sceNpTusGetFriendsVariableAsync (libSceNpTus) - unknown signature
- sceNpTusAddAndGetVariable (libSceNpTus) - unknown signature
- sceNpTusAddAndGetVariableVUser (libSceNpTus) - unknown signature
- sceNpTusAddAndGetVariableAsync (libSceNpTus) - unknown signature
- sceNpTusAddAndGetVariableVUserAsync (libSceNpTus) - unknown signature
- sceNpTusTryAndSetVariable (libSceNpTus) - unknown signature
- sceNpTusTryAndSetVariableVUser (libSceNpTus) - unknown signature
- sceNpTusTryAndSetVariableAsync (libSceNpTus) - unknown signature
- sceNpTusTryAndSetVariableVUserAsync (libSceNpTus) - unknown signature
- sceNpTusDeleteMultiSlotData (libSceNpTus) - unknown signature
- sceNpTusDeleteMultiSlotDataVUser (libSceNpTus) - unknown signature
- sceNpTusDeleteMultiSlotDataAsync (libSceNpTus) - unknown signature
- sceNpTusDeleteMultiSlotDataVUserAsync (libSceNpTus) - unknown signature
- sceNpTusSetDataAsync (libSceNpTus) - unknown signature
- sceNpTusSetDataVUserAsync (libSceNpTus) - unknown signature
- sceNpTusGetDataAsync (libSceNpTus) - unknown signature
- sceNpTusGetDataVUserAsync (libSceNpTus) - unknown signature
- sceNpTusGetMultiSlotDataStatus (libSceNpTus) - unknown signature
- sceNpTusGetMultiSlotDataStatusVUser (libSceNpTus) - unknown signature
- sceNpTusGetMultiSlotDataStatusAsync (libSceNpTus) - unknown signature
- sceNpTusGetMultiSlotDataStatusVUserAsync (libSceNpTus) - unknown signature
- sceNpTusGetMultiUserDataStatus (libSceNpTus) - unknown signature
- sceNpTusGetMultiUserDataStatusVUser (libSceNpTus) - unknown signature
- sceNpTusGetMultiUserDataStatusAsync (libSceNpTus) - unknown signature
- sceNpTusGetMultiUserDataStatusVUserAsync (libSceNpTus) - unknown signature
- sceNpTusGetFriendsDataStatus (libSceNpTus) - unknown signature
- sceNpTusGetFriendsDataStatusAsync (libSceNpTus) - unknown signature
- sceNpTssGetSmallStorage (libSceNpTus) - unknown signature
- sceNpTssGetSmallStorageAsync (libSceNpTus) - unknown signature
- sceNpTssGetStorage (libSceNpTus) - unknown signature
- sceNpTssGetStorageAsync (libSceNpTus) - unknown signature
- sceNpTssGetDataAsync (libSceNpTus) - unknown signature
- sceNpTusAddAndGetVariableA (libSceNpTus) - unknown signature
- sceNpTusAddAndGetVariableAVUser (libSceNpTus) - unknown signature
- sceNpTusAddAndGetVariableAVUserAsync (libSceNpTus) - unknown signature
- sceNpTusAddAndGetVariableForCrossSave (libSceNpTus) - unknown signature
- sceNpTusAddAndGetVariableForCrossSaveAsync (libSceNpTus) - unknown signature
- sceNpTusAddAndGetVariableForCrossSaveVUser (libSceNpTus) - unknown signature
- sceNpTusAddAndGetVariableForCrossSaveVUserAsync (libSceNpTus) - unknown signature
- sceNpTusGetMultiSlotDataStatusA (libSceNpTus) - unknown signature
- sceNpTusGetMultiSlotDataStatusAAsync (libSceNpTus) - unknown signature
- sceNpTusGetMultiSlotDataStatusAVUser (libSceNpTus) - unknown signature
- sceNpTusGetMultiSlotDataStatusAVUserAsync (libSceNpTus) - unknown signature
- sceNpTusGetMultiSlotDataStatusForCrossSave (libSceNpTus) - unknown signature
- sceNpTusGetMultiSlotDataStatusForCrossSaveAsync (libSceNpTus) - unknown signature
- sceNpTusGetMultiSlotDataStatusForCrossSaveVUser (libSceNpTus) - unknown signature
- sceNpTusGetMultiSlotDataStatusForCrossSaveVUserAsync (libSceNpTus) - unknown signature
- sceNpTusGetDataA (libSceNpTus) - unknown signature
- sceNpTusGetDataAAsync (libSceNpTus) - unknown signature
- sceNpTusGetDataAVUser (libSceNpTus) - unknown signature
- sceNpTusGetDataAVUserAsync (libSceNpTus) - unknown signature
- sceNpTusGetDataForCrossSave (libSceNpTus) - unknown signature
- sceNpTusGetDataForCrossSaveAsync (libSceNpTus) - unknown signature
- sceNpTusGetDataForCrossSaveVUser (libSceNpTus) - unknown signature
- sceNpTusGetDataForCrossSaveVUserAsync (libSceNpTus) - unknown signature
- sceNpTusGetMultiUserVariableA (libSceNpTus) - unknown signature
- sceNpTusGetMultiUserVariableAAsync (libSceNpTus) - unknown signature
- sceNpTusGetMultiUserVariableAVUser (libSceNpTus) - unknown signature
- sceNpTusGetMultiUserVariableAVUserAsync (libSceNpTus) - unknown signature
- sceNpTusGetMultiUserVariableForCrossSave (libSceNpTus) - unknown signature
- sceNpTusGetMultiUserVariableForCrossSaveAsync (libSceNpTus) - unknown signature
- sceNpTusGetMultiUserVariableForCrossSaveVUser (libSceNpTus) - unknown signature
- sceNpTusGetMultiUserVariableForCrossSaveVUserAsync (libSceNpTus) - unknown signature
- sceNpTusGetMultiUserDataStatusA (libSceNpTus) - unknown signature
- sceNpTusGetMultiUserDataStatusAAsync (libSceNpTus) - unknown signature
- sceNpTusGetMultiUserDataStatusAVUser (libSceNpTus) - unknown signature
- sceNpTusGetMultiUserDataStatusAVUserAsync (libSceNpTus) - unknown signature
- sceNpTusGetMultiUserDataStatusForCrossSave (libSceNpTus) - unknown signature
- sceNpTusGetMultiUserDataStatusForCrossSaveAsync (libSceNpTus) - unknown signature
- sceNpTusGetMultiUserDataStatusForCrossSaveVUser (libSceNpTus) - unknown signature
- sceNpTusGetMultiUserDataStatusForCrossSaveVUserAsync (libSceNpTus) - unknown signature
- sceNpTusGetFriendsVariableA (libSceNpTus) - unknown signature
- sceNpTusGetFriendsVariableAAsync (libSceNpTus) - unknown signature
- sceNpTusGetFriendsVariableForCrossSave (libSceNpTus) - unknown signature
- sceNpTusGetFriendsVariableForCrossSaveAsync (libSceNpTus) - unknown signature
- sceNpTusGetFriendsDataStatusA (libSceNpTus) - unknown signature
- sceNpTusGetFriendsDataStatusAAsync (libSceNpTus) - unknown signature
- sceNpTusGetFriendsDataStatusForCrossSave (libSceNpTus) - unknown signature
- sceNpTusGetFriendsDataStatusForCrossSaveAsync (libSceNpTus) - unknown signature
- sceNpTusSetDataA (libSceNpTus) - unknown signature
- sceNpTusSetDataAAsync (libSceNpTus) - unknown signature
- sceNpTusSetDataAVUser (libSceNpTus) - unknown signature
- sceNpTusSetDataAVUserAsync (libSceNpTus) - unknown signature
- sceNpTusDeleteMultiSlotDataA (libSceNpTus) - unknown signature
- sceNpTusDeleteMultiSlotDataAAsync (libSceNpTus) - unknown signature
- sceNpTusTryAndSetVariableA (libSceNpTus) - unknown signature
- sceNpTusTryAndSetVariableAAsync (libSceNpTus) - unknown signature
- sceNpTusTryAndSetVariableAVUser (libSceNpTus) - unknown signature
- sceNpTusTryAndSetVariableAVUserAsync (libSceNpTus) - unknown signature
- sceNpTusTryAndSetVariableForCrossSave (libSceNpTus) - unknown signature
- sceNpTusTryAndSetVariableForCrossSaveAsync (libSceNpTus) - unknown signature
- sceNpTusTryAndSetVariableForCrossSaveVUser (libSceNpTus) - unknown signature
- sceNpTusTryAndSetVariableForCrossSaveVUserAsync (libSceNpTus) - unknown signature
- sceNpTusDeleteNpTitleCtx (libSceNpTus) - the PS5 signature, error codes and child-request lifetime have not been measured on a console. Deletion invalidates the context and all its requests, following shadPS4.
Functional
- sceNpTusCreateNpTitleCtxA (libSceNpTus) - creates a title context without checking sign-in, up to 32 contexts (
TOO_MANY_OBJECTSbeyond); shadPS4 returns thesceNpGetNpIderror instead. Requests are limited to 256, and the limits are not measured on a console. - sceNpTusPollAsync, sceNpTusWaitAsync (libSceNpTus) - there is no PSN, so every implemented
*Asynccall whose arguments pass the checks starts a request that finishes at once withSCE_NP_ERROR_SIGNED_OUT, which poll and wait report and the blocking calls return; shadPS4 returnsSIGNED_OUTfrom the*Asynccall itself when no shadNet client is signed in, and RPCS3 returnsINVALID_ONLINE_IDwhile offline, marked there as probable behaviour. An abort stays set, so every later operation on the request, blocking ones included, finishes withABORTED; in shadPS4 an abort only ends the operation in progress. Until an operation has started, poll returns 1 and wait returnsINVALID_ARGUMENTas in shadPS4; RPCS3 blocks until a result is set.