A Chip-8 interpreter written in Rust.
The Chip-8 is a virtual machine developed in the 1970's.
It supports 35 opcodes, has a 64x32 pixel display, and is capable of producing a single beep tone.
The use of two different opcodes to clear (00E0
) the screen and draw (Dxyn
) it means that games are inherently flickery.
See the chip8 struct's docstring for more system details.
- decoupled input, logic, and rendering
- fully tested opcodes
- fast forward
- rewind
cargo run -- run --file ~/path/to/file.ch8
The Chip-8 supports ROMS up to 3584 bytes in length (4K memory - 512 bytes for internal use).
Dmatlack has a repository of games that this emulator has been validated against.