This is a working Chip-8 emulator built to learn more about emulation and Rust without following an explicit step-by-step tutorial.
You will need the SDL2 library installed in order to compile the project.
For example, on Fedora run the following command to install the development library:
sudo dnf install SDL2-devel
Then run the project passing a path to the Chip-8 rom as follows:
cargo run --release -- <path_to_rom>
If you do not have a Chip-8 rom you can download an archive from here.
I implemented the emulator without referring to other similar projects directly, so it probably has a few questionable design decisions. I worked from Cowgod's Technical Reference which describes how the interpreter should work and lists the CPU instruction set. I also used the Wikipedia article as another reference to fill in the gaps. When the project was complete I checked my approach in comparison to the one described in this blog.
I got started using SDL2 thanks to helpful blog posts like this one about opening a window.