A simple and lightweight CHIP-8 emulator written in C using SDL2 for graphics, input, and audio.
⚠️ Warning The emulator produces a beep sound immediately on startup (classic CHIP-8 behavior). Lower your volume if needed.
CHIP-8 uses a hexadecimal keypad. In this emulator, the keys 0–F are mapped directly to your keyboard:
1 2 3 4 → 1 2 3 4
Q W E R → 5 6 7 8
A S D F → 9 A B C
Z X C V → D E F 0
Make sure SDL2 is installed.
make -BThis will compile the emulator and output the binary into ./build/.
./build/chip8 ./assets/octojam2title.ch8You can load any .ch8 program from the available assests folder or load your own sourced .che program.
Most of the ROMs used during testing are from:
- Full CHIP-8 instruction set (work in progress)
- Configurable CPU speed (default 700 Hz)
- Almost Accurate 60 Hz timers
- Square-wave audio beep
- SDL2 renderer with window resizing
- Modern, clean codebase designed for readability
- Complete missing opcodes
- Improve sound system (volume, toggling)
- Add debugger and step-mode
- Add settings for custom resolutions / themes
Thanks to the CHIP-8 community and the ROM archivists who help preserve classic programs.