A modular emulator platform built with Rust and egui, currently supporting CHIP-8 with plans for more systems.
- Modular Architecture: Trait-based design for easy addition of new emulators
- GUI Interface: Clean UI with file picker, controls, and debugger
- Multiple Emulators:
- ✅ CHIP-8 (fully implemented)
- 🚧 Game Boy (skeleton, in development)
cargo run --releaseThe application will open with a GUI where you can:
- Select an emulator from the dropdown
- Load a ROM file using the file picker
- Use the controls to run/pause/reset the emulator
cargo run --release -- [OPTIONS]
Options:
-c, --cycles <CYCLES> Number of CPU instructions per timer update [default: 1]
-m, --mute Enable to mute the beep sound
-h, --help Print helpThe project uses a trait-based architecture for modularity:
src/
├── emulators/
│ ├── mod.rs # Emulator trait and error types
│ ├── chip8/ # CHIP-8 implementation
│ │ ├── mod.rs
│ │ ├── configs.rs
│ │ └── rand.rs
│ └── gameboy/ # Game Boy implementation (skeleton)
│ └── mod.rs
└── main.rs # GUI application
- Create a new module in
src/emulators/ - Implement the
Emulatortrait - Add to the emulator dropdown in
main.rs