Created following An Introduction to Chip-8 Emulation using the Rust Programming Language
- Complete CHIP-8 instruction set implementation
- Cross-platform support (Native and Web)
- Configurable display colors (Native only)
- Real-time keyboard input
- Adjustable emulation speed
- Support for all standard CHIP-8 ROMs
- Rust toolchain (cargo, rustc)
- SDL2 development libraries:
Download from here
On MacOS extract and place the extracted folder in/Library/Frameworks/
- wasm-pack
- python3 (to run a server for the web version)
Run in desktop
folder: cargo run <path_to_rom> <color>
Color options: red, blue, green, pink
Run in wasm
folder:
wasm-pack build --target web && mv pkg/wasm.js ../web/wasm.js && mv pkg/wasm_bg.wasm ../web/wasm_bg.wasm && cd ../web && python3 -m http.server
- Written in Rust for performance and safety
- Uses SDL2 for native graphics and input handling
- WebAssembly support for browser-based emulation