A BLAZINGLY FAST rust emulator for the NES.
- Clone the repository and navigate to it
git clone https://github.com/imagine-hussain/rust-nes.git
cd rust-nes
- Compile using
cargo
. If you don't have cargo, install it here.
cargo build --release
- Run.
cargo run
- Use the
Open
button in the toolbar to bring up a file-explorer and select the rom you wish to load. A git-ignored/roms
folder has been provided for you, to have a convenient place to store your ROMS.
Non-functional WIP.
-
Create instruction decoding
-
Implement all instructions
-
Decode and open
.iNes
files accurately -
Implement Cpu Cycling
-
Implement Ppu
-
Get a frontend working that renders something
-
Add a file explorer and allow roms to be loaded in through the GUI.
-
Mappers. Aim is to have the 10 most common mappers complete, to allow most games to work. 2127 / 2418 = 88%.
- Mapper 001 | 677 (28%)
- Mapper 004 | 587 (24.28%)
- Mapper 002 | 267 (11.04%)
- Mapper 000 | 247 (10.22%)
- Mapper 003 | 155 (6.41%)
- Mapper 007 | 75 (3.1%)
- Mapper 206 | 44 (1.82%)
- Mapper 011 | 31 (1.28%)
- Mapper 005 | 24 (0.99%)
- Mapper 009 | 20 (0.83%)
-
APU
-
PPU - CURRENT WORK IN PROGRESS
-
Additional Emulator Features
- Pause
- Speed-up / Slow-down Execution
- Pause / Inspect
- Save Game-State
- Scaling
- Crt Shader
-
Add GitHub CI/CD to ensure builds on Windows are succesful.