Cross-platform implementation of the original Chip-8 interpreter.
- Rust 100%
| docs | ||
| emulator | ||
| libchip8 | ||
| .gitignore | ||
| Cargo.lock | ||
| Cargo.toml | ||
| README.md | ||
Chip-8 Emulator
Cross-platform original Chip-8 interpreter written in Rust.
The emulator uses a small number of dependencies, mainly macroquad for graphics and rodio for audio.
Installation
- Clone the repository
- Build from source with
cargo build --release - The resulting binary will be in
./target/release/emulator
Usage
Point the emulator to a ROM and it should work.
emulator ./path/to/my/ROM.ch8
Code organization
The codebase is split into 2 crates:
- libchip8 - core reusable Chip-8 logic
- emulator - GUI integration with libchip8
Testing
https://github.com/Timendus/chip8-test-suite was used for testing.
| Test | Status |
|---|---|
| Chip-8 logo | ✅ |
| IBM logo | ✅ |
| corax+ | ✅ |
| flags | ✅ |
| quirks | ❌ |
| keypad | ✅ |
| beep | ✅ |
Things to improve
The keypad is not registering as being pressed when held for short time.

