tchipi8
A CHIP-8 emulator (interpretor).
This program is able to execute a number of CHIP-8 programs. Almost all functionality is implemented except audio. From this awesome test suite, this implementation is able to run the first 6 tests (with some bugs here and there). More roms that have been tested available here.
Installation / Building
- Get Crystal if you don't already have it
 - Install SDL development libraries for your platform
 
sudo zypper install SDL2-devel # On opensuse
sudo apt install libsdl2-dev # Debian/Ubuntu
- Build the damn thing
 
shards install && crystal build --release src/tchipi8.cr
- Copy binary to a directory in $PATH
 
cp tchipi8 ~/bin/ # Assuming ~/bin is in $PATH
Usage
./tchipi path-to-rom
Plenty of ROMs available on the Internet, just make sure that they are compatible with COSMAC VIP CHIP-8 (avoid SUPER-CHIP or any other CHIP with a fancy prefix).
The CHIP-8 Keypad is mapped to the Keyboard as follows:
1   2   3   4       1   2   3   C
q   w   e   r   =>  4   5   6   D
a   s   d   f       7   8   9   E
z   x   c   v       A   0   B   F
Development
- Ensure you have SDL2 development libraries installed (see the Installation / Building section above)
 - Install Crystal bindings for SDL
 
shards install
- Run tests
 
crystal spec
- Run app in debug mode
 
DEBUG=1 crystal run src/tchipi8 -- path-to-rom
Contributing
- Fork it (https://gitlab.com/ntumbuka/tchipi8/-/forks/new)
 - Create your feature branch (
git checkout -b my-new-feature) - Commit your changes (
git commit -am 'Add some feature') - Push to the branch (
git push origin my-new-feature) - Create a new Pull Request
 
Contributors
- Walter Kaunda - creator and maintainer