Skip to content

WIP cycle-accurate NES emulator written from scratch in Rust

Notifications You must be signed in to change notification settings

AdamBlance/nes-emu

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Summary

This is a "cycle-accurate" NES emulator, meaning the hardware is emulated at the granularity of individual CPU/PPU cycles rather than one CPU instruction at a time. This allows for emulating games that depend on hardware quirks (open bus behaviour, dummy reads, tight interrupt timings) without relying on game-specific hacks.

smb3gif

This project is not based on any existing emulator and was not developed with reference to any existing emulator code. It has been written to match the behaviour of NES hardware as described by/on/in:

Features

  • Cycle-accurate emulation with full audio/video support (CPU, PPU and APU implemented)
  • Support for both keyboard & controller input with multiple mappings
  • "Rewind" save-state feature (shown below ⬇️)
  • Adjustable emulation speed
  • CPU debugger (in development)

rewindgif

Supported mappers

These mappers cover over 1000 games!

About

WIP cycle-accurate NES emulator written from scratch in Rust

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages