PSISOIMG0000

From PS3 Developer wiki
Revision as of 03:09, 17 August 2023 by Mrjaredbeta (talk | contribs) (→‎Extract ISOs)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

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, probably ignored by ps1_netemu)
0x1220 special data (encrypted)
0x100000 start of the iso

ISO.BIN

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

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

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

Entries

  • 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

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