Setup · Docker toolchains
Start coding
in 60 seconds.
One command takes you from a fresh laptop to a working toolchain — cross-assemblers and build tools for every system, in a container. No dependency management, no version conflicts. Just code.
Three commands
Quick start
Install Docker Desktop
Free from docker.com for Mac, Windows, and Linux
Download the toolchain
docker pull ghcr.io/code198x/commodore-64 Build your code
docker run -v ./code:/code ghcr.io/code198x/commodore-64 acme game.asm -o game.prg Done — your compiled program is ready. Run it in a native emulator (Fuse for Spectrum, VICE for C64), or in Emu198x, our own.
One per machine
Available toolchains
Each toolchain is tailored to its system, with the right assembler, emulator, and development tools.
Commodore 64
ghcr.io/code198x/commodore-64 - petcat for BASIC
- Screenshot capture
Sinclair ZX Spectrum
ghcr.io/code198x/sinclair-zx-spectrum - zmakebas for BASIC
- Screenshot capture
Nintendo Entertainment System
ghcr.io/code198x/nintendo-nes - cc65 C compiler
- Screenshot capture
Commodore Amiga
ghcr.io/code198x/commodore-amiga - amitools (xdftool)
- Video capture
- NDK 3.2
Build · test · ship
The workflow
Build in Docker
Cross-assemblers run in containers — consistent builds across macOS, Windows, and Linux with zero setup.
Test in an emulator
Run your compiled program in Fuse, VICE, FS-UAE or FCEUX — or in Emu198x, our own. Native emulators give the smoothest experience today.
Automated screenshots
The toolchains capture screenshots headlessly — the same images you see in the lessons, regenerated on every build.
VS Code integration
Dev Container support drops you into a ready IDE, syntax highlighting and all.
Our own emulator
Emu198x
Cycle-accurate · built in the open
Most emulators are black boxes you trust and forget. Emu198x is ours, and it's built in the open — a Rust project growing cycle-accurate cores that model each machine directly, down to the pins and the timing. When a hardware path isn't modelled well enough yet, it stays honestly incomplete rather than faking it — the same bar we hold the lessons to.
Today it runs headless and scriptable: boot a machine, run a build, grab a screenshot, inspect memory. A polished desktop app and in-browser play — embedded right in the lessons — are on the way. Until then, your code runs on Fuse, VICE and the other native emulators.
Prefer native tools? You can install assemblers directly instead of using Docker. You'll manage dependencies yourself, but it's fully documented.
One more thing — ROMs. The C64 and Amiga need their original system ROMs to run. They're not ours to give away, so you bring your own — free where you can, or a few pounds via Forever.
Ready to build something?
Pick a system and start building.