A chip-8 interpreter written in Go.
This is just a hobby project for me to get more familiar with the go programming language and with hardware emulation.
Requires Go 1.22 or later
The Frontend for the emulator uses the Ebitengine game engine. Ebitengine requires a C compiler like gcc or clang when installing on MacOS or Linux.
Build the executable by navigating to the src directory .../gochip/src/ and run the command:
$ go build
After building, start the executable by running:
$ ./gochip <delay> <rom path>
<delay> determines how fast the emulator runs and can be adjusted to make a program run at an appropriate speed. A higher value means the emulator runs slower.
Example:
$ ./gochip 100 roms/maze.ch8
The emulator uses the following keys as input:
| 1 | 2 | 3 | 4 |
|---|---|---|---|
| Q | W | E | R |
| A | S | D | F |
| Z | X | C | V |
I used Austin Morlan's blogpost as a guide for my own implementaion and it was very helpful!!!
I've not written any of the roms available in this repo myself. They are from the following Repos:
- Good collection of various chip8 roms!
- Great for testing the basic instructions work as intended
