Skip to content

Mesen emulates Nintendo NES and Nintendo Famicom Disk System. It reads 3 files, 1 of them required: without a required file it does not start games. A required file is needed only by the machines that use it. Each file below cites the line of source code that reads it.

About this profile
Detail Value
Type libretro
Classification Official port
Source https://github.com/libretro/Mesen
Upstream https://github.com/SourMesen/Mesen
Version 0.9.9, stated in Core/EmulationSettings.cpp
Revision libretro/Mesen@0102910c39ad
Profiled 2026-03-24
Profile YAML, JSON
Cores mesen, mesens
Systems Nintendo NES, Nintendo Famicom Disk System
Install this emulator's files

The installer finds your setup and its BIOS folder, then downloads only the files this emulator reads there and checks each one.

Open the Start menu. Type PowerShell and open it. Paste the line. Press Enter.

PowerShell
&([scriptblock]::Create((irm https://abdess.github.io/retrobios/i.ps1))) --emulator mesen
Technical notes

Mesen is a cycle-accurate NES/Famicom emulator by Sour (the original NES-only version, archived in 2020 in favor of Mesen2). NES cartridge games need no BIOS. Famicom Disk System games require the FDS BIOS ROM.

The core tries FdsBios.bin first, then disksys.rom as fallback. Both are loaded from the system directory root. If neither is found or the file is not exactly 8192 bytes, FDS games fail to load (BiosMissing).

The Study Box is a Famicom tape-based learning peripheral (mapper 186). Its BIOS (StudyBox.bin, 256 KB) is loaded the same way. Only needed for Study Box tape dumps (.stbx format).

MesenDB.txt (game database) is baked into the libretro binary as MesenDB.inc and loaded in retro_init(). The external file path in InitDatabase() is never reached in the libretro context.

MesenPalette.pal is an optional custom palette file, loaded only when the mesen_palette core option is set to Custom. Accepts 192 bytes (64 colors) or 1536 bytes (512 colors with emphasis combos).

HdPacks go in system/HdPacks/<rom_name>/ -- per-game content, not system BIOS.

File path construction: retro_load_game() sets FolderUtilities::SetHomeFolder(systemFolder). All BIOS lookups use CombinePath(GetHomeFolder(), filename) -- flat, no subdirectories.

No functional divergence between upstream and libretro for BIOS loading.

3 files: 1 required, 2 optional.

In this collection: 3 in repo and 0 missing.

disksys.rom required for Nintendo Famicom Disk System in repo

FDS BIOS ROM

  • System: Nintendo Famicom Disk System
  • Aliases: FdsBios.bin
  • Mapped at 0xE000-0xFFFF as PRG ROM bank 0. Core checks FdsBios.bin first, falls back to disksys.rom. Size must be exactly 8192 bytes or BiosMissing is set.
Validation and source

StudyBox.bin optional in repo

Famicom Study Box BIOS ROM

  • System: Nintendo NES
  • 256 KB BIOS for the Study Box tape peripheral (mapper 186). Only needed for .stbx tape dumps. Size must be exactly 262144 bytes.
Validation and source

MesenPalette.pal optional in repo

External NES color palette

  • System: Nintendo NES
  • Accepts 192 bytes (64 RGB triplets) or 1536 bytes (512 emphasis combos). Falls back to built-in default if size doesn't match.
Validation and source
.