Followed specification from Tobias Langhoff's guide (https://tobiasvl.github.io/blog/write-a-chip-8-emulator/) to create fully functional emulator for Chip-8 games. Right now it supports basic functionalities and has configurable values/behaviours for ambiguous instructions.
Includes comprehensive unit tests for the cpu which includes every possible instruction plus timer behaviours. There is a basic Github action which will run all tests to ensure the cpu is working correctly.
Requirements:
- CMake ≥ 3.16
- A C compiler toolchain (e.g., MSVC via “x64 Native Tools Command Prompt”, or MinGW/Clang)
- No external SDL install needed (SDL is vendored under
vendored/SDL)
cmake -S . -B build -G "Ninja" # or "MinGW Makefiles" / "Visual Studio 17 2022"
cmake --build build --config Release# From the build output dir (adjust config if not Release)
./build/Release/chip8.exe path\to\rom.ch8cd build
ctest --config Release