< return to posts
posted on 01 Nov 2018
◉
The executable format for PSX game consoles is different from standard PE or ELF executable formats. The PSX runtime library expects executable files to be in a specific structure that is outlined in the runtime library reference document.
The first 0x800
bytes comprise a standard header format, which is immediately followed by the TEXT
section of the binary.
The header format is as follows. All multi-byte numerical addresses are little-endian.
0x000 [8 bytes] = "PS-X EXE" (magicnum)
0x010 [4 bytes] = execution start address
0x018 [4 bytes] = starting address of TEXT section
0x01C [4 bytes] = size of text section
0x030 [4 bytes] = stack ($sp) start address
0x04C [variable] = "Sony Computer Entertainment Inc. for North America area"
(region-specific)
The TEXT
section must be stored at an address which is a multiple of 2048 bytes.