feat: re-profile 30 emulators, beetle to parallel_n64

source-verified: mesen FdsBios.bin→alias, MesenDB.txt phantom (embedded).
mupen64plus 64DD_IPL.bin→IPL.n64 (code path fix). neocd 000-lo.lo/ng-lo.rom
phantoms (algorithmically generated). new profiles: mesen-s, mupen64plus
next develop/gles2/gles3. regenerate database.
This commit is contained in:
Abdessamad Derraz
2026-03-24 14:06:20 +01:00
parent cda012b10a
commit 69987cc0bb
31 changed files with 836 additions and 646 deletions
+33 -59
View File
@@ -1,95 +1,69 @@
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-18"
profiled_date: "2026-03-24"
core_version: "0.9.9"
display_name: "Nintendo - NES / Famicom (Mesen)"
cores: [mesen]
systems: [nintendo-nes, nintendo-fds]
notes: |
Mesen is a cycle-accurate NES/Famicom emulator (the original, NES-only
version -- not Mesen2 which adds SNES/GB/PCE). NES cartridge games
need no BIOS. Famicom Disk System games require the FDS BIOS ROM.
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 two filenames for the FDS BIOS: FdsBios.bin first, then
disksys.rom as fallback. Both are loaded from the system directory root
(GetHomeFolder = RETRO_ENVIRONMENT_GET_SYSTEM_DIRECTORY). If neither is
found or the file is not exactly 8192 bytes, FDS games fail to load.
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 an obscure 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).
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 for CRC-based ROM identification) is baked
into the core binary as MesenDB.inc. An external file in the system
directory overrides the built-in copy but is never required.
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). Multiple
palettes exist so no canonical hash.
(64 colors) or 1536 bytes (512 colors with emphasis combos).
HdPacks go in system/HdPacks/<rom_name>/ -- not BIOS files, ignored
here.
HdPacks go in system/HdPacks/<rom_name>/ -- per-game content, not
system BIOS.
File path construction: Libretro/libretro.cpp retro_init() sets
File path construction: retro_load_game() sets
FolderUtilities::SetHomeFolder(systemFolder). All BIOS lookups use
FolderUtilities::CombinePath(GetHomeFolder(), filename) -- flat,
no subdirectories.
CombinePath(GetHomeFolder(), filename) -- flat, no subdirectories.
No functional divergence between upstream and libretro for BIOS loading.
files:
# --- Famicom Disk System BIOS (required for FDS games) ---
- name: "disksys.rom"
aliases: ["FdsBios.bin"]
system: nintendo-fds
description: "FDS BIOS ROM"
required: true
size: 8192
md5: "ca30b50f880eb660a320674ed365ef7a"
sha1: "57fe1bdee955bb48d357e463ccbf129496930b62"
source_ref: "Core/FdsLoader.cpp:45-60 (LoadBios), Core/FdsLoader.cpp:140-146 (LoadRom validates size == 0x2000)"
notes: "Mapped at 0xE000-0xFFFF as PRG ROM bank 0. Core tries FdsBios.bin first, falls back to disksys.rom. CRC32 0x5E607DCF (standard Famicom). Size must be exactly 8192 bytes or BiosMissing is set."
validation: [size]
source_ref: "Core/FdsLoader.cpp:45-59 (LoadBios tries FdsBios.bin then disksys.rom), Core/FdsLoader.cpp:143-146 (LoadRom validates size == 0x2000)"
notes: "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."
# --- FDS BIOS alternate filename ---
- name: "FdsBios.bin"
system: nintendo-fds
description: "FDS BIOS ROM (Mesen-preferred filename)"
required: false
size: 8192
md5: "ca30b50f880eb660a320674ed365ef7a"
sha1: "57fe1bdee955bb48d357e463ccbf129496930b62"
source_ref: "Core/FdsLoader.cpp:50 (primary lookup path)"
notes: "Same file as disksys.rom. Mesen checks this name first. Only one of the two is needed."
# --- Study Box BIOS (required for Study Box tape content) ---
- name: "StudyBox.bin"
system: nintendo-nes
description: "Famicom Study Box BIOS ROM"
required: false
size: 262144
md5: ~
sha1: ~
source_ref: "Core/StudyBoxLoader.cpp:125-133 (LoadBios), Core/StudyBoxLoader.cpp:146-157 (LoadRom validates size == 0x40000)"
notes: "256 KB BIOS for the Study Box tape peripheral (mapper 186, iNES mapper 65533). Only needed for .stbx tape dumps. Extremely obscure hardware, no widely-known hash."
validation: [size]
source_ref: "Core/StudyBoxLoader.cpp:125-133 (LoadBios), Core/StudyBoxLoader.cpp:149-152 (LoadRom validates size == 0x40000)"
notes: "256 KB BIOS for the Study Box tape peripheral (mapper 186). Only needed for .stbx tape dumps. Size must be exactly 262144 bytes."
# --- Game database (optional, baked-in fallback) ---
- name: "MesenDB.txt"
system: nintendo-nes
description: "Mesen game database for CRC-based ROM identification"
required: false
size: ~
md5: ~
sha1: ~
source_ref: "Core/GameDatabase.cpp:74-81 (InitDatabase), Libretro/MesenDB.inc (baked-in copy)"
notes: "CSV game database keyed by CRC32. Used for mapper, mirroring, input type, and VS System detection. A complete copy is compiled into the binary, so this file is optional. Placing a newer version in the system directory overrides the built-in data."
# --- Custom palette (optional, core option mesen_palette = Custom) ---
- name: "MesenPalette.pal"
system: nintendo-nes
description: "External NES color palette"
required: false
size: 192
md5: ~
sha1: ~
source_ref: "Libretro/libretro.cpp:301-323 (load_custom_palette)"
notes: "Loaded when mesen_palette core option is Custom. Accepts 192 bytes (64 RGB triplets) or 1536 bytes (512 entries for emphasis combos). Falls back to built-in default palette. Multiple valid palettes exist so no canonical hash."
source_ref: "Libretro/libretro.cpp:301-323 (load_custom_palette), Libretro/libretro.cpp:405-406 (called when mesen_palette == Custom)"
validation: [size]
notes: "Loaded when mesen_palette core option is Custom. Accepts exactly 192 bytes (64 RGB triplets) or 1536 bytes (512 entries for emphasis combos). Falls back to built-in default palette if size doesn't match."