
PSX · SCUS-94254 · 1998
Legend of Legaia, taken apart and running again.
A from-scratch Rust port of the 1998 PlayStation RPG that you can play in this tab, every model, texture, tune and cutscene on the disc laid open, a patcher that mods your own copy, and the documentation of how the game works underneath.
playable The whole game runs in the port, New Game to the credits: towns and dungeons, battles, menus, shops, saves, minigames, music and cutscenes. Where it stands has the measured detail and the known gaps.
No Sony data shipped — bring your own disc image
Insert your disc image — pick your
.bin once and every
page on this site reads from it.Read locally, cached in this browser, shared across
pages. Nothing is ever uploaded. No image yet? Make one from your disc.
Where it stands
the port, measured- works
Towns, dungeons and the world mapWalk, talk, open chests, ride the story scripts from a New Game to the credits. The same scene scripts the original runs, interpreted by the port.
- works
BattlesRandom and boss encounters, Tactical Arts, Seru magic and summons, items, spoils and level-ups.
- works
Menus, shops, inns and savesThe pause menu, equipment, shops and inns, and saving and loading - including real memory-card saves.
- works
MinigamesFishing, the slot machine, Baka Fighter, Noa's dance and the Muscle Dome, each on its own page too, beside the port's own custom game modes.
- works
Music, sound and cutscenesSequenced music and sound effects through a recreated sound chip, voice streams, and the full-motion videos.
- known gaps
Still being polishedExpect the occasional bug, and some scenes and effects do not yet match the original frame for frame. The numbers below are measured against the retail game, not estimated.
Beyond the original: enhanced lighting with a time-of-day mood, see-through walls around the player, ambient occlusion and a photosensitivity guard on the flashing palettes are on by default; bloom, volumetric ground fog, free-angle movement and VR are a toggle away, and so is the retail look (every knob). For a playthrough on real hardware or an emulator, the ROM patcher's mods apply to your own disc.
How far it plays
35/35
story milestones, New Game to the credits in one unbroken run on pad input
99.3%
mean frame match against retail, across 700+ captured states (747 with a scored frame)
How much is traced and ported
100.0%
of the executable's code traced in Ghidra
100.0%
of disc bytes resolve to a documented format
1053
retail functions reimplemented in Rust
100.0%
of ported code a host is owed for, wired
How much is checked against retail's own code
Port status by code image
16 of 19 game images completeThe game's logic ships as one executable plus overlays the disc swaps in per mode. Each card counts the functions the disc places in that image: ported to Rust, covered natively by the engine (PsyQ libraries, BIOS, GPU and CD plumbing, data-driven layers), no retail behaviour to carry (unreferenced, dev-only or empty), and the empty remainder of the bar is what is still open. Code identified is the share of the image's code bytes inside an identified function, so a 100% never hides code nobody has looked at.
Main executable
Engine core, script VMs, PsyQ libraries SCUS_942.54
99.9%of 1,011 functions
348 ported · 613 native · 49 no behaviour · 1 open
code identified 100.0%
code identified 100.0%
Seru magic + cast modulesFully ported
One module per Seru spell or enemy cast PROT 0903-0966
100.0%of 189 functions
178 ported · 10 native · 1 no behaviour · 0 open · 64 of 64 modules complete
code identified 100.0%
code identified 100.0%
Battle
Battle state machine, damage, effects PROT 0898
99.0%of 102 functions
96 ported · 2 native · 3 no behaviour · 1 open
code identified 100.0%
code identified 100.0%
Field / event VMFully ported
Towns, dungeons, dialogue, the world map PROT 0897
100.0%of 160 functions
145 ported · 12 native · 3 no behaviour · 0 open
code identified 100.0%
code identified 100.0%
Menu, shop + save
Pause menu, equipment, shops, save screen PROT 0899
99.2%of 131 functions
123 ported · 5 native · 2 no behaviour · 1 open
code identified 100.0%
code identified 100.0%
FishingFully ported
Minigame PROT 0972
100.0%of 53 functions
49 ported · 3 native · 1 no behaviour · 0 open
code identified 100.0%
code identified 100.0%
Baka FighterFully ported
Duel minigame PROT 0976
100.0%of 43 functions
37 ported · 6 native · 0 open
code identified 100.0%
code identified 100.0%
DanceFully ported
Noa's rhythm minigame PROT 0980
100.0%of 25 functions
25 ported · 0 native · 0 open
code identified 100.0%
code identified 100.0%
Slot machineFully ported
Casino minigame PROT 0975
100.0%of 24 functions
14 ported · 9 native · 1 no behaviour · 0 open
code identified 100.0%
code identified 100.0%
Battle introFully ported
Field-to-battle transition PROT 0979
100.0%of 17 functions
16 ported · 0 native · 1 no behaviour · 0 open
code identified 100.0%
code identified 100.0%
Muscle DomeFully ported
Arena roster + contest hub PROT 0977
100.0%of 18 functions
17 ported · 0 native · 1 no behaviour · 0 open
code identified 100.0%
code identified 100.0%
Field render libraryFully ported
Slot-B ground + decoration renderer for field scenes PROT 0900
100.0%of 12 functions
11 ported · 1 native · 0 open
code identified 100.0%
code identified 100.0%
World map rendererFully ported
Kingdom-map terrain companion PROT 0901
100.0%of 3 functions
1 ported · 2 native · 0 open
code identified 100.0%
code identified 100.0%
FMV playerFully ported
STR / MDEC movie playback PROT 0970
100.0%of 30 functions
17 ported · 11 native · 2 no behaviour · 0 open
code identified 100.0%
code identified 100.0%
BootFully ported
Publisher logos + init.pak PROT 0895
100.0%of 20 functions
5 ported · 13 native · 2 no behaviour · 0 open
code identified 100.0%
code identified 100.0%
Battle tutorialFully ported
Tetsu's sparring prompts PROT 0967
100.0%of 3 functions
3 ported · 0 native · 0 open
code identified 100.0%
code identified 100.0%
Field back-readFully ported
Staged background loader PROT 0978
100.0%of 1 functions
1 ported · 0 native · 0 open
code identified 100.0%
code identified 100.0%
Boss stage AFully ported
Scripted boss-stage module PROT 0968
100.0%of 1 functions
1 ported · 0 native · 0 open
code identified 100.0%
code identified 100.0%
Boss stage BFully ported
Scripted boss-stage module PROT 0969
100.0%of 1 functions
1 ported · 0 native · 0 open
code identified 100.0%
code identified 100.0%
Developer and unused images (6)
Debug menuNothing to port
Developer mode select PROT 0971
100.0%of 4 functions
0 ported · 0 native · 4 no behaviour · 0 open
code identified 100.0%
code identified 100.0%
World-map top viewFully ported
Debug camera image PROT 0981
100.0%of 4 functions
4 ported · 0 native · 0 open
code identified 100.0%
code identified 100.0%
Dev module OTHER2Nothing to port
Primitive / clip test harness PROT 0973
100.0%of 3 functions
0 ported · 0 native · 3 no behaviour · 0 open
code identified 100.0%
code identified 100.0%
Dev module OTHER3Nothing to port
Selection / depth test harness PROT 0974
100.0%of 3 functions
0 ported · 0 native · 3 no behaviour · 0 open
code identified 100.0%
code identified 100.0%
Game overFully ported
Unreachable dev harness PROT 0902
100.0%of 2 functions
1 ported · 0 native · 1 no behaviour · 0 open
code identified 100.0%
code identified 100.0%
JP options + statusNothing to port
Foreign-build image, never loaded PROT 0896
100.0%of 56 functions
0 ported · 0 native · 56 no behaviour · 0 open
code identified 100.0%
code identified 100.0%
Play
the engine, in this tab


