by MichaelBurge

MichaelBurge / nes-emulator

A NES emulator made to learn the Rust programming language

213 Stars 10 Forks Last release: Not found 68 Commits 0 Releases

Available items

No Items, yet!

The developer of this repository has not created any items for sale yet. Need a bug fixed? Help with integration? A different license? Create a request here:



$ rustc --version
rustc 1.32.0 (9fda7c223 2019-01-16)
$ cargo --version
cargo 1.32.0 (8610973aa 2019-01-02)

$ cargo build --release $ cargo run --release --bin nes-emulator

The emulator loads a ROM in iNES format located at the hardcoded path


On Windows, you may need to statically-link SDL by enabling the appropriate feature:

$ cargo run --release --bin nes-emulator --features 'sdl2/bundled'


The emulator has been tested with an Xbox 360 controller, but should work with any controller the SDL library recognizes.

Additionally, these keyboard keys control the emulator: * Escape: Exits the emulator * Pause: (Developer use) Breaks a command-line debugger * F5: Saves a savestate * F6: Loads the most recent savestate * F7: Restart the current ROM and playback a video of recorded inputs * F8: Set video recording start point * Tab: Toggles "turbo mode", which removes the 60 FPS limit.

We use cookies. If you continue to browse the site, you agree to the use of cookies. For more information on our use of cookies please see our Privacy Policy.