This is a work-in-progress! If you have any information to add or a correection to be made, please do post it.
All values little-endian unless otherwise noted!
All data is big-endian unless otherwise noted!
Compression is zlib. Seriously, you can just pipe it through zlib.decompress().
Basic format:
ID 100 preview image (optional)
ID 1 rdram
ID 2 SP memory
ID 3 PIFram (from 1FC007C0)
ID 10 general-purpose registers (little-endian long longs)
ID 11 COP0 registers (little-endian data)
ID 12 COP1 registers (little-endian data)
ID 13 Floating-Point Control Register
ID 14 ??? (0x880)
ID 15 PC address
ID 16 ??? (single register)
ID 17 ??? (single register)
ID 19 RSP general purpose registers
ID 20 RSP Vector Registers
ID 21 RSP Flags
ID 22 RSP Accumulators
ID 30 RI registers
ID 31 SP registers
ID 32 MI registers
ID 33 ??? (9 registers)
ID 34 SI rdram address
ID 35 ??? (10 registers)
ID 36 VI registers
ID 37 PI registers
ID 38 DP registers
ID 39 ??? (8 registers)
ID 50 ??? (single register)
ID 51 ??? (single register)
ID 52 ??? (single register)
ID 53 ??? (single register)
ID 60 ??? (8 registers)
ID 70 ??? (single register)
ID 71 ??? (single register)
ID 72 ??? (single register)
ID 73 ??? (single register)
ID 82 SRAM (FLASH?)
preview image
0x0 4 ID: 100 (0x64)
0x4 4 uncompressed size; should be 0x9600, or 120x160 at 16bit color(?)
0x8 4 compressed size, or 0 if uncompressed
0xC var data
rdram
0x0 4 ID: 1
0x4 4 uncompressed size
0x8 4 compressed size, or 0 if uncompressed
0xC var data
SPmem
0x0 4 ID: 2
0x4 4 uncompressed size; overdumped to 0x4000
0x8 4 compressed size, or 0 if uncompressed
0xC var data; fill remaining 0x2000 with zeroes
PIFram
0x0 4 ID: 3
0x4 4 uncompressed size; always 0x40
0x8 4 compressed size, or 0 if uncompressed
0xC var data
general purpose registers
0x0 4 ID: 10
0x4 4 uncompressed size; always 0x100
0x8 4 compressed size, or 0 if uncompressed
0xC var data; little-endian long long format
COP0
0x0 4 ID: 11
0x4 4 uncompressed size; always 0x80
0x8 4 compressed size, or 0 if uncompressed
0xC var data; little-endian format
COP1
0x0 4 ID: 12
0x4 4 uncompressed size; always 0x80
0x8 4 compressed size, or 0 if uncompressed
0xC var data; little-endian format
FCR
0x0 4 ID: 13
0x4 4 uncompressed size; always 0x4
0x8 4 compressed size, or 0 if uncompressed
0xC var data; little-endian format
PC
0x0 4 ID: 15
0x4 4 uncompressed size; always 0x4
0x8 4 compressed size, or 0 if uncompressed
0xC var data; little-endian format
RSP GP
0x0 4 ID: 19
0x4 4 uncompressed size; always 0x80
0x8 4 compressed size, or 0 if uncompressed
0xC var data; little-endian format
RSP Vectors
0x0 4 ID: 20
0x4 4 uncompressed size; always 0x200
0x8 4 compressed size, or 0 if uncompressed
0xC var data; little-endian shorts
RSP Flags
0x0 4 ID: 21
0x4 4 uncompressed size; always 0x6
0x8 4 compressed size, or 0 if uncompressed
0xC var data; little-endian shorts
RSP Accumulators
0x0 4 ID: 22
0x4 4 uncompressed size; always 0x40
0x8 4 compressed size, or 0 if uncompressed
0xC var data; little-endian shorts, each accumulator padded to 0x8
RI
0x0 4 ID: 30
0x4 4 uncompressed size; always 0x20
0x8 4 compressed size, or 0 if uncompressed
0xC var data; little-endian format
SP
0x0 4 ID: 31
0x4 4 uncompressed size; always 0x20
0x8 4 compressed size, or 0 if uncompressed
0xC var data; little-endian format
SI
0x0 4 ID: 34
0x4 4 uncompressed size; always 0x4
0x8 4 compressed size, or 0 if uncompressed
0xC var data; little-endian format
VI
0x0 4 ID: 36
0x4 4 uncompressed size; always 0x38
0x8 4 compressed size, or 0 if uncompressed
0xC var data; little-endian format
PI
0x0 4 ID: 37
0x4 4 uncompressed size; always 0x34
0x8 4 compressed size, or 0 if uncompressed
0xC var data; little-endian format
DP
0x0 4 ID: 38
0x4 4 uncompressed size; always 0x20
0x8 4 compressed size, or 0 if uncompressed
0xC var data; little-endian format
SRAM/FLASH
0x0 4 ID: 82
0x4 4 uncompressed size; always 0x40000
0x8 4 compressed size, or 0 if uncompressed
0xC var data
All values little-endian unless otherwise noted!
All data is big-endian unless otherwise noted!
Compression is zlib. Seriously, you can just pipe it through zlib.decompress().
Basic format:
ID 100 preview image (optional)
ID 1 rdram
ID 2 SP memory
ID 3 PIFram (from 1FC007C0)
ID 10 general-purpose registers (little-endian long longs)
ID 11 COP0 registers (little-endian data)
ID 12 COP1 registers (little-endian data)
ID 13 Floating-Point Control Register
ID 14 ??? (0x880)
ID 15 PC address
ID 16 ??? (single register)
ID 17 ??? (single register)
ID 19 RSP general purpose registers
ID 20 RSP Vector Registers
ID 21 RSP Flags
ID 22 RSP Accumulators
ID 30 RI registers
ID 31 SP registers
ID 32 MI registers
ID 33 ??? (9 registers)
ID 34 SI rdram address
ID 35 ??? (10 registers)
ID 36 VI registers
ID 37 PI registers
ID 38 DP registers
ID 39 ??? (8 registers)
ID 50 ??? (single register)
ID 51 ??? (single register)
ID 52 ??? (single register)
ID 53 ??? (single register)
ID 60 ??? (8 registers)
ID 70 ??? (single register)
ID 71 ??? (single register)
ID 72 ??? (single register)
ID 73 ??? (single register)
ID 82 SRAM (FLASH?)
preview image
0x0 4 ID: 100 (0x64)
0x4 4 uncompressed size; should be 0x9600, or 120x160 at 16bit color(?)
0x8 4 compressed size, or 0 if uncompressed
0xC var data
rdram
0x0 4 ID: 1
0x4 4 uncompressed size
0x8 4 compressed size, or 0 if uncompressed
0xC var data
SPmem
0x0 4 ID: 2
0x4 4 uncompressed size; overdumped to 0x4000
0x8 4 compressed size, or 0 if uncompressed
0xC var data; fill remaining 0x2000 with zeroes
PIFram
0x0 4 ID: 3
0x4 4 uncompressed size; always 0x40
0x8 4 compressed size, or 0 if uncompressed
0xC var data
general purpose registers
0x0 4 ID: 10
0x4 4 uncompressed size; always 0x100
0x8 4 compressed size, or 0 if uncompressed
0xC var data; little-endian long long format
COP0
0x0 4 ID: 11
0x4 4 uncompressed size; always 0x80
0x8 4 compressed size, or 0 if uncompressed
0xC var data; little-endian format
COP1
0x0 4 ID: 12
0x4 4 uncompressed size; always 0x80
0x8 4 compressed size, or 0 if uncompressed
0xC var data; little-endian format
FCR
0x0 4 ID: 13
0x4 4 uncompressed size; always 0x4
0x8 4 compressed size, or 0 if uncompressed
0xC var data; little-endian format
PC
0x0 4 ID: 15
0x4 4 uncompressed size; always 0x4
0x8 4 compressed size, or 0 if uncompressed
0xC var data; little-endian format
RSP GP
0x0 4 ID: 19
0x4 4 uncompressed size; always 0x80
0x8 4 compressed size, or 0 if uncompressed
0xC var data; little-endian format
RSP Vectors
0x0 4 ID: 20
0x4 4 uncompressed size; always 0x200
0x8 4 compressed size, or 0 if uncompressed
0xC var data; little-endian shorts
RSP Flags
0x0 4 ID: 21
0x4 4 uncompressed size; always 0x6
0x8 4 compressed size, or 0 if uncompressed
0xC var data; little-endian shorts
RSP Accumulators
0x0 4 ID: 22
0x4 4 uncompressed size; always 0x40
0x8 4 compressed size, or 0 if uncompressed
0xC var data; little-endian shorts, each accumulator padded to 0x8
RI
0x0 4 ID: 30
0x4 4 uncompressed size; always 0x20
0x8 4 compressed size, or 0 if uncompressed
0xC var data; little-endian format
SP
0x0 4 ID: 31
0x4 4 uncompressed size; always 0x20
0x8 4 compressed size, or 0 if uncompressed
0xC var data; little-endian format
SI
0x0 4 ID: 34
0x4 4 uncompressed size; always 0x4
0x8 4 compressed size, or 0 if uncompressed
0xC var data; little-endian format
VI
0x0 4 ID: 36
0x4 4 uncompressed size; always 0x38
0x8 4 compressed size, or 0 if uncompressed
0xC var data; little-endian format
PI
0x0 4 ID: 37
0x4 4 uncompressed size; always 0x34
0x8 4 compressed size, or 0 if uncompressed
0xC var data; little-endian format
DP
0x0 4 ID: 38
0x4 4 uncompressed size; always 0x20
0x8 4 compressed size, or 0 if uncompressed
0xC var data; little-endian format
SRAM/FLASH
0x0 4 ID: 82
0x4 4 uncompressed size; always 0x40000
0x8 4 compressed size, or 0 if uncompressed
0xC var data