Program Vender Id

From PS3 Developer wiki
Revision as of 03:09, 1 January 2025 by CelesteBlue (talk | contribs)
Jump to navigation Jump to search

Temp name was Vendor ID. Official name is program_vender_id.

PS3

In geohot's makeself it was used as: set_u32(&(output_self_info_header.i_magic), 0x01000002);.

Not directly related to Authority ID, but for PS3, it seems to have many similarities with it (program_vender_id = 2nd-9th bytes of program_authority_id). It seems also related to SM ; LPAR's and their order suggests hierarchy/permission from high (can do everything) to low (lesser abilities).

program_vender_id Count File type
0x00000000 ? lv0 / lv1 only before SDK 060
0x33000077 ? *ldr / lv0 / lv1 only on SDK 060
0xFF000000 16 lv1.self's
0x07000001 180 iso spu self's
0x05000002 17 lv2_kernel.self's
0x02000003 45 ps2_emu self's
0x01000002 6147 CoreOs / dev_flash files / Games

PS Vita and PS4

On PS Vita and PS4 the Program Vender Id area is always zeroed so this section has maybe been replaced by padding.

Structure

typedef struct program_vender_id {
  uint16_t territory;
  uint16_t guest_os_id;
} program_vender_id;

Note: first byte is territory value, last byte is guest_os_id. ?because of endianness that struct would be wrong then?

Territory

To document.

Guest OS ID

Guest OS ID Description
0x0000 None
0x0001 PME
0x0002 LV2
0x0003 PS2Emu
0x0004 Linux