A Chip-8 emulator written entirely in Rust
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
screenshots
src
.gitignore
Cargo.lock
Cargo.toml
LICENSE
README.md
log4rs.yaml

README.md

Chip-8 Emulator in Rust

This project contains a Chip-8 Emulator written entirely in Rust. The goal of the project is to have an isolated Chip-8 Emulator that can easily integrate with various frontends and keyboard input events. There is an additional goal to write the emulator in such a way that uses all of the safe guarantees that Rust provides.

The project is currently a work in progress, and a few instructions are waiting to be implemented. Major things that are waiting to be completed are listed below.

Image of TicTac being played:

image

Image of Brix being played:

image

Image of Space Invaders intro:

image

Image of Space Invaders being played:

image

Usage

To use simply run:

$ cargo run --release -- $ROM_NAME

Completed

  • Chip-8 memory pattern
  • Opcode interpretation
  • Running instructions
  • Keyboard input and emulation
  • Emulate display and collision detection
  • Display data using sdl2
  • Logging

TODO

  • Rework the error system
  • Add unit tests
  • Add integration tests