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.
- How to write an emulator (CHIP-8 interpreter).
- Cowgod's Chip-8 Technical Reference v1.0
- Writing a CHIP-8 emulator (interpreter) in Go - chip8go
- Writing an Emulator in JavaScript (Chip-8)
- CHIP-8 ROMs.
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.
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 https://github.com/daniarlert/chip-8-go.git
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.