"Oito" means "Eight" in Portuguese, so: Chip8 → Chipoito.
Everything was built based on: http://devernay.free.fr/hacks/chip8/C8TECH10.HTM#Fx65
The test ROMs used: https://github.com/Timendus/chip8-test-suite?tab=readme-ov-file
And other ROMs I played with: https://github.com/kripod/chip8-roms
To build this project, you need the Rust toolchain and Cargo installed. You can follow this guide: https://rust-lang.org/tools/install/
You also need wasm-pack to compile Rust code to WebAssembly: https://drager.github.io/wasm-pack/installer/
Along with wasm-pack, you need the wasm32-unknown-unknown target: https://doc.rust-lang.org/beta/rustc/platform-support/wasm32-unknown-unknown.html
For simplicity, I created a Makefile. To use it, run:
make buildmake run
The emulator will run on port 8000.
If you prefer to use Cargo directly, you can run:
wasm-pack build --release --target webcargo run --release --bin server
The emulator will run on port 8000.
The page shows the Chip8 screen. Below it, there’s a file input where you can load your ROM (only standard Chip8, no supersets).
Below that, you can see the keyboard mapping, which shows which key on your keyboard corresponds to which key in the Chip8 system.
Load your ROM and have fun!
- Improve rendering using a double buffer
- Implement Super Chip-48 support