Files
AnyPS5/docs/dev/debt/libSceNpEntitlementAccess.md
T

3.6 KiB

libSceNpEntitlementAccess technical debt

Silent stubs

  • sceNpEntitlementAccessInitialize (libSceNpEntitlementAccess) - returns 0 without reading the init parameter or writing the boot parameter, so the boot parameter keeps what the caller put there. Both are 32 reserved bytes here, and PPSA01494 (at both of its calls), PPSA02225, PPSA03984, PPSA30839, PPSA31162 and PPSA34502 zero exactly 32 bytes of each right before the call. PPSA03984 and PPSA31162 test the result for a negative value. What the console writes into the boot parameter is unknown

Unknown function info

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