This is a very simple CHIP-8 interpreter implementation in Rust using SDL2 for graphics and input handling. It supports the full CHIP-8 instruction set (as defined at http://devernay.free.fr/hacks/chip8/C8TECH10.HTM).
You need to have Rust and SDL2 installed on your system.
cargo run --release -- <rom_file_path>The CHIP-8 uses a 16-key hexadecimal keypad. This emulator maps it to the following keyboard layout:
Original CHIP-8 Keyboard
+-+-+-+-+ +-+-+-+-+
|1|2|3|C| |1|2|3|4|
+-+-+-+-+ +-+-+-+-+
|4|5|6|D| |Q|W|E|R|
+-+-+-+-+ --> +-+-+-+-+
|7|8|9|E| |A|S|D|F|
+-+-+-+-+ +-+-+-+-+
|A|0|B|F| |Z|X|C|V|
+-+-+-+-+ +-+-+-+-+
- sound support
- more accurate timing
- support for SuperChip and XO-Chip