The 8-Bit Machine

A general-purpose 8-bit machine designer. Pick a CPU, add components, wire them into the address space — all at runtime, with a live debugger watching every cycle.

View on GitHub

// DOWNLOAD

LOADING...

🍎
macOS

Download
🐧
Linux

Download
🪟
Windows

Download

All releases →


// IN ACTION

Commodore 64 running with debugger panels

C64 running Afterburner — CPU State, 1541 Drive, Disassembler, and Terminal all docked

Machine Designer panel showing C64 address space

Machine Designer — live C64 address map with VIC, SID, and CIA contained devices, banked RAM, and switchable regions


// FEATURES

🖥️
Machine Designer

Build your machine at runtime. Add devices, map them into the address space, drag to reorder bus priority — no recompile needed.

⚙️
Multiple CPUs

MOS 8502, MOS 6510, WDC 65C02, and Zilog Z80 — all selectable live. Cycle-accurate timing, IRQ/NMI, and full instruction sets.

🔬
Live Debugger

Disassembler with breakpoints, hex memory viewer, CPU state panel, watchpoints, and per-device debug panels — all dockable.

🎵
SID Audio

Full MOS 6581/8580 SID emulation — triangle, sawtooth, pulse, and noise waveforms with ADSR envelopes and SDL audio output.

💾
Extensible Architecture

New CPUs and bus devices drop in by implementing a simple interface. Machine configs save and load as JSON.

🌐
Cross Platform

Builds on macOS, Linux, and Windows. SDL2 + Dear ImGui docking UI. C++17, CMake, no mandatory dependencies beyond SDL2.


// BUNDLED PRESETS

Commodore 64 ZX Spectrum 48K Apple IIe

// ROADMAP

Full 8502 / 6510 / 65C02 instruction sets with cycle-accurate timing
Zilog Z80 — full instruction set including IX/IY, all prefix groups, IM 0/1/2
Machine Designer — live address map with drag-to-reorder, validation, inline editing
Live debugger — disassembler, breakpoints, watchpoints, hex memory viewer
Commodore 64 preset — VIC-IIe, SID 6581, CIA1/2, KERNAL/BASIC/CHAR ROMs, bank switching
ZX Spectrum 48K — ULA display, 50 Hz frame IRQ, keyboard matrix
Apple IIe — 65C02, text/hi-res video, Disk II controller, Apple DOS 3.3
MOS 1541 drive emulation — IEC bus, .d64/.t64 images, warp load
JSON machine config save/load — persist and share full machine definitions
C128 MMU model — configurable bank sizes, multi-region, hardware-accurate

// COMMUNITY

Join the server to follow development, share machines, and get help.

🐙
THE8BITMACHINE
...
stars
...
forks
...
language
View on GitHub
🎮
THE 8-BIT MACHINE
... online
Join Discord

// GET INVOLVED

🛠️
Contribute Code

Add a new CPU, implement a bus device, or fix a bug. New chips just implement ICPU or IBusDevice — no core changes needed.

Open Issues
Star & Share

The easiest way to support the project. Star it on GitHub, share it with retro computing communities, and spread the word.

Star on GitHub
💜
Sponsor

Help keep the project moving. GitHub Sponsors lets you back development directly — every bit helps.

Sponsor