This is a Nintendo Entertainment System emulator written from scratch in Rust for the sake of fun and learning. Originally, I wanted to build this emulator so I can finally beat Super Mario Forever with savestates. Available in both desktop and web. Try the live demo here!
- Cycle-accurate 6502 CPU emulation, verified using nestest.
- Accurate PPU emulation (expect limitations since it is implemented with old school scanline-based renderer)
- Can emulate most NROM and MMC1 games to a reasonable accuracy and speed
- The emulator can run in both desktop and web.
- Savestates
I pray that the future me will have some time to implement more features like debug views and SNES emulation support. Also hopefully Rust will finally have better and easy to use cross-platform GUI framework.
Super Mario Bros![]() |
Legend of Zelda![]() |
Space Harrier![]() |
Pac-Man![]() |
Make sure you have SDL2 installed before running this command
cargo run --release --bin nesty-desktop-sdl2
See the README file in platform/web for more details.
Key | Control |
---|---|
⇦ | Left |
⇨ | Right |
⇧ | Up |
⇩ | Down |
A | A |
S | B |
Space | Select |
Enter | Start |
F9 | Open ROM (Desktop only) |
F10 | Save state |
F11 | Load state |
- Donkey Kong
- Mario Bros
- Super Mario Bros
- Super Mario Forever
- Ice Climber
- Legend of Zelda
- Space Harrier
- Pac-Man
- Do not expose the emulator to extreme heat, cold, noise, darkness, or direct sunlight.
- Do not drink, eat, or smoke when using this software.
- Sit upright and put your hands on the table.
- Defragment your harddisk weekly.
- Use specialized defragmentation tools.
- This product may contain rude and disturbing language.
- Comprehensive 6502 reference: https://www.masswerk.at/6502/6502_instruction_set.html
- Nesdev, especially their articles on PPU rendering and PPU Scrolling
- javidx9's NES emulator Youtube playlist: https://www.youtube.com/playlist?list=PLrOv9FMX8xJHqMvSGB_9G9nZZ_4IgteYf
- Bagmanov's NES ebook: https://bugzmanov.github.io/nes_ebook/
- Emudev community and Discord: https://emudev.org/