A CHIP-8 & SuperChip interpreter written in Rust using rust-sdl2
This is a CHIP-8 & SuperChip interpreter written in Rust and depends on RUST-SDL2 (SDL2 bindings to Rust).
CHIP-8 games are upscaled to Super Chip size (128x64).
Full compatability aside from audio.
Building the project:
This project depends on Rust-SDL2 & therefor depends on libsdl2 development libraries.
E.g for Ubuntu / Debian Linux: sudo apt install libsdl2-dev Please refer here for more details: https://github.com/AngryLawyer/rust-sdl2
.multirustdoesn't have the needed SDL libs. Ref: https://github.com/Rust-SDL2/rust-sdl2/issues/526#issuecomment-241396593
The project can be built by running:
It needs to be run with the rom as a passing argument, e.g:
cargo run /path/to/romfile/rom
Running the CHIP8 interpreter:
Key mapping is: 1-9 & A-F as if it were a real Hexadecimal keypad.
CPU cycle speed can be changed by pressing Page Up & Page Down. Some games play better on a higher cycle speed. E.g Brix works better at 4 cycles.
You can also enter debug mode by pressing F12, this will print a LOT of values to CLI and is not pretty.
Brix (CHIP-8, upscaled):
- #404 & #emudev on Slack
On pixel drawing:
- #404 (Written with the Cosmac VIP in mind. Gives a good visualization of how drawing works in relation to memory addresses).