Skip to content

A CHIP-8 & SuperCHIP interpreter written in Rust using rust-sdl2

License

Notifications You must be signed in to change notification settings

stianeklund/chip8

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

chip8

Build Status

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 If you're getting compile errors it may be because .multirust doesn't have the needed SDL libs. Ref: Rust-SDL2/rust-sdl2#526 (comment)

The project can be built by running: cargo build 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.


Screenshots:

SpaceFight2091 (SCHIP):

SpaceFight2091 (SCHIP):

Cars (SCHIP):

Brix (CHIP-8, upscaled):

Joust (SCHIP):


Sources used:

On pixel drawing:

Releases

No releases published

Packages

No packages published