imagine-hussain / rust-nes

A **BLAZINGLY FAST** rust emulator for the NES.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

rust-nes

GitHub repo size Lines of code Build Clippy

A BLAZINGLY FAST rust emulator for the NES.

Install / Usage

  1. Clone the repository and navigate to it
git clone https://github.com/imagine-hussain/rust-nes.git
cd rust-nes
  1. Compile using cargo. If you don't have cargo, install it here.
cargo build --release
  1. Run.
cargo run
  1. 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.

image

Status

Non-functional WIP.

TODO

  • 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.

About

A **BLAZINGLY FAST** rust emulator for the NES.


Languages

Language:Rust 100.0%