A CHIP-8 emulator written in Go, featuring a TUI interface.
This project was mostly written for myself so that I could learn Go and how to build TUI apps. I also built this for Hack Club Macondo.
chip8-go-demo.mp4
- Blazing fast terminal rendering using only Unicode characters
- Virtual keypad support for both legacy terminals (e.g.
xterm) and modern terminals (e.g.kitty) - Built-in file browser for selecting ROMs
- Pause functionality
- Interactive help menu
- Customizable display palette
Firstly, install Go on your machine.
Then, to compile chip8-go, run go build ./cmd/tui.
To automatically compile binaries for all operating systems and architectures, run the build.bash script:
chmod +x ./build.bash
./build.bashA clean.bash script is also provided to delete all binaries:
chmod +x ./clean.bash
./clean.bashNow you can execute the binary to launch the program (e.g. ./chip-8).
It takes an optional argument specifying the path to a ROM.
The internal folder contains all core CHIP-8 logic and data. You can use the chip8 package to implement any type of frontend you want (not limited to just TUI).
See cmd/tui/main.go to understand how to implement your own frontend.
Here are some related projects of mine: