/chip8

A CHIP-8 emulator implemented in Go

Primary LanguageGoMIT LicenseMIT

CHIP-8

A CHIP-8 emulator written in Go.

Written as a learning exercise to get familiar with emulation, opcodes and CPUs.

Building From Source

Pre-requisites

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

Installation

$ go get -u github.com/danmrichards/chip8/cmd/chip8/...

Usage

Usage of chip8:
  -debug
    	Run the emulator in debug mode
  -rom string
    	Path to the ROM file to load

Controls

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.

References

As this was a learning exercise I had to seek a lot of help from the interwebs: