PSISOIMG0000: Difference between revisions

From PS3 Developer wiki
Jump to navigation Jump to search
(Created page with "This format is used for PSONE Classics on PS3 and PSP. == DATA.PSAR == * Contains the ISO (usually compressed) {| class="wikitable" |- ! Offset !! Notes |- | 0x0 || PSISOIMG...")
 
 
(11 intermediate revisions by 3 users not shown)
Line 1: Line 1:
This format is used for PSONE Classics on PS3 and PSP.
This format is used for PSONE Classics on PS3 and PSP.
== EBOOT.PBP ==
Contents:
* [[Eboot.PBP#PARAM.SFO|PARAM.SFO]]
* ICON0.PNG
* ICON1.PMF
* PIC0.PNG
* PIC1.PNG
* SND0.AT3
* DATA.PSP
* DATA.PSAR


== DATA.PSAR ==
== DATA.PSAR ==
Line 9: Line 20:
| 0x0 || PSISOIMG0000
| 0x0 || PSISOIMG0000
|-
|-
| 0x400 || iso header (encrypted)
| 0x400 || iso header (encrypted, probably ignored by ps1_netemu)
|-
|-
| 0x1220 || special data (encrypted)
| 0x1220 || special data (encrypted)
Line 16: Line 27:
|-
|-
|}
|}


==ISO.BIN==
==ISO.BIN==
This file helps the PS3 to verify the content of DATA.PSAR (and maybe to decrypt the iso header). At the end of the file, there is a signature which can be used to verify the contents.
This file helps the PS3 to verify the content of DATA.PSAR. It is a copy of the iso header. At the end of the file, there is a signature which can be used to verify the contents.
All offsets are in little endian.
All offsets are in little endian.


Line 30: Line 40:
* tested manually (without mfw creator)
* tested manually (without mfw creator)


=== Structure ===
{| class="wikitable"
|-
! Offset !! Notes
|-
| 0x0 || PSISOIMG0000
|-
| 0x400 || iso header (decrypted)
|-
| 0x4000 || start of entries
|-
|}


=== Entries ===
=== Entries ===
Line 36: Line 58:
* One sector has 0x930 bytes (2352 bytes)
* One sector has 0x930 bytes (2352 bytes)
* Sectors are compressed
* Sectors are compressed
* same entries can be found in the decrypted iso_header of the EBOOT.PBP


{| class="wikitable"
{| class="wikitable"
Line 41: Line 64:
! Entry Nº !! Offset !! Length !! Name !! Example !! Notes
! Entry Nº !! Offset !! Length !! Name !! Example !! Notes
|-
|-
| rowspan="5" style="background-color:#DDDDDD;" | 1 || 0x00 || 4 bytes (0x04) || '''offset in iso''' || 0 || offset from start of the iso inside of DATA.PSAR
| rowspan="5" style="background-color:#DDDDDD;" | 1 || 0x00 || 4 bytes (0x04) || '''offset in iso''' || 0 || offset relative to start of the iso inside of DATA.PSAR
|-
|-
| 0x04 || 2 bytes (0x02) || '''size''' || variable || size of 0x10 sectors (compressed, if not 0x9300)
| 0x04 || 2 bytes (0x02) || '''size''' || variable || size of 0x10 sectors (compressed, if not 0x9300)
Line 54: Line 77:
|-
|-
|}
|}
== Extract ISOs ==
you can use this app to get plain isos out of the eboot.pbp: [[https://github.com/xdotnano/PSXtract]]
{{File Formats}}<noinclude>[[Category:Main]]</noinclude>

Latest revision as of 04:09, 17 August 2023

This format is used for PSONE Classics on PS3 and PSP.

EBOOT.PBP[edit | edit source]

Contents:

  • PARAM.SFO
  • ICON0.PNG
  • ICON1.PMF
  • PIC0.PNG
  • PIC1.PNG
  • SND0.AT3
  • DATA.PSP
  • DATA.PSAR

DATA.PSAR[edit | edit source]

  • Contains the ISO (usually compressed)
Offset Notes
0x0 PSISOIMG0000
0x400 iso header (encrypted, probably ignored by ps1_netemu)
0x1220 special data (encrypted)
0x100000 start of the iso

ISO.BIN[edit | edit source]

This file helps the PS3 to verify the content of DATA.PSAR. It is a copy of the iso header. At the end of the file, there is a signature which can be used to verify the contents. All offsets are in little endian.

Patch for disabling the signature check in ps1_netemu[edit | edit source]

set search "\xE8\x7F\x01\x80\xE9\x61\x00\x00\xE8\x0B\x00\x10\x7C\x08\x03\xA6"
set replace "\x38\x60\x00\x00"

catch_die {:: patch_elf $elf $search 0 $replace} "Unable to patch self [file tail $elf]"

  • tested manually (without mfw creator)

Structure[edit | edit source]

Offset Notes
0x0 PSISOIMG0000
0x400 iso header (decrypted)
0x4000 start of entries

Entries[edit | edit source]

  • Starting at 0x4000
  • Each entry represents 0x10 Sectors of the iso
  • One sector has 0x930 bytes (2352 bytes)
  • Sectors are compressed
  • same entries can be found in the decrypted iso_header of the EBOOT.PBP
Entry Nº Offset Length Name Example Notes
1 0x00 4 bytes (0x04) offset in iso 0 offset relative to start of the iso inside of DATA.PSAR
0x04 2 bytes (0x02) size variable size of 0x10 sectors (compressed, if not 0x9300)
0x06 2 bytes (0x02) type ? 01 00 usually 1... and 0 for the last entry
0x08 16 bytes (0x10) sha1 variable first 0x10 bytes of sha1 sum of 0x10 disc sectors
0x18 8 bytes (0x08) padding
Up to 32256 same structure than the previous entry

Extract ISOs[edit | edit source]

you can use this app to get plain isos out of the eboot.pbp: [[1]]