This is my attempt at making a Chip-8
emulator in rust. Chip-8 is apparantly the "Hello, World!" of emulators.
- Implements all (original) CHIP-8 instructions
- A simple commandline tool to launch the emulator, with optional configuration
src/
main.rs
: Entry point for the application. Contains code to interface with the GUI library.lib.rs
: Implementation of the CHIP-8 Emulator.structs.rs
: Contains all other structs used, including QOL and multi-threading ones.helpers.rs
: Helper functions.
roms/
tests
: ROMs to test the implementation of the emulator. Taken from https://github.com/Timendus/chip8-test-suitegames/
: Games :-)
PS: I think I overcommented the code a bit
- http://devernay.free.fr/hacks/chip8/C8TECH10.HTM#3.1
A concise reference for instructions - https://tobiasvl.github.io/blog/write-a-chip-8-emulator
Covers most ambiguous cases - https://github.com/Timendus/chip8-test-suite
Includes test ROMs to verify your implementation
This project is licensed under the MIT License.
The test ROMs under /roms/tests are sourced from https://github.com/Timendus/chip8-test-suite and are accordingly licensed under the GNU GPL v3.