Open a disc image

No file loaded.

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), the extracted PROT.DAT, or a single .tim file.

Files are read with the browser's FileReader API. Nothing is uploaded; everything happens locally in WebAssembly.

What this viewer does

When you load a full disc, the WASM module:

  1. Walks ISO9660 to find PROT.DAT
  2. Parses the PROT TOC to locate all 1232 entries
  3. Classifies each entry through the same detector chain the native pipeline uses (tim_passthrough, tim_pack, data_field_streaming, scene_tmd_stream, field_pack, effect_bundle, etc.)
  4. Runs tim_scan against each entry — including LZS decompression — and keeps only the entries with at least one decodable PSX TIM
  5. Builds the filtered sidebar list, grouped by classification

This typically narrows ~1232 raw entries down to ~300-400 viewable ones, sorted by PROT index. Use the filter dropdown to narrow further by class (e.g. only scene_tmd_stream for character meshes' textures, or only tim_passthrough for standalone images).

The 3D path renders Legaia TMDs in textured 3D by default: WebGL2-backed, with the same paletted fragment shader the native engine uses (1024×512 R16UI VRAM, per-prim CBA/TSB, 4/8/15bpp + CLUT lookup decoded per-fragment). Toggle "textured" off in the sidebar for a flat-shaded fallback (Canvas 2D, painter's-algorithm depth sort).

The native build (./target/release/asset-viewer prot extracted/PROT.DAT) additionally plays VAB samples, renders stage geometry, and supports --vram-extra-dir for cross-PROT-entry CLUT chains. Run that for the full experience.

Privacy + legal

This page never uploads your disc image anywhere. The WASM module reads bytes via the browser's FileReader API directly into WebAssembly memory, parses them locally, and renders to a canvas. No network requests for the disc data.

The legal model is the same as ScummVM, OpenRCT2, OpenMW, OpenLara: zero Sony bytes ship with this project; you supply your own disc image. Read the engine port plan for the legal posture in detail.

Run engine

Tick the Legaia engine VMs in-browser using the same LegaiaRuntime the native engine-shell uses. Provide your disc image (.bin Mode2/2352) — PROT.DAT and CDNAME.TXT are extracted automatically via ISO9660 walk. You can also drop a raw PROT.DAT with an optional CDNAME.TXT. Files are read locally via FileReader; nothing is uploaded.

The same disc image you use in the asset browser above works here. For PROT.DAT-only access without a disc, also supply CDNAME.TXT (extracted by ./target/release/prot-extract) to enable scene lookup by name.

No disc loaded.