chippy¶
TUI 6502 emulator + ca65/cc65 source-level debugger, written in Go.
Try it in your browser¶
The playground runs the same emulator core
this repo ships, compiled to WebAssembly. Pick a canned demo (or drop
in your own .bin / .prg / .hex) and step through it — no install
required.
Install on your machine¶
| Platform | Install |
|---|---|
| macOS / Linux (Homebrew) | brew tap nkane/tap && brew install chippy |
| Debian / Ubuntu | sudo dpkg -i chippy_*_linux_amd64.deb |
| Fedora / RHEL | sudo rpm -i chippy_*_linux_amd64.rpm |
| Alpine | sudo apk add --allow-untrusted chippy_*_linux_amd64.apk |
| Arch Linux (AUR) | yay -S chippy-bin |
| Windows / others | Releases page |
| From source | go install github.com/nkane/chippy/cmd/chippy@latest |
Every release artifact ships with a cosign keyless OIDC signature
plus an SPDX SBOM — see SECURITY.md
for the verification recipe.
Why chippy¶
Plenty of 6502 emulators exist. chippy's pitch is debugger-first:
- TUI + DAP + WASM, one engine. Same NMOS / 65C02 core powers the terminal UI, the DAP server (VS Code / nvim-dap / JetBrains can drive it), and the in-browser playground.
- Source-level debugging from C and ca65. Auto-detected
.dbgfiles turn.binaddresses intofile:lineand symbol names — breakpoints, watches, and conditional expressions resolve against the same names you wrote. - Reverse-step that scales. Page-level copy-on-write snapshots cost ~hundreds of bytes per step, so the rewind ring works during free-run too (a 1000-iter tight loop fits in <1 MiB).
- Real 6502 + 65C02 compliance. Klaus Dormann's functional tests pass end-to-end for both variants; an exhaustive BCD sweep covers every ADC / SBC input combination.
Where to next¶
- Quick start — your first ROM in 5 minutes.
- DAP server reference — editor integration.
- Architecture dump — internals + project history.
- Contributing
- Editor matrix — which editors are tested.