AnyPS5/docs/dev/debt/libSceNpEntitlementAccess.md

2.4 KiB

libSceNpEntitlementAccess technical debt

Unknown function info

  • sceNpEntitlementAccessGetEntitlementKey - the three-argument signature, 16-byte key and errors 0x817D0002/0x817D0007 follow KytyPS5; PPSA01521 passes a service label, entitlement label and output pointer. Only the no-key path is implemented: local entitlement labels carry no keys, and the output is untouched on failure. Console error precedence and key provisioning are unverified
  • sceNpEntitlementAccess{Request,Poll}{Unified,Service}EntitlementInfo{,List} - signatures unknown; no reference implements them, so they are declared without parameters. The single-item variants copy the behaviour of the list ones, with no source of their own. Like the consume requests in the same library, they report the signed-out NP state with SCE_NP_ERROR_SIGNED_OUT (0x80550006) and write nothing. PPSA15657 calls the unified request during start-up and continues past the error. Whether the console fails at the request or at the poll when signed out is unverified

Functional

  • sceNpEntitlementAccessGetGameTrialsFlag, sceNpEntitlementAccessGetPftFlag (libSceNpEntitlementAccess) - reports a full game, not a game trial or Play First Trial: writes 0 to the uint32_t output and returns 0, and a null pointer returns 0x817D0002. The single-pointer signature, the value, the one-word write and the error of sceNpEntitlementAccessGetGameTrialsFlag follow sharpemu, which has no sceNpEntitlementAccessGetPftFlag; those of sceNpEntitlementAccessGetPftFlag follow dlc_emu, which takes the same SceNpEntitlementAccessGameTrialsFlag* as the trials flag, writes the OFF value 0 and returns the parameter error for null; 0x817D0002 is the parameter error of KytyPS5, prosper and sceNpEntitlementAccessGetEntitlementKey, while sceNpEntitlementAccessGetSkuFlag here returns 0x80558003. None of this is a console measurement, and PRAGMATA (PPSA02530) shows four live registers at the call, so further arguments are not ruled out