Program Vender Id: Difference between revisions

From PS3 Developer wiki
Jump to navigation Jump to search
No edit summary
 
(2 intermediate revisions by the same user not shown)
Line 1: Line 1:
For some reason it was named program_vendor_id.
Temp name was Vendor ID. Official name is program_vender_id.


== PS3 ==
== PS3 ==
Line 5: Line 5:
In geohot's makeself it was used as: <code>set_u32(&(output_self_info_header.i_magic), 0x01000002);</code>.
In geohot's makeself it was used as: <code>set_u32(&(output_self_info_header.i_magic), 0x01000002);</code>.


Not directly related to [[Authority ID]], but seems to have many similarities with it (vendorid = 2nd-9th bytes of authid). It seems also related to [[Hypervisor_Reverse_Engineering#Active_System_Managers_in_HV_dump_3.15|SM ; LPAR's]] and their order suggests hierarchy/permission from high (can do everything) to low (lesser abilities).
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 [[Hypervisor_Reverse_Engineering#Active_System_Managers_in_HV_dump_3.15|SM ; LPAR's]] and their order suggests hierarchy/permission from high (can do everything) to low (lesser abilities).


{| class="wikitable sortable"
{| class="wikitable sortable"
|-
|-
! VendorID !! count !! filetype
! program_vender_id !! Count !! File type
|-
|-
| 0x00000000 || ? || lv0 / lv1 only before SDK 060
| 0x00000000 || ? || lv0 / lv1 only before SDK 060
Line 33: Line 33:


<source lang="C">
<source lang="C">
typedef struct program_vendor_id {
typedef struct program_vender_id {
   uint16_t territory;
   uint16_t territory;
   uint16_t guest_os_id;
   uint16_t guest_os_id;
} program_vendor_id;
} program_vender_id;
</source>
</source>


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


=== Territory ===
=== Territory ===
To document.


=== Guest OS ID ===
=== Guest OS ID ===

Latest revision as of 16:23, 25 December 2019

Temp name was Vendor ID. Official name is program_vender_id.

PS3[edit | edit source]

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

PSVita[edit | edit source]

On PSVita always 00 00 00 00.

Structure[edit | edit source]

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[edit | edit source]

To document.

Guest OS ID[edit | edit source]

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