feat: re-profile 14 emulators, add dosbox and ep128emu_core

batch re-profiled dosbox_pure through fbalpha2012_cps1 with upstream
verification. new profiles: dosbox, ep128emu_core. regenerate database.
This commit is contained in:
Abdessamad Derraz
2026-03-23 15:04:43 +01:00
parent 7dce7499d0
commit 65b6ab9354
17 changed files with 454 additions and 138 deletions

View File

@@ -1,5 +1,5 @@
{
"generated_at": "2026-03-23T11:37:13Z",
"generated_at": "2026-03-23T14:00:42Z",
"total_files": 6733,
"total_size": 5288642642,
"files": {
@@ -88325,6 +88325,9 @@
"exos21.bin": [
"55315b20fecb4441a07ee4bc5dc7153f396e0a2e"
],
"EXOS21.ROM": [
"55315b20fecb4441a07ee4bc5dc7153f396e0a2e"
],
"zx48.rom": [
"5ea7c2b824672e914525d1d5c419d71b84a426a2"
],
@@ -88580,6 +88583,24 @@
"arm6.program.rom": [
"388e3721b94cd074d6ba0eca8616523d2118a6c3"
],
"EXOS20.ROM": [
"6033a0535136c40c47137e4d1cd9273c06d5fdff"
],
"EXDOS14.ROM": [
"cb43ab3676b93c279f1ed8ffcb0d4dcd4b34e631"
],
"TVC22_D6_D4.64K": [
"f2572ee83d09fc08f4de4a62f101c8bb301a9505"
],
"TVC22_D7.64K": [
"abf119cf947ea32defd08b29a8a25d75f6bd4987"
],
"VT-DOS12-DISK.ROM": [
"072c6160d4e7d406f5d8f5b1b66066c797d35561"
],
"AMSDOS_0.5.ROM": [
"39102c8e9cb55fcc0b9b62098780ed4a3cb6a4bb"
],
"atari_osb.rom": [
"db1031585968cfc6ec2ecda5c9a5a52f61444a3b"
],
@@ -88592,6 +88613,9 @@
"2608_RYM.WAV": [
"c65592330c9dd84011151daed52f9aec926b7e56"
],
"DMG_ROM.bin": [
"1db57a1e8b6e4096f811587f9eab0c6675fd9755"
],
"dmg0_rom.bin": [
"1db57a1e8b6e4096f811587f9eab0c6675fd9755"
],
@@ -108900,6 +108924,12 @@
"8063185d4dd653dd75a68855148c9ee15b71164c",
"b86b932cb4ce34472e0fe0f01a4a4350e15dcb53",
"388e3721b94cd074d6ba0eca8616523d2118a6c3",
"6033a0535136c40c47137e4d1cd9273c06d5fdff",
"cb43ab3676b93c279f1ed8ffcb0d4dcd4b34e631",
"f2572ee83d09fc08f4de4a62f101c8bb301a9505",
"abf119cf947ea32defd08b29a8a25d75f6bd4987",
"072c6160d4e7d406f5d8f5b1b66066c797d35561",
"39102c8e9cb55fcc0b9b62098780ed4a3cb6a4bb",
"db1031585968cfc6ec2ecda5c9a5a52f61444a3b",
"b4f14e58030ed40fff2dc312b58ea4440bdf8cc5",
"c65592330c9dd84011151daed52f9aec926b7e56",

117
emulators/dosbox.yml Normal file
View File

@@ -0,0 +1,117 @@
emulator: DOSBox
type: libretro
core_classification: community_fork
source: "https://github.com/libretro/dosbox-libretro"
upstream: "https://sourceforge.net/projects/dosbox/"
profiled_date: "2026-03-23"
core_version: "0.74"
display_name: "DOS (DOSBox)"
cores: [dosbox]
systems: [dos]
notes: |
Based on DOSBox 0.74 snapshot. MUNT MT-32 emulation added by libretro port.
Upstream DOSBox 0.74 has no MUNT — only OS-level MIDI (ALSA, CoreMIDI, Win32).
Hardware MIDI drivers removed, replaced with retro_midi_interface passthrough.
MT-32 activated via mididevice=mt32 in dosbox config section [midi].
Older MUNT version: no MT-32 v2.x ROMs, no CM-32LN support.
Both ROMs loaded by fixed filename from system directory root.
ref: midi_mt32.h:82-106
Keyboard layouts and codepages embedded in binary.
ref: dos_keyboard_layout_data.h, dos_codepages.h
.info declares firmware_count=0 but code loads 2 files (MUNT ROMs).
dosbox-libretro.conf optional config searched in system_directory/DOSbox/.
ref: libretro.cpp:751
files:
# -- MT-32 Control ROM --
# Loaded from system_directory/MT32_CONTROL.ROM.
# MUNT validates by SHA1+size against known ROM database.
# CM-32L control ROMs also accepted under this filename.
- name: "MT32_CONTROL.ROM"
description: "MT-32 Control v1.04"
required: false
hle_fallback: true
size: 65536
sha1: "5a5cb5a77d7d55ee69657c2f870416daed52dea7"
mode: libretro
source_ref: "midi_mt32.h:92, munt/ROMInfo.cpp:30"
- name: "MT32_CONTROL.ROM"
description: "MT-32 Control v1.05"
required: false
hle_fallback: true
size: 65536
sha1: "e17a3a6d265bf1fa150312061134293d2b58288c"
mode: libretro
source_ref: "midi_mt32.h:92, munt/ROMInfo.cpp:31"
- name: "MT32_CONTROL.ROM"
description: "MT-32 Control v1.06"
required: false
hle_fallback: true
size: 65536
sha1: "a553481f4e2794c10cfe597fef154eef0d8257de"
mode: libretro
source_ref: "midi_mt32.h:92, munt/ROMInfo.cpp:32"
- name: "MT32_CONTROL.ROM"
description: "MT-32 Control v1.07"
required: false
hle_fallback: true
size: 65536
sha1: "b083518fffb7f66b03c23b7eb4f868e62dc5a987"
mode: libretro
source_ref: "midi_mt32.h:92, munt/ROMInfo.cpp:33"
- name: "MT32_CONTROL.ROM"
description: "MT-32 Control BlueRidge"
required: false
hle_fallback: true
size: 65536
sha1: "7b8c2a5ddb42fd0732e2f22b3340dcf5360edf92"
mode: libretro
source_ref: "midi_mt32.h:92, munt/ROMInfo.cpp:34"
# -- CM-32L / LAPC-I Control ROMs --
# Same fixed filename MT32_CONTROL.ROM — no CM32L_CONTROL.ROM in this core.
- name: "MT32_CONTROL.ROM"
description: "CM-32L/LAPC-I Control v1.00"
required: false
hle_fallback: true
size: 65536
sha1: "73683d585cd6948cc19547942ca0e14a0319456d"
mode: libretro
source_ref: "midi_mt32.h:92, munt/ROMInfo.cpp:36"
- name: "MT32_CONTROL.ROM"
description: "CM-32L/LAPC-I Control v1.02"
required: false
hle_fallback: true
size: 65536
sha1: "a439fbb390da38cada95a7cbb1d6ca199cd66ef8"
mode: libretro
source_ref: "midi_mt32.h:92, munt/ROMInfo.cpp:37"
# -- PCM ROMs --
# Loaded from system_directory/MT32_PCM.ROM.
# CM-32L PCM ROM also accepted under this filename.
- name: "MT32_PCM.ROM"
description: "MT-32 PCM ROM"
required: false
hle_fallback: true
size: 524288
sha1: "f6b1eebc4b2d200ec6d3d21d51325d5b48c60252"
mode: libretro
source_ref: "midi_mt32.h:99, munt/ROMInfo.cpp:39"
- name: "MT32_PCM.ROM"
description: "CM-32L/CM-64/LAPC-I PCM ROM"
required: false
hle_fallback: true
size: 1048576
sha1: "289cc298ad532b702461bfc738009d9ebe8025ea"
mode: libretro
source_ref: "midi_mt32.h:99, munt/ROMInfo.cpp:40"

View File

@@ -1,10 +1,11 @@
emulator: DOSBox Pure
type: standalone + libretro
core_classification: enhanced_fork
source: "https://github.com/libretro/dosbox-pure"
upstream: "https://github.com/schellingb/dosbox-pure"
logo: "https://raw.githubusercontent.com/schellingb/dosbox-pure/main/images/logo.png"
profiled_date: "2026-03-19"
core_version: "0.9.9"
profiled_date: "2026-03-23"
core_version: "1.0-preview5"
display_name: "DOS (DOSBox-Pure)"
cores: [dosbox_pure]
systems: [dos]
@@ -17,7 +18,7 @@ notes: |
ref: dosbox_pure_libretro.cpp:1367-1378
MT-32 requires matched pair: *_CONTROL.ROM + *_PCM.ROM (PCM name derived
from CONTROL name by replacing CONTROL with PCM, preserving case).
ref: dosbox_pure_libretro.cpp:182-199
ref: midi_mt32.h:189-199
ZIP archives also supported — scanned for files by size (65536/131072 =
control, 524288/1048576 = PCM), not by name.
ref: midi_mt32.h:160-166
@@ -28,8 +29,7 @@ notes: |
Bundled MUNT (header-only mt32emu.h) for MT-32 emulation.
SHA1-based ROM identification (mt32emu.h:5112-5127,5185).
13 full control ROMs + 2 PCM ROMs supported (no split ROMs in this MUNT).
Includes MT-32 v2.03 (not in dosbox-core's MUNT).
12 full control ROMs + 2 PCM ROMs supported (no split ROMs in this MUNT).
TinySoundFont (tsf.h) for SF2/SF3 playback.
No firmware entries in .info file — all MIDI files optional.

View File

@@ -1,24 +1,28 @@
emulator: DOSBox-SVN
type: libretro
core_classification: community_fork
source: "https://github.com/libretro/dosbox-svn"
upstream: "https://sourceforge.net/projects/dosbox/"
profiled_date: "2026-03-19"
profiled_date: "2026-03-23"
core_version: "SVN"
display_name: "DOS (DOSBox-SVN)"
cores: [dosbox_svn]
systems: [dos]
notes: |
DOSBox-SVN is the same codebase as dosbox_svn_ce but builds with a fake
SDL shim (WITH_FAKE_SDL=1) instead of real SDL, for broader platform compat.
Same codebase as dosbox_svn_ce, builds against a fake SDL shim
(WITH_FAKE_SDL=1) instead of real SDL, for broader platform compat.
ref: libretro/Makefile.libretro, libretro/fakesdl/
No MT-32 emulation — no MUNT bundled, no mt32emu, no FluidSynth, no BASS.
The src/midi/munt directory referenced in Makefile.common does not exist.
MIDI output is hardware-only via fake SDL stubs.
No MT-32 emulation. src/midi/munt referenced in Makefile.common:15
does not exist, no MUNT submodule. MIDI is hardware-only
(ALSA, CoreAudio, CoreMIDI, Win32, OSS) + retro_midi_interface.
ref: src/gui/midi.cpp
system_directory is read (libretro.cpp:1399) but only logged, never used
to load any files.
system_directory set and logged (libretro.cpp:1399-1401), never used
to load files. Config uses retro_save_directory (cross.cpp:61-71).
Keyboard layouts and codepages embedded in binary.
ref: dos_keyboard_layout_data.h, dos_codepages.h
.info firmware_count=0, matches code.
files: []
# No BIOS, firmware, ROMs, or system files of any kind.

View File

@@ -1,26 +1,28 @@
emulator: DOSBox-SVN CE
type: libretro
core_classification: community_fork
source: "https://github.com/libretro/dosbox-svn"
upstream: "https://sourceforge.net/projects/dosbox/"
profiled_date: "2026-03-19"
profiled_date: "2026-03-23"
core_version: "SVN CE"
display_name: "DOS (DOSBox-SVN CE)"
cores: [dosbox_svn_ce]
systems: [dos]
notes: |
DOSBox-SVN CE (Community Edition) is the same codebase as dosbox_svn but
builds against real SDL 1.2 + SDL_net instead of the fake SDL shim.
ref: libretro/Makefile.libretro (WITH_FAKE_SDL flag)
Same codebase as dosbox_svn, builds against real SDL 1.2 + SDL_net
instead of the fake SDL shim (WITH_FAKE_SDL not set).
ref: libretro/Makefile.libretro:238
No MT-32 emulation — no MUNT bundled, no mt32emu, no FluidSynth, no BASS.
The src/midi/munt directory referenced in Makefile.common does not exist.
MIDI output is hardware-only (ALSA, CoreAudio, CoreMIDI, Win32, OSS).
ref: src/gui/midi.cpp, src/gui/midi_alsa.h, midi_coreaudio.h, etc.
No MT-32 emulation. src/midi/munt referenced in Makefile.common:15
does not exist, no MUNT submodule. MIDI is hardware-only
(ALSA, CoreAudio, CoreMIDI, Win32, OSS) + retro_midi_interface.
ref: src/gui/midi.cpp
system_directory is read (libretro.cpp:1399) but only logged, never used
to load any files.
system_directory set and logged (libretro.cpp:1399-1401), never used
to load files. Config uses retro_save_directory (cross.cpp:61-73).
Keyboard layouts and codepages embedded in binary.
ref: dos_keyboard_layout_data.h, dos_codepages.h
Requires libsdl1.2 and libsdl-net1.2 at runtime (.info notes).
.info firmware_count=0, matches code.
files: []
# No BIOS, firmware, ROMs, or system files of any kind.

View File

@@ -1,8 +1,9 @@
emulator: doukutsu-rs
type: standalone + libretro
core_classification: game_engine
source: "https://github.com/DrGlaucous/doukutsu-rs-nm"
upstream: "https://github.com/doukutsu-rs/doukutsu-rs"
profiled_date: "2026-03-19"
profiled_date: "2026-03-23"
core_version: "1.2.0 - 0.101.0"
display_name: "Cave Story (drs)"
cores:

View File

@@ -1,8 +1,10 @@
emulator: DuckStation
type: standalone + libretro
core_classification: official_port
source: "https://github.com/stenzek/duckstation"
upstream: "https://github.com/stenzek/duckstation"
logo: "https://raw.githubusercontent.com/stenzek/duckstation/master/data/resources/images/duck.png"
profiled_date: "2026-03-19"
profiled_date: "2026-03-23"
core_version: "v0.1"
display_name: "Sony - PlayStation (DuckStation)"
cores: [duckstation]
@@ -11,14 +13,14 @@ bios_size: 524288 # 0x80000 (512 KB), also accepts PS2 (4 MB) and PS3 (0x3E66F0
verification: md5
notes: |
DuckStation auto-detects BIOS by MD5 hash from a flat scan of the BIOS directory.
ref: src/core/bios.cpp:459-481 (FindBIOSImagesInDirectory — scans all files by size)
ref: src/core/bios.cpp:460-482 (FindBIOSImagesInDirectory — scans all files by size)
ref: src/core/bios.cpp:208 (MD5Digest::HashData identification)
Accepts PS1 (512 KB), PS2 (4 MB), and PS3 (0x3E66F0) BIOS images.
ref: src/core/bios.h:24-26 (BIOS_SIZE, BIOS_SIZE_PS2, BIOS_SIZE_PS3)
Only the first 512 KB are mapped (bios.cpp:212).
105 known BIOS entries (24 PS1 + 80 PS2 + 1 KDL-22PX300) identified by MD5.
104 known BIOS entries (24 PS1 + 80 PS2) identified by MD5.
ref: src/core/bios.cpp:34-139 (s_image_info_by_hash)
Each image has: region, region_check, fast_boot_patch type, priority score.
Lower priority = preferred. PS2 deprioritized (>= 100) for dynamic fast boot.

View File

@@ -1,8 +1,9 @@
emulator: EasyRPG Player
type: standalone + libretro
core_classification: game_engine
source: "https://github.com/libretro/easyrpg-libretro"
upstream: "https://github.com/EasyRPG/Player"
profiled_date: "2026-03-19"
profiled_date: "2026-03-23"
core_version: "0.8.1.0"
display_name: "RPG Maker 2000/2003 (EasyRPG)"
cores:
@@ -69,12 +70,12 @@ files:
path: "easyrpg.soundfont"
required: false
hle_fallback: true
source_ref: "decoder_fluidsynth.cpp:125, scene_logo.cpp:261"
source_ref: "decoder_fluidsynth.cpp:125"
note: >
General MIDI soundfont (SF2 format) for MIDI music playback. Many RPG
Maker games use MIDI for background music. Without a soundfont, MIDI
tracks are silent. Any GM-compatible .sf2 works. Can also be placed in
easyrpg-player/Soundfont/ with any filename.
falls back to the built-in FmMidi synthesizer (lower quality). Any
GM-compatible .sf2 works.
# ================================================================
# WildMidi configuration (optional, alternative MIDI backend)
@@ -101,7 +102,6 @@ files:
category: game_data
path: "rtp/2000/"
required: false
hle_fallback: true
type: directory
source_ref: "filefinder_rtp.cpp:73-74"
note: >
@@ -121,7 +121,6 @@ files:
category: game_data
path: "rtp/2003/"
required: false
hle_fallback: true
type: directory
source_ref: "filefinder_rtp.cpp:73-74"
note: >

View File

@@ -1,45 +1,45 @@
emulator: ECWolf
type: standalone + libretro
core_classification: game_engine
source: "https://github.com/libretro/ecwolf"
upstream: "https://bitbucket.org/ecwolf/ecwolf"
profiled_date: "2026-03-19"
core_version: "1.4.1"
profiled_date: "2026-03-23"
core_version: "1.3.99999"
display_name: "Wolfenstein 3D (ECWolf)"
cores: [ecwolf]
systems: [wolfenstein3d]
verification: md5
notes: |
Wolfenstein 3D source port by Braden Obrzut. Plays Wolf3D (wl6/wl1),
Spear of Destiny (sod/sdm), Super 3D Noah's Ark (n3d), and community pk3 mods.
Blake Stone and Rise of the Triad support flagged as Preview in upstream.
Requires ecwolf.pk3 — engine data package built from wadsrc/static/.
Contains IWADINFO (game detection rules), palettes, sprites, map configs,
DECORATE actor definitions, MAPINFO, SNDINFO, fonts, and localization strings.
Without this file: "Could not open ecwolf.pk3!" fatal error.
ref: version.h:12 (MAIN_PK3), wl_iwad.cpp:642-657 (load + fatal)
Libretro: ecwolf.pk3 searched in system_dir.
ref: libretro/libretro.cpp:831-832 (sysDir passed to SelectGame)
ref: libretro.cpp:831-832 (sysDir passed to SelectGame)
Standalone: ecwolf.pk3 searched in progdir (binary directory).
ref: wl_main.cpp:1289 (progdir passed to SelectGame)
ref: wl_main.cpp:1295 (progdir passed to SelectGame)
Also: INSTALL_PREFIX/share/ecwolf/ on Linux (wl_iwad.cpp:648)
Game data files (vswap, gamemaps, vgagraph, audiot) loaded from content
directory, not system directory. Auto-detects game variant by scanning
lump contents against IWADINFO MustContain rules.
Blake Stone and Rise of the Triad support flagged as Preview.
Libretro fork based on ECWolf 1.3.99999-dev (forked 2020-02-23).
Upstream head at 1.5.0pre with broader game support.
files:
- name: "ecwolf.pk3"
description: "ECWolf engine data package"
required: true
md5: "c011b428819eea4a80b455c245a5a04d"
source_ref: "ecwolf_libretro.info:firmware0, version.h:MAIN_PK3, wl_iwad.cpp:SelectGame"
source_ref: "version.h:12 (MAIN_PK3), wl_iwad.cpp:642-657 (open + fatal), libretro.cpp:831-832 (sysDir)"
notes: >
Built from wadsrc/static/ via zipdir. Contains IWADINFO (game detection rules),
palettes (wolfpal, spearpal, blakepal, noahpal), map lump remappers (wl6map,
sodmap, etc.), DECORATE actor definitions, MAPINFO, SNDINFO, SNDSEQ, textures,
sprites, fonts, and localization strings. Without this file the core errors
with "Could not open ecwolf.pk3!". The md5 corresponds to the version shipped
with the current libretro buildbot release.
sprites, fonts, and localization strings. md5 from .info, not validated by code.

View File

@@ -1,9 +1,10 @@
emulator: EmuSCV
type: standalone + libretro
type: libretro
core_classification: community_fork
source: "https://github.com/wzcwzc/emuscv"
upstream: "https://github.com/wzcwzc/emuscv"
profiled_date: "2026-03-19"
core_version: ""
upstream: "http://takeda-toshiya.my.coocan.jp/"
profiled_date: "2026-03-23"
core_version: "0.12"
display_name: "EPOCH/YENO Super Cassette Vision"
cores:
- emuscv
@@ -11,37 +12,44 @@ systems:
- scv
notes: |
EmuSCV is an Epoch/YENO Super Cassette Vision emulator for libretro,
based on eSCV by Takeda Toshiya.
Libretro port of eSCV by Takeda Toshiya (Common Source Code Project),
ported to libretro by MARCONATO Maxime. Upstream source mirrored at
https://github.com/tautologico/common-src-project (src/vm/scv/).
BIOS loading in src/vm/scv/memory.cpp:initialize() (line 71-242). The core
tries multiple filenames in order: upd7801g.s01, upd7801g.bin, upd7801g.bios,
bios.rom, bios.bin. First successful open wins.
BIOS loading in src/vm/scv/memory.cpp:initialize() (lines 74-243).
Tries filenames in order: upd7801g.s01, upd7801g.bin, upd7801g.bios,
bios.rom, bios.bin. First successful open wins. Upstream eSCV uses
only BIOS.ROM (uppercase); the libretro port renamed and added
fallback aliases.
The BIOS is read as 0x1000 (4096) bytes into the bios[] array, mapped
read-only at CPU address 0x0000-0x0FFF (UPD7801 internal ROM area).
When CHECKBIOS core option is YES or AUTO, the core computes MD5 of the
loaded data and compares against 635a978fd40db9a18ee44eff449fc126. If the
hash does not match, the BIOS is rejected (zeroed out, bios_present=false).
When CHECKBIOS is NO, any file content is accepted.
When CHECKBIOS core option is YES, the core computes MD5 of the loaded
data and compares against 635a978fd40db9a18ee44eff449fc126. If the
hash does not match, the BIOS is rejected (zeroed out,
bios_present=false). When CHECKBIOS is AUTO (default) or NO, any file
content is accepted. The log message for AUTO says "automatic (yes)"
but the code skips the check (code bug: != YES_VAL at line 80).
The font/character data is embedded within the BIOS at offset 0x200
(memory.h:163 get_font() returns bios + 0x200). No separate font ROM file.
(memory.h get_font() returns bios + 0x200). No separate font ROM file.
The core can start without BIOS (supports_no_game=true) but shows
"BIOS not found" or "Bad BIOS" on the OSD. Games will not run without it.
"BIOS not found" or "Bad BIOS" on the OSD. Games will not run without
it.
The .info file declares firmware_count = 1, firmware0_opt = false.
The .info declares firmware_count=1, firmware0_opt=false. Matches code.
files:
- name: "upd7801g.s01"
system: scv
required: true
size: 4096 # 4 KB, UPD7801G internal ROM
size: 4096
md5: 635a978fd40db9a18ee44eff449fc126
validation: [md5]
note: "UPD7801G internal ROM (BIOS). Mapped at 0x0000-0x0FFF. Contains character font at offset 0x200."
source_ref: "src/vm/scv/memory.cpp:74, libretro-core-info/emuscv_libretro.info"
source_ref: "src/vm/scv/memory.cpp:74-243"
aliases:
- "upd7801g.bin"
- "upd7801g.bios"
@@ -54,7 +62,7 @@ platform_details:
upd7801g:
target: "0x0000-0x0FFF (CPU internal ROM, 4 KB)"
format: "raw binary"
source_ref: "src/vm/scv/memory.cpp:249"
source_ref: "src/vm/scv/memory.cpp:249-254"
notes: |
Memory map from memory.cpp:initialize():
0x0000-0x0FFF BIOS ROM (read-only)

View File

@@ -1,7 +1,9 @@
emulator: "emux (CHIP-8)"
type: libretro
core_classification: official_port
source: "https://github.com/libretro/emux"
profiled_date: "2026-03-18"
upstream: "https://github.com/sronsse/emux"
profiled_date: "2026-03-23"
core_version: "0.1"
display_name: "CHIP-8 (Emux CHIP-8)"
cores:

View File

@@ -1,7 +1,9 @@
emulator: "emux (Game Boy)"
type: libretro
core_classification: official_port
source: "https://github.com/libretro/emux"
profiled_date: "2026-03-19"
upstream: "https://github.com/sronsse/emux"
profiled_date: "2026-03-23"
core_version: "0.1"
display_name: "Nintendo - Game Boy / Color (Emux GB)"
cores:
@@ -10,41 +12,24 @@ systems:
- nintendo-gb
notes: |
emux is a multi-system emulator by Sebastien Ronsse, supporting CHIP-8,
Game Boy, NES, and Sega Master System as separate libretro cores.
emux is a multi-system emulator by Sebastien Ronsse. The libretro port
renamed the boot ROM from DMG_ROM.bin (upstream, gb_mapper.c:32) to
dmg_boot.bin (libretro, gb_mapper.c:35) to match RetroArch conventions.
Boot ROM loading in controllers/mapper/gb_mapper.c:
static char *bootrom_path = "dmg_boot.bin"; (line 32)
gb_mapper->bootrom = file_map(PATH_SYSTEM, bootrom_path, 0, BOOTROM_SIZE);
If file_map returns NULL, gb_mapper_init returns false — core cannot start.
No HLE fallback, no skip logic.
Boot ROM loaded via file_map(PATH_SYSTEM, "dmg_boot.bin", 0, 256) in
gb_mapper_init (gb_mapper.c:225-228). Returns false on failure — no HLE
fallback. Mapped at 0x0000-0x00FF, overlays ROM0 until BOOT_LOCK (0xFF50)
is written non-zero (lock_writeb, gb_mapper.c:97-106).
Boot ROM is 256 bytes (BOOTROM_SIZE in gb_mapper.h:10), mapped at 0x0000-0x00FF.
When register 0xFF50 (BOOT_LOCK) is written with non-zero, the bootrom region
is removed from the memory map (lock_writeb, gb_mapper.c:130-138).
Memory map from mach/gb.c:
0x0000-0x00FF Boot ROM (overlays ROM0 until BOOT_LOCK)
0x0000-0x3FFF ROM bank 0 (16 KB)
0x4000-0x7FFF ROM bank 1 (switchable, 16 KB)
0x8000-0x9FFF VRAM (8 KB)
0xA000-0xBFFF External RAM (8 KB)
0xC000-0xDFFF WRAM (8 KB)
0xFE00-0xFE9F OAM (160 bytes)
0xFF80-0xFFFE HRAM (127 bytes)
The .info declares firmware_count=1, firmware0_opt=false.
is_experimental=true. Core does not support save states, rewind, or netplay.
system_directory obtained via RETRO_ENVIRONMENT_GET_SYSTEM_DIRECTORY
(libretro/libretro.c:23-25), passed as "system-dir" config param.
No hash validation. Code accepts any 256+ byte file.
is_experimental=true. No save states, rewind, or netplay.
files:
- name: "dmg_boot.bin"
aliases: ["DMG_ROM.bin"]
system: nintendo-gb
description: "Game Boy (DMG) boot ROM"
required: true
size: 256
md5: "32fbbd84168d3482956eb3c5051637f5"
source_ref: "controllers/mapper/gb_mapper.c:32 (bootrom_path), gb_mapper.h:10 (BOOTROM_SIZE=256)"
note: "Mapped at 0x0000-0x00FF, overlays ROM0 until BOOT_LOCK (0xFF50) written. No HLE — core fails to init without this file."
source_ref: "controllers/mapper/gb_mapper.c:35 (bootrom_path), gb_mapper.h:13 (BOOTROM_SIZE=256), gb_mapper.c:225-232 (file_map + error)"
note: "Upstream name DMG_ROM.bin, renamed by libretro port (gb_mapper.c:33-34)."

View File

@@ -1,7 +1,9 @@
emulator: "emux (NES)"
type: libretro
core_classification: official_port
source: "https://github.com/libretro/emux"
profiled_date: "2026-03-19"
upstream: "https://github.com/sronsse/emux"
profiled_date: "2026-03-23"
core_version: "0.1"
display_name: "Nintendo - NES / Famicom (Emux NES)"
cores:

View File

@@ -1,7 +1,9 @@
emulator: "emux (SMS)"
type: libretro
core_classification: official_port
source: "https://github.com/libretro/emux"
profiled_date: "2026-03-19"
upstream: "https://github.com/sronsse/emux"
profiled_date: "2026-03-23"
core_version: "0.1"
display_name: "Sega - Master System (Emux SMS)"
cores:
@@ -10,37 +12,17 @@ systems:
- sms
notes: |
emux is a multi-system emulator by Sebastien Ronsse, supporting CHIP-8,
Game Boy, NES, and Sega Master System as separate libretro cores.
emux is a multi-system emulator by Sebastien Ronsse. BIOS and cartridge
code identical between upstream and libretro fork (only difference: libretro
adds g_ram_data/g_ram_size exposure in mach/sms.c for RETRO_MEMORY_SYSTEM_RAM).
BIOS loading in controllers/mapper/sms_mapper.c:
static char *bios_path = "bios.sms"; (line 33)
#define BIOS_SIZE 0x2000 (line 7, 8192 bytes)
sms_mapper->bios = file_map(PATH_SYSTEM, bios_path, 0, BIOS_SIZE);
If file_map returns NULL, init returns false — core cannot start.
No HLE fallback, no skip logic.
BIOS loaded via file_map(PATH_SYSTEM, "bios.sms", 0, BIOS_SIZE) in
sms_mapper_init (sms_mapper.c:162-165). Returns false on failure — no HLE
fallback. Mapped at 0x0000, overlays cartridge ROM until bios_disable bit
set in slot control register (sms_mapper.c:79-82).
BIOS enable/disable via slot control register port write (lines 74-90):
bios_disable bit in control union. Reset clears bios_disable and
adds BIOS region to memory map. Writing bios_disable=1 removes
the BIOS overlay, exposing cartridge ROM underneath.
Cartridge loading delegated to sega_mapper controller:
ROM mapped via file_map(PATH_DATA, ...), 16 KB banks (BANK_SIZE=0x4000),
3 bank slots (NUM_BANKS=3), bank select registers at 0xFFFD-0xFFFF.
Memory map from mach/sms.c:
0x0000-0xBFFF Mapper (BIOS overlay + cartridge ROM banks)
0xC000-0xDFFF RAM (8 KB)
0xE000-0xFFFF RAM mirror
The .info declares firmware_count=1, firmware0_opt=false.
is_experimental=true. No save states, rewind, or netplay support.
Supported extensions: sms, bms, bin, rom.
system_directory obtained via RETRO_ENVIRONMENT_GET_SYSTEM_DIRECTORY
(libretro/libretro.c:23-25), passed as "system-dir" config param.
BIOS loaded from this directory via PATH_SYSTEM.
No hash validation. Code accepts any file >= 8192 bytes.
is_experimental=true. No save states, rewind, or netplay.
files:
- name: "bios.sms"
@@ -48,6 +30,6 @@ files:
description: "Sega Master System BIOS"
required: true
size: 8192
md5: "840481177270d5642a14ca71ee72844c"
source_ref: "controllers/mapper/sms_mapper.c:7 (BIOS_SIZE=0x2000), :33 (bios_path), :167-172 (file_map)"
note: "Mapped at 0x0000, overlays cartridge ROM until bios_disable bit set in slot control register. No HLE — core fails to init without this file."
validation: [size]
source_ref: "controllers/mapper/sms_mapper.c:12 (BIOS_SIZE=0x2000), :61 (bios_path), :162-170 (file_map + NULL check → return false)"
note: "Mapped at 0x0000, overlays cartridge ROM until bios_disable bit set. file_map rejects files < 8192 bytes (file.c:59)."

179
emulators/ep128emu_core.yml Normal file
View File

@@ -0,0 +1,179 @@
emulator: ep128emu_core
type: libretro
core_classification: community_fork
display_name: "Enterprise - 64/128 (ep128emu)"
source: https://github.com/libretro/ep128emu-core
upstream: https://github.com/istvan-v/ep128emu
profiled_date: "2026-03-23"
core_version: "1.2.10"
cores:
- ep128emu_core
systems:
- enterprise-64
- enterprise-128
- videoton-tvc
- amstrad-cpc
- zx-spectrum
notes: >-
Emulates Enterprise 64/128, Videoton TVC, Amstrad CPC 464/664/6128,
and ZX Spectrum 16/48/128. All ROMs are embedded in the binary since
v1.1.0; external files override built-in data. Content type is
auto-detected and determines machine configuration and ROM selection.
Custom ROM mappings are possible via .ep128cfg config files placed in
ep128emu/config/ or next to content. The .info declares epd19hft.rom
and zt19hfnt.rom which are phantom entries never referenced in code.
The .info omits epdos16f.rom and exdos14isdos10uk.rom which are used
by the code. SDEXT, ReSID, and MIDI port features are compile-disabled
in the libretro build.
files:
- name: exos21.rom
description: Enterprise 128 Expandible OS 2.1
path: ep128emu/roms/exos21.rom
required: false
source_ref: "core/core.cpp:234-237, roms/roms.hpp:18472-21205"
aliases:
- EXOS21.ROM
- name: exos20.rom
description: Enterprise 64 Expandible OS 2.0
path: ep128emu/roms/exos20.rom
required: false
source_ref: "core/core.cpp:226-229, roms/roms.hpp:15738-18471"
aliases:
- EXOS20.ROM
- name: exos24uk.rom
description: Enterprise 128 Expandible OS 2.4 (enhanced, fast memory test)
path: ep128emu/roms/exos24uk.rom
required: false
source_ref: "core/core.cpp:214-221, roms/roms.hpp:32838-38302"
- name: basic21.rom
description: Enterprise 128 BASIC Interpreter v2.1
path: ep128emu/roms/basic21.rom
required: false
source_ref: "core/core.cpp:248,266,276, roms/roms.hpp:3433-4801"
- name: basic20.rom
description: Enterprise 64 BASIC Interpreter v2.0
path: ep128emu/roms/basic20.rom
required: false
source_ref: "core/core.cpp:246,264,274, roms/roms.hpp:2064-3432"
- name: exdos13.rom
description: Enterprise 128 Disk Controller v1.3
path: ep128emu/roms/exdos13.rom
required: false
source_ref: "core/core.cpp:303-306, roms/roms.hpp:13004-15737"
aliases:
- EXDOS14.ROM
- name: exdos14isdos10uk.rom
description: Enterprise 128 IS-DOS (CP/M compatible disk system)
path: ep128emu/roms/exdos14isdos10uk.rom
required: false
source_ref: "core/core.cpp:295-298, roms/roms.hpp:30103-32836"
- name: epfileio.rom
description: Enterprise 128 Direct File I/O
path: ep128emu/roms/epfileio.rom
required: false
source_ref: "core/core.cpp:283-284, roms/roms.hpp:9-1377"
- name: epdos16f.rom
description: Enterprise 128 EP-DOS v1.6f (Hungarian font and CLKOFF)
path: ep128emu/roms/epdos16f.rom
required: false
source_ref: "core/core.cpp:252-255, roms/roms.hpp:43779-46512"
- name: hun.rom
description: Enterprise 128 Hungarian language extension
path: ep128emu/roms/hun.rom
required: false
source_ref: "core/core.cpp:242, roms/roms.hpp:41039-42407"
- name: brd.rom
description: Enterprise 128 German language extension
path: ep128emu/roms/brd.rom
required: false
source_ref: "core/core.cpp:260, roms/roms.hpp:42409-43777"
- name: zt19uk.rom
description: Enterprise 128 ZozoTools extension (DTF file loading)
path: ep128emu/roms/zt19uk.rom
required: false
source_ref: "core/core.cpp:287-290, roms/roms.hpp:38304-41037"
- name: tvc22_sys.rom
description: Videoton TVC system ROM v2.2
path: ep128emu/roms/tvc22_sys.rom
required: false
source_ref: "core/core.cpp:313-314, roms/roms.hpp:21206-22574"
aliases:
- TVC22_D6_D4.64K
- name: tvc22_ext.rom
description: Videoton TVC extension ROM v2.2
path: ep128emu/roms/tvc22_ext.rom
required: false
source_ref: "core/core.cpp:315-316, roms/roms.hpp:22575-23260"
aliases:
- TVC22_D7.64K
- name: tvcfileio.rom
description: Videoton TVC Direct File I/O
path: ep128emu/roms/tvcfileio.rom
required: false
source_ref: "core/core.cpp:319-320, roms/roms.hpp:1378-2063"
- name: tvc_dos12d.rom
description: Videoton TVC disk BIOS v1.2d
path: ep128emu/roms/tvc_dos12d.rom
required: false
source_ref: "core/core.cpp:324-325, roms/roms.hpp:23261-24629"
aliases:
- VT-DOS12-DISK.ROM
- name: cpc464.rom
description: Amstrad CPC 464 OS + BASIC
path: ep128emu/roms/cpc464.rom
required: false
source_ref: "core/core.cpp:335-338, roms/roms.hpp:4802-7535"
- name: cpc664.rom
description: Amstrad CPC 664 OS + BASIC
path: ep128emu/roms/cpc664.rom
required: false
source_ref: "core/core.cpp:343-346, roms/roms.hpp:7536-10269"
- name: cpc6128.rom
description: Amstrad CPC 6128 OS + BASIC
path: ep128emu/roms/cpc6128.rom
required: false
source_ref: "core/core.cpp:352-355, roms/roms.hpp:10270-13003"
- name: cpc_amsdos.rom
description: Amstrad CPC AMSDOS disk BIOS
path: ep128emu/roms/cpc_amsdos.rom
required: false
source_ref: "core/core.cpp:359-360, roms/roms.hpp:24630-25998"
aliases:
- AMSDOS_0.5.ROM
- name: zx128.rom
description: ZX Spectrum 128 ROM
path: ep128emu/roms/zx128.rom
required: false
source_ref: "core/core.cpp:382-385, roms/roms.hpp:27368-30101"
- name: zx48.rom
description: ZX Spectrum 48 ROM
path: ep128emu/roms/zx48.rom
required: false
source_ref: "core/core.cpp:389-390, roms/roms.hpp:25999-27367"
aliases:
- 48.rom

View File

@@ -1,7 +1,9 @@
emulator: FAKE-08
type: libretro
core_classification: game_engine
source: "https://github.com/jtothebell/fake-08"
profiled_date: "2026-03-18"
upstream: "https://github.com/jtothebell/fake-08"
profiled_date: "2026-03-23"
core_version: "v0.0.2.19"
display_name: "PICO-8 (FAKE-08)"
cores:

View File

@@ -3,7 +3,7 @@ type: libretro
core_classification: frozen_snapshot
source: "https://github.com/libretro/fbalpha2012_cps1"
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-1)"
cores:
@@ -24,8 +24,8 @@ notes: |
BRF_OPT (optional). These are GAL/PAL dumps for hardware preservation —
never loaded by the emulator.
ROM path: ROMs are loaded from the content directory (g_rom_dir), not system
directory. system_directory is obtained (libretro.cpp:1645) but never used.
ROM path: ROMs are loaded from the content directory (g_rom_dir).
system_directory (libretro.cpp:2202) is used only for hiscore.dat.
The .info note "BIOS files must be inside the ROM directory" is misleading —
there are no BIOS files for CPS-1. This note is generic across all FBA cores.
@@ -35,6 +35,7 @@ notes: |
files:
- name: "hiscore.dat"
path: "fbalpha2012/hiscore.dat"
required: false
note: "High score database, loaded from save directory"
source_ref: "src/burn/hiscore.cpp:411"
description: "High score database, loaded from system directory"
source_ref: "src/burn/hiscore.cpp:226"