A CHIP-8 emulator written in Rust.
⚠️ This project is purely educational. The main goal is not to write clean, performant, or idiomatic Rust code, but to learn about emulation and how CHIP-8 works.
This project was based on the following tutorial:
And follows the official CHIP-8 specifications:
For testing, I used the following ROM:
I tried to write most of the code myself, using minimal AI assistance, only to clarify doubts while learning.
- Implements all CHIP-8 opcodes
- Supports testing ROMs (like
corax89) - Simple screen rendering (on/off pixels)
- Delay and sound timers
- Basic keyboard input
This project is not perfect:
- It doesn’t focus on optimization, readability, or Rust best practices
- Any bugs or odd behaviors are welcome to be corrected
- Pull requests are encouraged, especially for:
- Fixing bugs
- Improving ROM compatibility
- Suggesting improvements or refactoring
If you want to contribute:
- Fork the repository
- Create a branch for your changes
- Submit a pull request explaining your changes
- Feedback and bug fixes are always welcome
MIT License. Feel free to study, modify, and use this project as a reference.