This is a CHIP-8 interpreter, written in Go. Since I’m very interested in old hardware and how it works, I created this project to get a little bit familiar with emulator programming.



Start the application by passing a ROM file as first argument. ROM files can be found all over the internet.

chip8 <ROM file>

Key mapping

The original CHIP-8 keypad looks like:

1 2 3 C 4 5 6 D 7 8 9 E A 0 B F

The keys are mapped as following:

1 2 3 4 Q W E R A S D F Z X C V

For German users the A is also mapped to Y.

Special keys

Besides that there are special operations which can be triggered with the following keys:

Key Function
P Pause the interpreter


  1. Install the latest SDL2 development library
  2. Within the project directory run:
go build


View Github