Skip to content
SimpleNES

SimpleNES

NES EMULATOR

SimpleNES

SimpleNES is an open-source, single-binary NES (Nintendo Entertainment System) emulator written in C++ that runs standard .nes ROM images. It uses SFML for video/input and provides configurable keybindings, command-line options for scaling/window size, and experimental support for a handful of mappers. The repository is archived by its author and distributed

nesPRIMARY SYSTEM
History documentedPROJECT BEGAN
Open sourcePROJECT MODEL

WHY IT MATTERS

Why SimpleNES exists

SimpleNES is intended as a compact, educational NES implementation: readable C++ code, simple build system (CMake), and an easy-to-run executable. It targets users who want a straightforward, self-contained NES implementation they can inspect, build, and modify rather than a full-featured production emulator.

BEST FOR

Notable strengths

– Clear, self-contained C++ codebase suitable for study and modification.- Cross-platform build with CMake and common libraries (SFML). – Ships sample keybindings and command-line options for quick testing of .nes images. – Binary releases are available via GitHub Actions/releases in addition to source builds.

The people behind SimpleNES

Status and history

The project repository (amhndu/SimpleNES) documents ongoing development, then later an archived state: the README includes an explicit ARCHIVED notice from the maintainer indicating they no longer actively pursue new features, issues, or PRs. The README describes supported mappers (no mapper plus mappers 1, 2, 3 with experimental support for 4, 7, 66 and 11) and claims roughly 50–60% compatibility for tested games. The source tree shows CMake build files, SFML dependency, and bundled vendor code (miniaudio). Releases and GitHub Actions artifacts are referenced in the README as the recommended download path for prebuilt executables. The project is GPL-3.0 licensed.

What SimpleNES supports

  • Windows (build from source / provided CI artifacts)
  • Linux (build from source)
  • macOS (build from source)
  • Standard NES .nes ROM images

Download and availability

OFFICIAL DOWNLOADS

Get SimpleNES

Obtain SimpleNES from its official GitHub repository: clone the source and build with CMake, or download prebuilt executables from the project's Latest Release or GitHub Actions artifacts as referenced in the README. The repository README explicitly points users to the Releases page and to GitHub Actions builds for platform-specific executables.

Get SimpleNES ↗

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.

SimpleNES setup guide

Setup note: Concrete steps to get SimpleNES running from source or using provided artifacts. This guide assumes you have legitimate .nes images you are permitted to use and that you will not supply any copyrighted BIOS/firmware bundled with the project (SimpleNES does not include commercial game ROMs or proprietary firmware).

  1. 1) Fetch source or artifacts: Option A — Download prebuilt binaries: open the project's Releases page or the latest GitHub Actions workflow run artifacts and download the executable for your platform. Option B — Build from source: clone the repository (git clone https://github.com/amhndu/SimpleNES) and use the build steps below.
  2. 2) Install build dependencies: Required: a C++11-compliant compiler, CMake, and SFML 2.x development libraries. On Linux (Debian/Ubuntu): sudo apt install -y build-essential cmake libsfml-dev. On Arch: install sfml2 from the package manager. On macOS (Homebrew): brew install cmake sfml@2 then brew link sfml@2 if needed. On Windows: use vcpkg to install SFML (vcpkg install sfml) or install SFML development packages manually; ensure your compiler (MSVC or MinGW) is configured for CMake.
  3. 3) Build (CMake): From the repository root: mkdir build && cd build then run cmake -DCMAKE_BUILD_TYPE=Release .. If SFML is in a nonstandard location, pass -DSFML_ROOT=/path/to/sfml. Then run make -jN (Linux/macOS) or open the generated Visual Studio solution on Windows and build the Release target. The repository contains a compile.yaml and platform-specific notes in the README to help with environment differences.
  4. 4) Optional: use provided CI artifacts: If you prefer not to compile, download executables attached to the project’s latest GitHub Actions run or Releases page. Make sure to verify which platform and architecture each artifact targets before running.
  5. 5) Run SimpleNES with a .nes image: Invocation is command-line based. Example: ./SimpleNES /path/to/game.nes. Useful options include –mute-audio, -s/–scale to set video scale (default scale 3), -w/–width and -H/–height to control window size, and -C/–conf to set a custom keybindings.conf. Run ./SimpleNES -h to list supported options.
  6. 6) Configure controls: The repository includes a keybindings.conf demonstrating default keyboard mappings. Edit that file or pass a custom path with -C to remap keys or configure a gamepad. On platforms using SDL/OS-level gamepad support, ensure your controllers are recognized by the OS and SFML.
  7. 7) Audio and timing notes: SimpleNES adds audio support but the README notes older videos lacked audio; expect timing and APU accuracy to be suitable for many games but not necessarily cycle-perfect for all mappers or edge cases. If you encounter audio issues ensure your system audio libraries are present and that you aren’t running with –mute-audio.
  8. 8) Mapper and compatibility considerations: README states roughly 50–60% game compatibility, with explicit support for no-mapper and several common mappers; other mappers are experimental. If a ROM fails to run, check the README’s mapper notes and the GitHub issues (archived) or fork the project for local fixes.

Software reminder: SimpleNES does not include commercial game ROMs, console BIOS, or other proprietary files. You must supply legally obtained .nes images yourself. Follow local law and rights-holder terms when obtaining ROMs.

Sources and further reading

Detailed guides and tutorials

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