Reference
Lookup tables for key functions, the PSX RAM map, and cross-region build differences.
Reference pages
Key functions
A directory of Ghidra-traced anchor functions across the codebase. Boot, asset loader, the runtime VMs, BIOS thunks, libsnd/libspu, GTE primitives, libcd, the battle and effect systems.
PSX RAM map
2 MB main RAM. Where SCUS_942.54 loads, where overlays live, where the global game state lives, where the actor table is, where the scratchpad is.
Cheat databases
Third-party GameShark / Mednafen cheat-code dumps as a ground-truth source for RAM addresses. Format reference, parser overview, citation table, and runtime applier wired into
legaia-engine play-window --cheat-file.Curated game-data tables
Arts, magic, items, weapons, armor, accessories, enemies, shops, casino, and fishing tables mined from public walkthroughs. Acts as ground-truth labels for the binary records being reverse-engineered (PROT entry
0x05C4, RAM character struct, drop tables).Music-track disambiguation
Every BGM cue cross-referenced across its four naming spaces: the debug sound-test ID + working title, the in-game context it plays in, the official OST album title, and a proposed relocalization title. The human-readable label layer for the extracted SEQ/BGM tracks. Curated reference (Stann0x).
Builds + region differences
14 known builds across NA / JP / EU / Demo / preview / debug. SCUS-94254 is the NA build the project targets.
Open RE threads
Index of still-open reverse-engineering hunts (kingdom slot-4 record semantic, PROT 0874 outer producer, per-Seru growth rates, …) plus the resolved threads and falsified hypotheses worth not re-walking. Question-level companion to the port catalog's function-level worklist.
Acknowledgments
Reverse engineering stands on prior work. The findings here lean on:
- The Cutting Room Floor - developer attribution (Prokion / Contrail), debug-flag addresses, and the catalog of 14 known builds.
- Sam Ste's PROT.DAT unpacker - an early Python proof-of-concept that pointed at the right TOC slots and the TIM-pack heuristic.
- ZetaPhoenix's "Legaia Arts Data" spreadsheet - public Google Sheets catalog of the Tactical Arts / Miracle Arts / Super Arts trigger strings and finisher replacements. The
legaia-artMiracleMatcher/SuperMatchertables (crates/art/src/miracle.rs,super_art.rs) cross-reference and validate against it. - Meth962's "Legend of Legaia 100% Walkthrough" (GameFAQs) - the v1.10 "all Enemy stats section" + Seru-magic + magic-leveling tables ground three layers of
legaia-gamedata.enemies.tomlcarries Meth's per-enemy HP / MP / EXP / Gold / ATK / SPD / UDF / LDF / INT / AGL / element columns for every entry (extracted from in-RAM memory, so fan-recorded values rather than retail-binary-extracted constants - useful as labels for the binary monster recordscrates/asset/src/monster_archive.rsdecodes from PROT 0867).bosses.tomlis rewritten around the per-fight layer (named attacks + MP cost, XP / gold / item rewards, recommended party level) for all 18 main-story B-code bosses plus the Lapis superboss.magic.tomlgrowsabsorb_lv1/absorb_lv2/absorb_lv3integer-percent fields per Seru spell (Gimard 55/60/80, Gilium 1/1/1, the full 21-spell table); the per-cast XP curve and damage-scaling multipliers live inlegaia_gamedata::magic_leveling. - Henrique Stanke Scandelari (Stann0x) - a music-track disambiguation that cross-references every BGM cue across its four naming spaces (the internal debug sound-test ID + working title, the in-game context it plays in, the official OST title, and a proposed relocalization title); the human-readable label layer for the extracted SEQ/BGM tracks, in the same curated-reference spirit as the game-data tables above.
- The PSX scene generally - Sony PsyQ documentation, Martin Korth's PSX-SPX, and decades of accumulated TIM / TMD / SPU documentation.
- Reference projects whose legal pattern this repo follows: ScummVM, OpenRCT2, OpenMW, OpenLara.