This project is an experiment to try to learn more about rust and the concept of emulators. I wanted to use Chip-8 because it has a small set of instructions and it's well documented.
The webpage chip8.com explains it like this:
CHIP-8 is an interpreted programming language, developed by the late Joseph Weisbecker. It was initially used on the COSMAC VIP and Telmac 1800 8-bit microcomputers in the mid-1970s. CHIP-8 programs are run on a CHIP-8 virtual machine. It was made to allow video games to be more easily programmed for said computers.
- Rust, the last stable release.
- SDL2.0 development libraries. You can check the documentation on the official project to see how to install them.
Clone the repository and install all the dependencies:
$ git clone git@github.com:jhbabon/johnny_eight.git
$ cd johnny_eight
$ cargo build
You can check that (almost) everything works by running the tests:
$ cargo test
The binary program accepts the path to a ROM file. You can find many in the chip8.com webpage.
Example
# run directly
$ cargo run --release -- fixtures/chip_8_logo.rom
# or build and run
$ cargo build --release
$ target/release/johnny_eight fixtures/chip_8_logo.rom
Some useful projects and webpages about Chip-8: