feat: re-profile 12 emulators, fix dosbox_core regression

batch re-profiled clownmdemu through dosbox_core with upstream
verification. restored dosbox_core mt-32/cm-32l rom halves removed
by batch (14 files), added core_classification. regenerate database.
This commit is contained in:
Abdessamad Derraz
2026-03-23 12:37:43 +01:00
parent 2612e9fe2d
commit 438fb6e9af
13 changed files with 97 additions and 182 deletions

View File

@@ -1,5 +1,5 @@
{
"generated_at": "2026-03-23T09:52:45Z",
"generated_at": "2026-03-23T11:37:13Z",
"total_files": 6733,
"total_size": 5288642642,
"files": {

View File

@@ -1,8 +1,9 @@
emulator: ClownMDEmu
type: standalone + libretro
core_classification: official_port
source: "https://github.com/Clownacy/clownmdemu-libretro"
upstream: "https://github.com/Clownacy/clownmdemu"
profiled_date: "2026-03-18"
profiled_date: "2026-03-23"
core_version: "Git"
display_name: "Sega - MD/CD (ClownMDEmu)"
cores:
@@ -12,43 +13,17 @@ systems:
- sega-megacd
notes: |
ClownMDEmu is a Sega Mega Drive/Genesis and Mega CD emulator by Clownacy.
Supports cartridge (bin/md/gen) and CD (cue/iso/chd) formats, plus a
subsystem for cartridge+CD combo (Mega CD Mode 1).
The core has NO external BIOS file requirements. firmware_count = 0 in the
libretro .info file confirms this.
Mega CD boot ROM: a custom open-source replacement boot ROM is compiled
directly into the binary as a 16384-entry uint16 array
(mega-cd-boot-rom.c included into bus-main-m68k.c:19-21). Source at
https://github.com/Clownacy/clownmdemu-mcd-boot. No external CD BIOS
files (bios_CD_E.bin, bios_CD_U.bin, bios_CD_J.bin) are needed or loaded.
TMSS (Trademark Security System): not implemented at all. No TMSS ROM is
loaded or checked. The core boots games directly without the "Produced by
or under license from Sega" screen.
The system directory (RETRO_ENVIRONMENT_GET_SYSTEM_DIRECTORY) is only used
as a fallback path for Backup RAM (BuRAM) save files, not for BIOS loading.
CD add-on can be enabled for cartridge games via the "clownmdemu_cd_addon"
core option to allow CD music features, but this uses the built-in boot
ROM, not an external BIOS.
The core implements its own Mega CD BIOS call handler (MegaCDBIOSCall in
bus-sub-m68k.c) via HLE (high-level emulation) of Sub-CPU BIOS functions
including CDBIOS, CDCTRN, FDRSET, FDRCHG, DRVINIT, CDCSTOP, CDCSTAT,
CDCREAD, and others.
Mega Drive/Genesis and Mega CD emulator by Clownacy. Supports cartridge
(bin/md/gen) and CD (cue/iso/chd) formats, plus a subsystem for
cartridge+CD combo (Mega CD Mode 1). Mega CD boot ROM is an open-source
replacement compiled into the binary (mega-cd-boot-rom.c, 32 KB). Sub-CPU
BIOS calls handled via HLE. TMSS not implemented. No external files needed.
files: []
analysis:
tmss:
supported: false
notes: |
TMSS is not implemented. No ROM loaded, no "Produced by Sega" check.
No references to TMSS exist anywhere in the codebase.
megacd_bios:
external_required: false
@@ -56,10 +31,6 @@ analysis:
boot_rom_source: "https://github.com/Clownacy/clownmdemu-mcd-boot"
boot_rom_location: "source/mega-cd-boot-rom.c (16384 uint16 entries = 32 KB)"
bus_mapping: "0x400000-0x41FFFF (address & 0x20000 == 0)"
source_ref: "bus-main-m68k.c:19-21, bus-main-m68k.c:484-494"
source_ref: "bus-main-m68k.c:19-21, bus-main-m68k.c:501-513"
bios_hle: true
hle_source_ref: "bus-sub-m68k.c:64 (MegaCDBIOSCall)"
notes: |
The Mega CD boot ROM is an open-source replacement compiled into the
binary. Sub-CPU BIOS calls are handled via HLE. No external Sega CD
BIOS files (bios_CD_E/U/J.bin) are needed.

View File

@@ -1,7 +1,9 @@
emulator: Craft
type: game
core_classification: pure_libretro
source: "https://github.com/libretro/Craft"
profiled_date: "2026-03-18"
upstream: "https://github.com/fogleman/Craft"
profiled_date: "2026-03-23"
core_version: "v1"
display_name: "Minecraft (Craft)"
cores: [craft]
@@ -9,6 +11,8 @@ systems: []
files: []
notes: >
Libretro port of Craft, a simple Minecraft clone by Michael Fogleman.
Procedurally generates a voxel world with basic block placement and removal.
All textures and shaders are compiled into the binary.
No content file, BIOS, or system directory files required.
All textures, fonts, and shaders are embedded in the binary (header arrays).
Upstream loads textures from external PNG files; libretro port compiles them in.
Uses system directory only for craft.db/auth.db (core-generated save data).
Source has zero fopen calls. .info declares no firmware.
source_ref: "libretro/libretro.c, src/main.c:2680-2698, src/main.c:3315-3345"

View File

@@ -1,7 +1,9 @@
emulator: CrocoDS
type: libretro
core_classification: official_port
source: "https://github.com/libretro/libretro-crocods"
profiled_date: "2026-03-18"
upstream: "https://github.com/redbug26/crocods-core"
profiled_date: "2026-03-23"
core_version: "v1"
display_name: "Amstrad - CPC (CrocoDS)"
cores:

View File

@@ -1,8 +1,9 @@
emulator: Cruzes
type: libretro
core_classification: pure_libretro
source: "https://github.com/libretro/libretro-samples/tree/master/tests/cruzes"
profiled_date: "2026-03-18"
core_version: "v1.0"
profiled_date: "2026-03-23"
core_version: "0.1"
display_name: "Cruzes"
cores:
- cruzes
@@ -10,25 +11,22 @@ systems:
- game
notes: |
Cruzes is an unfinished Picross puzzle game implemented as a libretro core,
part of the libretro-samples repository. It is not an emulator -- it is a
standalone game that runs directly within RetroArch.
Unfinished Picross puzzle game, part of the libretro-samples repository.
No separate upstream -- written directly for the libretro API.
The core sets supports_no_game to true (cruzes.c:772) and valid_extensions
to an empty string (cruzes.c:749). The puzzle grid is hardcoded in
retro_init (cruzes.c:706-717) via a string literal passed to load_challenge.
supports_no_game true (cruzes.c:772), valid_extensions "" (cruzes.c:749).
Puzzle grid hardcoded in retro_init (cruzes.c:706-717) via load_challenge.
retro_load_game (cruzes.c:728-732) sets pixel format and returns true.
No file I/O, no RETRO_ENVIRONMENT_GET_SYSTEM_DIRECTORY call.
retro_load_game (cruzes.c:728-732) only sets the pixel format to RGB565
and returns true. It never reads from the game_info pointer, never calls
RETRO_ENVIRONMENT_GET_SYSTEM_DIRECTORY, and never opens any file from disk.
The font data (Carlito-Regular.ttf) is converted to C header files at build
time by the ttf2c tool (font10.h, font16.h, font24.h) and compiled in.
No external BIOS, firmware, or system files are needed.
Font data (Carlito-Regular.ttf) compiled in via ttf2c (font10.h, font16.h,
font24.h).
files: []
exclusion_note: >
Game core with no external file dependencies. All assets compiled in.
analysis:
file_loading: none
system_directory_used: false

View File

@@ -1,60 +1,28 @@
emulator: Daphne
type: standalone + libretro
core_classification: community_fork
source: "https://github.com/libretro/daphne"
upstream: "https://github.com/DirtBagXon/hypseus-singe"
profiled_date: "2026-03-18"
upstream: "https://github.com/mirror/daphne-emu"
profiled_date: "2026-03-23"
core_version: "Git"
display_name: "Arcade (Daphne)"
cores:
- daphne
systems:
- arcade-laserdisc
notes: |
Daphne is a LaserDisc arcade game emulator ported to libretro. It emulates
classic full-motion video arcade games like Dragon's Lair, Space Ace,
Cliff Hanger, and others that used LaserDisc players for video output.
The core does NOT require any shared system BIOS or firmware files.
The libretro-core-info file (daphne_libretro.info) declares no firmware.
LaserDisc arcade game emulator. Port of Daphne 1.0 (Matt Ownby) to libretro.
Each game loads its own arcade ROM set from a ZIP file named after the game
short name (e.g. lair.zip, cliff.zip, bega.zip). ROM files are individual
arcade chip dumps loaded via the rom_def struct in each game class
(daphne-1.0-src/game/*.cpp). CRC32 verification is performed at load time
(game.cpp:769-778).
Content loading path (libretro.cpp:546-637):
1. User points RetroArch to a .zip file (e.g. /Daphne/roms/lair.zip)
2. The core strips the path to derive:
- rom_name: game short name (e.g. "lair"), lowercased
- rom_path: parent directory
3. A home_dir is set to rom_path/.. (one level up from roms/)
4. Additional data is expected relative to home_dir:
- roms/ -> game ROM ZIPs
- framefile/ -> frame description files (.txt)
- sound/ -> sound samples
- ram/ -> SRAM saves
- pics/ -> overlay graphics
Expected directory layout:
Daphne/
roms/lair.zip
roms/cliff.zip
framefile/lair.txt
framefile/cliff.txt
sound/lair/ (optional, game-specific samples)
Supported games include (from README.md and libretro.cpp):
lair (Dragon's Lair), ace (Space Ace), cliff (Cliff Hanger),
bega (Bega's Battle), badlands (Badlands), esh (Esh's Aurunmilla),
interstellar, mach3, sdq (Super Don Quix-ote), tq (Thayer's Quest),
astron, galaxy, cobra, roadblaster, gpworld, lair2 (Dragon's Lair II),
and many ROM revision variants.
The core is marked experimental. Savestates, cheats, and disk control are
not supported. Requires full file path (retro_load_game uses path, not
data buffer).
(e.g. lair.zip). ROMs are loaded from a content-relative directory structure
(homedir/roms/) with CRC32 verification (game.cpp:767-781). The core never
accesses the RetroArch system directory. Additional per-game data (framefiles,
sound samples, overlay BMPs) is also loaded relative to the content directory.
files: []
# No shared BIOS or firmware files. All ROMs are per-game arcade chip
# dumps distributed inside game-named ZIP archives. These are game content,
# not system files managed by retroarch_system.
exclusion_note: >
.info declares no firmware (firmware_count absent). Code confirmed: the core
never calls RETRO_ENVIRONMENT_GET_SYSTEM_DIRECTORY. All files (ROM ZIPs,
framefiles, sound, pics) load from the content directory via g_homedir
(libretro.cpp:1153, set to rom_path/..). No shared system BIOS or firmware.

View File

@@ -1,17 +1,20 @@
emulator: DeSmuME 2015
type: libretro
core_classification: frozen_snapshot
source: "https://github.com/libretro/desmume2015"
profiled_date: "2026-03-19"
upstream: "https://github.com/TASEmulators/desmume"
profiled_date: "2026-03-23"
core_version: "SVN (2015 snapshot)"
display_name: "Nintendo - DS (DeSmuME 2015)"
cores: [desmume2015]
systems: [nintendo-ds]
exclusion_note: ".info declares firmware_count=3 but code never loads external BIOS (desmume_use_external_bios absent)"
exclusion_note: ".info declares firmware_count=3 but libretro frontend never enables external BIOS loading (UseExtBIOS defaults false in NDSSystem.h:497, never set in libretro.cpp)"
notes: |
Frozen 2015 snapshot of DeSmuME. The external BIOS loading feature
(desmume_use_external_bios) does NOT exist in this version.
Verified: libretro.cpp has no bios7/bios9/firmware path construction.
ref: desmume2015/desmume/src/frontend/libretro/libretro.cpp
Frozen 2015 snapshot of DeSmuME. The core emulator code supports external
BIOS/firmware (PrepareBiosARM7/ARM9 in NDSSystem.cpp:1974-2050), but
UseExtBIOS defaults to false (NDSSystem.h:497) and the libretro frontend
never sets it — no desmume_use_external_bios core option exists in this
version. Uses HLE BIOS stubs when external BIOS not loaded.
files: []

View File

@@ -1,7 +1,9 @@
emulator: DICE
type: libretro
core_classification: community_fork
source: "https://github.com/mittonk/dice-libretro"
profiled_date: "2026-03-18"
upstream: "https://sourceforge.net/projects/dice/"
profiled_date: "2026-03-23"
core_version: "v0.4.2"
display_name: "Arcade (DICE)"
cores:
@@ -10,50 +12,14 @@ systems:
- discrete-arcade
notes: |
DICE (Discrete Integrated Circuit Emulator) emulates early arcade hardware
built entirely from discrete logic components, with no CPU. dice-libretro is
a libretro port by Ken Mitton, based on upstream DICE by Adam B.
Discrete Integrated Circuit Emulator. Emulates early arcade hardware built
from discrete logic components with no CPU. Libretro port by Ken Mitton,
based on upstream DICE by Adam B.
No BIOS or firmware files required. The .info file declares firmware_count = 0.
Games fall into two categories:
- ROM-based: shipped as MAME-style ZIP archives (filename matters).
The core loads the ZIP passed by the frontend and matches individual ROM
chips by CRC32 (chips/rom.cpp:41-218, RomDesc::get_data). If a chip's
CRC does not match, the core walks all entries in the archive looking for
a CRC match or alt_crc match.
- ROM-less: games like Pong, Breakout, Rebound whose original PCBs had no
ROM at all. These use .dmy dummy launcher files (empty placeholders) to
tell RetroArch which game to start.
retro_get_system_info (libretro.cpp:122-137) sets need_fullpath = true,
block_extract = true, valid_extensions = "zip|dmy|k1|a1|6c|c6|d2|s1|f4|a4|
1da|da1|C4|4c|4d|d7|d4". The unusual extensions are raw ROM chip dumps for
individual games (e.g. .k1 for antiaircraft, .a1 for attack).
dice.cpp:42-66 strips any "#inner.rom" suffix from the path (for ROM
managers that expose zip contents) and passes the zip path to
RomDesc::set_zip_filename.
retro_init (libretro.cpp:50-63) retrieves RETRO_ENVIRONMENT_GET_SYSTEM_DIRECTORY
but uses it only for the retro_base_directory variable, not for loading any
system files.
Games with ROMs (10 titles):
antiaircraft.zip - 1 ROM chip (k1)
attack.zip - 6 ROM chips (a1, b1, c1, d1, j6, k6), each with alt_crc
cleansweep.zip - 3 ROM chips (6c, d7, k3)
crashnscore.zip - 6 ROM chips (d2, e2, f6, f7, p6, p7)
indy4.zip - 4 ROM chips (s1, s2, c1, c2)
jetfighter.zip - 6 ROM chips (a4, j1, j5, k5, m1, r5)
sharkjaws.zip - 2 ROM chips (1da/da1, 1db/db1)
steeplechase.zip - 2 ROM chips (C4, D4); bugle ROM c8 dump missing
stuntcycle.zip - 2 ROM chips (4d, 1fh)
wipeout.zip - 2 ROM chips (d4, g7)
ROM-less games (11 titles, use .dmy dummy files):
breakout, crossfire, gotcha, hiway, pinpong, pong, pongdoubles,
quadrapong, rebound, spacerace, tvbasketball
Games load as MAME-style ZIP archives matched by CRC32 per ROM chip
(chips/rom.cpp:41-218). ROM-less games (Pong, Breakout, etc.) use .dmy
dummy launcher files. The system directory is retrieved but never used
for file loading (libretro.cpp:60-62).
files: []

View File

@@ -1,7 +1,9 @@
emulator: Dinothawr
type: game
core_classification: game_engine
source: "https://github.com/libretro/Dinothawr"
profiled_date: "2026-03-18"
upstream: "https://github.com/libretro/Dinothawr"
profiled_date: "2026-03-23"
core_version: "v1.0"
display_name: "Dinothawr"
cores: [dinothawr]

View File

@@ -1,7 +1,8 @@
emulator: DirectXBox
type: libretro
core_classification: pure_libretro
source: "https://github.com/libretro/libretro-directxbox"
profiled_date: "2026-03-18"
profiled_date: "2026-03-23"
core_version: "alpha"
display_name: "Microsoft - Xbox (DirectXbox)"
cores:
@@ -41,16 +42,18 @@ files:
- name: "mcpx_1.0.bin"
path: "mcpx_1.0.bin"
size: 512
validation: [size]
required: true
note: >
Xbox MCPX ROM (secret boot ROM on the southbridge). Contains the initial
boot vector that loads the flash BIOS. Overlaid at the last 512 bytes of
the 16 MB flash region (0xFFFFFE00-0xFFFFFFFF). Only needed for retail
machine types; Debug and Chihiro skip this file.
source_ref: "src/xbox.cpp:186-206, src/libretro/libretro.cpp:202"
source_ref: "src/xbox.cpp:186-207, src/libretro/libretro.cpp:202"
- name: "cromwell_1024.bin"
path: "cromwell_1024.bin"
validation: [size]
required: true
note: >
Cromwell open-source Xbox BIOS (1024 KB variant). Loaded as the flash ROM
@@ -58,7 +61,7 @@ files:
multiple of 0x10000. This is the only BIOS that currently boots in the
emulator. The Microsoft retail BIOS (xbox-3944.bin) is referenced in
commented-out code but does not work yet.
source_ref: "src/xbox.cpp:143-178, src/libretro/libretro.cpp:203-204"
source_ref: "src/xbox.cpp:143-178, src/libretro/libretro.cpp:203"
notes:
status: >

View File

@@ -1,8 +1,9 @@
emulator: DirkSimple
type: standalone + libretro
core_classification: official_port
source: "https://github.com/icculus/DirkSimple"
upstream: "https://github.com/icculus/DirkSimple"
profiled_date: "2026-03-19"
profiled_date: "2026-03-23"
core_version: "0.2"
display_name: "Laserdisc arcade game (DirkSimple)"
cores: [dirksimple]
@@ -11,30 +12,29 @@ systems:
notes: |
DirkSimple by Ryan C. Gordon (icculus). Plays laserdisc arcade games
via Lua scripts + Ogg Theora video. NOT related to Daphne — completely
different architecture.
via Lua scripts + Ogg Theora video. Same author wrote both standalone
and libretro backends (source == upstream).
Libretro port loads from system_dir/DirkSimple/.
ref: dirksimple_libretro.c:782,795
ref: dirksimple_libretro.c:782,794
sysdir from RETRO_ENVIRONMENT_GET_SYSTEM_DIRECTORY
basedir = sysdir + "/DirkSimple/"
DirkSimple_startup(basedir, info->path, ...) at line 798
DirkSimple_startup(basedir, info->path, ...) at line 799
Standalone loads from data/ in the binary's directory.
ref: README.md — "data directory must be included in same directory as binary"
Standalone loads from SDL_GetBasePath() + data/.
ref: dirksimple_sdl.c:575-577
Game data in data/games/<gamename>/game.lua + assets (PNG, WAV).
User provides the OGV laserdisc video as content.
Supported games: Dragon's Lair (lair), Cliff Hanger (cliff).
10 data files in the repo (game.lua scripts, sprites, sounds).
10 data files in the repo (game.lua scripts, sprites, sounds, icons).
Buildbot provides DirkSimple.zip via Core System Files Downloader.
ref: buildbot.libretro.com/assets/system/DirkSimple.zip
data_directories:
- ref: dirksimple
source_ref: "dirksimple_libretro.c:795"
source_ref: "dirksimple_libretro.c:794"
files: []
# no BIOS/firmware — game data via data_directories

View File

@@ -1,8 +1,10 @@
emulator: "Dolphin Launcher"
type: launcher
core_classification: launcher
exclusion_note: "stub core calls standalone Dolphin — all BIOS in Dolphin's own directory"
source: "https://github.com/RobLoach/libretro-dolphin-launcher"
profiled_date: "2026-03-18"
upstream: "https://github.com/dolphin-emu/dolphin"
profiled_date: "2026-03-23"
core_version: "1.2.0"
display_name: "Nintendo - GameCube / Wii (Dolphin Launcher)"
cores:
@@ -10,15 +12,10 @@ cores:
systems: [nintendo-gamecube, nintendo-wii]
notes: |
Launcher stub that passes games to standalone Dolphin (dolphin-emu-nogui,
dolphin-emu, or Flatpak org.DolphinEmu.dolphin-emu). The core itself does
no emulation - it calls system() with the game path, waits for Dolphin to
exit, then signals RETRO_ENVIRONMENT_SHUTDOWN.
Requires Dolphin installed separately on the host. All BIOS/firmware files
(IPL.bin, DSP ROMs, fonts, Wii NAND) are managed by the standalone Dolphin
install, not by RetroArch system/. See dolphin.yml for those files.
No system files, BIOS, or firmware required by this core.
Launcher stub that passes games to standalone Dolphin via system() calls.
Tries dolphin-emu-nogui, falls back to dolphin-emu, then Flatpak
org.DolphinEmu.dolphin-emu. Waits for Dolphin to exit, then signals
RETRO_ENVIRONMENT_SHUTDOWN. Requires Dolphin installed on the host.
All BIOS/firmware files are managed by the standalone Dolphin install.
files: []

View File

@@ -1,5 +1,6 @@
emulator: DOSBox-core
type: standalone + libretro
core_classification: community_fork
source: "https://github.com/libretro/dosbox-core"
upstream: "https://github.com/dosbox-staging/dosbox-staging"
profiled_date: "2026-03-19"