Editing LIC.DAT

Jump to navigation Jump to search
Warning: You are not logged in. Your IP address will be publicly visible if you make any edits. If you log in or create an account, your edits will be attributed to your username, along with other benefits.

The edit can be undone. Please check the comparison below to verify that this is what you want to do, and then publish the changes below to finish undoing the edit.

Latest revision Your text
Line 1: Line 1:
== Description ==
== Description ==
*Checked within Level 2 Kernel and possible via lv2syscall476
*Checked within Level 2 Kernel and possible via lv2syscall476<br>.
*File size is always 0x10000 Bytes.
*File size is always 0x10000 Bytes.
*Paths
*Paths
Line 54: Line 54:
| 0x8 || 0x4 || 0x00000001 || '''version''' || DAT structure version
| 0x8 || 0x4 || 0x00000001 || '''version''' || DAT structure version
|-
|-
| 0xC || 0x4 || 0x80000000 || '''flag''' || 0x80000000 = '''Retail''' (used in LIC.DAT under directory PS3_GAME)<br>0x00000000 = '''Debug''' (used in LIC.DAT under directory PS3_GM01, PS3_GM02, etc...)
| 0xC || 0x4 || 0x80000000 || '''flag''' <!--type of what, master/retail disc?... or type of the EBOOT.BIN asociated with the first license in the table?--> || 0x80000000 = retail (used in LIC.DAT under directory PS3_GAME)<br>0x00000000 = debug (used in LIC.DAT under directory PS3_GM01, PS3_GM02, etc...)
|-
|-
| 0x10 || 0x4 || 0x00000900 || '''lic_table_end''' || License table absolute end offset. Calculated by: '''lic_table_start + (lic_num * lic_size)'''
| 0x10 || 0x4 || 0x00000900 || '''lic_table_end''' || License table, absolute end offset. Calculated by: ''license table start + (license amounts * license size)''
|-
|-
| 0x14 || 0x4 || 0x00000800 || '''lic_table_start''' || License table absolute start offset. Always found 0x800 (static)
| 0x14 || 0x4 || 0x00000800 || '''lic_table_start''' || License table, absolute start offset. Always found 0x800 (static)
|-
|-
| 0x18 || 0x4 || 0x00000100 || '''lic_size''' || The '''size of a license entry''' inside the license table. Always found 0x100 (static)
| 0x18 || 0x4 || 0x00000100 || '''lic_size''' || License size. Always found 0x100 (static)
|-
|-
| 0x1C || 0x4 || 0x00000001 || '''lic_num''' || The '''number of licenses entries''' inside the license table.<br>0x1 = Single boot disc<br>0x2 = Dual boot disc<br>0x3 = Triple boot disc<br>Etc...
| 0x1C || 0x4 || 0x00000001 || '''lic_num''' || License amount. Values found: 0x1 (single boot discs), 0x2 (dual boot discs), 0x3 (triple boot discs)
|-
|-
| 0x20 || 0x4 || 0x8CD3A9D8 || '''crc32''' || CRC32 of an area starting form absolute offset '''0x0 up to the lic_table_end''' (including the CRC32 placeholder filled with zeroes)
| 0x20 || 0x4 || 0x8CD3A9D8 || '''crc32''' || CRC32 from the first byte of LIC.DAT till the end of license table (includes the CRC32 placeholder filled with zeroes)
|-
|-
| 0x24 || ? || 0x0000... || '''padding''' || The header length is unknown, probablly is aligned to 0x200 but there are lot of zeroes up to 0x800
| 0x24 || ? || 0x0000... || '''padding''' || is unknown where the header ends, probablly aligned to 0x200 but there are much more zeroes after it
|}
|}


Line 81: Line 81:
| 0x1 || 0x0A (if '''id_type''' = 0x01)<br>0x2A (if '''id_type''' = 0x02)<br>0x25 (if '''id_type''' = 0x03) || 'BLES01623' || '''id''' || Bootable content identifyer (EBOOT.BIN related)
| 0x1 || 0x0A (if '''id_type''' = 0x01)<br>0x2A (if '''id_type''' = 0x02)<br>0x25 (if '''id_type''' = 0x03) || 'BLES01623' || '''id''' || Bootable content identifyer (EBOOT.BIN related)
|-
|-
| 0x0B (if '''id_type''' = 0x01)<br>0x2B (if '''id_type''' = 0x02)<br>0x26 (if '''id_type''' = 0x03) || up to 0x100 || 0x0000.... || '''padding''' || padding to fill the entry with zeroes up to the '''lic_size''' specifyed in the header
| 0x0B (if '''id_type''' = 0x01)<br>0x2B (if '''id_type''' = 0x02)<br>0x26 (if '''id_type''' = 0x03) || up to '''lic_size''' || 0x0000.... || '''padding''' || padding to fill the entry with zeroes up to the "license size" specifyed in the header
|}
|}


Line 96: Line 96:


