A CHIP-8 and Super CHIP-8 (SCHIP) emulator written in the Rust programming language. A few sample game screenshots below. The project uses the MIT license.
There is also a short video clip of the game on YouTube.
The emulator compiles against the master branch of Rust. See the Rust documentation for installation of the Rust binaries, including the Rust package manager Cargo.
The emulator uses the cross platform media library SDL2 for access to audio, keyboard and graphics hardware. Windows and Mac OSX binaries are available for download from the SDL website.
Ubuntu:
sudo apt-get install libsdl2-dev
export LD_LIBRARY_PATH="${LD_LIBRARY_PATH}:/usr/local/lib"
HomeBrew:
brew install sdl2
export LIBRARY_PATH="${LIBRARY_PATH}:/opt/homebrew/lib"
A few games are included in the roms folder. Many more are available on the internet.
cargo run roms/brix.ch8
The original CHIP-8 specification had a 16 key hexadecimal keypad with the following layout:
1 | 2 | 3 | c |
---|---|---|---|
4 | 5 | 6 | d |
7 | 8 | 9 | e |
a | 0 | b | f |
However, for the sake of convenience, the layout has been remapped onto a standard keyboard. Bear in mind that the documentation for ROMS found on the internet most likely will specify action keys according to the original mapping.
1 | 2 | 3 | 4 |
---|---|---|---|
q | w | e | r |
a | s | d | f |
z | x | c | v |
Below are some additional keypresses that are also not in the official specification:
Enter or Return | Pause |
---|---|
Backspace or Delete | Reset |
Esc | Exit |
If anything should go wrong, please report the issue here and I will look into it. Thanks!
- Cowgod's Chip-8 Technical Reference
- MASTERING CHIP-8 by Matthew Mikolay
- [SUPER-CHIP v1.1 specifications by Erik Bryntse] (http://devernay.free.fr/hacks/chip8/schip.txt)
- [CHIP8.DOC by David Winter] (http://devernay.free.fr/hacks/chip8/CHIP8.DOC)