No file loaded.

3D model browser

Every 3D model in the game's archive, textured the way the console draws it. Pick an entry from the list, spin it, and if it belongs to a town or dungeon press full map to see the whole scene assembled. The .glb button exports what is on screen for Blender.

Bring your own disc

This viewer doesn't ship any Sony bytes. Provide a .bin Mode2/2352 image of Legend of Legaia (NA SCUS-94254). A single .tim file also works for one-off image previews.

Files are read locally; nothing is uploaded. The disc is cached in the browser (IndexedDB) and shared across pages, so it auto-loads on reload - hit Forget on the chip to clear it.

PROT.DAT TIM catalog

Every texture the archive stores as plain bytes - menus, fonts, portraits, many environment sheets - each with a stable id you can link back to.

Click any thumbnail to load it full-size; the CLUT dropdown switches between an image's palette (CLUT) variants.

Load a disc (or raw PROT.DAT) above to browse the TIM catalog.

Compressed textures (LZS-embedded)

The character and scene textures the catalog above cannot see, because they sit inside compressed sections of the archive. The page decompresses every entry to find them; each is keyed by the entry, section and offset it came from.

Click any thumbnail to load it full-size and switch CLUT variants, as in the catalog above.

Load a disc (or raw PROT.DAT) above to browse the compressed textures.

About this viewer - what it shows, how to drive it, how it is checked

You supply the game. This site ships no game data. Point it at a .bin disc image of your own copy and the project's parsers, compiled to WebAssembly, take it apart in your browser - nothing is uploaded.

Nearly everything in the game lives in one archive on the disc, PROT.DAT: a numbered list of entries holding every town, monster, menu and tune. This page opens it three ways:

  • 3D browser - every entry that holds a model: buildings, props, monsters, battle stages, party members. Models are Legaia's house variant of the PlayStation TMD format, textured with standard TIM images through the same paletted shader the native engine uses (switch textured off to see the bare geometry).
  • Texture catalog - the images stored as plain bytes, each with a stable id you can link back to.
  • Compressed textures - the character and scene textures the catalog cannot see, because they sit inside LZS-compressed sections; the page decompresses every entry to find them.

Using the viewer

  • Pick a model from the sidebar, jump to an entry by number, or use the arrow keys / N and P to step through. Entries that belong to a known scene show the scene's name.
  • Drive the camera - drag to orbit, wheel to zoom, WASD to pan, Space to pause the spin, R or double-click to reset. Zooming past the model's surface flies you inside it, which is how to look around a sky dome.
  • Full map appears for any entry that belongs to a town or dungeon: it assembles every environment mesh at its authored position with the ground underneath - the same assembly the game world page and the play page use. In full-map mode a VR button presents the town over WebXR (VR mode; Chrome or Edge with SteamVR and a secure context).
  • Export. ⬇ .glb downloads the current 3D view - one mesh, or the whole assembled town - as a binary glTF with textures baked in, ready for Blender or any glTF viewer. ⬇ PNG downloads the selected texture in its current palette.

Why a battle stage looks like half a bowl. A stage entry holds half a backdrop shell; the game draws that mesh twice, the second copy either half-turned or mirrored, and lays a tiled floor underneath. The viewer places them the same way and the status line names which transform the game picked for that stage. Two stages can be the same mesh byte for byte and still be placed differently, because the choice is a per-stage table in the game, not something the mesh implies (battle backgrounds).

Sound and cutscene video are on the media browser. The native desktop viewer adds stage geometry and cross-entry palette chains:

./target/release/asset-viewer prot extracted/PROT.DAT

How the catalogs are checked

The texture catalog is checked against an independent tool, jPSXdec: same offsets, dimensions and palette counts, entry for entry. It also reaches images jPSXdec's index does not, such as the menu-glyph sheet in the archive's unindexed system-UI gap.

In the compressed-textures grid every hit is validated on the output: the decoded bytes must strictly parse as a texture and decode to real pixels. "It decompressed without error" proves nothing on its own, because Legaia's decompressor turns most random input into plausible-looking bytes (Legaia LZS).

Run the engine on this scene

Everything above is the disc at rest. To see the engine run - the field VM stepping, NPCs moving, dialogue playing out - head to Play the port; it boots the same disc (already cached in your browser) into any town or field map and hands you the controls.