PSCode

The PSCode is a 8 bytes code that contains console specific information like Region or Model Type. It is derived from the ConsoleId. Knowing PSCode we are able to deduce the 9 first Bytes of ConsoleId.

What information this stores is almost completely known (see ConsoleId). For global info (not PSVita dependant), see [PSConsoleId-wiki].

= Structure =

Chassis Revision &dArr; &dArr; 00000000 00 01 01 05 00 10 00 03                  &uArr; &uArr;   &uArr; &uArr; Target ID  SKU Model (Internal: Product Code) (Internal: Product Sub Code)

1st and 2nd bytes is the PSCode magic

3th and 4th bytes represent the Target ID TODO:list PSVita target id

5th and 6th bytes represent the Vita SKU Model

7th and 8th bytes represent the Chassis Revision

= Where is it used ? =

It is get in userland by _vshSblAimgrGetPscode, _vshSblAimgrGetPscode2, and used by sceRegMgrSrvCnvRegionPsCode.

It is get in kernel by sceSblAimgrGetPscodeForDriver, sceSblAimgrGetPscode2ForDriver, and used by sceRegMgrSrvCnvRegionPsCodeForDriver.

It is used by non-secure kernel and userland to determine the model of the device: - IsCEX, IsDEX, IsTool, IsTest - IsVita, IsDolce, IsGenuineVita, IsGenuineDolce

but also in userland to detect the region by the TargetId that it embeds.