Where It Started

There is a specific kind of obsession that comes from growing up in the era of 8-bit computers. Not nostalgia exactly — something more technical than that. I wanted to understand how these machines worked at the register level, how the 6502 in a Commodore 64 differed from the Z80 in a ZX Spectrum, and what it actually meant to design an architecture from scratch.

That curiosity turned into The 8-Bit Machine.

What It Is

The 8-Bit Machine is a desktop application that lets you design, configure, and run any 8-bit computer architecture you can imagine. You’re not locked into a specific machine — you define the CPU, memory map, I/O, and peripherals through a live GUI, then watch your design execute in real time with a full built-in debugger.

For those who want to start somewhere familiar, there are presets for three iconic machines:

  • Commodore C64 — 6502-based, the computer that launched a thousand careers
  • Apple IIe — another 6502 variant, brilliant in its simplicity
  • ZX Spectrum 48K — Z80-powered, the machine that defined British computing

Each preset is accurate enough to be useful for learning the architecture and different enough from the others to make the comparisons meaningful.

The Engineering

The whole thing is written in C++17 using SDL2 for cross-platform windowing and input, and Dear ImGui for the immediate-mode GUI. CMake handles the build so it compiles and runs on Windows, macOS, and Linux without modification.

The CPU emulation is the interesting part. The 6502 and Z80 have very different design philosophies — the 6502 is lean and elegant with a small instruction set and clever addressing modes, while the Z80 is richer with more registers and a more complex opcode space. Emulating both accurately meant getting into cycle-level timing, not just instruction semantics.

The debugger lets you step through execution, inspect registers, watch memory ranges, and set breakpoints — the kind of tool I wished existed when I was first trying to understand these chips from datasheets and community documentation alone.

Why Open Source

8-bit computing history belongs to everyone. The people who built these machines in the late 70s and early 80s did something remarkable — they made computers accessible to ordinary people for the first time. The 8-Bit Machine is my way of keeping that accessible, and making it easier for the next generation of engineers to understand where modern computing came from.

The project is actively developed at github.com/cwolsen7905/The8BitMachine and has a dedicated site at www.the8bitmachine.com. If retro computing is your thing, come take a look.

The 8-Bit Machine — Architecture Designer

The 8-Bit Machine — C64 Preset