NINTENDO NES/FAMICOM EMULATOR CORE
Emux NES
Emux NES is the NES / Famicom implementation provided by the Emux multi-system emulator project as a Libretro core. It is distributed as an open-source libretro core (emux_nes) and can be built from the Emux source tree or obtained via Libretro's core distribution mechanisms.

WHY IT MATTERS
Why Emux NES exists
Emux is designed as a single code base that can produce standalone emulators and Libretro cores for multiple systems. The Emux NES core exists so the Emux project can offer its NES/Famicom machine implementation as a loadable libretro core for frontends such as RetroArch.
BEST FOR
Best use cases
Use Emux NES when you want an NES core coming from the Emux multi-system codebase (for testing, development, or use with frontends that load libretro cores). It is appropriate for users who build cores from source or use RetroArch/Core Downloader where Emux cores are available.
The people behind Emux NES
Project and source status
Emux is a cross-platform, GPLv2-licensed multi-system emulator whose source repository includes support for several machines (CHIP-8, Game Boy, NES, Sega Master System, etc.) and can be built either as a standalone emulator or as separate libretro cores. The Emux repository documents building with a standard configure/make workflow and contains a libretro/ subdirectory with Makefiles to produce libretro cores. Emux appears in Libretro's listed core catalog (emux_nes) and its core documentation is available on docs.libretro.com. The source repository (GitHub: sronsse/emux) includes the NES machine implementation and instructions for building libretro cores. The project is actively published in these locations; for current activity or release status consult the repository and Libretro docs directly for dates and recent commits.
What Emux NES supports
- Nintendo NES / Famicom (ROM images)
- Libretro frontends (RetroArch and other libretro-compatible frontends)
- Linux (build from source)
- Windows/macOS when built as libretro core or used via RetroArch
Download and availability
OFFICIAL DOWNLOADS
Get Emux NES
Official core distribution: Libretro documents emux_nes on its library pages and lists libretro core downloads via RetroArch's Core Downloader or the Libretro core listing. The Emux source, including the libretro cores, is hosted on GitHub (sronsse/emux) and can be built to produce emux_nes yourself.
Get Emux NES ↗DOCUMENTATION
Official documentation
Read the official configuration, compatibility, and troubleshooting material before changing advanced options.
Read official documentation ↗Emux NES setup guide
Setup note: Below are practical, verifiable steps to obtain or build the emux_nes libretro core and run NES/Famicom content. These steps follow the Emux project's own build guidance and the libretro build approach documented in the repository. Adjust commands for your platform, cross-compilation requirements, and preferred frontend (RetroArch, RetroArch build of cores, or custom libretro frontend). Do not expect any commercial ROMs, BIOS, or firmware to be provided by the core or repository.
- Option A — Install via RetroArch core downloader (recommended for most users): 1) Open RetroArch on your target platform. 2) Go to Online Updater → Core Updater. 3) Find and install the NES/Famicom core named emux_nes if it is present in the Core Updater list. 4) From Main Menu → Load Core, select emux_nes. 5) Load a compatible NES ROM from Load Content. Note: availability in the Core Updater depends on the build/distribution used by your RetroArch release — if emux_nes is not listed you will need a manually built core (Option B).
- Option B — Build emux_nes from the Emux source (Linux/macOS/Windows with appropriate toolchain): Prerequisites: standard build tools (autoconf, automake, pkg-config, make), SDL2 development headers if building standalone frontends, and a C toolchain. 1) Clone the Emux repository: git clone https://github.com/sronsse/emux.git 2) Inspect README and the libretro/ subdirectory for platform Makefiles and build notes. 3) To build libretro cores from the project root, change to the libretro directory: cd libretro/ 4) Use the provided Makefile for your target platform. Example (generic): make -f Makefile.platform MACHINE=nes Replace Makefile.platform with the platform-specific Makefile found in libretro/ (the repository documents Makefile.* names). 5) The build produces a libretro core file named according to the platform (for example emux_nes.so on Linux, emux_nes.dll on Windows, or emux_nes.dylib on macOS). 6) Copy the produced core into your libretro/RetroArch cores directory (or point your frontend to it). 7) Launch your libretro frontend, load the core, then load NES content. Important: follow the repository's Configure/Make instructions when cross-compiling or selecting specific frontend/backends (see Kconfig/conffiles and libretro/ Makefile comments).
- Practical file and compatibility notes: Emux's libretro documentation and repository describe supported ROM/container file extensions for the NES implementation — inspect the libretro core .info file or the docs.libretro.com emux_nes page for exact supported extensions. Emux does not include commercial games, BIOS, or proprietary firmware; those must be supplied by the user and must be used legally. If the core reports missing files, check the core documentation .info entries or the Emux README for system-dir, save-dir, and any mapper/BIOS expectations.
- Runtime options and frontend configuration: When running under RetroArch, use the core options menu to tune emulation behaviour if options are exposed by the core. Emux's repository notes it contains audio filtering features and frontend-agnostic configuration; check the core options available in your frontend. If building standalone Emux (non-libretro) you can follow the repository's configure and run examples (./configure, make, make install, then emux –machine=nes …).
- Troubleshooting and verification: If the core doesn't appear in RetroArch's core updater or fails to build, verify you used the platform-specific Makefile in libretro/, check for missing build dependencies (autotools, SDL, pkg-config), and consult the Emux README and the core's entry on docs.libretro.com for additional notes. For behavior questions or to report bugs, use the Emux GitHub issues page or Libretro community channels.
- Advanced: cross-compilation and Emscripten/Web builds: The Emux repository documents Emscripten support and building the project as WebAssembly; follow the project's Emscripten notes and the libretro/ build rules for generating emscripten-compiled libretro cores. Building for embedded/consoles requires the platform-specific Makefile and any toolchain adjustments described in libretro/ Makefiles.
Software reminder: Emux and its libretro core do not ship commercial ROMs or proprietary BIOS files. Obtain game ROMs and firmware only from legal sources and supply them separately. The Emux source is GPLv2-licensed; comply with that license when distributing modified builds.
Sources and further reading
Detailed guides and tutorials
Explore step-by-step guides for Emux NES as they are published.
Retro Replay Retro Gaming History, Reviews & Emulation