Play the port
New Game to wherever you get: the from-scratch engine running the real game, flat or in VR, with saves kept in your browser.



Minigames & Sol Tower
Slots, Noa's dance, Baka Fighter, the Muscle Dome, fishing — playable with retail data.



Custom game modes
The port's own games, from the experimental expansion pack: Hold'em, the Grid Duel card game, mini-golf and racing, played in 3D from your disc.
Mod your disc
patched locally, nothing uploadedTranslation workbench
Export the game's text to an editable pack, translate it, and import it back onto your disc.
Expansion workbench
Build an expansion pack for the port: new bosses, quests, cards, modes and tile-painted maps, checked against your disc.
Modding and translation guide
Every mod family, hand-editing a monster, swapping a texture, and building a language pack.
Explore the game data
decoded from your disc
Asset viewer
Every 3D mesh and texture on the disc, grouped by scene.
Media browser
All the music, sound banks, FMVs, and voice audio.
Game world
Every town and dungeon assembled in 3D, with enemy rosters.
World overview
Each kingdom's overworld in real-time WebGL.
Disc map
Every sector of the disc as nested boxes: files, PROT entries, formats.
Characters
Vahn, Noa, and Gala — dress the battle model, play every action and Tactical Art.
NPCs
Every townsperson in 3D, posed straight from your disc.
Enemy table
Stats, drops, steals — click a row to spin the 3D model.
Shops & vendors
Every shop's priced inventory, town by town.
Tactical Arts
Inputs, AP costs — each art performed by the battle model.
Seru Magic & Summons
Every cast animated, and the seven Ra-Seru bodies in 3D.
Desktop Apps
Legaia Explorer and the native port, in every release archive: browse and export your disc, or play it.
Stories from the dig
write-ups
6-part series
Patching a sealed disc
Modding a retail CD with no source and no SDK — a six-tier ladder from byte edits to hand-assembled MIPS hosted in an overlay's dead space.
write-upThe endless orbit
A softlock as old as the game: why the Gaza rematch can stall forever after Kemaro, and the nine-word fix.
write-upThe Spirit fish gate
The fish that couldn't be caught — tracing a minigame gate nobody understood.
Read how it works
docs zoneThe project runs on two tracks that feed each other. Preservation gets every asset off the disc and writes down each file format, with every claim traced back to the game's own code. Reimplementation is a from-scratch rewrite of the engine in Rust, built from those documents rather than from Sony's executable - so it can run the game faithfully and also go beyond it (dynamic lighting, see-through walls, VR) with the retail look one toggle away. The docs below are the shared ground truth for both.
Start here: how the game is put together
The layer diagram from raw sectors to runtime VMs — disc → ISO9660 → PROT.DAT → containers → formats → engine.
Subsystems
How the running game works: boot, the script engines, rendering, sound, battle, the world map, menus, shops, inns, level-ups and the minigames.
Formats
Byte-level specs for everything on the disc — each traced to the game code that reads it, with a confidence badge.
Guides, tooling & reference
Build the workspace, extract assets, mod and translate. Reference — RAM map, function directory, game-data tables.