== Multiboot PS3 Game Discs ==
== Multiboot PS3 Game Discs ==
There is a special type of PS3 game disc that contains several EBOOT.BIN with several LIC.DAT files. These LIC.DAT files are a bit special because contains the TITLE_ID of all the EBOOT.BIN files of the disc. Some examples of games using this multiboot disc structure are: [https://gamefaqs.gamespot.com/ps3/712099-metal-gear-solid-the-legacy-collection/data Metal Gear Solid The Legacy Collection, Disc 1] (BLJM-91001 on PS3_DISC.SFB), and [https://gamefaqs.gamespot.com/ps3/108529-fighting-edition-tekken-6-tekken-tag-tournament-2/data Fighting edition] (BLES-02129 on PS3_DISC.SFB).
There is a special type of PS3 game disc that contains several EBOOT.BIN with several LIC.DAT files. These LIC.DAT files are a bit special because contains the TITLE_ID of all the EBOOT.BIN files of the disc. Some examples of games using this multiboot disc structure are: ''Metal Gear Solid The Legacy Collection'' (BLJM-91001 on PS3_DISC.SFB), and ''Fighting edition'' (BLES-02129 on PS3_DISC.SFB).


The path names (PS3_GM01, PS3_GM02, etc...) only allows for 2 digits in decimal format... so up to PS3_GM99 + main bootable content in PS3_GAME makes a total of 100.
The path names (PS3_GM01, PS3_GM02, etc...) only allows for 2 digits in decimal format... so up to PS3_GM99 + main bootable content in PS3_GAME makes a total of 100.
Line 106: Line 106:
*dev_bdvd/PS3_GAME/LICDIR/LIC.DAT
*dev_bdvd/PS3_GAME/LICDIR/LIC.DAT
**Header
**Header
***'''<span style="background:#aCa9a3;">magic</span>''' "PS3LICDA"
***<span style="background:#aCa9a3;">magic</span> "PS3LICDA"
***'''<span style="background:#968592;">version</span>''' 1
***<span style="background:#968592;">version</span> 1
***'''<span style="background:#66ff66;">flag</span>''' 0x80000000 (retail)
***<span style="background:#66ff66;">flag</span> 0x80000000 (retail)
***'''<span style="background:#ff66ff;">lic_table_end</span>''' 0x0A00
***<span style="background:#ff66ff;">lic_table_end</span> 0x0A00
***'''<span style="background:#f6ff6f;">lic_table_start</span>''' 0x0800
***<span style="background:#f6ff6f;">lic_table_start</span> 0x0800
***'''<span style="background:#9f96f6;">lic_size</span>''' 0x0100
***<span style="background:#6f66f6;">lic_size</span> 0x0100
***'''<span style="background:#6ffff6;">lic_num</span>''' 2  
***<span style="background:#6ffff6;">lic_num</span> 2  
***'''<span style="background:#C1C132;">crc32</span>''' 01 0F 95 0E
***<span style="background:#C1C132;">crc32</span> 01 0F 95 0E
**First License (located at offset 0x800, for the EBOOT.BIN under directory PS3_GAME)
**Licenses
***'''id_type''' = 0x01
***First license, type 0x01 = BLJM61001 @ offset 0x800 (for EBOOT.BIN under directory PS3_GAME)
***'''id''' = BLJM61001
***Second license, type 0x01 = BLJM60351 @ offset 0x900 (for EBOOT.BIN under directory PS3_GM01)
**Second License (located at offset 0x900, for EBOOT.BIN under directory PS3_GM01)
***'''id_type''' = 0x01
***'''id''' = BLJM60351


  00000000  <span style="background:#aCa9a3;">50 53 33 4C 49 43 44 41</span> <span style="background:#968592;">00 00 00 01</span> <span style="background:#66ff66;">80 00 00 00</span>  PS3LICDA....€...
  00000000  <span style="background:#aCa9a3;">50 53 33 4C 49 43 44 41</span> <span style="background:#968592;">00 00 00 01</span> <span style="background:#66ff66;">80 00 00 00</span>  PS3LICDA....€...
  00000010  <span style="background:#ff66ff;">00 00 0A 00</span> <span style="background:#f6ff6f;">00 00 08 00</span> <span style="background:#9f96f6;">00 00 01 00</span> <span style="background:#6ffff6;">00 00 00 02</span>  ................
  00000010  <span style="background:#ff66ff;">00 00 0A 00</span> <span style="background:#f6ff6f;">00 00 08 00</span> <span style="background:#6f66f6;">00 00 01 00</span> <span style="background:#6ffff6;">00 00 00 02</span>  ................
  00000020  <span style="background:#C1C132;">01 0F 95 0E</span> 00 00 00 00 00 00 00 00 00 00 00 00  ..•.............
  00000020  <span style="background:#C1C132;">01 0F 95 0E</span> 00 00 00 00 00 00 00 00 00 00 00 00  ..•.............
  ...
  ...
Please note that all contributions to PS3 Developer wiki are considered to be released under the GNU Free Documentation License 1.2 (see PS3 Developer wiki:Copyrights for details). If you do not want your writing to be edited mercilessly and redistributed at will, then do not submit it here.
You are also promising us that you wrote this yourself, or copied it from a public domain or similar free resource. Do not submit copyrighted work without permission!

To protect the wiki against automated edit spam, we kindly ask you to solve the following hCaptcha:

Cancel Editing help (opens in new window)