4 releases
0.4.2 | Feb 13, 2023 |
---|---|
0.4.1 | Nov 21, 2022 |
0.3.6 | Jun 28, 2022 |
0.3.5 | Jun 27, 2022 |
#107 in Emulators
275KB
981 lines
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.
You can check a working version of the emulator at chip-ahoyto.joao.me
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 🌐
Deployments
Provider | Stable | URL |
---|---|---|
Cloudfare | True |
chip-ahoyto.joao.me |
Netlify | True |
chip-ahoyto.netlify.app |
Cloudfare | True |
chip-ahoyto.joao.me |
Cloudfare | True |
chip-ahoyto.pages.dev |
Cloudfare | True |
prod.chip-ahoyto.pages.dev |
Cloudfare | True |
stable.chip-ahoyto.pages.dev |
Cloudfare | False |
master.chip-ahoyto.pages.dev |
Crate Features
Name | Description |
---|---|
quirks |
Allows CHIP-8 quirks runtime evaluation, comes at a performance penalty. |
Build
Library
cargo 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=frontends/web/lib -- --features wasm
cd frontends/web
npm install && npm run build
cd dist && python3 -m http.server
Reason
And... yes this is the real inspiration behind the emulator's name:
Inspiration
Many articles and websites helped me in this quest to build the emulator these are some of them.
Documentation
- Guide to making a CHIP-8 emulator
- Writing a CHIP-8 emulator with Rust and WebAssembly
- Wikipedia - CHIP-8
- itch.io - OctoJam 6
- CHIP-8 Archive
Articles
License
CHIP-Ahoyto is currently licensed under the Apache License, Version 2.0.