feat: re-profile 40 emulators from fbalpha2012 to holani

This commit is contained in:
Abdessamad Derraz
2026-03-24 09:33:06 +01:00
parent 65b6ab9354
commit 4c1caea621
41 changed files with 708 additions and 773 deletions

View File

@@ -1,5 +1,5 @@
{ {
"generated_at": "2026-03-23T14:00:42Z", "generated_at": "2026-03-23T20:32:26Z",
"total_files": 6733, "total_files": 6733,
"total_size": 5288642642, "total_size": 5288642642,
"files": { "files": {
@@ -88619,6 +88619,24 @@
"dmg0_rom.bin": [ "dmg0_rom.bin": [
"1db57a1e8b6e4096f811587f9eab0c6675fd9755" "1db57a1e8b6e4096f811587f9eab0c6675fd9755"
], ],
"dc_flash_wb.bin": [
"72c65f2a11ee7b72b77b9945187b7a332632e14a"
],
"dc_flash.bin.bin": [
"72c65f2a11ee7b72b77b9945187b7a332632e14a"
],
"naomi_bios.bin": [
"6d27d71aec4dfba98f66316ae74a1426d567698a"
],
"naomi_boot.bin.bin": [
"6d27d71aec4dfba98f66316ae74a1426d567698a"
],
"naomi_bios.bin.bin": [
"6d27d71aec4dfba98f66316ae74a1426d567698a"
],
"epr-21576d.bin": [
"6d27d71aec4dfba98f66316ae74a1426d567698a"
],
"cgb0_boot.bin": [ "cgb0_boot.bin": [
"1293d68bf9643bc4f36954c1e80e38f39864528d" "1293d68bf9643bc4f36954c1e80e38f39864528d"
], ],
@@ -108934,6 +108952,8 @@
"b4f14e58030ed40fff2dc312b58ea4440bdf8cc5", "b4f14e58030ed40fff2dc312b58ea4440bdf8cc5",
"c65592330c9dd84011151daed52f9aec926b7e56", "c65592330c9dd84011151daed52f9aec926b7e56",
"1db57a1e8b6e4096f811587f9eab0c6675fd9755", "1db57a1e8b6e4096f811587f9eab0c6675fd9755",
"72c65f2a11ee7b72b77b9945187b7a332632e14a",
"6d27d71aec4dfba98f66316ae74a1426d567698a",
"1293d68bf9643bc4f36954c1e80e38f39864528d", "1293d68bf9643bc4f36954c1e80e38f39864528d",
"369e6eb5e0c975eaa52a4a3f6ee07b2a3c3c16de", "369e6eb5e0c975eaa52a4a3f6ee07b2a3c3c16de",
"f282b3aaf98f8423dab7d77f1aa0192be630f2fb", "f282b3aaf98f8423dab7d77f1aa0192be630f2fb",

View File

@@ -3,7 +3,7 @@ type: libretro
core_classification: frozen_snapshot core_classification: frozen_snapshot
source: "https://github.com/libretro/fbalpha2012" source: "https://github.com/libretro/fbalpha2012"
upstream: "https://www.fbalpha.com" upstream: "https://www.fbalpha.com"
profiled_date: "2026-03-19" profiled_date: "2026-03-23"
core_version: "v0.2.97.29" core_version: "v0.2.97.29"
display_name: "Arcade (FB Alpha 2012)" display_name: "Arcade (FB Alpha 2012)"
cores: cores:
@@ -19,7 +19,6 @@ systems:
notes: | notes: |
Frozen snapshot of Final Burn Alpha v0.2.97.29 (circa 2012), full version. Frozen snapshot of Final Burn Alpha v0.2.97.29 (circa 2012), full version.
Supports CPS-1, CPS-2, CPS-3, Neo Geo, PGM, Sega, Cave, Toaplan, and more. Supports CPS-1, CPS-2, CPS-3, Neo Geo, PGM, Sega, Cave, Toaplan, and more.
Exists for RAM-constrained platforms. Most users should use FBNeo.
Multiple arcade systems have BIOS ROMs marked BRF_BIOS in source: Multiple arcade systems have BIOS ROMs marked BRF_BIOS in source:
@@ -46,15 +45,80 @@ notes: |
All BIOS files are part of their respective game ROM set ZIPs (arcade standard). All BIOS files are part of their respective game ROM set ZIPs (arcade standard).
None are standalone system directory files. The .info note "BIOS files must be None are standalone system directory files. The .info note "BIOS files must be
inside the ROM directory" refers to the ROM directory containing the game ZIPs, inside the ROM directory" refers to the ROM directory containing the game ZIPs,
which already include their BIOS — no separate action needed by the user. which already include their BIOS.
ROM path: g_rom_dir from content path. g_system_dir set but unused. ROM path: g_rom_dir from content path.
Extensions: iso|zip|7z. need_fullpath=true, block_extract=true. Sample path: g_system_dir/fba2012/samples/ (samples.cpp:248).
Hiscore path: g_save_dir/hiscore.dat (hiscore.cpp:411).
files: files:
- name: "hiscore.dat" - name: "hiscore.dat"
description: "High score persistence database"
required: false required: false
note: "High score database, loaded from save directory"
source_ref: "svn-current/trunk/src/burn/hiscore.cpp:411" source_ref: "svn-current/trunk/src/burn/hiscore.cpp:411"
note: "Loaded from save directory (g_save_dir). Gated by EnableHiscores core option and per-game BDF_HISCORE_SUPPORTED flag."
- name: "dkong.zip"
path: "fba2012/samples/dkong.zip"
description: "Donkey Kong audio samples"
required: false
category: game_data
source_ref: "svn-current/trunk/src/burn/snd/samples.cpp:248,262"
note: "WAV samples for Donkey Kong and clones (dkongo, dkongj, dkongjo, dkongjo1, dkongf, dkongx, dkongx11)"
- name: "dkongjr.zip"
path: "fba2012/samples/dkongjr.zip"
description: "Donkey Kong Jr audio samples"
required: false
category: game_data
source_ref: "svn-current/trunk/src/burn/snd/samples.cpp:248,262"
note: "WAV samples for Donkey Kong Jr and clones (dkongjrj, dkongjnrj, dkongjrb, jrking, dkingjr, dkongjre)"
- name: "galaga.zip"
path: "fba2012/samples/galaga.zip"
description: "Galaga audio samples"
required: false
category: game_data
source_ref: "svn-current/trunk/src/burn/snd/samples.cpp:248,262"
note: "WAV samples for Galaga and clones (galagao, galagamw, galagamk, galagamf, gallag)"
- name: "rallyx.zip"
path: "fba2012/samples/rallyx.zip"
description: "Rally-X audio samples"
required: false
category: game_data
source_ref: "svn-current/trunk/src/burn/snd/samples.cpp:248,262"
note: "WAV samples for Rally-X and clones (rallyxa, rallyxm, rallyxmr, nrallyx)"
- name: "ghox.zip"
path: "fba2012/samples/ghox.zip"
description: "Ghox audio samples"
required: false
category: game_data
source_ref: "svn-current/trunk/src/burn/snd/samples.cpp:248,262"
note: "WAV samples for Ghox and Ghox (joystick). Substitutes undumped MCU sound."
- name: "fireshrk.zip"
path: "fba2012/samples/fireshrk.zip"
description: "Fire Shark / Same! Same! Same! audio samples"
required: false
category: game_data
source_ref: "svn-current/trunk/src/burn/snd/samples.cpp:248,262"
note: "WAV samples for Fire Shark and clones (fireshrkd, fireshrkdh, samesame, samesame2)"
- name: "tekipaki.zip"
path: "fba2012/samples/tekipaki.zip"
description: "Teki Paki audio samples"
required: false
category: game_data
source_ref: "svn-current/trunk/src/burn/snd/samples.cpp:248,262"
- name: "vimana.zip"
path: "fba2012/samples/vimana.zip"
description: "Vimana audio samples"
required: false
category: game_data
source_ref: "svn-current/trunk/src/burn/snd/samples.cpp:248,262"
note: "WAV samples for Vimana and clones (vimanan, vimanaj)"
exclusion_note: "All BIOS ROMs (Neo Geo, PGM, CPS-3, Sega) are inside game ROM set ZIPs, not standalone system files. neogeo.zip is a parent ROM set loaded automatically by the emulator when a Neo Geo game is started." exclusion_note: "All BIOS ROMs (Neo Geo, PGM, CPS-3, Sega) are inside game ROM set ZIPs, not standalone system files. neogeo.zip is a parent ROM set loaded automatically by the emulator when a Neo Geo game is started."

View File

@@ -3,7 +3,7 @@ type: libretro
core_classification: frozen_snapshot core_classification: frozen_snapshot
source: "https://github.com/libretro/fbalpha2012_cps2" source: "https://github.com/libretro/fbalpha2012_cps2"
upstream: "https://www.fbalpha.com" upstream: "https://www.fbalpha.com"
profiled_date: "2026-03-19" profiled_date: "2026-03-23"
core_version: "v0.2.97.28" core_version: "v0.2.97.28"
display_name: "Arcade (FB Alpha 2012 CPS-2)" display_name: "Arcade (FB Alpha 2012 CPS-2)"
cores: cores:
@@ -13,32 +13,25 @@ systems:
notes: | notes: |
Frozen snapshot of Final Burn Alpha v0.2.97.28 (circa 2012), CPS-2 only. Frozen snapshot of Final Burn Alpha v0.2.97.28 (circa 2012), CPS-2 only.
Exists for RAM-constrained platforms (3DS, embedded). Most users should use FBNeo. Exists for RAM-constrained platforms (3DS, embedded).
CPS-2 has no system BIOS. Each game's ROM set is self-contained: CPS-2 has no system BIOS. Each game's ROM set is self-contained:
68000 program ROMs + Z80 sound program + GFX ROMs + QSound samples. 68000 program ROMs + Z80 sound program + GFX ROMs + QSound samples.
Zero BRF_BIOS entries in entire codebase. No BRF_OPT entries either
(PLD references stripped from this CPS-2-only build).
QSound is emulated in software (qs_c.c:QscInit, panning table + DSP emulation). QSound emulated in software (qs_c.c). No external QSound DSP ROM needed.
No external QSound DSP ROM (dl-1425.bin) needed — unlike MAME, FBA emulates All audio data loaded from game ROM ZIP.
the QSound chip directly without requiring the DSP program ROM.
Z80 sound program loaded from game ROM set into CpsZRom buffer (cps.c:451, ROMs loaded from content directory (g_rom_dir, libretro.cpp:969).
BurnLoadRom). QSound samples loaded into CpsQSam. All from the game ZIP. g_system_dir used only for hiscore.dat (hiscore.c:228-232).
Board PLDs (buf1, ioa1, prg2, rom1) referenced via A_BOARD_QSOUND_PLDS Hiscore support gated by fba2012cps2_hiscores core option
macro, all marked BRF_OPT. GAL/PAL dumps for hardware preservation only. (libretro.cpp:561-563) and per-game BDF_HISCORE_SUPPORTED flag.
Zero BRF_BIOS entries in entire codebase.
ROM path: ROMs loaded from content directory (g_rom_dir, libretro.cpp).
g_system_dir is set (line 988) but never used for any file loading.
The .info note "BIOS files must be inside the ROM directory" is misleading —
there are no BIOS files for CPS-2. Generic note across all FBA cores.
need_fullpath=true, block_extract=true, extensions=zip.
files: files:
- name: "hiscore.dat" - name: "hiscore.dat"
description: "High score persistence database"
required: false required: false
note: "High score database, loaded from save directory" source_ref: "src/burn/hiscore.c:228-232"
source_ref: "src/burn/hiscore.c" note: "Loaded from <system_dir>/fbalpha2012/hiscore.dat"

View File

@@ -3,7 +3,7 @@ type: libretro
core_classification: frozen_snapshot core_classification: frozen_snapshot
source: "https://github.com/libretro/fbalpha2012_cps3" source: "https://github.com/libretro/fbalpha2012_cps3"
upstream: "https://www.fbalpha.com" upstream: "https://www.fbalpha.com"
profiled_date: "2026-03-19" profiled_date: "2026-03-23"
core_version: "v0.2.97.29" core_version: "v0.2.97.29"
display_name: "Arcade (FB Alpha 2012 CPS-3)" display_name: "Arcade (FB Alpha 2012 CPS-3)"
cores: cores:
@@ -52,8 +52,9 @@ notes: |
files: files:
- name: "hiscore.dat" - name: "hiscore.dat"
description: "High score persistence database"
required: false required: false
note: "High score database, loaded from save directory" source_ref: "svn-current/trunk/src/burn/hiscore.cpp:116-118"
source_ref: "svn-current/trunk/src/burn/hiscore.cpp:411" note: "Loaded from save directory (g_save_dir)"
exclusion_note: "CPS-3 BIOS ROMs (SH-2 flash, 18 variants) are part of each game's ROM set ZIP archive, not standalone system files. Users obtain them as part of the arcade ROM set, not separately." exclusion_note: "CPS-3 BIOS ROMs (SH-2 flash, 18 variants) are part of each game's ROM set ZIP archive, not standalone system files. Users obtain them as part of the arcade ROM set, not separately."

View File

@@ -3,7 +3,7 @@ type: libretro
core_classification: frozen_snapshot core_classification: frozen_snapshot
source: "https://github.com/libretro/fbalpha2012_neogeo" source: "https://github.com/libretro/fbalpha2012_neogeo"
upstream: "https://www.fbalpha.com" upstream: "https://www.fbalpha.com"
profiled_date: "2026-03-21" profiled_date: "2026-03-23"
core_version: "v0.2.97.29" core_version: "v0.2.97.29"
display_name: "Arcade (FB Alpha 2012 Neo Geo)" display_name: "Arcade (FB Alpha 2012 Neo Geo)"
cores: cores:
@@ -34,7 +34,7 @@ notes: |
neodebug.bin 0x698ebb7d Development Kit neodebug.bin 0x698ebb7d Development Kit
sp-1v1_3db8c.bin 0x162f0ebe Deck ver. 6 (Git Ver 1.3) sp-1v1_3db8c.bin 0x162f0ebe Deck ver. 6 (Git Ver 1.3)
uni-bios_4_0.rom 0xa7aab458 Universe BIOS 4.0 uni-bios_4_0.rom 0xa7aab458 Universe BIOS 4.0
(+ Universe BIOS 1.0-3.3, 15 versions) (+ 14 more Universe BIOS variants, versions 1.0-3.3)
neopen.sp1 0xcb915e76 NeoOpen BIOS v0.1 beta neopen.sp1 0xcb915e76 NeoOpen BIOS v0.1 beta
System ROMs (always required): System ROMs (always required):

View File

@@ -4,7 +4,7 @@ core_classification: official_port
source: "https://github.com/libretro/FBNeo" source: "https://github.com/libretro/FBNeo"
upstream: "https://github.com/finalburnneo/FBNeo" upstream: "https://github.com/finalburnneo/FBNeo"
logo: "https://raw.githubusercontent.com/finalburnneo/FBNeo/master/projectfiles/xcode/Emulator/Assets.xcassets/AppIcon.appiconset/icon_512.png" logo: "https://raw.githubusercontent.com/finalburnneo/FBNeo/master/projectfiles/xcode/Emulator/Assets.xcassets/AppIcon.appiconset/icon_512.png"
profiled_date: "2026-03-21" profiled_date: "2026-03-23"
core_version: "v1.0.0.03" core_version: "v1.0.0.03"
display_name: "Arcade (FinalBurn Neo)" display_name: "Arcade (FinalBurn Neo)"
cores: cores:
@@ -101,6 +101,7 @@ files:
source_ref: "src/burn/drv/neogeo/d_neogeo.cpp:1606" source_ref: "src/burn/drv/neogeo/d_neogeo.cpp:1606"
- name: "sp-u2.sp1" - name: "sp-u2.sp1"
aliases: ["usa_2slt.bin"]
archive: neogeo.zip archive: neogeo.zip
system: snk-neogeo-mvs system: snk-neogeo-mvs
required: false required: false
@@ -418,48 +419,6 @@ files:
note: "Zoom lookup table" note: "Zoom lookup table"
source_ref: "src/burn/drv/neogeo/d_neogeo.cpp:1654" source_ref: "src/burn/drv/neogeo/d_neogeo.cpp:1654"
# -------------------------------------------------------
# Trackball BIOS (for irrmaze)
# -------------------------------------------------------
- name: "236-bios.sp1"
archive: neogeo.zip
system: snk-neogeo-mvs
required: false
size: 131072
crc32: "853e6b96"
note: "Trackball BIOS / Asia MV1B 263"
source_ref: "src/burn/drv/neogeo/d_neogeo.cpp:1744"
- name: "236-bios_japan_hack.sp1"
archive: neogeo.zip
system: snk-neogeo-mvs
required: false
size: 131072
crc32: "02bf4426"
note: "Trackball BIOS / Japan (hack)"
source_ref: "src/burn/drv/neogeo/d_neogeo.cpp:1745"
# -------------------------------------------------------
# Neo Geo PCB BIOS (for ms5pcb, svcpcb, kf2k3pcb games)
# -------------------------------------------------------
- name: "sp-4x.sp1"
archive: neogeo.zip
system: snk-neogeo-mvs
required: false
size: 524288
crc32: "b4590283"
note: "PCB BIOS for Metal Slug 5 PCB and SVC Chaos PCB"
source_ref: "src/burn/drv/neogeo/d_neogeo.cpp:1791"
- name: "spj.sp1"
archive: neogeo.zip
system: snk-neogeo-mvs
required: false
size: 524288
crc32: "148dd727"
note: "PCB BIOS for KOF 2003 PCB"
source_ref: "src/burn/drv/neogeo/d_neogeo.cpp:1879"
# ------------------------------------------------------- # -------------------------------------------------------
# Neo Geo CDZ (neocdz.zip) # Neo Geo CDZ (neocdz.zip)
# ------------------------------------------------------- # -------------------------------------------------------

View File

@@ -3,7 +3,7 @@ type: libretro
core_classification: official_port core_classification: official_port
source: "https://github.com/libretro/FBNeo" source: "https://github.com/libretro/FBNeo"
upstream: "https://github.com/finalburnneo/FBNeo" upstream: "https://github.com/finalburnneo/FBNeo"
profiled_date: "2026-03-22" profiled_date: "2026-03-23"
core_version: "v1.0.0.03" core_version: "v1.0.0.03"
display_name: "Arcade (FinalBurn Neo) (CPS-1 / CPS-2)" display_name: "Arcade (FinalBurn Neo) (CPS-1 / CPS-2)"
cores: cores:

View File

@@ -3,7 +3,7 @@ type: libretro
core_classification: official_port core_classification: official_port
source: "https://github.com/libretro/FBNeo" source: "https://github.com/libretro/FBNeo"
upstream: "https://github.com/finalburnneo/FBNeo" upstream: "https://github.com/finalburnneo/FBNeo"
profiled_date: "2026-03-21" profiled_date: "2026-03-23"
core_version: "v1.0.0.03" core_version: "v1.0.0.03"
display_name: "Arcade (FinalBurn Neo) (Neo-Geo)" display_name: "Arcade (FinalBurn Neo) (Neo-Geo)"
cores: cores:
@@ -70,6 +70,7 @@ files:
source_ref: "src/burn/drv/neogeo/d_neogeo.cpp:1606" source_ref: "src/burn/drv/neogeo/d_neogeo.cpp:1606"
- name: "sp-u2.sp1" - name: "sp-u2.sp1"
aliases: ["usa_2slt.bin"]
archive: neogeo.zip archive: neogeo.zip
system: snk-neogeo-mvs system: snk-neogeo-mvs
required: false required: false
@@ -358,25 +359,6 @@ files:
note: "NeoOpen BIOS v0.1 beta" note: "NeoOpen BIOS v0.1 beta"
source_ref: "src/burn/drv/neogeo/d_neogeo.cpp:1645" source_ref: "src/burn/drv/neogeo/d_neogeo.cpp:1645"
# Trackball BIOS
- name: "236-bios.sp1"
archive: neogeo.zip
system: snk-neogeo-mvs
required: false
size: 131072
crc32: "853e6b96"
note: "Trackball BIOS / Asia MV1B 263"
source_ref: "src/burn/drv/neogeo/d_neogeo.cpp:1744"
- name: "236-bios_japan_hack.sp1"
archive: neogeo.zip
system: snk-neogeo-mvs
required: false
size: 131072
crc32: "02bf4426"
note: "Trackball BIOS / Japan (hack)"
source_ref: "src/burn/drv/neogeo/d_neogeo.cpp:1745"
# Neo Geo shared ROMs (always required) # Neo Geo shared ROMs (always required)
- name: "sm1.sm1" - name: "sm1.sm1"
archive: neogeo.zip archive: neogeo.zip
@@ -405,25 +387,6 @@ files:
note: "Zoom lookup table" note: "Zoom lookup table"
source_ref: "src/burn/drv/neogeo/d_neogeo.cpp:1654" source_ref: "src/burn/drv/neogeo/d_neogeo.cpp:1654"
# PCB BIOS
- name: "sp-4x.sp1"
archive: neogeo.zip
system: snk-neogeo-mvs
required: false
size: 524288
crc32: "b4590283"
note: "PCB BIOS"
source_ref: "src/burn/drv/neogeo/d_neogeo.cpp:1791"
- name: "spj.sp1"
archive: neogeo.zip
system: snk-neogeo-mvs
required: false
size: 524288
crc32: "148dd727"
note: "PCB BIOS (Japan)"
source_ref: "src/burn/drv/neogeo/d_neogeo.cpp:1879"
# ------------------------------------------------------- # -------------------------------------------------------
# Neo Geo CDZ (neocdz.zip) # Neo Geo CDZ (neocdz.zip)
# ------------------------------------------------------- # -------------------------------------------------------

View File

@@ -1,8 +1,9 @@
emulator: FCEUmm emulator: FCEUmm
type: libretro type: libretro
core_classification: pure_libretro core_classification: community_fork
source: "https://github.com/libretro/libretro-fceumm" source: "https://github.com/libretro/libretro-fceumm"
profiled_date: "2026-03-21" upstream: "https://sourceforge.net/projects/fceumm/"
profiled_date: "2026-03-23"
core_version: "SVN" core_version: "SVN"
display_name: "Nintendo - NES / Famicom (FCEUmm)" display_name: "Nintendo - NES / Famicom (FCEUmm)"
cores: cores:
@@ -10,18 +11,14 @@ cores:
systems: [nintendo-nes, nintendo-fds] systems: [nintendo-nes, nintendo-fds]
notes: | notes: |
FCEUmm (FCE Ultra mappers modified) is a NES/Famicom emulator. FCEUmm (FCE Ultra mappers modified) is a NES/Famicom emulator forked from
NES cartridge games need no BIOS. Famicom Disk System games require FCEU Ultra by CaH4e3. FDS games require the FDS BIOS ROM (disksys.rom).
the FDS BIOS ROM (disksys.rom, 8 KB) loaded from the system directory. Game Genie emulation requires gamegenie.nes when the core option is enabled.
Game Genie emulation is an optional core feature (disabled by default) An external palette file (nes.pal) overrides the built-in palette when the
that requires gamegenie.nes in the system directory. core option is set to Custom.
An optional external palette file (nes.pal, 192 bytes, 64 RGB triplets)
can override the built-in NES palette when the core option is set to Custom.
NstDatabase.xml is NOT used by FCEUmm (that is Nestopia's database).
File path construction: src/general.c FCEU_MakeFName() joins the File path construction: src/general.c FCEU_MakeFName() joins the system
system directory (RETRO_ENVIRONMENT_GET_SYSTEM_DIRECTORY) with each directory with each filename directly - no subdirectories.
filename directly - no subdirectories.
files: files:
# --- Famicom Disk System BIOS (required for FDS games) --- # --- Famicom Disk System BIOS (required for FDS games) ---
@@ -30,29 +27,22 @@ files:
description: "FDS BIOS ROM" description: "FDS BIOS ROM"
required: true required: true
size: 8192 size: 8192
md5: "ca30b50f880eb660a320674ed365ef7a" validation: [size]
sha1: "57fe1bdee955bb48d357e463ccbf129496930b62"
source_ref: "src/fds.c:636-667 (FDSLoad), src/general.c:64-66 (FCEUMKF_FDSROM)" source_ref: "src/fds.c:636-667 (FDSLoad), src/general.c:64-66 (FCEUMKF_FDSROM)"
notes: "Loaded at 0xE000, mapped as 8 KB PRG bank 0. Load fails with error if missing or short read." notes: "Loaded at 0xE000, mapped as 8 KB PRG bank 0. Load fails if missing or short read."
# --- Game Genie ROM (optional, core option fceumm_game_genie) --- # --- Game Genie ROM (optional, core option fceumm_game_genie) ---
- name: "gamegenie.nes" - name: "gamegenie.nes"
system: nintendo-nes system: nintendo-nes
description: "Game Genie add-on cartridge ROM" description: "Game Genie add-on cartridge ROM"
required: false required: false
size: 24592 source_ref: "src/cart.c:344-398 (FCEU_OpenGenie), src/general.c:60-62 (FCEUMKF_GGROM)"
md5: "7f98d77d7a094ad7d069b74bd553ec98" notes: "iNES format ROM (4 KB PRG + 256 bytes CHR). Core option disabled by default. Only applies to cartridge games."
sha1: "f430a0d752a9fa0c7032db8131f9090d18f71779"
source_ref: "src/cart.c:351-389 (OpenGenie), src/general.c:60-62 (FCEUMKF_GGROM)"
notes: "iNES format ROM (4 KB PRG + 256 bytes CHR). Core option disabled by default. Does not apply to FDS or arcade content."
# --- Custom palette (optional, core option fceumm_palette) --- # --- Custom palette (optional, core option fceumm_palette) ---
- name: "nes.pal" - name: "nes.pal"
system: nintendo-nes system: nintendo-nes
description: "External NES color palette" description: "External NES color palette"
required: false required: false
size: 192 source_ref: "src/palette.c:170-200 (FCEU_LoadGamePalette), src/general.c:68-70 (FCEUMKF_PALETTE), src/drivers/libretro/libretro.c:1789-1798"
md5: "aaf3666e4ed478e2964b46d6a7aa27ad" notes: "RGB triplets (64 standard or 512 with de-emphasis). Only loaded when palette core option is set to Custom."
sha1: "37027d92e1015b82a7dc5c43e9f1649a961577ab"
source_ref: "src/general.c:68-70 (FCEUMKF_PALETTE), src/drivers/libretro/libretro.c:1791"
notes: "64 RGB triplets (64 x 3 bytes). Only loaded when palette core option is set to Custom. Multiple valid palettes exist."

View File

@@ -1,7 +1,9 @@
emulator: FFmpeg emulator: FFmpeg
type: utility type: utility
source: "https://github.com/libretro/RetroArch" core_classification: pure_libretro
profiled_date: "2026-03-18" source: "https://github.com/libretro/FFmpeg"
upstream: "https://www.ffmpeg.org/"
profiled_date: "2026-03-23"
core_version: "Git" core_version: "Git"
display_name: "FFmpeg" display_name: "FFmpeg"
cores: cores:
@@ -9,11 +11,8 @@ cores:
systems: [] systems: []
notes: | notes: |
FFmpeg core is a media player built into RetroArch using libavcodec, Media player core using libavcodec, libavformat, and libswscale.
libavformat, and libswscale. Plays video and audio files directly Plays video and audio files within RetroArch with an audio visualizer.
within the RetroArch interface. No external files required. Codecs are linked at build time.
No BIOS or system files required. Codec support depends on the
FFmpeg libraries linked at build time.
files: [] files: []

View File

@@ -1,8 +1,9 @@
emulator: fixGB emulator: fixGB
type: libretro type: libretro
core_classification: pure_libretro core_classification: official_port
source: "https://github.com/libretro/fixGB" source: "https://github.com/libretro/fixGB"
profiled_date: "2026-03-21" upstream: "https://github.com/FIX94/fixGB"
profiled_date: "2026-03-23"
core_version: "Alpha v0.8.2" core_version: "Alpha v0.8.2"
display_name: "Nintendo - Game Boy / Color (fixGB)" display_name: "Nintendo - Game Boy / Color (fixGB)"
cores: cores:
@@ -11,37 +12,27 @@ systems:
- nintendo-gbc - nintendo-gbc
notes: | notes: |
fixGB is a Game Boy / Game Boy Color emulator by FIX94, currently at Game Boy / Game Boy Color emulator by FIX94. Supports .gb, .gbc, and
Alpha v0.8.2. It supports .gb, .gbc, and .gbs (Game Boy Sound) files. .gbs (Game Boy Sound) files. FIX94 maintains both standalone and
libretro versions in the same upstream repo.
The core optionally loads "gbc_bios.bin" (CGB boot ROM) from the Optionally loads gbc_bios.bin from the system directory. Validates
system directory. In the libretro port, doOpenCGBBootrom() in file size (>= 0x900 bytes), reads the first 0x900 bytes into
libretro.c:246-254 resolves the path via memCGBBootrom[], sets cgbBootromEnabled. Enables the GBC startup
RETRO_ENVIRONMENT_GET_SYSTEM_DIRECTORY + "/gbc_bios.bin". animation and palette selection for DMG games.
memInitCGBBootrom() in mem.c:567-586 validates the file: it must be Without the boot ROM, the core skips the boot sequence and starts
at least 0x900 (2304) bytes. If present, 0x900 bytes are read into games directly. No DMG boot ROM support in the source.
memCGBBootrom[] and cgbBootromEnabled is set to true. The boot ROM
plays the Game Boy Color startup animation before handing off to the
game.
If the file is missing or too small, the core skips the boot sequence
and starts games directly. The BIOS is optional -- games run fine
without it.
Despite the core name suggesting general Game Boy support, the only
BIOS file referenced is the GBC boot ROM. There is no DMG (original
Game Boy) boot ROM support in the source.
files: files:
# --- GBC boot ROM (optional, enables startup animation) ---
- name: "gbc_bios.bin" - name: "gbc_bios.bin"
system: nintendo-gbc system: nintendo-gbc
description: "Game Boy Color (CGB-001) boot ROM" description: "Game Boy Color (CGB-001) boot ROM"
required: false required: false
hle_fallback: true hle_fallback: true
size: 2304 size: 2304
validation: [size]
md5: "dbfce9db9deaa2567f6a84fde55f9680" md5: "dbfce9db9deaa2567f6a84fde55f9680"
sha1: "1293d68bf9643bc4f36954c1e80e38f39864528d" sha1: "1293d68bf9643bc4f36954c1e80e38f39864528d"
source_ref: "libretro/libretro.c:246-254 (doOpenCGBBootrom), mem.c:567-586 (memInitCGBBootrom)" source_ref: "libretro/libretro.c:246-254 (doOpenCGBBootrom), mem.c:567-586 (memInitCGBBootrom)"
notes: "Must be at least 0x900 (2304) bytes. Only the first 0x900 bytes are read. Enables cgbBootromEnabled flag for boot animation. Disabled via memDisableCGBBootrom() when register write occurs." notes: "Minimum 0x900 (2304) bytes. Only first 0x900 bytes read. Disabled via memDisableCGBBootrom() on register write."

View File

@@ -3,7 +3,7 @@ type: libretro
core_classification: official_port core_classification: official_port
source: "https://github.com/libretro/fixNES" source: "https://github.com/libretro/fixNES"
upstream: "https://github.com/FIX94/fixNES" upstream: "https://github.com/FIX94/fixNES"
profiled_date: "2026-03-21" profiled_date: "2026-03-23"
core_version: "Alpha v1.3.1" core_version: "Alpha v1.3.1"
display_name: "Nintendo - NES / Famicom (fixNES)" display_name: "Nintendo - NES / Famicom (fixNES)"
cores: cores:
@@ -16,20 +16,21 @@ notes: |
fixNES is an NES/Famicom emulator by FIX94 (same author as fixGB). fixNES is an NES/Famicom emulator by FIX94 (same author as fixGB).
FDS games require disksys.rom (8192 bytes) in the system directory. FDS games require disksys.rom (8192 bytes) in the system directory.
mapperInitFDS() in mapper.c:88-112 opens the file, validates exact mapperInitFDS() in mapper.c:87-110 opens the file, validates exact
size 0x2000, reads into fdsBIOS[]. Returns false if missing or wrong size 0x2000, reads into fdsBIOS[]. Returns false if missing or wrong
size — FDS game fails to load. size. No hash validation.
Regular NES cartridge games need no BIOS. Regular NES/NSF games need no BIOS.
No other system files loaded. system_dir accessed only for disksys.rom No other system files loaded. system_dir accessed only for disksys.rom
(libretro.c:278-286, doOpenFDSBIOS). (libretro/libretro.c:277-285, doOpenFDSBIOS).
files: files:
- name: "disksys.rom" - name: "disksys.rom"
description: "Family Computer Disk System BIOS"
system: nintendo-fds system: nintendo-fds
required: true required: true
mode: both mode: both
size: 8192 size: 8192
md5: "ca30b50f880eb660a320674ed365ef7a" validation: [size]
source_ref: "mapper.c:88-112 (mapperInitFDS), libretro/libretro.c:278-286 (doOpenFDSBIOS)" source_ref: "mapper.c:87-110 (mapperInitFDS), libretro/libretro.c:277-285 (doOpenFDSBIOS)"

View File

@@ -4,8 +4,8 @@ core_classification: official_port
source: "https://github.com/libretro/flycast" source: "https://github.com/libretro/flycast"
upstream: "https://github.com/flyinghead/flycast" upstream: "https://github.com/flyinghead/flycast"
logo: "https://raw.githubusercontent.com/flyinghead/flycast/master/shell/linux/flycast.png" logo: "https://raw.githubusercontent.com/flyinghead/flycast/master/shell/linux/flycast.png"
profiled_date: "2026-03-21" profiled_date: "2026-03-23"
core_version: "Git" core_version: "0.1"
display_name: "Sega - Dreamcast/Naomi (Flycast)" display_name: "Sega - Dreamcast/Naomi (Flycast)"
cores: cores:
- flycast - flycast
@@ -14,29 +14,34 @@ systems:
- sega-naomi - sega-naomi
- sega-naomi2 - sega-naomi2
- sega-atomiswave - sega-atomiswave
# sega-systemsp: supported by upstream but not by the libretro port
notes: | notes: |
Flycast has a built-in HLE BIOS (reios) for Dreamcast that can boot most Flycast has a built-in HLE BIOS (reios) for Dreamcast that can boot most
games without real BIOS files. Arcade systems (NAOMI, NAOMI2, Atomiswave, games without real BIOS files. Arcade systems (NAOMI, Atomiswave) require
System SP) require MAME-format BIOS ROM archives. MAME-format BIOS ROM archives.
Hikaru and Triforce are NOT supported by Flycast.
The libretro port (libretro/flycast, last updated 2025-12-12) is significantly
behind upstream (flyinghead/flycast). Key divergences:
- NAOMI 2 has no separate BIOS entry or platform detection; NAOMI 2 games
run as NAOMI using naomi.zip. Upstream has naomi2.zip with dedicated ROMs.
- System SP is not supported. Upstream has segasp.zip support.
- The n2_ prefix for NAOMI 2 flat boot ROMs is dead code (DC_PLATFORM_NAOMI2
is never assigned to settings.System in the libretro port).
- Flash search includes legacy names (%flash_wb.bin, %flash.bin, %flash.bin.bin)
that upstream has removed.
- NAOMI flat boot ROM search includes epr-21576d.bin fallback not in upstream.
BIOS file search uses prefix + name pattern. The libretro port appends "dc/" BIOS file search uses prefix + name pattern. The libretro port appends "dc/"
to the system directory (libretro.cpp:1866). All files below are relative to the system directory (libretro.cpp:1866). All files below are relative
to system_dir/dc/. to system_dir/dc/.
File loading logic: core/hw/flashrom/nvmem.cpp loadFiles() and
core/hw/naomi/naomi_cart.cpp loadBios().
The prefix is determined by platform (sb_mem.cpp:32-49): The prefix is determined by platform (sb_mem.cpp:32-49):
Dreamcast -> dc_ Dreamcast -> dc_
Dev Unit -> hkt_ Dev Unit -> hkt_
NAOMI -> naomi_ NAOMI -> naomi_
NAOMI 2 -> n2_ (libretro port; upstream uses naomi2_)
Atomiswave -> (no prefix, BIOS loaded from awbios.zip) Atomiswave -> (no prefix, BIOS loaded from awbios.zip)
Boot ROM search pattern (sb_mem.cpp:57): Boot ROM search pattern (sb_mem.cpp:51-68):
{prefix}boot.bin, {prefix}boot.bin.bin, {prefix}bios.bin, {prefix}bios.bin.bin {prefix}boot.bin, {prefix}boot.bin.bin, {prefix}bios.bin, {prefix}bios.bin.bin
NAOMI also tries: epr-21576d.bin (sb_mem.cpp:59) NAOMI also tries: epr-21576d.bin (sb_mem.cpp:59)
Flash/NVRAM search pattern (sb_mem.cpp:231): Flash/NVRAM search pattern (sb_mem.cpp:231):
@@ -48,59 +53,42 @@ files:
# ------------------------------------------------------- # -------------------------------------------------------
- name: "dc_boot.bin" - name: "dc_boot.bin"
path: "dc/dc_boot.bin" path: "dc/dc_boot.bin"
system: sega-dreamcast aliases: ["dc_bios.bin", "dc_boot.bin.bin", "dc_bios.bin.bin"]
required: false
hle_fallback: true
size: 2097152 # 2 MB
note: "Dreamcast boot ROM. HLE BIOS (reios) used as fallback."
source_ref: "core/hw/flashrom/nvmem.cpp:287"
- name: "dc_bios.bin"
path: "dc/dc_bios.bin"
system: sega-dreamcast system: sega-dreamcast
required: false required: false
hle_fallback: true hle_fallback: true
size: 2097152 size: 2097152
note: "Alternate name for Dreamcast boot ROM." note: "Dreamcast boot ROM. HLE BIOS (reios) used as fallback. Code searches prefix + boot.bin, boot.bin.bin, bios.bin, bios.bin.bin sequentially."
source_ref: "core/hw/flashrom/nvmem.cpp:287" source_ref: "core/hw/holly/sb_mem.cpp:219,55-57"
- name: "dc_flash.bin"
path: "dc/dc_flash.bin"
system: sega-dreamcast
required: false
hle_fallback: true
size: 131072 # 128 KB
note: "Dreamcast flash memory. One of the nvmem search names."
source_ref: "core/hw/holly/sb_mem.cpp:231"
- name: "dc_nvmem.bin" - name: "dc_nvmem.bin"
path: "dc/dc_nvmem.bin" path: "dc/dc_nvmem.bin"
aliases: ["dc_flash_wb.bin", "dc_flash.bin", "dc_flash.bin.bin"]
system: sega-dreamcast system: sega-dreamcast
required: false required: false
hle_fallback: true hle_fallback: true
size: 131072 size: 131072
note: "Dreamcast NVRAM (primary search name for flash)." note: "Dreamcast flash memory / NVRAM. Created if not found. Code searches prefix + nvmem.bin, flash_wb.bin, flash.bin, flash.bin.bin sequentially."
source_ref: "core/hw/holly/sb_mem.cpp:231" source_ref: "core/hw/holly/sb_mem.cpp:231,196-213"
- name: "dc_flash_wb.bin" - name: "font.bin"
path: "dc/dc_flash_wb.bin" path: "dc/font.bin"
system: sega-dreamcast system: sega-dreamcast
required: false required: false
hle_fallback: true note: "Dreamcast system font for HLE BIOS text rendering. Built-in font used as fallback."
size: 131072 source_ref: "core/reios/reios.cpp:736-754"
note: "Dreamcast flash writeback."
source_ref: "core/hw/holly/sb_mem.cpp:231"
# ------------------------------------------------------- # -------------------------------------------------------
# Sega NAOMI # Sega NAOMI
# ------------------------------------------------------- # -------------------------------------------------------
- name: "naomi_boot.bin" - name: "naomi_boot.bin"
path: "dc/naomi_boot.bin" path: "dc/naomi_boot.bin"
aliases: ["naomi_bios.bin", "naomi_boot.bin.bin", "naomi_bios.bin.bin", "epr-21576d.bin"]
system: sega-naomi system: sega-naomi
required: false required: false
size: 2097152 # 2 MB size: 2097152
note: "NAOMI boot ROM (flat binary). Alternative to naomi.zip." note: "NAOMI boot ROM (flat binary). Alternative to naomi.zip. epr-21576d.bin is searched without prefix."
source_ref: "core/hw/flashrom/nvmem.cpp:287" source_ref: "core/hw/holly/sb_mem.cpp:219,58-59"
- name: "naomi.zip" - name: "naomi.zip"
path: "dc/naomi.zip" path: "dc/naomi.zip"
@@ -110,66 +98,43 @@ files:
NAOMI system BIOS archive (MAME format). Contains region-specific NAOMI system BIOS archive (MAME format). Contains region-specific
BIOS ROMs: epr-21576h.ic27 (Japan), epr-21577h.ic27 (USA), BIOS ROMs: epr-21576h.ic27 (Japan), epr-21577h.ic27 (USA),
epr-21578h.ic27 (Export), epr-21579d.ic27 (Korea). epr-21578h.ic27 (Export), epr-21579d.ic27 (Korea).
source_ref: "core/hw/naomi/naomi_roms.cpp:87-143" Also used for NAOMI 2 games in the libretro port (no separate naomi2.zip).
source_ref: "core/hw/naomi/naomi_roms.h:133-188"
# NAOMI special BIOS sets (game-specific, loaded from game archive or standalone)
- name: "airlbios.zip" - name: "airlbios.zip"
path: "dc/airlbios.zip" path: "dc/airlbios.zip"
system: sega-naomi system: sega-naomi
required: false required: false
note: "Airline Pilots Deluxe BIOS. epr-21802.ic27 (Export), epr-21801.ic27 (USA)." note: "Airline Pilots Deluxe BIOS. epr-21802.ic27 (Export), epr-21801.ic27 (USA)."
source_ref: "core/hw/naomi/naomi_roms.cpp:30-37" source_ref: "core/hw/naomi/naomi_roms.h:78-85"
- name: "f355bios.zip" - name: "f355bios.zip"
path: "dc/f355bios.zip" path: "dc/f355bios.zip"
system: sega-naomi system: sega-naomi
required: false required: false
note: "Ferrari F355 Challenge BIOS. Japan/USA/Export variants." note: "Ferrari F355 Challenge BIOS. Japan/USA/Export variants."
source_ref: "core/hw/naomi/naomi_roms.cpp:49-58" source_ref: "core/hw/naomi/naomi_roms.h:96-103"
- name: "f355dlx.zip" - name: "f355dlx.zip"
path: "dc/f355dlx.zip" path: "dc/f355dlx.zip"
system: sega-naomi system: sega-naomi
required: false required: false
note: "Ferrari F355 Challenge Deluxe BIOS. Japan/USA/Export variants." note: "Ferrari F355 Challenge Deluxe BIOS. Japan/USA/Export variants."
source_ref: "core/hw/naomi/naomi_roms.cpp:60-74" source_ref: "core/hw/naomi/naomi_roms.h:105-119"
- name: "hod2bios.zip" - name: "hod2bios.zip"
path: "dc/hod2bios.zip" path: "dc/hod2bios.zip"
system: sega-naomi system: sega-naomi
required: false required: false
note: "House of the Dead 2 BIOS. Japan/USA/Export variants." note: "House of the Dead 2 BIOS. Japan/USA/Export variants."
source_ref: "core/hw/naomi/naomi_roms.cpp:76-85" source_ref: "core/hw/naomi/naomi_roms.h:121-131"
- name: "naomigd.zip" - name: "naomigd.zip"
path: "dc/naomigd.zip" path: "dc/naomigd.zip"
system: sega-naomi system: sega-naomi
required: false required: false
note: "NAOMI GD-ROM BIOS. Used by GD-ROM based NAOMI games." note: "NAOMI GD-ROM BIOS. Shares ROMs with naomi.zip (epr-21576h, epr-21578h, epr-21577h)."
source_ref: "core/hw/naomi/naomi_roms.cpp:158-181" source_ref: "core/hw/naomi/naomi_roms.h:190-212"
# -------------------------------------------------------
# Sega NAOMI 2
# -------------------------------------------------------
- name: "n2_boot.bin"
path: "dc/n2_boot.bin"
aliases: ["naomi2_boot.bin"]
mode: libretro
system: sega-naomi2
required: false
size: 2097152 # 2 MB
note: "NAOMI 2 boot ROM. Core uses n2_ prefix to avoid name collision in shared dc/ directory. Upstream standalone uses naomi2_ prefix."
source_ref: "core/hw/holly/sb_mem.cpp:43,57"
- name: "naomi2.zip"
path: "dc/naomi2.zip"
system: sega-naomi2
required: true
note: >
NAOMI 2 system BIOS archive (MAME format). Contains region-specific
ROMs: epr-23605c.ic27 (Japan), epr-23607c.ic27 (USA),
epr-23608c.ic27 (Export), epr-23609b.ic27 (Korea).
source_ref: "core/hw/naomi/naomi_roms.cpp:183-201"
# ------------------------------------------------------- # -------------------------------------------------------
# Sega Atomiswave # Sega Atomiswave
@@ -178,45 +143,44 @@ files:
path: "dc/awbios.zip" path: "dc/awbios.zip"
system: sega-atomiswave system: sega-atomiswave
required: true required: true
note: > note: "Atomiswave system BIOS archive (MAME format). Contains bios0.ic23 (Sammy, 128 KB)."
Atomiswave system BIOS archive (MAME format). Contains source_ref: "core/hw/naomi/naomi_roms.h:87-94"
bios0.ic23 (Sammy, 128 KB). BIOS size is 128 KB.
source_ref: "core/hw/naomi/naomi_roms.cpp:39-48"
# ------------------------------------------------------- # -------------------------------------------------------
# Sega System SP # Not supported by libretro port
# ------------------------------------------------------- # -------------------------------------------------------
# segasp.zip: supported by upstream (flyinghead/flycast) but NOT by the # naomi2.zip: no BIOS[] entry in libretro fork (naomi_roms.h). NAOMI 2 games
# libretro port (naomi_roms.cpp absent from libretro fork). Lacune du port. # use the "naomi" BIOS. naomi_cart_GetSystemType() never returns
# DC_PLATFORM_NAOMI2. Upstream has full naomi2.zip support.
#
# segasp.zip: no System SP support in libretro fork. Upstream has full support.
platform_details: platform_details:
dreamcast: dreamcast:
bios_size: 2097152 # 2 MB bios_size: 2097152
flash_size: 131072 # 128 KB flash_size: 131072
ram_size: 16777216 # 16 MB (32 MB with mod) ram_size: 16777216
hle_available: true hle_available: true
source_ref: "core/emulator.cpp:446-452" source_ref: "core/nullDC.cpp:333-345"
naomi: naomi:
bios_size: 2097152 # 2 MB bios_size: 2097152
flash_size: 32768 # 32 KB (battery-backed SRAM) sram_size: 32768
ram_size: 33554432 # 32 MB ram_size: 33554432
hle_available: false hle_available: false
source_ref: "core/emulator.cpp:453-459" source_ref: "core/nullDC.cpp:346-354"
naomi2: naomi2:
bios_size: 2097152 # 2 MB bios_size: 2097152
flash_size: 32768 # 32 KB (battery-backed SRAM) sram_size: 32768
ram_size: 33554432 # 32 MB ram_size: 33554432
eram_size: 33554432 # 32 MB (ELAN)
hle_available: false hle_available: false
source_ref: "core/emulator.cpp:460-467" note: "Treated as NAOMI in the libretro port. Separate platform only in upstream."
source_ref: "core/nullDC.cpp:355-363"
atomiswave: atomiswave:
bios_size: 131072 # 128 KB bios_size: 131072
flash_size: 131072 # 128 KB (SRAM) sram_size: 131072
ram_size: 16777216 # 16 MB ram_size: 16777216
hle_available: false hle_available: false
source_ref: "core/emulator.cpp:468-474" source_ref: "core/nullDC.cpp:364-375"
# systemsp: supported by upstream but not by the libretro port

View File

@@ -1,8 +1,8 @@
emulator: "Flycast GLES2" emulator: "Flycast GLES2"
type: alias type: alias
alias_of: "flycast" alias_of: "flycast"
profiled_date: "2026-03-21" profiled_date: "2026-03-23"
core_version: "1.0" core_version: "0.1"
display_name: "Sega - Dreamcast/Naomi (Flycast GLES2)" display_name: "Sega - Dreamcast/Naomi (Flycast GLES2)"
note: "Same codebase as flycast, compiled with -DHAVE_OPENGLES2 for older mobile GPUs. Same BIOS files." note: "Same codebase as flycast, compiled with -DHAVE_OPENGLES2 for older mobile GPUs. Same BIOS files."
files: [] files: []

View File

@@ -3,7 +3,7 @@ type: libretro
core_classification: community_fork core_classification: community_fork
source: "https://github.com/libretro/fmsx-libretro" source: "https://github.com/libretro/fmsx-libretro"
upstream: "https://fms.komkon.org/fMSX/" upstream: "https://fms.komkon.org/fMSX/"
profiled_date: "2026-03-21" profiled_date: "2026-03-23"
core_version: "6.0" core_version: "6.0"
display_name: "Microsoft - MSX (fMSX)" display_name: "Microsoft - MSX (fMSX)"
cores: cores:
@@ -149,7 +149,7 @@ files:
sha1: c36c9e0f96738a340381e23b4f97245388801a46 sha1: c36c9e0f96738a340381e23b4f97245388801a46
required: false required: false
bundled: true bundled: true
note: "MSX-DOS 2 ROM (64 KB). Loaded when 'fmsx_dos2' option enabled and model is MSX2+ (fMSX/MSX.c:545)." note: "MSX-DOS 2 ROM (64 KB). Loaded when 'fmsx_dos2' option enabled and model is MSX2 or MSX2+ (fMSX/MSX.c:545)."
source_ref: "fMSX/ROMs/MSXDOS2.ROM" source_ref: "fMSX/ROMs/MSXDOS2.ROM"
- name: PAINTER.ROM - name: PAINTER.ROM
@@ -235,9 +235,14 @@ files:
# -- Cartridge identification database -- # -- Cartridge identification database --
- name: CARTS.CRC
required: false
bundled: false
note: "CRC database for cartridge identification and mapper detection. Tried first, before CARTS.SHA (fMSX/MSX.c:2697)."
- name: CARTS.SHA - name: CARTS.SHA
required: false required: false
bundled: true bundled: true
md5: 74b0f217fa0e2b8bb5a2f8e2ecc69da3 md5: 74b0f217fa0e2b8bb5a2f8e2ecc69da3
note: "SHA1 database for cartridge identification and mapper detection (fMSX/MSX.c:2712)." note: "SHA1 database for cartridge identification and mapper detection. Fallback when CARTS.CRC absent (fMSX/MSX.c:2712)."
source_ref: "fMSX/ROMs/CARTS.SHA" source_ref: "fMSX/ROMs/CARTS.SHA"

View File

@@ -2,7 +2,7 @@ emulator: FreeChaF
type: libretro type: libretro
core_classification: pure_libretro core_classification: pure_libretro
source: "https://github.com/libretro/FreeChaF" source: "https://github.com/libretro/FreeChaF"
profiled_date: "2026-03-21" profiled_date: "2026-03-23"
core_version: "GIT" core_version: "GIT"
display_name: "Fairchild - ChannelF (FreeChaF)" display_name: "Fairchild - ChannelF (FreeChaF)"
cores: cores:
@@ -11,7 +11,7 @@ systems:
- fairchild-channelf - fairchild-channelf
notes: | notes: |
FreeChaF is a Fairchild Channel F emulator ported to libretro. FreeChaF is a Fairchild Channel F emulator written for libretro.
BIOS loading is in src/libretro.c:186-208. The core first tries to load BIOS loading is in src/libretro.c:186-208. The core first tries to load
sl90025.bin (Channel F II PSU1) at address 0x000. If that fails, it falls sl90025.bin (Channel F II PSU1) at address 0x000. If that fails, it falls
@@ -37,8 +37,6 @@ files:
system: fairchild-channelf system: fairchild-channelf
required: false required: false
hle_fallback: true hle_fallback: true
md5: ac9804d4c0e9d07e33472e3726ed15c3
size: 1024 # 1 KB, fills 0x000-0x3FF
note: "Channel F PSU1 ROM (original). Fallback if sl90025.bin is missing." note: "Channel F PSU1 ROM (original). Fallback if sl90025.bin is missing."
source_ref: "src/libretro.c:192" source_ref: "src/libretro.c:192"
@@ -46,8 +44,6 @@ files:
system: fairchild-channelf system: fairchild-channelf
required: false required: false
hle_fallback: true hle_fallback: true
md5: da98f4bb3242ab80d76629021bb27585
size: 1024 # 1 KB, fills 0x400-0x7FF
note: "Channel F PSU2 ROM. Always loaded at address 0x400." note: "Channel F PSU2 ROM. Always loaded at address 0x400."
source_ref: "src/libretro.c:202" source_ref: "src/libretro.c:202"
@@ -55,15 +51,13 @@ files:
system: fairchild-channelf system: fairchild-channelf
required: false required: false
hle_fallback: true hle_fallback: true
md5: 95d339631d867c8f1d15a5f2ec26069d
size: 1024 # 1 KB, fills 0x000-0x3FF
note: "Channel F II PSU1 ROM. Tried first, preferred over sl31253.bin." note: "Channel F II PSU1 ROM. Tried first, preferred over sl31253.bin."
source_ref: "src/libretro.c:186" source_ref: "src/libretro.c:186"
platform_details: platform_details:
bios_mapping: bios_mapping:
target: "0x000-0x7FF in 64K memory space" target: "0x000-0x7FF in 64K memory space"
source_ref: "src/memory.h:27-29, src/memory.c:30-61" source_ref: "src/memory.h:27-29, src/memory.c:29-61"
notes: | notes: |
MEMORY_loadSysROM_libretro() reads the file and copies it into MEMORY_loadSysROM_libretro() reads the file and copies it into
Memory[] at the given address offset. PSU1 is loaded at 0x000, Memory[] at the given address offset. PSU1 is loaded at 0x000,

View File

@@ -2,7 +2,7 @@ emulator: FreeIntv
type: libretro type: libretro
core_classification: pure_libretro core_classification: pure_libretro
source: "https://github.com/libretro/FreeIntv" source: "https://github.com/libretro/FreeIntv"
profiled_date: "2026-03-21" profiled_date: "2026-03-23"
core_version: "2018.1.5" core_version: "2018.1.5"
display_name: "Mattel - Intellivision (FreeIntv)" display_name: "Mattel - Intellivision (FreeIntv)"
cores: cores:
@@ -11,65 +11,34 @@ systems:
- intellivision - intellivision
notes: | notes: |
FreeIntv is a Mattel Intellivision emulator for libretro. Written for libretro by David Richardson. Intellivoice SP0256 emulation
contributed by Joe Zbiciak (jzIntv), mask ROM embedded in source
(src/ivoice.c:337-510, 4097-byte static array). No external ivoice ROM.
BIOS loading happens in retro_init() (src/libretro.c:1166-1174). The core BIOS loading in retro_init() (src/libretro.c:1166-1174). Paths joined
calls retro_get_system_directory() then joins exec.bin and grom.bin paths directly to system directory, no subdirectory.
directly. No subdirectory, no core option to disable BIOS loading.
loadExec() in src/intv.c:47-71 reads exec.bin as big-endian 16-bit words loadExec() reads exec.bin as big-endian 16-bit words into 0x1000-0x1FFF.
into memory range 0x1000-0x1FFF (Executive ROM, 8 KB file). loadGrom() reads grom.bin as raw bytes into 0x3000-0x37FF.
loadGrom() in src/intv.c:73-98 reads grom.bin as raw bytes into memory Both files required for operation. Without them, the OSD shows
range 0x3000-0x37FF (Graphics ROM, 2 KB file). "PUT GROM/EXEC IN SYSTEM DIRECTORY" and games do not run.
Both files are required. Without them the core prints an error and shows No hash or size validation on either file.
"PUT GROM/EXEC IN SYSTEM DIRECTORY" on the OSD, but does not abort.
Games will not run correctly without both BIOS files.
The .info file declares firmware_count = 2 with both marked opt = false. No ECS support. No ecs.bin loading code in the source.
No ECS (Entertainment Computer System) BIOS support exists in this core.
There is no ecs.bin loading code anywhere in the source.
files: files:
- name: "exec.bin" - name: "exec.bin"
system: intellivision system: intellivision
required: true required: true
size: 8192 # 8 KB (4096 x 16-bit words, 0x1000-0x1FFF) size: 8192
md5: 62e761035cb657903761800f4437b8af
note: "Executive ROM. Big-endian 16-bit words loaded at 0x1000-0x1FFF." note: "Executive ROM. Big-endian 16-bit words loaded at 0x1000-0x1FFF."
source_ref: "src/intv.c:47-71, src/libretro.c:1169" source_ref: "src/intv.c:47-71, src/libretro.c:1169"
- name: "grom.bin" - name: "grom.bin"
system: intellivision system: intellivision
required: true required: true
size: 2048 # 2 KB (bytes, 0x3000-0x37FF) size: 2048
md5: 0cd5946c6473e42e8e4c2137785e427f
note: "Graphics ROM. Raw bytes loaded at 0x3000-0x37FF." note: "Graphics ROM. Raw bytes loaded at 0x3000-0x37FF."
source_ref: "src/intv.c:73-98, src/libretro.c:1173" source_ref: "src/intv.c:73-98, src/libretro.c:1173"
platform_details:
bios_mapping:
exec:
target: "0x1000-0x1FFF (Executive ROM)"
format: "big-endian 16-bit words"
source_ref: "src/intv.c:55-58"
grom:
target: "0x3000-0x37FF (Graphics ROM)"
format: "raw 8-bit bytes"
source_ref: "src/intv.c:81-84"
notes: |
Memory[] is a 64K array of unsigned int (src/memory.c:26).
EXEC region (0x1000-0x1FFF) is write-protected in writeMem()
(src/memory.c:60-61). GROM region (0x3000-0x37FF) is also
write-protected (src/memory.c:62).
cartridge_loading:
formats: "int, bin, rom"
methods: "Intellicart (magic byte 0xA8), raw ROM with fingerprint DB"
source_ref: "src/cart.c"
notes: |
Raw ROMs use a fingerprint database (sum of first 256 bytes)
to select one of 10 memory map configurations (load0-load9).
Intellicart format is auto-detected by 0xA8 magic byte.

View File

@@ -2,7 +2,8 @@ emulator: FreeJ2ME
type: libretro type: libretro
core_classification: official_port core_classification: official_port
source: "https://github.com/hex007/freej2me" source: "https://github.com/hex007/freej2me"
profiled_date: "2026-03-21" upstream: "https://github.com/hex007/freej2me"
profiled_date: "2026-03-23"
core_version: "GIT" core_version: "GIT"
display_name: "Mobile - J2ME (FreeJ2ME)" display_name: "Mobile - J2ME (FreeJ2ME)"
cores: cores:
@@ -11,33 +12,17 @@ systems:
- j2me - j2me
notes: | notes: |
FreeJ2ME is a Java ME (J2ME) emulator for libretro. The native .so/.dll The native core is a C bridge that spawns a Java process running
core acts as a bridge that spawns a Java process running freej2me-lr.jar, freej2me-lr.jar, which handles all J2ME emulation. Communication
which handles all actual J2ME emulation. Communication between the C happens over pipes (Linux) or named pipes (Windows). A Java runtime
frontend and Java backend happens over pipes (Linux) or named pipes (JRE/JDK 8+) must be installed on the host. The jar is built from
(Windows). source via Apache Ant (build.xml). Same repo hosts standalone AWT
and SDL2 frontends alongside the libretro frontend.
The jar file is required: without it the core cannot start. It must be
placed directly in the system directory (not a subdirectory). The core
resolves it via RETRO_ENVIRONMENT_GET_SYSTEM_DIRECTORY joined with
"freej2me-lr.jar" using fill_pathname_join().
A working Java runtime (JRE/JDK 8+) must be installed on the host
system. The core invokes "java -jar freej2me-lr.jar" with resolution,
rotation, phone type, FPS, and sound arguments passed via argv.
freej2me-lr.jar is built from the project source via Apache Ant
(build.xml target "lr"). It is not a traditional BIOS dump but a
software component distributed with the emulator.
The project also produces freej2me.jar (standalone AWT frontend) and
freej2me-sdl.jar (SDL2 frontend), but only freej2me-lr.jar is needed
for the libretro core.
files: files:
- name: "freej2me-lr.jar" - name: "freej2me-lr.jar"
system: j2me system: j2me
description: "FreeJ2ME libretro Java application" description: "FreeJ2ME libretro Java application"
required: true required: true
source_ref: "src/libretro/freej2me_libretro.c:485 (fill_pathname_join with javapath)" source_ref: "src/libretro/freej2me_libretro.c:483-486 (GET_SYSTEM_DIRECTORY + fill_pathname_join + java -jar)"
notes: "Not a BIOS dump. This is the Java emulator itself, loaded by the native core at startup. Built from source via 'ant lr'. Must be in the system directory root." notes: "Not a BIOS dump. Java emulator loaded by the native core at startup via execvp('java', '-jar', path). Built from source via 'ant'. Must be in the system directory root."

View File

@@ -4,7 +4,7 @@ core_classification: community_fork
cores: [frodo] cores: [frodo]
source: "https://github.com/libretro/frodo-libretro" source: "https://github.com/libretro/frodo-libretro"
upstream: "https://github.com/cebix/frodo4" upstream: "https://github.com/cebix/frodo4"
profiled_date: "2026-03-21" profiled_date: "2026-03-23"
core_version: "v4.2" core_version: "v4.2"
display_name: "Commodore - C64 (Frodo)" display_name: "Commodore - C64 (Frodo)"
systems: [commodore-c64] systems: [commodore-c64]
@@ -43,14 +43,14 @@ notes: |
processor emulation is enabled (multiple addresses in the 0x0D00-0x0E00 processor emulation is enabled (multiple addresses in the 0x0D00-0x0E00
range are patched with 0xF2 trap opcodes). range are patched with 0xF2 trap opcodes).
The 1541 drive ROM is also patched at Reset() in C64.cpp: ROM checksum The 1541 drive ROM is also patched in PatchKernal(): ROM checksum
verification is disabled (0x2AE4-0x2AE9 NOPed), DOS idle loop is verification is disabled (0x2AE4-0x2AE9 NOPed), DOS idle loop is
trapped (0x2C9B), and write sector / format track operations are trapped (0x2C9B), and write sector / format track operations are
intercepted (0x3594-0x3598, 0x3B0C-0x3B0D). intercepted (0x3594-0x3598, 0x3B0C-0x3B0D).
Source: Src/main.cpp:67-115 (ROM defines, load_rom, load_rom_files), Source: Src/main.cpp:67-115 (ROM defines, load_rom, load_rom_files),
Src/C64.h:33-37 (ROM size constants), Src/C64.cpp:221-284 (PatchKernal), Src/C64.h:33-37 (ROM size constants), Src/C64.cpp:221-285 (PatchKernal),
Src/C64.cpp:738-746 (Reset ROM patching), Src/C64.cpp:734-746 (Run init, saves original kernal bytes, calls PatchKernal),
Src/Basic_ROM.h, Src/Kernal_ROM.h, Src/Char_ROM.h, Src/1541_ROM.h Src/Basic_ROM.h, Src/Kernal_ROM.h, Src/Char_ROM.h, Src/1541_ROM.h
(embedded ROM arrays) (embedded ROM arrays)
@@ -60,7 +60,6 @@ files:
description: "C64 BASIC V2 ROM" description: "C64 BASIC V2 ROM"
required: false required: false
hle_fallback: true hle_fallback: true
embedded: true
size: 8192 size: 8192
note: "Embedded as builtin_basic_rom[] in Basic_ROM.h. External file never loaded in practice (DATADIR is empty, path is bare filename in cwd)." note: "Embedded as builtin_basic_rom[] in Basic_ROM.h. External file never loaded in practice (DATADIR is empty, path is bare filename in cwd)."
source_ref: "Src/main.cpp:71,77,100-102" source_ref: "Src/main.cpp:71,77,100-102"
@@ -70,7 +69,6 @@ files:
description: "C64 Kernal ROM" description: "C64 Kernal ROM"
required: false required: false
hle_fallback: true hle_fallback: true
embedded: true
size: 8192 size: 8192
note: "Embedded as builtin_kernal_rom[] in Kernal_ROM.h. Patched at runtime for fast reset and 1541 IEC traps." note: "Embedded as builtin_kernal_rom[] in Kernal_ROM.h. Patched at runtime for fast reset and 1541 IEC traps."
source_ref: "Src/main.cpp:72,78,104-106" source_ref: "Src/main.cpp:72,78,104-106"
@@ -80,7 +78,6 @@ files:
description: "C64 Character Generator ROM" description: "C64 Character Generator ROM"
required: false required: false
hle_fallback: true hle_fallback: true
embedded: true
size: 4096 size: 4096
note: "Embedded as builtin_char_rom[] in Char_ROM.h. Used by VIC-II for text/bitmap rendering." note: "Embedded as builtin_char_rom[] in Char_ROM.h. Used by VIC-II for text/bitmap rendering."
source_ref: "Src/main.cpp:73,79,108-110" source_ref: "Src/main.cpp:73,79,108-110"
@@ -90,7 +87,6 @@ files:
description: "Commodore 1541 floppy drive ROM" description: "Commodore 1541 floppy drive ROM"
required: false required: false
hle_fallback: true hle_fallback: true
embedded: true
size: 16384 size: 16384
note: "Embedded as builtin_drive_rom[] in 1541_ROM.h. Patched at runtime to disable checksum and trap disk I/O." note: "Embedded as builtin_drive_rom[] in 1541_ROM.h. Patched at runtime to disable checksum and trap disk I/O."
source_ref: "Src/main.cpp:74,80,112-114" source_ref: "Src/main.cpp:74,80,112-114"

View File

@@ -3,7 +3,7 @@ type: libretro
core_classification: community_fork core_classification: community_fork
source: "https://github.com/libretro/libretro-fsuae" source: "https://github.com/libretro/libretro-fsuae"
upstream: "https://github.com/FrodeSolheim/fs-uae" upstream: "https://github.com/FrodeSolheim/fs-uae"
profiled_date: "2026-03-21" profiled_date: "2026-03-23"
core_version: "v2.7.15" core_version: "v2.7.15"
display_name: "Commodore - Amiga (FS-UAE)" display_name: "Commodore - Amiga (FS-UAE)"
cores: cores:
@@ -12,56 +12,124 @@ systems:
- amiga - amiga
notes: | notes: |
FS-UAE is an Amiga emulator by Frode Solheim, based on UAE. FS-UAE is an Amiga emulator by Frode Solheim, based on UAE/WinUAE.
Kickstart ROMs loaded from save_dir/Kickstarts/ (not system_dir). ROMs loaded from save_dir/fsuae/Kickstarts/ (not system_dir).
base_dir = RETRO_ENVIRONMENT_GET_SAVE_DIRECTORY (paths.c:136). base_dir = RETRO_ENVIRONMENT_GET_SAVE_DIRECTORY/fsuae (paths.c:197).
Kickstarts/ subdirectory created automatically (paths.c:258-264). Also scans base_dir/AmigaForever/Amiga Files/Shared/rom/ (config.c:129-135).
Also scans AmigaForever/Amiga Files/Shared/rom/. Scans for .rom and .bin files. Identification by SHA-1 checksum, not filename.
AROS kickstart (512 KB) bundled in fs-uae.dat as fallback for all models.
rom.key enables decryption of Cloanto Amiga Forever encrypted ROMs.
ROMs identified by checksum, not by filename. Supported models: A1000, A500, A500+, A600, A1200, A3000, A4000, CD32, CDTV.
Default model is A500 (config.c:42). Each model auto-selects its kickstart
via quickstart mechanism (cfgfile.c:7111-7154, config.c:140).
Standard Amiga kickstart ROMs (all 512 KB unless noted): The .info declares firmware_count=0. All ROMs are auto-discovered by
kick13.rom (A500 Kickstart 1.3, 256 KB) directory scan, not by explicit filename lookup.
kick20.rom (A500+ Kickstart 2.04)
kick31.rom (A1200 Kickstart 3.1)
kick40068.A1200 (A1200 Kickstart 3.1.4)
kick40068.A4000 (A4000 Kickstart 3.1.4)
The core is marked experimental by upstream. Most users should use PUAE. Libretro port is frozen at v2.7.15. Upstream ROM database is larger (3030
vs 1980 lines in rommgr). Core functionality equivalent for standard models.
files: files:
- name: "kick13.rom" - name: "amiga-os-130.rom"
system: amiga system: amiga
required: false required: false
size: 262144 # 256 KB hle_fallback: true
note: "Amiga 500 Kickstart 1.3 (34.5). Loaded from save_dir/Kickstarts/." sha1: "891e9a547772fe0c6c19b610baf8bc4ea7fcb785"
source_ref: "sources/src/fs-uae/config.c:128 (fs_uae_load_rom_files)" validation: [sha1]
note: "Amiga 500 Kickstart 1.3 r34.5. Default model ROM."
source_ref: "sources/src/rommgr.c:141-142 (id=6, ROMTYPE_KICK)"
- name: "kick20.rom" - name: "amiga-os-204.rom"
system: amiga system: amiga
required: false required: false
size: 524288 hle_fallback: true
note: "Amiga 500+ Kickstart 2.04 (37.175)." sha1: "c5839f5cb98a7a8947065c3ed2f14f5f42e334a1"
source_ref: "sources/src/fs-uae/config.c:128" validation: [sha1]
note: "Amiga 500+ Kickstart 2.04 r37.175."
source_ref: "sources/src/rommgr.c:149-150 (id=7, ROMTYPE_KICK)"
- name: "kick31.rom" - name: "amiga-os-205.rom"
system: amiga system: amiga
required: false required: false
size: 524288 hle_fallback: true
note: "Amiga 1200 Kickstart 3.1 (40.68)." sha1: "02843c4253bbd29aba535b0aa3bd9a85034ecde4"
source_ref: "sources/src/fs-uae/config.c:128" validation: [sha1]
note: "Amiga 600 Kickstart 2.05 r37.350."
source_ref: "sources/src/rommgr.c:155-156 (id=10, ROMTYPE_KICK)"
- name: "kick40068.A1200" - name: "amiga-os-120.rom"
system: amiga system: amiga
required: false required: false
size: 524288 hle_fallback: true
note: "Amiga 1200 Kickstart 3.1.4." sha1: "11f9e62cf299f72184835b7b2a70a16333fc0d88"
source_ref: "sources/src/fs-uae/config.c:128" validation: [sha1]
note: "Amiga 1000 Kickstart 1.2 r33.180."
source_ref: "sources/src/rommgr.c:139-140 (id=5, ROMTYPE_KICK)"
- name: "kick40068.A4000" - name: "amiga-os-310-a1200.rom"
system: amiga system: amiga
required: false required: false
size: 524288 hle_fallback: true
note: "Amiga 4000 Kickstart 3.1.4." sha1: "e21545723fe8374e91342617604f1b3d703094f1"
source_ref: "sources/src/fs-uae/config.c:128" validation: [sha1]
note: "Amiga 1200 Kickstart 3.1 r40.68."
source_ref: "sources/src/rommgr.c:176-177 (id=15, ROMTYPE_KICK)"
- name: "amiga-os-310-a3000.rom"
system: amiga
required: false
hle_fallback: true
sha1: "f8e210d72b4c4853e0c9b85d223ba20e3d1b36ee"
validation: [sha1]
note: "Amiga 3000 Kickstart 3.1 r40.68."
source_ref: "sources/src/rommgr.c:180-181 (id=61, ROMTYPE_KICK)"
- name: "amiga-os-310-a4000.rom"
system: amiga
required: false
hle_fallback: true
sha1: "5fe04842d04a489720f0f4bb0e46948199406f49"
validation: [sha1]
note: "Amiga 4000 Kickstart 3.1 r40.68."
source_ref: "sources/src/rommgr.c:186-187 (id=16, ROMTYPE_KICK)"
- name: "amiga-os-310-cd32.rom"
system: amiga
required: false
hle_fallback: true
sha1: "3525be8887f79b5929e017b42380a79edfee542d"
validation: [sha1]
note: "Amiga CD32 Kickstart 3.1 r40.60."
source_ref: "sources/src/rommgr.c:197-198 (id=18, ROMTYPE_KICKCD32)"
- name: "amiga-ext-310-cd32.rom"
system: amiga
required: false
sha1: "5bef3d628ce59cc02a66e6e4ae0da48f60e78f7f"
validation: [sha1]
note: "CD32 extended ROM r40.60. Required for CD32 mode."
source_ref: "sources/src/rommgr.c:199-200 (id=19, ROMTYPE_EXTCD32)"
- name: "cd32fmv.rom"
system: amiga
required: false
sha1: "03ca81c7a7b259cf64bc9582863eca0f6529f435"
validation: [sha1]
note: "CD32 Full Motion Video cartridge ROM. For CD32/FMV model."
source_ref: "sources/src/rommgr.c:208-209 (id=23, ROMTYPE_CD32CART)"
- name: "amiga-ext-130-cdtv.rom"
system: amiga
required: false
sha1: "7ba40ffa17e500ed9fed041f3424bd81d9c907be"
validation: [sha1]
note: "CDTV extended ROM v1.0. Required for CDTV mode."
source_ref: "sources/src/rommgr.c:213-214 (id=20, ROMTYPE_EXTCDTV)"
- name: "rom.key"
system: amiga
required: false
note: "Cloanto Amiga Forever decryption key. Enables encrypted ROM loading."
source_ref: "libretro/libretro.c:206-222 (addkeyfile via amiga_add_key_dir)"

View File

@@ -3,7 +3,7 @@ type: libretro
core_classification: community_fork core_classification: community_fork
source: "https://github.com/libretro/fuse-libretro" source: "https://github.com/libretro/fuse-libretro"
upstream: "https://sourceforge.net/projects/fuse-emulator/" upstream: "https://sourceforge.net/projects/fuse-emulator/"
profiled_date: "2026-03-21" profiled_date: "2026-03-23"
core_version: "1.6.0" core_version: "1.6.0"
display_name: "Sinclair - ZX Spectrum (Fuse)" display_name: "Sinclair - ZX Spectrum (Fuse)"
cores: cores:
@@ -27,12 +27,16 @@ notes: |
Default ROM filenames are set in fuse/settings.c:209-260. Each machine Default ROM filenames are set in fuse/settings.c:209-260. Each machine
type loads its ROMs during reset via machine_load_rom() calls in type loads its ROMs during reset via machine_load_rom() calls in
fuse/machines/*.c files. fuse/machines/*.c files. All ROMs are size-validated at load time
(fuse/machine.c:289).
The +2A reuses the +3 ROMs (plus3-0/1/2/3.rom) per settings.c:234-237. The +2A reuses the +3 ROMs (plus3-0/1/2/3.rom) per settings.c:234-237.
The TS2068 reuses TC2068 ROMs (tc2068-0/1.rom) per settings.c:257-258. The TS2068 reuses TC2068 ROMs (tc2068-0/1.rom) per settings.c:257-258.
Spectrum 16K uses 48.rom per settings.c:211. Spectrum 16K uses 48.rom per settings.c:211.
Upstream FUSE 1.7.0 has SP0256 speech chip (sp0256-al2.rom) and Currah
uSpeech (uspeech.rom) peripherals not ported to libretro.
files: files:
# -- Embedded ROMs (compiled into the core, not required on disk) -- # -- Embedded ROMs (compiled into the core, not required on disk) --
@@ -43,6 +47,7 @@ files:
md5: 4c42a2f075212361c3117015b107ff68 md5: 4c42a2f075212361c3117015b107ff68
sha1: 5ea7c2b824672e914525d1d5c419d71b84a426a2 sha1: 5ea7c2b824672e914525d1d5c419d71b84a426a2
size: 16384 size: 16384
validation: [size]
note: "Spectrum 48K ROM. Also used for 16K and 48K NTSC. Embedded in core." note: "Spectrum 48K ROM. Also used for 16K and 48K NTSC. Embedded in core."
source_ref: "fuse/settings.c:211-212, fuse/machines/spec48.c:76" source_ref: "fuse/settings.c:211-212, fuse/machines/spec48.c:76"
@@ -53,6 +58,7 @@ files:
md5: b4d2692115a9f2924df92a3cbfb358fb md5: b4d2692115a9f2924df92a3cbfb358fb
sha1: 4f4b11ec22326280bdb96e3baf9db4b4cb1d02c5 sha1: 4f4b11ec22326280bdb96e3baf9db4b4cb1d02c5
size: 16384 size: 16384
validation: [size]
note: "Spectrum 128K ROM 0 (editor). Embedded in core." note: "Spectrum 128K ROM 0 (editor). Embedded in core."
source_ref: "fuse/settings.c:209, fuse/machines/spec128.c:70" source_ref: "fuse/settings.c:209, fuse/machines/spec128.c:70"
@@ -63,6 +69,7 @@ files:
md5: 6e09e5d3c4aef166601669feaaadc01c md5: 6e09e5d3c4aef166601669feaaadc01c
sha1: 80080644289ed93d71a1103992a154cc9802b2fa sha1: 80080644289ed93d71a1103992a154cc9802b2fa
size: 16384 size: 16384
validation: [size]
note: "Spectrum 128K ROM 1 (48 BASIC). Embedded in core." note: "Spectrum 128K ROM 1 (48 BASIC). Embedded in core."
source_ref: "fuse/settings.c:210, fuse/machines/spec128.c:73" source_ref: "fuse/settings.c:210, fuse/machines/spec128.c:73"
@@ -73,6 +80,7 @@ files:
md5: 4ed7af4636308b8a48d7a35e6c5b546b md5: 4ed7af4636308b8a48d7a35e6c5b546b
sha1: 72703f9a3e734f3c23ec34c0727aae4ccbef9a91 sha1: 72703f9a3e734f3c23ec34c0727aae4ccbef9a91
size: 16384 size: 16384
validation: [size]
note: "Spectrum +2 ROM 0. Embedded in core." note: "Spectrum +2 ROM 0. Embedded in core."
source_ref: "fuse/settings.c:232, fuse/machines/specplus2.c:70" source_ref: "fuse/settings.c:232, fuse/machines/specplus2.c:70"
@@ -83,6 +91,7 @@ files:
md5: b3db95931cc844efaeb82db9c171b9f3 md5: b3db95931cc844efaeb82db9c171b9f3
sha1: de8b0d2d0379cfe7c39322a086ca6da68c7f23cb sha1: de8b0d2d0379cfe7c39322a086ca6da68c7f23cb
size: 16384 size: 16384
validation: [size]
note: "Spectrum +2 ROM 1. Embedded in core." note: "Spectrum +2 ROM 1. Embedded in core."
source_ref: "fuse/settings.c:233, fuse/machines/specplus2.c:73" source_ref: "fuse/settings.c:233, fuse/machines/specplus2.c:73"
@@ -93,6 +102,7 @@ files:
md5: 9833b8b73384dd5fa3678377ff00a2bb md5: 9833b8b73384dd5fa3678377ff00a2bb
sha1: e319ed08b4d53a5e421a75ea00ea02039ba6555b sha1: e319ed08b4d53a5e421a75ea00ea02039ba6555b
size: 16384 size: 16384
validation: [size]
note: "Spectrum +3 ROM 0. Also used for +2A. Embedded in core." note: "Spectrum +3 ROM 0. Also used for +2A. Embedded in core."
source_ref: "fuse/settings.c:234,238, fuse/machines/specplus3.c:197" source_ref: "fuse/settings.c:234,238, fuse/machines/specplus3.c:197"
@@ -103,6 +113,7 @@ files:
md5: 0f711ceb5ab801b4701989982e0f334c md5: 0f711ceb5ab801b4701989982e0f334c
sha1: c9969fc36095a59787554026a9adc3b87678c794 sha1: c9969fc36095a59787554026a9adc3b87678c794
size: 16384 size: 16384
validation: [size]
note: "Spectrum +3 ROM 1. Also used for +2A. Embedded in core." note: "Spectrum +3 ROM 1. Also used for +2A. Embedded in core."
source_ref: "fuse/settings.c:235,239, fuse/machines/specplus3.c:200" source_ref: "fuse/settings.c:235,239, fuse/machines/specplus3.c:200"
@@ -113,6 +124,7 @@ files:
md5: 3b6dd659d5e4ec97f0e2f7878152c987 md5: 3b6dd659d5e4ec97f0e2f7878152c987
sha1: 22e50c6ba4157a3f6a821bd9937cd26e292775c6 sha1: 22e50c6ba4157a3f6a821bd9937cd26e292775c6
size: 16384 size: 16384
validation: [size]
note: "Spectrum +3 ROM 2. Also used for +2A. Embedded in core." note: "Spectrum +3 ROM 2. Also used for +2A. Embedded in core."
source_ref: "fuse/settings.c:236,240, fuse/machines/specplus3.c:203" source_ref: "fuse/settings.c:236,240, fuse/machines/specplus3.c:203"
@@ -123,6 +135,7 @@ files:
md5: a148bcc575e51389e84fdf5d555c3196 md5: a148bcc575e51389e84fdf5d555c3196
sha1: 65f031caa8148a5493afe42c41f4929deab26b4e sha1: 65f031caa8148a5493afe42c41f4929deab26b4e
size: 16384 size: 16384
validation: [size]
note: "Spectrum +3 ROM 3. Also used for +2A. Embedded in core." note: "Spectrum +3 ROM 3. Also used for +2A. Embedded in core."
source_ref: "fuse/settings.c:237,241, fuse/machines/specplus3.c:206" source_ref: "fuse/settings.c:237,241, fuse/machines/specplus3.c:206"
@@ -133,6 +146,7 @@ files:
md5: bc123f625e245c225f92ef05933ed134 md5: bc123f625e245c225f92ef05933ed134
sha1: 649fbd233490bf58b35350b0123d36caaaa011eb sha1: 649fbd233490bf58b35350b0123d36caaaa011eb
size: 16384 size: 16384
validation: [size]
note: "Spectrum +3e ROM 0. Embedded in core." note: "Spectrum +3e ROM 0. Embedded in core."
source_ref: "fuse/settings.c:242, fuse/machines/specplus3e.c:70" source_ref: "fuse/settings.c:242, fuse/machines/specplus3e.c:70"
@@ -143,6 +157,7 @@ files:
md5: 617364264c587d20c9fc4746c29679f2 md5: 617364264c587d20c9fc4746c29679f2
sha1: f12198108cbb14de4f03c6695bc16d08c85ee214 sha1: f12198108cbb14de4f03c6695bc16d08c85ee214
size: 16384 size: 16384
validation: [size]
note: "Spectrum +3e ROM 1. Embedded in core." note: "Spectrum +3e ROM 1. Embedded in core."
source_ref: "fuse/settings.c:243, fuse/machines/specplus3e.c:73" source_ref: "fuse/settings.c:243, fuse/machines/specplus3e.c:73"
@@ -153,6 +168,7 @@ files:
md5: c363e95dcd0a90e6e7f847e6e47e0179 md5: c363e95dcd0a90e6e7f847e6e47e0179
sha1: 773633dce5ba323a9e00d9d0f9e4d8c295df7c87 sha1: 773633dce5ba323a9e00d9d0f9e4d8c295df7c87
size: 16384 size: 16384
validation: [size]
note: "Spectrum +3e ROM 2. Embedded in core." note: "Spectrum +3e ROM 2. Embedded in core."
source_ref: "fuse/settings.c:244, fuse/machines/specplus3e.c:76" source_ref: "fuse/settings.c:244, fuse/machines/specplus3e.c:76"
@@ -163,6 +179,7 @@ files:
md5: a148bcc575e51389e84fdf5d555c3196 md5: a148bcc575e51389e84fdf5d555c3196
sha1: 65f031caa8148a5493afe42c41f4929deab26b4e sha1: 65f031caa8148a5493afe42c41f4929deab26b4e
size: 16384 size: 16384
validation: [size]
note: "Spectrum +3e ROM 3. Same as plus3-3.rom. Embedded in core." note: "Spectrum +3e ROM 3. Same as plus3-3.rom. Embedded in core."
source_ref: "fuse/settings.c:245, fuse/machines/specplus3e.c:79" source_ref: "fuse/settings.c:245, fuse/machines/specplus3e.c:79"
@@ -173,6 +190,7 @@ files:
md5: fb3f86eb1e5a695d9c50c124e7cfb875 md5: fb3f86eb1e5a695d9c50c124e7cfb875
sha1: 8608328d7dd66602a4846f046b24fed500f7d828 sha1: 8608328d7dd66602a4846f046b24fed500f7d828
size: 16384 size: 16384
validation: [size]
note: "Spectrum SE ROM 0. Embedded in core." note: "Spectrum SE ROM 0. Embedded in core."
source_ref: "fuse/settings.c:251, fuse/machines/spec_se.c:89" source_ref: "fuse/settings.c:251, fuse/machines/spec_se.c:89"
@@ -183,6 +201,7 @@ files:
md5: 88de4a3129086f34bb9ca559acc51e6c md5: 88de4a3129086f34bb9ca559acc51e6c
sha1: 3be5de57dd3bd0a9d15c57cabe9179afe2906a52 sha1: 3be5de57dd3bd0a9d15c57cabe9179afe2906a52
size: 16384 size: 16384
validation: [size]
note: "Spectrum SE ROM 1. Embedded in core." note: "Spectrum SE ROM 1. Embedded in core."
source_ref: "fuse/settings.c:252, fuse/machines/spec_se.c:92" source_ref: "fuse/settings.c:252, fuse/machines/spec_se.c:92"
@@ -193,6 +212,7 @@ files:
md5: 9dd7ecf784a6c04265c073c236f5fadb md5: 9dd7ecf784a6c04265c073c236f5fadb
sha1: febb2d495b6eda7cdcb4074935d6e9d9f328972d sha1: febb2d495b6eda7cdcb4074935d6e9d9f328972d
size: 16384 size: 16384
validation: [size]
note: "Timex TC2048 ROM. Embedded in core." note: "Timex TC2048 ROM. Embedded in core."
source_ref: "fuse/settings.c:254, fuse/machines/tc2048.c:80" source_ref: "fuse/settings.c:254, fuse/machines/tc2048.c:80"
@@ -203,6 +223,7 @@ files:
md5: 55d462fccc6c536037404ef4ced08bec md5: 55d462fccc6c536037404ef4ced08bec
sha1: 1446cb2780a9dedf640404a639fa3ae518b2d8aa sha1: 1446cb2780a9dedf640404a639fa3ae518b2d8aa
size: 16384 size: 16384
validation: [size]
note: "Timex TC2068 ROM 0. Also used for TS2068. Embedded in core." note: "Timex TC2068 ROM 0. Also used for TS2068. Embedded in core."
source_ref: "fuse/settings.c:255,257, fuse/machines/tc2068.c:138" source_ref: "fuse/settings.c:255,257, fuse/machines/tc2068.c:138"
@@ -213,6 +234,7 @@ files:
md5: 575d203c6e15e679fba0b73f854ec7a2 md5: 575d203c6e15e679fba0b73f854ec7a2
sha1: 7e265a2c1f621ed365ea23bdcafdedbc79c1299c sha1: 7e265a2c1f621ed365ea23bdcafdedbc79c1299c
size: 8192 size: 8192
validation: [size]
note: "Timex TC2068 ROM 1 (EXROM). Also used for TS2068. Embedded in core." note: "Timex TC2068 ROM 1 (EXROM). Also used for TS2068. Embedded in core."
source_ref: "fuse/settings.c:256,258, fuse/machines/tc2068.c:141" source_ref: "fuse/settings.c:256,258, fuse/machines/tc2068.c:141"
@@ -224,6 +246,7 @@ files:
required: true required: true
md5: "" md5: ""
size: 16384 size: 16384
validation: [size]
note: "Pentagon 128K/512K/1024 ROM 0. Required for Pentagon machines." note: "Pentagon 128K/512K/1024 ROM 0. Required for Pentagon machines."
source_ref: "fuse/settings.c:221,225,229, fuse/machines/pentagon.c:135" source_ref: "fuse/settings.c:221,225,229, fuse/machines/pentagon.c:135"
@@ -232,6 +255,7 @@ files:
required: true required: true
md5: "" md5: ""
size: 16384 size: 16384
validation: [size]
note: "Pentagon 128K/512K/1024 ROM 1. Required for Pentagon machines." note: "Pentagon 128K/512K/1024 ROM 1. Required for Pentagon machines."
source_ref: "fuse/settings.c:222,226,230, fuse/machines/pentagon.c:138" source_ref: "fuse/settings.c:222,226,230, fuse/machines/pentagon.c:138"
@@ -240,6 +264,7 @@ files:
required: true required: true
md5: "" md5: ""
size: 16384 size: 16384
validation: [size]
note: "TR-DOS ROM (Beta 128 disk interface). Used by Pentagon and Scorpion." note: "TR-DOS ROM (Beta 128 disk interface). Used by Pentagon and Scorpion."
source_ref: "fuse/settings.c:223,227,231, fuse/machines/pentagon.c:141" source_ref: "fuse/settings.c:223,227,231, fuse/machines/pentagon.c:141"
@@ -248,6 +273,7 @@ files:
required: true required: true
md5: "" md5: ""
size: 16384 size: 16384
validation: [size]
note: "Gluck ROM. Required for Pentagon 512K and 1024." note: "Gluck ROM. Required for Pentagon 512K and 1024."
source_ref: "fuse/settings.c:224,228, fuse/machines/pentagon512.c:82" source_ref: "fuse/settings.c:224,228, fuse/machines/pentagon512.c:82"
@@ -257,6 +283,7 @@ files:
required: true required: true
md5: "" md5: ""
size: 16384 size: 16384
validation: [size]
note: "Scorpion 256K ROM 0. Required for Scorpion machine." note: "Scorpion 256K ROM 0. Required for Scorpion machine."
source_ref: "fuse/settings.c:247, fuse/machines/scorpion.c:76" source_ref: "fuse/settings.c:247, fuse/machines/scorpion.c:76"
@@ -265,6 +292,7 @@ files:
required: true required: true
md5: "" md5: ""
size: 16384 size: 16384
validation: [size]
note: "Scorpion 256K ROM 1. Required for Scorpion machine." note: "Scorpion 256K ROM 1. Required for Scorpion machine."
source_ref: "fuse/settings.c:248, fuse/machines/scorpion.c:79" source_ref: "fuse/settings.c:248, fuse/machines/scorpion.c:79"
@@ -273,6 +301,7 @@ files:
required: true required: true
md5: "" md5: ""
size: 16384 size: 16384
validation: [size]
note: "Scorpion 256K ROM 2. Required for Scorpion machine." note: "Scorpion 256K ROM 2. Required for Scorpion machine."
source_ref: "fuse/settings.c:249, fuse/machines/scorpion.c:82" source_ref: "fuse/settings.c:249, fuse/machines/scorpion.c:82"
@@ -281,6 +310,7 @@ files:
required: true required: true
md5: "" md5: ""
size: 16384 size: 16384
validation: [size]
note: "Scorpion 256K ROM 3 (TR-DOS). Required for Scorpion machine." note: "Scorpion 256K ROM 3 (TR-DOS). Required for Scorpion machine."
source_ref: "fuse/settings.c:250, fuse/machines/scorpion.c:85" source_ref: "fuse/settings.c:250, fuse/machines/scorpion.c:85"
@@ -289,7 +319,8 @@ files:
system: sinclair-zxspectrum system: sinclair-zxspectrum
required: false required: false
md5: "" md5: ""
size: 16384 size: 8192
validation: [size]
note: "Interface 1 ROM (edition 2). Loaded by peripherals/if1.c:403." note: "Interface 1 ROM (edition 2). Loaded by peripherals/if1.c:403."
source_ref: "fuse/settings.c:216, fuse/peripherals/if1.c:403" source_ref: "fuse/settings.c:216, fuse/peripherals/if1.c:403"
@@ -299,6 +330,7 @@ files:
md5: 78e61a2a02121873c1756b21fd1398b1 md5: 78e61a2a02121873c1756b21fd1398b1
sha1: 9a75ed4b293f968985be4c9aa893cd88276d1ced sha1: 9a75ed4b293f968985be4c9aa893cd88276d1ced
size: 8192 size: 8192
validation: [size]
note: "DISCiPLE disk interface ROM. Bundled in repo but not in mem_entries[]." note: "DISCiPLE disk interface ROM. Bundled in repo but not in mem_entries[]."
source_ref: "fuse/settings.c:215, fuse/peripherals/disk/disciple.c:279" source_ref: "fuse/settings.c:215, fuse/peripherals/disk/disciple.c:279"
@@ -308,6 +340,7 @@ files:
md5: 42e5de16fb5e50082bb954ec7ce45851 md5: 42e5de16fb5e50082bb954ec7ce45851
sha1: 6b841dc5797ef7eb219ad455cd1e434ca3b9d30d sha1: 6b841dc5797ef7eb219ad455cd1e434ca3b9d30d
size: 8192 size: 8192
validation: [size]
note: "+D disk interface ROM. Bundled in repo but not in mem_entries[]." note: "+D disk interface ROM. Bundled in repo but not in mem_entries[]."
source_ref: "fuse/settings.c:246, fuse/peripherals/disk/plusd.c:239" source_ref: "fuse/settings.c:246, fuse/peripherals/disk/plusd.c:239"
@@ -315,6 +348,8 @@ files:
system: sinclair-zxspectrum system: sinclair-zxspectrum
required: false required: false
md5: "" md5: ""
size: 14336
validation: [size]
note: "Didaktik 80 disk interface ROM. Not embedded." note: "Didaktik 80 disk interface ROM. Not embedded."
source_ref: "fuse/settings.c:214, fuse/peripherals/disk/didaktik.c:236" source_ref: "fuse/settings.c:214, fuse/peripherals/disk/didaktik.c:236"
@@ -322,6 +357,8 @@ files:
system: sinclair-zxspectrum system: sinclair-zxspectrum
required: false required: false
md5: "" md5: ""
size: 8192
validation: [size]
note: "Opus Discovery disk interface ROM. Not embedded." note: "Opus Discovery disk interface ROM. Not embedded."
source_ref: "fuse/settings.c:220, fuse/peripherals/disk/opus.c:210" source_ref: "fuse/settings.c:220, fuse/peripherals/disk/opus.c:210"
@@ -329,6 +366,8 @@ files:
system: sinclair-zxspectrum system: sinclair-zxspectrum
required: false required: false
md5: "" md5: ""
size: 8192
validation: [size]
note: "Multiface 1 ROM. Not embedded." note: "Multiface 1 ROM. Not embedded."
source_ref: "fuse/settings.c:217, fuse/peripherals/multiface.c:224" source_ref: "fuse/settings.c:217, fuse/peripherals/multiface.c:224"
@@ -336,6 +375,8 @@ files:
system: sinclair-zxspectrum system: sinclair-zxspectrum
required: false required: false
md5: "" md5: ""
size: 8192
validation: [size]
note: "Multiface 128 ROM. Not embedded." note: "Multiface 128 ROM. Not embedded."
source_ref: "fuse/settings.c:218, fuse/peripherals/multiface.c:225" source_ref: "fuse/settings.c:218, fuse/peripherals/multiface.c:225"
@@ -343,6 +384,8 @@ files:
system: sinclair-zxspectrum system: sinclair-zxspectrum
required: false required: false
md5: "" md5: ""
size: 8192
validation: [size]
note: "Multiface 3 ROM. Not embedded." note: "Multiface 3 ROM. Not embedded."
source_ref: "fuse/settings.c:219, fuse/peripherals/multiface.c:226" source_ref: "fuse/settings.c:219, fuse/peripherals/multiface.c:226"
@@ -352,6 +395,7 @@ files:
md5: c54aa8f374b0971f51546c29d5d1eba1 md5: c54aa8f374b0971f51546c29d5d1eba1
sha1: 16af6f052b38a027dd49ba6e96e3a59d16b62672 sha1: 16af6f052b38a027dd49ba6e96e3a59d16b62672
size: 8192 size: 8192
validation: [size]
note: "SpeccyBoot ethernet ROM. Bundled in repo but not in mem_entries[]." note: "SpeccyBoot ethernet ROM. Bundled in repo but not in mem_entries[]."
source_ref: "fuse/settings.c:253, fuse/peripherals/speccyboot.c:148" source_ref: "fuse/settings.c:253, fuse/peripherals/speccyboot.c:148"
@@ -359,6 +403,8 @@ files:
system: sinclair-zxspectrum system: sinclair-zxspectrum
required: false required: false
md5: "" md5: ""
size: 8192
validation: [size]
note: "TTX2000S teletext adapter ROM. Not embedded." note: "TTX2000S teletext adapter ROM. Not embedded."
source_ref: "fuse/settings.c:259, fuse/peripherals/ttx2000s.c:198" source_ref: "fuse/settings.c:259, fuse/peripherals/ttx2000s.c:198"
@@ -366,6 +412,8 @@ files:
system: sinclair-zxspectrum system: sinclair-zxspectrum
required: false required: false
md5: "" md5: ""
size: 8192
validation: [size]
note: "Currah uSource ROM. Not embedded." note: "Currah uSource ROM. Not embedded."
source_ref: "fuse/settings.c:260, fuse/peripherals/usource.c:129" source_ref: "fuse/settings.c:260, fuse/peripherals/usource.c:129"

View File

@@ -3,7 +3,7 @@ type: libretro
core_classification: official_port core_classification: official_port
source: "https://github.com/libretro/galaxy-libretro" source: "https://github.com/libretro/galaxy-libretro"
upstream: "https://github.com/nikp123/Galaksija-Emulator" upstream: "https://github.com/nikp123/Galaksija-Emulator"
profiled_date: "2026-03-21" profiled_date: "2026-03-23"
core_version: "v0.1" core_version: "v0.1"
display_name: "Elektronika Inženjering - Galaksija (Galaksija)" display_name: "Elektronika Inženjering - Galaksija (Galaksija)"
cores: cores:
@@ -24,7 +24,6 @@ systems:
# 2. If either is missing: firmware_ignore=true, load embedded compressed ROMs # 2. If either is missing: firmware_ignore=true, load embedded compressed ROMs
# 3. If both present: galaxy_init() reads files from disk (init.c:46-105) # 3. If both present: galaxy_init() reads files from disk (init.c:46-105)
# 4. ROM2.BIN missing is a warning only, not fatal (init.c:84-85) # 4. ROM2.BIN missing is a warning only, not fatal (init.c:84-85)
# 5. GAL_PLUS.BIN: referenced in a TODO comment but not implemented yet
# #
# Memory map: # Memory map:
# 0x0000-0x0FFF: ROM1 (4096 bytes) - BASIC interpreter # 0x0000-0x0FFF: ROM1 (4096 bytes) - BASIC interpreter
@@ -42,6 +41,7 @@ files:
size: 2048 size: 2048
required: false required: false
hle_fallback: true hle_fallback: true
validation: [size]
note: > note: >
Character generator ROM. Defines the 128-character bitmap font (8x13 pixels Character generator ROM. Defines the 128-character bitmap font (8x13 pixels
each). The core has this embedded compressed in rom.c and only loads the each). The core has this embedded compressed in rom.c and only loads the
@@ -53,6 +53,7 @@ files:
size: 4096 size: 4096
required: false required: false
hle_fallback: true hle_fallback: true
validation: [size]
note: > note: >
System ROM / BASIC interpreter. Mapped at 0x0000-0x0FFF. Contains the System ROM / BASIC interpreter. Mapped at 0x0000-0x0FFF. Contains the
Galaksija BASIC language and boot routines. Embedded in rom.c as fallback. Galaksija BASIC language and boot routines. Embedded in rom.c as fallback.
@@ -63,6 +64,7 @@ files:
size: 4096 size: 4096
required: false required: false
hle_fallback: true hle_fallback: true
validation: [size]
note: > note: >
Math extension ROM. Mapped at 0x1000-0x1FFF. Adds floating-point math Math extension ROM. Mapped at 0x1000-0x1FFF. Adds floating-point math
functions (SIN, COS, TG, SQR, LN, EXP, POW, etc). Optional even when functions (SIN, COS, TG, SQR, LN, EXP, POW, etc). Optional even when
@@ -70,17 +72,6 @@ files:
rom.c as fallback. rom.c as fallback.
source_ref: "src/rom.h:11, src/libretro.c:107-110, src/external/galaksija-emulator/src/init.c:83-92" source_ref: "src/rom.h:11, src/libretro.c:107-110, src/external/galaksija-emulator/src/init.c:83-92"
- name: "GAL_PLUS.BIN"
path: "galaksija/GAL_PLUS.BIN"
size: 4096
required: false
note: >
Galaksija Plus extension ROM. Would map at 0xE000-0xEFFF. Referenced in a
TODO comment in init.c but not yet implemented in the libretro core. The
original standalone emulator loaded it optionally with a Serbian message
on failure ("GAL_PLUS.BIN nije prisutan, idemo dalje bez njega!").
source_ref: "src/external/galaksija-emulator/src/init.c:94-104"
notes: notes:
embedded_firmware: > embedded_firmware: >
All three ROMs (CHRGEN.BIN, ROM1.BIN, ROM2.BIN) are embedded as compressed All three ROMs (CHRGEN.BIN, ROM1.BIN, ROM2.BIN) are embedded as compressed
@@ -97,6 +88,3 @@ notes:
The emulator code and included firmware are public domain. External The emulator code and included firmware are public domain. External
dependencies (libz80, libretro-common, tinyfiledialogs) have separate dependencies (libz80, libretro-common, tinyfiledialogs) have separate
licenses (GPL2, MIT). licenses (GPL2, MIT).
no_bios_required_for_pack: >
Since all firmware is embedded, this core does not need any BIOS files in
platform packs. The files listed above are optional overrides only.

View File

@@ -3,7 +3,7 @@ type: libretro
core_classification: pure_libretro core_classification: pure_libretro
source: "https://github.com/ThisBoringWorld/gam4980" source: "https://github.com/ThisBoringWorld/gam4980"
upstream: "https://codeberg.org/iyzsong/gam4980" upstream: "https://codeberg.org/iyzsong/gam4980"
profiled_date: "2026-03-21" profiled_date: "2026-03-23"
core_version: "0.2" core_version: "0.2"
display_name: "GAM4980" display_name: "GAM4980"
cores: cores:
@@ -11,58 +11,44 @@ cores:
systems: systems:
- bbk-longman-4980 - bbk-longman-4980
# GAM4980 is a BBK Longman 4980 electronic dictionary game emulator for # GAM4980 emulates the BBK Longman 4980 (A4980/A4988) electronic dictionary.
# libretro. Original code from https://codeberg.org/iyzsong/gam4980, based # Original code from https://codeberg.org/iyzsong/gam4980, based on the
# on the BA4988 BBK simulator by Wuyun. # BA4988 BBK simulator by Wuyun. Uses a 6502-based CPU with banked ROM access.
# #
# The device uses a 6502-based CPU with banked ROM access. # ROM loading (src/libretro.c:692-760, sys_init):
#
# ROM loading (src/libretro.c:1171-1177, retro_init):
# The core gets the RetroArch system directory via RETRO_ENVIRONMENT_GET_SYSTEM_DIRECTORY,
# appends "/gam4980" to build the ROM directory path, then calls sys_init(romdir).
#
# sys_init (src/libretro.c:693-723):
# Opens romdir/8.BIN and reads 0x200000 bytes (2 MB) into sys.rom_8 (font ROM). # Opens romdir/8.BIN and reads 0x200000 bytes (2 MB) into sys.rom_8 (font ROM).
# Opens romdir/E.BIN and reads 0x200000 bytes (2 MB) into sys.rom_e (OS ROM). # Opens romdir/E.BIN and reads 0x200000 bytes (2 MB) into sys.rom_e (OS ROM).
# Both files are mandatory -- no fallback, no error handling. The core will # The upstream has error handling (error_msg + RETRO_ENVIRONMENT_SHUTDOWN on
# crash if either file is missing. # missing files). The fork (ThisBoringWorld) removed these checks -- crashes
# on missing files.
# #
# Memory map (src/libretro.c:109-110, 300-305): # Memory map (src/libretro.c:109-110, 300-305):
# 0x800000-0x9FFFFF rom_8 (font ROM, 8.BIN) # 0x800000-0x9FFFFF rom_8 (font ROM, 8.BIN)
# 0xE00000-0xFFFFFF rom_e (OS ROM, E.BIN) # 0xE00000-0xFFFFFF rom_e (OS ROM, E.BIN)
# These ROMs must be dumped from a physical BBK Longman 4980 dictionary.
# #
# The .info file does not declare firmware entries. The core is marked # No hash validation. No size validation. The .info declares firmware_count=0.
# is_experimental = true.
notes: | notes: |
Place 8.BIN and E.BIN in the RetroArch system/gam4980/ subdirectory. Place 8.BIN and E.BIN in the RetroArch system/gam4980/ subdirectory.
Both files must be 2 MB dumps from a BBK Longman 4980 dictionary: Both files must be 2 MB dumps from a BBK Longman 4980 dictionary:
8.BIN - font ROM, dumped from address range 0x800000-0x9FFFFF 8.BIN - font ROM, dumped from address range 0x800000-0x9FFFFF
E.BIN - OS ROM, dumped from address range 0xE00000-0xFFFFFF E.BIN - OS ROM, dumped from address range 0xE00000-0xFFFFFF
The core will crash without these files (no error handling in sys_init).
Game files use the .gam extension. Game files use the .gam extension.
files: files:
- name: "gam4980/8.BIN" - name: "gam4980/8.BIN"
size: 2097152 size: 2097152
md5: ddfc001a6859d63ed46368ea7fe9f20c
sha1: 062067e6d661c3d3e10d910435be4a59db1bee9f
required: true required: true
system: bbk-longman-4980 system: bbk-longman-4980
bundled: false note: "Font ROM (2 MB). Loaded at 0x800000."
note: "Font ROM (2 MB). Loaded at 0x800000. Dumped from physical device (src/libretro.c:716-718)." source_ref: "src/libretro.c:716-718"
source_ref: "src/libretro.c:716"
- name: "gam4980/E.BIN" - name: "gam4980/E.BIN"
size: 2097152 size: 2097152
md5: 72a16fd0d2453108321edc65cd347c77
sha1: b486b6eda5cd7e79bb5605d1fbe36eb88bfc6724
required: true required: true
system: bbk-longman-4980 system: bbk-longman-4980
bundled: false note: "OS ROM (2 MB). Loaded at 0xE00000."
note: "OS ROM (2 MB). Loaded at 0xE00000. Dumped from physical device (src/libretro.c:720-722)." source_ref: "src/libretro.c:720-722"
source_ref: "src/libretro.c:720"
platform_details: platform_details:
bios_mapping: bios_mapping:
@@ -75,7 +61,7 @@ platform_details:
the banking system. the banking system.
load_path: load_path:
source_ref: "src/libretro.c:1173-1177" source_ref: "src/libretro.c:1173-1175"
notes: | notes: |
retro_init() builds the path as {system_directory}/gam4980/ and retro_init() builds the path as {system_directory}/gam4980/ and
passes it to sys_init(). Files must be named exactly 8.BIN and passes it to sys_init(). Files must be named exactly 8.BIN and

View File

@@ -3,7 +3,7 @@ type: libretro
core_classification: community_fork core_classification: community_fork
source: "https://github.com/libretro/gambatte-libretro" source: "https://github.com/libretro/gambatte-libretro"
upstream: "https://github.com/sinamas/gambatte" upstream: "https://github.com/sinamas/gambatte"
profiled_date: "2026-03-21" profiled_date: "2026-03-23"
core_version: "v0.5.0" core_version: "v0.5.0"
display_name: "Nintendo - Game Boy / Color (Gambatte)" display_name: "Nintendo - Game Boy / Color (Gambatte)"
cores: cores:
@@ -11,52 +11,45 @@ cores:
systems: [nintendo-gb, nintendo-gbc] systems: [nintendo-gb, nintendo-gbc]
notes: | notes: |
Gambatte is a Game Boy / Game Boy Color emulator focused on accuracy. Accuracy-focused GB/GBC emulator. No BIOS required for normal operation;
No BIOS is required for normal operation. The core has a built-in built-in HLE boot sequence skips the Nintendo logo animation.
HLE boot sequence that skips the Nintendo logo animation by default.
When the core option "gambatte_gb_bootloader" is set to "enabled" Core option gambatte_gb_bootloader (default: enabled) enables loading
(the default), the core looks for official boot ROMs in the system official boot ROMs from the system directory for the real startup animation.
directory to play the real startup logo animation. If the files are If missing, emulation works without them.
missing, emulation still works without them.
The boot ROM loaded depends on the hardware mode: Boot ROM selection by hardware mode:
- DMG (original Game Boy): gb_bios.bin (256 bytes, 0x100) - DMG: gb_bios.bin (256 bytes)
- CGB (Game Boy Color) or GBA mode: gbc_bios.bin (2304 bytes, 0x900) - CGB or GBA: gbc_bios.bin (2304 bytes)
In GBA mode the core patches the CGB boot ROM at 0xF2 to fake In GBA mode the core patches the CGB boot ROM at 0xF2 to fake GBA
GBA detection (ld b,0x01), enabling GBA-enhanced features in detection (ld b,0x01), enabling GBA-enhanced features in compatible
compatible GBC games (Shantae, Zelda Oracle series, etc.). GBC games.
File path construction: libretro.cpp get_bootloader_from_file() The upstream standalone supports SGB boot ROM loading; the libretro
joins RETRO_ENVIRONMENT_GET_SYSTEM_DIRECTORY with each filename port does not implement this.
directly - no subdirectories.
Gambatte does NOT use sgb_bios.bin. The SGB palette references in Custom palette files (palettes/*.pal) are user-created colorization
the source are color lookup tables for DMG palette colorization, configs loaded when GB Colorization is set to "custom". These are
not actual Super Game Boy boot ROM loading. user-generated content, not distributable files.
files: files:
# --- DMG boot ROM (optional, enables startup animation) ---
- name: "gb_bios.bin" - name: "gb_bios.bin"
system: nintendo-gb system: nintendo-gb
description: "Original Game Boy (DMG-01) boot ROM" description: "Original Game Boy (DMG-01) boot ROM"
required: false required: false
hle_fallback: true hle_fallback: true
size: 256 size: 256
md5: "32fbbd84168d3482956eb3c5051637f5" validation: {core: [size], upstream: [size, crc32]}
sha1: "4ed31ec6b0b175bb109c0eb5fd3d193da823339f" source_ref: "libretro.cpp:1303-1363 (get_bootloader_from_file), bootloader.cpp:20-55 (load)"
source_ref: "libretro.cpp:1304-1364 (get_bootloader_from_file), bootloader.cpp:20-55 (load)" notes: "Mapped at 0x0000-0x00FF, swapped out when register 0xFF50 is written."
notes: "Mapped at 0x0000-0x00FF, swapped out when register 0xFF50 is written. Core option gambatte_gb_bootloader must be enabled."
# --- CGB boot ROM (optional, enables startup animation) ---
- name: "gbc_bios.bin" - name: "gbc_bios.bin"
system: nintendo-gbc system: nintendo-gbc
description: "Game Boy Color (CGB-001) boot ROM" description: "Game Boy Color (CGB-001) boot ROM"
required: false required: false
hle_fallback: true hle_fallback: true
size: 2304 size: 2304
md5: "dbfce9db9deaa2567f6a84fde55f9680" validation: {core: [size], upstream: [size, crc32]}
sha1: "1293d68bf9643bc4f36954c1e80e38f39864528d" source_ref: "libretro.cpp:1303-1363 (get_bootloader_from_file), bootloader.cpp:20-55 (load)"
source_ref: "libretro.cpp:1304-1364 (get_bootloader_from_file), bootloader.cpp:20-55 (load)" notes: "Mapped at 0x0000-0x08FF with cartridge data preserved at 0x0100-0x01FF. Also used for GBA mode with a patch at 0xF2. Presence required for FORCE_CGB flag when hw mode is GBC or GBA."
notes: "Mapped at 0x0000-0x08FF with cartridge data preserved at 0x0100-0x01FF. Also used for GBA-enhanced mode with a patch at 0xF2. Presence required for FORCE_CGB flag when hw mode is set to GBC or GBA."

View File

@@ -1,9 +1,9 @@
emulator: Gearboy emulator: Gearboy
type: libretro type: libretro
core_classification: community_fork core_classification: official_port
source: "https://github.com/libretro/Gearboy" source: "https://github.com/drhelius/Gearboy"
upstream: "https://github.com/drhelius/Gearboy" upstream: "https://github.com/drhelius/Gearboy"
profiled_date: "2026-03-21" profiled_date: "2026-03-23"
core_version: "3.4.1" core_version: "3.4.1"
display_name: "Nintendo - Game Boy / Color (Gearboy)" display_name: "Nintendo - Game Boy / Color (Gearboy)"
cores: cores:
@@ -13,19 +13,25 @@ systems:
- nintendo-gbc - nintendo-gbc
notes: | notes: |
Gearboy is a Game Boy / Game Boy Color emulator by drhelius (Nacho Sanchez). Gearboy is a Game Boy / Game Boy Color emulator by drhelius (Ignacio Sanchez).
The buildbot builds from drhelius/Gearboy (upstream), not from libretro/Gearboy
(abandoned fork frozen at v2.6.0 from 2018).
Bootrom loading is gated behind core options (disabled by default).
Without bootroms, the core HLE-skips the boot animation.
The upstream standalone has bootrom support (dmg_boot.bin, cgb_boot.bin) files:
via emu_load_bootrom_dmg/gbc (platforms/desktop-shared/emu.cpp:407-422). - name: dmg_boot.bin
The libretro port does NOT load any BIOS files — retro_init() only stores description: Game Boy DMG bootrom
system_dir, retro_load_game() calls LoadROMFromBuffer() with no bootrom size: 256
loading code (platforms/libretro/libretro.cpp:94-109, 335-364). required: false
hle_fallback: true
validation: [size]
source_ref: "libretro.cpp:208,211 Memory.cpp:601-606,699-738"
The .info declares firmware_count=2 (dmg_boot.bin, cgb_boot.bin) but the - name: cgb_boot.bin
code never references these files. .info is wrong for the libretro port. description: Game Boy Color bootrom
size: 2304
The core HLE-skips the boot animation — games work without BIOS. required: false
hle_fallback: true
files: [] validation: [size]
source_ref: "libretro.cpp:209,212 Memory.cpp:608-611,699-738"
exclusion_note: "The .info declares dmg_boot.bin and cgb_boot.bin but the libretro port never loads them (no bootrom loading code in libretro.cpp). The upstream standalone supports bootroms but this was not ported to libretro."

View File

@@ -2,7 +2,8 @@ emulator: Gearcoleco
type: libretro type: libretro
core_classification: official_port core_classification: official_port
source: "https://github.com/drhelius/Gearcoleco" source: "https://github.com/drhelius/Gearcoleco"
profiled_date: "2026-03-21" upstream: "https://github.com/drhelius/Gearcoleco"
profiled_date: "2026-03-23"
core_version: "1.0.0" core_version: "1.0.0"
display_name: "Coleco - ColecoVision (Gearcoleco)" display_name: "Coleco - ColecoVision (Gearcoleco)"
cores: cores:
@@ -11,23 +12,20 @@ systems:
- colecovision - colecovision
notes: | notes: |
Gearcoleco is a ColecoVision emulator by Ignacio Sanchez (drhelius). ColecoVision emulator by Ignacio Sanchez (drhelius). Official port
The ColecoVision BIOS ROM is required to run games. Without it, the maintained by the upstream author. The ColecoVision BIOS ROM is required.
core displays a static "no BIOS" placeholder image (kNoBiosImage from Without it, the core renders a static placeholder image (kNoBiosImage from
no_bios.h) and games will not execute. no_bios.h) and games do not execute.
The BIOS is loaded in load_bootroms() (libretro.cpp:293-305) from the The libretro wrapper (libretro.cpp:293-306) tries "colecovision.rom" first,
system directory. The core first tries "colecovision.rom", then falls then falls back to "coleco.rom". Both resolve to the same LoadBios() call
back to "coleco.rom" if the first file is not found. in Memory.cpp:228-259 which validates size == 0x2000 (8192 bytes) only.
No hash check is performed.
Memory.cpp:LoadBios() validates the file size must be exactly 8192 On reset, BIOS byte at offset 0x69 is patched for region selection:
bytes (0x2000). No hash check is performed by the core itself.
On reset, the BIOS byte at offset 0x69 is patched to select region:
0x3C for NTSC, 0x32 for PAL (Memory.cpp:184-187). 0x3C for NTSC, 0x32 for PAL (Memory.cpp:184-187).
The core also supports Super Game Module (SGM) expanded RAM but that SGM (Super Game Module) expanded RAM requires no additional BIOS files.
requires no additional BIOS files.
files: files:
- name: "colecovision.rom" - name: "colecovision.rom"
@@ -35,16 +33,5 @@ files:
system: colecovision system: colecovision
required: true required: true
size: 8192 size: 8192
source_ref: "platforms/libretro/libretro.cpp:293-305 (load_bootroms)" validation: [size]
source_ref: "platforms/libretro/libretro.cpp:293-306, src/Memory.cpp:228-259"
platform_details:
colecovision:
bios_filename: "colecovision.rom"
bios_fallback: "coleco.rom"
bios_size: 8192
source_ref: "src/Memory.cpp:228-258"
notes: |
LoadBios() reads the file as raw binary. Size must be exactly 0x2000
(8192 bytes) or the load is rejected with a log message. The BIOS is
mapped at address 0x0000-0x1FFF in the ColecoVision memory map. On
reset, byte 0x69 is patched for NTSC/PAL region selection.

View File

@@ -2,7 +2,8 @@ emulator: Geargrafx
type: libretro type: libretro
core_classification: official_port core_classification: official_port
source: "https://github.com/drhelius/Geargrafx" source: "https://github.com/drhelius/Geargrafx"
profiled_date: "2026-03-21" upstream: "https://github.com/drhelius/Geargrafx"
profiled_date: "2026-03-23"
core_version: "1.6.0" core_version: "1.6.0"
display_name: "NEC - PC Engine / SuperGrafx / CD (Geargrafx)" display_name: "NEC - PC Engine / SuperGrafx / CD (Geargrafx)"
cores: cores:
@@ -14,107 +15,68 @@ systems:
notes: | notes: |
Geargrafx is a PC Engine / TurboGrafx-16 / SuperGrafx / CD-ROM emulator by Geargrafx is a PC Engine / TurboGrafx-16 / SuperGrafx / CD-ROM emulator by
Ignacio Sanchez (drhelius). HuCard games (pce/sgx/hes) run without BIOS. Ignacio Sanchez (drhelius). HuCard games run without BIOS.
CD-ROM games require a System Card BIOS loaded from the system directory. CD-ROM games require a System Card BIOS from the system directory. The core
The core option "geargrafx_cdrom_bios" selects which card image to use: option "geargrafx_cdrom_bios" selects which card: Auto (default, maps to
Auto (default, maps to syscard3.pce), System Card 1, System Card 2, syscard3.pce), System Card 1, System Card 2, System Card 3, or Game Express.
System Card 3, or Game Express. The load_bios() function in libretro.cpp load_bios() in libretro.cpp builds "{system_directory}/{filename}" and calls
builds the path as "{system_directory}/{filename}" and calls
core->LoadBios(path, true) for the syscard, then always attempts to load core->LoadBios(path, true) for the syscard, then always attempts to load
gexpress.pce as the Game Express BIOS via core->LoadBios(path, false). gexpress.pce via core->LoadBios(path, false).
BIOS validation uses CRC32 against an internal game_db (game_db.h). LoadBios() in media.cpp reads the file, strips a 512-byte header if present,
The LoadBios() function in media.cpp reads the file, strips a 512-byte computes CRC32, and checks it against k_game_database entries flagged with
header if present, computes CRC32, and looks it up in k_game_database GG_GAMEDB_BIOS_SYSCARD or GG_GAMEDB_BIOS_GAME_EXPRESS. If the CRC32 is not
entries flagged with GG_GAMEDB_BIOS_SYSCARD or GG_GAMEDB_BIOS_GAME_EXPRESS. found, the BIOS is marked as "Unknown" and invalid, but loading still proceeds.
If the CRC32 is not found, the BIOS is marked as "Unknown" and invalid, Size is checked against expected constants and logged if wrong, but not enforced.
but loading still proceeds (the file is kept in memory).
Expected BIOS sizes (from defines.h):
- System Card: GG_BIOS_SYSCARD_SIZE = 0x40000 (256 KB)
- Game Express: GG_BIOS_GAME_EXPRESS_SIZE = 0x8000 (32 KB)
Game Express CD-ROM games are auto-detected via CRC32 lookup in game_db.h Game Express CD-ROM games are auto-detected via CRC32 lookup in game_db.h
(GG_GAMEDB_GAME_EXPRESS flag). When detected, the core uses the Game Express (GG_GAMEDB_GAME_EXPRESS flag). Arcade Card games are also detected from
BIOS instead of the System Card for ROM bank mapping (media.cpp:649). game_db.h and enable extra 0x30000 bytes of Card RAM for Super CD-ROM mode.
Arcade Card games are also detected from game_db.h and enable extra
0x30000 bytes of Card RAM for Super CD-ROM mode.
No separate US-specific filenames (syscard3u.pce). US variants must be
named syscard3.pce/syscard2.pce — recognized by CRC32 validation.
files: files:
# -- CD-ROM System Card 3 (Japan) - default --
- name: "syscard3.pce" - name: "syscard3.pce"
description: "Super CD-ROM System Card 3.0 (Japan)" description: "Super CD-ROM System Card 3.0"
region: "NTSC-J" size: 262144
required: true required: true
source_ref: "libretro.cpp:453,471-473, game_db.h:50 CRC32=0x6D9A73EF" validation: [size, crc32]
source_ref: "libretro.cpp:453,471-473, media.cpp:241-307, defines.h:52, game_db.h:50,52"
notes: > notes: >
Default BIOS for CD-ROM games (cdrom_bios=0 or 3). Recommended for Default BIOS for CD-ROM games (cdrom_bios Auto or System Card 3).
most CD-ROM and Super CD-ROM titles. 256 KB expected size. game_db.h recognizes Japan (CRC32 6D9A73EF) and USA (CRC32 2B5B75FE)
variants under the same filename.
# -- CD-ROM System Card 2 (Japan) --
- name: "syscard2.pce" - name: "syscard2.pce"
description: "CD-ROM System Card 2.0 (Japan)" description: "CD-ROM System Card 2.0"
region: "NTSC-J" size: 262144
required: false required: false
source_ref: "libretro.cpp:452,462-463, game_db.h:48-49" validation: [size, crc32]
source_ref: "libretro.cpp:452,462-463, media.cpp:241-307, game_db.h:48-49,51"
notes: > notes: >
cdrom_bios = 'System Card 2'. For older CD-ROM2 titles. game_db.h lists cdrom_bios = 'System Card 2'. For older CD-ROM2 titles. game_db.h
two variants: v2.0 (CRC32=0x52520BC6) and v2.1 (CRC32=0x283B74E0). recognizes three variants: v2.0 Japan (CRC32 52520BC6), v2.1 Japan
(CRC32 283B74E0), and USA (CRC32 FF2A5EC3).
# -- CD-ROM System Card 1 (Japan) --
- name: "syscard1.pce" - name: "syscard1.pce"
description: "CD-ROM System Card 1.0 (Japan)" description: "CD-ROM System Card 1.0 (Japan)"
region: "NTSC-J" size: 262144
required: false required: false
source_ref: "libretro.cpp:451,459-460, game_db.h:47 CRC32=0x3F9F95A4" validation: [size, crc32]
source_ref: "libretro.cpp:451,459-460, media.cpp:241-307, game_db.h:47"
notes: > notes: >
cdrom_bios = 'System Card 1'. Very early CD-ROM2 games only. cdrom_bios = 'System Card 1'. Very early CD-ROM2 games only.
CRC32 3F9F95A4.
# -- TurboGrafx CD System Card 3 (US) --
# Not directly selectable via core option, but game_db.h recognizes it.
- name: "syscard3.pce"
sha1_note: "US variant"
description: "TurboGrafx CD Super System Card 3.0 (US)"
region: "NTSC-U"
required: false
source_ref: "game_db.h:52 CRC32=0x2B5B75FE"
notes: >
US variant must be named syscard3.pce. CRC32 validation recognizes it.
# -- TurboGrafx CD System Card 2 (US) --
- name: "syscard2.pce"
sha1_note: "US variant"
description: "TurboGrafx CD System Card 2.0 (US)"
region: "NTSC-U"
required: false
source_ref: "game_db.h:51 CRC32=0xFF2A5EC3"
notes: >
Same constraint as US System Card 3: must be named syscard2.pce.
Recognized by game_db.h CRC32 validation.
# -- Game Express CD Card --
- name: "gexpress.pce" - name: "gexpress.pce"
description: "Game Express CD Card" description: "Game Express CD Card"
region: "NTSC-J" size: 32768
required: false required: false
source_ref: "libretro.cpp:454,468-469,481-482, game_db.h:53-54" validation: [size, crc32]
source_ref: "libretro.cpp:454,468-469,481-482, media.cpp:241-307, defines.h:53, game_db.h:53-54"
notes: > notes: >
Always loaded alongside the selected System Card BIOS (libretro.cpp:481). Always loaded alongside the selected System Card BIOS (libretro.cpp:481).
Required for unlicensed Game Express CD-ROM titles (AV Tanjou, Required for Game Express CD-ROM titles. game_db.h recognizes Blue Version
Bishoujo Pachinko, etc). game_db.h lists two variants: (CRC32 51A12D90) and Green Version (CRC32 16AAF05A).
Blue Version (CRC32=0x51A12D90) and Green Version (CRC32=0x16AAF05A).
Expected size: 32 KB (0x8000).
valid_bios_crc32: valid_bios_crc32:
syscard: syscard:

View File

@@ -2,7 +2,7 @@ emulator: Gearlynx
type: libretro type: libretro
core_classification: official_port core_classification: official_port
source: "https://github.com/drhelius/Gearlynx" source: "https://github.com/drhelius/Gearlynx"
profiled_date: "2026-03-21" profiled_date: "2026-03-23"
core_version: "1.0.0" core_version: "1.0.0"
display_name: "Atari - Lynx (GearLynx)" display_name: "Atari - Lynx (GearLynx)"
cores: [gearlynx] cores: [gearlynx]
@@ -12,7 +12,7 @@ verification: existence
notes: | notes: |
Gearlynx is an Atari Lynx emulator by Ignacio Sanchez (drhelius). Gearlynx is an Atari Lynx emulator by Ignacio Sanchez (drhelius).
The libretro core loads lynxboot.img from the system directory at The libretro core loads lynxboot.img from the system directory at
retro_load_game time (libretro.cpp:106-130, function load_bootroms). retro_load_game time (libretro.cpp:105-129, function load_bootroms).
Path is built as: system_directory + "/lynxboot.img", no subdirectory. Path is built as: system_directory + "/lynxboot.img", no subdirectory.
LoadBios in media.cpp:274 reads exactly 512 bytes (GLYNX_BIOS_SIZE LoadBios in media.cpp:274 reads exactly 512 bytes (GLYNX_BIOS_SIZE
@@ -32,7 +32,6 @@ notes: |
to be loaded for the emulation loop to execute. to be loaded for the emulation loop to execute.
ROM extensions: .lnx, .lyx, .o ROM extensions: .lnx, .lyx, .o
Core options: none documented in the libretro port.
files: files:
- name: "lynxboot.img" - name: "lynxboot.img"
@@ -43,5 +42,6 @@ files:
sha1: "e4ed47fae31693e016b081c6bda48da5b70d7ccb" sha1: "e4ed47fae31693e016b081c6bda48da5b70d7ccb"
md5: "fcd403db69f54290b51035d82f835e7b" md5: "fcd403db69f54290b51035d82f835e7b"
crc32: "0d973c9d" crc32: "0d973c9d"
source_ref: "libretro.cpp:106-130 (load_bootroms), media.cpp:274-329 (LoadBios), defines.h:52 (GLYNX_BIOS_SIZE=0x200), game_db.h:38 (GLYNX_DB_BIOS_CRC=0x0D973C9D), gearlynx_core_inline.h:33-37 (no-bios guard)" validation: [size, crc32]
source_ref: "libretro.cpp:105-129 (load_bootroms), media.cpp:274-329 (LoadBios), defines.h:52 (GLYNX_BIOS_SIZE=0x200), game_db.h:38 (GLYNX_DB_BIOS_CRC=0x0D973C9D), gearlynx_core_inline.h:33-37 (no-bios guard)"
notes: "512-byte boot ROM validated by CRC32 after load. Invalid CRC logs a warning but still works. Missing or wrong-size file blocks emulation entirely (no HLE fallback)." notes: "512-byte boot ROM validated by CRC32 after load. Invalid CRC logs a warning but still works. Missing or wrong-size file blocks emulation entirely (no HLE fallback)."

View File

@@ -2,7 +2,8 @@ emulator: Gearsystem
type: libretro type: libretro
core_classification: official_port core_classification: official_port
source: "https://github.com/drhelius/Gearsystem" source: "https://github.com/drhelius/Gearsystem"
profiled_date: "2026-03-21" upstream: "https://github.com/drhelius/Gearsystem"
profiled_date: "2026-03-23"
core_version: "3.2.0" core_version: "3.2.0"
display_name: "Sega - MS/GG/SG-1000 (Gearsystem)" display_name: "Sega - MS/GG/SG-1000 (Gearsystem)"
cores: cores:
@@ -21,8 +22,8 @@ notes: |
(both disabled by default). Boot ROMs are loaded in load_bootroms() (both disabled by default). Boot ROMs are loaded in load_bootroms()
from the system directory with fixed filenames. from the system directory with fixed filenames.
SG-1000 has no BIOS support. IsBootromEnabled() in Memory.cpp explicitly SG-1000 and Game Gear in SMS mode have no BIOS support.
returns false when a SG-1000 cartridge is detected. IsBootromEnabled() returns false for both cases.
When enabled, the boot ROM executes as on original hardware, which may When enabled, the boot ROM executes as on original hardware, which may
cause invalid ROMs to lock or fail to boot entirely. cause invalid ROMs to lock or fail to boot entirely.
@@ -32,17 +33,17 @@ files:
- name: "bios.sms" - name: "bios.sms"
system: sega-mastersystem system: sega-mastersystem
required: false required: false
source_ref: "platforms/libretro/libretro.cpp:413-414 (load_bootroms)" source_ref: "platforms/libretro/libretro.cpp:414,417 (load_bootroms)"
- name: "bios.gg" - name: "bios.gg"
system: sega-gamegear system: sega-gamegear
required: false required: false
source_ref: "platforms/libretro/libretro.cpp:415-416 (load_bootroms)" source_ref: "platforms/libretro/libretro.cpp:415,418 (load_bootroms)"
platform_details: platform_details:
mastersystem: mastersystem:
bios_filename: "bios.sms" bios_filename: "bios.sms"
source_ref: "src/Memory.cpp:222-228" source_ref: "src/Memory.cpp:223-228"
notes: | notes: |
Boot ROM loaded via LoadBootromSMS() -> LoadBootroom(path, false). Boot ROM loaded via LoadBootromSMS() -> LoadBootroom(path, false).
Raw binary read, stored in m_pBootromSMS. Bank count computed as Raw binary read, stored in m_pBootromSMS. Bank count computed as
@@ -50,7 +51,7 @@ platform_details:
gamegear: gamegear:
bios_filename: "bios.gg" bios_filename: "bios.gg"
source_ref: "src/Memory.cpp:230-234" source_ref: "src/Memory.cpp:230-235"
notes: | notes: |
Boot ROM loaded via LoadBootromGG() -> LoadBootroom(path, true). Boot ROM loaded via LoadBootromGG() -> LoadBootroom(path, true).
Raw binary read, stored in m_pBootromGG. Same bank computation. Raw binary read, stored in m_pBootromGG. Same bank computation.
@@ -60,4 +61,4 @@ platform_details:
bios_filename: null bios_filename: null
notes: | notes: |
No BIOS support. Memory.cpp:291 returns false from IsBootromEnabled() No BIOS support. Memory.cpp:291 returns false from IsBootromEnabled()
when IsSG1000() is true. when IsSG1000() or IsGameGearInSMSMode() is true.

View File

@@ -3,7 +3,7 @@ type: libretro
core_classification: community_fork core_classification: community_fork
source: "https://github.com/libretro/Genesis-Plus-GX" source: "https://github.com/libretro/Genesis-Plus-GX"
upstream: "https://github.com/ekeeke/Genesis-Plus-GX" upstream: "https://github.com/ekeeke/Genesis-Plus-GX"
profiled_date: "2026-03-21" profiled_date: "2026-03-23"
core_version: "v1.7.4" core_version: "v1.7.4"
display_name: "Sega - MS/GG/MD/CD (Genesis Plus GX)" display_name: "Sega - MS/GG/MD/CD (Genesis Plus GX)"
cores: cores:
@@ -36,21 +36,18 @@ files:
- name: bios_CD_U.bin - name: bios_CD_U.bin
system: sega-megacd system: sega-megacd
required: true required: true
size: 131072 # 128 KB (0x20000)
note: "Sega CD (NTSC-U) boot ROM. Loaded for REGION_USA." note: "Sega CD (NTSC-U) boot ROM. Loaded for REGION_USA."
source_ref: "core/loadrom.c:409" source_ref: "core/loadrom.c:409"
- name: bios_CD_E.bin - name: bios_CD_E.bin
system: sega-megacd system: sega-megacd
required: true required: true
size: 131072
note: "Mega CD (PAL) boot ROM. Loaded for REGION_EUROPE." note: "Mega CD (PAL) boot ROM. Loaded for REGION_EUROPE."
source_ref: "core/loadrom.c:412" source_ref: "core/loadrom.c:412"
- name: bios_CD_J.bin - name: bios_CD_J.bin
system: sega-megacd system: sega-megacd
required: true required: true
size: 131072
note: "Mega CD (NTSC-J) boot ROM. Loaded for default/Japan region." note: "Mega CD (NTSC-J) boot ROM. Loaded for default/Japan region."
source_ref: "core/loadrom.c:415" source_ref: "core/loadrom.c:415"
@@ -90,7 +87,6 @@ files:
- name: bios_MD.bin - name: bios_MD.bin
system: sega-megadrive system: sega-megadrive
required: false required: false
size: 2048 # 2 KB (0x800)
note: "Mega Drive TMSS boot ROM. Shows 'Produced by or under license' screen." note: "Mega Drive TMSS boot ROM. Shows 'Produced by or under license' screen."
source_ref: "libretro/libretro.c:3651" source_ref: "libretro/libretro.c:3651"
@@ -100,28 +96,28 @@ files:
- name: ggenie.bin - name: ggenie.bin
system: sega-megadrive system: sega-megadrive
required: false required: false
size: 32768 # 32 KB (0x8000)
note: "Game Genie ROM. Loaded when Game Genie lock-on is enabled." note: "Game Genie ROM. Loaded when Game Genie lock-on is enabled."
source_ref: "core/cart_hw/ggenie.c:64" source_ref: "core/cart_hw/ggenie.c:64"
- name: areplay.bin - name: areplay.bin
system: sega-megadrive system: sega-megadrive
required: false required: false
size: 65536 # max 64 KB (0x10000)
note: "Action Replay (Pro) ROM. Loaded when Action Replay lock-on is enabled." note: "Action Replay (Pro) ROM. Loaded when Action Replay lock-on is enabled."
source_ref: "core/cart_hw/areplay.c:64" source_ref: "core/cart_hw/areplay.c:64"
- name: sk.bin - name: sk.bin
system: sega-megadrive system: sega-megadrive
required: false required: false
size: 2097152 # 2 MB (0x200000) size: 2097152
validation: [size]
note: "Sonic & Knuckles ROM. Required for S&K lock-on feature." note: "Sonic & Knuckles ROM. Required for S&K lock-on feature."
source_ref: "core/cart_hw/md_cart.c:867" source_ref: "core/cart_hw/md_cart.c:867"
- name: sk2chip.bin - name: sk2chip.bin
system: sega-megadrive system: sega-megadrive
required: false required: false
size: 262144 # 256 KB (0x40000) size: 262144
validation: [size]
note: "Sonic & Knuckles UPMEM ROM. Used by Sonic 2 & Knuckles lock-on." note: "Sonic & Knuckles UPMEM ROM. Used by Sonic 2 & Knuckles lock-on."
source_ref: "core/cart_hw/md_cart.c:873" source_ref: "core/cart_hw/md_cart.c:873"

View File

@@ -3,7 +3,7 @@ type: libretro
core_classification: enhanced_fork core_classification: enhanced_fork
source: "https://github.com/libretro/Genesis-Plus-GX-Wide" source: "https://github.com/libretro/Genesis-Plus-GX-Wide"
upstream: "https://github.com/ekeeke/Genesis-Plus-GX" upstream: "https://github.com/ekeeke/Genesis-Plus-GX"
profiled_date: "2026-03-21" profiled_date: "2026-03-23"
core_version: "v1.7.4" core_version: "v1.7.4"
display_name: "Sega - MS/GG/MD/CD (Genesis Plus GX Wide)" display_name: "Sega - MS/GG/MD/CD (Genesis Plus GX Wide)"
cores: cores:
@@ -26,45 +26,45 @@ files:
system: sega-megacd system: sega-megacd
required: true required: true
size: 131072 size: 131072
source_ref: "core/loadrom.c:409" source_ref: "core/loadrom.c:408"
- name: bios_CD_E.bin - name: bios_CD_E.bin
system: sega-megacd system: sega-megacd
required: true required: true
size: 131072 size: 131072
source_ref: "core/loadrom.c:412" source_ref: "core/loadrom.c:411"
- name: bios_CD_J.bin - name: bios_CD_J.bin
system: sega-megacd system: sega-megacd
required: true required: true
size: 131072 size: 131072
source_ref: "core/loadrom.c:415" source_ref: "core/loadrom.c:414"
- name: bios_U.sms - name: bios_U.sms
system: sega-mastersystem system: sega-mastersystem
required: false required: false
source_ref: "core/loadrom.c:511" source_ref: "core/loadrom.c:510"
- name: bios_E.sms - name: bios_E.sms
system: sega-mastersystem system: sega-mastersystem
required: false required: false
source_ref: "core/loadrom.c:514" source_ref: "core/loadrom.c:513"
- name: bios_J.sms - name: bios_J.sms
system: sega-mastersystem system: sega-mastersystem
required: false required: false
source_ref: "core/loadrom.c:517" source_ref: "core/loadrom.c:516"
- name: bios.gg - name: bios.gg
system: sega-gamegear system: sega-gamegear
required: false required: false
source_ref: "core/loadrom.c:480" source_ref: "core/loadrom.c:479"
- name: bios_MD.bin - name: bios_MD.bin
system: sega-megadrive system: sega-megadrive
required: false required: false
size: 2048 size: 2048
source_ref: "libretro/libretro.c:3551" source_ref: "libretro/libretro.c:3682"
- name: ggenie.bin - name: ggenie.bin
system: sega-megadrive system: sega-megadrive
@@ -82,10 +82,12 @@ files:
system: sega-megadrive system: sega-megadrive
required: false required: false
size: 2097152 size: 2097152
source_ref: "core/cart_hw/md_cart.c:867" validation: [size]
source_ref: "core/cart_hw/md_cart.c:750"
- name: sk2chip.bin - name: sk2chip.bin
system: sega-megadrive system: sega-megadrive
required: false required: false
size: 262144 size: 262144
source_ref: "core/cart_hw/md_cart.c:873" validation: [size]
source_ref: "core/cart_hw/md_cart.c:756"

View File

@@ -69,7 +69,7 @@ files:
size: 524288 size: 524288
crc32: "03cc9f6a" crc32: "03cc9f6a"
note: "NEO-MVH MV1C (Asia) - default for AS region" note: "NEO-MVH MV1C (Asia) - default for AS region"
source_ref: "src/geo.c:179" source_ref: "src/geo.c:180"
- name: "sp-s2.sp1" - name: "sp-s2.sp1"
archive: neogeo.zip archive: neogeo.zip

View File

@@ -1,8 +1,9 @@
emulator: Game Music Emu emulator: Game Music Emu
type: utility type: utility
core_classification: pure_libretro
source: "https://github.com/libretro/libretro-gme" source: "https://github.com/libretro/libretro-gme"
upstream: "https://github.com/libgme/game-music-emu" upstream: "https://github.com/libgme/game-music-emu"
profiled_date: "2026-03-21" profiled_date: "2026-03-23"
core_version: "Git" core_version: "Git"
display_name: "Game Music Emu" display_name: "Game Music Emu"
cores: [gme] cores: [gme]
@@ -10,7 +11,6 @@ systems: []
files: [] files: []
notes: > notes: >
Libretro wrapper around Blargg's Game Music Emu library. Libretro wrapper around Blargg's Game Music Emu library.
Plays chiptune music files from various consoles: NSF (NES), SPC (SNES), Plays chiptune music files: NSF/NSFE (NES), SPC (SNES), GBS (Game Boy),
GBS (Game Boy), VGM/VGZ (Sega), HES (PC Engine), AY (ZX Spectrum), VGM/VGZ (Sega), HES (PC Engine), AY (ZX Spectrum), SAP (Atari),
SAP (Atari), KSS (MSX). Loads music files as content. KSS (MSX), GYM (Genesis). Loads music files as content.
No BIOS, firmware, or system directory files required.

View File

@@ -1,13 +1,14 @@
emulator: Gong emulator: Gong
type: game type: game
core_classification: pure_libretro
source: "https://github.com/libretro/gong" source: "https://github.com/libretro/gong"
profiled_date: "2026-03-21" upstream: "https://danzaidan.itch.io/"
profiled_date: "2026-03-23"
core_version: "1.0" core_version: "1.0"
display_name: "Gong" display_name: "Gong"
cores: [gong] cores: [gong]
systems: [] systems: []
files: [] files: []
notes: > notes: >
Simple Pong clone written as a minimal libretro core example. Pong clone. Self-contained single-file core, all rendering programmatic.
Self-contained with all rendering done programmatically. Original code by Dan Zaidan, ported to libretro by Brad Parker.
No content file, BIOS, or system directory files required.

View File

@@ -2,8 +2,8 @@ emulator: gpSP
type: libretro type: libretro
core_classification: community_fork core_classification: community_fork
source: "https://github.com/libretro/gpsp" source: "https://github.com/libretro/gpsp"
upstream: "https://github.com/BASLQC/gPSP" upstream: "https://github.com/davidgfnet/gpsp"
profiled_date: "2026-03-21" profiled_date: "2026-03-23"
core_version: "Git" core_version: "Git"
display_name: "Nintendo - Game Boy Advance (gpSP)" display_name: "Nintendo - Game Boy Advance (gpSP)"
cores: cores:
@@ -12,9 +12,9 @@ systems:
- nintendo-gba - nintendo-gba
notes: | notes: |
gpSP is a Game Boy Advance emulator originally by Exophase, ported to gpSP is a Game Boy Advance emulator originally by Exophase, forked by
libretro. Historically it required the official GBA BIOS to run. Current notaz for GP2X/Pandora, now maintained by davidgfnet for libretro.
versions ship a built-in open-source BIOS (bios/open_gba_bios.bin) compiled Ships a built-in open-source BIOS (bios/open_gba_bios.bin) compiled
from bios/source/ that covers most games. from bios/source/ that covers most games.
The core option gpsp_bios controls BIOS selection: The core option gpsp_bios controls BIOS selection:
@@ -22,52 +22,42 @@ notes: |
builtin - always use the built-in open-source BIOS builtin - always use the built-in open-source BIOS
official - try gba_bios.bin, warn and fall back to built-in if missing official - try gba_bios.bin, warn and fall back to built-in if missing
A second option gpsp_boot_mode selects startup behavior: BIOS loading path (libretro/libretro.c:1100-1131):
game (default) - skip BIOS intro, boot directly into game
bios - run the BIOS boot animation before launching
BIOS loading path (libretro/libretro.c:1093-1131):
1. Resolve system directory (RETRO_ENVIRONMENT_GET_SYSTEM_DIRECTORY) 1. Resolve system directory (RETRO_ENVIRONMENT_GET_SYSTEM_DIRECTORY)
2. Append "/gba_bios.bin" 2. Append "/gba_bios.bin"
3. load_bios() reads 0x4000 (16 KB) into bios_rom[] 3. load_bios() reads 0x4000 (16 KB) into bios_rom[]
4. Sanity check: bios_rom[0] must be 0x18 (ARM branch opcode) 4. Sanity check: bios_rom[0] must be 0x18 (ARM branch opcode)
5. On failure, memcpy open_gba_bios_rom[] as fallback 5. On failure, memcpy open_gba_bios_rom[] as fallback
The official BIOS improves compatibility for a few games that rely on The official BIOS improves compatibility for games that rely on
precise SWI behavior or BIOS checksum verification. The built-in BIOS precise SWI behavior or BIOS checksum verification.
works for the vast majority of the GBA library.
Upstream (Exophase v0.9) required the official BIOS with no fallback. Upstream (notaz/Exophase) required the official BIOS with no fallback.
The built-in open-source BIOS is a libretro port addition. The built-in open-source BIOS is a davidgfnet/libretro addition.
files: files:
# -------------------------------------------------------
# Game Boy Advance - BIOS (optional, built-in fallback)
# -------------------------------------------------------
- name: gba_bios.bin - name: gba_bios.bin
system: nintendo-gba system: nintendo-gba
required: false required: false
hle_fallback: true hle_fallback: true
size: 16384 # 16 KB (0x4000) size: 16384
validation: [size] description: "Official GBA BIOS"
note: "Official GBA BIOS. Built-in open-source BIOS used as fallback. Real BIOS needed for full SWI accuracy and boot logo." note: "Built-in open-source BIOS used as fallback. Real BIOS needed for full SWI accuracy and boot animation."
source_ref: "libretro/libretro.c:1111" source_ref: "libretro/libretro.c:1111, gba_memory.c:2568-2579"
platform_details: platform_details:
gba: gba:
bios_size: 16384 # 16 KB bios_size: 16384
hle_bios: true hle_bios: true
source_ref: "libretro/libretro.c:1107-1131, bios/source/" source_ref: "libretro/libretro.c:1100-1131, bios/source/"
notes: | notes: |
The built-in BIOS (open_gba_bios_rom, 16 KB) is an open-source The built-in BIOS (open_gba_bios_rom, 16 KB) is an open-source
reimplementation compiled from bios/source/. It implements most reimplementation compiled from bios/source/. It implements most
SWI calls (SoftReset, RegisterRamReset, Halt, VBlankIntrWait, SWI calls (SoftReset, RegisterRamReset, Halt, VBlankIntrWait,
arithmetic, decompression, sound, multiboot). arithmetic, decompression, sound, multiboot).
Validation is minimal: load_bios() in gba_memory.c reads exactly No hash or checksum verification is performed. The only check
0x4000 bytes. The libretro frontend checks bios_rom[0] == 0x18 is bios_rom[0] == 0x18 (ARM branch at reset vector).
(ARM branch instruction at reset vector) to reject garbage files.
No hash or checksum verification is performed.
The bios_type enum (main.h:56-61) defines three modes: The bios_type enum (main.h:56-61) defines three modes:
auto_detect - try official first, fall back to built-in auto_detect - try official first, fall back to built-in

View File

@@ -2,7 +2,8 @@ emulator: Handy
type: libretro type: libretro
core_classification: community_fork core_classification: community_fork
source: "https://github.com/libretro/libretro-handy" source: "https://github.com/libretro/libretro-handy"
profiled_date: "2026-03-21" upstream: "https://handy.sourceforge.net/"
profiled_date: "2026-03-23"
core_version: "0.95" core_version: "0.95"
display_name: "Atari - Lynx (Handy)" display_name: "Atari - Lynx (Handy)"
cores: cores:
@@ -10,27 +11,29 @@ cores:
systems: [atari-lynx] systems: [atari-lynx]
notes: | notes: |
Handy is an Atari Lynx emulator. The core loads lynxboot.img from Handy is an Atari Lynx emulator by K. Wilkins (Handy 0.95, 2007).
the system directory and validates it by CRC32 (0x0D973C9D). If the The core loads lynxboot.img from the system directory and validates
file is missing or the CRC does not match, the core falls back to an it by CRC32 (0x0D973C9D). If the file is missing or the CRC does
internal HLE BIOS that replicates the boot sequence in software not match, the core falls back to an internal HLE BIOS that
(ram clear, cart loader decrypt, jump to $0200). replicates the boot sequence in software (ram clear, cart loader
decrypt, jump to $0200).
The HLE path intercepts CPU calls to ROM addresses FE00, FE19, FE4A The HLE path intercepts CPU calls to ROM addresses FE00, FE19, FE4A
and FF80 via a Mikie register write trap (address 0xFD97). When and FF80 via a Mikie register write trap (address 0xFD97). When
useEmu is true (no valid BIOS loaded), CRom initialises mRomData useEmu is true (no valid BIOS loaded), CRom initialises mRomData
with a default fill byte (0x88) plus reset vectors pointing to with a default fill byte (0x88) plus reset vectors pointing to
the HLE entry points. The cart decryption uses a hardcoded RSA the HLE entry points.
public key (lynxdec.cpp) identical to the real hardware.
With the real BIOS, the first frame has unusually high cycle counts Upstream Handy 0.95 requires the BIOS (throws CLynxException) and
because hardware timers start from the boot ROM rather than being validates by checking the first 16 bytes against a hardcoded
set artificially. Blip_Buffer::end_frame() caps the audio buffer signature. The libretro port added the HLE fallback and switched
to handle this overflow. to full CRC32 validation.
File path: libretro.cpp retro_load_game() joins For headerless cartridges (no LNX/BS93 header), the core loads
RETRO_ENVIRONMENT_GET_SYSTEM_DIRECTORY with "lynxboot.img". howard.o from the system directory. This is the Epyx development
No subdirectory. kit bootloader used to bootstrap raw/headerless ROMs into memory.
Upstream requires howard.o for headerless carts (throws exception);
the libretro port makes it optional (logs error, continues).
files: files:
- name: "lynxboot.img" - name: "lynxboot.img"
@@ -41,5 +44,12 @@ files:
size: 512 size: 512
crc32: "0d973c9d" crc32: "0d973c9d"
validation: [size, crc32] validation: [size, crc32]
source_ref: "rom.h:48-49 (ROM_SIZE=0x200, ROM_CRC32=0xD973C9D), rom.cpp:76-128 (CRom constructor), libretro.cpp:1231-1258 (bios path + CSystem init)" source_ref: "rom.h:48-49 (ROM_SIZE=0x200, ROM_CRC32=0x0D973C9D), rom.cpp:76-129 (CRom constructor), libretro.cpp:1231-1258 (bios path + CSystem init)"
notes: "Validated by CRC32 at load time. If invalid or missing, core uses HLE fallback (system.cpp HLE_BIOS_* functions). Games work without it but the real boot ROM provides accurate startup timing." notes: "Validated by CRC32 at load time. If invalid or missing, core uses HLE fallback (system.cpp:303-361 HLE_BIOS_* functions, system.cpp:406-428 trap writes)."
- name: "howard.o"
system: atari-lynx
description: "Epyx Howard bootloader for headerless cartridges"
required: false
source_ref: "system.cpp:197-238 (CartHeaderLess check, howard.o load via fill_pathname_resolve_relative)"
notes: "Loaded only for headerless carts (no LNX/BS93 header). Resolved relative to the BIOS file path (system directory). Passed to CRam for execution. Most commercial games have headers and skip this entirely."

View File

@@ -1,10 +1,10 @@
emulator: Hatari emulator: Hatari
type: libretro type: libretro
core_classification: community_fork core_classification: frozen_snapshot
source: "https://github.com/libretro/hatari" source: "https://github.com/libretro/hatari"
upstream: "https://github.com/hatari/hatari" upstream: "https://github.com/hatari/hatari"
logo: "https://raw.githubusercontent.com/hatari/hatari/main/share/icons/hicolor/scalable/apps/hatari.svg" logo: "https://raw.githubusercontent.com/hatari/hatari/main/share/icons/hicolor/scalable/apps/hatari.svg"
profiled_date: "2026-03-21" profiled_date: "2026-03-23"
core_version: "1.8" core_version: "1.8"
display_name: "Atari - ST/STE/TT/Falcon (Hatari)" display_name: "Atari - ST/STE/TT/Falcon (Hatari)"
cores: cores:
@@ -41,7 +41,7 @@ files:
TOS ROM image. Any valid version (1.00 through 4.04) or EmuTOS works. TOS ROM image. Any valid version (1.00 through 4.04) or EmuTOS works.
The core auto-detects version from the ROM header and adjusts machine type. The core auto-detects version from the ROM header and adjusts machine type.
Default location is system/tos.img, additional images go in system/hatari/tos/. Default location is system/tos.img, additional images go in system/hatari/tos/.
source_ref: "src/tos.c:576-696, libretro/libretro.c:387-410" source_ref: "src/tos.c:575-696, libretro/libretro.c:387-410"
# -- Cartridge ROM (optional) -- # -- Cartridge ROM (optional) --
# External cartridge image, max 128 KB. Formats: .img, .rom, .stc # External cartridge image, max 128 KB. Formats: .img, .rom, .stc
@@ -51,6 +51,7 @@ files:
path: null # user-configured via szCartridgeImageFileName path: null # user-configured via szCartridgeImageFileName
required: false required: false
max_size: 131076 # 0x20004 (.stc with 4-byte header) or 0x20000 (raw) max_size: 131076 # 0x20004 (.stc with 4-byte header) or 0x20000 (raw)
validation: [size]
note: > note: >
External cartridge image. Loaded to address 0xFA0000. External cartridge image. Loaded to address 0xFA0000.
STC format images (0x20004 bytes) have a 4-byte header that is stripped. STC format images (0x20004 bytes) have a 4-byte header that is stripped.

View File

@@ -4,7 +4,7 @@ core_classification: enhanced_fork
source: "https://github.com/libretro/hbmame-libretro" source: "https://github.com/libretro/hbmame-libretro"
upstream: "https://github.com/Robbbert/hbmame" upstream: "https://github.com/Robbbert/hbmame"
logo: "https://raw.githubusercontent.com/mamedev/mame/master/docs/source/images/MAMElogo.svg" logo: "https://raw.githubusercontent.com/mamedev/mame/master/docs/source/images/MAMElogo.svg"
profiled_date: "2026-03-21" profiled_date: "2026-03-23"
core_version: "Git" core_version: "Git"
display_name: "Arcade (HBMAME)" display_name: "Arcade (HBMAME)"
cores: cores:
@@ -16,33 +16,17 @@ author: Robbbert
game_count: 8511 game_count: 8511
notes: | notes: |
HBMAME (Home Brew MAME) is a fork of MAME focused on two things: preserving Fork of MAME 0.220 preserving homebrew and hacked arcade games. Builds as
homebrew games written for arcade hardware, and including worthwhile hacks of TARGET=hbmame with 191 driver files covering 8511 game entries. Drivers are
existing arcade games. The libretro port builds as TARGET=hbmame. hack/homebrew variants of CPS1, CPS2, CPS3, Neo Geo, Pac-Man, Galaxian, etc.
Based on MAME 0.220 (src/version.cpp: BARE_BUILD_VERSION "0.220"). The core BIOS handling is identical to MAME. Neo Geo drivers reuse the standard
carries 191 driver files under src/hbmame/drivers/ covering ~8500 game entries neogeo.zip BIOS set via unmodified NEO_BIOS macros (neogeo.h). No other
(hbmame.lst). Most drivers are hack/homebrew variants of well-known arcade HBMAME driver defines ROM_SYSTEM_BIOS entries. BIOS files are expected as
boards: CPS1, CPS2, CPS3, Neo Geo, Pac-Man, Galaxian, etc. MAME-format ZIP archives in the ROM search path.
BIOS handling is identical to MAME. HBMAME does not define any custom BIOS Data directories (artwork, cheat, hash, ini, samples) can be placed in
ROMs beyond what standard MAME uses. The Neo Geo subsystem (which accounts for {system_dir}/mame/ but are optional and game-specific.
the bulk of hbmame content) reuses the same neogeo.zip BIOS set as MAME:
sp-s2.sp1, sm1.sm1, sfix.sfix, 000-lo.lo, plus regional and Universe BIOS
variants. The NEO_BIOS macros in src/hbmame/includes/neogeo.h are copied
directly from MAME with no modifications to hashes or filenames.
The neogeo_noslot.cpp driver includes a reduced MV1C-only BIOS set for a few
specific PCB games (sp-45.sp1, sp1-j3.bin). The neogeohb.cpp driver handles
homebrew and unreleased Neo Geo titles (numbered 300-999) using the same
standard BIOS infrastructure.
No other hbmame-specific drivers (CPS1, CPS2, Pac-Man, Galaxian, etc.) define
ROM_SYSTEM_BIOS entries. Their games are ROM-only hacks that rely on parent
MAME sets for any BIOS needs.
BIOS files are expected as MAME-format ZIP archives in the ROM search path.
Users with a working MAME 0.220 BIOS collection need nothing extra for HBMAME.
files: [] files: []

View File

@@ -2,7 +2,8 @@ emulator: "higan (SFC Accuracy)"
type: libretro type: libretro
core_classification: community_fork core_classification: community_fork
source: "https://github.com/libretro/nSide" source: "https://github.com/libretro/nSide"
profiled_date: "2026-03-21" upstream: "https://github.com/byuu/higan"
profiled_date: "2026-03-23"
core_version: "v105 (Super Famicom Accuracy)" core_version: "v105 (Super Famicom Accuracy)"
display_name: "Nintendo - SNES / Famicom (higan Accuracy)" display_name: "Nintendo - SNES / Famicom (higan Accuracy)"
cores: cores:
@@ -12,110 +13,124 @@ systems:
- nintendo-sgb - nintendo-sgb
notes: | notes: |
Historically built from libretro/nSide (fork of higan v106 by hex-usr). Fork of higan v106 by hex-usr, renamed at byuu's request. Dot-based
Current nSide source prohibits the accuracy profile build PPU profile (cycle-accurate, most demanding). Current nSide source
(libretro.cpp:38 #error). Core is orphaned — last built from an older blocks accuracy build (#error at libretro.cpp:39, libretro-sfc.cpp:8).
nSide revision. Coprocessor firmware loaded from system_dir. Core is orphaned from an older nSide revision.
SGB emulation from SGB1.sfc/ or SGB2.sfc/ subdirectories. Coprocessor firmware loaded via icarus manifest system from system_dir.
File names follow icarus convention: {identifier}.{content}.rom.
SGB emulation loads from SGB1.sfc/ or SGB2.sfc/ subdirectories,
with fallback to SGB.sfc/ and Super GameBoy.sfc/.
SPC700 IPL ROM (ipl.rom, 64 bytes) compiled into binary.
Accuracy and balanced cartridge loading code is identical.
files: files:
# DSP coprocessors - uPD7725 (split data+program format)
- name: "dsp1.data.rom" - name: "dsp1.data.rom"
system: nintendo-snes system: nintendo-snes
required: false required: false
source_ref: "sfc/coprocessor/necdsp" source_ref: "nSide/sfc/cartridge/load.cpp:457-502"
- name: "dsp1.program.rom" - name: "dsp1.program.rom"
system: nintendo-snes system: nintendo-snes
required: false required: false
source_ref: "sfc/coprocessor/necdsp" source_ref: "nSide/sfc/cartridge/load.cpp:457-502"
- name: "dsp1b.data.rom" - name: "dsp1b.data.rom"
system: nintendo-snes system: nintendo-snes
required: false required: false
source_ref: "sfc/coprocessor/necdsp" source_ref: "nSide/sfc/cartridge/load.cpp:457-502"
- name: "dsp1b.program.rom" - name: "dsp1b.program.rom"
system: nintendo-snes system: nintendo-snes
required: false required: false
source_ref: "sfc/coprocessor/necdsp" source_ref: "nSide/sfc/cartridge/load.cpp:457-502"
- name: "dsp2.data.rom" - name: "dsp2.data.rom"
system: nintendo-snes system: nintendo-snes
required: false required: false
source_ref: "sfc/coprocessor/necdsp" source_ref: "nSide/sfc/cartridge/load.cpp:457-502"
- name: "dsp2.program.rom" - name: "dsp2.program.rom"
system: nintendo-snes system: nintendo-snes
required: false required: false
source_ref: "sfc/coprocessor/necdsp" source_ref: "nSide/sfc/cartridge/load.cpp:457-502"
- name: "dsp3.data.rom" - name: "dsp3.data.rom"
system: nintendo-snes system: nintendo-snes
required: false required: false
source_ref: "sfc/coprocessor/necdsp" source_ref: "nSide/sfc/cartridge/load.cpp:457-502"
- name: "dsp3.program.rom" - name: "dsp3.program.rom"
system: nintendo-snes system: nintendo-snes
required: false required: false
source_ref: "sfc/coprocessor/necdsp" source_ref: "nSide/sfc/cartridge/load.cpp:457-502"
- name: "dsp4.data.rom" - name: "dsp4.data.rom"
system: nintendo-snes system: nintendo-snes
required: false required: false
source_ref: "sfc/coprocessor/necdsp" source_ref: "nSide/sfc/cartridge/load.cpp:457-502"
- name: "dsp4.program.rom" - name: "dsp4.program.rom"
system: nintendo-snes system: nintendo-snes
required: false required: false
source_ref: "sfc/coprocessor/necdsp" source_ref: "nSide/sfc/cartridge/load.cpp:457-502"
# CX4 coprocessor - HG51BS169
- name: "cx4.data.rom" - name: "cx4.data.rom"
system: nintendo-snes system: nintendo-snes
required: false required: false
source_ref: "sfc/coprocessor/hitachidsp" source_ref: "nSide/sfc/cartridge/load.cpp:405-454"
# Seta coprocessors - uPD96050
- name: "st010.data.rom" - name: "st010.data.rom"
system: nintendo-snes system: nintendo-snes
required: false required: false
source_ref: "sfc/coprocessor/necdsp" source_ref: "nSide/sfc/cartridge/load.cpp:504-548"
- name: "st010.program.rom" - name: "st010.program.rom"
system: nintendo-snes system: nintendo-snes
required: false required: false
source_ref: "sfc/coprocessor/necdsp" source_ref: "nSide/sfc/cartridge/load.cpp:504-548"
- name: "st011.data.rom" - name: "st011.data.rom"
system: nintendo-snes system: nintendo-snes
required: false required: false
source_ref: "sfc/coprocessor/necdsp" source_ref: "nSide/sfc/cartridge/load.cpp:504-548"
- name: "st011.program.rom" - name: "st011.program.rom"
system: nintendo-snes system: nintendo-snes
required: false required: false
source_ref: "sfc/coprocessor/necdsp" source_ref: "nSide/sfc/cartridge/load.cpp:504-548"
# ST018 coprocessor - ARM6
- name: "st018.data.rom" - name: "st018.data.rom"
system: nintendo-snes system: nintendo-snes
required: false required: false
source_ref: "sfc/coprocessor/armdsp" source_ref: "nSide/sfc/cartridge/load.cpp:362-402"
- name: "st018.program.rom" - name: "st018.program.rom"
system: nintendo-snes system: nintendo-snes
required: false required: false
source_ref: "sfc/coprocessor/armdsp" source_ref: "nSide/sfc/cartridge/load.cpp:362-402"
# Super Game Boy
- name: "SGB1.sfc/sgb1.boot.rom" - name: "SGB1.sfc/sgb1.boot.rom"
system: nintendo-sgb system: nintendo-sgb
required: false required: false
source_ref: "nSide/gb/system/system.cpp:54-65"
- name: "SGB1.sfc/program.rom" - name: "SGB1.sfc/program.rom"
system: nintendo-sgb system: nintendo-sgb
required: false required: false
source_ref: "nSide/target-libretro/libretro-sfc.cpp:179-215"
- name: "SGB2.sfc/sgb2.boot.rom" - name: "SGB2.sfc/sgb2.boot.rom"
system: nintendo-sgb system: nintendo-sgb
required: false required: false
source_ref: "nSide/gb/system/system.cpp:54-65"
- name: "SGB2.sfc/program.rom" - name: "SGB2.sfc/program.rom"
system: nintendo-sgb system: nintendo-sgb
required: false required: false
source_ref: "nSide/target-libretro/libretro-sfc.cpp:179-215"

View File

@@ -2,7 +2,8 @@ emulator: "nSide (SFC Balanced)"
type: libretro type: libretro
core_classification: enhanced_fork core_classification: enhanced_fork
source: "https://github.com/libretro/nSide" source: "https://github.com/libretro/nSide"
profiled_date: "2026-03-21" upstream: "https://gitlab.com/higan/higan"
profiled_date: "2026-03-23"
core_version: "v105 (Super Famicom Balanced)" core_version: "v105 (Super Famicom Balanced)"
display_name: "Nintendo - SNES / Famicom (nSide Balanced)" display_name: "Nintendo - SNES / Famicom (nSide Balanced)"
cores: cores:
@@ -14,115 +15,118 @@ systems:
notes: | notes: |
Fork of higan v106 by hex-usr, renamed at byuu's request. Balanced Fork of higan v106 by hex-usr, renamed at byuu's request. Balanced
PPU profile (scanline-precision, faster than dot-based accuracy). PPU profile (scanline-precision, faster than dot-based accuracy).
Loads coprocessor firmware from system_dir via locate_libretro(). Coprocessor firmware loaded via icarus manifest system from system_dir.
SGB emulation loads from SGB1.sfc/ or SGB2.sfc/ subdirectories. File names follow icarus convention: {identifier}.{content}.rom.
SGB emulation loads from SGB1.sfc/ or SGB2.sfc/ subdirectories,
with fallback to SGB.sfc/ and Super GameBoy.sfc/.
files: files:
# DSP coprocessors (split data+program format) # DSP coprocessors - uPD7725 (split data+program format)
- name: "dsp1.data.rom" - name: "dsp1.data.rom"
system: nintendo-snes system: nintendo-snes
required: false required: false
source_ref: "nSide/sfc/coprocessor/necdsp" source_ref: "nSide/sfc-balanced/cartridge/load.cpp:457-501"
- name: "dsp1.program.rom" - name: "dsp1.program.rom"
system: nintendo-snes system: nintendo-snes
required: false required: false
source_ref: "nSide/sfc/coprocessor/necdsp" source_ref: "nSide/sfc-balanced/cartridge/load.cpp:457-501"
- name: "dsp1b.data.rom" - name: "dsp1b.data.rom"
system: nintendo-snes system: nintendo-snes
required: false required: false
source_ref: "nSide/sfc/coprocessor/necdsp" source_ref: "nSide/sfc-balanced/cartridge/load.cpp:457-501"
- name: "dsp1b.program.rom" - name: "dsp1b.program.rom"
system: nintendo-snes system: nintendo-snes
required: false required: false
source_ref: "nSide/sfc/coprocessor/necdsp" source_ref: "nSide/sfc-balanced/cartridge/load.cpp:457-501"
- name: "dsp2.data.rom" - name: "dsp2.data.rom"
system: nintendo-snes system: nintendo-snes
required: false required: false
source_ref: "nSide/sfc/coprocessor/necdsp" source_ref: "nSide/sfc-balanced/cartridge/load.cpp:457-501"
- name: "dsp2.program.rom" - name: "dsp2.program.rom"
system: nintendo-snes system: nintendo-snes
required: false required: false
source_ref: "nSide/sfc/coprocessor/necdsp" source_ref: "nSide/sfc-balanced/cartridge/load.cpp:457-501"
- name: "dsp3.data.rom" - name: "dsp3.data.rom"
system: nintendo-snes system: nintendo-snes
required: false required: false
source_ref: "nSide/sfc/coprocessor/necdsp" source_ref: "nSide/sfc-balanced/cartridge/load.cpp:457-501"
- name: "dsp3.program.rom" - name: "dsp3.program.rom"
system: nintendo-snes system: nintendo-snes
required: false required: false
source_ref: "nSide/sfc/coprocessor/necdsp" source_ref: "nSide/sfc-balanced/cartridge/load.cpp:457-501"
- name: "dsp4.data.rom" - name: "dsp4.data.rom"
system: nintendo-snes system: nintendo-snes
required: false required: false
source_ref: "nSide/sfc/coprocessor/necdsp" source_ref: "nSide/sfc-balanced/cartridge/load.cpp:457-501"
- name: "dsp4.program.rom" - name: "dsp4.program.rom"
system: nintendo-snes system: nintendo-snes
required: false required: false
source_ref: "nSide/sfc/coprocessor/necdsp" source_ref: "nSide/sfc-balanced/cartridge/load.cpp:457-501"
# CX4 coprocessor # CX4 coprocessor - HG51BS169
- name: "cx4.data.rom" - name: "cx4.data.rom"
system: nintendo-snes system: nintendo-snes
required: false required: false
source_ref: "nSide/sfc/coprocessor/hitachidsp" source_ref: "nSide/sfc-balanced/cartridge/load.cpp:405-454"
# Seta coprocessors # Seta coprocessors - uPD96050
- name: "st010.data.rom" - name: "st010.data.rom"
system: nintendo-snes system: nintendo-snes
required: false required: false
source_ref: "nSide/sfc/coprocessor/necdsp" source_ref: "nSide/sfc-balanced/cartridge/load.cpp:504-548"
- name: "st010.program.rom" - name: "st010.program.rom"
system: nintendo-snes system: nintendo-snes
required: false required: false
source_ref: "nSide/sfc/coprocessor/necdsp" source_ref: "nSide/sfc-balanced/cartridge/load.cpp:504-548"
- name: "st011.data.rom" - name: "st011.data.rom"
system: nintendo-snes system: nintendo-snes
required: false required: false
source_ref: "nSide/sfc/coprocessor/necdsp" source_ref: "nSide/sfc-balanced/cartridge/load.cpp:504-548"
- name: "st011.program.rom" - name: "st011.program.rom"
system: nintendo-snes system: nintendo-snes
required: false required: false
source_ref: "nSide/sfc/coprocessor/necdsp" source_ref: "nSide/sfc-balanced/cartridge/load.cpp:504-548"
# ST018 coprocessor - ARM6
- name: "st018.data.rom" - name: "st018.data.rom"
system: nintendo-snes system: nintendo-snes
required: false required: false
source_ref: "nSide/sfc/coprocessor/armdsp" source_ref: "nSide/sfc-balanced/cartridge/load.cpp:362-402"
- name: "st018.program.rom" - name: "st018.program.rom"
system: nintendo-snes system: nintendo-snes
required: false required: false
source_ref: "nSide/sfc/coprocessor/armdsp" source_ref: "nSide/sfc-balanced/cartridge/load.cpp:362-402"
# Super Game Boy # Super Game Boy
- name: "SGB1.sfc/sgb1.boot.rom" - name: "SGB1.sfc/sgb1.boot.rom"
system: nintendo-sgb system: nintendo-sgb
required: false required: false
source_ref: "nSide/target-libretro/libretro-sfc.cpp:142-184" source_ref: "nSide/gb/system/system.cpp:54-65"
- name: "SGB1.sfc/program.rom" - name: "SGB1.sfc/program.rom"
system: nintendo-sgb system: nintendo-sgb
required: false required: false
source_ref: "nSide/target-libretro/libretro-sfc.cpp:182" source_ref: "nSide/target-libretro/libretro-sfc.cpp:179-215"
- name: "SGB2.sfc/sgb2.boot.rom" - name: "SGB2.sfc/sgb2.boot.rom"
system: nintendo-sgb system: nintendo-sgb
required: false required: false
source_ref: "nSide/target-libretro/libretro-sfc.cpp:142-184" source_ref: "nSide/gb/system/system.cpp:54-65"
- name: "SGB2.sfc/program.rom" - name: "SGB2.sfc/program.rom"
system: nintendo-sgb system: nintendo-sgb
required: false required: false
source_ref: "nSide/target-libretro/libretro-sfc.cpp:182" source_ref: "nSide/target-libretro/libretro-sfc.cpp:179-215"

View File

@@ -3,8 +3,8 @@ type: libretro
core_classification: official_port core_classification: official_port
source: "https://github.com/LLeny/holani-retro" source: "https://github.com/LLeny/holani-retro"
upstream: "https://github.com/LLeny/holani" upstream: "https://github.com/LLeny/holani"
profiled_date: "2026-03-21" profiled_date: "2026-03-23"
core_version: "0.6.0" core_version: "0.9.9"
display_name: "Atari - Lynx (Holani)" display_name: "Atari - Lynx (Holani)"
cores: [holani] cores: [holani]
systems: [atari-lynx] systems: [atari-lynx]
@@ -13,7 +13,7 @@ verification: existence
notes: | notes: |
Holani is a cycle-stepped Atari Lynx emulator written in Rust by LLeny. Holani is a cycle-stepped Atari Lynx emulator written in Rust by LLeny.
The libretro port (holani-retro) loads lynxboot.img from the system The libretro port (holani-retro) loads lynxboot.img from the system
directory at retro_load_game time (lib.rs:110-121). Path is built as directory at retro_load_game time (lib.rs:110-124). Path is built as
system_directory + "/lynxboot.img", no subdirectory. system_directory + "/lynxboot.img", no subdirectory.
The core library (holani/src/rom.rs) embeds a free boot ROM from The core library (holani/src/rom.rs) embeds a free boot ROM from
@@ -24,8 +24,6 @@ notes: |
has the free boot ROM initialized. No hash validation on the external has the free boot ROM initialized. No hash validation on the external
file; Rom::from_slice() only checks length == 512. file; Rom::from_slice() only checks length == 512.
ROM extensions: .lnx, .o
files: files:
- name: "lynxboot.img" - name: "lynxboot.img"
description: "Atari Lynx boot ROM" description: "Atari Lynx boot ROM"
@@ -33,4 +31,5 @@ files:
required: false required: false
hle_fallback: true hle_fallback: true
size: 512 size: 512
source_ref: "src/lib.rs:110-121 (bios load path)" validation: [size]
source_ref: "src/lib.rs:110-124 (bios load), holani/src/rom.rs:72-79 (size validation)"