A CHIP-8 emulator written in Go.
Written as a learning exercise to get familiar with emulation, opcodes and CPUs.
The emulator uses the following packages which have requirements of their own before we can build with them. Follow the instructions for each:
Clone this repo and build the binary:
$ make
$ go get -u github.com/danmrichards/chip8/cmd/chip8/...
Usage of chip8:
-debug
Run the emulator in debug mode
-rom string
Path to the ROM file to load
The Chip8 has a 16 key hex keyboard. For the purposes of this emulator it has been implemented like so:
+---+---+---+---+
| 1 | 2 | 3 | 4 |
+---+---+---+---+
| Q | W | E | R |
+---+---+---+---+
| A | S | D | F |
+---+---+---+---+
| Z | X | C | V |
+---+---+---+---+
Note: Which of these keys are actually used will differ from ROM to ROM.
As this was a learning exercise I had to seek a lot of help from the interwebs: