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