CHIP-8 is an interpreted programming language, originally created by Joseph Weisbecker for the COSMAC VIP and Telmac 1800 microcomputers in the mid-1970s. It was originally created to allow video games to be more easily developed for these systems. Many classic games such as Pong, Space Invaders, Tetris, and Brix were ported to the CHIP-8. Even today, games are still being developed to be played on interpreters through Octo!
Splash Screen
Timendus' test suite, found here, has incredible resources for testing, many of which I used when writing my own interpreter. Check it out!
Tetris (Ignore my cursor 😅)
Type make in the terminal to create an executable
Alternatively, type make debug if you want to enable debugging outputs while the program runs
To remove the executable, type make clean
To run the executable, use the following command:
./main.exe <ROM/PATH.ch8>
Here are some other useful features to use while emulating:
- Pause / Unpause emulation (space bar)
- Exit (Esc)
- Lower Volume (-)
- Raise Volume (=)
This image describes how a QWERTY keyboard is translated into the hexadecimal keypad from the original CHIP-8 systems
When using the emulator, your QWERTY inputs will register as the corresponding hexadecimal keypad input.


