A basic CHIP-8 interpreter written in Rust.
Features:
- All standard CHIP-8 instructions implemented
- Sound support (via rodio)
- Hardware accelerated rendering / scaling (via pixels)
You can run the emulator by either building the source yourself, or choosing a pre-built binary for your platform in Releases.
To build from source, simply run:
cargo build --release
To use the binary, simply type in the file path to the ROM you want to play as the first argument to the executable.
You can find CHIP-8 ROMs all over the internet. Here is a good source: https://github.com/badlogic/chip8/tree/master/roms
ch8-rs.exe pong.rom
CHIP-8 uses a 16-key input with 0-9 buttons as well as A-F.
These keys are mapped to PC keyboards as follows:
|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|
Different ROMs use different keys for different things. You might have to experiment with the keys to figure out how to use each ROM.