CHIP-Ahoyto 🍪
CHIP-8 emulator written in rust 🦀.
The goal of this project is purely experimental and a learning tool for rust.
The work of this emulator was inspired/started by jc-chip8.
Goals
- Performance 🏎️
- Separation of concerns 🖖
- Simplicity 😀
- Compatibility 🪛
Features
- Drag and drop support for ROMs
- Pallet switching
- Visual diagnostics
- Variable CPU frequency
- Multiple engine implementations (classic and neo)
- Full compliant with test CHIP-8 ROMs
- RAM snapshot saving and loading
- WebAssembly support 🌐
Build
WASM for Node.js
cargo install wasm-pack
wasm-pack build --release --target=nodejs -- --features wasm
WASM for Web
cargo install wasm-pack
wasm-pack build --release --target=web --out-dir=examples/web/lib -- --features wasm
cd examples/web
python3 -m http.server
Reason
And... yes this is the real inspiration behind the emulator's name:

Inspiration
- Guide to making a CHIP-8 emulator
- Writing a CHIP-8 emulator with Rust and WebAssembly
- Wikipedia - CHIP-8
License
CHIP-Ahoyto is currently licensed under the Apache License, Version 2.0.