Radiata Stories
Reverse-engineering reference for the PlayStation 2 game.
What the disc holds, how the engine boots it, and how the formats inside
are laid out — traced back to the instructions that read them.
Boot sequenceFrom the ISO9660 descriptor volume through the IOP kernel reboot, the two executions of main, and the scrambled 3-plane table of contents that resolves the filesystem.
Pure ContainersDocumentation of the container formats used by the Radiata Stories Filesystem.
RMF — message formatThe container behind every piece of displayable text: header, packets, the 16-bit token stream, both opcode spaces, layout mathematics and embedded glyph tiles. Six parts.
EVD — event scriptThe bytecode behind cutscenes, NPC behaviour and battle setup: container, instruction encoding, execution model, control flow, and a page for each of the 138 opcodes.
Events — the event chainDisk file 186 and the 859 cutscene scripts inside it: how each one is packed, the six ways the engine starts one, the flags that gate each start, which scripts depend on the one before them, and a reference row for every script.
Method and conventionsWhich builds are covered, what confirmed and inferred mean here, and how addresses are cited.
Builds covered
Section titled “Builds covered”Three executables are used throughout. Where they disagree, the difference is stated rather than averaged away.
| Build | Identifier | Role |
|---|---|---|
| Debug (proto) | SLUS-21262 |
The prototype. Retains assertions, symbol names and debug overlays, so it is the primary source for structure. |
| USA release | SLUS-21262 |
Retail. Same main code as the Japanese release, function for function. |
| Japanese release | SLPM-65800 |
Retail. Differs from the English builds in the RMF header and in several text metrics. |
All three share identical IOP kernel images and identical custom ELFs. The two
retail builds also share their main code — every function sits at the same
address in both — though the files themselves are not byte-identical. Where they
genuinely diverge is the overlays, which is why addresses are given per build
throughout.