Multi-system emulator suite

Emu198x

Drive any of 30 vintage computers and consoles from a JSON script or an MCP client, and get the same frames back every time.

Current fleetCounted from the registry
6primary systems
24extended systems
30scriptable, MCP-driven runtimes
29published boot captures

One run, start to finish

This script drew that frame.

Three steps: run 300 Game Boy frames, read the program counter, save a PNG. No window opens and nobody watches it happen. The cartridge is built from source in this project, so the run needs no firmware and no software you have to go and find.

[
  {"action":"run_frames","frames":300},
  {"action":"query","path":"cpu.pc"},
  {"action":"save_screenshot","path":"game-boy.png"}
]

Hand it to the Game Boy binary, with the cartridge from the checkout:

./emu198x-game-boy \
  --rom test-data/synthetic-cartridges/nintendo-game-boy-logo.gb \
  --script boot.json

One JSON report comes back on standard output. Every step that has something to report answers with what the machine did, rather than a promise that it did something. Its two observations, wrapped to fit this column:

{"kind":"run_frames","frames":300,
 "reached":5285633,"stop_reason":"ReachedTarget"}
{"kind":"query",
 "result":{"path":"cpu.pc","value":408}}

That frame is the PNG the run wrote, and it is the file this site publishes for the Game Boy. Run the script again and the report comes back identical, down to the tick the machine stopped on, and the image matches byte for byte.

Scripting covers the step vocabulary and where an open-loop file stops being enough. MCP covers the same session when the next step depends on the last answer, and capture covers what a machine can hand back besides a screenshot.

Nintendo Game Boy boot
Synthetic plate cartridge: the Emu198x wordmark, set in this machine's own tiles and drawn through its real video path.Captured from a synthetic cartridge built from source in this project. No third-party software is involved.

What it runs

30 machines, 29 of them captured.

Each machine has a page carrying its boot frame, the crates it ships from, and the work still open against it. A machine with no capture yet says so on the same page.

System matrix

How accurate it is

A frame is graded by what it was checked against.

Hardware capture, hardware-validated test image, reference emulator, or a self-minted golden that catches drift and settles nothing. Which one backs a machine is written down per machine.

Accuracy progress

How to get it

One binary per machine, prebuilt for every desktop.

Every one of the 30 machines ships an archive in each release — macOS on Apple silicon and Intel, Windows, and Linux. Extended machines are not the exception: they are built and published with the rest. A source checkout gives the same binaries, and every binary takes the same scripts either way.

Downloads