Skip to content

emux (NES) emulates Nintendo NES.

About this profile
Detail Value
Type libretro
Classification Official port
Source https://github.com/libretro/emux
Upstream https://github.com/sronsse/emux
Version 0.1, stated in configure.ac
Revision libretro/emux@3e558cb15157
Profiled 2026-03-23
Profile YAML, JSON
Cores emux_nes
Systems Nintendo NES
Technical notes

emux is a multi-system emulator by Sebastien Ronsse, supporting CHIP-8, Game Boy, NES, and Sega Master System as separate libretro cores.

The NES core does not require any BIOS or firmware files. The .info declares no firmware_count.

The NES has no boot ROM. CPU starts at the reset vector address stored at 0xFFFC-0xFFFD (cpu/rp2a03.c RESET_VECTOR).

Cartridge loading in controllers/mapper/nes_mapper.c:

  • iNES header parsed (magic 0x1A53454E)
  • Mapper number extracted from flags6/flags7
  • Supported mappers: NROM (0), MMC1 (1), MMC3 (4)
  • PRG-ROM and CHR-ROM mapped via file_map(PATH_DATA, ...)

Memory map from mach/nes.c: CPU bus: 0x0000-0x07FF WRAM (2 KB, mirrored to 0x1FFF) 0x2000-0x2007 PPU registers (mirrored to 0x3FFF) 0x4000-0x4013 APU registers 0x4014 Sprite DMA 0x4016-0x4017 Controller ports 0x6000-0x7FFF SRAM 0x8000-0xFFFF PRG-ROM

PPU bus: 0x0000-0x1FFF CHR-ROM/RAM (pattern tables) 0x2000-0x2FFF VRAM (nametables, 4 KB) 0x3F00-0x3F1F Palette RAM

system_directory obtained via RETRO_ENVIRONMENT_GET_SYSTEM_DIRECTORY (libretro/libretro.c:23-25) but not used for any file loading.

is_experimental=true. No save states, rewind, or netplay support. Supported extensions: nes, bin, rom.

No BIOS or firmware files required.

.