feat: re-profile 40 emulators from fbalpha2012 to holani

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

View File

@@ -1,5 +1,5 @@
{
"generated_at": "2026-03-23T14:00:42Z",
"generated_at": "2026-03-23T20:32:26Z",
"total_files": 6733,
"total_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",

View File

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

View File

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

View File

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

View File

@@ -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):

View File

@@ -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)
# -------------------------------------------------------

View File

@@ -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:

View File

@@ -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)
# -------------------------------------------------------

View File

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

View File

@@ -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: []

View File

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

View File

@@ -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)"

View File

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

View File

@@ -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: []

View File

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

View File

@@ -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,

View File

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

View File

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

View File

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

View File

@@ -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)"

View File

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

View File

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

View File

@@ -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

View File

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

View File

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

View File

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

View File

@@ -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:

View File

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

View File

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

View File

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

View File

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

View File

@@ -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

View File

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

View File

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

View File

@@ -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

View File

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

View File

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

View File

@@ -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: []

View File

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

View File

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

View File

@@ -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)"