A CHIP-8 emulator implemented in Go
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
cmd/chip8
internal
.gitignore
Makefile
README.md
go.mod
go.sum

README.md

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: