A CHIP-8 emulator written in C++17 from scratch.
CHIP-8 is an interpreted programming language developed in the mid-1970s for 8-bit microcomputers. It was designed to make game development easier and runs on a simple virtual machine with 16 registers, 4KB of memory, and a 64×32 pixel monochrome display.
Dependencies:
- CMake 3.14+
- SDL2
- C++17 compiler
macOS:
brew install sdl2 cmake
mkdir build && cd build
cmake ..
makeLinux:
sudo apt-get install libsdl2-dev cmake
mkdir build && cd build
cmake ..
make./chip8 <rom>Example:
./chip8 roms/tetris.ch8CHIP-8 has a 16-key hex keypad mapped to your keyboard:
CHIP-8 Keyboard
1 2 3 C 1 2 3 4
4 5 6 D Q W E R
7 8 9 E A S D F
A 0 B F Z X C V
ROMs are not included in this repository. You can download a large collection of public domain CHIP-8 ROMs from the CHIP-8 Archive.
- Austin Morlan — whose guide was a helpful reference during development
- Cowgod's CHIP-8 Technical Reference — the definitive CHIP-8 specification
- CHIP-8 Archive — public domain ROM collection by John Earnest
MIT
