PSISOIMG0000: Difference between revisions

From PS3 Developer wiki
Jump to navigation Jump to search
Line 52: Line 52:
! 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)

Revision as of 02:49, 20 September 2012

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

EBOOT.PBP

Contents:

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

DATA.PSAR

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


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. All offsets are in little endian.

Patch for disabling the signature check in ps1_netemu

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)


Entries

  • Starting at 0x4000
  • Each entry represents 0x10 Sectors of the iso
  • One sector has 0x930 bytes (2352 bytes)
  • Sectors are compressed
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