mirror of
https://github.com/Abdess/retroarch_system.git
synced 2026-04-13 04:12:33 -05:00
feat: re-profile 40 emulators from fbalpha2012 to holani
This commit is contained in:
@@ -1,5 +1,5 @@
|
||||
{
|
||||
"generated_at": "2026-03-23T14:00:42Z",
|
||||
"generated_at": "2026-03-23T20:32:26Z",
|
||||
"total_files": 6733,
|
||||
"total_size": 5288642642,
|
||||
"files": {
|
||||
@@ -88619,6 +88619,24 @@
|
||||
"dmg0_rom.bin": [
|
||||
"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": [
|
||||
"1293d68bf9643bc4f36954c1e80e38f39864528d"
|
||||
],
|
||||
@@ -108934,6 +108952,8 @@
|
||||
"b4f14e58030ed40fff2dc312b58ea4440bdf8cc5",
|
||||
"c65592330c9dd84011151daed52f9aec926b7e56",
|
||||
"1db57a1e8b6e4096f811587f9eab0c6675fd9755",
|
||||
"72c65f2a11ee7b72b77b9945187b7a332632e14a",
|
||||
"6d27d71aec4dfba98f66316ae74a1426d567698a",
|
||||
"1293d68bf9643bc4f36954c1e80e38f39864528d",
|
||||
"369e6eb5e0c975eaa52a4a3f6ee07b2a3c3c16de",
|
||||
"f282b3aaf98f8423dab7d77f1aa0192be630f2fb",
|
||||
|
||||
@@ -3,7 +3,7 @@ type: libretro
|
||||
core_classification: frozen_snapshot
|
||||
source: "https://github.com/libretro/fbalpha2012"
|
||||
upstream: "https://www.fbalpha.com"
|
||||
profiled_date: "2026-03-19"
|
||||
profiled_date: "2026-03-23"
|
||||
core_version: "v0.2.97.29"
|
||||
display_name: "Arcade (FB Alpha 2012)"
|
||||
cores:
|
||||
@@ -19,7 +19,6 @@ systems:
|
||||
notes: |
|
||||
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.
|
||||
Exists for RAM-constrained platforms. Most users should use FBNeo.
|
||||
|
||||
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).
|
||||
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,
|
||||
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.
|
||||
Extensions: iso|zip|7z. need_fullpath=true, block_extract=true.
|
||||
ROM path: g_rom_dir from content path.
|
||||
Sample path: g_system_dir/fba2012/samples/ (samples.cpp:248).
|
||||
Hiscore path: g_save_dir/hiscore.dat (hiscore.cpp:411).
|
||||
|
||||
files:
|
||||
- name: "hiscore.dat"
|
||||
description: "High score persistence database"
|
||||
required: false
|
||||
note: "High score database, loaded from save directory"
|
||||
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."
|
||||
|
||||
@@ -3,7 +3,7 @@ type: libretro
|
||||
core_classification: frozen_snapshot
|
||||
source: "https://github.com/libretro/fbalpha2012_cps2"
|
||||
upstream: "https://www.fbalpha.com"
|
||||
profiled_date: "2026-03-19"
|
||||
profiled_date: "2026-03-23"
|
||||
core_version: "v0.2.97.28"
|
||||
display_name: "Arcade (FB Alpha 2012 CPS-2)"
|
||||
cores:
|
||||
@@ -13,32 +13,25 @@ systems:
|
||||
|
||||
notes: |
|
||||
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:
|
||||
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).
|
||||
No external QSound DSP ROM (dl-1425.bin) needed — unlike MAME, FBA emulates
|
||||
the QSound chip directly without requiring the DSP program ROM.
|
||||
QSound emulated in software (qs_c.c). No external QSound DSP ROM needed.
|
||||
All audio data loaded from game ROM ZIP.
|
||||
|
||||
Z80 sound program loaded from game ROM set into CpsZRom buffer (cps.c:451,
|
||||
BurnLoadRom). QSound samples loaded into CpsQSam. All from the game ZIP.
|
||||
ROMs loaded from content directory (g_rom_dir, libretro.cpp:969).
|
||||
g_system_dir used only for hiscore.dat (hiscore.c:228-232).
|
||||
|
||||
Board PLDs (buf1, ioa1, prg2, rom1) referenced via A_BOARD_QSOUND_PLDS
|
||||
macro, all marked BRF_OPT. GAL/PAL dumps for hardware preservation only.
|
||||
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.
|
||||
Hiscore support gated by fba2012cps2_hiscores core option
|
||||
(libretro.cpp:561-563) and per-game BDF_HISCORE_SUPPORTED flag.
|
||||
|
||||
files:
|
||||
- name: "hiscore.dat"
|
||||
description: "High score persistence database"
|
||||
required: false
|
||||
note: "High score database, loaded from save directory"
|
||||
source_ref: "src/burn/hiscore.c"
|
||||
source_ref: "src/burn/hiscore.c:228-232"
|
||||
note: "Loaded from <system_dir>/fbalpha2012/hiscore.dat"
|
||||
|
||||
@@ -3,7 +3,7 @@ type: libretro
|
||||
core_classification: frozen_snapshot
|
||||
source: "https://github.com/libretro/fbalpha2012_cps3"
|
||||
upstream: "https://www.fbalpha.com"
|
||||
profiled_date: "2026-03-19"
|
||||
profiled_date: "2026-03-23"
|
||||
core_version: "v0.2.97.29"
|
||||
display_name: "Arcade (FB Alpha 2012 CPS-3)"
|
||||
cores:
|
||||
@@ -52,8 +52,9 @@ notes: |
|
||||
|
||||
files:
|
||||
- name: "hiscore.dat"
|
||||
description: "High score persistence database"
|
||||
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:116-118"
|
||||
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."
|
||||
|
||||
@@ -3,7 +3,7 @@ type: libretro
|
||||
core_classification: frozen_snapshot
|
||||
source: "https://github.com/libretro/fbalpha2012_neogeo"
|
||||
upstream: "https://www.fbalpha.com"
|
||||
profiled_date: "2026-03-21"
|
||||
profiled_date: "2026-03-23"
|
||||
core_version: "v0.2.97.29"
|
||||
display_name: "Arcade (FB Alpha 2012 Neo Geo)"
|
||||
cores:
|
||||
@@ -34,7 +34,7 @@ notes: |
|
||||
neodebug.bin 0x698ebb7d Development Kit
|
||||
sp-1v1_3db8c.bin 0x162f0ebe Deck ver. 6 (Git Ver 1.3)
|
||||
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
|
||||
|
||||
System ROMs (always required):
|
||||
|
||||
@@ -4,7 +4,7 @@ core_classification: official_port
|
||||
source: "https://github.com/libretro/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"
|
||||
profiled_date: "2026-03-21"
|
||||
profiled_date: "2026-03-23"
|
||||
core_version: "v1.0.0.03"
|
||||
display_name: "Arcade (FinalBurn Neo)"
|
||||
cores:
|
||||
@@ -101,6 +101,7 @@ files:
|
||||
source_ref: "src/burn/drv/neogeo/d_neogeo.cpp:1606"
|
||||
|
||||
- name: "sp-u2.sp1"
|
||||
aliases: ["usa_2slt.bin"]
|
||||
archive: neogeo.zip
|
||||
system: snk-neogeo-mvs
|
||||
required: false
|
||||
@@ -418,48 +419,6 @@ files:
|
||||
note: "Zoom lookup table"
|
||||
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)
|
||||
# -------------------------------------------------------
|
||||
|
||||
@@ -3,7 +3,7 @@ type: libretro
|
||||
core_classification: official_port
|
||||
source: "https://github.com/libretro/FBNeo"
|
||||
upstream: "https://github.com/finalburnneo/FBNeo"
|
||||
profiled_date: "2026-03-22"
|
||||
profiled_date: "2026-03-23"
|
||||
core_version: "v1.0.0.03"
|
||||
display_name: "Arcade (FinalBurn Neo) (CPS-1 / CPS-2)"
|
||||
cores:
|
||||
|
||||
@@ -3,7 +3,7 @@ type: libretro
|
||||
core_classification: official_port
|
||||
source: "https://github.com/libretro/FBNeo"
|
||||
upstream: "https://github.com/finalburnneo/FBNeo"
|
||||
profiled_date: "2026-03-21"
|
||||
profiled_date: "2026-03-23"
|
||||
core_version: "v1.0.0.03"
|
||||
display_name: "Arcade (FinalBurn Neo) (Neo-Geo)"
|
||||
cores:
|
||||
@@ -70,6 +70,7 @@ files:
|
||||
source_ref: "src/burn/drv/neogeo/d_neogeo.cpp:1606"
|
||||
|
||||
- name: "sp-u2.sp1"
|
||||
aliases: ["usa_2slt.bin"]
|
||||
archive: neogeo.zip
|
||||
system: snk-neogeo-mvs
|
||||
required: false
|
||||
@@ -358,25 +359,6 @@ files:
|
||||
note: "NeoOpen BIOS v0.1 beta"
|
||||
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)
|
||||
- name: "sm1.sm1"
|
||||
archive: neogeo.zip
|
||||
@@ -405,25 +387,6 @@ files:
|
||||
note: "Zoom lookup table"
|
||||
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)
|
||||
# -------------------------------------------------------
|
||||
|
||||
@@ -1,8 +1,9 @@
|
||||
emulator: FCEUmm
|
||||
type: libretro
|
||||
core_classification: pure_libretro
|
||||
core_classification: community_fork
|
||||
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"
|
||||
display_name: "Nintendo - NES / Famicom (FCEUmm)"
|
||||
cores:
|
||||
@@ -10,18 +11,14 @@ cores:
|
||||
systems: [nintendo-nes, nintendo-fds]
|
||||
|
||||
notes: |
|
||||
FCEUmm (FCE Ultra mappers modified) is a NES/Famicom emulator.
|
||||
NES cartridge games need no BIOS. Famicom Disk System games require
|
||||
the FDS BIOS ROM (disksys.rom, 8 KB) loaded from the system directory.
|
||||
Game Genie emulation is an optional core feature (disabled by default)
|
||||
that requires gamegenie.nes in the system directory.
|
||||
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).
|
||||
FCEUmm (FCE Ultra mappers modified) is a NES/Famicom emulator forked from
|
||||
FCEU Ultra by CaH4e3. FDS games require the FDS BIOS ROM (disksys.rom).
|
||||
Game Genie emulation requires gamegenie.nes when the core option is enabled.
|
||||
An external palette file (nes.pal) overrides the built-in palette when the
|
||||
core option is set to Custom.
|
||||
|
||||
File path construction: src/general.c FCEU_MakeFName() joins the
|
||||
system directory (RETRO_ENVIRONMENT_GET_SYSTEM_DIRECTORY) with each
|
||||
filename directly - no subdirectories.
|
||||
File path construction: src/general.c FCEU_MakeFName() joins the system
|
||||
directory with each filename directly - no subdirectories.
|
||||
|
||||
files:
|
||||
# --- Famicom Disk System BIOS (required for FDS games) ---
|
||||
@@ -30,29 +27,22 @@ files:
|
||||
description: "FDS BIOS ROM"
|
||||
required: true
|
||||
size: 8192
|
||||
md5: "ca30b50f880eb660a320674ed365ef7a"
|
||||
sha1: "57fe1bdee955bb48d357e463ccbf129496930b62"
|
||||
validation: [size]
|
||||
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) ---
|
||||
- name: "gamegenie.nes"
|
||||
system: nintendo-nes
|
||||
description: "Game Genie add-on cartridge ROM"
|
||||
required: false
|
||||
size: 24592
|
||||
md5: "7f98d77d7a094ad7d069b74bd553ec98"
|
||||
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."
|
||||
source_ref: "src/cart.c:344-398 (FCEU_OpenGenie), src/general.c:60-62 (FCEUMKF_GGROM)"
|
||||
notes: "iNES format ROM (4 KB PRG + 256 bytes CHR). Core option disabled by default. Only applies to cartridge games."
|
||||
|
||||
# --- Custom palette (optional, core option fceumm_palette) ---
|
||||
- name: "nes.pal"
|
||||
system: nintendo-nes
|
||||
description: "External NES color palette"
|
||||
required: false
|
||||
size: 192
|
||||
md5: "aaf3666e4ed478e2964b46d6a7aa27ad"
|
||||
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."
|
||||
source_ref: "src/palette.c:170-200 (FCEU_LoadGamePalette), src/general.c:68-70 (FCEUMKF_PALETTE), src/drivers/libretro/libretro.c:1789-1798"
|
||||
notes: "RGB triplets (64 standard or 512 with de-emphasis). Only loaded when palette core option is set to Custom."
|
||||
|
||||
@@ -1,7 +1,9 @@
|
||||
emulator: FFmpeg
|
||||
type: utility
|
||||
source: "https://github.com/libretro/RetroArch"
|
||||
profiled_date: "2026-03-18"
|
||||
core_classification: pure_libretro
|
||||
source: "https://github.com/libretro/FFmpeg"
|
||||
upstream: "https://www.ffmpeg.org/"
|
||||
profiled_date: "2026-03-23"
|
||||
core_version: "Git"
|
||||
display_name: "FFmpeg"
|
||||
cores:
|
||||
@@ -9,11 +11,8 @@ cores:
|
||||
systems: []
|
||||
|
||||
notes: |
|
||||
FFmpeg core is a media player built into RetroArch using libavcodec,
|
||||
libavformat, and libswscale. Plays video and audio files directly
|
||||
within the RetroArch interface.
|
||||
|
||||
No BIOS or system files required. Codec support depends on the
|
||||
FFmpeg libraries linked at build time.
|
||||
Media player core using libavcodec, libavformat, and libswscale.
|
||||
Plays video and audio files within RetroArch with an audio visualizer.
|
||||
No external files required. Codecs are linked at build time.
|
||||
|
||||
files: []
|
||||
|
||||
@@ -1,8 +1,9 @@
|
||||
emulator: fixGB
|
||||
type: libretro
|
||||
core_classification: pure_libretro
|
||||
core_classification: official_port
|
||||
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"
|
||||
display_name: "Nintendo - Game Boy / Color (fixGB)"
|
||||
cores:
|
||||
@@ -11,37 +12,27 @@ systems:
|
||||
- nintendo-gbc
|
||||
|
||||
notes: |
|
||||
fixGB is a Game Boy / Game Boy Color emulator by FIX94, currently at
|
||||
Alpha v0.8.2. It supports .gb, .gbc, and .gbs (Game Boy Sound) files.
|
||||
Game Boy / Game Boy Color emulator by FIX94. Supports .gb, .gbc, and
|
||||
.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
|
||||
system directory. In the libretro port, doOpenCGBBootrom() in
|
||||
libretro.c:246-254 resolves the path via
|
||||
RETRO_ENVIRONMENT_GET_SYSTEM_DIRECTORY + "/gbc_bios.bin".
|
||||
Optionally loads gbc_bios.bin from the system directory. Validates
|
||||
file size (>= 0x900 bytes), reads the first 0x900 bytes into
|
||||
memCGBBootrom[], sets cgbBootromEnabled. Enables the GBC startup
|
||||
animation and palette selection for DMG games.
|
||||
|
||||
memInitCGBBootrom() in mem.c:567-586 validates the file: it must be
|
||||
at least 0x900 (2304) bytes. If present, 0x900 bytes are read into
|
||||
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.
|
||||
Without the boot ROM, the core skips the boot sequence and starts
|
||||
games directly. No DMG boot ROM support in the source.
|
||||
|
||||
files:
|
||||
# --- GBC boot ROM (optional, enables startup animation) ---
|
||||
- name: "gbc_bios.bin"
|
||||
system: nintendo-gbc
|
||||
description: "Game Boy Color (CGB-001) boot ROM"
|
||||
required: false
|
||||
hle_fallback: true
|
||||
size: 2304
|
||||
validation: [size]
|
||||
md5: "dbfce9db9deaa2567f6a84fde55f9680"
|
||||
sha1: "1293d68bf9643bc4f36954c1e80e38f39864528d"
|
||||
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."
|
||||
|
||||
@@ -3,7 +3,7 @@ type: libretro
|
||||
core_classification: official_port
|
||||
source: "https://github.com/libretro/fixNES"
|
||||
upstream: "https://github.com/FIX94/fixNES"
|
||||
profiled_date: "2026-03-21"
|
||||
profiled_date: "2026-03-23"
|
||||
core_version: "Alpha v1.3.1"
|
||||
display_name: "Nintendo - NES / Famicom (fixNES)"
|
||||
cores:
|
||||
@@ -16,20 +16,21 @@ notes: |
|
||||
fixNES is an NES/Famicom emulator by FIX94 (same author as fixGB).
|
||||
|
||||
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 — 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
|
||||
(libretro.c:278-286, doOpenFDSBIOS).
|
||||
(libretro/libretro.c:277-285, doOpenFDSBIOS).
|
||||
|
||||
files:
|
||||
- name: "disksys.rom"
|
||||
description: "Family Computer Disk System BIOS"
|
||||
system: nintendo-fds
|
||||
required: true
|
||||
mode: both
|
||||
size: 8192
|
||||
md5: "ca30b50f880eb660a320674ed365ef7a"
|
||||
source_ref: "mapper.c:88-112 (mapperInitFDS), libretro/libretro.c:278-286 (doOpenFDSBIOS)"
|
||||
validation: [size]
|
||||
source_ref: "mapper.c:87-110 (mapperInitFDS), libretro/libretro.c:277-285 (doOpenFDSBIOS)"
|
||||
|
||||
@@ -4,8 +4,8 @@ core_classification: official_port
|
||||
source: "https://github.com/libretro/flycast"
|
||||
upstream: "https://github.com/flyinghead/flycast"
|
||||
logo: "https://raw.githubusercontent.com/flyinghead/flycast/master/shell/linux/flycast.png"
|
||||
profiled_date: "2026-03-21"
|
||||
core_version: "Git"
|
||||
profiled_date: "2026-03-23"
|
||||
core_version: "0.1"
|
||||
display_name: "Sega - Dreamcast/Naomi (Flycast)"
|
||||
cores:
|
||||
- flycast
|
||||
@@ -14,29 +14,34 @@ systems:
|
||||
- sega-naomi
|
||||
- sega-naomi2
|
||||
- sega-atomiswave
|
||||
# sega-systemsp: supported by upstream but not by the libretro port
|
||||
|
||||
notes: |
|
||||
Flycast has a built-in HLE BIOS (reios) for Dreamcast that can boot most
|
||||
games without real BIOS files. Arcade systems (NAOMI, NAOMI2, Atomiswave,
|
||||
System SP) require MAME-format BIOS ROM archives.
|
||||
Hikaru and Triforce are NOT supported by Flycast.
|
||||
games without real BIOS files. Arcade systems (NAOMI, Atomiswave) require
|
||||
MAME-format BIOS ROM archives.
|
||||
|
||||
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/"
|
||||
to the system directory (libretro.cpp:1866). All files below are relative
|
||||
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):
|
||||
Dreamcast -> dc_
|
||||
Dev Unit -> hkt_
|
||||
NAOMI -> naomi_
|
||||
NAOMI 2 -> n2_ (libretro port; upstream uses naomi2_)
|
||||
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
|
||||
NAOMI also tries: epr-21576d.bin (sb_mem.cpp:59)
|
||||
Flash/NVRAM search pattern (sb_mem.cpp:231):
|
||||
@@ -48,59 +53,42 @@ files:
|
||||
# -------------------------------------------------------
|
||||
- name: "dc_boot.bin"
|
||||
path: "dc/dc_boot.bin"
|
||||
system: sega-dreamcast
|
||||
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"
|
||||
aliases: ["dc_bios.bin", "dc_boot.bin.bin", "dc_bios.bin.bin"]
|
||||
system: sega-dreamcast
|
||||
required: false
|
||||
hle_fallback: true
|
||||
size: 2097152
|
||||
note: "Alternate name for Dreamcast boot ROM."
|
||||
source_ref: "core/hw/flashrom/nvmem.cpp:287"
|
||||
|
||||
- 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"
|
||||
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/holly/sb_mem.cpp:219,55-57"
|
||||
|
||||
- name: "dc_nvmem.bin"
|
||||
path: "dc/dc_nvmem.bin"
|
||||
aliases: ["dc_flash_wb.bin", "dc_flash.bin", "dc_flash.bin.bin"]
|
||||
system: sega-dreamcast
|
||||
required: false
|
||||
hle_fallback: true
|
||||
size: 131072
|
||||
note: "Dreamcast NVRAM (primary search name for flash)."
|
||||
source_ref: "core/hw/holly/sb_mem.cpp:231"
|
||||
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,196-213"
|
||||
|
||||
- name: "dc_flash_wb.bin"
|
||||
path: "dc/dc_flash_wb.bin"
|
||||
- name: "font.bin"
|
||||
path: "dc/font.bin"
|
||||
system: sega-dreamcast
|
||||
required: false
|
||||
hle_fallback: true
|
||||
size: 131072
|
||||
note: "Dreamcast flash writeback."
|
||||
source_ref: "core/hw/holly/sb_mem.cpp:231"
|
||||
note: "Dreamcast system font for HLE BIOS text rendering. Built-in font used as fallback."
|
||||
source_ref: "core/reios/reios.cpp:736-754"
|
||||
|
||||
# -------------------------------------------------------
|
||||
# Sega NAOMI
|
||||
# -------------------------------------------------------
|
||||
- name: "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
|
||||
required: false
|
||||
size: 2097152 # 2 MB
|
||||
note: "NAOMI boot ROM (flat binary). Alternative to naomi.zip."
|
||||
source_ref: "core/hw/flashrom/nvmem.cpp:287"
|
||||
size: 2097152
|
||||
note: "NAOMI boot ROM (flat binary). Alternative to naomi.zip. epr-21576d.bin is searched without prefix."
|
||||
source_ref: "core/hw/holly/sb_mem.cpp:219,58-59"
|
||||
|
||||
- name: "naomi.zip"
|
||||
path: "dc/naomi.zip"
|
||||
@@ -110,66 +98,43 @@ files:
|
||||
NAOMI system BIOS archive (MAME format). Contains region-specific
|
||||
BIOS ROMs: epr-21576h.ic27 (Japan), epr-21577h.ic27 (USA),
|
||||
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"
|
||||
path: "dc/airlbios.zip"
|
||||
system: sega-naomi
|
||||
required: false
|
||||
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"
|
||||
path: "dc/f355bios.zip"
|
||||
system: sega-naomi
|
||||
required: false
|
||||
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"
|
||||
path: "dc/f355dlx.zip"
|
||||
system: sega-naomi
|
||||
required: false
|
||||
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"
|
||||
path: "dc/hod2bios.zip"
|
||||
system: sega-naomi
|
||||
required: false
|
||||
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"
|
||||
path: "dc/naomigd.zip"
|
||||
system: sega-naomi
|
||||
required: false
|
||||
note: "NAOMI GD-ROM BIOS. Used by GD-ROM based NAOMI games."
|
||||
source_ref: "core/hw/naomi/naomi_roms.cpp:158-181"
|
||||
|
||||
# -------------------------------------------------------
|
||||
# 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"
|
||||
note: "NAOMI GD-ROM BIOS. Shares ROMs with naomi.zip (epr-21576h, epr-21578h, epr-21577h)."
|
||||
source_ref: "core/hw/naomi/naomi_roms.h:190-212"
|
||||
|
||||
# -------------------------------------------------------
|
||||
# Sega Atomiswave
|
||||
@@ -178,45 +143,44 @@ files:
|
||||
path: "dc/awbios.zip"
|
||||
system: sega-atomiswave
|
||||
required: true
|
||||
note: >
|
||||
Atomiswave system BIOS archive (MAME format). Contains
|
||||
bios0.ic23 (Sammy, 128 KB). BIOS size is 128 KB.
|
||||
source_ref: "core/hw/naomi/naomi_roms.cpp:39-48"
|
||||
note: "Atomiswave system BIOS archive (MAME format). Contains bios0.ic23 (Sammy, 128 KB)."
|
||||
source_ref: "core/hw/naomi/naomi_roms.h:87-94"
|
||||
|
||||
# -------------------------------------------------------
|
||||
# Sega System SP
|
||||
# Not supported by libretro port
|
||||
# -------------------------------------------------------
|
||||
# segasp.zip: supported by upstream (flyinghead/flycast) but NOT by the
|
||||
# libretro port (naomi_roms.cpp absent from libretro fork). Lacune du port.
|
||||
# naomi2.zip: no BIOS[] entry in libretro fork (naomi_roms.h). NAOMI 2 games
|
||||
# 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:
|
||||
dreamcast:
|
||||
bios_size: 2097152 # 2 MB
|
||||
flash_size: 131072 # 128 KB
|
||||
ram_size: 16777216 # 16 MB (32 MB with mod)
|
||||
bios_size: 2097152
|
||||
flash_size: 131072
|
||||
ram_size: 16777216
|
||||
hle_available: true
|
||||
source_ref: "core/emulator.cpp:446-452"
|
||||
source_ref: "core/nullDC.cpp:333-345"
|
||||
|
||||
naomi:
|
||||
bios_size: 2097152 # 2 MB
|
||||
flash_size: 32768 # 32 KB (battery-backed SRAM)
|
||||
ram_size: 33554432 # 32 MB
|
||||
bios_size: 2097152
|
||||
sram_size: 32768
|
||||
ram_size: 33554432
|
||||
hle_available: false
|
||||
source_ref: "core/emulator.cpp:453-459"
|
||||
source_ref: "core/nullDC.cpp:346-354"
|
||||
|
||||
naomi2:
|
||||
bios_size: 2097152 # 2 MB
|
||||
flash_size: 32768 # 32 KB (battery-backed SRAM)
|
||||
ram_size: 33554432 # 32 MB
|
||||
eram_size: 33554432 # 32 MB (ELAN)
|
||||
bios_size: 2097152
|
||||
sram_size: 32768
|
||||
ram_size: 33554432
|
||||
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:
|
||||
bios_size: 131072 # 128 KB
|
||||
flash_size: 131072 # 128 KB (SRAM)
|
||||
ram_size: 16777216 # 16 MB
|
||||
bios_size: 131072
|
||||
sram_size: 131072
|
||||
ram_size: 16777216
|
||||
hle_available: false
|
||||
source_ref: "core/emulator.cpp:468-474"
|
||||
|
||||
# systemsp: supported by upstream but not by the libretro port
|
||||
source_ref: "core/nullDC.cpp:364-375"
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
emulator: "Flycast GLES2"
|
||||
type: alias
|
||||
alias_of: "flycast"
|
||||
profiled_date: "2026-03-21"
|
||||
core_version: "1.0"
|
||||
profiled_date: "2026-03-23"
|
||||
core_version: "0.1"
|
||||
display_name: "Sega - Dreamcast/Naomi (Flycast GLES2)"
|
||||
note: "Same codebase as flycast, compiled with -DHAVE_OPENGLES2 for older mobile GPUs. Same BIOS files."
|
||||
files: []
|
||||
|
||||
@@ -3,7 +3,7 @@ type: libretro
|
||||
core_classification: community_fork
|
||||
source: "https://github.com/libretro/fmsx-libretro"
|
||||
upstream: "https://fms.komkon.org/fMSX/"
|
||||
profiled_date: "2026-03-21"
|
||||
profiled_date: "2026-03-23"
|
||||
core_version: "6.0"
|
||||
display_name: "Microsoft - MSX (fMSX)"
|
||||
cores:
|
||||
@@ -149,7 +149,7 @@ files:
|
||||
sha1: c36c9e0f96738a340381e23b4f97245388801a46
|
||||
required: false
|
||||
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"
|
||||
|
||||
- name: PAINTER.ROM
|
||||
@@ -235,9 +235,14 @@ files:
|
||||
|
||||
# -- 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
|
||||
required: false
|
||||
bundled: true
|
||||
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"
|
||||
|
||||
@@ -2,7 +2,7 @@ emulator: FreeChaF
|
||||
type: libretro
|
||||
core_classification: pure_libretro
|
||||
source: "https://github.com/libretro/FreeChaF"
|
||||
profiled_date: "2026-03-21"
|
||||
profiled_date: "2026-03-23"
|
||||
core_version: "GIT"
|
||||
display_name: "Fairchild - ChannelF (FreeChaF)"
|
||||
cores:
|
||||
@@ -11,7 +11,7 @@ systems:
|
||||
- fairchild-channelf
|
||||
|
||||
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
|
||||
sl90025.bin (Channel F II PSU1) at address 0x000. If that fails, it falls
|
||||
@@ -37,8 +37,6 @@ files:
|
||||
system: fairchild-channelf
|
||||
required: false
|
||||
hle_fallback: true
|
||||
md5: ac9804d4c0e9d07e33472e3726ed15c3
|
||||
size: 1024 # 1 KB, fills 0x000-0x3FF
|
||||
note: "Channel F PSU1 ROM (original). Fallback if sl90025.bin is missing."
|
||||
source_ref: "src/libretro.c:192"
|
||||
|
||||
@@ -46,8 +44,6 @@ files:
|
||||
system: fairchild-channelf
|
||||
required: false
|
||||
hle_fallback: true
|
||||
md5: da98f4bb3242ab80d76629021bb27585
|
||||
size: 1024 # 1 KB, fills 0x400-0x7FF
|
||||
note: "Channel F PSU2 ROM. Always loaded at address 0x400."
|
||||
source_ref: "src/libretro.c:202"
|
||||
|
||||
@@ -55,15 +51,13 @@ files:
|
||||
system: fairchild-channelf
|
||||
required: false
|
||||
hle_fallback: true
|
||||
md5: 95d339631d867c8f1d15a5f2ec26069d
|
||||
size: 1024 # 1 KB, fills 0x000-0x3FF
|
||||
note: "Channel F II PSU1 ROM. Tried first, preferred over sl31253.bin."
|
||||
source_ref: "src/libretro.c:186"
|
||||
|
||||
platform_details:
|
||||
bios_mapping:
|
||||
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: |
|
||||
MEMORY_loadSysROM_libretro() reads the file and copies it into
|
||||
Memory[] at the given address offset. PSU1 is loaded at 0x000,
|
||||
|
||||
@@ -2,7 +2,7 @@ emulator: FreeIntv
|
||||
type: libretro
|
||||
core_classification: pure_libretro
|
||||
source: "https://github.com/libretro/FreeIntv"
|
||||
profiled_date: "2026-03-21"
|
||||
profiled_date: "2026-03-23"
|
||||
core_version: "2018.1.5"
|
||||
display_name: "Mattel - Intellivision (FreeIntv)"
|
||||
cores:
|
||||
@@ -11,65 +11,34 @@ systems:
|
||||
- intellivision
|
||||
|
||||
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
|
||||
calls retro_get_system_directory() then joins exec.bin and grom.bin paths
|
||||
directly. No subdirectory, no core option to disable BIOS loading.
|
||||
BIOS loading in retro_init() (src/libretro.c:1166-1174). Paths joined
|
||||
directly to system directory, no subdirectory.
|
||||
|
||||
loadExec() in src/intv.c:47-71 reads exec.bin as big-endian 16-bit words
|
||||
into memory range 0x1000-0x1FFF (Executive ROM, 8 KB file).
|
||||
loadExec() reads exec.bin as big-endian 16-bit words into 0x1000-0x1FFF.
|
||||
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
|
||||
range 0x3000-0x37FF (Graphics ROM, 2 KB file).
|
||||
Both files required for operation. Without them, the OSD shows
|
||||
"PUT GROM/EXEC IN SYSTEM DIRECTORY" and games do not run.
|
||||
|
||||
Both files are required. Without them the core prints an error and shows
|
||||
"PUT GROM/EXEC IN SYSTEM DIRECTORY" on the OSD, but does not abort.
|
||||
Games will not run correctly without both BIOS files.
|
||||
No hash or size validation on either file.
|
||||
|
||||
The .info file declares firmware_count = 2 with both marked opt = false.
|
||||
|
||||
No ECS (Entertainment Computer System) BIOS support exists in this core.
|
||||
There is no ecs.bin loading code anywhere in the source.
|
||||
No ECS support. No ecs.bin loading code in the source.
|
||||
|
||||
files:
|
||||
- name: "exec.bin"
|
||||
system: intellivision
|
||||
required: true
|
||||
size: 8192 # 8 KB (4096 x 16-bit words, 0x1000-0x1FFF)
|
||||
md5: 62e761035cb657903761800f4437b8af
|
||||
size: 8192
|
||||
note: "Executive ROM. Big-endian 16-bit words loaded at 0x1000-0x1FFF."
|
||||
source_ref: "src/intv.c:47-71, src/libretro.c:1169"
|
||||
|
||||
- name: "grom.bin"
|
||||
system: intellivision
|
||||
required: true
|
||||
size: 2048 # 2 KB (bytes, 0x3000-0x37FF)
|
||||
md5: 0cd5946c6473e42e8e4c2137785e427f
|
||||
size: 2048
|
||||
note: "Graphics ROM. Raw bytes loaded at 0x3000-0x37FF."
|
||||
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.
|
||||
|
||||
@@ -2,7 +2,8 @@ emulator: FreeJ2ME
|
||||
type: libretro
|
||||
core_classification: official_port
|
||||
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"
|
||||
display_name: "Mobile - J2ME (FreeJ2ME)"
|
||||
cores:
|
||||
@@ -11,33 +12,17 @@ systems:
|
||||
- j2me
|
||||
|
||||
notes: |
|
||||
FreeJ2ME is a Java ME (J2ME) emulator for libretro. The native .so/.dll
|
||||
core acts as a bridge that spawns a Java process running freej2me-lr.jar,
|
||||
which handles all actual J2ME emulation. Communication between the C
|
||||
frontend and Java backend happens over pipes (Linux) or named pipes
|
||||
(Windows).
|
||||
|
||||
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.
|
||||
The native core is a C bridge that spawns a Java process running
|
||||
freej2me-lr.jar, which handles all J2ME emulation. Communication
|
||||
happens over pipes (Linux) or named pipes (Windows). A Java runtime
|
||||
(JRE/JDK 8+) must be installed on the host. The jar is built from
|
||||
source via Apache Ant (build.xml). Same repo hosts standalone AWT
|
||||
and SDL2 frontends alongside the libretro frontend.
|
||||
|
||||
files:
|
||||
- name: "freej2me-lr.jar"
|
||||
system: j2me
|
||||
description: "FreeJ2ME libretro Java application"
|
||||
required: true
|
||||
source_ref: "src/libretro/freej2me_libretro.c:485 (fill_pathname_join with javapath)"
|
||||
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."
|
||||
source_ref: "src/libretro/freej2me_libretro.c:483-486 (GET_SYSTEM_DIRECTORY + fill_pathname_join + java -jar)"
|
||||
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."
|
||||
|
||||
@@ -4,7 +4,7 @@ core_classification: community_fork
|
||||
cores: [frodo]
|
||||
source: "https://github.com/libretro/frodo-libretro"
|
||||
upstream: "https://github.com/cebix/frodo4"
|
||||
profiled_date: "2026-03-21"
|
||||
profiled_date: "2026-03-23"
|
||||
core_version: "v4.2"
|
||||
display_name: "Commodore - C64 (Frodo)"
|
||||
systems: [commodore-c64]
|
||||
@@ -43,14 +43,14 @@ notes: |
|
||||
processor emulation is enabled (multiple addresses in the 0x0D00-0x0E00
|
||||
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
|
||||
trapped (0x2C9B), and write sector / format track operations are
|
||||
intercepted (0x3594-0x3598, 0x3B0C-0x3B0D).
|
||||
|
||||
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.cpp:738-746 (Reset ROM patching),
|
||||
Src/C64.h:33-37 (ROM size constants), Src/C64.cpp:221-285 (PatchKernal),
|
||||
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
|
||||
(embedded ROM arrays)
|
||||
|
||||
@@ -60,7 +60,6 @@ files:
|
||||
description: "C64 BASIC V2 ROM"
|
||||
required: false
|
||||
hle_fallback: true
|
||||
embedded: true
|
||||
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)."
|
||||
source_ref: "Src/main.cpp:71,77,100-102"
|
||||
@@ -70,7 +69,6 @@ files:
|
||||
description: "C64 Kernal ROM"
|
||||
required: false
|
||||
hle_fallback: true
|
||||
embedded: true
|
||||
size: 8192
|
||||
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"
|
||||
@@ -80,7 +78,6 @@ files:
|
||||
description: "C64 Character Generator ROM"
|
||||
required: false
|
||||
hle_fallback: true
|
||||
embedded: true
|
||||
size: 4096
|
||||
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"
|
||||
@@ -90,7 +87,6 @@ files:
|
||||
description: "Commodore 1541 floppy drive ROM"
|
||||
required: false
|
||||
hle_fallback: true
|
||||
embedded: true
|
||||
size: 16384
|
||||
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"
|
||||
|
||||
@@ -3,7 +3,7 @@ type: libretro
|
||||
core_classification: community_fork
|
||||
source: "https://github.com/libretro/libretro-fsuae"
|
||||
upstream: "https://github.com/FrodeSolheim/fs-uae"
|
||||
profiled_date: "2026-03-21"
|
||||
profiled_date: "2026-03-23"
|
||||
core_version: "v2.7.15"
|
||||
display_name: "Commodore - Amiga (FS-UAE)"
|
||||
cores:
|
||||
@@ -12,56 +12,124 @@ systems:
|
||||
- amiga
|
||||
|
||||
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).
|
||||
base_dir = RETRO_ENVIRONMENT_GET_SAVE_DIRECTORY (paths.c:136).
|
||||
Kickstarts/ subdirectory created automatically (paths.c:258-264).
|
||||
Also scans AmigaForever/Amiga Files/Shared/rom/.
|
||||
ROMs loaded from save_dir/fsuae/Kickstarts/ (not system_dir).
|
||||
base_dir = RETRO_ENVIRONMENT_GET_SAVE_DIRECTORY/fsuae (paths.c:197).
|
||||
Also scans base_dir/AmigaForever/Amiga Files/Shared/rom/ (config.c:129-135).
|
||||
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):
|
||||
kick13.rom (A500 Kickstart 1.3, 256 KB)
|
||||
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 .info declares firmware_count=0. All ROMs are auto-discovered by
|
||||
directory scan, not by explicit filename lookup.
|
||||
|
||||
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:
|
||||
- name: "kick13.rom"
|
||||
- name: "amiga-os-130.rom"
|
||||
system: amiga
|
||||
required: false
|
||||
size: 262144 # 256 KB
|
||||
note: "Amiga 500 Kickstart 1.3 (34.5). Loaded from save_dir/Kickstarts/."
|
||||
source_ref: "sources/src/fs-uae/config.c:128 (fs_uae_load_rom_files)"
|
||||
hle_fallback: true
|
||||
sha1: "891e9a547772fe0c6c19b610baf8bc4ea7fcb785"
|
||||
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
|
||||
required: false
|
||||
size: 524288
|
||||
note: "Amiga 500+ Kickstart 2.04 (37.175)."
|
||||
source_ref: "sources/src/fs-uae/config.c:128"
|
||||
hle_fallback: true
|
||||
sha1: "c5839f5cb98a7a8947065c3ed2f14f5f42e334a1"
|
||||
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
|
||||
required: false
|
||||
size: 524288
|
||||
note: "Amiga 1200 Kickstart 3.1 (40.68)."
|
||||
source_ref: "sources/src/fs-uae/config.c:128"
|
||||
hle_fallback: true
|
||||
sha1: "02843c4253bbd29aba535b0aa3bd9a85034ecde4"
|
||||
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
|
||||
required: false
|
||||
size: 524288
|
||||
note: "Amiga 1200 Kickstart 3.1.4."
|
||||
source_ref: "sources/src/fs-uae/config.c:128"
|
||||
hle_fallback: true
|
||||
sha1: "11f9e62cf299f72184835b7b2a70a16333fc0d88"
|
||||
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
|
||||
required: false
|
||||
size: 524288
|
||||
note: "Amiga 4000 Kickstart 3.1.4."
|
||||
source_ref: "sources/src/fs-uae/config.c:128"
|
||||
hle_fallback: true
|
||||
sha1: "e21545723fe8374e91342617604f1b3d703094f1"
|
||||
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)"
|
||||
|
||||
@@ -3,7 +3,7 @@ type: libretro
|
||||
core_classification: community_fork
|
||||
source: "https://github.com/libretro/fuse-libretro"
|
||||
upstream: "https://sourceforge.net/projects/fuse-emulator/"
|
||||
profiled_date: "2026-03-21"
|
||||
profiled_date: "2026-03-23"
|
||||
core_version: "1.6.0"
|
||||
display_name: "Sinclair - ZX Spectrum (Fuse)"
|
||||
cores:
|
||||
@@ -27,12 +27,16 @@ notes: |
|
||||
|
||||
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
|
||||
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 TS2068 reuses TC2068 ROMs (tc2068-0/1.rom) per settings.c:257-258.
|
||||
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:
|
||||
# -- Embedded ROMs (compiled into the core, not required on disk) --
|
||||
|
||||
@@ -43,6 +47,7 @@ files:
|
||||
md5: 4c42a2f075212361c3117015b107ff68
|
||||
sha1: 5ea7c2b824672e914525d1d5c419d71b84a426a2
|
||||
size: 16384
|
||||
validation: [size]
|
||||
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"
|
||||
|
||||
@@ -53,6 +58,7 @@ files:
|
||||
md5: b4d2692115a9f2924df92a3cbfb358fb
|
||||
sha1: 4f4b11ec22326280bdb96e3baf9db4b4cb1d02c5
|
||||
size: 16384
|
||||
validation: [size]
|
||||
note: "Spectrum 128K ROM 0 (editor). Embedded in core."
|
||||
source_ref: "fuse/settings.c:209, fuse/machines/spec128.c:70"
|
||||
|
||||
@@ -63,6 +69,7 @@ files:
|
||||
md5: 6e09e5d3c4aef166601669feaaadc01c
|
||||
sha1: 80080644289ed93d71a1103992a154cc9802b2fa
|
||||
size: 16384
|
||||
validation: [size]
|
||||
note: "Spectrum 128K ROM 1 (48 BASIC). Embedded in core."
|
||||
source_ref: "fuse/settings.c:210, fuse/machines/spec128.c:73"
|
||||
|
||||
@@ -73,6 +80,7 @@ files:
|
||||
md5: 4ed7af4636308b8a48d7a35e6c5b546b
|
||||
sha1: 72703f9a3e734f3c23ec34c0727aae4ccbef9a91
|
||||
size: 16384
|
||||
validation: [size]
|
||||
note: "Spectrum +2 ROM 0. Embedded in core."
|
||||
source_ref: "fuse/settings.c:232, fuse/machines/specplus2.c:70"
|
||||
|
||||
@@ -83,6 +91,7 @@ files:
|
||||
md5: b3db95931cc844efaeb82db9c171b9f3
|
||||
sha1: de8b0d2d0379cfe7c39322a086ca6da68c7f23cb
|
||||
size: 16384
|
||||
validation: [size]
|
||||
note: "Spectrum +2 ROM 1. Embedded in core."
|
||||
source_ref: "fuse/settings.c:233, fuse/machines/specplus2.c:73"
|
||||
|
||||
@@ -93,6 +102,7 @@ files:
|
||||
md5: 9833b8b73384dd5fa3678377ff00a2bb
|
||||
sha1: e319ed08b4d53a5e421a75ea00ea02039ba6555b
|
||||
size: 16384
|
||||
validation: [size]
|
||||
note: "Spectrum +3 ROM 0. Also used for +2A. Embedded in core."
|
||||
source_ref: "fuse/settings.c:234,238, fuse/machines/specplus3.c:197"
|
||||
|
||||
@@ -103,6 +113,7 @@ files:
|
||||
md5: 0f711ceb5ab801b4701989982e0f334c
|
||||
sha1: c9969fc36095a59787554026a9adc3b87678c794
|
||||
size: 16384
|
||||
validation: [size]
|
||||
note: "Spectrum +3 ROM 1. Also used for +2A. Embedded in core."
|
||||
source_ref: "fuse/settings.c:235,239, fuse/machines/specplus3.c:200"
|
||||
|
||||
@@ -113,6 +124,7 @@ files:
|
||||
md5: 3b6dd659d5e4ec97f0e2f7878152c987
|
||||
sha1: 22e50c6ba4157a3f6a821bd9937cd26e292775c6
|
||||
size: 16384
|
||||
validation: [size]
|
||||
note: "Spectrum +3 ROM 2. Also used for +2A. Embedded in core."
|
||||
source_ref: "fuse/settings.c:236,240, fuse/machines/specplus3.c:203"
|
||||
|
||||
@@ -123,6 +135,7 @@ files:
|
||||
md5: a148bcc575e51389e84fdf5d555c3196
|
||||
sha1: 65f031caa8148a5493afe42c41f4929deab26b4e
|
||||
size: 16384
|
||||
validation: [size]
|
||||
note: "Spectrum +3 ROM 3. Also used for +2A. Embedded in core."
|
||||
source_ref: "fuse/settings.c:237,241, fuse/machines/specplus3.c:206"
|
||||
|
||||
@@ -133,6 +146,7 @@ files:
|
||||
md5: bc123f625e245c225f92ef05933ed134
|
||||
sha1: 649fbd233490bf58b35350b0123d36caaaa011eb
|
||||
size: 16384
|
||||
validation: [size]
|
||||
note: "Spectrum +3e ROM 0. Embedded in core."
|
||||
source_ref: "fuse/settings.c:242, fuse/machines/specplus3e.c:70"
|
||||
|
||||
@@ -143,6 +157,7 @@ files:
|
||||
md5: 617364264c587d20c9fc4746c29679f2
|
||||
sha1: f12198108cbb14de4f03c6695bc16d08c85ee214
|
||||
size: 16384
|
||||
validation: [size]
|
||||
note: "Spectrum +3e ROM 1. Embedded in core."
|
||||
source_ref: "fuse/settings.c:243, fuse/machines/specplus3e.c:73"
|
||||
|
||||
@@ -153,6 +168,7 @@ files:
|
||||
md5: c363e95dcd0a90e6e7f847e6e47e0179
|
||||
sha1: 773633dce5ba323a9e00d9d0f9e4d8c295df7c87
|
||||
size: 16384
|
||||
validation: [size]
|
||||
note: "Spectrum +3e ROM 2. Embedded in core."
|
||||
source_ref: "fuse/settings.c:244, fuse/machines/specplus3e.c:76"
|
||||
|
||||
@@ -163,6 +179,7 @@ files:
|
||||
md5: a148bcc575e51389e84fdf5d555c3196
|
||||
sha1: 65f031caa8148a5493afe42c41f4929deab26b4e
|
||||
size: 16384
|
||||
validation: [size]
|
||||
note: "Spectrum +3e ROM 3. Same as plus3-3.rom. Embedded in core."
|
||||
source_ref: "fuse/settings.c:245, fuse/machines/specplus3e.c:79"
|
||||
|
||||
@@ -173,6 +190,7 @@ files:
|
||||
md5: fb3f86eb1e5a695d9c50c124e7cfb875
|
||||
sha1: 8608328d7dd66602a4846f046b24fed500f7d828
|
||||
size: 16384
|
||||
validation: [size]
|
||||
note: "Spectrum SE ROM 0. Embedded in core."
|
||||
source_ref: "fuse/settings.c:251, fuse/machines/spec_se.c:89"
|
||||
|
||||
@@ -183,6 +201,7 @@ files:
|
||||
md5: 88de4a3129086f34bb9ca559acc51e6c
|
||||
sha1: 3be5de57dd3bd0a9d15c57cabe9179afe2906a52
|
||||
size: 16384
|
||||
validation: [size]
|
||||
note: "Spectrum SE ROM 1. Embedded in core."
|
||||
source_ref: "fuse/settings.c:252, fuse/machines/spec_se.c:92"
|
||||
|
||||
@@ -193,6 +212,7 @@ files:
|
||||
md5: 9dd7ecf784a6c04265c073c236f5fadb
|
||||
sha1: febb2d495b6eda7cdcb4074935d6e9d9f328972d
|
||||
size: 16384
|
||||
validation: [size]
|
||||
note: "Timex TC2048 ROM. Embedded in core."
|
||||
source_ref: "fuse/settings.c:254, fuse/machines/tc2048.c:80"
|
||||
|
||||
@@ -203,6 +223,7 @@ files:
|
||||
md5: 55d462fccc6c536037404ef4ced08bec
|
||||
sha1: 1446cb2780a9dedf640404a639fa3ae518b2d8aa
|
||||
size: 16384
|
||||
validation: [size]
|
||||
note: "Timex TC2068 ROM 0. Also used for TS2068. Embedded in core."
|
||||
source_ref: "fuse/settings.c:255,257, fuse/machines/tc2068.c:138"
|
||||
|
||||
@@ -213,6 +234,7 @@ files:
|
||||
md5: 575d203c6e15e679fba0b73f854ec7a2
|
||||
sha1: 7e265a2c1f621ed365ea23bdcafdedbc79c1299c
|
||||
size: 8192
|
||||
validation: [size]
|
||||
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"
|
||||
|
||||
@@ -224,6 +246,7 @@ files:
|
||||
required: true
|
||||
md5: ""
|
||||
size: 16384
|
||||
validation: [size]
|
||||
note: "Pentagon 128K/512K/1024 ROM 0. Required for Pentagon machines."
|
||||
source_ref: "fuse/settings.c:221,225,229, fuse/machines/pentagon.c:135"
|
||||
|
||||
@@ -232,6 +255,7 @@ files:
|
||||
required: true
|
||||
md5: ""
|
||||
size: 16384
|
||||
validation: [size]
|
||||
note: "Pentagon 128K/512K/1024 ROM 1. Required for Pentagon machines."
|
||||
source_ref: "fuse/settings.c:222,226,230, fuse/machines/pentagon.c:138"
|
||||
|
||||
@@ -240,6 +264,7 @@ files:
|
||||
required: true
|
||||
md5: ""
|
||||
size: 16384
|
||||
validation: [size]
|
||||
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"
|
||||
|
||||
@@ -248,6 +273,7 @@ files:
|
||||
required: true
|
||||
md5: ""
|
||||
size: 16384
|
||||
validation: [size]
|
||||
note: "Gluck ROM. Required for Pentagon 512K and 1024."
|
||||
source_ref: "fuse/settings.c:224,228, fuse/machines/pentagon512.c:82"
|
||||
|
||||
@@ -257,6 +283,7 @@ files:
|
||||
required: true
|
||||
md5: ""
|
||||
size: 16384
|
||||
validation: [size]
|
||||
note: "Scorpion 256K ROM 0. Required for Scorpion machine."
|
||||
source_ref: "fuse/settings.c:247, fuse/machines/scorpion.c:76"
|
||||
|
||||
@@ -265,6 +292,7 @@ files:
|
||||
required: true
|
||||
md5: ""
|
||||
size: 16384
|
||||
validation: [size]
|
||||
note: "Scorpion 256K ROM 1. Required for Scorpion machine."
|
||||
source_ref: "fuse/settings.c:248, fuse/machines/scorpion.c:79"
|
||||
|
||||
@@ -273,6 +301,7 @@ files:
|
||||
required: true
|
||||
md5: ""
|
||||
size: 16384
|
||||
validation: [size]
|
||||
note: "Scorpion 256K ROM 2. Required for Scorpion machine."
|
||||
source_ref: "fuse/settings.c:249, fuse/machines/scorpion.c:82"
|
||||
|
||||
@@ -281,6 +310,7 @@ files:
|
||||
required: true
|
||||
md5: ""
|
||||
size: 16384
|
||||
validation: [size]
|
||||
note: "Scorpion 256K ROM 3 (TR-DOS). Required for Scorpion machine."
|
||||
source_ref: "fuse/settings.c:250, fuse/machines/scorpion.c:85"
|
||||
|
||||
@@ -289,7 +319,8 @@ files:
|
||||
system: sinclair-zxspectrum
|
||||
required: false
|
||||
md5: ""
|
||||
size: 16384
|
||||
size: 8192
|
||||
validation: [size]
|
||||
note: "Interface 1 ROM (edition 2). Loaded by peripherals/if1.c:403."
|
||||
source_ref: "fuse/settings.c:216, fuse/peripherals/if1.c:403"
|
||||
|
||||
@@ -299,6 +330,7 @@ files:
|
||||
md5: 78e61a2a02121873c1756b21fd1398b1
|
||||
sha1: 9a75ed4b293f968985be4c9aa893cd88276d1ced
|
||||
size: 8192
|
||||
validation: [size]
|
||||
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"
|
||||
|
||||
@@ -308,6 +340,7 @@ files:
|
||||
md5: 42e5de16fb5e50082bb954ec7ce45851
|
||||
sha1: 6b841dc5797ef7eb219ad455cd1e434ca3b9d30d
|
||||
size: 8192
|
||||
validation: [size]
|
||||
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"
|
||||
|
||||
@@ -315,6 +348,8 @@ files:
|
||||
system: sinclair-zxspectrum
|
||||
required: false
|
||||
md5: ""
|
||||
size: 14336
|
||||
validation: [size]
|
||||
note: "Didaktik 80 disk interface ROM. Not embedded."
|
||||
source_ref: "fuse/settings.c:214, fuse/peripherals/disk/didaktik.c:236"
|
||||
|
||||
@@ -322,6 +357,8 @@ files:
|
||||
system: sinclair-zxspectrum
|
||||
required: false
|
||||
md5: ""
|
||||
size: 8192
|
||||
validation: [size]
|
||||
note: "Opus Discovery disk interface ROM. Not embedded."
|
||||
source_ref: "fuse/settings.c:220, fuse/peripherals/disk/opus.c:210"
|
||||
|
||||
@@ -329,6 +366,8 @@ files:
|
||||
system: sinclair-zxspectrum
|
||||
required: false
|
||||
md5: ""
|
||||
size: 8192
|
||||
validation: [size]
|
||||
note: "Multiface 1 ROM. Not embedded."
|
||||
source_ref: "fuse/settings.c:217, fuse/peripherals/multiface.c:224"
|
||||
|
||||
@@ -336,6 +375,8 @@ files:
|
||||
system: sinclair-zxspectrum
|
||||
required: false
|
||||
md5: ""
|
||||
size: 8192
|
||||
validation: [size]
|
||||
note: "Multiface 128 ROM. Not embedded."
|
||||
source_ref: "fuse/settings.c:218, fuse/peripherals/multiface.c:225"
|
||||
|
||||
@@ -343,6 +384,8 @@ files:
|
||||
system: sinclair-zxspectrum
|
||||
required: false
|
||||
md5: ""
|
||||
size: 8192
|
||||
validation: [size]
|
||||
note: "Multiface 3 ROM. Not embedded."
|
||||
source_ref: "fuse/settings.c:219, fuse/peripherals/multiface.c:226"
|
||||
|
||||
@@ -352,6 +395,7 @@ files:
|
||||
md5: c54aa8f374b0971f51546c29d5d1eba1
|
||||
sha1: 16af6f052b38a027dd49ba6e96e3a59d16b62672
|
||||
size: 8192
|
||||
validation: [size]
|
||||
note: "SpeccyBoot ethernet ROM. Bundled in repo but not in mem_entries[]."
|
||||
source_ref: "fuse/settings.c:253, fuse/peripherals/speccyboot.c:148"
|
||||
|
||||
@@ -359,6 +403,8 @@ files:
|
||||
system: sinclair-zxspectrum
|
||||
required: false
|
||||
md5: ""
|
||||
size: 8192
|
||||
validation: [size]
|
||||
note: "TTX2000S teletext adapter ROM. Not embedded."
|
||||
source_ref: "fuse/settings.c:259, fuse/peripherals/ttx2000s.c:198"
|
||||
|
||||
@@ -366,6 +412,8 @@ files:
|
||||
system: sinclair-zxspectrum
|
||||
required: false
|
||||
md5: ""
|
||||
size: 8192
|
||||
validation: [size]
|
||||
note: "Currah uSource ROM. Not embedded."
|
||||
source_ref: "fuse/settings.c:260, fuse/peripherals/usource.c:129"
|
||||
|
||||
|
||||
@@ -3,7 +3,7 @@ type: libretro
|
||||
core_classification: official_port
|
||||
source: "https://github.com/libretro/galaxy-libretro"
|
||||
upstream: "https://github.com/nikp123/Galaksija-Emulator"
|
||||
profiled_date: "2026-03-21"
|
||||
profiled_date: "2026-03-23"
|
||||
core_version: "v0.1"
|
||||
display_name: "Elektronika Inženjering - Galaksija (Galaksija)"
|
||||
cores:
|
||||
@@ -24,7 +24,6 @@ systems:
|
||||
# 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)
|
||||
# 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:
|
||||
# 0x0000-0x0FFF: ROM1 (4096 bytes) - BASIC interpreter
|
||||
@@ -42,6 +41,7 @@ files:
|
||||
size: 2048
|
||||
required: false
|
||||
hle_fallback: true
|
||||
validation: [size]
|
||||
note: >
|
||||
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
|
||||
@@ -53,6 +53,7 @@ files:
|
||||
size: 4096
|
||||
required: false
|
||||
hle_fallback: true
|
||||
validation: [size]
|
||||
note: >
|
||||
System ROM / BASIC interpreter. Mapped at 0x0000-0x0FFF. Contains the
|
||||
Galaksija BASIC language and boot routines. Embedded in rom.c as fallback.
|
||||
@@ -63,6 +64,7 @@ files:
|
||||
size: 4096
|
||||
required: false
|
||||
hle_fallback: true
|
||||
validation: [size]
|
||||
note: >
|
||||
Math extension ROM. Mapped at 0x1000-0x1FFF. Adds floating-point math
|
||||
functions (SIN, COS, TG, SQR, LN, EXP, POW, etc). Optional even when
|
||||
@@ -70,17 +72,6 @@ files:
|
||||
rom.c as fallback.
|
||||
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:
|
||||
embedded_firmware: >
|
||||
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
|
||||
dependencies (libz80, libretro-common, tinyfiledialogs) have separate
|
||||
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.
|
||||
|
||||
@@ -3,7 +3,7 @@ type: libretro
|
||||
core_classification: pure_libretro
|
||||
source: "https://github.com/ThisBoringWorld/gam4980"
|
||||
upstream: "https://codeberg.org/iyzsong/gam4980"
|
||||
profiled_date: "2026-03-21"
|
||||
profiled_date: "2026-03-23"
|
||||
core_version: "0.2"
|
||||
display_name: "GAM4980"
|
||||
cores:
|
||||
@@ -11,58 +11,44 @@ cores:
|
||||
systems:
|
||||
- bbk-longman-4980
|
||||
|
||||
# GAM4980 is a BBK Longman 4980 electronic dictionary game emulator for
|
||||
# libretro. Original code from https://codeberg.org/iyzsong/gam4980, based
|
||||
# on the BA4988 BBK simulator by Wuyun.
|
||||
# GAM4980 emulates the BBK Longman 4980 (A4980/A4988) electronic dictionary.
|
||||
# Original code from https://codeberg.org/iyzsong/gam4980, based on the
|
||||
# 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: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):
|
||||
# ROM loading (src/libretro.c:692-760, sys_init):
|
||||
# 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).
|
||||
# Both files are mandatory -- no fallback, no error handling. The core will
|
||||
# crash if either file is missing.
|
||||
# The upstream has error handling (error_msg + RETRO_ENVIRONMENT_SHUTDOWN on
|
||||
# missing files). The fork (ThisBoringWorld) removed these checks -- crashes
|
||||
# on missing files.
|
||||
#
|
||||
# Memory map (src/libretro.c:109-110, 300-305):
|
||||
# 0x800000-0x9FFFFF rom_8 (font ROM, 8.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
|
||||
# is_experimental = true.
|
||||
# No hash validation. No size validation. The .info declares firmware_count=0.
|
||||
|
||||
notes: |
|
||||
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:
|
||||
8.BIN - font ROM, dumped from address range 0x800000-0x9FFFFF
|
||||
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.
|
||||
|
||||
files:
|
||||
- name: "gam4980/8.BIN"
|
||||
size: 2097152
|
||||
md5: ddfc001a6859d63ed46368ea7fe9f20c
|
||||
sha1: 062067e6d661c3d3e10d910435be4a59db1bee9f
|
||||
required: true
|
||||
system: bbk-longman-4980
|
||||
bundled: false
|
||||
note: "Font ROM (2 MB). Loaded at 0x800000. Dumped from physical device (src/libretro.c:716-718)."
|
||||
source_ref: "src/libretro.c:716"
|
||||
note: "Font ROM (2 MB). Loaded at 0x800000."
|
||||
source_ref: "src/libretro.c:716-718"
|
||||
|
||||
- name: "gam4980/E.BIN"
|
||||
size: 2097152
|
||||
md5: 72a16fd0d2453108321edc65cd347c77
|
||||
sha1: b486b6eda5cd7e79bb5605d1fbe36eb88bfc6724
|
||||
required: true
|
||||
system: bbk-longman-4980
|
||||
bundled: false
|
||||
note: "OS ROM (2 MB). Loaded at 0xE00000. Dumped from physical device (src/libretro.c:720-722)."
|
||||
source_ref: "src/libretro.c:720"
|
||||
note: "OS ROM (2 MB). Loaded at 0xE00000."
|
||||
source_ref: "src/libretro.c:720-722"
|
||||
|
||||
platform_details:
|
||||
bios_mapping:
|
||||
@@ -75,7 +61,7 @@ platform_details:
|
||||
the banking system.
|
||||
|
||||
load_path:
|
||||
source_ref: "src/libretro.c:1173-1177"
|
||||
source_ref: "src/libretro.c:1173-1175"
|
||||
notes: |
|
||||
retro_init() builds the path as {system_directory}/gam4980/ and
|
||||
passes it to sys_init(). Files must be named exactly 8.BIN and
|
||||
|
||||
@@ -3,7 +3,7 @@ type: libretro
|
||||
core_classification: community_fork
|
||||
source: "https://github.com/libretro/gambatte-libretro"
|
||||
upstream: "https://github.com/sinamas/gambatte"
|
||||
profiled_date: "2026-03-21"
|
||||
profiled_date: "2026-03-23"
|
||||
core_version: "v0.5.0"
|
||||
display_name: "Nintendo - Game Boy / Color (Gambatte)"
|
||||
cores:
|
||||
@@ -11,52 +11,45 @@ cores:
|
||||
systems: [nintendo-gb, nintendo-gbc]
|
||||
|
||||
notes: |
|
||||
Gambatte is a Game Boy / Game Boy Color emulator focused on accuracy.
|
||||
No BIOS is required for normal operation. The core has a built-in
|
||||
HLE boot sequence that skips the Nintendo logo animation by default.
|
||||
Accuracy-focused GB/GBC emulator. No BIOS required for normal operation;
|
||||
built-in HLE boot sequence skips the Nintendo logo animation.
|
||||
|
||||
When the core option "gambatte_gb_bootloader" is set to "enabled"
|
||||
(the default), the core looks for official boot ROMs in the system
|
||||
directory to play the real startup logo animation. If the files are
|
||||
missing, emulation still works without them.
|
||||
Core option gambatte_gb_bootloader (default: enabled) enables loading
|
||||
official boot ROMs from the system directory for the real startup animation.
|
||||
If missing, emulation works without them.
|
||||
|
||||
The boot ROM loaded depends on the hardware mode:
|
||||
- DMG (original Game Boy): gb_bios.bin (256 bytes, 0x100)
|
||||
- CGB (Game Boy Color) or GBA mode: gbc_bios.bin (2304 bytes, 0x900)
|
||||
Boot ROM selection by hardware mode:
|
||||
- DMG: gb_bios.bin (256 bytes)
|
||||
- CGB or GBA: gbc_bios.bin (2304 bytes)
|
||||
|
||||
In GBA mode the core patches the CGB boot ROM at 0xF2 to fake
|
||||
GBA detection (ld b,0x01), enabling GBA-enhanced features in
|
||||
compatible GBC games (Shantae, Zelda Oracle series, etc.).
|
||||
In GBA mode the core patches the CGB boot ROM at 0xF2 to fake GBA
|
||||
detection (ld b,0x01), enabling GBA-enhanced features in compatible
|
||||
GBC games.
|
||||
|
||||
File path construction: libretro.cpp get_bootloader_from_file()
|
||||
joins RETRO_ENVIRONMENT_GET_SYSTEM_DIRECTORY with each filename
|
||||
directly - no subdirectories.
|
||||
The upstream standalone supports SGB boot ROM loading; the libretro
|
||||
port does not implement this.
|
||||
|
||||
Gambatte does NOT use sgb_bios.bin. The SGB palette references in
|
||||
the source are color lookup tables for DMG palette colorization,
|
||||
not actual Super Game Boy boot ROM loading.
|
||||
Custom palette files (palettes/*.pal) are user-created colorization
|
||||
configs loaded when GB Colorization is set to "custom". These are
|
||||
user-generated content, not distributable files.
|
||||
|
||||
files:
|
||||
# --- DMG boot ROM (optional, enables startup animation) ---
|
||||
- name: "gb_bios.bin"
|
||||
system: nintendo-gb
|
||||
description: "Original Game Boy (DMG-01) boot ROM"
|
||||
required: false
|
||||
hle_fallback: true
|
||||
size: 256
|
||||
md5: "32fbbd84168d3482956eb3c5051637f5"
|
||||
sha1: "4ed31ec6b0b175bb109c0eb5fd3d193da823339f"
|
||||
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. Core option gambatte_gb_bootloader must be enabled."
|
||||
validation: {core: [size], upstream: [size, crc32]}
|
||||
source_ref: "libretro.cpp:1303-1363 (get_bootloader_from_file), bootloader.cpp:20-55 (load)"
|
||||
notes: "Mapped at 0x0000-0x00FF, swapped out when register 0xFF50 is written."
|
||||
|
||||
# --- CGB boot ROM (optional, enables startup animation) ---
|
||||
- name: "gbc_bios.bin"
|
||||
system: nintendo-gbc
|
||||
description: "Game Boy Color (CGB-001) boot ROM"
|
||||
required: false
|
||||
hle_fallback: true
|
||||
size: 2304
|
||||
md5: "dbfce9db9deaa2567f6a84fde55f9680"
|
||||
sha1: "1293d68bf9643bc4f36954c1e80e38f39864528d"
|
||||
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-enhanced mode with a patch at 0xF2. Presence required for FORCE_CGB flag when hw mode is set to GBC or GBA."
|
||||
validation: {core: [size], upstream: [size, crc32]}
|
||||
source_ref: "libretro.cpp:1303-1363 (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."
|
||||
|
||||
@@ -1,9 +1,9 @@
|
||||
emulator: Gearboy
|
||||
type: libretro
|
||||
core_classification: community_fork
|
||||
source: "https://github.com/libretro/Gearboy"
|
||||
core_classification: official_port
|
||||
source: "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"
|
||||
display_name: "Nintendo - Game Boy / Color (Gearboy)"
|
||||
cores:
|
||||
@@ -13,19 +13,25 @@ systems:
|
||||
- nintendo-gbc
|
||||
|
||||
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)
|
||||
via emu_load_bootrom_dmg/gbc (platforms/desktop-shared/emu.cpp:407-422).
|
||||
The libretro port does NOT load any BIOS files — retro_init() only stores
|
||||
system_dir, retro_load_game() calls LoadROMFromBuffer() with no bootrom
|
||||
loading code (platforms/libretro/libretro.cpp:94-109, 335-364).
|
||||
files:
|
||||
- name: dmg_boot.bin
|
||||
description: Game Boy DMG bootrom
|
||||
size: 256
|
||||
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
|
||||
code never references these files. .info is wrong for the libretro port.
|
||||
|
||||
The core HLE-skips the boot animation — games work without BIOS.
|
||||
|
||||
files: []
|
||||
|
||||
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."
|
||||
- name: cgb_boot.bin
|
||||
description: Game Boy Color bootrom
|
||||
size: 2304
|
||||
required: false
|
||||
hle_fallback: true
|
||||
validation: [size]
|
||||
source_ref: "libretro.cpp:209,212 Memory.cpp:608-611,699-738"
|
||||
|
||||
@@ -2,7 +2,8 @@ emulator: Gearcoleco
|
||||
type: libretro
|
||||
core_classification: official_port
|
||||
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"
|
||||
display_name: "Coleco - ColecoVision (Gearcoleco)"
|
||||
cores:
|
||||
@@ -11,23 +12,20 @@ systems:
|
||||
- colecovision
|
||||
|
||||
notes: |
|
||||
Gearcoleco is a ColecoVision emulator by Ignacio Sanchez (drhelius).
|
||||
The ColecoVision BIOS ROM is required to run games. Without it, the
|
||||
core displays a static "no BIOS" placeholder image (kNoBiosImage from
|
||||
no_bios.h) and games will not execute.
|
||||
ColecoVision emulator by Ignacio Sanchez (drhelius). Official port
|
||||
maintained by the upstream author. The ColecoVision BIOS ROM is required.
|
||||
Without it, the core renders a static placeholder image (kNoBiosImage from
|
||||
no_bios.h) and games do not execute.
|
||||
|
||||
The BIOS is loaded in load_bootroms() (libretro.cpp:293-305) from the
|
||||
system directory. The core first tries "colecovision.rom", then falls
|
||||
back to "coleco.rom" if the first file is not found.
|
||||
The libretro wrapper (libretro.cpp:293-306) tries "colecovision.rom" first,
|
||||
then falls back to "coleco.rom". Both resolve to the same LoadBios() call
|
||||
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
|
||||
bytes (0x2000). No hash check is performed by the core itself.
|
||||
|
||||
On reset, the BIOS byte at offset 0x69 is patched to select region:
|
||||
On reset, BIOS byte at offset 0x69 is patched for region selection:
|
||||
0x3C for NTSC, 0x32 for PAL (Memory.cpp:184-187).
|
||||
|
||||
The core also supports Super Game Module (SGM) expanded RAM but that
|
||||
requires no additional BIOS files.
|
||||
SGM (Super Game Module) expanded RAM requires no additional BIOS files.
|
||||
|
||||
files:
|
||||
- name: "colecovision.rom"
|
||||
@@ -35,16 +33,5 @@ files:
|
||||
system: colecovision
|
||||
required: true
|
||||
size: 8192
|
||||
source_ref: "platforms/libretro/libretro.cpp:293-305 (load_bootroms)"
|
||||
|
||||
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.
|
||||
validation: [size]
|
||||
source_ref: "platforms/libretro/libretro.cpp:293-306, src/Memory.cpp:228-259"
|
||||
|
||||
@@ -2,7 +2,8 @@ emulator: Geargrafx
|
||||
type: libretro
|
||||
core_classification: official_port
|
||||
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"
|
||||
display_name: "NEC - PC Engine / SuperGrafx / CD (Geargrafx)"
|
||||
cores:
|
||||
@@ -14,107 +15,68 @@ systems:
|
||||
|
||||
notes: |
|
||||
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.
|
||||
The core option "geargrafx_cdrom_bios" selects which card image to use:
|
||||
Auto (default, maps to syscard3.pce), System Card 1, System Card 2,
|
||||
System Card 3, or Game Express. The load_bios() function in libretro.cpp
|
||||
builds the path as "{system_directory}/{filename}" and calls
|
||||
CD-ROM games require a System Card BIOS from the system directory. The core
|
||||
option "geargrafx_cdrom_bios" selects which card: Auto (default, maps to
|
||||
syscard3.pce), System Card 1, System Card 2, System Card 3, or Game Express.
|
||||
load_bios() in libretro.cpp builds "{system_directory}/{filename}" and calls
|
||||
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).
|
||||
The LoadBios() function in media.cpp reads the file, strips a 512-byte
|
||||
header if present, computes CRC32, and looks it up in k_game_database
|
||||
entries flagged with GG_GAMEDB_BIOS_SYSCARD or GG_GAMEDB_BIOS_GAME_EXPRESS.
|
||||
If the CRC32 is not found, the BIOS is marked as "Unknown" and invalid,
|
||||
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)
|
||||
LoadBios() in media.cpp reads the file, strips a 512-byte header if present,
|
||||
computes CRC32, and checks it against k_game_database entries flagged with
|
||||
GG_GAMEDB_BIOS_SYSCARD or GG_GAMEDB_BIOS_GAME_EXPRESS. If the CRC32 is not
|
||||
found, the BIOS is marked as "Unknown" and invalid, but loading still proceeds.
|
||||
Size is checked against expected constants and logged if wrong, but not enforced.
|
||||
|
||||
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
|
||||
BIOS instead of the System Card for ROM bank mapping (media.cpp:649).
|
||||
|
||||
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.
|
||||
(GG_GAMEDB_GAME_EXPRESS flag). Arcade Card games are also detected from
|
||||
game_db.h and enable extra 0x30000 bytes of Card RAM for Super CD-ROM mode.
|
||||
|
||||
files:
|
||||
# -- CD-ROM System Card 3 (Japan) - default --
|
||||
|
||||
- name: "syscard3.pce"
|
||||
description: "Super CD-ROM System Card 3.0 (Japan)"
|
||||
region: "NTSC-J"
|
||||
description: "Super CD-ROM System Card 3.0"
|
||||
size: 262144
|
||||
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: >
|
||||
Default BIOS for CD-ROM games (cdrom_bios=0 or 3). Recommended for
|
||||
most CD-ROM and Super CD-ROM titles. 256 KB expected size.
|
||||
|
||||
# -- CD-ROM System Card 2 (Japan) --
|
||||
Default BIOS for CD-ROM games (cdrom_bios Auto or System Card 3).
|
||||
game_db.h recognizes Japan (CRC32 6D9A73EF) and USA (CRC32 2B5B75FE)
|
||||
variants under the same filename.
|
||||
|
||||
- name: "syscard2.pce"
|
||||
description: "CD-ROM System Card 2.0 (Japan)"
|
||||
region: "NTSC-J"
|
||||
description: "CD-ROM System Card 2.0"
|
||||
size: 262144
|
||||
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: >
|
||||
cdrom_bios = 'System Card 2'. For older CD-ROM2 titles. game_db.h lists
|
||||
two variants: v2.0 (CRC32=0x52520BC6) and v2.1 (CRC32=0x283B74E0).
|
||||
|
||||
# -- CD-ROM System Card 1 (Japan) --
|
||||
cdrom_bios = 'System Card 2'. For older CD-ROM2 titles. game_db.h
|
||||
recognizes three variants: v2.0 Japan (CRC32 52520BC6), v2.1 Japan
|
||||
(CRC32 283B74E0), and USA (CRC32 FF2A5EC3).
|
||||
|
||||
- name: "syscard1.pce"
|
||||
description: "CD-ROM System Card 1.0 (Japan)"
|
||||
region: "NTSC-J"
|
||||
size: 262144
|
||||
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: >
|
||||
cdrom_bios = 'System Card 1'. Very early CD-ROM2 games only.
|
||||
|
||||
# -- 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 --
|
||||
CRC32 3F9F95A4.
|
||||
|
||||
- name: "gexpress.pce"
|
||||
description: "Game Express CD Card"
|
||||
region: "NTSC-J"
|
||||
size: 32768
|
||||
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: >
|
||||
Always loaded alongside the selected System Card BIOS (libretro.cpp:481).
|
||||
Required for unlicensed Game Express CD-ROM titles (AV Tanjou,
|
||||
Bishoujo Pachinko, etc). game_db.h lists two variants:
|
||||
Blue Version (CRC32=0x51A12D90) and Green Version (CRC32=0x16AAF05A).
|
||||
Expected size: 32 KB (0x8000).
|
||||
Required for Game Express CD-ROM titles. game_db.h recognizes Blue Version
|
||||
(CRC32 51A12D90) and Green Version (CRC32 16AAF05A).
|
||||
|
||||
valid_bios_crc32:
|
||||
syscard:
|
||||
|
||||
@@ -2,7 +2,7 @@ emulator: Gearlynx
|
||||
type: libretro
|
||||
core_classification: official_port
|
||||
source: "https://github.com/drhelius/Gearlynx"
|
||||
profiled_date: "2026-03-21"
|
||||
profiled_date: "2026-03-23"
|
||||
core_version: "1.0.0"
|
||||
display_name: "Atari - Lynx (GearLynx)"
|
||||
cores: [gearlynx]
|
||||
@@ -12,7 +12,7 @@ verification: existence
|
||||
notes: |
|
||||
Gearlynx is an Atari Lynx emulator by Ignacio Sanchez (drhelius).
|
||||
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.
|
||||
|
||||
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.
|
||||
|
||||
ROM extensions: .lnx, .lyx, .o
|
||||
Core options: none documented in the libretro port.
|
||||
|
||||
files:
|
||||
- name: "lynxboot.img"
|
||||
@@ -43,5 +42,6 @@ files:
|
||||
sha1: "e4ed47fae31693e016b081c6bda48da5b70d7ccb"
|
||||
md5: "fcd403db69f54290b51035d82f835e7b"
|
||||
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)."
|
||||
|
||||
@@ -2,7 +2,8 @@ emulator: Gearsystem
|
||||
type: libretro
|
||||
core_classification: official_port
|
||||
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"
|
||||
display_name: "Sega - MS/GG/SG-1000 (Gearsystem)"
|
||||
cores:
|
||||
@@ -21,8 +22,8 @@ notes: |
|
||||
(both disabled by default). Boot ROMs are loaded in load_bootroms()
|
||||
from the system directory with fixed filenames.
|
||||
|
||||
SG-1000 has no BIOS support. IsBootromEnabled() in Memory.cpp explicitly
|
||||
returns false when a SG-1000 cartridge is detected.
|
||||
SG-1000 and Game Gear in SMS mode have no BIOS support.
|
||||
IsBootromEnabled() returns false for both cases.
|
||||
|
||||
When enabled, the boot ROM executes as on original hardware, which may
|
||||
cause invalid ROMs to lock or fail to boot entirely.
|
||||
@@ -32,17 +33,17 @@ files:
|
||||
- name: "bios.sms"
|
||||
system: sega-mastersystem
|
||||
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"
|
||||
system: sega-gamegear
|
||||
required: false
|
||||
source_ref: "platforms/libretro/libretro.cpp:415-416 (load_bootroms)"
|
||||
source_ref: "platforms/libretro/libretro.cpp:415,418 (load_bootroms)"
|
||||
|
||||
platform_details:
|
||||
mastersystem:
|
||||
bios_filename: "bios.sms"
|
||||
source_ref: "src/Memory.cpp:222-228"
|
||||
source_ref: "src/Memory.cpp:223-228"
|
||||
notes: |
|
||||
Boot ROM loaded via LoadBootromSMS() -> LoadBootroom(path, false).
|
||||
Raw binary read, stored in m_pBootromSMS. Bank count computed as
|
||||
@@ -50,7 +51,7 @@ platform_details:
|
||||
|
||||
gamegear:
|
||||
bios_filename: "bios.gg"
|
||||
source_ref: "src/Memory.cpp:230-234"
|
||||
source_ref: "src/Memory.cpp:230-235"
|
||||
notes: |
|
||||
Boot ROM loaded via LoadBootromGG() -> LoadBootroom(path, true).
|
||||
Raw binary read, stored in m_pBootromGG. Same bank computation.
|
||||
@@ -60,4 +61,4 @@ platform_details:
|
||||
bios_filename: null
|
||||
notes: |
|
||||
No BIOS support. Memory.cpp:291 returns false from IsBootromEnabled()
|
||||
when IsSG1000() is true.
|
||||
when IsSG1000() or IsGameGearInSMSMode() is true.
|
||||
|
||||
@@ -3,7 +3,7 @@ type: libretro
|
||||
core_classification: community_fork
|
||||
source: "https://github.com/libretro/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"
|
||||
display_name: "Sega - MS/GG/MD/CD (Genesis Plus GX)"
|
||||
cores:
|
||||
@@ -36,21 +36,18 @@ files:
|
||||
- name: bios_CD_U.bin
|
||||
system: sega-megacd
|
||||
required: true
|
||||
size: 131072 # 128 KB (0x20000)
|
||||
note: "Sega CD (NTSC-U) boot ROM. Loaded for REGION_USA."
|
||||
source_ref: "core/loadrom.c:409"
|
||||
|
||||
- name: bios_CD_E.bin
|
||||
system: sega-megacd
|
||||
required: true
|
||||
size: 131072
|
||||
note: "Mega CD (PAL) boot ROM. Loaded for REGION_EUROPE."
|
||||
source_ref: "core/loadrom.c:412"
|
||||
|
||||
- name: bios_CD_J.bin
|
||||
system: sega-megacd
|
||||
required: true
|
||||
size: 131072
|
||||
note: "Mega CD (NTSC-J) boot ROM. Loaded for default/Japan region."
|
||||
source_ref: "core/loadrom.c:415"
|
||||
|
||||
@@ -90,7 +87,6 @@ files:
|
||||
- name: bios_MD.bin
|
||||
system: sega-megadrive
|
||||
required: false
|
||||
size: 2048 # 2 KB (0x800)
|
||||
note: "Mega Drive TMSS boot ROM. Shows 'Produced by or under license' screen."
|
||||
source_ref: "libretro/libretro.c:3651"
|
||||
|
||||
@@ -100,28 +96,28 @@ files:
|
||||
- name: ggenie.bin
|
||||
system: sega-megadrive
|
||||
required: false
|
||||
size: 32768 # 32 KB (0x8000)
|
||||
note: "Game Genie ROM. Loaded when Game Genie lock-on is enabled."
|
||||
source_ref: "core/cart_hw/ggenie.c:64"
|
||||
|
||||
- name: areplay.bin
|
||||
system: sega-megadrive
|
||||
required: false
|
||||
size: 65536 # max 64 KB (0x10000)
|
||||
note: "Action Replay (Pro) ROM. Loaded when Action Replay lock-on is enabled."
|
||||
source_ref: "core/cart_hw/areplay.c:64"
|
||||
|
||||
- name: sk.bin
|
||||
system: sega-megadrive
|
||||
required: false
|
||||
size: 2097152 # 2 MB (0x200000)
|
||||
size: 2097152
|
||||
validation: [size]
|
||||
note: "Sonic & Knuckles ROM. Required for S&K lock-on feature."
|
||||
source_ref: "core/cart_hw/md_cart.c:867"
|
||||
|
||||
- name: sk2chip.bin
|
||||
system: sega-megadrive
|
||||
required: false
|
||||
size: 262144 # 256 KB (0x40000)
|
||||
size: 262144
|
||||
validation: [size]
|
||||
note: "Sonic & Knuckles UPMEM ROM. Used by Sonic 2 & Knuckles lock-on."
|
||||
source_ref: "core/cart_hw/md_cart.c:873"
|
||||
|
||||
|
||||
@@ -3,7 +3,7 @@ type: libretro
|
||||
core_classification: enhanced_fork
|
||||
source: "https://github.com/libretro/Genesis-Plus-GX-Wide"
|
||||
upstream: "https://github.com/ekeeke/Genesis-Plus-GX"
|
||||
profiled_date: "2026-03-21"
|
||||
profiled_date: "2026-03-23"
|
||||
core_version: "v1.7.4"
|
||||
display_name: "Sega - MS/GG/MD/CD (Genesis Plus GX Wide)"
|
||||
cores:
|
||||
@@ -26,45 +26,45 @@ files:
|
||||
system: sega-megacd
|
||||
required: true
|
||||
size: 131072
|
||||
source_ref: "core/loadrom.c:409"
|
||||
source_ref: "core/loadrom.c:408"
|
||||
|
||||
- name: bios_CD_E.bin
|
||||
system: sega-megacd
|
||||
required: true
|
||||
size: 131072
|
||||
source_ref: "core/loadrom.c:412"
|
||||
source_ref: "core/loadrom.c:411"
|
||||
|
||||
- name: bios_CD_J.bin
|
||||
system: sega-megacd
|
||||
required: true
|
||||
size: 131072
|
||||
source_ref: "core/loadrom.c:415"
|
||||
source_ref: "core/loadrom.c:414"
|
||||
|
||||
- name: bios_U.sms
|
||||
system: sega-mastersystem
|
||||
required: false
|
||||
source_ref: "core/loadrom.c:511"
|
||||
source_ref: "core/loadrom.c:510"
|
||||
|
||||
- name: bios_E.sms
|
||||
system: sega-mastersystem
|
||||
required: false
|
||||
source_ref: "core/loadrom.c:514"
|
||||
source_ref: "core/loadrom.c:513"
|
||||
|
||||
- name: bios_J.sms
|
||||
system: sega-mastersystem
|
||||
required: false
|
||||
source_ref: "core/loadrom.c:517"
|
||||
source_ref: "core/loadrom.c:516"
|
||||
|
||||
- name: bios.gg
|
||||
system: sega-gamegear
|
||||
required: false
|
||||
source_ref: "core/loadrom.c:480"
|
||||
source_ref: "core/loadrom.c:479"
|
||||
|
||||
- name: bios_MD.bin
|
||||
system: sega-megadrive
|
||||
required: false
|
||||
size: 2048
|
||||
source_ref: "libretro/libretro.c:3551"
|
||||
source_ref: "libretro/libretro.c:3682"
|
||||
|
||||
- name: ggenie.bin
|
||||
system: sega-megadrive
|
||||
@@ -82,10 +82,12 @@ files:
|
||||
system: sega-megadrive
|
||||
required: false
|
||||
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
|
||||
system: sega-megadrive
|
||||
required: false
|
||||
size: 262144
|
||||
source_ref: "core/cart_hw/md_cart.c:873"
|
||||
validation: [size]
|
||||
source_ref: "core/cart_hw/md_cart.c:756"
|
||||
|
||||
@@ -69,7 +69,7 @@ files:
|
||||
size: 524288
|
||||
crc32: "03cc9f6a"
|
||||
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"
|
||||
archive: neogeo.zip
|
||||
|
||||
@@ -1,8 +1,9 @@
|
||||
emulator: Game Music Emu
|
||||
type: utility
|
||||
core_classification: pure_libretro
|
||||
source: "https://github.com/libretro/libretro-gme"
|
||||
upstream: "https://github.com/libgme/game-music-emu"
|
||||
profiled_date: "2026-03-21"
|
||||
profiled_date: "2026-03-23"
|
||||
core_version: "Git"
|
||||
display_name: "Game Music Emu"
|
||||
cores: [gme]
|
||||
@@ -10,7 +11,6 @@ systems: []
|
||||
files: []
|
||||
notes: >
|
||||
Libretro wrapper around Blargg's Game Music Emu library.
|
||||
Plays chiptune music files from various consoles: NSF (NES), SPC (SNES),
|
||||
GBS (Game Boy), VGM/VGZ (Sega), HES (PC Engine), AY (ZX Spectrum),
|
||||
SAP (Atari), KSS (MSX). Loads music files as content.
|
||||
No BIOS, firmware, or system directory files required.
|
||||
Plays chiptune music files: NSF/NSFE (NES), SPC (SNES), GBS (Game Boy),
|
||||
VGM/VGZ (Sega), HES (PC Engine), AY (ZX Spectrum), SAP (Atari),
|
||||
KSS (MSX), GYM (Genesis). Loads music files as content.
|
||||
|
||||
@@ -1,13 +1,14 @@
|
||||
emulator: Gong
|
||||
type: game
|
||||
core_classification: pure_libretro
|
||||
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"
|
||||
display_name: "Gong"
|
||||
cores: [gong]
|
||||
systems: []
|
||||
files: []
|
||||
notes: >
|
||||
Simple Pong clone written as a minimal libretro core example.
|
||||
Self-contained with all rendering done programmatically.
|
||||
No content file, BIOS, or system directory files required.
|
||||
Pong clone. Self-contained single-file core, all rendering programmatic.
|
||||
Original code by Dan Zaidan, ported to libretro by Brad Parker.
|
||||
|
||||
@@ -2,8 +2,8 @@ emulator: gpSP
|
||||
type: libretro
|
||||
core_classification: community_fork
|
||||
source: "https://github.com/libretro/gpsp"
|
||||
upstream: "https://github.com/BASLQC/gPSP"
|
||||
profiled_date: "2026-03-21"
|
||||
upstream: "https://github.com/davidgfnet/gpsp"
|
||||
profiled_date: "2026-03-23"
|
||||
core_version: "Git"
|
||||
display_name: "Nintendo - Game Boy Advance (gpSP)"
|
||||
cores:
|
||||
@@ -12,9 +12,9 @@ systems:
|
||||
- nintendo-gba
|
||||
|
||||
notes: |
|
||||
gpSP is a Game Boy Advance emulator originally by Exophase, ported to
|
||||
libretro. Historically it required the official GBA BIOS to run. Current
|
||||
versions ship a built-in open-source BIOS (bios/open_gba_bios.bin) compiled
|
||||
gpSP is a Game Boy Advance emulator originally by Exophase, forked by
|
||||
notaz for GP2X/Pandora, now maintained by davidgfnet for libretro.
|
||||
Ships a built-in open-source BIOS (bios/open_gba_bios.bin) compiled
|
||||
from bios/source/ that covers most games.
|
||||
|
||||
The core option gpsp_bios controls BIOS selection:
|
||||
@@ -22,52 +22,42 @@ notes: |
|
||||
builtin - always use the built-in open-source BIOS
|
||||
official - try gba_bios.bin, warn and fall back to built-in if missing
|
||||
|
||||
A second option gpsp_boot_mode selects startup behavior:
|
||||
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):
|
||||
BIOS loading path (libretro/libretro.c:1100-1131):
|
||||
1. Resolve system directory (RETRO_ENVIRONMENT_GET_SYSTEM_DIRECTORY)
|
||||
2. Append "/gba_bios.bin"
|
||||
3. load_bios() reads 0x4000 (16 KB) into bios_rom[]
|
||||
4. Sanity check: bios_rom[0] must be 0x18 (ARM branch opcode)
|
||||
5. On failure, memcpy open_gba_bios_rom[] as fallback
|
||||
|
||||
The official BIOS improves compatibility for a few games that rely on
|
||||
precise SWI behavior or BIOS checksum verification. The built-in BIOS
|
||||
works for the vast majority of the GBA library.
|
||||
The official BIOS improves compatibility for games that rely on
|
||||
precise SWI behavior or BIOS checksum verification.
|
||||
|
||||
Upstream (Exophase v0.9) required the official BIOS with no fallback.
|
||||
The built-in open-source BIOS is a libretro port addition.
|
||||
Upstream (notaz/Exophase) required the official BIOS with no fallback.
|
||||
The built-in open-source BIOS is a davidgfnet/libretro addition.
|
||||
|
||||
files:
|
||||
# -------------------------------------------------------
|
||||
# Game Boy Advance - BIOS (optional, built-in fallback)
|
||||
# -------------------------------------------------------
|
||||
- name: gba_bios.bin
|
||||
system: nintendo-gba
|
||||
required: false
|
||||
hle_fallback: true
|
||||
size: 16384 # 16 KB (0x4000)
|
||||
validation: [size]
|
||||
note: "Official GBA BIOS. Built-in open-source BIOS used as fallback. Real BIOS needed for full SWI accuracy and boot logo."
|
||||
source_ref: "libretro/libretro.c:1111"
|
||||
size: 16384
|
||||
description: "Official GBA BIOS"
|
||||
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, gba_memory.c:2568-2579"
|
||||
|
||||
platform_details:
|
||||
gba:
|
||||
bios_size: 16384 # 16 KB
|
||||
bios_size: 16384
|
||||
hle_bios: true
|
||||
source_ref: "libretro/libretro.c:1107-1131, bios/source/"
|
||||
source_ref: "libretro/libretro.c:1100-1131, bios/source/"
|
||||
notes: |
|
||||
The built-in BIOS (open_gba_bios_rom, 16 KB) is an open-source
|
||||
reimplementation compiled from bios/source/. It implements most
|
||||
SWI calls (SoftReset, RegisterRamReset, Halt, VBlankIntrWait,
|
||||
arithmetic, decompression, sound, multiboot).
|
||||
|
||||
Validation is minimal: load_bios() in gba_memory.c reads exactly
|
||||
0x4000 bytes. The libretro frontend checks bios_rom[0] == 0x18
|
||||
(ARM branch instruction at reset vector) to reject garbage files.
|
||||
No hash or checksum verification is performed.
|
||||
No hash or checksum verification is performed. The only check
|
||||
is bios_rom[0] == 0x18 (ARM branch at reset vector).
|
||||
|
||||
The bios_type enum (main.h:56-61) defines three modes:
|
||||
auto_detect - try official first, fall back to built-in
|
||||
|
||||
@@ -2,7 +2,8 @@ emulator: Handy
|
||||
type: libretro
|
||||
core_classification: community_fork
|
||||
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"
|
||||
display_name: "Atari - Lynx (Handy)"
|
||||
cores:
|
||||
@@ -10,27 +11,29 @@ cores:
|
||||
systems: [atari-lynx]
|
||||
|
||||
notes: |
|
||||
Handy is an Atari Lynx emulator. The core loads lynxboot.img from
|
||||
the system directory and validates it by CRC32 (0x0D973C9D). If the
|
||||
file is missing or the CRC does not match, the core falls back to an
|
||||
internal HLE BIOS that replicates the boot sequence in software
|
||||
(ram clear, cart loader decrypt, jump to $0200).
|
||||
Handy is an Atari Lynx emulator by K. Wilkins (Handy 0.95, 2007).
|
||||
The core loads lynxboot.img from the system directory and validates
|
||||
it by CRC32 (0x0D973C9D). If the file is missing or the CRC does
|
||||
not match, the core falls back to an internal HLE BIOS that
|
||||
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
|
||||
and FF80 via a Mikie register write trap (address 0xFD97). When
|
||||
useEmu is true (no valid BIOS loaded), CRom initialises mRomData
|
||||
with a default fill byte (0x88) plus reset vectors pointing to
|
||||
the HLE entry points. The cart decryption uses a hardcoded RSA
|
||||
public key (lynxdec.cpp) identical to the real hardware.
|
||||
the HLE entry points.
|
||||
|
||||
With the real BIOS, the first frame has unusually high cycle counts
|
||||
because hardware timers start from the boot ROM rather than being
|
||||
set artificially. Blip_Buffer::end_frame() caps the audio buffer
|
||||
to handle this overflow.
|
||||
Upstream Handy 0.95 requires the BIOS (throws CLynxException) and
|
||||
validates by checking the first 16 bytes against a hardcoded
|
||||
signature. The libretro port added the HLE fallback and switched
|
||||
to full CRC32 validation.
|
||||
|
||||
File path: libretro.cpp retro_load_game() joins
|
||||
RETRO_ENVIRONMENT_GET_SYSTEM_DIRECTORY with "lynxboot.img".
|
||||
No subdirectory.
|
||||
For headerless cartridges (no LNX/BS93 header), the core loads
|
||||
howard.o from the system directory. This is the Epyx development
|
||||
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:
|
||||
- name: "lynxboot.img"
|
||||
@@ -41,5 +44,12 @@ files:
|
||||
size: 512
|
||||
crc32: "0d973c9d"
|
||||
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)"
|
||||
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."
|
||||
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: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."
|
||||
|
||||
@@ -1,10 +1,10 @@
|
||||
emulator: Hatari
|
||||
type: libretro
|
||||
core_classification: community_fork
|
||||
core_classification: frozen_snapshot
|
||||
source: "https://github.com/libretro/hatari"
|
||||
upstream: "https://github.com/hatari/hatari"
|
||||
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"
|
||||
display_name: "Atari - ST/STE/TT/Falcon (Hatari)"
|
||||
cores:
|
||||
@@ -41,7 +41,7 @@ files:
|
||||
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.
|
||||
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) --
|
||||
# External cartridge image, max 128 KB. Formats: .img, .rom, .stc
|
||||
@@ -51,6 +51,7 @@ files:
|
||||
path: null # user-configured via szCartridgeImageFileName
|
||||
required: false
|
||||
max_size: 131076 # 0x20004 (.stc with 4-byte header) or 0x20000 (raw)
|
||||
validation: [size]
|
||||
note: >
|
||||
External cartridge image. Loaded to address 0xFA0000.
|
||||
STC format images (0x20004 bytes) have a 4-byte header that is stripped.
|
||||
|
||||
@@ -4,7 +4,7 @@ core_classification: enhanced_fork
|
||||
source: "https://github.com/libretro/hbmame-libretro"
|
||||
upstream: "https://github.com/Robbbert/hbmame"
|
||||
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"
|
||||
display_name: "Arcade (HBMAME)"
|
||||
cores:
|
||||
@@ -16,33 +16,17 @@ author: Robbbert
|
||||
game_count: 8511
|
||||
|
||||
notes: |
|
||||
HBMAME (Home Brew MAME) is a fork of MAME focused on two things: preserving
|
||||
homebrew games written for arcade hardware, and including worthwhile hacks of
|
||||
existing arcade games. The libretro port builds as TARGET=hbmame.
|
||||
Fork of MAME 0.220 preserving homebrew and hacked arcade games. Builds as
|
||||
TARGET=hbmame with 191 driver files covering 8511 game entries. Drivers are
|
||||
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
|
||||
carries 191 driver files under src/hbmame/drivers/ covering ~8500 game entries
|
||||
(hbmame.lst). Most drivers are hack/homebrew variants of well-known arcade
|
||||
boards: CPS1, CPS2, CPS3, Neo Geo, Pac-Man, Galaxian, etc.
|
||||
BIOS handling is identical to MAME. Neo Geo drivers reuse the standard
|
||||
neogeo.zip BIOS set via unmodified NEO_BIOS macros (neogeo.h). No other
|
||||
HBMAME driver defines ROM_SYSTEM_BIOS entries. BIOS files are expected as
|
||||
MAME-format ZIP archives in the ROM search path.
|
||||
|
||||
BIOS handling is identical to MAME. HBMAME does not define any custom BIOS
|
||||
ROMs beyond what standard MAME uses. The Neo Geo subsystem (which accounts for
|
||||
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.
|
||||
Data directories (artwork, cheat, hash, ini, samples) can be placed in
|
||||
{system_dir}/mame/ but are optional and game-specific.
|
||||
|
||||
files: []
|
||||
|
||||
|
||||
@@ -2,7 +2,8 @@ emulator: "higan (SFC Accuracy)"
|
||||
type: libretro
|
||||
core_classification: community_fork
|
||||
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)"
|
||||
display_name: "Nintendo - SNES / Famicom (higan Accuracy)"
|
||||
cores:
|
||||
@@ -12,110 +13,124 @@ systems:
|
||||
- nintendo-sgb
|
||||
|
||||
notes: |
|
||||
Historically built from libretro/nSide (fork of higan v106 by hex-usr).
|
||||
Current nSide source prohibits the accuracy profile build
|
||||
(libretro.cpp:38 #error). Core is orphaned — last built from an older
|
||||
nSide revision. Coprocessor firmware loaded from system_dir.
|
||||
SGB emulation from SGB1.sfc/ or SGB2.sfc/ subdirectories.
|
||||
Fork of higan v106 by hex-usr, renamed at byuu's request. Dot-based
|
||||
PPU profile (cycle-accurate, most demanding). Current nSide source
|
||||
blocks accuracy build (#error at libretro.cpp:39, libretro-sfc.cpp:8).
|
||||
Core is orphaned from an older nSide revision.
|
||||
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:
|
||||
# DSP coprocessors - uPD7725 (split data+program format)
|
||||
- name: "dsp1.data.rom"
|
||||
system: nintendo-snes
|
||||
required: false
|
||||
source_ref: "sfc/coprocessor/necdsp"
|
||||
source_ref: "nSide/sfc/cartridge/load.cpp:457-502"
|
||||
|
||||
- name: "dsp1.program.rom"
|
||||
system: nintendo-snes
|
||||
required: false
|
||||
source_ref: "sfc/coprocessor/necdsp"
|
||||
source_ref: "nSide/sfc/cartridge/load.cpp:457-502"
|
||||
|
||||
- name: "dsp1b.data.rom"
|
||||
system: nintendo-snes
|
||||
required: false
|
||||
source_ref: "sfc/coprocessor/necdsp"
|
||||
source_ref: "nSide/sfc/cartridge/load.cpp:457-502"
|
||||
|
||||
- name: "dsp1b.program.rom"
|
||||
system: nintendo-snes
|
||||
required: false
|
||||
source_ref: "sfc/coprocessor/necdsp"
|
||||
source_ref: "nSide/sfc/cartridge/load.cpp:457-502"
|
||||
|
||||
- name: "dsp2.data.rom"
|
||||
system: nintendo-snes
|
||||
required: false
|
||||
source_ref: "sfc/coprocessor/necdsp"
|
||||
source_ref: "nSide/sfc/cartridge/load.cpp:457-502"
|
||||
|
||||
- name: "dsp2.program.rom"
|
||||
system: nintendo-snes
|
||||
required: false
|
||||
source_ref: "sfc/coprocessor/necdsp"
|
||||
source_ref: "nSide/sfc/cartridge/load.cpp:457-502"
|
||||
|
||||
- name: "dsp3.data.rom"
|
||||
system: nintendo-snes
|
||||
required: false
|
||||
source_ref: "sfc/coprocessor/necdsp"
|
||||
source_ref: "nSide/sfc/cartridge/load.cpp:457-502"
|
||||
|
||||
- name: "dsp3.program.rom"
|
||||
system: nintendo-snes
|
||||
required: false
|
||||
source_ref: "sfc/coprocessor/necdsp"
|
||||
source_ref: "nSide/sfc/cartridge/load.cpp:457-502"
|
||||
|
||||
- name: "dsp4.data.rom"
|
||||
system: nintendo-snes
|
||||
required: false
|
||||
source_ref: "sfc/coprocessor/necdsp"
|
||||
source_ref: "nSide/sfc/cartridge/load.cpp:457-502"
|
||||
|
||||
- name: "dsp4.program.rom"
|
||||
system: nintendo-snes
|
||||
required: false
|
||||
source_ref: "sfc/coprocessor/necdsp"
|
||||
source_ref: "nSide/sfc/cartridge/load.cpp:457-502"
|
||||
|
||||
# CX4 coprocessor - HG51BS169
|
||||
- name: "cx4.data.rom"
|
||||
system: nintendo-snes
|
||||
required: false
|
||||
source_ref: "sfc/coprocessor/hitachidsp"
|
||||
source_ref: "nSide/sfc/cartridge/load.cpp:405-454"
|
||||
|
||||
# Seta coprocessors - uPD96050
|
||||
- name: "st010.data.rom"
|
||||
system: nintendo-snes
|
||||
required: false
|
||||
source_ref: "sfc/coprocessor/necdsp"
|
||||
source_ref: "nSide/sfc/cartridge/load.cpp:504-548"
|
||||
|
||||
- name: "st010.program.rom"
|
||||
system: nintendo-snes
|
||||
required: false
|
||||
source_ref: "sfc/coprocessor/necdsp"
|
||||
source_ref: "nSide/sfc/cartridge/load.cpp:504-548"
|
||||
|
||||
- name: "st011.data.rom"
|
||||
system: nintendo-snes
|
||||
required: false
|
||||
source_ref: "sfc/coprocessor/necdsp"
|
||||
source_ref: "nSide/sfc/cartridge/load.cpp:504-548"
|
||||
|
||||
- name: "st011.program.rom"
|
||||
system: nintendo-snes
|
||||
required: false
|
||||
source_ref: "sfc/coprocessor/necdsp"
|
||||
source_ref: "nSide/sfc/cartridge/load.cpp:504-548"
|
||||
|
||||
# ST018 coprocessor - ARM6
|
||||
- name: "st018.data.rom"
|
||||
system: nintendo-snes
|
||||
required: false
|
||||
source_ref: "sfc/coprocessor/armdsp"
|
||||
source_ref: "nSide/sfc/cartridge/load.cpp:362-402"
|
||||
|
||||
- name: "st018.program.rom"
|
||||
system: nintendo-snes
|
||||
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"
|
||||
system: nintendo-sgb
|
||||
required: false
|
||||
source_ref: "nSide/gb/system/system.cpp:54-65"
|
||||
|
||||
- name: "SGB1.sfc/program.rom"
|
||||
system: nintendo-sgb
|
||||
required: false
|
||||
source_ref: "nSide/target-libretro/libretro-sfc.cpp:179-215"
|
||||
|
||||
- name: "SGB2.sfc/sgb2.boot.rom"
|
||||
system: nintendo-sgb
|
||||
required: false
|
||||
source_ref: "nSide/gb/system/system.cpp:54-65"
|
||||
|
||||
- name: "SGB2.sfc/program.rom"
|
||||
system: nintendo-sgb
|
||||
required: false
|
||||
source_ref: "nSide/target-libretro/libretro-sfc.cpp:179-215"
|
||||
|
||||
@@ -2,7 +2,8 @@ emulator: "nSide (SFC Balanced)"
|
||||
type: libretro
|
||||
core_classification: enhanced_fork
|
||||
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)"
|
||||
display_name: "Nintendo - SNES / Famicom (nSide Balanced)"
|
||||
cores:
|
||||
@@ -14,115 +15,118 @@ systems:
|
||||
notes: |
|
||||
Fork of higan v106 by hex-usr, renamed at byuu's request. Balanced
|
||||
PPU profile (scanline-precision, faster than dot-based accuracy).
|
||||
Loads coprocessor firmware from system_dir via locate_libretro().
|
||||
SGB emulation loads 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/.
|
||||
|
||||
files:
|
||||
# DSP coprocessors (split data+program format)
|
||||
# DSP coprocessors - uPD7725 (split data+program format)
|
||||
- name: "dsp1.data.rom"
|
||||
system: nintendo-snes
|
||||
required: false
|
||||
source_ref: "nSide/sfc/coprocessor/necdsp"
|
||||
source_ref: "nSide/sfc-balanced/cartridge/load.cpp:457-501"
|
||||
|
||||
- name: "dsp1.program.rom"
|
||||
system: nintendo-snes
|
||||
required: false
|
||||
source_ref: "nSide/sfc/coprocessor/necdsp"
|
||||
source_ref: "nSide/sfc-balanced/cartridge/load.cpp:457-501"
|
||||
|
||||
- name: "dsp1b.data.rom"
|
||||
system: nintendo-snes
|
||||
required: false
|
||||
source_ref: "nSide/sfc/coprocessor/necdsp"
|
||||
source_ref: "nSide/sfc-balanced/cartridge/load.cpp:457-501"
|
||||
|
||||
- name: "dsp1b.program.rom"
|
||||
system: nintendo-snes
|
||||
required: false
|
||||
source_ref: "nSide/sfc/coprocessor/necdsp"
|
||||
source_ref: "nSide/sfc-balanced/cartridge/load.cpp:457-501"
|
||||
|
||||
- name: "dsp2.data.rom"
|
||||
system: nintendo-snes
|
||||
required: false
|
||||
source_ref: "nSide/sfc/coprocessor/necdsp"
|
||||
source_ref: "nSide/sfc-balanced/cartridge/load.cpp:457-501"
|
||||
|
||||
- name: "dsp2.program.rom"
|
||||
system: nintendo-snes
|
||||
required: false
|
||||
source_ref: "nSide/sfc/coprocessor/necdsp"
|
||||
source_ref: "nSide/sfc-balanced/cartridge/load.cpp:457-501"
|
||||
|
||||
- name: "dsp3.data.rom"
|
||||
system: nintendo-snes
|
||||
required: false
|
||||
source_ref: "nSide/sfc/coprocessor/necdsp"
|
||||
source_ref: "nSide/sfc-balanced/cartridge/load.cpp:457-501"
|
||||
|
||||
- name: "dsp3.program.rom"
|
||||
system: nintendo-snes
|
||||
required: false
|
||||
source_ref: "nSide/sfc/coprocessor/necdsp"
|
||||
source_ref: "nSide/sfc-balanced/cartridge/load.cpp:457-501"
|
||||
|
||||
- name: "dsp4.data.rom"
|
||||
system: nintendo-snes
|
||||
required: false
|
||||
source_ref: "nSide/sfc/coprocessor/necdsp"
|
||||
source_ref: "nSide/sfc-balanced/cartridge/load.cpp:457-501"
|
||||
|
||||
- name: "dsp4.program.rom"
|
||||
system: nintendo-snes
|
||||
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"
|
||||
system: nintendo-snes
|
||||
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"
|
||||
system: nintendo-snes
|
||||
required: false
|
||||
source_ref: "nSide/sfc/coprocessor/necdsp"
|
||||
source_ref: "nSide/sfc-balanced/cartridge/load.cpp:504-548"
|
||||
|
||||
- name: "st010.program.rom"
|
||||
system: nintendo-snes
|
||||
required: false
|
||||
source_ref: "nSide/sfc/coprocessor/necdsp"
|
||||
source_ref: "nSide/sfc-balanced/cartridge/load.cpp:504-548"
|
||||
|
||||
- name: "st011.data.rom"
|
||||
system: nintendo-snes
|
||||
required: false
|
||||
source_ref: "nSide/sfc/coprocessor/necdsp"
|
||||
source_ref: "nSide/sfc-balanced/cartridge/load.cpp:504-548"
|
||||
|
||||
- name: "st011.program.rom"
|
||||
system: nintendo-snes
|
||||
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"
|
||||
system: nintendo-snes
|
||||
required: false
|
||||
source_ref: "nSide/sfc/coprocessor/armdsp"
|
||||
source_ref: "nSide/sfc-balanced/cartridge/load.cpp:362-402"
|
||||
|
||||
- name: "st018.program.rom"
|
||||
system: nintendo-snes
|
||||
required: false
|
||||
source_ref: "nSide/sfc/coprocessor/armdsp"
|
||||
source_ref: "nSide/sfc-balanced/cartridge/load.cpp:362-402"
|
||||
|
||||
# Super Game Boy
|
||||
- name: "SGB1.sfc/sgb1.boot.rom"
|
||||
system: nintendo-sgb
|
||||
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"
|
||||
system: nintendo-sgb
|
||||
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"
|
||||
system: nintendo-sgb
|
||||
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"
|
||||
system: nintendo-sgb
|
||||
required: false
|
||||
source_ref: "nSide/target-libretro/libretro-sfc.cpp:182"
|
||||
source_ref: "nSide/target-libretro/libretro-sfc.cpp:179-215"
|
||||
|
||||
@@ -3,8 +3,8 @@ type: libretro
|
||||
core_classification: official_port
|
||||
source: "https://github.com/LLeny/holani-retro"
|
||||
upstream: "https://github.com/LLeny/holani"
|
||||
profiled_date: "2026-03-21"
|
||||
core_version: "0.6.0"
|
||||
profiled_date: "2026-03-23"
|
||||
core_version: "0.9.9"
|
||||
display_name: "Atari - Lynx (Holani)"
|
||||
cores: [holani]
|
||||
systems: [atari-lynx]
|
||||
@@ -13,7 +13,7 @@ verification: existence
|
||||
notes: |
|
||||
Holani is a cycle-stepped Atari Lynx emulator written in Rust by LLeny.
|
||||
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.
|
||||
|
||||
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
|
||||
file; Rom::from_slice() only checks length == 512.
|
||||
|
||||
ROM extensions: .lnx, .o
|
||||
|
||||
files:
|
||||
- name: "lynxboot.img"
|
||||
description: "Atari Lynx boot ROM"
|
||||
@@ -33,4 +31,5 @@ files:
|
||||
required: false
|
||||
hle_fallback: true
|
||||
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)"
|
||||
|
||||
Reference in New Issue
Block a user