CHIP-8 + Golang

This project contains a CHIP-8 emulator written in Go. The CHIP-8 actually never was a real system, but more like a virtual machine. Games written in the CHIP-8 language could easily run on systems that had a CHIP-8 interpreter. So in reality this project is more like a CHIP-8 interpreter.



Why build another emulator?

As a CS student many of the terms that appear in my degree are closely related to those that can be seen in this project. So it can be seen as a different form of study to assimilate certain concepts.

And also because it’s fun.

Things to keep in mind

This project uses the incredible faiface/pixel so it’s important that you check the compatibility of your system with this library to avoid possible errors. If you are using Windows for example, you may need to install the GCC toolchain.


I really recommend to just clone this repository and run the program directly from the command line.

git clone
cd chip-8-go
go run .


To select the ROM you want to try:

go run . --rom "roms/Puzzle.ch8"

If you want to also modify the clock speed:

go run . --form "roms/Puzzle.ch8" --ck 90


  • Support beeping.
  • Better documentation.
  • Testing.


View Github