A CHIP-8 emulator written in Rust.
The emulator already supports running a CHIP-8 ROM specified as a CLI argument, but some aspects of the emulator still need to be made configurable.
So far there is also no option for configuring the emulator graphically (e.g. loading a ROM through a file chooser dialog, displaying errors with recovery options, etc.).
cargo run --release -- <rom-file>
For a more detailed description see the output of
cargo run -- --help
The emulator uses the tracing and tracing-subscriber crates for logging/tracing.
To have the emulator print events to stdout at various levels of verbosity,
run it with the environment variable RUST_LOG
set to one of
error
, warn
, info
, debug
and trace
, or use a more complex filter as described
here.
Errors and warnings will be printed to stdout by default.
Example:
RUST_LOG="crsp=debug,crsp-base=debug" cargo run --release -- <rom-file>
This will print all events with level debug
or higher from the crsp
and crsp-base
crates.
(CHIP(-8) → crisp) + Rust (rs) = crsp
This project is licensed under the MIT license.
- CHIP‐8 Technical Reference - Matthew Mikolay
- CHIP‐8 Instruction Set - Matthew Mikolay
- CHIP‐8 Extensions Reference - Matthew Mikolay
- CHIP-8 (Wikipedia) - Wikipedia
- Chip 8 Instruction Scheduling and Frequency (Archive) - Jackson Sommerich
- Chip 8 on the COSMAC VIP: Instruction Index - Lawrence Scotford