Rust-8 is an implementation of the CHIP-8 virtual machine written in Rust.
CHIP-8 is a virtual machine (along with a supporting programming language). Since the CHIP-8 VM does not expose the fact that it's running on a host CPU, in theory the VM could be translated to physical hardware.
The CHIP-8 VM was used in the late '70s on some computers such as the Telmac 1800 and on some calculators in the 1980's.
CHIP-8 was mainly used as a gaming platform, and today you can play lots of games like Pong and Breakout on it.
You can find a list of games here.
You can find more information on the CHIP-8 wikipedia page or on the CHIP-8 website.
You can find lots of game ROMs online. The best source of games I've found is the CHIP-8 website listed above.
Once you have a game ROM you can run it with:
cargo run -- $GAME
I was inspired by Jake Taylor's live streaming project of building an N64 emulator in Rust. Having never built an emulator myself, I searched online for easy ways to get started. The CHIP-8 is many people's first emulator because it's relatively easy and quick to finish. I got the emulator working in less than a week, for example.
Rust is awesome. If you start a project where you think you need either C or C++, reach for Rust next time.
A big thank you to all the people who wrote references about the Chip-8 and posted them online. One reason that the Chip-8 is such a great learning VM/emulator is because of the awesome references.
- Matthew Mikolay's Mastering Chip-8
- Cowgod's Chip-8 Reference