Rust emulator prototype · education layer first

vibe-gba

A scratch-built Game Boy Advance emulator prototype focused on proving the native Pokémon Emerald onboarding route, then turning that route into a guided puzzle / reflection loop.

Boundary, because lawsuits are boring

vibe-gba does not include ROMs, save files, BIOS dumps, or emulator state snapshots. To run it locally, you must provide your own legal ROM. The live site is currently a public project/testing page, not a browser-playable emulator.

What works now

  • Loads user-provided .gba or zipped .gba files locally.
  • Runs deterministic headless frames with scripted input.
  • Captures screenshots, save states, and debug summaries.
  • Reaches Emerald onboarding milestones from native KEYINPUT.

New layer

The first Emerald education objective mode parses emulator debug summaries and tracks onboarding objectives:

  1. Wake up in the moving truck.
  2. Reach Littleroot Town.
  3. Reach Route 101.
  4. Rescue Professor Birch.
  5. Acquire a starter.
Pokémon Emerald rendered at the Littleroot entry milestone
Littleroot entry milestone.
Pokémon Emerald rendered while walking through Littleroot
Native movement through Littleroot.

test-driven development starts here

Tester loop

When you test, send feedback in this exact shape so I can turn it into a failing test before touching production code:

cargo run -- /path/to/Pokemon\ Emerald.gba --frames 65200 --edu-mode --dump-state