Skip to content

marethyu/nesty

Repository files navigation

Nesty

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!

Features

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

Some demos

Super Mario Brosmario Legend of Zeldazelda
Space Harrierspace harrier Pac-Manpacman

Building

Desktop SDL2

Make sure you have SDL2 installed before running this command

cargo run --release --bin nesty-desktop-sdl2

WASM Application

See the README file in platform/web for more details.

Keybindings

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

Tested games

  • Donkey Kong
  • Mario Bros
  • Super Mario Bros
  • Super Mario Forever
  • Ice Climber
  • Legend of Zelda
  • Space Harrier
  • Pac-Man

Important Notes

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

Credits