mirror of
https://github.com/Abdess/retroarch_system.git
synced 2026-11-01 00:27:20 -05:00
Each libretro profile records version_basis and core_version is read there at its pin. snes9x states 1.63 in snes9x.h, nestopia 2.0.0, mgba 0.11.0, vice 3.10, atari800's libretro tree 7.0.0. Cores whose build takes its version from git carry the nearest tag in describe form (flycast v2.7-90-ge88b0ce, ppsspp, duckstation, gearcoleco), placeholders copied from .info files (Git, SVN) are replaced by the code's statement, and a code that states none is null with kind none.
78 lines
3.4 KiB
YAML
78 lines
3.4 KiB
YAML
emulator: Mesen
|
|
type: libretro
|
|
core_classification: official_port
|
|
source: "https://github.com/libretro/Mesen"
|
|
upstream: "https://github.com/SourMesen/Mesen"
|
|
logo: "https://raw.githubusercontent.com/SourMesen/Mesen2/master/UI/Assets/Mesen.svg"
|
|
profiled_date: "2026-03-24"
|
|
source_commit: "0102910c39ad1a62bc3f784466f3f67ca9eae335"
|
|
core_version: "0.9.9"
|
|
version_basis:
|
|
kind: file
|
|
path: "Core/EmulationSettings.cpp"
|
|
pattern: '_versionMajor = (\d+);\s*\n[^\n]*_versionMinor = (\d+);\s*\n[^\n]*_versionRevision = (\d+);'
|
|
format: "{1}.{2}.{3}"
|
|
display_name: "Nintendo - NES / Famicom (Mesen)"
|
|
cores: [mesen, mesens]
|
|
systems: [nintendo-nes, nintendo-fds]
|
|
|
|
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.
|
|
|
|
files:
|
|
- name: "disksys.rom"
|
|
aliases: ["FdsBios.bin"]
|
|
system: nintendo-fds
|
|
description: "FDS BIOS ROM"
|
|
required: true
|
|
size: 8192
|
|
validation: [size]
|
|
source_ref: "source Core/FdsLoader.cpp:45-59 (LoadBios tries FdsBios.bin then disksys.rom), source Core/FdsLoader.cpp:143-146 (LoadRom validates size == 0x2000)"
|
|
note: "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."
|
|
|
|
- name: "StudyBox.bin"
|
|
system: nintendo-nes
|
|
description: "Famicom Study Box BIOS ROM"
|
|
required: false
|
|
size: 262144
|
|
validation: [size]
|
|
source_ref: "source Core/StudyBoxLoader.cpp:125-133 (LoadBios), source Core/StudyBoxLoader.cpp:149-152 (LoadRom validates size == 0x40000)"
|
|
note: "256 KB BIOS for the Study Box tape peripheral (mapper 186). Only needed for .stbx tape dumps. Size must be exactly 262144 bytes."
|
|
|
|
- name: "MesenPalette.pal"
|
|
system: nintendo-nes
|
|
description: "External NES color palette"
|
|
required: false
|
|
source_ref: "source Libretro/libretro.cpp:301-323 (load_custom_palette), source Libretro/libretro.cpp:405-406 (called when mesen_palette == Custom)"
|
|
min_size: 192
|
|
max_size: 1536
|
|
validation: [size]
|
|
note: "Accepts 192 bytes (64 RGB triplets) or 1536 bytes (512 emphasis combos). Falls back to built-in default if size doesn't match."
|