Editing ISO.BIN.EDAT

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:
== ISO.BIN.EDAT ==
==ISO.BIN.EDAT==
 
This is an encryted container format, first step to work with it is to decrypt it <!--more info an internal links to other wiki pages needed--><br>
ISO.BIN.EDAT is an encryted container format. First step to work with it is to decrypt it <!--more info an internal links to other wiki pages needed-->
After decryption we shoould refer to it as ISO.BIN.DAT (without the "E"... so the EDAT became a DAT)
 
After decryption, we should refer to ISO.BIN.EDAT as ISO.BIN.DAT (without the "E"... so the EDAT became a DAT).


==ISO.BIN.DAT (decrypted)==
==ISO.BIN.DAT (decrypted)==
Line 51: Line 49:
! Cluster Nº !! Block Nº !! Offset !! Length !! Name !! Example !! Notes
! Cluster Nº !! Block Nº !! Offset !! Length !! Name !! Example !! Notes
|-
|-
| rowspan="28" style="background-color:#DDDDDD;" | 0 <br /> '''Disc map header''' || rowspan="3" style="background-color:#DDDDDD;" | 1 || 0x0000 || 0x00C (12 bytes) || '''magic''' || PSISOIMG0000 || In "PSP Minis" It's NPUMDIMG ([[Environments|NP]] UMD Image) ..... probably another for "ps2 classics" (speculation)
| rowspan="25" style="background-color:#DDDDDD;" | 0 <br /> '''Disc map header''' || rowspan="3" style="background-color:#DDDDDD;" | 1 || 0x0000 || 0x00C (12 bytes) || '''magic''' || PSISOIMG0000 || In "PSP Minis" It's NPUMDIMG ([[Environments|NP]] UMD Image) ..... probably another for "ps2 classics" (speculation)
|-
|-
| 0x000C || 0x004 (4 bytes) || '''section size''' || || Offset from the start of the PSISOIMG section to the next section<br>For uncompressed images this is usually 0x100000 + size of iso-image padded to 0x9300<br>If the disc contains CD-DA tracks then this number will also include all the ATRACK encoded audio that follows after the disk image.
| 0x000C || 0x004 (4 bytes) || '''section size''' || || Offset from the start of the PSISOIMG section to the next section<br>For uncompressed images this is usually 0x100000 + size of iso-image padded to 0x9300<br>If the disc contains CD-DA tracks then this number will also include all the ATRACK encoded audio that follows after the disk image.
Line 57: Line 55:
| 0x0010 || 0x3F0 (1008 bytes) || ''padding'' || ||
| 0x0010 || 0x3F0 (1008 bytes) || ''padding'' || ||
|-
|-
| rowspan="5" style="background-color:#DDDDDD;" | 2 || 0x0400 || 0x010 (16 bytes) || '''disc id''' || _SLES_12345 || in games with several discs each disc has a different id
| rowspan="2" style="background-color:#DDDDDD;" | 2 || 0x0400 || 0x010 (16 bytes) || '''disc id''' || _SLES_12345 || in games with several discs each disc has a different id
|-
| 0x0410 || 0x14 (20 bytes) || ''padding'' || ||
|-
| 0x0424 || 0x4 (4 bytes) || '''Ad hoc ps1 config revision''' || 0x12345 (bcd) || Ad hoc game config revision in bcd little endian.
|-
| 0x042C || up to 0x40 (64 bytes) || '''Ad hoc ps1 configs''' || 0x01, 0x40 || Ad hoc game configs in little endian. Single config is 4 bytes command and 4 bytes param for said command. Up to 8 Commands is supported. ps1_netemu only. ISO.BIN.EDAT exclusive.
|-
|-
| 0x046C || 0x394 (916 bytes) || ''padding'' || ||
| 0x0410 || 0x3F0 (1008 bytes) || ''padding'' || ||
|-
|-
| rowspan="2" style="background-color:#DDDDDD;" | 3 || 0x0800 || 0x3FС (1020 bytes) || '''[[ISO.BIN.EDAT#Disc toc table|Disc toc table]]''' || variable || Table of content, like CUE sheet, supports upto 99 entries (102 entries total)
| rowspan="2" style="background-color:#DDDDDD;" | 3 || 0x0800 || 0x3FС (1020 bytes) || '''[[ISO.BIN.EDAT#Disc toc table|Disc toc table]]''' || variable || Table of content, like CUE sheet, supports upto 99 entries (102 entries total)
Line 75: Line 67:
| rowspan="5" style="background-color:#DDDDDD;" | 5 || 0x1000 || 0x220 (544 bytes) || '''[[ISO.BIN.EDAT#Audio tracks table|Audio tracks table]]''' || || Datas of audio tracks (66-99). offset, size, and more
| rowspan="5" style="background-color:#DDDDDD;" | 5 || 0x1000 || 0x220 (544 bytes) || '''[[ISO.BIN.EDAT#Audio tracks table|Audio tracks table]]''' || || Datas of audio tracks (66-99). offset, size, and more
|-
|-
| 0x12B0 || 0x004 (4 bytes) || '''Libcrypt Magic Word''' || 0x1234 || Little endian. Magic word is used as an answer to COP0 BPC reads for libcrypt games.
| 0x1220 || 0x0B4 (180 bytes) || '''[[ISO.BIN.EDAT#Game params table|Game params table]]''' || || <!-- doesnt makes sense to start using a block with a padding, i bet it was an unused area in the file/s i was looking at when i made this table -->
|-
|-
| 0x12D4 || 0x004 (4 bytes) || '''subchannel offset''' || 0x100400 || Offset to where subchannel data is stored. This is used with libcrypt.
| 0x12D4 || 0x004 (4 bytes) || '''subchannel offset''' || 0x100400 || Offset to where subchannel data is stored. This is used with libcrypt.
|-
|-
| 0x12D8 || 0x004 (4 bytes) || '''subchannel count''' || 0x178 || Number of subchannel blocks. Each block is 12 bytes.
| 0x12D8 || 0x004 (4 bytes) || '''subchannel count''' || 0x178 || Number of subchannel blocks. Each block is 12 bytes. Content is unknown.
|-
|-
| 0x12DC || 0x124 (292 bytes) || ''padding'' || ||
| 0x12DC || 0x124 (292 bytes) || ''padding'' || ||
Line 162: Line 154:
The audio tracks themselves are raw ATRAC3 streams without a header.
The audio tracks themselves are raw ATRAC3 streams without a header.
One way to create such blobs is to use the atracdenc encoder and strip of the first 0x60 bytes which is the header. The resulting blob is what the Audio tracks table entries will point to.
One way to create such blobs is to use the atracdenc encoder and strip of the first 0x60 bytes which is the header. The resulting blob is what the Audio tracks table entries will point to.
====Game params table====
There is a setting related with PS1 libcrypt protection in this area (located at <s>relative</s> absolute offset 0x12B0 into the PSISOIMG0000 section, length 0x4 little endian), see: [https://www.psx-place.com/threads/ps1-libcrypt-support-on-ps3-official-emus-research-thread.35836/page-7#post-316873 talk].
Libcrypt in emulator is supported by supplying ready 16 bit key in little endian format (0xA371 in CTR example).
List of keys can be obtained using [https://github.com/Red-J/LibcryptMagic-Word-Finder-PSX Libcrypt Magic Word Finder PSX]
List of keys can also be found in pop-fe/gamedb.py


====Disc map table====
====Disc map table====
Line 215: Line 214:
|-
|-
|-
|-
| rowspan="9" style="background-color:#DDDDDD;" | 1 or 2? || Sector || 0x00 || 4 || || Sector number - 150
| rowspan="9" style="background-color:#DDDDDD;" | 1 or 2? || Sector || 0x00 || 4 || ||  
|-
|-
| Track Number || 0x04 || 1 || 0x01 || Always 0x01
| Track Number || 0x04 || 1 || ||  
|-
|-
| Index || 0x05  || 1 || 0x01 || Always 0x01
| Index || 0x05  || 1 || ||
|-
|-
| Pmin(relative) || 0x06 || 1 || ||  
| Pmin(relative) || 0x06 || 1 || ||  
Line 427: Line 426:


=== Decrypting with PSL1GHT ===
=== Decrypting with PSL1GHT ===
 
* https://github.com/euss/psp_edat_decryptor (not my code, just git'ed it for convenience)
* broken github: https://github.com/euss/psp_edat_decryptor (git'ed by euss for convenience)
* mirrors: [http://mir.cr/0XXBT99Z], [http://mir.cr/1SNVEH2D], [http://mir.cr/ZKZJFPET]
* broken mirrors: [http://mir.cr/0XXBT99Z], [http://mir.cr/1SNVEH2D], [http://mir.cr/ZKZJFPET]


=== Generate the subchannel blob ===
=== Generate the subchannel blob ===
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)