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

View File

@@ -1,5 +1,5 @@
{
"generated_at": "2026-03-24T10:35:58Z",
"generated_at": "2026-03-24T11:45:29Z",
"total_files": 6733,
"total_size": 5288644732,
"files": {
@@ -94909,7 +94909,8 @@
],
"sgb_bios.bin": [
"aa2f50a77dfb4823da96ba99309085a3c6278515",
"369e6eb5e0c975eaa52a4a3f6ee07b2a3c3c16de"
"369e6eb5e0c975eaa52a4a3f6ee07b2a3c3c16de",
"f282b3aaf98f8423dab7d77f1aa0192be630f2fb"
],
"sgb1.boot.rom": [
"aa2f50a77dfb4823da96ba99309085a3c6278515"
@@ -95238,6 +95239,12 @@
"DBPATCH.wav": [
"e0c98d00fe3004942c4a2842f06e2702dd2bd7c7"
],
"DMG_ROM.bin": [
"1db57a1e8b6e4096f811587f9eab0c6675fd9755"
],
"dmg0_rom.bin": [
"1db57a1e8b6e4096f811587f9eab0c6675fd9755"
],
"amiga-os-300-a4000.rom": [
"f0b4e9e29e12218c2d5bd7020e4e785297d91fd7"
],
@@ -95274,6 +95281,9 @@
"upd7801g.bios": [
"6e89d1227581c76441a53d605f9e324185f1da33"
],
"FdsBios.bin": [
"57fe1bdee955bb48d357e463ccbf129496930b62"
],
"BS-X.bios": [
"604556b2e62860af18db5a77f2956ebc75450020"
],
@@ -95346,12 +95356,6 @@
"2608_RYM.WAV": [
"c65592330c9dd84011151daed52f9aec926b7e56"
],
"DMG_ROM.bin": [
"1db57a1e8b6e4096f811587f9eab0c6675fd9755"
],
"dmg0_rom.bin": [
"1db57a1e8b6e4096f811587f9eab0c6675fd9755"
],
"dc_flash_wb.bin": [
"72c65f2a11ee7b72b77b9945187b7a332632e14a"
],
@@ -115656,6 +115660,9 @@
"c0a04b87ad138e6754a6688ad757004467950c08",
"35e101f63194d75e234ef843ae6af893423b7f64",
"e0c98d00fe3004942c4a2842f06e2702dd2bd7c7",
"1db57a1e8b6e4096f811587f9eab0c6675fd9755",
"369e6eb5e0c975eaa52a4a3f6ee07b2a3c3c16de",
"f282b3aaf98f8423dab7d77f1aa0192be630f2fb",
"f0b4e9e29e12218c2d5bd7020e4e785297d91fd7",
"4e83a94ae5155bbea14d7331a5a8db82457bd5ae",
"6386e58bc1bba5e76baec9e8a1ca4b99dc3c573f",
@@ -115666,6 +115673,7 @@
"34fa37599f2f9eb607390ef2458a3c22d87f09a9",
"273a9933b68a290c5aedcd6d69faa7b1d22c0344",
"6e89d1227581c76441a53d605f9e324185f1da33",
"57fe1bdee955bb48d357e463ccbf129496930b62",
"604556b2e62860af18db5a77f2956ebc75450020",
"d1ae642aed4f0584eeb81ff50180db694e5101d4",
"4ae4d37409ff99411a623da9f6a44192170a854e",
@@ -115684,12 +115692,9 @@
"db1031585968cfc6ec2ecda5c9a5a52f61444a3b",
"b4f14e58030ed40fff2dc312b58ea4440bdf8cc5",
"c65592330c9dd84011151daed52f9aec926b7e56",
"1db57a1e8b6e4096f811587f9eab0c6675fd9755",
"72c65f2a11ee7b72b77b9945187b7a332632e14a",
"6d27d71aec4dfba98f66316ae74a1426d567698a",
"1293d68bf9643bc4f36954c1e80e38f39864528d",
"369e6eb5e0c975eaa52a4a3f6ee07b2a3c3c16de",
"f282b3aaf98f8423dab7d77f1aa0192be630f2fb",
"3b71f43ff30f4b15b5cd85dd9e95ebc7e84eb5a3",
"409e82adac40f6bdd18eb6c84e8b2fbdc7fb5498",
"b7af62f0bc95fdca4b31d236f8327dafc80f83b7",

View File

@@ -1,20 +1,20 @@
emulator: Beetle PSX (Mednafen PSX)
type: libretro
core_classification: community_fork
source: "https://github.com/libretro/beetle-psx-libretro"
profiled_date: "2026-03-18"
upstream: "https://mednafen.github.io/"
profiled_date: "2026-03-24"
core_version: "v0.9.44.1"
display_name: "Sony - PlayStation (Beetle PSX)"
cores: [mednafen_psx, mednafen_psx_hw]
systems: [sony-playstation]
bios_size: 524288 # 512 KB for all accepted BIOS images
verification: sha1
notes: >
Region-based BIOS selection: the core picks JP/NA/EU firmware based on disc region.
SHA1 validated with warning on mismatch (does not block loading).
SHA1 and alternate filenames sourced from MAME psx.cpp (libretro.cpp:184).
Override option allows using PSP or PS3 extracted PS1 BIOS as region-free alternative.
"Skip BIOS" option exists but causes compatibility issues (PAL copy protection, Saga Frontier).
Alternate filenames are case variants and model aliases for the same image.
Comment in source references MAME psx.cpp as hash source.
"Skip BIOS" option patches BIOS ROM but causes compatibility issues.
Upstream Mednafen loads the same 3 region BIOS; override BIOS are libretro additions.
files:
# -- Region: Japan (REGION_JP) --
@@ -23,8 +23,11 @@ files:
description: "SCPH-5500 (v3.0 09-09-96 J)"
region: "NTSC-J"
required: true
size: 524288
sha1: "b05def971d8ec59f346f2d9ac21fb742e3eb6917"
md5: "8dd7d5296a650fac7319bce665a6a53c"
validation: [sha1]
mode: both
source_ref: "libretro.cpp:252-256"
aliases: ["SCPH5500.bin", "SCPH-5500.bin"]
@@ -34,8 +37,11 @@ files:
description: "SCPH-5501, 5503, 7003 (v3.0 11-18-96 A)"
region: "NTSC-U"
required: true
size: 524288
sha1: "0555c6fae8906f3f09baf5988f00e55f88e9f30b"
md5: "490f666e1afb15b7362b406ed1cea246"
validation: [sha1]
mode: both
source_ref: "libretro.cpp:258-270"
aliases:
- "SCPH5501.bin"
@@ -53,8 +59,11 @@ files:
description: "SCPH-5502, 5552 (v3.0 01-06-97 E)"
region: "PAL"
required: true
size: 524288
sha1: "f6bc2d1f5eb6593de7d089c425ac681d6fffd3f0"
md5: "32736f17079d0b2b7024407c39bd3050"
validation: [sha1]
mode: both
source_ref: "libretro.cpp:272-282"
aliases:
- "SCPH5502.bin"
@@ -69,18 +78,24 @@ files:
description: "PSP embedded PS1 BIOS (region-free override)"
region: "Auto"
required: false
size: 524288
sha1: "96880d1ca92a016ff054be5159bb06fe03cb4e14"
md5: "c53ca5908936d412331790f4426c6c33"
source_ref: "libretro.cpp:190-196"
validation: [sha1]
mode: libretro
source_ref: "libretro.cpp:190-195"
aliases: ["PSXONPSP660.bin"]
notes: "override_bios=1 (psxonpsp option). Falls back to region BIOS if not found."
notes: "override_bios=1. Falls back to region BIOS if not found."
- name: "ps1_rom.bin"
description: "PS3 embedded PS1 BIOS (region-free override)"
region: "Auto"
required: false
size: 524288
sha1: "c40146361eb8cf670b19fdc9759190257803cab7"
md5: "81bbe60ba7a3d1cea1d48c14cbcc647b"
source_ref: "libretro.cpp:198-204"
validation: [sha1]
mode: libretro
source_ref: "libretro.cpp:198-203"
aliases: ["PS1_ROM.bin"]
notes: "override_bios=2 (ps1_rom option). Falls back to region BIOS if not found."
notes: "override_bios=2. Falls back to region BIOS if not found."

View File

@@ -1,96 +1,67 @@
emulator: Beetle Saturn (Mednafen)
emulator: beetle_saturn
type: libretro
core_classification: community_fork
core: mednafen_saturn_libretro
source: "https://github.com/libretro/beetle-saturn-libretro"
profiled_date: "2026-03-18"
upstream: "https://mednafen.github.io/"
profiled_date: "2026-03-24"
core_version: "v0.9.45.1"
display_name: "Sega - Saturn (Beetle Saturn)"
cores:
- mednafen_saturn
systems:
- sega-saturn
notes: |
Beetle Saturn is the libretro port of Mednafen's Sega Saturn emulation module.
Two region-specific BIOS files are used: sega_101.bin for Japan/Asia NTSC,
mpr-17933.bin for North America, Europe, and all other regions. The core
returns false from InitCommon() if the BIOS file is missing or not exactly
512 KB, so both BIOS files are required for full region coverage.
Libretro port of Mednafen's Saturn emulation module, frozen circa v0.9.45.1
(2017) with some later backports. Region auto-detection reads the disc header
and selects the matching BIOS. Manual override via beetle_saturn_region option.
Region auto-detection reads the disc header and picks the matching BIOS.
Manual region override is available via beetle_saturn_region core option.
InitCommon() returns false if the BIOS file is missing or not exactly 512 KB.
Both region BIOS files are required for full region coverage.
The KOF95 and Ultraman ROM carts are optional game-specific expansion
cartridges loaded from the system directory. The Action Replay 4M Plus
cart (satar4mp.bin) is listed but marked unfinished in source (needs
CPU UBC emulation).
KOF95 and Ultraman ROM carts are loaded when the cart type is set via core
option or auto-detected from the internal game database.
BIOS loading: mednafen/ss/ss.cpp InitCommon() lines 920-961.
Cart loading: mednafen/ss/cart.cpp CART_Init() lines 128-220.
Firmware path: libretro.cpp MDFN_MakeFName(MDFNMKF_FIRMWARE) -> system dir.
Default cart ROM filenames: mednafen/settings.cpp MDFN_GetSettingS().
Upstream Mednafen (1.32.x) has ST-V arcade board support (3 additional BIOS
files) and bootable ROM cart support, both absent from this libretro port.
files:
# -------------------------------------------------------
# Saturn BIOS - Japan / Asia NTSC
# -------------------------------------------------------
- name: "sega_101.bin"
system: sega-saturn
region: [japan, asia-ntsc]
required: true
size: 524288 # 512 KB
md5: "85ec9ca47d8f6807718151cbcca8b964"
size: 524288
validation: [size]
note: "Saturn BIOS v1.01 (Japan). Used when region is JP or Asia NTSC."
source_ref: "mednafen/ss/ss.cpp:928-929"
source_ref: "mednafen/ss/ss.cpp:928-929,937-949"
# -------------------------------------------------------
# Saturn BIOS - North America / Europe / other
# -------------------------------------------------------
- name: "mpr-17933.bin"
system: sega-saturn
region: [north-america, europe, south-korea, asia-pal, brazil, latin-america]
required: true
size: 524288 # 512 KB
md5: "3240872c70984b6cbfda1586cab68dbe"
size: 524288
validation: [size]
note: "Saturn BIOS (NA/EU). Used for all non-JP/Asia-NTSC regions."
source_ref: "mednafen/ss/ss.cpp:930-931"
source_ref: "mednafen/ss/ss.cpp:930-931,937-949"
# -------------------------------------------------------
# King of Fighters '95 ROM cart
# -------------------------------------------------------
- name: "mpr-18811-mx.ic1"
system: sega-saturn
required: false
size: 2097152 # 2 MB (0x200000, rom.cpp reads up to this)
md5: "255113ba943c92a54facd25a10fd780c"
size: 2097152
note: "KOF95 expansion ROM cart. Loaded when cart type set to KOF95."
source_ref: "mednafen/ss/cart.cpp:157-172, mednafen/settings.cpp:64-65"
source_ref: "mednafen/ss/cart.cpp:157-172, mednafen/ss/cart/rom.cpp:32-43"
# -------------------------------------------------------
# Ultraman ROM cart
# -------------------------------------------------------
- name: "mpr-19367-mx.ic1"
system: sega-saturn
required: false
size: 2097152 # 2 MB
md5: "1cd19988d1d72a3e7caa0b73234c96b4"
size: 2097152
note: "Ultraman expansion ROM cart. Loaded when cart type set to Ultraman."
source_ref: "mednafen/ss/cart.cpp:157-172, mednafen/settings.cpp:66-67"
source_ref: "mednafen/ss/cart.cpp:157-172, mednafen/ss/cart/rom.cpp:32-43"
# -------------------------------------------------------
# Action Replay 4M Plus (unfinished)
# -------------------------------------------------------
- name: "satar4mp.bin"
system: sega-saturn
required: false
note: "Action Replay 4M Plus firmware. Unfinished in source, needs CPU UBC emulation."
source_ref: "mednafen/ss/cart.cpp:174-188, mednafen/settings.cpp:68-69"
platform_details:
saturn:
bios_size: 524288 # 512 KB
rom_cart_size: 2097152 # 2 MB max (rom.cpp)
workram_low: 1048576 # 1 MB
workram_high: 1048576 # 1 MB
bios_address: "0x00000000-0x000FFFFF"
cart_address: "0x02000000-0x03FFFFFF"
hle_available: false
source_ref: "mednafen/ss/ss.cpp:906-908"
size: 262144
note: "Action Replay 4M Plus firmware. Unfinished in source (ar4mp.cpp:22-24), needs CPU UBC emulation. Cart type not exposed in core options."
source_ref: "mednafen/ss/cart.cpp:174-188, mednafen/ss/cart/ar4mp.cpp:120-159"

View File

@@ -1,9 +1,12 @@
emulator: Beetle WonderSwan (Mednafen WonderSwan)
type: libretro
core_classification: pure_libretro
source: "https://github.com/libretro/beetle-wswan-libretro"
profiled_date: "2026-03-18"
upstream: "https://mednafen.github.io/"
profiled_date: "2026-03-24"
core_version: "v0.9.35.1"
display_name: "Bandai - WonderSwan/Color (Beetle Wonderswan)"
cores: [beetle_wswan]
systems: [bandai-wswan, bandai-wswanc]
notes: |

View File

@@ -1,7 +1,7 @@
emulator: "mednafen_psx"
type: alias
alias_of: "beetle_psx"
profiled_date: "2026-03-18"
profiled_date: "2026-03-24"
core_version: "v0.9.44.1"
display_name: "Sony - PlayStation (Beetle PSX)"
note: "This core uses the same BIOS/firmware as beetle_psx. See emulators/beetle_psx.yml for details."

View File

@@ -1,7 +1,7 @@
emulator: "mednafen_saturn"
type: alias
alias_of: "beetle_saturn"
profiled_date: "2026-03-18"
profiled_date: "2026-03-24"
core_version: "v0.9.45.1"
display_name: "Sega - Saturn (Beetle Saturn)"
note: "This core uses the same BIOS/firmware as beetle_saturn. See emulators/beetle_saturn.yml for details."

View File

@@ -1,8 +1,24 @@
emulator: "mednafen_supafaust"
type: alias
alias_of: "bsnes"
profiled_date: "2026-03-18"
emulator: mednafen_supafaust
type: libretro
core_classification: community_fork
source: "https://github.com/libretro/supafaust"
upstream: "https://mednafen.github.io/"
profiled_date: "2026-03-24"
core_version: "1.29.0"
display_name: "Nintendo - SNES / SFC (Beetle Supafaust)"
note: "This core uses the same BIOS/firmware as bsnes. See emulators/bsnes.yml for details."
cores: [mednafen_supafaust]
systems: [nintendo-snes]
# Port of Mednafen's experimental snes_faust module.
# All special chips (DSP-1, DSP-2, CX4, SuperFX, SA-1, S-DD1) emulated via HLE.
# DSP-1 data ROM synthesized in code (dsp1-datarom-synth.h).
# DSP-3, DSP-4, ST010, ST011, ST018, SPC7110 detected but not emulated (fall through).
# MSU1 supported (loads data from game directory, not system directory).
# RETRO_ENVIRONMENT_GET_SYSTEM_DIRECTORY never called.
notes: >
Port of Mednafen's snes_faust module. All special chip firmware
emulated via HLE with synthesized data ROMs. No external firmware loading.
source_ref: dsp1.cpp:120-177, dsp2.cpp:118-140, cx4.cpp:1548-1656,
cart.cpp:129-584, libretro.cpp:496-742
files: []

View File

@@ -1,8 +1,53 @@
emulator: "mednafen_supergrafx"
type: alias
alias_of: "mednafen_pce"
emulator: mednafen_supergrafx
type: libretro
core_classification: community_fork
source: "https://github.com/libretro/beetle-supergrafx-libretro"
upstream: "https://mednafen.github.io/"
profiled_date: "2026-03-24"
core_version: "v1.23.0"
display_name: "NEC - PC Engine SuperGrafx (Beetle SuperGrafx)"
note: "Different repo (beetle-supergrafx-libretro) but loads identical BIOS files as mednafen_pce."
files: []
cores: [mednafen_supergrafx]
systems: [nec-pc-engine]
verification: existence
notes: >
Fork of Mednafen's pce_fast module with SuperGrafx and CD support.
Separate codebase from beetle_pce (mednafen/pce_fast/ vs mednafen/pce/).
BIOS loaded via HuC_LoadCD() at CD-ROM load time. Core option "sgx_cdbios"
selects which card image to use (default: System Card 3).
DetectGECD() auto-detects Games Express discs and overrides to gexpress.pce.
DetectSGXCD() detects SuperGrafx CD titles via magic bytes.
Arcade Card mode (sgx_arcadecard option, not exposed) extends System Card 3
with extra RAM mapping.
No hash or size validation on BIOS load.
Upstream pce_fast module has a single pce_fast.cdbios string setting;
the 4-option dropdown is a libretro addition. Upstream has no separate
gecdbios setting (unlike the accurate pce module).
files:
- name: "syscard3.pce"
description: "CD-ROM System Card 3.0 (Japan)"
region: "NTSC-J"
required: true
source_ref: "libretro.cpp:972-973, mednafen/settings.cpp:37"
notes: "Default value for sgx_cdbios option."
- name: "syscard2.pce"
description: "CD-ROM System Card 2.0 (Japan)"
region: "NTSC-J"
required: false
source_ref: "libretro.cpp:974-975"
notes: "sgx_cdbios = 'System Card 2'."
- name: "syscard1.pce"
description: "CD-ROM System Card 1.0 (Japan)"
region: "NTSC-J"
required: false
source_ref: "libretro.cpp:976-977"
notes: "sgx_cdbios = 'System Card 1'."
- name: "gexpress.pce"
description: "Games Express CD Card"
region: "NTSC-J"
required: false
source_ref: "libretro.cpp:978-979, mednafen/pce_fast/pce.cpp:330-367,453-454"
notes: "sgx_cdbios = 'Games Express' or auto-detected via DetectGECD()."

View File

@@ -1,8 +1,9 @@
emulator: "mednafen_wswan"
type: alias
alias_of: "beetle_wswan"
profiled_date: "2026-03-18"
source: "https://github.com/libretro/beetle-wswan-libretro"
profiled_date: "2026-03-24"
core_version: "v0.9.35.1"
display_name: "Bandai - WonderSwan/Color (Beetle Wonderswan)"
note: "This core uses the same BIOS/firmware as beetle_wswan. See emulators/beetle_wswan.yml for details."
note: "Binary name for beetle_wswan. Same codebase, single .so/.dll."
files: []

View File

@@ -1,82 +1,91 @@
emulator: MelonDS
emulator: melonDS
type: standalone + libretro
source: "https://github.com/melonDS-emu/melonDS"
logo: "https://raw.githubusercontent.com/melonDS-emu/melonDS/master/res/melon.svg"
profiled_date: "2026-03-18"
core_classification: community_fork
cores: [melonds]
source: "https://github.com/libretro/melonDS"
upstream: "https://github.com/melonDS-emu/melonDS"
profiled_date: "2026-03-24"
core_version: "Git"
display_name: "Nintendo - DS (melonDS)"
systems: [nintendo-ds, nintendo-dsi]
notes: |
MelonDS includes a built-in FreeBIOS replacement for basic DS mode (NTR).
Native BIOS/firmware files are required for DSi mode and recommended for
full DS compatibility (Key1 crypto for cartridge auth).
ARM9 BIOS size: 0x1000 (4 KB), ARM7 BIOS size: 0x4000 (16 KB).
DSi BIOS size: 0x10000 (64 KB) each.
Config keys: DS.BIOS9Path, DS.BIOS7Path, DS.FirmwarePath,
DSi.BIOS9Path, DSi.BIOS7Path, DSi.FirmwarePath, DSi.NANDPath.
FreeBIOS fallback for DS mode (NTR); DSi mode requires all native files.
Libretro fork based on melonDS ~0.9.x era, validates size only.
Upstream adds CRC32 validation on BIOS files (MemConstants.h).
DSi SD card emulation controlled by melonds_dsi_sdcard core option.
files:
# --- Nintendo DS (NTR) ---
- name: "bios9.bin"
- name: bios9.bin
system: nintendo-ds
description: "ARM9 BIOS (NDS mode)"
description: "ARM9 BIOS"
required: false
hle_fallback: true
size: 4096
validation: {core: [size], upstream: [size, crc32]}
crc32: "0x2ab23573"
source_ref: "src/MemConstants.h:30,37"
notes: "FreeBIOS fallback available; native needed for Key1 cartridge crypto (src/NDSCart.cpp:147-153)"
source_ref: "src/NDS.h:196, src/NDS.cpp:467-477, src/frontend/Util_ROM.cpp:99-111"
notes: "FreeBIOS fallback (src/FreeBIOS.h); native needed for Key1 cartridge crypto"
- name: "bios7.bin"
- name: bios7.bin
system: nintendo-ds
description: "ARM7 BIOS (NDS mode)"
description: "ARM7 BIOS"
required: false
hle_fallback: true
size: 16384
validation: {core: [size], upstream: [size, crc32]}
crc32: "0x1280f0d5"
source_ref: "src/MemConstants.h:31,36"
notes: "FreeBIOS fallback available; native needed for Key1 init at offset 0x0030 (src/NDSCart.cpp:149-153)"
source_ref: "src/NDS.h:197, src/NDS.cpp:482-492, src/frontend/Util_ROM.cpp:117-131"
notes: "FreeBIOS fallback (src/FreeBIOS.h); native needed for Key1 init at offset 0x0030"
- name: "firmware.bin"
- name: firmware.bin
system: nintendo-ds
description: "NDS firmware image"
required: false
hle_fallback: true
source_ref: "src/frontend/qt_sdl/EmuInstance.cpp:561"
notes: "Generated firmware used as default; native firmware needed for boot animation and wifi settings"
validation: [size]
source_ref: "src/SPI.cpp:192-211, src/frontend/Util_ROM.cpp:174-195"
notes: "Generated 128KB firmware as fallback; native must be 256KB or 512KB for boot"
# --- Nintendo DSi (TWL) ---
- name: "dsi_bios9.bin"
- name: dsi_bios9.bin
system: nintendo-dsi
description: "ARM9i BIOS (DSi mode)"
description: "DSi ARM9 BIOS"
required: true
size: 65536
crc32_full: "0xBAE84F6C"
crc32_low32k: "0x11E7C1EA"
source_ref: "src/MemConstants.h:32,41,45"
notes: "No FreeBIOS fallback for DSi; full dump needed for native boot (src/DSi.cpp:150-152)"
validation: {core: [size], upstream: [size, crc32]}
crc32: "0xBAE84F6C"
source_ref: "src/DSi.h:33, src/DSi.cpp:587-599, src/frontend/Util_ROM.cpp:145-156"
- name: "dsi_bios7.bin"
- name: dsi_bios7.bin
system: nintendo-dsi
description: "ARM7i BIOS (DSi mode)"
description: "DSi ARM7 BIOS"
required: true
size: 65536
crc32_full: "0x4316CC42"
crc32_low32k: "0x5434691D"
source_ref: "src/MemConstants.h:32,40,44"
notes: "Contains eMMC key-Y at offset 0x8308 used for NAND init (src/frontend/qt_sdl/EmuInstance.cpp:1044)"
validation: {core: [size], upstream: [size, crc32]}
crc32: "0x4316CC42"
source_ref: "src/DSi.h:34, src/DSi.cpp:604-620, src/frontend/Util_ROM.cpp:158-170"
notes: "Contains eMMC key-Y at offset 0x8308 for NAND init"
- name: "dsi_firmware.bin"
- name: dsi_firmware.bin
system: nintendo-dsi
description: "DSi firmware image"
required: true
source_ref: "src/frontend/qt_sdl/EmuInstance.cpp:593"
notes: "Separate from DS firmware; config key DSi.FirmwarePath"
size: 131072
validation: [size]
source_ref: "src/SPI.cpp:197-211, src/frontend/Util_ROM.cpp:201-217"
- name: "dsi_nand.bin"
- name: dsi_nand.bin
system: nintendo-dsi
description: "DSi NAND dump"
required: true
source_ref: "src/DSi_NAND.h:34, src/Args.h:132"
notes: "eMMC image; uses AES keys from ARM7i BIOS and ARM9i BIOS (src/DSi_AES.cpp:94)"
source_ref: "src/frontend/Util_ROM.cpp:224-235, src/DSi_NAND.cpp"
notes: "Uses AES keys from ARM7i BIOS offset 0x8308"
- name: dsi_sd_card.bin
system: nintendo-dsi
description: "DSi SD card image"
required: false
source_ref: "src/frontend/Util_ROM.cpp:237-243, src/libretro/libretro.cpp:837,553"
notes: "Created if missing; requires melonds_dsi_sdcard core option enabled"

View File

@@ -1,58 +1,83 @@
# melonDS DS — Nintendo DS/DSi (libretro, newer fork)
# ref: JesseTG/melonds-ds, docs.libretro.com/library/melonds_ds
# Prefers files in "melonDS DS/" subfolder. DS mode has HLE fallback.
# DSi mode requires real BIOS + NAND dump.
#
# doc vs source: docs use bios7.bin/bios9.bin (NDS) and dsi_bios7.bin/
# dsi_bios9.bin (DSi). The older melonDS core uses the same names.
# Repo stores NDS ARM7/ARM9 as biosdsi7.bin/biosdsi9.bin (DSi dumps that
# also work for NDS). The md5 in docs (df692a80/a392174e) are for the
# smaller NDS-only dumps, different from the DSi dumps in the repo.
emulator: melonDS DS
type: libretro
core_classification: community_fork
cores: [melonds_ds]
source: "https://github.com/JesseTG/melonds-ds"
upstream: "https://github.com/melonDS-emu/melonDS"
profiled_date: "2026-03-24"
core_version: "1.2.0"
display_name: "Nintendo - DS (melonDS DS)"
systems:
- nintendo-ds
- nintendo-dsi
notes: |
Newer fork of melonDS for libretro with DSi support.
DS BIOS files are optional (built-in FreeBIOS used as fallback).
DSi mode requires all four DSi-specific files.
Core searches "melonDS DS/" subfolder first, then system root.
Libretro-specific remake using melonDS as a statically-linked library.
DS mode has FreeBIOS/generated firmware fallback; DSi mode requires all
native files. Core searches "melonDS DS/" subfolder first, then system root.
In DSi mode, NDS BIOS (bios7/bios9) are also required alongside DSi BIOS.
Firmware and NAND filenames are user-selectable via core options.
files:
# DS mode (optional, FreeBIOS fallback)
# --- Nintendo DS (NTR) ---
- name: bios7.bin
system: nintendo-ds
description: "ARM7 BIOS"
required: false
hle_fallback: true
md5: df692a80a5b1bc90728bc3dfc76cd948
note: "NDS ARM7 BIOS"
size: 16384
validation: [size]
crc32: "0x1280f0d5"
source_ref: "src/libretro/config/console.cpp:219, melonDS:src/MemConstants.h:31,36"
- name: bios9.bin
system: nintendo-ds
description: "ARM9 BIOS"
required: false
hle_fallback: true
md5: a392174eb3e572fed6447e956bde4b25
note: "NDS ARM9 BIOS"
size: 4096
validation: [size]
crc32: "0x2ab23573"
source_ref: "src/libretro/config/console.cpp:220, melonDS:src/MemConstants.h:30,37"
- name: firmware.bin
system: nintendo-ds
description: "NDS firmware image"
required: false
hle_fallback: true
sha1: 8497afdd16af92d6887b71582846c40514e9039f
md5: 145eaef5bd3037cbc247c213bb3da1b3
size: 262144
# DSi mode (required)
source_ref: "src/libretro/config/console.cpp:184"
notes: "Filename configurable via core options; generated firmware used as fallback"
# --- Nintendo DSi (TWL) ---
- name: dsi_bios7.bin
system: nintendo-dsi
description: "DSi ARM7 BIOS"
required: true
size: 65536
validation: [size]
crc32: "0x4316CC42"
source_ref: "src/libretro/config/console.cpp:333, melonDS:src/MemConstants.h:32,44"
notes: "Contains eMMC key-Y at offset 0x8308 for NAND init"
- name: dsi_bios9.bin
system: nintendo-dsi
description: "DSi ARM9 BIOS"
required: true
size: 65536
validation: [size]
crc32: "0xBAE84F6C"
source_ref: "src/libretro/config/console.cpp:338, melonDS:src/MemConstants.h:32,45"
- name: dsi_firmware.bin
system: nintendo-dsi
description: "DSi firmware image"
required: true
sha1: d2a5af338f09c5cbdd5d7628db5b9c075c69b616
md5: 8daa89fd280b3e5ec79fbab73ad6684e
size: 131072
source_ref: "src/libretro/config/console.cpp:352-358"
notes: "Filename configurable via core options; must have DSi firmware header"
- name: dsi_nand.bin
system: nintendo-dsi
description: "DSi NAND dump"
required: true
sha1: b48f44194fe918aaaec5298861479512b581d661
md5: dfafb1908da8f527df7a372e649b50be
size: 251658304
source_ref: "src/libretro/config/console.cpp:378"
notes: "Filename configurable via core options; 240MB or 245.5MB with optional no$cash footer"

197
emulators/mesen-s.yml Normal file
View File

@@ -0,0 +1,197 @@
# mesen-s - SNES / Game Boy / Game Boy Color emulator
# Profiled from: libretro/Mesen-S (libretro port) + SourMesen/Mesen-S (upstream)
emulator: mesen-s
display_name: "Mesen-S"
type: libretro
core_classification: official_port
source: "https://github.com/libretro/Mesen-S"
upstream: "https://github.com/SourMesen/Mesen-S"
profiled_date: "2026-03-24"
core_version: "0.4.0"
cores: [mesen-s]
systems: [nintendo-snes, nintendo-gb, nintendo-gbc, nintendo-super-game-boy, nintendo-satellaview]
notes: >
High-accuracy SNES/SFC emulator with Game Boy/Color and Super Game Boy
support. Upstream archived at 0.4.0, superseded by Mesen2. DSP firmware
can be loaded as combined files (dsp1.rom, dsp1b.rom, dsp2.rom, dsp3.rom,
dsp4.rom, st010.rom, st011.rom) or split program/data ROMs. Combined
files are tried first, size validated. HLE coprocessor option available
for DSP-1/DSP-1B only (libretro core option mesen-s_hle_coprocessor).
CX4 is fully HLE, no firmware needed. ST018 detected but not emulated.
GB/GBC/SGB boot ROMs fall back to embedded open-source SameBoy boot ROMs
when external files are not found.
files:
# -- NEC uPD7725 DSP firmware (split format) --
# Combined format also accepted: dsp1.rom (8192), dsp1b.rom (8192),
# dsp2.rom (8192), dsp3.rom (8192), dsp4.rom (8192)
- name: "dsp1.program.rom"
size: 6144
required: false
hle_fallback: true
validation: [size]
note: "DSP-1 program ROM. HLE fallback in libretro port only"
source_ref: "Core/NecDsp.cpp:95, Core/FirmwareHelper.h:17-35"
- name: "dsp1.data.rom"
size: 2048
required: false
hle_fallback: true
validation: [size]
note: "DSP-1 data ROM"
source_ref: "Core/NecDsp.cpp:95, Core/FirmwareHelper.h:17-35"
- name: "dsp1b.program.rom"
size: 6144
required: false
hle_fallback: true
validation: [size]
note: "DSP-1B program ROM. HLE fallback in libretro port only"
source_ref: "Core/NecDsp.cpp:96"
- name: "dsp1b.data.rom"
size: 2048
required: false
hle_fallback: true
validation: [size]
note: "DSP-1B data ROM"
source_ref: "Core/NecDsp.cpp:96"
- name: "dsp2.program.rom"
size: 6144
required: false
validation: [size]
note: "DSP-2 program ROM"
source_ref: "Core/NecDsp.cpp:97"
- name: "dsp2.data.rom"
size: 2048
required: false
validation: [size]
note: "DSP-2 data ROM"
source_ref: "Core/NecDsp.cpp:97"
- name: "dsp3.program.rom"
size: 6144
required: false
validation: [size]
note: "DSP-3 program ROM"
source_ref: "Core/NecDsp.cpp:98"
- name: "dsp3.data.rom"
size: 2048
required: false
validation: [size]
note: "DSP-3 data ROM"
source_ref: "Core/NecDsp.cpp:98"
- name: "dsp4.program.rom"
size: 6144
required: false
validation: [size]
note: "DSP-4 program ROM"
source_ref: "Core/NecDsp.cpp:99"
- name: "dsp4.data.rom"
size: 2048
required: false
validation: [size]
note: "DSP-4 data ROM"
source_ref: "Core/NecDsp.cpp:99"
# -- NEC uPD96050 coprocessor firmware (split format) --
# Combined format also accepted: st010.rom (53248), st011.rom (53248)
- name: "st010.program.rom"
size: 49152
required: false
validation: [size]
note: "ST-010 program ROM"
source_ref: "Core/NecDsp.cpp:100"
- name: "st010.data.rom"
size: 4096
required: false
validation: [size]
note: "ST-010 data ROM"
source_ref: "Core/NecDsp.cpp:100"
- name: "st011.program.rom"
size: 49152
required: false
validation: [size]
note: "ST-011 program ROM"
source_ref: "Core/NecDsp.cpp:101"
- name: "st011.data.rom"
size: 4096
required: false
validation: [size]
note: "ST-011 data ROM"
source_ref: "Core/NecDsp.cpp:101"
# -- Game Boy boot ROMs --
- name: "dmg_boot.bin"
size: 256
required: false
hle_fallback: true
aliases: [gb_bios.bin]
validation: [size]
note: "Game Boy (DMG) boot ROM. Falls back to embedded SameBoy open-source boot ROM"
source_ref: "Core/FirmwareHelper.h:148, Core/Gameboy.cpp:108-114, Core/GbBootRom.h:6"
- name: "cgb_boot.bin"
size: 2304
required: false
hle_fallback: true
aliases: [gbc_bios.bin]
validation: [size]
note: "Game Boy Color boot ROM. Falls back to embedded SameBoy open-source boot ROM"
source_ref: "Core/FirmwareHelper.h:149, Core/Gameboy.cpp:108-119, Core/GbBootRom.h:6"
- name: "sgb_boot.bin"
size: 256
required: false
hle_fallback: true
aliases: [sgb_bios.bin]
validation: [size]
note: "Super Game Boy boot ROM for GB CPU. Falls back to embedded SameBoy open-source boot ROM"
source_ref: "Core/FirmwareHelper.h:150, Core/Gameboy.cpp:108-127, Core/GbBootRom.h:6"
- name: "sgb2_boot.bin"
size: 256
required: false
hle_fallback: true
aliases: [sgb_bios.bin]
validation: [size]
note: "Super Game Boy 2 boot ROM for GB CPU. Falls back to embedded SameBoy open-source boot ROM"
source_ref: "Core/FirmwareHelper.h:151, Core/Gameboy.cpp:108-127, Core/GbBootRom.h:6"
# -- Super Game Boy cartridge ROMs --
- name: "SGB1.sfc"
size: 262144
required: false
validation: [size]
note: "Super Game Boy SNES cartridge ROM. Without it, SGB mode falls back to regular GB"
source_ref: "Core/FirmwareHelper.h:118-133, Core/BaseCartridge.cpp:630-638"
- name: "SGB2.sfc"
size: 524288
required: false
validation: [size]
note: "Super Game Boy 2 SNES cartridge ROM. Core option mesen-s_sgb2 selects SGB version"
source_ref: "Core/FirmwareHelper.h:118-133, Core/BaseCartridge.cpp:630-638"
# -- Satellaview --
- name: "BS-X.bin"
size: 1048576
required: false
validation: [size]
note: "Satellaview BS-X BIOS ROM. Minimum accepted size is 32768 bytes"
source_ref: "Core/FirmwareHelper.h:39-47,96-113, Core/BaseCartridge.cpp:65"

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."

View File

@@ -1,8 +1,38 @@
emulator: "mess2015"
type: alias
alias_of: "mame2016"
profiled_date: "2026-03-18"
core_version: "Git"
emulator: MESS 2015
type: libretro
core_classification: frozen_snapshot
source: "https://github.com/libretro/mame2015-libretro"
upstream: "https://github.com/mamedev/mame/tree/mame0160"
profiled_date: "2026-03-24"
core_version: "0.160"
display_name: "Multi (MESS 2015)"
note: "This core uses the same BIOS/firmware as mame2016. See emulators/mame2016.yml for details."
files: []
mame_version: "0.159"
cores:
- mess2015
systems: []
notes: |
Frozen snapshot of MAME/MESS 0.159 (version.c says 0.159, core reports 0.160).
Built from same repo as mame2015/ume2015/cdi2015 with TARGET=mess.
619 machine drivers (home computers, consoles, handhelds, calculators).
No BIOS root sets (no GAME_IS_BIOS_ROOT in src/mess/). Machine ROMs loaded
per-machine via MAME ROM system from content directory.
Software list support via 375 XML hash files in system_dir/mess2015/hash/.
Hash files are bundled in the source repo at /hash/. Not on libretro buildbot.
.info incorrectly says SYSTEMDIR\ume\hash — actual path is mess2015/hash.
hiscore.c integrated (libretro addition, not in upstream MAME 0.159).
SAMPLES sound driver disabled in mess.mak.
Per-game cheat XMLs via system_dir/mess2015/cheat/.
Artwork layouts via system_dir/mess2015/artwork/.
Upstream comparison (tag mame0160): romload.c and softlist.c unmodified.
files:
- name: hiscore.dat
required: false
category: game_data
source_ref: "src/emu/hiscore.c:335-337"
note: "high score definitions, loaded via f.open without explicit search path"

View File

@@ -1,7 +1,9 @@
emulator: Meteor GBA
type: libretro
core_classification: community_fork
source: "https://github.com/libretro/meteor-libretro"
profiled_date: "2026-03-18"
upstream: "https://github.com/blastrock/meteor"
profiled_date: "2026-03-24"
core_version: "v1.4"
display_name: "Nintendo - Game Boy Advance (Meteor)"
cores:
@@ -10,49 +12,21 @@ systems:
- nintendo-gba
notes: |
Meteor is a Game Boy Advance emulator by Philippe Daouadi (2009-2011).
The libretro port does NOT load or use any external BIOS file. The core has
a complete HLE BIOS implementation (ameteor/source/bios.cpp) that handles
GBA SWI calls directly in C++. When no real BIOS is loaded (HasBios() returns
false), Cpu::SoftwareInterrupt() dispatches SWI calls to the HLE handlers
instead of executing the BIOS ROM (ameteor/source/cpu.cpp:244-311).
The standalone frontends (GTK, text) expose LoadBios() for optional real BIOS
loading, but the libretro port (libretro/libretro.cpp) never calls LoadBios()
and never queries RETRO_ENVIRONMENT_GET_SYSTEM_DIRECTORY. The retro_load_game()
function only loads the ROM via LoadRom().
HLE SWI coverage: SoftReset (0x00), RegisterRamReset (0x01), Halt (0x02),
IntrWait (0x04), VBlankIntrWait (0x05), Div (0x06), DivArm (0x07),
Sqrt (0x08), ArcTan (0x09), ArcTan2 (0x0A), CpuSet (0x0B),
CpuFastSet (0x0C), BgAffineSet (0x0E), ObjAffineSet (0x0F),
LZ77UnCompWram (0x11), LZ77UnCompVram (0x12), HuffUnComp (0x13),
RLUnCompWram (0x14), RLUnCompVram (0x15).
Missing from HLE: Stop (0x03), BitUnPack (0x10), Diff8bitUnFilter (0x16-0x17),
Diff16bitUnFilter (0x18), SoundBias (0x19), SoundDriverInit (0x1A-0x1F),
MidiKey2Freq (0x1F), SoundDriverVSyncOff/On (0x28-0x29), GetBiosChecksum (0x0D).
The BIOS memory region (0x00000000-0x00003FFF, 16 KB) is allocated only if
LoadBios() is called. Memory reads to this region return BIOS protection values
(0x0E for 8-bit, 0xF00E for 16-bit, 0xE1B0F00E for 32-bit) when no BIOS is
loaded and PC is outside the BIOS area.
Bios000h() (entry point) initializes stack pointers and jumps to 0x08000004,
matching real GBA hardware boot sequence. In the libretro port, retro_reset()
resets all units except BIOS and ROM memory.
GBA emulator by Philippe Daouadi (2009-2011), libretro port by
Hans-Kristian Arntzen. HLE BIOS in ameteor/source/bios.cpp handles
SWI calls via Cpu::SoftwareInterrupt() when HasBios() is false
(ameteor/source/cpu.cpp:245-311). The libretro port never calls
LoadBios() and never queries RETRO_ENVIRONMENT_GET_SYSTEM_DIRECTORY.
Standalone frontends (GTK, text) support optional real BIOS loading.
files: []
platform_details:
gba:
bios_size: 16384 # 0x4000
bios_size: 16384
hle_bios: true
source_ref: "ameteor/source/bios.cpp, ameteor/source/cpu.cpp:244-311"
source_ref: "ameteor/source/bios.cpp, ameteor/source/cpu.cpp:245-311"
notes: |
Full HLE BIOS. The libretro port never loads an external BIOS file.
Cpu::SoftwareInterrupt() checks HasBios() -- if false (always in libretro),
SWI calls are routed to C++ reimplementations. If a real BIOS were loaded
(standalone only), execution would go through the actual BIOS ROM code via
SoftwareInterrupt() -> branch to 0x08.
Cpu::SoftwareInterrupt() checks HasBios() if false (always in
libretro), SWI calls are routed to C++ reimplementations.

View File

@@ -1,8 +1,10 @@
emulator: mGBA
type: libretro
core_classification: official_port
source: "https://github.com/libretro/mgba"
upstream: "https://github.com/mgba-emu/mgba"
logo: "https://raw.githubusercontent.com/mgba-emu/mgba/master/res/mgba-256.png"
profiled_date: "2026-03-18"
profiled_date: "2026-03-24"
core_version: "0.10-dev"
display_name: "Nintendo - Game Boy Advance (mGBA)"
cores:
@@ -32,10 +34,12 @@ notes: |
GBA -> gba_bios.bin
GB (DMG/MGB) -> gb_bios.bin
GBC (CGB/AGB) -> gbc_bios.bin
SGB (SGB/SGB2)-> sgb_bios.bin
SGB -> sgb_bios.bin
SGB2 -> gb_bios.bin (falls to default, missing case)
The standalone core (src/gb/core.c:637-684) handles the same models
and maps SGB2 to sgb_bios.bin (marked TODO for a dedicated file).
The standalone core (src/gb/core.c:637-684) correctly maps SGB2 to
sgb_bios.bin (marked TODO for a dedicated file). The libretro port
omits GB_MODEL_SGB2 from its switch, so SGB2 falls to default.
GBIsBIOS() in src/gb/gb.c validates BIOS files by CRC32 checksum.
Accepted checksums cover DMG, DMG0, MGB, SGB, SGB2, CGB, CGB0, CGBE,
@@ -50,6 +54,7 @@ files:
required: false
hle_fallback: true
size: 16384 # 16 KB (0x4000, GBA_SIZE_BIOS)
validation: [size]
note: "GBA BIOS. HLE replacement built in. Real BIOS adds boot logo and full SWI accuracy."
source_ref: "src/platform/libretro/libretro.c:2099"
@@ -60,6 +65,7 @@ files:
system: nintendo-gb
required: false
size: 256 # 256 B (0x100)
validation: [crc32]
note: "DMG/MGB boot ROM. Scrolling Nintendo logo. Skipped if absent."
source_ref: "src/platform/libretro/libretro.c:2134"
@@ -70,6 +76,7 @@ files:
system: nintendo-gbc
required: false
size: 2304 # 2304 B (0x900)
validation: [crc32]
note: "CGB boot ROM. Used for CGB, AGB (GBA in GB mode), and SCGB models."
source_ref: "src/platform/libretro/libretro.c:2127"
@@ -80,14 +87,15 @@ files:
system: nintendo-sgb
required: false
size: 256 # 256 B (0x100)
note: "SGB/SGB2 boot ROM. Also used when model is SGB2 (no separate sgb2_bios.bin)."
validation: [crc32]
note: "SGB boot ROM. SGB2 maps here in standalone (src/gb/core.c:643) but falls to gb_bios.bin in libretro."
source_ref: "src/platform/libretro/libretro.c:2130"
platform_details:
gba:
bios_size: 16384 # 16 KB
hle_bios: true
source_ref: "src/gba/hle-bios.c, src/gba/gba.c:520-548"
source_ref: "src/gba/hle-bios.c, src/gba/gba.c:520-551"
notes: |
GBALoadBIOS() validates size (must be exactly 0x4000) then computes
an internal checksum. Two official checksums are recognized:
@@ -120,4 +128,5 @@ platform_details:
notes: |
Accepted SGB CRC32 checksums:
SGB = 0xEC8A83B9, SGB2 = 0x53D0DD63
SGB2 model falls through to sgb_bios.bin (marked TODO upstream).
SGB2 maps here in standalone (marked TODO upstream). Libretro port
omits SGB2 case, falls to gb_bios.bin.

View File

@@ -1,69 +1,55 @@
emulator: Mini vMac
type: libretro
core_classification: community_fork
source: "https://github.com/libretro/libretro-minivmac"
profiled_date: "2026-03-18"
core_version: "GIT"
upstream: "https://www.gryphel.com/c/minivmac/"
profiled_date: "2026-03-24"
core_version: "36.04"
display_name: "Mac II (minivmac)"
cores: [minivmac]
systems: [macintosh-ii]
# Mini vMac is a Macintosh II emulator. The libretro port is hardcoded for
# Mac II emulation (CurEmMd = kEmMd_II) with 68020 CPU, FPU, ADB, VIA2, ASC.
# ROM is loaded from the RetroArch system directory.
# Libretro port of Mini vMac 36.04, hardcoded for Mac II emulation
# (CurEmMd = kEmMd_II). 68020 CPU, FPU, ADB, VIA2, ASC. 640x480, 8-bit color.
# The VidROM is generated in memory by Vid_Init(), not loaded from a file.
# ROM loading order (OSGLUERETRO.c LoadMacRom):
# 1. <system>/MacIIx.ROM (tried first, same 256 KB size)
# 2. <system>/MacII.ROM (defined as RomFileName in CNFGRAPI.h)
# 3. --rom command line arg (if provided)
# ROM loading order in LoadMacRom (OSGLUERETRO.c:774):
# 1. <system_dir>/MacIIx.ROM
# 2. <system_dir>/MacII.ROM
# 3. --rom command line arg
# 4. ~/.gryphel/mnvm_rom/MacII.ROM
# 5. app parent directory
# 6. current directory
# ROM size: kROM_Size = 0x00040000 = 262144 bytes (256 KB)
# ROM checksums defined in CNFGRAPI.h:
# kRomCheckSum1 = 0x9779D2C4 (Mac II v1)
# kRomCheckSum2 = 0x97221136 (Mac II v2)
# Note: DisableRomCheck = 1, so checksum validation is skipped at runtime
# (ROMEMDEV.c patches the ROM check jump). Any 256 KB Mac II ROM works.
# The libretro port does NOT call ROM_IsValid() (unlike upstream backends),
# so no checksum validation occurs. ROM_Init() patches the Mac's own boot
# ROM check (DisableRomCheck = 1, ROMEMDEV.c:279).
files:
# -- MacII.ROM (primary, required) --
# Standard Macintosh II ROM image. This is the hardcoded RomFileName.
# The core reads exactly kROM_Size (262144) bytes from this file.
- name: "MacII.ROM"
path: "MacII.ROM"
required: true
size: 262144
validation: [size]
source_ref: "minivmac/cfg/CNFGRAPI.h:32, minivmac/src/OSGLUERETRO.c:781"
note: >
Macintosh II ROM image (256 KB). The core loads this from the system
directory. Must be exactly 262144 bytes. ROM checksum verification is
disabled in the libretro build, so either Mac II ROM revision works.
# -- MacIIx.ROM (alternative, optional) --
# Tried before MacII.ROM in the loading sequence. The Mac IIx ROM is the
# same 256 KB size and is compatible with the Mac II emulation mode.
Macintosh II ROM image (256 KB). Hardcoded as RomFileName. The core
reads exactly kROM_Size (262144) bytes via filestream_read.
- name: "MacIIx.ROM"
path: "MacIIx.ROM"
required: false
size: 262144
validation: [size]
source_ref: "minivmac/src/OSGLUERETRO.c:778"
note: >
Macintosh IIx ROM image (256 KB). Checked first in the ROM loading
sequence. If present, it takes priority over MacII.ROM. The Mac IIx
uses the same 68020-class architecture as the Mac II.
Macintosh IIx ROM image (256 KB). Tried first in the loading sequence.
If present, takes priority over MacII.ROM.
notes:
emulation_target: >
The libretro build is configured exclusively for Macintosh II emulation
(kEmMd_II). Build options: 68020 CPU, FPU enabled, ADB keyboard/mouse,
VIA2, ASC sound chip. Screen: 640x480, 8-bit color depth.
disk_formats: >
Supported disk image formats: .dsk, .img, .zip, .hvf, .cmd
The core auto-inserts the loaded content as a floppy disk.
Supports up to NumDrives simultaneous disk images.
rom_checksum_note: >
DisableRomCheck is set to 1 in ROMEMDEV.c, meaning the core patches out
the ROM checksum verification at boot. This allows any valid Mac II era
ROM to work regardless of exact revision.
Configured for Macintosh II (kEmMd_II). 68020 CPU, FPU, ADB, VIA2, ASC
sound. Screen: 640x480, 8-bit color depth.
info_discrepancy: >
.info declares firmware_count=1 (MacII.ROM only). The code also tries
MacIIx.ROM first (OSGLUERETRO.c:778).

View File

@@ -1,9 +1,6 @@
emulator: "mkxp-z"
emulator: mkxp-z
type: alias
alias_of: "mkxp_z"
core_version: ""
alias_of: mkxp_z
display_name: "RPG Maker XP/VX/VX Ace (mkxp-z)"
profiled_date: "2026-03-18"
display_name: "RPG Maker XP/VX/VX Ace (mkxp-z)"
note: "This core uses the same BIOS/firmware as mkxp_z. See emulators/mkxp_z.yml for details."
profiled_date: "2026-03-24"
files: []

View File

@@ -1,124 +1,66 @@
emulator: mkxp-z
type: libretro
source: "https://github.com/mkxp-z/mkxp-z"
profiled_date: "2026-03-18"
core_version: ""
core_classification: game_engine
source: "https://github.com/white-axe/mkxp-z"
source_ref: "branch: libretro (PR #255 to mkxp-z/mkxp-z)"
upstream: "https://github.com/mkxp-z/mkxp-z"
profiled_date: "2026-03-24"
core_version: "f4bc5aa"
display_name: "RPG Maker XP/VX/VX Ace (mkxp-z)"
cores:
- mkxp-z
systems:
- rpgmaker
# mkxp-z is an open-source player for RPG Maker XP, VX and VX Ace games.
# Heavily modified fork of mkxp implementing the RGSS (Ruby Game Scripting
# System) interface versions 1, 2 and 3.
#
# The libretro .info file (mkxp-z_libretro.info) declares 3 firmware entries,
# all optional. These are RTP (Run-Time Package) directories, not individual
# files. Each RTP contains default assets (tilesets, sprites, music, sound
# effects, fonts) shared by games that don't bundle their own.
#
# Games that ship all assets internally need no RTP at all.
#
# firmware0: mkxp-z/RTP/Standard (RPG Maker XP RTP) optional
# firmware1: mkxp-z/RTP/RPGVX (RPG Maker VX RTP) optional
# firmware2: mkxp-z/RTP/RPGVXAce (RPG Maker VX Ace RTP) optional
#
# Directory layout under <system_dir>:
# mkxp-z/RTP/Standard/ RPG Maker XP RTP
# Audio/ BGM, BGS, ME, SE in ogg/midi/wav
# Graphics/ tilesets, characters, battlers, etc.
# mkxp-z/RTP/RPGVX/ RPG Maker VX RTP
# Audio/
# Fonts/
# Graphics/
# mkxp-z/RTP/RPGVXAce/ RPG Maker VX Ace RTP
# Audio/
# Fonts/
# Graphics/
#
# RTP installers are available from https://www.rpgmakerweb.com/run-time-package
# On non-Windows, use innoextract to unpack the Windows installers.
#
# RTP path resolution (sharedstate.cpp:144-145, config.cpp:326):
# config.rtps[] is populated from the "RTP" JSON array in mkxp.json.
# The libretro port sets these to <system_dir>/mkxp-z/RTP/<name>.
# Each path is added to PhysFS search path via fileSystem.addPath().
#
# Additional optional directories:
# mkxp-z/Fonts/ custom fallback fonts (.otf/.ttf)
# mkxp-z/Scripts/Preload/ Ruby scripts run before game scripts
# mkxp-z/Scripts/Postload/ Ruby scripts run before rgss_main (RGSS3)
#
# MIDI playback: mkxp-z uses FluidSynth internally. A soundfont can be
# specified per-game in mkxp.json via "midiSoundFont". No global soundfont
# file is declared as firmware.
#
# Supported extensions: ini, json, rxproj, rvproj, rvproj2, mkxp, mkxpz, zip, 7z
# Required GPU: OpenGL Core >= 2.0 or OpenGL ES >= 2.0
notes: |
No individual BIOS or firmware files required. The three RTP directories
listed below are optional collections of default game assets. Only needed
when a game references stock RPG Maker assets instead of bundling them.
Game engine implementing RGSS 1/2/3 (Ruby Game Scripting System) for
RPG Maker XP, VX and VX Ace. Fork of Ancurio/mkxp. Libretro port by
white-axe, not yet merged upstream.
RPG Maker XP uses RGSS1 (Ruby Game Scripting System 1).
RPG Maker VX uses RGSS2.
RPG Maker VX Ace uses RGSS3.
Each RTP is a directory tree containing Audio/ and Graphics/ subdirs,
plus Fonts/ for VX and VX Ace. These are not hashable single files.
All entries are directories, not individual files. No hashable BIOS.
RTPs are shared asset packages needed only when a game references stock
assets instead of bundling its own. MIDI soundfont (GMGSx.sf2) is
embedded in the binary.
files:
# ================================================================
# RPG Maker XP RTP (optional, game-dependent)
# mkxp-z_libretro.info firmware0
# ================================================================
- name: "RPG Maker XP RTP (Standard)"
- name: "Standard"
description: "RPG Maker XP Run-Time Package"
category: game_data
path: "mkxp-z/RTP/Standard/"
required: false
type: directory
source_ref: "mkxp-z_libretro.info:firmware0, sharedstate.cpp:144-145"
note: >
Run-Time Package for RPG Maker XP (RGSS1) games. Contains default
tilesets, character sprites, battle animations, panoramas, windowskins,
BGM, BGS, ME and SE audio files. Only needed by games that reference
stock XP assets. Distributed by Enterbrain as a Windows installer,
extractable with innoextract on other platforms.
source_ref: "core.cpp:1042-1085, core.cpp:1087-1158"
# ================================================================
# RPG Maker VX RTP (optional, game-dependent)
# mkxp-z_libretro.info firmware1
# ================================================================
- name: "RPG Maker VX RTP (RPGVX)"
- name: "RPGVX"
description: "RPG Maker VX Run-Time Package"
category: game_data
path: "mkxp-z/RTP/RPGVX/"
required: false
type: directory
source_ref: "mkxp-z_libretro.info:firmware1, sharedstate.cpp:144-145"
note: >
Run-Time Package for RPG Maker VX (RGSS2) games. Contains default
tilesets, character sprites, face graphics, battle animations, fonts
and audio assets. VX uses a different tileset format than XP. Only
needed by games that reference stock VX assets.
source_ref: "core.cpp:1042-1085, core.cpp:1087-1158"
# ================================================================
# RPG Maker VX Ace RTP (optional, game-dependent)
# mkxp-z_libretro.info firmware2
# ================================================================
- name: "RPG Maker VX Ace RTP (RPGVXAce)"
- name: "RPGVXAce"
description: "RPG Maker VX Ace Run-Time Package"
category: game_data
path: "mkxp-z/RTP/RPGVXAce/"
required: false
type: directory
source_ref: "mkxp-z_libretro.info:firmware2, sharedstate.cpp:144-145"
note: >
Run-Time Package for RPG Maker VX Ace (RGSS3) games. Largest of the
three RTPs with expanded tilesets, character generators, battle system
assets, fonts and audio. VX Ace is the most commonly used RPG Maker
version on the RGSS engine. Only needed by games that reference stock
VX Ace assets.
source_ref: "core.cpp:1042-1085, core.cpp:1087-1158"
- name: "Fonts"
description: "Fallback font directory (.otf/.ttf)"
category: game_data
path: "mkxp-z/Fonts/"
required: false
source_ref: "core.cpp:1160-1172"
- name: "Preload"
description: "Ruby scripts loaded before game scripts"
category: game_data
path: "mkxp-z/Scripts/Preload/"
required: false
source_ref: "core.cpp:876-907"
- name: "Postload"
description: "Ruby scripts loaded after game scripts (RGSS3 only)"
category: game_data
path: "mkxp-z/Scripts/Postload/"
required: false
source_ref: "core.cpp:886-917"

View File

@@ -1,19 +1,18 @@
emulator: MojoZork
type: game
source: "https://github.com/libretro/libretro-mojozork"
profiled_date: "2026-03-18"
type: libretro
core_classification: pure_libretro
source: "https://github.com/icculus/mojozork"
upstream: "https://github.com/icculus/mojozork"
profiled_date: "2026-03-24"
core_version: "0.1"
display_name: "Infocom Z-Machine (MojoZork)"
cores:
- mojozork
systems: []
systems: [zmachine]
notes: |
MojoZork is a Z-machine interpreter for libretro, capable of running
Infocom-era interactive fiction (Zork, Hitchhiker's Guide, etc.) and
other Z-code story files (.z1 through .z8, .zblorb).
No BIOS or system files required. Story files are loaded directly
as content.
Z-Machine interpreter for Infocom text adventures (v1-v3).
Fonts embedded in binary. No system directory access. Story files
loaded as content.
files: []

View File

@@ -1,7 +1,9 @@
emulator: Moonlight
type: utility
source: "https://github.com/libretro/moonlight-libretro"
profiled_date: "2026-03-18"
core_classification: community_fork
source: "https://github.com/rock88/moonlight-libretro"
upstream: "https://github.com/moonlight-stream/moonlight-embedded"
profiled_date: "2026-03-24"
core_version: "1.0.3"
display_name: "Moonlight"
cores:
@@ -9,11 +11,13 @@ cores:
systems: []
notes: |
Moonlight is a game streaming client that connects to NVIDIA
GameStream or Sunshine hosts. The libretro port allows streaming
PC games through RetroArch.
Game streaming client for NVIDIA GameStream / Sunshine.
Port of moonlight-embedded for RetroArch, primarily targeting
Lakka on Nintendo Switch.
No BIOS or system files required. Configuration (host IP, pairing)
is handled through core options and the pairing process.
The core auto-generates all needed files on first run
(crypto keypair for pairing, unique ID, settings) in the
system directory under a key/ subdirectory. No user-supplied
files required.
files: []

View File

@@ -1,18 +1,23 @@
emulator: mpv
type: utility
core_classification: community_fork
source: "https://github.com/libretro/libretro-mpv"
profiled_date: "2026-03-18"
core_version: "Git"
upstream: "https://github.com/mpv-player/mpv"
profiled_date: "2026-03-24"
core_version: "0.2.alpha"
display_name: "MPV"
cores:
- mpv
systems: []
notes: |
Libretro port of mpv, a media player based on MPlayer and mplayer2.
Plays video and audio files within RetroArch using mpv's decoding
pipeline.
No BIOS or system files required.
Libretro wrapper around libmpv. Links against the mpv shared library
for video/audio decoding and OpenGL rendering. Experimental, proof of
concept. No system directory access — the core only loads the content
file passed by RetroArch.
# source_ref: mpv-libretro.c — single-file core (672 lines). No call to
# RETRO_ENVIRONMENT_GET_SYSTEM_DIRECTORY. Only file access is the content
# path via retro_load_game(info->path) forwarded to mpv loadfile command
# (line 241, 296). No fopen, no system_dir path construction.
files: []

View File

@@ -1,14 +1,15 @@
emulator: Mr.Boom
type: game
core_classification: official_port
source: "https://github.com/libretro/mrboom-libretro"
profiled_date: "2026-03-18"
upstream: "https://github.com/libretro/mrboom-libretro"
profiled_date: "2026-03-24"
core_version: "3.1"
display_name: "Mr.Boom (Bomberman)"
cores: [mrboom]
systems: []
files: []
notes: >
Bomberman clone supporting up to 8 players. Ported to libretro from
the original x86 assembly game by Remdy Software.
All game assets are compiled into the core binary.
No content file, BIOS, or system directory files required.
Bomberman clone supporting up to 8 players. Converted from DOS x86
assembly by the original author (Remdy Software) using asm2c.
All game assets (graphics, sounds, music) are compiled into the core binary.

View File

@@ -1,35 +1,27 @@
emulator: Mu
type: libretro
core_classification: pure_libretro
source: "https://github.com/libretro/Mu"
profiled_date: "2026-03-18"
upstream: "https://github.com/meepingsnesroms/Mu"
profiled_date: "2026-03-24"
core_version: "v1.3.3"
display_name: "Palm OS (Mu)"
cores: [mu]
systems: [palm-os]
notes: |
Mu emulates Palm OS handhelds: Palm m500, Palm m515, and (if compiled
with EMU_SUPPORT_PALM_OS5) the Tungsten T3.
A Palm OS ROM dump is required. The core selects the ROM filename based
on the "OS Version" core option:
Mu emulates Palm m500, Palm m515, and (with EMU_SUPPORT_PALM_OS5)
Tungsten T3. A Palm OS ROM dump is required. The core selects the
ROM filename based on the "OS Version" core option:
Palm m500 / Palm OS 4.0 -> palmos40-en-m500.rom
Palm m515 / Palm OS 4.1 -> palmos41-en-m515.rom (default)
Tungsten T3 / Palm OS 5.2 -> palmos52-en-t3.rom
Tungsten T3 / Palm OS 6.0 -> palmos60-en-t3.rom
ROM path construction: retro_load_game() joins
RETRO_ENVIRONMENT_GET_SYSTEM_DIRECTORY + "/" + osVersion + ".rom".
The bootloader (bootloader-dbvz.rom) is optional. It contains the
MC68VZ328 UART bootloader and is only relevant for m500/m515 devices.
For the Tungsten T3 it is ignored even if present.
The m500/m515 ROM is loaded into a 4 MB region (M5XX_ROM_SIZE),
padded with 0x00 if smaller, and byte-swapped on little-endian hosts.
The Tungsten T3 ROM maps into a 16 MB region (TUNGSTEN_T3_ROM_SIZE).
The core also supports no-game mode (supports_no_game = true). Without
content, it boots the standard Palm OS desktop from the ROM.
ROM path: RETRO_ENVIRONMENT_GET_SYSTEM_DIRECTORY + "/" + osVersion + ".rom".
No hash or size validation; the code reads whatever file is present.
The bootloader is optional and ignored for Tungsten T3.
Supports no-game mode (boots Palm OS desktop from ROM without content).
files:
# --- Palm m515 / Palm OS 4.1 (default device) ---
@@ -37,17 +29,15 @@ files:
system: palm-os
description: "Palm m515 ROM, Palm OS 4.1 English"
required: true
md5: "83cb1d1c76e568b916dc2e7c0bf669f6"
note: "Default ROM. Selected when core option is 'Palm m515/Palm OS 4.1'. Max 4 MB, byte-swapped on LE."
source_ref: "libretroBuildSystem/libretro.c:173-176,744-763 (retro_load_game ROM loading)"
note: "Default ROM. Selected when core option is 'Palm m515/Palm OS 4.1'."
source_ref: "libretroBuildSystem/libretro.c:173-176 (check_variables), 744-763 (retro_load_game ROM loading)"
# --- Palm m500 / Palm OS 4.0 ---
- name: "palmos40-en-m500.rom"
system: palm-os
description: "Palm m500 ROM, Palm OS 4.0 English"
required: false
md5: "f50e4d5e4d98dc831f2c34a9107651eb"
note: "Selected when core option is 'Palm m500/Palm OS 4.0'. Max 4 MB."
note: "Selected when core option is 'Palm m500/Palm OS 4.0'."
source_ref: "libretroBuildSystem/libretro.c:169-172"
# --- Tungsten T3 / Palm OS 5.2.1 (requires EMU_SUPPORT_PALM_OS5) ---
@@ -55,8 +45,7 @@ files:
system: palm-os
description: "Tungsten T3 ROM, Palm OS 5.2.1 English"
required: false
md5: "de46ec84d9aabf655eabdf9b00a3845d"
note: "Selected when core option is 'Tungsten T3/Palm OS 5.2.1'. Max 16 MB. Only available if core compiled with EMU_SUPPORT_PALM_OS5."
note: "Selected when core option is 'Tungsten T3/Palm OS 5.2.1'. Requires EMU_SUPPORT_PALM_OS5 compile flag."
source_ref: "libretroBuildSystem/libretro.c:178-181"
# --- Tungsten T3 / Palm OS 6.0 (requires EMU_SUPPORT_PALM_OS5) ---
@@ -64,7 +53,7 @@ files:
system: palm-os
description: "Tungsten T3 ROM, Palm OS 6.0 English"
required: false
note: "Selected when core option is 'Tungsten T3/Palm OS 6.0'. Max 16 MB. Only available if core compiled with EMU_SUPPORT_PALM_OS5."
note: "Selected when core option is 'Tungsten T3/Palm OS 6.0'. Requires EMU_SUPPORT_PALM_OS5 compile flag."
source_ref: "libretroBuildSystem/libretro.c:182-185"
# --- MC68VZ328 bootloader ---
@@ -72,17 +61,17 @@ files:
system: palm-os
description: "MC68VZ328 UART bootloader"
required: false
md5: "9da101cd2317830649a31f8fa46debec"
note: "Optional for m500/m515. Ignored for Tungsten T3. Loads from system directory."
source_ref: "libretroBuildSystem/libretro.c:766-782"
note: "Optional for m500/m515. Ignored for Tungsten T3."
source_ref: "libretroBuildSystem/libretro.c:766-782, src/dbvz.c:1408-1423 (dbvzLoadBootloader)"
platform_details:
palm_m5xx:
rom_size: 4194304 # 4 MB (M5XX_ROM_SIZE)
bootloader_size: 512 # DBVZ_BOOTLOADER_SIZE (0x200)
cpu: "MC68VZ328"
source_ref: "include/m5XXBus.h:23, src/emulator.c:191-212"
source_ref: "include/m5XXBus.h:23,28, src/emulator.c:191-212"
tungsten_t3:
rom_size: 16777216 # 16 MB (TUNGSTEN_T3_ROM_SIZE)
cpu: "PXA260 (ARM)"
source_ref: "include/tungstenT3Bus.h:17, src/emulator.c:158-164"
source_ref: "include/tungstenT3Bus.h:17, src/emulator.c:145-162"

View File

@@ -1,51 +1,31 @@
emulator: Mupen64Plus-Next
type: libretro
core_classification: enhanced_fork
source: "https://github.com/libretro/mupen64plus-libretro-nx"
profiled_date: "2026-03-18"
core_version: "1.0"
upstream: "https://github.com/mupen64plus/mupen64plus-core"
profiled_date: "2026-03-24"
core_version: "2.8"
display_name: "Nintendo - Nintendo 64 (Mupen64Plus-Next)"
systems: [nintendo-64, nintendo-64dd]
cores: [mupen64plus_next, mupen64plus_next_gles3, mupen64plus_next_gles2, parallel_n64]
# PIF boot ROM is fully HLE'd (bootrom_hle.c), no external PIF ROM needed.
# CIC emulation is also handled internally (n64_cic_nus_6105.c).
# The only optional firmware is the 64DD IPL ROM for N64 Disk Drive games.
# mupen64plus_next cores use: system/Mupen64plus/IPL.n64
# parallel_n64 uses: system/64DD_IPL.bin
# Both expect the same ROM, different path.
cores: [mupen64plus_next, mupen64plus_next_develop, mupen64plus_next_gles3, mupen64plus_next_gles2]
files:
# -- 64DD IPL ROM (mupen64plus_next variants) --
- name: "IPL.n64"
path: "Mupen64plus/IPL.n64"
size: 4194304 # 0x400000 (4 MB)
md5: "8d3d9f294b6e174bc7b1d2fd1c727530"
size: 4194304
required: false
note: "64DD IPL ROM for N64 Disk Drive games. Only needed for .ndd disk images via subsystem API"
source_ref: "mupen64plus-core/src/main/main.c:959-961, libretro/libretro.c:641"
cores: [mupen64plus_next, mupen64plus_next_gles3, mupen64plus_next_gles2]
# -- 64DD IPL ROM (parallel_n64) --
- name: "64DD_IPL.bin"
path: "64DD_IPL.bin"
md5: "8d3d9f294b6e174bc7b1d2fd1c727530"
required: false
note: "Same 64DD IPL ROM, different path expected by parallel_n64"
cores: [parallel_n64]
note: "64DD IPL ROM. Only needed for N64 Disk Drive games (.ndd) via subsystem API"
source_ref: "mupen64plus-core/src/main/main.c:954-979"
notes:
hle_available: true
hle_note: >
N64 does not require any BIOS or firmware files for standard cartridge games.
The PIF boot ROM is fully emulated via HLE (bootrom_hle.c). CIC chip
challenge/response is handled in software (n64_cic_nus_6105.c).
PIF boot ROM is fully HLE'd (bootrom_hle.c). CIC challenge/response
handled in software (n64_cic_nus_6105.c). No BIOS files needed for
standard cartridge games.
dd_note: >
The 64DD IPL ROM is only needed to run N64 Disk Drive games (.ndd).
It is loaded via the retro subsystem API (RETRO_GAME_TYPE_DD), which
takes both a disk image and an optional cartridge ROM.
The core accepts Z64 (big-endian), N64 (little-endian), and V64
(byte-swapped) formats and converts internally.
64DD IPL ROM loaded from system/Mupen64plus/IPL.n64 when a .ndd disk
is present. Accepts Z64, N64, and V64 byte-swap formats.
transferpak_note: >
Transfer Pak support (GB/GBC games on N64) is handled via subsystem API.
No additional firmware files needed, just the GB ROM and save file.
Transfer Pak support (GB/GBC games on N64) handled via subsystem API.
No additional firmware files needed.

View File

@@ -0,0 +1,8 @@
emulator: "Mupen64Plus-Next Develop"
type: alias
alias_of: "mupen64plus_next"
profiled_date: "2026-03-24"
core_version: "2.8"
display_name: "Nintendo - Nintendo 64 (Mupen64Plus-Next Develop)"
note: "Same codebase as mupen64plus_next, built from develop branch. Experimental/testing variant."
files: []

View File

@@ -0,0 +1,8 @@
emulator: "Mupen64Plus-Next GLES2"
type: alias
alias_of: "mupen64plus_next"
profiled_date: "2026-03-24"
core_version: "2.8"
display_name: "Nintendo - Nintendo 64 (Mupen64Plus-Next GLES2)"
note: "Same codebase as mupen64plus_next, compiled with GLES=1 (-DHAVE_OPENGLES2) for OpenGL ES 2.0 devices. Same BIOS files."
files: []

View File

@@ -0,0 +1,8 @@
emulator: "Mupen64Plus-Next GLES3"
type: alias
alias_of: "mupen64plus_next"
profiled_date: "2026-03-24"
core_version: "2.8"
display_name: "Nintendo - Nintendo 64 (Mupen64Plus-Next GLES3)"
note: "Same codebase as mupen64plus_next, compiled with -DHAVE_OPENGLES3 for OpenGL ES 3.0 devices. Same BIOS files."
files: []

View File

@@ -1,144 +1,122 @@
emulator: NeoCD
type: libretro
core_classification: pure_libretro
source: "https://github.com/libretro/neocd_libretro"
profiled_date: "2026-03-18"
core_version: "2019"
upstream: "https://github.com/libretro/neocd_libretro"
profiled_date: "2026-03-24"
core_version: "2022"
display_name: "SNK - Neo Geo CD (NeoCD)"
cores:
- neocd
systems:
- snk-neogeo-cd
notes: |
NeoCD is a dedicated SNK Neo Geo CD emulator. It supports Front Loader,
Top Loader, and CDZ hardware variants. BIOS files go in {system_dir}/neocd/
subdirectory (src/path.cpp:7, src/libretro_bios.cpp:76-81).
Complete rewrite of NeoCD in C++11. Scans {system_dir}/neocd/ for any .rom
or .bin file, also inside .zip archives (src/libretro_bios.cpp:69-105,
src/path.cpp:6 NEOCD_SYSTEM_SUBDIR = "neocd").
The core scans the neocd/ directory for any .rom or .bin file (also inside
.zip archives), reads the first 512 bytes, and identifies the BIOS type by
binary pattern matching at fixed ROM addresses (src/bios.cpp:168-208).
Filenames listed in the .info are conventional but not enforced by the core.
BIOS identified by binary pattern matching at fixed ROM addresses, not by
filename (src/bios.cpp:167-206). Files are auto byte-swapped if needed
(src/bios.cpp:148-160). Files smaller than 524288 bytes are skipped
(src/libretro_bios.cpp:42).
Three hardware families are detected: Front Loader (NeoCD), Top Loader
(NeoCD), and CDZ. Modified BIOS variants are also recognized: SMKDan 0.07,
SMKDan 0.07b, Universe BIOS 3.2, and Universe BIOS 3.3. The core applies
speed hack patches and CD recognition patches at load time for each type
(src/bios.cpp:209-280).
Three hardware families detected: Front Loader, Top Loader, CDZ. Modified
variants recognized: SMKDan 0.07, SMKDan 0.07b, Universe BIOS 3.2,
Universe BIOS 3.3 (src/bios.h:11-27). Any single valid BIOS is sufficient;
selection via core options dropdown sorted alphabetically.
The Y-ZOOM ROM (ng-lo.rom / 000-lo.lo) is a sprite zoom lookup table loaded
separately (src/memory.h:22, YZOOMROM_SIZE = 0x10000 = 65536 bytes). It is
optional but improves sprite scaling accuracy.
Y-ZOOM ROM (ng-lo.rom / 000-lo.lo) listed in .info but generated
algorithmically, never loaded from file (src/memory.cpp:223-253
generateYZoomData, CRC32 E09E253C). These are phantom .info entries.
All firmware entries are marked optional in the .info (any single valid BIOS
is sufficient). The core presents detected BIOSes as a dropdown in the core
options menu, sorted alphabetically by description.
BIOS ROM size: 524288 bytes (0x80000, src/memory.h:16).
Y-ZOOM ROM size: 65536 bytes (0x10000, src/memory.h:22).
.info firmware_count=12 but 2 are phantoms (Y-ZOOM), effective count=10.
.info lists uni-bioscd.rom as "Universe BIOS 3.2" but SHA1 matches
Universe BIOS 3.3 (confirmed by GitHub README).
files:
# Front Loader BIOS (NeoCD original front-loading unit)
# --- Front Loader family ---
- name: neocd_f.rom
dest: neocd/neocd_f.rom
system: snk-neogeo-cd
required: false
size: 524288
note: "Front Loader BIOS, official NeoCD format"
source_ref: "retroarch/libneocd_libretro.info:15 (firmware0)"
note: "Front Loader BIOS (big-endian, NeoCD naming)"
source_ref: "src/bios.cpp:59 FRONT_LOADER_SEARCH_PATTERN at 0xC0006C"
# Front Loader BIOS, SMKDan custom
- name: neocd_sf.rom
dest: neocd/neocd_sf.rom
system: snk-neogeo-cd
required: false
size: 524288
note: "Front Loader BIOS, SMKDan custom"
source_ref: "retroarch/libneocd_libretro.info:18 (firmware1)"
# Top Loader BIOS (NeoCD top-loading unit)
- name: neocd_t.rom
dest: neocd/neocd_t.rom
system: snk-neogeo-cd
required: false
size: 524288
note: "Top Loader BIOS, official NeoCD format"
source_ref: "retroarch/libneocd_libretro.info:21 (firmware2)"
# Top Loader BIOS, SMKDan custom
- name: neocd_st.rom
dest: neocd/neocd_st.rom
system: snk-neogeo-cd
required: false
size: 524288
note: "Top Loader BIOS, SMKDan custom"
source_ref: "retroarch/libneocd_libretro.info:24 (firmware3)"
# CDZ BIOS (Neo Geo CDZ, last revision)
- name: neocd_z.rom
dest: neocd/neocd_z.rom
system: snk-neogeo-cd
required: false
size: 524288
note: "CDZ BIOS, official NeoCD format"
source_ref: "retroarch/libneocd_libretro.info:27 (firmware4)"
# CDZ BIOS, SMKDan custom
- name: neocd_sz.rom
dest: neocd/neocd_sz.rom
system: snk-neogeo-cd
required: false
size: 524288
note: "CDZ BIOS, SMKDan custom"
source_ref: "retroarch/libneocd_libretro.info:30 (firmware5)"
# Y-ZOOM ROM (sprite zoom lookup table)
- name: ng-lo.rom
dest: neocd/ng-lo.rom
system: snk-neogeo-cd
required: false
size: 65536
note: "Y-ZOOM ROM, NeoCD format"
source_ref: "retroarch/libneocd_libretro.info:33 (firmware6)"
# Y-ZOOM ROM, MAME naming
- name: 000-lo.lo
dest: neocd/000-lo.lo
system: snk-neogeo-cd
required: false
size: 65536
note: "Y-ZOOM ROM, MAME naming (same content as ng-lo.rom)"
source_ref: "retroarch/libneocd_libretro.info:36 (firmware7)"
# Front Loader BIOS, MAME naming
- name: front-sp1.bin
dest: neocd/front-sp1.bin
system: snk-neogeo-cd
required: false
size: 524288
note: "Front Loader BIOS, MAME naming (same content as neocd_f.rom)"
source_ref: "retroarch/libneocd_libretro.info:39 (firmware8)"
note: "Front Loader BIOS (little-endian, MAME naming)"
source_ref: "src/bios.cpp:59 FRONT_LOADER_SEARCH_PATTERN, src/bios.cpp:148-160 autoByteSwap"
- name: neocd_sf.rom
dest: neocd/neocd_sf.rom
system: snk-neogeo-cd
required: false
size: 524288
note: "Front Loader BIOS, SMKDan 0.07b"
source_ref: "src/bios.cpp:62 SMKDANBETA_FRONT_SEARCH_PATTERN at 0xC00004"
# --- Top Loader family ---
- name: neocd_t.rom
dest: neocd/neocd_t.rom
system: snk-neogeo-cd
required: false
size: 524288
note: "Top Loader BIOS (big-endian, NeoCD naming)"
source_ref: "src/bios.cpp:60 TOP_LOADER_SEARCH_PATTERN at 0xC0006C"
# Top Loader BIOS, MAME naming
- name: top-sp1.bin
dest: neocd/top-sp1.bin
system: snk-neogeo-cd
required: false
size: 524288
note: "Top Loader BIOS, MAME naming (same content as neocd_t.rom)"
source_ref: "retroarch/libneocd_libretro.info:42 (firmware9)"
note: "Top Loader BIOS (little-endian, MAME naming)"
source_ref: "src/bios.cpp:60 TOP_LOADER_SEARCH_PATTERN, src/bios.cpp:148-160 autoByteSwap"
- name: neocd_st.rom
dest: neocd/neocd_st.rom
system: snk-neogeo-cd
required: false
size: 524288
note: "Top Loader BIOS, SMKDan 0.07b"
source_ref: "src/bios.cpp:63 SMKDANBETA_TOP_SEARCH_PATTERN at 0xC00004"
# --- CDZ family ---
- name: neocd_z.rom
dest: neocd/neocd_z.rom
system: snk-neogeo-cd
required: false
size: 524288
note: "CDZ BIOS (big-endian, NeoCD naming)"
source_ref: "src/bios.cpp:61 CDZ_SEARCH_PATTERN at 0xC0006C"
# CDZ BIOS, MAME naming
- name: neocd.bin
dest: neocd/neocd.bin
system: snk-neogeo-cd
required: false
size: 524288
note: "CDZ BIOS, MAME naming (same content as neocd_z.rom)"
source_ref: "retroarch/libneocd_libretro.info:45 (firmware10)"
note: "CDZ BIOS (little-endian, MAME naming)"
source_ref: "src/bios.cpp:61 CDZ_SEARCH_PATTERN, src/bios.cpp:148-160 autoByteSwap"
- name: neocd_sz.rom
dest: neocd/neocd_sz.rom
system: snk-neogeo-cd
required: false
size: 524288
note: "CDZ BIOS, SMKDan 0.07b"
source_ref: "src/bios.cpp:64 SMKDANBETA_CDZ_SEARCH_PATTERN at 0xC00004"
# Universe BIOS for CD systems
- name: uni-bioscd.rom
dest: neocd/uni-bioscd.rom
system: snk-neogeo-cd
required: false
size: 524288
note: "Universe BIOS CD, third-party multi-region BIOS (hack)"
source_ref: "retroarch/libneocd_libretro.info:48 (firmware11)"
note: "Universe BIOS 3.3, CDZ-based third-party multi-region BIOS"
source_ref: "src/bios.cpp:68 UNIVERSE33_SEARCH_PATTERN at 0xC00150"

View File

@@ -1,25 +1,24 @@
emulator: NooDS
type: libretro
source: "https://github.com/Hydr8gon/NooDS"
profiled_date: "2026-03-18"
core_classification: community_fork
source: "https://github.com/jonian/libretro-noods"
upstream: "https://github.com/Hydr8gon/NooDS"
profiled_date: "2026-03-24"
core_version: "Git"
display_name: "Nintendo - DS (NooDS)"
cores: [noods]
systems: [nintendo-ds, nintendo-gba]
notes: |
NooDS includes full HLE BIOS for ARM9, ARM7 and GBA SWI routines, making
all BIOS files optional when direct boot is enabled (default). HLE tables
cover SWI 0x00-0x20 for each processor (hle_bios.cpp:24-62). When BIOS
files are missing, a special opcode (0xFF at offset 3) is written for
interrupt return and the HLE handler is activated (memory.cpp:130-169).
Firmware is auto-generated (128KB non-bootable) if not provided, with
default WiFi config, touch calibration and user settings (spi.cpp:90-160).
Native BIOS+firmware required only for firmware boot (non-direct-boot mode).
ARM9 BIOS read: 0x1000 bytes (4 KB), ARM7 BIOS read: 0x4000 bytes (16 KB),
GBA BIOS read: 0x4000 bytes (16 KB). Firmware bootable threshold: >128 KB
(spi.cpp:87). DSi mode supported but uses same BIOS files.
Config: noods.ini keys bios9Path, bios7Path, firmwarePath, gbaBiosPath.
Full HLE BIOS for ARM9, ARM7 and GBA SWI routines (hle_bios.cpp:24-60).
All BIOS files optional when direct boot is enabled (default). When missing,
HLE handler activated via special opcode at offset 3 (memory.cpp:139-168).
Firmware auto-generated (128KB non-bootable) if not provided, with default
WiFi config, touch calibration and user settings (spi.cpp:90-160). Native
BIOS+firmware required only for firmware boot (non-direct-boot mode).
Bootable firmware threshold: >128KB (spi.cpp:87). DLDI patching provides
SD card access for homebrew via nds_sd_card.bin (dldi.cpp:29-77).
File loading code identical between upstream and libretro port.
files:
- name: "bios9.bin"
@@ -28,8 +27,7 @@ files:
required: false
hle_fallback: true
size: 4096
md5: "a392174eb3e572fed6447e956bde4b25"
source_ref: "src/memory.cpp:130-142, src/memory.h:73"
source_ref: "src/memory.cpp:130-141"
notes: "HLE fallback for all SWI calls; native needed for firmware boot and logo verification (copyBiosLogo)"
- name: "bios7.bin"
@@ -38,8 +36,7 @@ files:
required: false
hle_fallback: true
size: 16384
md5: "df692a80a5b1bc90728bc3dfc76cd948"
source_ref: "src/memory.cpp:144-156, src/memory.h:74"
source_ref: "src/memory.cpp:144-155"
notes: "HLE fallback for all SWI calls; native needed for firmware boot"
- name: "firmware.bin"
@@ -47,7 +44,7 @@ files:
description: "NDS firmware image"
required: false
hle_fallback: true
source_ref: "src/spi.cpp:62-160, src/settings.cpp:42"
source_ref: "src/spi.cpp:62-160"
notes: "Auto-generated 128KB non-bootable firmware as fallback; native dump (>128KB) needed for firmware boot"
- name: "gba_bios.bin"
@@ -56,6 +53,12 @@ files:
required: false
hle_fallback: true
size: 16384
md5: "a860e8c0b6d573d191e4ec7db1b1e4f6"
source_ref: "src/memory.cpp:158-169, src/memory.h:75, src/core.cpp:244-252"
notes: "HLE fallback via swiTableGba; native BIOS disables HLE and enables real GBA boot (core.cpp:244-247)"
source_ref: "src/memory.cpp:158-168, src/core.cpp:252-256"
notes: "HLE fallback via swiTableGba; native BIOS disables HLE and enables real GBA boot"
- name: "nds_sd_card.bin"
system: nintendo-ds
description: "DLDI SD card image for homebrew"
required: false
source_ref: "src/dldi.cpp:80-83, src/libretro/libretro.cpp:331"
notes: "Opened on DLDI startup() call from homebrew ROMs; user-created FAT image"

View File

@@ -1,8 +1,16 @@
emulator: "parallel_n64"
type: alias
alias_of: "mupen64plus"
profiled_date: "2026-03-18"
emulator: "ParaLLEl N64"
type: libretro
source: "https://github.com/libretro/parallel-n64"
profiled_date: "2026-03-24"
core_version: "2.0-rc2"
display_name: "Nintendo - Nintendo 64 (ParaLLEl N64)"
note: "This core uses the same BIOS/firmware as mupen64plus. See emulators/mupen64plus.yml for details."
files: []
systems: [nintendo-64, nintendo-64dd]
cores: [parallel_n64, parallel_n64_debug]
# Needs full source-verified profiling. Minimal profile based on known file paths.
files:
- name: "64DD_IPL.bin"
path: "64DD_IPL.bin"
required: false
note: "64DD IPL ROM. Only needed for N64 Disk Drive games"