No disc loaded - pick a .bin Mode2/2352 image of your own copy. It is read locally, nothing is uploaded; a disc loaded on another page here is picked up automatically.
About this page - what runs here, what does not yet, VR, and how it is wired

What you are looking at. The project's from-scratch engine reimplementation, compiled to WebAssembly and actually running: the same field script engine, movement controller and NPC motion engines the native build uses, with WebGL drawing what they simulate. Nothing is pre-rendered; every frame is computed from your disc.

You supply the game. The site ships no game data. Pick a .bin disc image of your own copy above; it is read locally in your browser, cached for the other pages here, and never uploaded.

Three ways in. New game runs the title card and prologue. Scene picker drops you straight into any town, field or dungeon - the best-supported mode. The save bar resumes a session you exported earlier, or a real memory-card image from your emulator.

VR. Have a headset? The VR button under the canvas presents the running scene over WebXR - a diorama you look into, or first-person from Vahn's own eyes (VR mode). It needs Chrome or Edge with SteamVR as the active OpenXR runtime and a secure context (https or localhost); if it cannot start, the button says what is missing.

What works here

This is a partial reimplementation, and an honest map matters more than a demo reel.

  • Towns, fields and dungeons. The map assembles from the same pieces the game uses - environment models, tile grid, floor heights, walkable ground - textured from the PSX video memory the engine builds up (renderer). Movement is the ported controller with retail's stepping and collision (field locomotion).
  • Your character and the townsfolk. The lead's field model re-posed every frame from the real animation clips; every NPC the scene's placement script puts down, walking its routes. Press Z at one and the script engine plays out their dialogue, branches and all.
  • Doors. Walk into one and the destination scene loads under you.
  • The New Game flow. Title card, prologue, Rim Elm's opening sweep and the "Select your name." grid - the real screen, opened by the scene's own script. The name you commit is written into the party record, so the status panel and your saves carry it (boot chain).
  • The pause menu and every screen behind it. Press Enter for the retail menu - chrome and glyphs off your disc, every window placed by the ported descriptor table (field menu). Items, Magic, Equip, Status, Options, Load and Save each run their live engine session.
  • Shops. Walk into a shopkeeper and the retail gold shop opens, priced from your disc's own item table (shop).
  • Saving to a real memory card. Insert a card image from your emulator and the in-game Load and Save screens read and write that card through retail's own save-select flow (save screen). Saving edits the block in place, so Export hands back a card your emulator still loads.
  • Music and sound effects. The scene's BGM plays through the from-scratch sound chip and sequencer, off your disc's own instrument bank and score. Browsers require a click first; picking a scene or clicking the canvas enables it.
  • Battles - as an overlay. Walking a wilderness scene rolls the disc's own step-driven encounters, and the fight that opens is the ported battle engine: real formations, real damage formulas, player-driven turns - pick a command, a target, an art, a spell or an item from the same menus the native window draws, over an HP/MP/AP readout with damage popups. Win and you are back on the field with XP, gold and drops. Towns have no encounter table and stay peaceful.
  • Fishing. Fish here starts the minigame on the spot.

Not here yet

  • The battle's 3D layer. Monster meshes, the party's dressed battle forms and the arena backdrop draw only in the native window; the browser fight is the overlay above, with the field scene still rendering behind it. The models themselves are on the enemy and character pages.
  • Movies. The prologue's rendered tableaux and narration play here, but the pre-title FMV and any other STR movie run only in the native window, so a movie beat is skipped. The media browser plays every movie on its own.
  • The inn. Its state is ported, but no scene opens an inn session on either host yet.
  • Four of the five minigames. The slot machine, Baka Fighter, the Muscle Dome and the dance floor are playable standalone on the minigames page but not from their cabinets here. Start leaves any minigame from anywhere.
  • The overworld. World-map walking is a different controller; the world overview shows the continents.

Some scenes frame better than others: retail hand-authors a camera per scene, while this page runs one generic camera plus see-through walls for whatever blocks the view. In caves the floor sampler can disagree with the visible ground - tracked with the open questions.

How this page is wired

The WebAssembly bundle is the engine crates themselves. The page only turns key state into a PSX controller word, ticks the engine once per animation frame, and draws what it reports - the engine decides where you are. Characters are assembled per frame from their animation records' bone transforms, because the meshes ship as object-local pieces (character meshes, ANM).

The menus are the same menus as the native window. Every screen's geometry - pause menu, save flow, dialog box, shop panel - is built by one renderer-agnostic crate both hosts call; the page supplies a different framebuffer, not a different UI. A repository check derives the shared surface from the source and fails the build when a screen reaches one host and not the other, so the "not here yet" list above cannot quietly go out of date.