NES EMULATOR
nen-emulator
Nen Emulator (nen-emulator) is an open-source NES (Nintendo Entertainment System) emulator written in Rust. It aims for high mapper compatibility, includes Famicom Disk System support, and offers multiple frontends (egui/eframe GUI, SDL2/SDL3, and a WIP WebAssembly frontend).

WHY IT MATTERS
Why consider Nen Emulator?
Nen is a Rust-based NES implementation that focuses on mapper coverage and accurate PPU/APU behavior. It provides a desktop GUI frontend (eframe/egui) for general use plus alternate frontends (SDL2/SDL3) and a work-in-progress WASM frontend for browser testing. The project exposes a core library useful for reuse or experimentation.
BEST FOR
Best for
Users who want a modern, Rust-written NES emulator with explicit mapper support, Famicom Disk System handling, and multiple frontend options for testing, development, or embedding.
The people behind nen-emulator
Project history and status
Nen Emulator is published on GitHub as Comba92/nen-emulator and contains a multi-crate layout: a core crate (nenemu_core), several frontends (nenemu_eframe, nenemu_sdl2, nenemu_sdl3), and a WASM frontend. The repository documents features such as 6502 CPU quirks emulation, PPU pixel rendering including Loopy register behaviour, APU channel emulation, savestates, battery RAM persistence, iNES and NES 2.0 header support, and Famicom Disk System (FDS) support. The project provides binary releases in its GitHub releases page and maintains documentation and a frontend demo on the project GitHub Pages site. Active development is visible in the repository commit history and release artifacts; however, users should check the repository for the most recent commit/activity before relying on a particular build.
What nen-emulator supports
- NES (Nintendo Entertainment System)
- Famicom Disk System (FDS)
- iNES and NES 2.0 ROM headers
- Zip-compressed ROM archives (drag & drop supported)
- Savestates and battery-backed RAM persistence
Download and availability
OFFICIAL DOWNLOADS
Get nen-emulator
Official downloads (prebuilt binaries) and release assets are published in the project's GitHub Releases. Source code and crates are available from the repository; building from source requires the Rust toolchain. A WASM frontend demo is hosted on the project's GitHub Pages site.
Get nen-emulator ↗DOCUMENTATION
Official documentation
Read the official configuration, compatibility, and troubleshooting material before changing advanced options.
Read official documentation ↗nen-emulator setup guide
Setup note: Practical setup notes: choose whether you want to run a prebuilt release, build from source, or run the WASM demo. The project exposes multiple frontends; eframe (egui) is the most featureful desktop GUI, SDL2/SDL3 frontends are more minimal, and the WASM frontend is experimental.
- 1) Get the release or clone the repository: Visit the project's GitHub Releases page to download prebuilt binaries if available, or clone the repository to build from source. Releases and source are hosted at the project's GitHub repository.
- 2) Requirements for building from source: Install Rust (rustup toolchain) for building. If you plan to use the SDL frontends, install the system SDL2 (or SDL3) development libraries for your OS. For the WASM frontend you will need wasm-pack or cargo + wasm toolchain and a simple static host to run the demo locally.
- 3) Building the eframe (egui) desktop frontend: From the repository root, use cargo to build the eframe frontend crate (nenemu_eframe). Typical commands: ensure rust toolchain is set up (stable), then run cargo build –release –package nenemu_eframe (adjust to workspace crate name shown in the repository). The eframe frontend provides the GUI with drag-and-drop ROM loading, keybind configuration, savestates, and audio/video controls.
- 4) Building the SDL2 / SDL3 frontends: Install SDL2 (or SDL3) and the development headers for your platform, then build the nenemu_sdl2 or nenemu_sdl3 crate with cargo build –release –package nenemu_sdl2 (or nenemu_sdl3). These frontends are more minimal but useful if you prefer SDL-based windows or want to integrate the core into other projects.
- 5) Running the WASM frontend (demo): The repository includes a WIP WASM frontend and a hosted demo on GitHub Pages. To test locally, add the wasm toolchain (rustup target add wasm32-unknown-unknown) and use the repository's WASM crate build instructions (wasm-pack or equivalent), then serve the generated files with a static web server. The hosted demo can be viewed on the project's GitHub Pages site for a quick try without building.
- 6) Loading ROMs and runtime notes: The eframe GUI supports drag-and-drop and opening ZIP archives containing ROMs. The emulator supports iNES and NES 2.0 headers and also attempts to identify headerless ROMs using a games database. FDS disk images are supported but require FDS-compatible image files (the emulator does not include commercial FDS firmware or disks). Savestates and battery-backed RAM saving are available in the GUI; do not assume compatibility of savestates across different emulator projects.
- 7) Mapper and feature caveats: Nen lists implemented mappers including common ones (NROM, MMC1, UxROM, MMC3, etc.) and many others; some features are partially implemented (for example MMC5 PCM channel is noted as not implemented). Consult the repository's compatibility list before trying a specific commercial game to confirm mapper support.
- 8) Troubleshooting and development: If you encounter graphical glitches or missing functionality, check the issues and pull requests on the GitHub repository. For development, study the multi-crate layout (core library + frontends) to reuse the core in your own frontend or to contribute fixes. The repository includes example test ROMs and documentation pages with emulator development tips on the author's site.
Software reminder: Nen Emulator does not ship commercial game ROMs, BIOS, or FDS firmware. You must provide legally obtained ROM or disk image files. Savestates from this emulator are not guaranteed to be compatible with other emulators.
Sources and further reading
Detailed guides and tutorials
Explore step-by-step guides for nen-emulator as they are published.
Retro Replay Retro Gaming History, Reviews & Emulation
