A Golang CHIP-8 interpreter. Compatible with CHIP-8, SUPER-CHIP and XO-CHIP instruction sets.
Uses go-sdl3 for the UI and audio.
NAME:
chip8-go - chip8 interpreter
USAGE:
chip8-go [arguments...]
OPTIONS:
--debug, -d print debug logs
--disable-audio disable audio beeps
--speed float, -s float interpreter speed (default: 1)
--scale int pixel and window scale factor (default: 4)
--test-flag uint, -t uint populate 0x1FF address before run (used by timendus tests) (default: 0)
--compatibility-mode string, -m string force compatibility mode (chip8, super, xo)
--help, -h show help
--pause-after int, -p int pause execution after t ticks (default: 0)
--exit-after int, -e int exit after t ticks (default: 0)
--headless disable ui
--screenshot save screenshot on exitAutomated screenshots from test runs done with GitHub actions.
| CHIP-8 logo | IBM logo | Corax+ | Flags |
|---|---|---|---|
| Quirks (CHIP-8) | Quirks (SUPER-CHIP) | Quirks (XO-CHIP) |
|---|---|---|
| Scrolling SUPER-CHIP low resolution | Scrolling SUPER-CHIP high resolution | Scrolling XO-CHIP low resolution | Scrolling XO-CHIP high resolution |
|---|---|---|---|
- Embed SDL3
- Implement SUPER-CHIP
- Change window title when game paused
- Create Nix package
- Implement XO-CHIP
- Fix various crashing games (skyward crash when falling to bottom)
- Fix skyward bug when character goes into wall
- Adjust speed dynamically
- Load rom with drag-n-drop if not provided