
Emu198x
A family of imagined workshop tools, not a diagram of software dependencies.
Cycle-accurate emulators for vintage machines
Emu198x is one of the sibling projects in the 198x family — and the one Code198x leans on for accuracy. It builds emulators for vintage machines in Rust, modelling the real hardware directly — pin-level CPU interfaces, system timing, video, audio, DMA and peripherals — rather than faking the parts that are hard. If a hardware path isn't modelled accurately enough yet, the machine stays honestly incomplete rather than pretending.
What it runs
Emu198x cores boot and validate 43 of the machines listed on this site. The most developed run as desktop apps with real software and passing CPU test suites: the ZX Spectrum (11 variants), Commodore 64, NES, Commodore Amiga (OCS/ECS/AGA — Workbench 3.1 boots to a clean desktop), Game Boy, and Dragon 32. The rest — Atari, Acorn, MSX, Sega, Oric, ZX80/81, Sord M5 and more — run headlessly today while their native windows are built out.
How it's used
Each system is a small binary. The same machine can open in a native window, run headlessly for a screenshot, or be driven programmatically — including over an MCP server, so an agent can boot it and inspect any chip. A few illustrative commands (the full flag set and every system are on GitHub):
cargo run --release -p emu198x-spectrum -- \
--rom 48.rom --tape game.tzx --autoload-tapecargo run --release -p emu198x-nes --no-default-features -- \
--rom game.nes --frames 300 --screenshot nes.pngcargo run --release -p emu198x-atari-800xl -- --mcpWhy it's in the family
Code198x uses Emu198x to run lesson programs in the browser and to check and capture what each program does. A program that runs correctly in Emu198x has not been proven on a real machine; that still takes testing on the hardware. Emu198x is its own project with its own roadmap, used by Code198x among others — not a Code198x component.