Skip to content
Screenshot published by the MedNES project
Screenshot published in the MedNES project's official README. Image source: MedNES project on GitHub.

MedNES

NES EMULATOR

MedNES

MedNES is a cycle-accurate NES emulator written in C++ with a command-line build and a browser-playable port. It implements a small set of classic mappers and is published under the MIT license on GitHub.

nesPRIMARY SYSTEM
History documentedPROJECT BEGAN
Open sourcePROJECT MODEL

WHY IT MATTERS

Why MedNES matters

MedNES aims for cycle-accurate NES emulation while remaining small and readable. It is suitable for learning about NES internals, for experimentation, and for projects that build on a compact, open-source implementation (including a WebAssembly/browser port).

BEST FOR

Notable strengths

Cycle-accurate design, compact C++ codebase, cross-platform build using SDL2, a browser (WASM/HTML5) demo, and an MIT license that permits reuse and modification.

The Legend of Zelda gameplay on NES
Gameplay from The Legend of Zelda on NES.

The people behind MedNES

History & project status

MedNES is hosted on GitHub (wpmed92/MedNES) and documents an ongoing development history in the repository. The README describes the emulator as cycle-accurate and cross-platform and lists supported mappers. The project includes a web port that can be run in a browser (the repository links to a demo site). The repository is active with commits and is distributed under the MIT license. There is a releases page on GitHub for binary releases, but users should verify available assets there; source builds are performed via the provided Makefile.

What MedNES supports

  • Windows (build from source)
  • macOS (build from source)
  • Linux (build from source)
  • Web (WASM/HTML5 demo)

Download and availability

OFFICIAL DOWNLOADS

Get MedNES

Official source and release assets are available on the project's GitHub repository and its Releases page. If no prebuilt binary matches your platform, build from source following the repository README. Official locations: the project's GitHub repository and the repository's Releases tab.

Get MedNES ↗

DOCUMENTATION

Official documentation

Read the official configuration, compatibility, and troubleshooting material before changing advanced options.

Read official documentation ↗
Broken or missing download? Emulator projects move and official links sometimes change. Please contact Retro Replay so the source can be verified and updated.

MedNES setup guide

Setup note: This guide describes verified, emulator-specific setup steps for building and running MedNES from the official repository. It assumes you will build from source (recommended) or use official release assets if present.

  1. 1) Get the source: Clone the official repository: git clone https://github.com/wpmed92/MedNES.git. Use the repository you cloned as the working tree for the build steps below.
  2. 2) Install prerequisites: Install a C++ toolchain and development tools for your OS and ensure SDL2 development libraries are available. The README lists SDL2 as a prerequisite. On Linux use your distro package manager (e.g., apt, dnf) to install libsdl2-dev; on macOS use Homebrew (brew install sdl2); on Windows install an appropriate MSVC or MinGW toolchain and SDL2 development headers/libs.
  3. 3) Build: From the repository root run make. The project includes a Makefile; this will compile the emulator into an executable named MedNES on most systems. If your toolchain differs you may need to adapt compiler flags or use your IDE to import the source/Makefile.
  4. 4) Run the emulator: From the repository directory run the built executable with the ROM insert flag: ./MedNES -insert <path/to/rom>. The README documents this exact command form. Expect the emulator to create .sav files for games that use battery-backed saves (handled by the emulator), and to write any runtime logs to stdout/stderr.
  5. 5) Browser demo (optional): The project links to a browser-playable port on the project's GitHub Pages site. If you prefer not to build locally, try the web demo linked from the repository to verify behavior. Note that browser demos are limited by the web build and may not expose every native feature.
  6. 6) Mapper and compatibility limits: MedNES documents support for a limited set of mappers: NROM (0), MMC1 (1), UNROM (2), CNROM (3). Because many NES games rely on other mappers or hardware expansions, only cartridges using the supported mappers are expected to run correctly. Consult the repository README and test suite for details on supported ROM types.
  7. 7) Troubleshooting and testing: If a ROM fails to load, verify it is a standard iNES-format .nes file and uses a supported mapper. Use the project's Test folder and any included unit tests to confirm the build. If you encounter graphical or timing issues, check that SDL2 is properly installed and that you built with optimizations appropriate to your platform.

Software reminder: MedNES does not include commercial game ROMs, BIOS, or firmware. You are responsible for supplying ROM files you legally own. The emulator is distributed under the MIT license.

Sources and further reading

Detailed guides and tutorials

Explore step-by-step guides for MedNES as they are published.