feat: re-profile 37 emulators with upstream verification

source-verified core_classification, upstream URLs, validation fields,
and hle_fallback flags. trimmed verbose notes. removed phantom files
(azahar boot9/sector0x96). added bsnes2014 variant profiles.
This commit is contained in:
Abdessamad Derraz
2026-03-23 10:58:32 +01:00
parent 06f5157c35
commit 26f2824259
37 changed files with 1086 additions and 698 deletions

View File

@@ -1,18 +1,16 @@
emulator: "00_example" emulator: "00_example"
type: test type: test
source: "https://github.com/libretro/libretro-samples" core_classification: pure_libretro
profiled_date: "2026-03-18" source: "https://github.com/libretro/libretro-core-info"
core_version: "1.0" profiled_date: "2026-03-22"
display_name: "Example Core" core_version: ~
display_name: "Example Core (.info template)"
cores: cores:
- 00_example - 00_example
systems: [] systems: []
notes: | notes: |
Test/example core from libretro-samples. Minimal "hello world" libretro Format specification template from libretro-core-info. Documents the .info
implementation demonstrating the core API contract (retro_init, retro_run, file format for core authors. No loadable binary, no emulated system.
retro_load_game, etc.). Renders a simple color pattern to the framebuffer.
No system files, BIOS, or firmware required. Not an emulator.
files: [] files: []

View File

@@ -1,13 +1,14 @@
emulator: "2048" emulator: "2048"
type: game type: game
core_classification: pure_libretro
source: "https://github.com/libretro/libretro-2048" source: "https://github.com/libretro/libretro-2048"
profiled_date: "2026-03-18" upstream: "https://github.com/gabrielecirulli/2048"
profiled_date: "2026-03-22"
core_version: "1.0" core_version: "1.0"
display_name: "2048" display_name: "2048"
cores: [2048] cores: [2048]
systems: [] systems: []
files: [] files: []
notes: > notes: >
Libretro port of the 2048 sliding puzzle game by Gabriele Cirulli. Ground-up C reimplementation of the 2048 puzzle game for libretro.
Self-contained core with all assets compiled into the binary. All assets compiled into the binary. No system directory files required.
No content file, BIOS, or system directory files required.

View File

@@ -1,14 +1,14 @@
emulator: 3DEngine emulator: 3DEngine
type: utility type: utility
core_classification: pure_libretro
source: "https://github.com/libretro/libretro-3dengine" source: "https://github.com/libretro/libretro-3dengine"
profiled_date: "2026-03-18" upstream: "https://github.com/libretro/libretro-3dengine"
profiled_date: "2026-03-22"
core_version: "v1" core_version: "v1"
display_name: "Test Core - 3D Engine" display_name: "Test Core - 3D Engine"
cores: [3dengine] cores: [3dengine]
systems: [] systems: []
files: [] files: []
notes: > notes: >
Tech demo rendering a 3D scene using software rasterization. Tech demo for libretro hardware-accelerated rendering (OpenGL/ES).
Demonstrates libretro hardware-accelerated rendering capabilities. Loads .obj 3D models as content. No system directory files required.
Self-contained core with all geometry and textures built in.
No content file, BIOS, or system directory files required.

View File

@@ -1,16 +1,19 @@
emulator: EightyOne emulator: EightyOne
type: standalone + libretro type: standalone + libretro
core_classification: community_fork
source: "https://github.com/libretro/81-libretro" source: "https://github.com/libretro/81-libretro"
upstream: "https://github.com/charlierobson/EightyOne" upstream: "https://github.com/charlierobson/EightyOne"
profiled_date: "2026-03-18" profiled_date: "2026-03-22"
core_version: "1.0a" core_version: "1.0a"
display_name: "Sinclair - ZX 81 (EightyOne)" display_name: "Sinclair - ZX 81 (EightyOne)"
cores: [81] cores: [81]
systems: systems:
- sinclair-zx81 - sinclair-zx81
- sinclair-zx80 - sinclair-zx80
- sinclair-zx-spectrum
- jupiter-ace - jupiter-ace
- timex-ts1500 - timex-ts1500
- timex-tc2048
- timex-ts2068 - timex-ts2068
- lambda-8300 - lambda-8300
- ringo-r470 - ringo-r470
@@ -19,54 +22,42 @@ systems:
notes: | notes: |
Libretro port embeds zx81.rom and dkchr.rom as C arrays (xxd -i). Libretro port embeds zx81.rom and dkchr.rom as C arrays (xxd -i).
Core never accesses filesystem for ROMs. Hardcodes MACHINEZX81. Core never accesses filesystem for ROMs. Hardcodes MACHINEZX81.
ref: 81-libretro/81/zx81/snap.c:37-38, 487-508 ref: 81-libretro/81/zx81/snap.c:487-508, src/libretro.cpp:393
Original EightyOne supports 15+ machines, loads ROMs from ROM/ directory. Original EightyOne supports 15+ machines, loads ROMs from ROM/ directory.
ref: EightyOne/Source/zx81/snap.cpp:1219-1279 — open(cwd/ROM/filename) ref: EightyOne/Source/zx81/zx81.cpp:309, EightyOne/Source/HW_.cpp:2734
ref: EightyOne/Source/HW_.cpp:2734 — LoadRomBox() per-machine ROM list
No platform currently requires these files (libretro core embeds them). .info has no firmware declarations (firmware_count absent).
Archived for museum preservation and future standalone platform use.
files: files:
# --- libretro core: embedded, no external files needed --- # --- Machine ROMs ---
# mode: standalone = needed only for standalone emulator # All mode: standalone — libretro core embeds what it needs
# mode: libretro = needed only for libretro core
# mode: both = needed in both modes (default if absent)
# ZX81 (default machine for libretro port) # ZX81 (default machine for both libretro and standalone)
- name: zx81.rom - name: zx81.edition3.rom
aliases: [zx81.rom]
system: sinclair-zx81 system: sinclair-zx81
required: true required: true
mode: standalone mode: standalone
size: 8192 size: 8192
md5: db398d4e4e93a6d4dee3bfe146918219 md5: db398d4e4e93a6d4dee3bfe146918219
note: "ZX81 8K BASIC ROM (edition 3). Embedded in libretro core." validation: [crc32]
source_ref: "81-libretro/81/zx81/snap.c:489, EightyOne/Source/HW_.cpp:2744" note: "ZX81 8K BASIC ROM (edition 3, default). Embedded in libretro core as zx81.rom."
source_ref: "EightyOne/Source/zx81config.cpp:260, 81-libretro/81/zx81/snap.c:489"
- name: zx81.edition1.rom - name: zx81.edition1.rom
system: sinclair-zx81 system: sinclair-zx81
required: false required: false
mode: standalone mode: standalone
size: 8192 size: 8192
md5: 56efa70bbaf311915c56cfdc70584e96 md5: 56efa70bbaf311915c56cfdc70584e96
note: "ZX81 ROM edition 1" source_ref: "EightyOne/Source/HW_.cpp:2747"
source_ref: "EightyOne/Source/HW_.cpp:2742"
- name: zx81.edition2.rom - name: zx81.edition2.rom
system: sinclair-zx81 system: sinclair-zx81
required: false required: false
mode: standalone mode: standalone
size: 8192 size: 8192
md5: b9fd58d324b6297f2a696d40722f95dc md5: b9fd58d324b6297f2a696d40722f95dc
note: "ZX81 ROM edition 2" source_ref: "EightyOne/Source/HW_.cpp:2748"
source_ref: "EightyOne/Source/HW_.cpp:2743"
- name: dkchr.rom
system: sinclair-zx81
required: false
mode: standalone
size: 4096
md5: ""
note: "dK'tronics character ROM. Embedded in libretro core."
source_ref: "81-libretro/81/zx81/snap.c:499"
# ZX80 # ZX80
- name: zx80.rom - name: zx80.rom
@@ -75,8 +66,8 @@ files:
mode: standalone mode: standalone
size: 4096 size: 4096
md5: e03bd725f98be45aac39c85f7fd41ce4 md5: e03bd725f98be45aac39c85f7fd41ce4
note: "ZX80 4K ROM" validation: [crc32]
source_ref: "EightyOne/Source/HW_.cpp:2737" source_ref: "EightyOne/Source/zx81config.cpp:259, EightyOne/Source/HW_.cpp:2741"
# ZX97LE # ZX97LE
- name: zx97.rom - name: zx97.rom
@@ -85,8 +76,7 @@ files:
mode: standalone mode: standalone
size: 32768 size: 32768
md5: cc69fdd6195acdfd1e533b2eb4c2a632 md5: cc69fdd6195acdfd1e533b2eb4c2a632
note: "ZX97LE 32K ROM" source_ref: "EightyOne/Source/zx81config.cpp:281, EightyOne/Source/HW_.cpp:2792"
source_ref: "EightyOne/Source/HW_.cpp:2789"
# Jupiter ACE # Jupiter ACE
- name: jupiterace.rom - name: jupiterace.rom
@@ -95,8 +85,8 @@ files:
mode: standalone mode: standalone
size: 8192 size: 8192
md5: db6efdfd82cebdfbb493d85b1a5efc3c md5: db6efdfd82cebdfbb493d85b1a5efc3c
note: "Jupiter ACE Forth ROM" validation: [crc32]
source_ref: "EightyOne/Source/HW_.cpp:2753" source_ref: "EightyOne/Source/zx81config.cpp:279, EightyOne/Source/HW_.cpp:2787"
# Timex TS1500 # Timex TS1500
- name: ts1500.rom - name: ts1500.rom
@@ -105,7 +95,7 @@ files:
mode: standalone mode: standalone
size: 8192 size: 8192
md5: dea07eb23c5768ddf3ed90740eab85cb md5: dea07eb23c5768ddf3ed90740eab85cb
source_ref: "EightyOne/Source/HW_.cpp:2757" source_ref: "EightyOne/Source/zx81config.cpp:271, EightyOne/Source/HW_.cpp:2764"
# Timex TS2068 # Timex TS2068
- name: ts2068.rom - name: ts2068.rom
@@ -114,23 +104,33 @@ files:
mode: standalone mode: standalone
size: 24576 size: 24576
md5: 9194283503a105f3f3dfba13e61e993f md5: 9194283503a105f3f3dfba13e61e993f
source_ref: "EightyOne/Source/ROMs/ts2068.rom" source_ref: "EightyOne/Source/zx81config.cpp:274-275, EightyOne/Source/HW_.cpp:2884-2886"
# Lambda 8300 # Lambda 8300
- name: lambda8300.rom - name: lambda8300colour.rom
system: lambda-8300 system: lambda-8300
required: true required: true
mode: standalone mode: standalone
size: 8192 size: 8192
md5: e232dfce1dcae65953583f66af146232 md5: 03aeea3abc7b1ca5f241935477ce71be
source_ref: "EightyOne/Source/HW_.cpp:2773" note: "Lambda 8300 colour version (default ROM for Lambda machine)."
- name: lambda8300colour.rom source_ref: "EightyOne/Source/zx81config.cpp:276, EightyOne/Source/HW_.cpp:2771"
- name: lambda8300.rom
system: lambda-8300 system: lambda-8300
required: false required: false
mode: standalone mode: standalone
size: 8192 size: 8192
md5: 03aeea3abc7b1ca5f241935477ce71be md5: e232dfce1dcae65953583f66af146232
source_ref: "EightyOne/Source/ROMs/lambda8300colour.rom" note: "Lambda 8300 non-colour version (alternative)."
source_ref: "EightyOne/Source/HW_.cpp:2770"
- name: lambda8300characterset.bin
system: lambda-8300
required: false
mode: standalone
size: 512
md5: be906890c4bf42dd99f1a3bcb6003647
note: "Lambda 8300 external font. Loaded when extfont is enabled."
source_ref: "EightyOne/Source/zx81/zx81.cpp:312"
# Ringo R470 # Ringo R470
- name: ringo470.rom - name: ringo470.rom
@@ -139,7 +139,7 @@ files:
mode: standalone mode: standalone
size: 8192 size: 8192
md5: a70bbb0dfe4bb8556e74258062766f5d md5: a70bbb0dfe4bb8556e74258062766f5d
source_ref: "EightyOne/Source/HW_.cpp:2769" source_ref: "EightyOne/Source/zx81config.cpp:277, EightyOne/Source/HW_.cpp:2777"
# Microdigital TK85 # Microdigital TK85
- name: tk85.rom - name: tk85.rom
@@ -148,130 +148,404 @@ files:
mode: standalone mode: standalone
size: 10240 size: 10240
md5: b301cdad72448d92598197b45bead8fe md5: b301cdad72448d92598197b45bead8fe
source_ref: "EightyOne/Source/HW_.cpp:2777" source_ref: "EightyOne/Source/zx81config.cpp:278, EightyOne/Source/HW_.cpp:2782"
# Timex TC2048 # Timex TC2048
- name: tc2048.rom - name: tc2048.rom
system: timex-tc2048
required: true
mode: standalone
size: 16384
md5: 9dd7ecf784a6c04265c073c236f5fadb
source_ref: "EightyOne/Source/zx81config.cpp:272, EightyOne/Source/HW_.cpp:2874-2876"
# --- Graphics board ROMs ---
# Loaded by zx81_initialise() when corresponding hardware is selected
- name: dktronicsgraphics.rom
aliases: [dkchr.rom]
system: sinclair-zx81
required: false
mode: standalone
size: 4096
md5: 5cba3a306fbb94454811ba262b27c958
note: "dK'tronics character ROM. Embedded in libretro core as dkchr.rom."
source_ref: "EightyOne/Source/zx81/zx81.cpp:316, EightyOne/Source/zx81config.cpp:195-196"
- name: kaydegraphics.rom
system: sinclair-zx81
required: false
mode: standalone
size: 4096
md5: 4944facea84bea43f4495eaca19006d0
note: "Kayde character ROM."
source_ref: "EightyOne/Source/zx81/zx81.cpp:320, EightyOne/Source/zx81config.cpp:197-198"
- name: memotechhrg.rom
system: sinclair-zx81
required: false
mode: standalone
size: 2048
md5: 70320cad0ab528e62dcc2ca847870995
note: "Memotech HRG ROM."
source_ref: "EightyOne/Source/zx81/zx81.cpp:334, EightyOne/Source/zx81config.cpp:201-202"
- name: quicksilvahires.rom
system: sinclair-zx81
required: false
mode: standalone
size: 2048
md5: 1e7408a9a6d329751acc9d0810fd633d
note: "Quicksilva Hi-Res ROM."
source_ref: "EightyOne/Source/zx81/zx81.cpp:338, EightyOne/Source/zx81config.cpp:203-204"
- name: g007hrg.rom
system: sinclair-zx81
required: false
mode: standalone
size: 2048
md5: 7f59a979b1332a168d2efbc971ce1df0
note: "G007 HRG ROM."
source_ref: "EightyOne/Source/zx81/zx81.cpp:343, EightyOne/Source/zx81config.cpp:199-200"
# --- Interface ROMs ---
# Loaded by zx81_initialise() when corresponding hardware is selected
- name: z80assembler.rom
system: sinclair-zx81
required: false
mode: standalone
size: 4096
md5: b1581a2fcf4e5083d5fd92a1da373efa
source_ref: "EightyOne/Source/zx81/zx81.cpp:348, EightyOne/Source/zx81config.cpp:206"
- name: memocalc.rom
system: sinclair-zx81
required: false
mode: standalone
size: 4096
md5: fae8c8cd2cef2ca6b72be5b1cd8509d8
source_ref: "EightyOne/Source/zx81/zx81.cpp:352, EightyOne/Source/zx81config.cpp:207-208"
# --- FDC ROMs ---
# Loaded by zx81_initialise() (larken81) or spec48_initialise() (others)
- name: larken81.rom
system: sinclair-zx81
required: false
mode: standalone
size: 2048
md5: dec8c7f864c209db4defcfbe0774e220
note: "Larken 81 floppy controller ROM."
source_ref: "EightyOne/Source/zx81/zx81.cpp:361, EightyOne/Source/zx81config.cpp:171-172"
- name: interface1.edition2.rom
system: sinclair-zx-spectrum
required: false
mode: standalone
size: 8192
md5: 31b704ae925305e74f50699271fddd9a
note: "ZX Interface 1 ROM (default edition 2)."
source_ref: "EightyOne/Source/zx81config.cpp:174-175"
- name: interface1.edition1.rom
system: sinclair-zx-spectrum
required: false
mode: standalone
size: 8192
md5: 5c11c61a2dd2ca4bf39328d9ff42d289
source_ref: "EightyOne/Source/ROMs/FDCs/interface1.edition1.rom"
- name: "+d.g+dos.v1-a.rom"
system: sinclair-zx-spectrum
required: false
mode: standalone
size: 8192
md5: 42e5de16fb5e50082bb954ec7ce45851
note: "Plus D G+DOS ROM (default v1-a)."
source_ref: "EightyOne/Source/zx81config.cpp:163-164"
- name: disciple.gdos.v3.rom
system: sinclair-zx-spectrum
required: false
mode: standalone
size: 16384
md5: 2b0c5e2fa87e0b641bdb26634faea234
note: "DISCiPLE GDOS ROM v3."
source_ref: "EightyOne/Source/zx81config.cpp:165-166"
- name: discovery.v2-22.rom
system: sinclair-zx-spectrum
required: false
mode: standalone
size: 8192
md5: 3beeddbf0aa716b7aba7deec2bfb3028
note: "Opus Discovery DOS ROM (default v2-22)."
source_ref: "EightyOne/Source/zx81config.cpp:167-168"
- name: beta128.trdos.v5-03.rom
system: sinclair-zx-spectrum
required: false
mode: standalone
size: 16384
md5: 0da70a5d2a0e733398e005b96b7e4ba6
note: "Beta 128 TR-DOS ROM (default v5-03)."
source_ref: "EightyOne/Source/zx81config.cpp:169-170"
# --- IDE ROMs ---
# Loaded by zx81_initialise() (mwcfide) or spec48 peripherals (others)
- name: mwcfide.rom
system: sinclair-zx81
required: false
mode: standalone
size: 14648
md5: d02ed1b39669c9b163f1fa2b1ffb41ee
note: "MWCF IDE ROM."
source_ref: "EightyOne/Source/zx81/zx81.cpp:381, EightyOne/Source/zx81config.cpp:183-184"
- name: zxcflba.rom
system: sinclair-zx81 system: sinclair-zx81
required: false required: false
mode: standalone mode: standalone
size: 16384 size: 16384
md5: 9dd7ecf784a6c04265c073c236f5fadb md5: e518c0736cb4ce0484ac8091f5ea3e01
source_ref: "EightyOne/Source/ROMs/tc2048.rom" note: "ZXCF CompactFlash IDE ROM."
source_ref: "EightyOne/Source/zx81config.cpp:181-182"
# ZX Spectrum variants (standalone mode, multiple localizations) - name: zx8blbs.rom
- name: spectrum48.rom
system: sinclair-zx81 system: sinclair-zx81
required: false required: false
mode: standalone mode: standalone
size: 16384 size: 16384
md5: d8f203d2bebfe57d725b0d1067f3b92d
note: "Simple 8-bit IDE ROM."
source_ref: "EightyOne/Source/zx81config.cpp:177-178"
- name: zxidelbs.rom
system: sinclair-zx81
required: false
mode: standalone
size: 16384
md5: 6cfbf044b8f435b7f70eae37d9ee5c28
note: "Simple 16-bit IDE ROM."
source_ref: "EightyOne/Source/zx81config.cpp:179-180"
# --- Spectrum peripheral ROMs ---
# Loaded by spec48_initialise() or Spectrum peripheral code
- name: uspeech.rom
system: sinclair-zx81
required: false
mode: standalone
size: 2048
md5: 052f6af718337e35e76693723e1d73e3
note: "Currah uSpeech ROM."
source_ref: "EightyOne/Source/Spectrum/spec48.cpp:344, EightyOne/Source/zx81config.cpp:186-187"
- name: usource.rom
system: sinclair-zx81
required: false
mode: standalone
size: 8192
md5: ebe1490920cbb62bde7282ae24928d95
note: "Currah uSource ROM."
source_ref: "EightyOne/Source/Spectrum/spec48.cpp:350, EightyOne/Source/zx81config.cpp:188-189"
- name: multiface128.rom
system: sinclair-zx-spectrum
required: false
mode: standalone
size: 8192
md5: c420ef03f6e0c477d9474efe3441a556
note: "Multiface 128 ROM."
source_ref: "EightyOne/Source/zx81config.cpp:190-191"
- name: multiface3.rom
system: sinclair-zx-spectrum
required: false
mode: standalone
size: 8192
md5: afe2218c3a6a43f1854fe824424d4167
note: "Multiface 3 ROM."
source_ref: "EightyOne/Source/zx81config.cpp:192-193"
# --- Digitalker speech ROMs ---
# Loaded by Digitalk::Init() when Digitalker speech is selected
- name: SSR1.bin
system: sinclair-zx81
required: false
mode: standalone
size: 8192
md5: 864beefecf0021fa6b0f5a5aff55c167
note: "Digitalker speech ROM bank 1a."
source_ref: "EightyOne/Source/Digitalker/Digitalkdrv.cpp:40-45"
- name: SSR2.bin
system: sinclair-zx81
required: false
mode: standalone
size: 8192
md5: d3924ecc0efda0a58c4bda43044061e4
note: "Digitalker speech ROM bank 1b."
source_ref: "EightyOne/Source/Digitalker/Digitalkdrv.cpp:49-54"
- name: SSR5.bin
system: sinclair-zx81
required: false
mode: standalone
size: 8192
md5: dd2793938c50217c0e5e8aef75b98856
note: "Digitalker speech ROM bank 2a."
source_ref: "EightyOne/Source/Digitalker/Digitalkdrv.cpp:58-63"
- name: SSR6.bin
system: sinclair-zx81
required: false
mode: standalone
size: 8192
md5: 5d6ee8cdf1b12816c4f152b5a1e13977
note: "Digitalker speech ROM bank 2b."
source_ref: "EightyOne/Source/Digitalker/Digitalkdrv.cpp:67-72"
# --- ZXpand overlay ROMs (standalone only) ---
# Loaded when ZXpand SD card interface is enabled
- name: zx81.zxpand.ovl
system: sinclair-zx81
required: false
mode: standalone
size: 8192
md5: 49b1bd3485d080bb242e94fd698f028d
source_ref: "EightyOne/Source/zx81/zx81.cpp:298-303"
- name: zx80.zxpand.ovl
system: sinclair-zx80
required: false
mode: standalone
size: 8192
md5: 37cea5c1e7144de898a7dc4b102fb7fd
source_ref: "EightyOne/Source/zx81/zx81.cpp:304-305"
- name: ts1500.zxpand.ovl
system: timex-ts1500
required: false
mode: standalone
size: 8192
md5: 49b1bd3485d080bb242e94fd698f028d
source_ref: "EightyOne/Source/zx81/zx81.cpp:298-303"
# --- ZX Spectrum machine ROMs (standalone mode) ---
- name: spectrum48.rom
system: sinclair-zx-spectrum
required: false
mode: standalone
size: 16384
md5: 4c42a2f075212361c3117015b107ff68 md5: 4c42a2f075212361c3117015b107ff68
note: "Spectrum 48K" note: "Spectrum 48K."
source_ref: "EightyOne/Source/HW_.cpp:2802" source_ref: "EightyOne/Source/zx81config.cpp:261-263, EightyOne/Source/HW_.cpp:2800-2807"
- name: spectrum48.spanish.rom - name: spectrum48.spanish.rom
system: sinclair-zx81 system: sinclair-zx-spectrum
required: false required: false
mode: standalone mode: standalone
size: 16384 size: 16384
md5: 60e1bd8b4d59b55e5b2175126239517f md5: 60e1bd8b4d59b55e5b2175126239517f
source_ref: "EightyOne/Source/HW_.cpp:2812"
- name: spectrum48.arabic.rom - name: spectrum48.arabic.rom
system: sinclair-zx81 system: sinclair-zx-spectrum
required: false required: false
mode: standalone mode: standalone
size: 16384 size: 16384
md5: 9f6f56003307b9d55be96f406fdbf2b1 md5: 9f6f56003307b9d55be96f406fdbf2b1
source_ref: "EightyOne/Source/ROMs/spectrum48.arabic.rom"
- name: spectrum48.arabic.version1.rom - name: spectrum48.arabic.version1.rom
system: sinclair-zx81 system: sinclair-zx-spectrum
required: false required: false
mode: standalone mode: standalone
size: 16384 size: 16384
md5: a6a1e3a68bb5523997103c3925a46fe4 md5: a6a1e3a68bb5523997103c3925a46fe4
source_ref: "EightyOne/Source/HW_.cpp:2813,2820"
- name: spectrum48.arabic.version2.rom - name: spectrum48.arabic.version2.rom
system: sinclair-zx81 system: sinclair-zx-spectrum
required: false required: false
mode: standalone mode: standalone
size: 16384 size: 16384
md5: fac3d08455328c34f0d06344d89cec0e md5: fac3d08455328c34f0d06344d89cec0e
source_ref: "EightyOne/Source/HW_.cpp:2828,2837"
- name: spectrum48.nordic.rom - name: spectrum48.nordic.rom
system: sinclair-zx81 system: sinclair-zx-spectrum
required: false required: false
mode: standalone mode: standalone
size: 16384 size: 16384
md5: f058f27ae61af225fe5baacc1d89adfc md5: f058f27ae61af225fe5baacc1d89adfc
source_ref: "EightyOne/Source/HW_.cpp:2806"
- name: spectrum128.rom - name: spectrum128.rom
system: sinclair-zx81 system: sinclair-zx-spectrum
required: false required: false
mode: standalone mode: standalone
size: 32768 size: 32768
md5: 85fede415f4294cc777517d7eada482e md5: 85fede415f4294cc777517d7eada482e
note: "Spectrum 128K" note: "Spectrum 128K."
source_ref: "EightyOne/Source/zx81config.cpp:264, EightyOne/Source/HW_.cpp:2817-2821"
- name: spectrum128.spanish.rom - name: spectrum128.spanish.rom
system: sinclair-zx81 system: sinclair-zx-spectrum
required: false required: false
mode: standalone mode: standalone
size: 32768 size: 32768
md5: 84aef735da122d55e41a33455c7c3506 md5: 84aef735da122d55e41a33455c7c3506
source_ref: "EightyOne/Source/HW_.cpp:2819"
- name: spectrum+2.rom - name: spectrum+2.rom
system: sinclair-zx81 system: sinclair-zx-spectrum
required: false required: false
mode: standalone mode: standalone
size: 32768 size: 32768
md5: 238f77692156a5c49d20c0aa2862e8bb md5: 238f77692156a5c49d20c0aa2862e8bb
note: "Spectrum +2" note: "Spectrum +2."
source_ref: "EightyOne/Source/zx81config.cpp:266, EightyOne/Source/HW_.cpp:2824-2829"
- name: spectrum+2.french.rom - name: spectrum+2.french.rom
system: sinclair-zx81 system: sinclair-zx-spectrum
required: false required: false
mode: standalone mode: standalone
size: 32768 size: 32768
md5: 1fff14aeca8e1dd3670142982cc6bb36 md5: 1fff14aeca8e1dd3670142982cc6bb36
source_ref: "EightyOne/Source/HW_.cpp:2826"
- name: spectrum+2.spanish.rom - name: spectrum+2.spanish.rom
system: sinclair-zx81 system: sinclair-zx-spectrum
required: false required: false
mode: standalone mode: standalone
size: 32768 size: 32768
md5: 43cf648e27efc9be8186bb7049505d79 md5: 43cf648e27efc9be8186bb7049505d79
source_ref: "EightyOne/Source/HW_.cpp:2827"
- name: spectrum+3.version4-0.rom - name: spectrum+3.version4-0.rom
system: sinclair-zx81 system: sinclair-zx-spectrum
required: false required: false
mode: standalone mode: standalone
size: 65536 size: 65536
md5: 05de80a055b5e7866f55769db0584d6e md5: 05de80a055b5e7866f55769db0584d6e
note: "Spectrum +3" note: "Spectrum +3."
source_ref: "EightyOne/Source/HW_.cpp:2833,2854"
- name: spectrum+3.version4-0.spanish.rom - name: spectrum+3.version4-0.spanish.rom
system: sinclair-zx81 system: sinclair-zx-spectrum
required: false required: false
mode: standalone mode: standalone
size: 65536 size: 65536
md5: 990dfe9d37b48595f5befe0e4ff4b7c6 md5: 990dfe9d37b48595f5befe0e4ff4b7c6
source_ref: "EightyOne/Source/HW_.cpp:2835,2856"
- name: spectrum+3.version4-1.rom - name: spectrum+3.version4-1.rom
system: sinclair-zx81 system: sinclair-zx-spectrum
required: false required: false
mode: standalone mode: standalone
size: 65536 size: 65536
md5: 7e00ed3562abfd188d0d4da03e80bc0a md5: 7e00ed3562abfd188d0d4da03e80bc0a
note: "Spectrum +3 (default for +2A and +3)."
source_ref: "EightyOne/Source/zx81config.cpp:267-268, EightyOne/Source/HW_.cpp:2834,2855"
- name: spectrum+3.version4-1.spanish.rom - name: spectrum+3.version4-1.spanish.rom
system: sinclair-zx81 system: sinclair-zx-spectrum
required: false required: false
mode: standalone mode: standalone
size: 65536 size: 65536
md5: 52d130178c1106fef765b5f119fb43bc md5: 52d130178c1106fef765b5f119fb43bc
source_ref: "EightyOne/Source/HW_.cpp:2836,2857"
- name: spectrum+3.arabic3-a.english4-0.rom - name: spectrum+3.arabic3-a.english4-0.rom
system: sinclair-zx81 system: sinclair-zx-spectrum
required: false required: false
mode: standalone mode: standalone
size: 131072 size: 131072
md5: 30316fa0ed7ee6682933960e11b48d60 md5: 30316fa0ed7ee6682933960e11b48d60
source_ref: "EightyOne/Source/HW_.cpp:2858"
- name: tk90.rom - name: tk90.rom
system: sinclair-zx81 system: sinclair-zx-spectrum
required: false required: false
mode: standalone mode: standalone
size: 16384 size: 16384
md5: b7893ad25728fbf6410f08eddd4a1cad md5: b7893ad25728fbf6410f08eddd4a1cad
note: "Microdigital TK90X" note: "Microdigital TK90X (Spectrum clone)."
source_ref: "EightyOne/Source/ROMs/tk90.rom"
- name: tk95.rom - name: tk95.rom
system: sinclair-zx81 system: sinclair-zx-spectrum
required: false required: false
mode: standalone mode: standalone
size: 16384 size: 16384
md5: b7893ad25728fbf6410f08eddd4a1cad md5: b7893ad25728fbf6410f08eddd4a1cad
note: "Microdigital TK95" note: "Microdigital TK95 (Spectrum clone)."
source_ref: "EightyOne/Source/ROMs/tk95.rom"

View File

@@ -1,7 +1,9 @@
emulator: a5200 emulator: a5200
type: libretro type: libretro
core_classification: community_fork
source: "https://github.com/libretro/a5200" source: "https://github.com/libretro/a5200"
profiled_date: "2026-03-18" upstream: "https://github.com/alekmaul/a5200"
profiled_date: "2026-03-22"
core_version: "2.0.2" core_version: "2.0.2"
display_name: "Atari - 5200 (a5200)" display_name: "Atari - 5200 (a5200)"
cores: cores:
@@ -9,23 +11,25 @@ cores:
systems: systems:
- atari-5200 - atari-5200
# a5200 is a dedicated Atari 5200 emulator forked from Atari800/Atari++ codebase. # Dedicated Atari 5200 emulator forked from Atari800 2.0.2 codebase by Alekmaul
# It loads the official 5200 OS ROM from <system_dir>/5200.rom (2048 bytes, mapped # for GCW Zero. Libretro port later enhanced by wavemotion-dave with Altirra OS
# to memory at 0xF800-0xFFFF via MEMORY_InitialiseMachine). # fallback, Super Cart support, frame blending and analog input.
# #
# If 5200.rom is missing or the user selects "internal" via core option "a5200_bios", # Loads 5200 OS ROM from <system_dir>/5200.rom (2048 bytes, mapped to 0xF800-0xFFFF
# the core falls back to Altirra 5200 OS, an open-source replacement compiled from # via MEMORY_InitialiseMachine). If missing or user selects "internal" via core
# Altirra-3.20-test4 (altirra_5200_os.c). The fallback has reduced compatibility # option "a5200_bios", falls back to built-in Altirra 5200 OS (altirra_5200_os.c,
# compared to the original Atari OS ROM. # compiled from Altirra-3.20-test4).
# #
# BIOS loading (libretro.c:409-500): # BIOS loading (libretro.c:408-499):
# 1. check_bios_variable() reads core option "a5200_bios" (official/internal) # 1. check_bios_variable() reads core option "a5200_bios" (official/internal)
# 2. load_bios() attempts to read <system_dir>/5200.rom (0x800 bytes) # 2. load_bios() reads <system_dir>/5200.rom, validates size == 0x800
# 3. On failure or "internal" selected: memcpy from ROM_altirra_5200_os fallback # 3. On failure or "internal" selected: memcpy from ROM_altirra_5200_os
# #
# Cartridge detection (atari.c:169-236): # Upstream divergence: alekmaul's standalone requires 5200.rom (exits on missing).
# Auto-detects cart type from header bytes and size. ROM database in cartridge.c # Libretro port makes it optional via Altirra fallback.
# maps MD5 hashes to cart types (standard 8K/16K/32K/40K, bounty bob, super cart). #
# Cart type detection via MD5 database in cartridge.c (standard 4K-512K, bounty bob,
# super cart, EE banked). Unknown ROMs detected by size heuristic.
files: files:
- name: "5200.rom" - name: "5200.rom"
@@ -33,19 +37,8 @@ files:
size: 2048 size: 2048
required: false required: false
hle_fallback: true hle_fallback: true
validation: [size]
note: > note: >
Atari 5200 OS ROM. Provides the built-in OS routines used by all 5200 Atari 5200 OS ROM. Core option "a5200_bios" controls official vs internal.
cartridges. Without it, the core uses the Altirra open-source replacement Altirra replacement has lower compatibility with some titles.
which has lower compatibility with some games. Core option "a5200_bios" source_ref: "libretro/libretro.c:58-59, libretro/libretro.c:408-499, emu/memory.c:46"
controls whether to use this file or the internal fallback.
source_ref: "libretro/libretro.c:58-59, libretro/libretro.c:409-500, emu/memory.c:46"
notes:
altirra_fallback: >
The built-in Altirra 5200 OS (from altirra_5200_os.c, 0x800 bytes) is a free
replacement that works for most games but some titles require the original ROM
for full compatibility. The core displays a notification when falling back.
cart_db: >
cartridge.c contains an MD5-based ROM database for automatic cart type detection
(standard, EE banked, bounty bob, super cart variants). Unknown ROMs are detected
by size heuristic.

View File

@@ -1,7 +1,9 @@
emulator: advanced_tests emulator: advanced_tests
type: test type: test
core_classification: pure_libretro
source: "https://github.com/libretro/libretro-samples" source: "https://github.com/libretro/libretro-samples"
profiled_date: "2026-03-18" upstream: "https://github.com/libretro/libretro-samples"
profiled_date: "2026-03-22"
core_version: "v1" core_version: "v1"
display_name: "Test Core - Advanced Test" display_name: "Test Core - Advanced Test"
cores: cores:
@@ -9,11 +11,9 @@ cores:
systems: [] systems: []
notes: | notes: |
Advanced test core from libretro-samples. Exercises extended libretro API Test core for frontend developers. Exercises video output, audio sync,
features: subsystems, memory descriptors, serialization, multi-disk control, input polling, and serialization. All data (font, CRC32 table) is embedded
and other optional environment callbacks. Used by frontend developers to in the binary. No external files needed.
validate their implementations. source_ref: tests/test_advanced/libretro-test.c
No system files, BIOS, or firmware required. Not an emulator.
files: [] files: []

View File

@@ -1,7 +1,9 @@
emulator: amiarcadia emulator: amiarcadia
type: libretro type: libretro
source: "https://amigan.yatho.com/" core_classification: official_port
profiled_date: "2026-03-18" source: "https://github.com/warmenhoven/amiarcadia"
upstream: "https://amigan.1emu.net/releases/"
profiled_date: "2026-03-22"
core_version: "4.42" core_version: "4.42"
display_name: "Arcadia 2001 / Interton VC 4000 (AmiArcadia)" display_name: "Arcadia 2001 / Interton VC 4000 (AmiArcadia)"
cores: cores:
@@ -11,32 +13,21 @@ systems:
- interton-vc4000 - interton-vc4000
- elektor-tv-games-computer - elektor-tv-games-computer
# AmiArcadia is a libretro port of James Jacobs' emulator for Signetics # Libretro port of AmiArcadia/WinArcadia/DroidArcadia by James Jacobs.
# 2636 PVI / 2637 UVI + 2650 CPU-based systems: Emerson Arcadia 2001 and # Emulates Signetics 2636 PVI / 2637 UVI + 2650 CPU systems:
# clones (Bandai, Grandstand, Schmid, Hanimex, Leisurevision, etc.), # Emerson Arcadia 2001 and clones, Interton VC 4000 family,
# Interton VC 4000 family (Voltmace, Rowtron, Fountain, etc.), Elektor # Elektor TV Games Computer, Zaccaria and Malzak coin-ops.
# TV Games Computer, and Zaccaria/Malzak coin-op arcade machines.
# #
# The core does NOT require any BIOS or system ROM files. # No external files required. These systems have no separate system ROM;
# firmware_count = 0 in amiarcadia_libretro.info confirms this. # all code runs from the game cartridge. The core auto-identifies known
# ROMs by CRC32 via games.h lookup table.
# #
# ROM identification: # source_ref: src/libretro.c:497-624 (retro_load_game — no file I/O)
# The core auto-identifies known game ROMs by CRC32 and configures the # source_ref: DroidArcadia/app/src/main/cpp/android.c:893-1052 (parse_bytes — ROM-only)
# correct machine type, memory map, and game-specific settings. For # source_ref: DroidArcadia/app/src/main/cpp/da.h:3-5 (version 4.42)
# unknown ROMs, the user selects machine type via the "Machine" core # source_ref: amiarcadia_libretro.info (firmware_count=0)
# option (Arcadia / Interton).
#
# Supported extensions: .bin, .tvc
#
# Source ref: libretro-core-info/amiarcadia_libretro.info (firmware_count = 0)
# Docs: https://docs.libretro.com/library/amiarcadia/
notes: | notes: |
No BIOS files required. The emulator has no external firmware dependencies. No BIOS or firmware files required. firmware_count=0 confirmed by source.
Game ROMs are identified by CRC32 for automatic machine configuration.
files: [] files: []
# closed-source core — cannot verify via source code scan.
# firmware_count=0 in .info and docs confirm no BIOS needed.
# signetics 2636/2637 systems have no separate system ROM.

View File

@@ -1,14 +1,15 @@
emulator: Anarch emulator: Anarch
type: game type: game
source: "https://github.com/libretro/anern" core_classification: community_fork
profiled_date: "2026-03-18" source: "https://codeberg.org/iyzsong/anarch-libretro"
upstream: "https://gitlab.com/drummyfish/anarch"
profiled_date: "2026-03-22"
core_version: "1.1d" core_version: "1.1d"
display_name: "Anarch" display_name: "Anarch"
cores: [anarch] cores: [anarch]
systems: [] systems: []
files: [] files: []
notes: > notes: >
Libretro port of Anarch, a public domain suckless FPS game by Miloslav Ciz. Public domain suckless FPS game by Miloslav Ciz (drummyfish).
Entirely self-contained with all levels, textures, and sounds compiled Libretro port by iyzsong. All game data (levels, textures, sounds)
into the binary using procedural generation and hardcoded data tables. compiled into the binary via header files. No external files required.
No content file, BIOS, or system directory files required.

View File

@@ -1,8 +1,10 @@
emulator: AppleWin emulator: AppleWin
type: libretro type: libretro
core_classification: community_fork
source: "https://github.com/audetto/AppleWin" source: "https://github.com/audetto/AppleWin"
profiled_date: "2026-03-18" upstream: "https://github.com/AppleWin/AppleWin"
core_version: "1.30.21.0" profiled_date: "2026-03-23"
core_version: "1.31.0.1"
display_name: "Apple II (AppleWin)" display_name: "Apple II (AppleWin)"
cores: cores:
- applewin - applewin

View File

@@ -1,7 +1,9 @@
emulator: Ardens emulator: Ardens
type: libretro type: libretro
core_classification: official_port
source: "https://github.com/tiberiusbrown/ardens" source: "https://github.com/tiberiusbrown/ardens"
profiled_date: "2026-03-18" upstream: "https://github.com/tiberiusbrown/ardens"
profiled_date: "2026-03-23"
core_version: "Git" core_version: "Git"
display_name: "Arduboy (Ardens)" display_name: "Arduboy (Ardens)"
cores: cores:
@@ -10,33 +12,11 @@ systems:
- arduboy - arduboy
notes: | notes: |
Ardens is an Arduboy FX simulator designed for profiling and debugging, Arduboy FX simulator (ATmega32U4 + SSD1306 + W25Q128). All boot code
ported to libretro. It emulates the ATmega32U4 MCU, SSD1306 OLED display, embedded as C arrays: Caterina/Arduboy3K bootloaders for D1/D2/E2
and W25Q128 external flash used by the Arduboy hardware. hardware revisions and flashcart header. EEPROM and flash state handled
via RETRO_MEMORY_SAVE_RAM. The libretro port never accesses the system
No BIOS or bootloader files are required. The core has all boot code directory. firmware_count = 0.
compiled directly into the binary:
- Caterina/Arduboy3K bootloaders for multiple hardware revisions (D1, D2,
E2) are embedded as C arrays generated from .hex files via bin2c.py.
Located in src/boot/boot_game_*.c and src/boot/boot_menu_*.c.
The appropriate variant is selected at reset based on the configured
device type (absim_arduboy.cpp:115-161).
- Flashcart header (1536 bytes) is embedded in src/boot/boot_flashcart.c
and written to the start of the W25Q128 flash image at init
(absim_w25q128.hpp:14).
- EEPROM (1024 bytes) and external flash (W25Q128, 16 MB) state are
handled as save RAM through the libretro RETRO_MEMORY_SAVE_RAM
interface, not as system files.
The libretro port does not call RETRO_ENVIRONMENT_GET_SYSTEM_DIRECTORY
and never attempts to load any file from the system directory.
The .info file declares firmware_count = 0.
Supported ROM formats: Intel HEX (.hex) and Arduboy package (.arduboy).
block_extract is set to true (the core reads archives directly).
files: [] files: []

View File

@@ -1,7 +1,9 @@
emulator: Arduous emulator: Arduous
type: libretro type: libretro
core_classification: pure_libretro
source: "https://github.com/libretro/arduous" source: "https://github.com/libretro/arduous"
profiled_date: "2026-03-18" upstream: "https://github.com/jmaroeder/arduous"
profiled_date: "2026-03-23"
core_version: "0.1.0" core_version: "0.1.0"
display_name: "Arduboy (Arduous)" display_name: "Arduboy (Arduous)"
cores: cores:
@@ -10,37 +12,9 @@ systems:
- arduboy - arduboy
notes: | notes: |
Arduous is an Arduboy emulator built on simavr (ATmega32U4 AVR simulator) ATmega32U4 AVR simulator built on simavr with SSD1306 OLED display
with SSD1306 OLED display emulation, ported to libretro. It is distinct emulation. MCU hardcoded at 16 MHz (arduous.h:70-71). Game content
from the Ardens core, which is a separate Arduboy emulator. (.hex) parsed via in-tree ihex reader and written directly into
simavr flash (arduous.cpp:169-179). No system directory access.
No BIOS, bootloader, or system files are required. The core operates as a
pure AVR simulator:
- The game content (.hex Intel HEX format) is parsed at load time via an
in-tree ihex reader (arduous.cpp:60-166) and written directly into the
simavr flash memory at the address specified in the hex file
(arduous.cpp:189). No separate bootloader is loaded.
- The MCU is hardcoded to atmega32u4 at 16 MHz (arduous.h:70-71).
simavr handles CPU initialization internally via avr_make_mcu_by_name().
- A commented-out loadFirmware() function (arduous.cpp:22-29) suggests
ELF firmware loading was considered but never implemented.
- EEPROM (1024 bytes), system RAM, and VRAM are exposed via the libretro
memory interface (RETRO_MEMORY_SAVE_RAM, RETRO_MEMORY_SYSTEM_RAM,
RETRO_MEMORY_VIDEO_RAM) but are not loaded from external files.
- The core never calls RETRO_ENVIRONMENT_GET_SYSTEM_DIRECTORY. The
retro_load_game() function only reads the content data buffer passed
by the frontend (libretro.cpp:108-110).
- RETRO_ENVIRONMENT_SET_SUPPORT_NO_GAME is set to false (libretro.cpp:123),
meaning a game ROM is always required.
Supported ROM format: Intel HEX (.hex) only. The valid_extensions field
lists "hex". A TODO comment mentions .arduboy ZIP support but it is not
implemented.
files: [] files: []

View File

@@ -1,10 +1,12 @@
emulator: Atari800 emulator: Atari800
type: standalone + libretro type: standalone + libretro
core_classification: official_port
source: "https://github.com/libretro/libretro-atari800" source: "https://github.com/libretro/libretro-atari800"
upstream: "https://github.com/atari800/atari800" upstream: "https://github.com/atari800/atari800"
profiled_date: "2026-03-18" profiled_date: "2026-03-23"
core_version: "3.1.0" core_version: "3.1.0"
display_name: "Atari - 400/800/600XL/800XL/130XE/5200 (Atari800)" display_name: "Atari - 400/800/600XL/800XL/130XE/5200 (Atari800)"
cores: [atari800]
systems: [atari-400, atari-800, atari-800xl, atari-130xe, atari-5200, atari-xegs] systems: [atari-400, atari-800, atari-800xl, atari-130xe, atari-5200, atari-xegs]
# Atari800 emulates the Atari 8-bit family (400/800/XL/XE) and the 5200 console. # Atari800 emulates the Atari 8-bit family (400/800/XL/XE) and the 5200 console.
@@ -36,10 +38,12 @@ files:
hle_fallback: true hle_fallback: true
size: 2048 size: 2048
md5: 281f20ea4320404ec820fb7ec0693b38 md5: 281f20ea4320404ec820fb7ec0693b38
aliases: [atari5200.rom, atar5200.rom, 5200.bin, atari_5200.rom]
validation: [crc32]
note: > note: >
Atari 5200 BIOS (original). Mapped at $F800-$FFFF. Atari 5200 BIOS (original). Mapped at $F800-$FFFF.
Altirra 5200 OS is used when this file is absent. Altirra 5200 OS is used when this file is absent.
source_ref: "atari800/src/sysrom.c:101, libretro info firmware0" source_ref: "atari800/src/sysrom.c:101-102,254-255"
# -- Atari BASIC ROM -- # -- Atari BASIC ROM --
# Atari BASIC interpreter (8 KB). Three known revisions: # Atari BASIC interpreter (8 KB). Three known revisions:
@@ -54,10 +58,12 @@ files:
hle_fallback: true hle_fallback: true
size: 8192 size: 8192
md5: 0bac0c6a50104045d902df4503a4c30b md5: 0bac0c6a50104045d902df4503a4c30b
aliases: [ataribasic.rom, basic.rom, atari_basic.rom]
validation: [crc32]
note: > note: >
Atari BASIC Rev C. Required for 400/800 software that needs BASIC. Atari BASIC Rev C. Required for 400/800 software that needs BASIC.
Altirra BASIC is used as fallback. Enable via core option atari800_opt2. Altirra BASIC is used as fallback. Enable via core option atari800_opt2.
source_ref: "atari800/src/sysrom.c:103-105, libretro info firmware1" source_ref: "atari800/src/sysrom.c:103-105,256"
# -- Atari 400/800 OS A -- # -- Atari 400/800 OS A --
# Original Atari 400/800 OS (10 KB). Two known CRC32 values: # Original Atari 400/800 OS (10 KB). Two known CRC32 values:
@@ -70,10 +76,12 @@ files:
hle_fallback: true hle_fallback: true
size: 10240 size: 10240
md5: eb1f32f5d9f382db1bbfb8d7f9cb343a md5: eb1f32f5d9f382db1bbfb8d7f9cb343a
aliases: [atari_osa.rom, atari_os_a.rom]
validation: [crc32]
note: > note: >
Atari 400/800 OS Rev A. Altirra OS 800 is used as fallback. Atari 400/800 OS Rev A. Altirra OS 800 is used as fallback.
Auto-select order: OS B NTSC, OS A NTSC, OS A PAL, custom, Altirra. Auto-select order: OS B NTSC, OS A NTSC, OS A PAL, custom, Altirra.
source_ref: "atari800/src/sysrom.c:87-89, libretro info firmware2" source_ref: "atari800/src/sysrom.c:87-88,250"
# -- Atari 400/800 OS B -- # -- Atari 400/800 OS B --
# OS revision B (10 KB), NTSC: CRC32 0x0e86d61d # OS revision B (10 KB), NTSC: CRC32 0x0e86d61d
@@ -86,13 +94,15 @@ files:
size: 10240 size: 10240
md5: 4177f386a3bac989a981d3fe3388cb6c md5: 4177f386a3bac989a981d3fe3388cb6c
crc32: 0e86d61d crc32: 0e86d61d
aliases: [atari_osb.rom, atari_os_b.rom]
validation: [crc32]
note: > note: >
Atari 400/800 OS Rev B (NTSC). CRC32 0x0e86d61d matches sysrom.c Atari 400/800 OS Rev B (NTSC). CRC32 0x0e86d61d matches sysrom.c
SYSROM_B_NTSC. Preferred over Rev A for 400/800 mode. SYSROM_B_NTSC. Preferred over Rev A for 400/800 mode.
Note: .info lists md5 a3e8d617c95d08031fe1b20d541434b2 which is a Note: .info lists md5 a3e8d617c95d08031fe1b20d541434b2 which is a
different dump (crc32 3e28a1fe) both in repo, the CRC32-matched different dump (crc32 3e28a1fe) -- both in repo, the CRC32-matched
version is the one sysrom.c auto-detects. version is the one sysrom.c auto-detects.
source_ref: "atari800/src/sysrom.c:89, libretro info firmware3" source_ref: "atari800/src/sysrom.c:89,251"
# -- Atari XL/XE OS -- # -- Atari XL/XE OS --
# XL/XE OS (16 KB). Many revisions known by CRC32 in sysrom.c: # XL/XE OS (16 KB). Many revisions known by CRC32 in sysrom.c:
@@ -108,10 +118,12 @@ files:
hle_fallback: true hle_fallback: true
size: 16384 size: 16384
md5: 06daac977823773a3eea3422fd26a703 md5: 06daac977823773a3eea3422fd26a703
aliases: [atarixlxe.rom, atari_xlxe.rom, atari_xl_xe.rom]
validation: [crc32]
note: > note: >
Atari XL/XE OS. Used for 800XL, 130XE, and XEGS modes. Atari XL/XE OS. Used for 800XL, 130XE, and XEGS modes.
Altirra XL OS is used as fallback. Altirra XL OS is used as fallback.
source_ref: "atari800/src/sysrom.c:90-99, libretro info firmware4" source_ref: "atari800/src/sysrom.c:90-99,253"
# -- Atari XL/XE/XEGS OS v4 (BB01R4) -- # -- Atari XL/XE/XEGS OS v4 (BB01R4) --
# XEGS-specific OS revision BB01R4 (16 KB), CRC32: 0x1eaf4002 # XEGS-specific OS revision BB01R4 (16 KB), CRC32: 0x1eaf4002
@@ -123,9 +135,10 @@ files:
hle_fallback: true hle_fallback: true
size: 16384 size: 16384
md5: b7a2a04677d34f069eeb643d5238bf86 md5: b7a2a04677d34f069eeb643d5238bf86
validation: [crc32]
note: > note: >
Atari XEGS OS Rev 4 (BB01R4). Preferred OS for XEGS machine mode. Atari XEGS OS Rev 4 (BB01R4). Preferred OS for XEGS machine mode.
source_ref: "atari800/src/sysrom.c:98, libretro info firmware5" source_ref: "atari800/src/sysrom.c:98"
# -- XEGS Missile Command built-in game -- # -- XEGS Missile Command built-in game --
# The XEGS had Missile Command in ROM (8 KB), CRC32: 0xbdca01fb # The XEGS had Missile Command in ROM (8 KB), CRC32: 0xbdca01fb
@@ -136,10 +149,11 @@ files:
required: false required: false
size: 8192 size: 8192
md5: d7eb37aec6960cba36bc500e0e5d00bc md5: d7eb37aec6960cba36bc500e0e5d00bc
validation: [crc32]
note: > note: >
XEGS built-in Missile Command ROM. Only used in XEGS machine mode. XEGS built-in Missile Command ROM. Only used in XEGS machine mode.
No built-in replacement exists for this ROM. No built-in replacement exists for this ROM.
source_ref: "atari800/src/sysrom.c:106, libretro info firmware6" source_ref: "atari800/src/sysrom.c:106"
# Known ROM revisions from sysrom.c (CRC32 identifiers): # Known ROM revisions from sysrom.c (CRC32 identifiers):
# #

View File

@@ -1,8 +1,9 @@
emulator: Azahar emulator: Azahar
type: standalone + libretro type: standalone + libretro
source: "https://github.com/azahar-emu/azahar" core_classification: community_fork
source: "https://github.com/johndoe6345789/azahar_libretro"
upstream: "https://github.com/azahar-emu/azahar" upstream: "https://github.com/azahar-emu/azahar"
profiled_date: "2026-03-18" profiled_date: "2026-03-23"
core_version: "Git" core_version: "Git"
display_name: "Nintendo - 3DS (Azahar)" display_name: "Nintendo - 3DS (Azahar)"
cores: [azahar] cores: [azahar]
@@ -10,47 +11,42 @@ systems:
- nintendo-3ds - nintendo-3ds
notes: | notes: |
Azahar is the successor to Citra (via Lime3DS). Different codebase Successor to Citra (via Lime3DS). Libretro port by johndoe6345789.
from libretro/citra — has additional files not in the old Citra.
Data dir: azahar-emu (legacy: citra-emu, lime3ds-emu). Data dir: azahar-emu (legacy: citra-emu, lime3ds-emu).
ref: src/common/common_paths.h:41-47 ref: src/common/common_paths.h:41-43
Key file: keys.txt (NOT aes_keys.txt like libretro/citra). Key file named keys.txt (not aes_keys.txt like old Citra).
ref: src/common/common_paths.h:83 Embedded encrypted key fallback if keys.txt absent.
ref: src/core/hw/aes/key.cpp:282-297
Uses RETRO_ENVIRONMENT_GET_SYSTEM_DIRECTORY. Uses RETRO_ENVIRONMENT_GET_SYSTEM_DIRECTORY.
ref: src/citra_libretro/environment.cpp:194 ref: src/citra_libretro/environment.cpp:179
.info has firmware_count=0 but core uses system_dir for files. .info has firmware_count=0 but core loads files from system_dir.
boot9.bin and sector0x96.bin are defined in common_paths.h:84-85
but never loaded by any code path. Dead defines from Citra heritage.
System archives (shared font, Mii data, country list, bad word list)
have open-source replacements embedded in the binary.
ref: src/core/file_sys/archive_ncch.cpp:146-176
files: files:
# --- sysdata/ ---
- name: keys.txt - name: keys.txt
path: sysdata/keys.txt path: sysdata/keys.txt
system: nintendo-3ds system: nintendo-3ds
required: false required: false
note: "AES keys (named keys.txt in Azahar, aes_keys.txt in old Citra)" hle_fallback: true
source_ref: "src/common/common_paths.h:83, src/core/hw/aes/key.cpp:291" note: "embedded encrypted fallback if missing"
source_ref: "src/core/hw/aes/key.cpp:283, src/common/common_paths.h:83"
- name: boot9.bin
path: sysdata/boot9.bin
system: nintendo-3ds
required: false
source_ref: "src/common/common_paths.h:84"
- name: sector0x96.bin
path: sysdata/sector0x96.bin
system: nintendo-3ds
required: false
source_ref: "src/common/common_paths.h:85"
- name: shared_font.bin - name: shared_font.bin
path: sysdata/shared_font.bin path: sysdata/shared_font.bin
system: nintendo-3ds system: nintendo-3ds
required: false required: false
hle_fallback: true hle_fallback: true
note: "HLE fallback if missing" note: "legacy load path; embedded open-source font used if missing"
source_ref: "src/common/common_paths.h:82" source_ref: "src/core/hle/service/apt/apt.cpp:263-278"
- name: seeddb.bin - name: seeddb.bin
path: sysdata/seeddb.bin path: sysdata/seeddb.bin
@@ -59,33 +55,34 @@ files:
note: "game seed database for 9.6+ titles" note: "game seed database for 9.6+ titles"
source_ref: "src/core/file_sys/seed_db.cpp:15" source_ref: "src/core/file_sys/seed_db.cpp:15"
# --- Azahar-only (not in libretro/citra) ---
# These require src/core/hw/unique_data.cpp which only exists in Azahar
- name: otp.bin - name: otp.bin
path: sysdata/otp.bin path: sysdata/otp.bin
system: nintendo-3ds system: nintendo-3ds
required: false required: false
note: "OTP data for key derivation. Azahar-only." validation: [size, crypto]
source_ref: "src/core/hw/unique_data.cpp:214" note: "OTP data for console key derivation"
source_ref: "src/core/hw/unique_data.cpp:126-167, src/core/hw/unique_data.cpp:213"
- name: movable.sed - name: movable.sed
path: nand/private/movable.sed path: nand/private/movable.sed
system: nintendo-3ds system: nintendo-3ds
required: false required: false
note: "console-unique key seed. Azahar-only." validation: [size, signature]
source_ref: "src/core/hw/unique_data.cpp:218" note: "console-unique key seed"
source_ref: "src/core/hw/unique_data.cpp:170-200, src/core/hw/unique_data.cpp:217"
- name: SecureInfo_A - name: SecureInfo_A
path: nand/rw/sys/SecureInfo_A path: nand/rw/sys/SecureInfo_A
system: nintendo-3ds system: nintendo-3ds
required: false required: false
note: "console serial/region. Azahar-only." validation: [size, signature]
source_ref: "src/core/hw/unique_data.cpp:206" note: "console serial and region data"
source_ref: "src/core/hw/unique_data.cpp:43-92, src/core/hw/unique_data.cpp:205"
- name: LocalFriendCodeSeed_B - name: LocalFriendCodeSeed_B
path: nand/rw/sys/LocalFriendCodeSeed_B path: nand/rw/sys/LocalFriendCodeSeed_B
system: nintendo-3ds system: nintendo-3ds
required: false required: false
note: "friend code generation. Azahar-only." validation: [size, signature]
source_ref: "src/core/hw/unique_data.cpp:210" note: "friend code generation seed"
source_ref: "src/core/hw/unique_data.cpp:94-123, src/core/hw/unique_data.cpp:209"

View File

@@ -1,45 +1,38 @@
emulator: b2 emulator: b2
type: standalone + libretro type: standalone + libretro
core_classification: community_fork
source: "https://github.com/zoltanvb/b2-libretro" source: "https://github.com/zoltanvb/b2-libretro"
upstream: "https://github.com/tom-seddon/b2" upstream: "https://github.com/tom-seddon/b2"
profiled_date: "2026-03-18" profiled_date: "2026-03-23"
core_version: "v0.1" core_version: "v0.4"
display_name: "Acorn - BBC Micro (b2)" display_name: "Acorn - BBC Micro (b2)"
cores: [b2] cores: [b2]
systems: systems:
- bbc-micro-b - bbc-micro-b
- bbc-micro-bplus - bbc-micro-bplus
- bbc-master-128 - bbc-master-128
- bbc-master-compact
notes: | notes: |
b2 is a BBC Micro emulator by Tom Seddon. Libretro port by Zoltan Balogh. Libretro port by Zoltan Balogh of Tom Seddon's b2 BBC Micro emulator.
is_experimental=true in .info.
ref: zoltanvb/b2-libretro, tom-seddon/b2 ref: zoltanvb/b2-libretro, tom-seddon/b2
Standalone: loads ROMs from etc/roms/ via GetAssetPath(). Standalone loads ROMs from etc/roms/ via GetAssetPath() + LoadFile().
ref: tom-seddon/b2/src/b2/roms.cpp:9-10 ref: tom-seddon/b2/src/b2/roms.cpp:9-10
Libretro port (experimental): GetAssetPath stubbed in Libretro port embeds all ROMs as hex arrays in src/libretro/roms.hpp.
src/libretro/adapters.cpp to return relative paths. LoadFile also create_core() loads OS and sideways ROMs from static machine_types[] arrays.
stubbed (returns false). ROM loading mechanism unclear — the 256 ROM GetAssetPath() and LoadFile() are stubbed — no file I/O at runtime.
files are in the repo but the stub suggests they may not load at runtime. ref: zoltanvb/b2-libretro/src/libretro/roms.hpp
is_experimental=true in .info. ref: zoltanvb/b2-libretro/src/libretro/core.cpp:274-304
ref: zoltanvb/b2-libretro/src/libretro/adapters.cpp ref: zoltanvb/b2-libretro/src/libretro/adapters.cpp:74-78
256 ROM files in etc/roms/ cover: BBC Model B (OS 1.20, BASIC II), 9 machine types: B/Acorn 1770, B/Watford DDB2, B/Watford DDB3,
Model B+ (B+MOS), Master 128 (MOS 3.20, 3.50), Master Compact B/Opus 1770, B/Opus Challenger 256K, B/Opus Challenger 512K,
(MOS 5.00, 5.10, I5.10C/Olivetti), parasite processors (65C102 TUBE, B+, B+128, Master 128 (MOS 3.20).
6502 TUBE), disc interfaces (Acorn 1770, Watford, Opus). Master 3.50, Master Turbo, Master Compact not yet implemented.
ref: zoltanvb/b2-libretro/src/libretro/core.h:117
All ROMs ship with both standalone and libretro repos.
No external BIOS files needed by the user for either mode.
files: [] files: []
# 256 ROMs bundled in repo etc/roms/ — not loaded from system dir # all ROMs embedded in binary via roms.hpp — no external files needed
# standalone loads via GetAssetPath("roms", path) -> etc/roms/ # .info firmware_count=0 matches code reality
# libretro port has LoadFile stubbed — ROM loading mechanism TBD
# is_experimental=true, core may not fully function
# closed-source analysis note: core binary on buildbot contains
# "Retro ROM DIRECTORY" and "system_dir" strings but LoadFile stub
# returns false. needs further investigation when port matures.

View File

@@ -1,7 +1,9 @@
emulator: BennuGD emulator: BennuGD
type: libretro type: libretro
core_classification: community_fork
source: "https://github.com/diekleinekuh/BennuGD_libretro" source: "https://github.com/diekleinekuh/BennuGD_libretro"
profiled_date: "2026-03-18" upstream: "https://github.com/SplinterGU/BennuGD"
profiled_date: "2026-03-23"
core_version: "git" core_version: "git"
display_name: "Bennu Game Development" display_name: "Bennu Game Development"
cores: cores:
@@ -9,26 +11,13 @@ cores:
systems: systems:
- bennugd - bennugd
# BennuGD is an open-source interpreter for BennuGD (.dcb/.dat) game files, # .info firmware_count: 0. Code verified: retro_load_game() (libretro.c:887-910)
# running as a libretro core. It is a successor to DIV Games Studio / Fenix. # uses RETRO_ENVIRONMENT_GET_SYSTEM_DIRECTORY only as save directory fallback.
# Notable game: Streets of Rage Remake. # bgdi_main() (core/bgdi/src/main.c:80-371) loads .dcb/.dat bytecode content
# # directly. No files read from system directory.
# The official libretro .info file (bennugd_libretro.info) declares zero
# firmware entries. The core loads content directly via bgdi_main() and does
# not reference any files from the system directory.
#
# retro_load_game() in libretro.c:888-911 only reads the content path and
# the save directory. RETRO_ENVIRONMENT_GET_SYSTEM_DIRECTORY is called once
# (libretro.c:899) solely as a fallback for the save directory, never to
# load BIOS or firmware.
#
# Supported extensions: dcb, dat, exe (Windows BennuGD executables)
# Valid extensions in libretro.c: dat, dcb
# Valid extensions in .info: dcb, dat, exe
notes: | notes: |
No BIOS or firmware required. BennuGD is a self-contained game interpreter. Self-contained interpreter for BennuGD bytecode (.dcb/.dat). Successor to
Games are loaded as .dcb or .dat bytecode files compiled by the BennuGD DIV Games Studio / Fenix. Games bundle all assets with the content file.
toolchain. All game assets are bundled with the content.
files: [] files: []

View File

@@ -1,7 +1,9 @@
emulator: bk-emulator emulator: bk-emulator
type: libretro type: libretro
core_classification: community_fork
source: "https://github.com/libretro/bk-emulator" source: "https://github.com/libretro/bk-emulator"
profiled_date: "2026-03-18" upstream: "https://github.com/emestee/bk-emulator"
profiled_date: "2026-03-23"
core_version: "1.00" core_version: "1.00"
display_name: "Elektronika - BK-0010/BK-0011(M)" display_name: "Elektronika - BK-0010/BK-0011(M)"
cores: cores:
@@ -19,16 +21,17 @@ systems:
# Slow BK-0011M (model 4) - same ROMs as model 3 # Slow BK-0011M (model 4) - same ROMs as model 3
# Terak 8510/a (model 9) # Terak 8510/a (model 9)
# #
# ROM loading (boot.c:84-117): # ROM loading (boot.c:83-116):
# BK-0010 models use load_rom() which maps ROM into emulated memory at # BK-0010 models use load_rom() which maps ROM into emulated memory at
# specific addresses: monitor at 0100000 (8 KB), BASIC/FOCAL at 0120000 # specific addresses: monitor at 0100000 (8 KB), BASIC/FOCAL at 0120000
# (24448-24576 bytes), disk controller at 0160000 (4 KB). # (24448-24576 bytes), disk controller at 0160000 (4 KB).
# BK-0011M uses load_rom11() which loads into separate ROM buffer arrays. # BK-0011M uses load_rom11() which loads into separate ROM buffer arrays.
# #
# ROM file resolution (libretro.c:1051-1094): # ROM file resolution (libretro.c:1050-1107):
# Files are loaded from {system_dir}/bk/{filename} (libretro.c:720-728). # Files are loaded from {system_dir}/bk/{filename} (libretro.c:720-728).
# If not found with original casing, the loader retries with lowercase # If not found with original casing, the loader retries with lowercase
# filename (libretro.c:1071-1081). # filename (libretro.c:1071-1081).
# Size is validated (min/max bounds); no hash validation.
# #
# All ROM files are required for their respective model. The core calls # All ROM files are required for their respective model. The core calls
# environ_cb(RETRO_ENVIRONMENT_SHUTDOWN) if any ROM file is missing. # environ_cb(RETRO_ENVIRONMENT_SHUTDOWN) if any ROM file is missing.
@@ -49,6 +52,7 @@ files:
path: "bk/MONIT10.ROM" path: "bk/MONIT10.ROM"
size: 8192 size: 8192
required: true required: true
validation: [size]
note: "BK-0010 monitor ROM (8 KB). Loaded at address 0100000. Required for all BK-0010 models (0, 1, 2)." note: "BK-0010 monitor ROM (8 KB). Loaded at address 0100000. Required for all BK-0010 models (0, 1, 2)."
source_ref: "main.c:53, boot.c:107" source_ref: "main.c:53, boot.c:107"
aliases: ["monit10.rom"] aliases: ["monit10.rom"]
@@ -59,6 +63,7 @@ files:
path: "bk/FOCAL10.ROM" path: "bk/FOCAL10.ROM"
size: 24576 size: 24576
required: false required: false
validation: [size]
note: "FOCAL interpreter ROM (24448-24576 bytes). Loaded at 0120000. Used by BK-0010 (model 0, default)." note: "FOCAL interpreter ROM (24448-24576 bytes). Loaded at 0120000. Used by BK-0010 (model 0, default)."
source_ref: "libretro.c:15, boot.c:110" source_ref: "libretro.c:15, boot.c:110"
aliases: ["focal10.rom"] aliases: ["focal10.rom"]
@@ -67,6 +72,7 @@ files:
path: "bk/BASIC10.ROM" path: "bk/BASIC10.ROM"
size: 24576 size: 24576
required: false required: false
validation: [size]
note: "BASIC interpreter ROM (24448-24576 bytes). Loaded at 0120000. Used by BK-0010.01 (model 1)." note: "BASIC interpreter ROM (24448-24576 bytes). Loaded at 0120000. Used by BK-0010.01 (model 1)."
source_ref: "libretro.c:16, boot.c:110" source_ref: "libretro.c:16, boot.c:110"
aliases: ["basic10.rom"] aliases: ["basic10.rom"]
@@ -77,6 +83,7 @@ files:
path: "bk/DISK_327.ROM" path: "bk/DISK_327.ROM"
size: 4096 size: 4096
required: false required: false
validation: [size]
note: "Floppy disk controller ROM (4 KB). Loaded at 0160000 for BK-0010.01+FDD (model 2), or into system_rom for BK-0011M (model 3/4)." note: "Floppy disk controller ROM (4 KB). Loaded at 0160000 for BK-0010.01+FDD (model 2), or into system_rom for BK-0011M (model 3/4)."
source_ref: "main.c:54, boot.c:99,113" source_ref: "main.c:54, boot.c:99,113"
aliases: ["disk_327.rom"] aliases: ["disk_327.rom"]
@@ -87,6 +94,7 @@ files:
path: "bk/B11M_BOS.ROM" path: "bk/B11M_BOS.ROM"
size: 8192 size: 8192
required: false required: false
validation: [size]
note: "BK-0011M system ROM / BOS (8 KB). Loaded into system_rom at offset 0. Required for BK-0011M (model 3/4)." note: "BK-0011M system ROM / BOS (8 KB). Loaded into system_rom at offset 0. Required for BK-0011M (model 3/4)."
source_ref: "main.c:55, boot.c:98" source_ref: "main.c:55, boot.c:98"
aliases: ["b11m_bos.rom"] aliases: ["b11m_bos.rom"]
@@ -95,6 +103,7 @@ files:
path: "bk/B11M_EXT.ROM" path: "bk/B11M_EXT.ROM"
size: 8192 size: 8192
required: false required: false
validation: [size]
note: "BK-0011M extended BOS ROM (8 KB). Loaded into rom[1] at offset 8192. Required for BK-0011M (model 3/4)." note: "BK-0011M extended BOS ROM (8 KB). Loaded into rom[1] at offset 8192. Required for BK-0011M (model 3/4)."
source_ref: "main.c:56, boot.c:102" source_ref: "main.c:56, boot.c:102"
aliases: ["b11m_ext.rom"] aliases: ["b11m_ext.rom"]
@@ -103,6 +112,7 @@ files:
path: "bk/BAS11M_0.ROM" path: "bk/BAS11M_0.ROM"
size: 16384 size: 16384
required: false required: false
validation: [size]
note: "BK-0011M BASIC ROM part 0 (16 KB). Loaded into rom[0]. Required for BK-0011M (model 3/4)." note: "BK-0011M BASIC ROM part 0 (16 KB). Loaded into rom[0]. Required for BK-0011M (model 3/4)."
source_ref: "main.c:57, boot.c:100" source_ref: "main.c:57, boot.c:100"
aliases: ["bas11m_0.rom"] aliases: ["bas11m_0.rom"]
@@ -111,6 +121,7 @@ files:
path: "bk/BAS11M_1.ROM" path: "bk/BAS11M_1.ROM"
size: 8192 size: 8192
required: false required: false
validation: [size]
note: "BK-0011M BASIC ROM part 1 (8 KB). Loaded into rom[1] at offset 0. Required for BK-0011M (model 3/4)." note: "BK-0011M BASIC ROM part 1 (8 KB). Loaded into rom[1] at offset 0. Required for BK-0011M (model 3/4)."
source_ref: "main.c:58, boot.c:101" source_ref: "main.c:58, boot.c:101"
aliases: ["bas11m_1.rom"] aliases: ["bas11m_1.rom"]
@@ -121,7 +132,8 @@ files:
path: "bk/TERAK.ROM" path: "bk/TERAK.ROM"
size: 128 size: 128
required: false required: false
note: "Terak 8510/a boot ROM (128 bytes). Only used when model is set to Terak 8510/a (model 9)." validation: [size]
note: "Terak 8510/a boot ROM (128 bytes). Used when model is set to Terak 8510/a (model 9)."
source_ref: "boot.c:94" source_ref: "boot.c:94"
aliases: ["terak.rom"] aliases: ["terak.rom"]
@@ -145,7 +157,7 @@ platform_details:
Terak 8510/a: TERAK.ROM Terak 8510/a: TERAK.ROM
rom_loading: rom_loading:
source_ref: "libretro.c:1051-1108" source_ref: "libretro.c:1050-1107"
notes: | notes: |
load_rom_file() first tries {romdir}/{filename} with original casing. load_rom_file() first tries {romdir}/{filename} with original casing.
If not found, retries with the filename converted to lowercase. If not found, retries with the filename converted to lowercase.

View File

@@ -1,8 +1,9 @@
emulator: BlastEm emulator: BlastEm
type: standalone + libretro type: standalone + libretro
core_classification: official_port
source: "https://github.com/libretro/blastem" source: "https://github.com/libretro/blastem"
upstream: "https://www.retrodev.com/blastem/" upstream: "https://www.retrodev.com/blastem/"
profiled_date: "2026-03-18" profiled_date: "2026-03-23"
core_version: "v0.6.3-pre" core_version: "v0.6.3-pre"
display_name: "Sega - Mega Drive - Genesis (BlastEm)" display_name: "Sega - Mega Drive - Genesis (BlastEm)"
cores: cores:
@@ -30,7 +31,7 @@ notes: |
No BIOS files are required or loaded by the libretro core. No BIOS files are required or loaded by the libretro core.
files: files:
# rom.db is embedded in the libretro binary (libblastem.c:532-540, # rom.db is embedded in the libretro binary (libblastem.c:532-542,
# extern const char rom_db_data[]). The external file is an optional # extern const char rom_db_data[]). The external file is an optional
# override — .info lists it as firmware0_opt=true. # override — .info lists it as firmware0_opt=true.
# .info sha1 E5414FB1C4CC7D7F5101C07E4547316779BA3D97 does not match # .info sha1 E5414FB1C4CC7D7F5101C07E4547316779BA3D97 does not match
@@ -41,7 +42,7 @@ files:
required: false required: false
hle_fallback: true hle_fallback: true
note: "ROM feature database (game-specific mapper/save config). Embedded in core, external is optional override." note: "ROM feature database (game-specific mapper/save config). Embedded in core, external is optional override."
source_ref: "libblastem.c:532-540 read_bundled_file()" source_ref: "libblastem.c:532-542 read_bundled_file()"
# TMSS ROM — only used in standalone mode with tmss-enabled model # TMSS ROM — only used in standalone mode with tmss-enabled model
# libretro build returns NULL for tmss.md (libblastem.c:541) # libretro build returns NULL for tmss.md (libblastem.c:541)

View File

@@ -1,8 +1,9 @@
emulator: blueMSX emulator: blueMSX
type: standalone + libretro type: standalone + libretro
core_classification: community_fork
source: "https://github.com/libretro/blueMSX-libretro" source: "https://github.com/libretro/blueMSX-libretro"
upstream: "http://bluemsx.msxblue.com/" upstream: "http://bluemsx.msxblue.com/"
profiled_date: "2026-03-18" profiled_date: "2026-03-23"
core_version: "SVN" core_version: "SVN"
display_name: "MSX/SVI/ColecoVision/SG-1000 (blueMSX)" display_name: "MSX/SVI/ColecoVision/SG-1000 (blueMSX)"
cores: cores:
@@ -393,8 +394,9 @@ files:
path: "Machines/Shared Roms/FMPAC.rom" path: "Machines/Shared Roms/FMPAC.rom"
size: 65536 size: 65536
required: false required: false
note: "FM-PAC cartridge ROM (YM2413 FM synthesis). Loaded as expansion cartridge by MegaromCartridge.c." hle_fallback: true
source_ref: "Src/Memory/MegaromCartridge.c:290" note: "FM-PAC cartridge ROM (YM2413 FM synthesis). If missing, core uses built-in minimal ROM stub."
source_ref: "Src/Memory/MegaromCartridge.c:289-305"
- name: XBASIC2.rom - name: XBASIC2.rom
path: "Machines/Shared Roms/XBASIC2.rom" path: "Machines/Shared Roms/XBASIC2.rom"
@@ -648,6 +650,30 @@ files:
bundled: true bundled: true
note: "MSX system ROM database. Bundled with core." note: "MSX system ROM database. Bundled with core."
- name: colecodb.xml
path: "Databases/colecodb.xml"
required: false
bundled: true
note: "ColecoVision ROM database. Bundled with core."
- name: msxcaswavdb.xml
path: "Databases/msxcaswavdb.xml"
required: false
bundled: true
note: "MSX cassette/WAV media database. Bundled with core."
- name: segadb.xml
path: "Databases/segadb.xml"
required: false
bundled: true
note: "Sega SG-1000/SC-3000/SF-7000 ROM database. Bundled with core."
- name: svidb.xml
path: "Databases/svidb.xml"
required: false
bundled: true
note: "Spectravideo SVI ROM database. Bundled with core."
# Machine count: 170+ machine configurations covering dozens of regional MSX # Machine count: 170+ machine configurations covering dozens of regional MSX
# variants from manufacturers like Panasonic, Sony, Philips, Yamaha, Sanyo, # variants from manufacturers like Panasonic, Sony, Philips, Yamaha, Sanyo,
# National, Toshiba, Daewoo, Sharp, Gradiente, Spectravideo, and others. # National, Toshiba, Daewoo, Sharp, Gradiente, Spectravideo, and others.

View File

@@ -1,7 +1,9 @@
emulator: bnes emulator: bnes
type: libretro type: libretro
core_classification: frozen_snapshot
source: "https://github.com/libretro/bnes-libretro" source: "https://github.com/libretro/bnes-libretro"
profiled_date: "2026-03-18" upstream: "https://github.com/Alcaro/bsnes-gc"
profiled_date: "2026-03-23"
core_version: "v083" core_version: "v083"
display_name: "Nintendo - NES / Famicom (bnes)" display_name: "Nintendo - NES / Famicom (bnes)"
cores: cores:
@@ -10,27 +12,13 @@ systems:
- nes - nes
notes: | notes: |
bnes is a NES emulator based on byuu's bNES/higan v083 NES module, ported Frozen libretro port of byuu's higan v083 NES module by Ryphecha. Experimental,
to libretro by Ryphecha. It is a lightweight, accuracy-focused NES core. not maintained. ROM data passed via retro_load_game memory buffer
(libretro/libretro.cpp:181-184). Cartridge::load parses iNES headers and
The core loads cartridge data entirely through retro_load_game with delegates to Board::load (nes/cartridge/cartridge.cpp:18-31). System::init sets
need_fullpath=false (libretro/libretro.cpp:129). ROM data is passed as a up the interface pointer and default input devices (nes/system/system.cpp:62-66).
memory buffer and parsed by Cartridge::load (nes/cartridge/cartridge.cpp:18-31), No system directory access. No FDS support. Palette hardcoded
which detects iNES headers (16-byte offset) and delegates to Board::load. (libretro/libretro.cpp:20-37). .info declares no firmware (firmware_count absent).
The PPU generates its palette from a hardcoded color table in
libretro/libretro.cpp:20-37 with emphasis factor tables. No external
palette file is loaded.
System::init (nes/system/system.cpp:62-66) only sets up the interface
pointer and default input devices. No system ROM, BIOS, or firmware is
loaded at any stage of initialization or cartridge loading.
The core does not call RETRO_ENVIRONMENT_GET_SYSTEM_DIRECTORY and has no
file I/O for BIOS or firmware. FDS (Famicom Disk System) is not supported,
so disksys.rom is not needed.
No external BIOS or firmware files are needed.
files: [] files: []
@@ -40,24 +28,7 @@ analysis:
cartridge_load: "nes/cartridge/cartridge.cpp:18-31 - parses iNES header + ROM data" cartridge_load: "nes/cartridge/cartridge.cpp:18-31 - parses iNES header + ROM data"
system_init: "nes/system/system.cpp:62-66 - sets interface pointer, no ROM loading" system_init: "nes/system/system.cpp:62-66 - sets interface pointer, no ROM loading"
system_power: "nes/system/system.cpp:43-50 - powers subsystems, no file I/O" system_power: "nes/system/system.cpp:43-50 - powers subsystems, no file I/O"
interface_init: "nes/interface/interface.cpp - stores derived pointer, calls system.init" interface_init: "nes/interface/interface.cpp:17-20 - stores derived pointer, calls system.init"
supported_mappers:
- NROM
- SxROM (MMC1)
- UxROM
- CNROM
- TxROM (MMC3)
- ExROM (MMC5)
- AxROM
- BnROM
- GxROM
- PxROM (MMC4)
- FxROM (MMC4)
- Bandai FCG
- Konami VRC4
- Konami VRC6
- Konami VRC7
- Sunsoft 5B
fds_support: false fds_support: false
filesystem_access: false filesystem_access: false
system_directory_used: false system_directory_used: false

View File

@@ -1,7 +1,9 @@
emulator: boom3 emulator: boom3
type: libretro type: libretro
core_classification: game_engine
source: "https://github.com/libretro/boom3" source: "https://github.com/libretro/boom3"
profiled_date: "2026-03-18" upstream: "https://github.com/dhewm/dhewm3"
profiled_date: "2026-03-23"
core_version: "git" core_version: "git"
display_name: "Doom 3 (boom3)" display_name: "Doom 3 (boom3)"
cores: [boom3, boom3_xp] cores: [boom3, boom3_xp]

View File

@@ -1,9 +1,10 @@
emulator: Boytacean emulator: Boytacean
type: standalone + libretro type: standalone + libretro
core_classification: official_port
source: "https://github.com/joamag/boytacean" source: "https://github.com/joamag/boytacean"
upstream: "https://github.com/joamag/boytacean" upstream: "https://github.com/joamag/boytacean"
profiled_date: "2026-03-18" profiled_date: "2026-03-23"
core_version: "0.10.13" core_version: "0.11.5"
display_name: "Nintendo - Game Boy / Color (Boytacean)" display_name: "Nintendo - Game Boy / Color (Boytacean)"
cores: cores:
- boytacean - boytacean
@@ -12,23 +13,21 @@ systems:
- nintendo-gbc - nintendo-gbc
notes: | notes: |
Boytacean is a Game Boy / Game Boy Color emulator written in Rust. Game Boy / Game Boy Color emulator written in Rust by Joao Magalhaes.
Libretro: boot ROMs compiled into binary as static byte arrays in Libretro: all boot ROMs compiled into binary as static byte arrays in
src/data.rs. load_boot_static() copies from arrays. No filesystem src/data.rs. load_boot_static() copies from arrays. No filesystem
access, no RETRO_ENVIRONMENT_GET_SYSTEM_DIRECTORY. No external files. access, no RETRO_ENVIRONMENT_GET_SYSTEM_DIRECTORY. No external files.
ref: frontends/libretro/src/core.rs:402 instance.load(true) ref: core.rs:402 instance.load(true) -> gb.rs:1311 -> load_boot_static
Standalone (SDL): loads boot ROMs from ./res/boot/*.bin via Standalone (SDL): also defaults to embedded boot ROMs via load(true).
load_boot_path() at gb.rs:1363-1368. 8 boot ROM files shipped in repo. User can override via --boot-rom-path CLI argument with any boot ROM
ref: frontends/sdl/src/main.rs, src/gb.rs:1341 file. load_boot_file() with hardcoded ./res/boot/*.bin paths exists in
gb.rs:1361 but is not called from any frontend.
Boot ROM defaults: Boot ROM defaults: DmgBootix (DMG), CgbBoytacean (CGB) — open-source.
- DMG: BootRom::DmgBootix (gb.rs:1352) - open-source, 256 bytes
- CGB: BootRom::CgbBoytacean (gb.rs:1355) - open-source, 2304 bytes
files: files:
# Standalone mode loads from res/boot/ — libretro embeds all as arrays
- name: dmg_boot.bin - name: dmg_boot.bin
system: nintendo-gb system: nintendo-gb
required: false required: false
@@ -36,7 +35,7 @@ files:
mode: standalone mode: standalone
size: 256 size: 256
note: "Original Nintendo DMG boot ROM" note: "Original Nintendo DMG boot ROM"
source_ref: "gb.rs:1363, data.rs:14 (embedded as DMG_BOOT)" source_ref: "gb.rs:1350 load_boot_static, data.rs:14 DMG_BOOT"
- name: sgb_boot.bin - name: sgb_boot.bin
system: nintendo-gb system: nintendo-gb
@@ -45,7 +44,7 @@ files:
mode: standalone mode: standalone
size: 256 size: 256
note: "Super Game Boy boot ROM" note: "Super Game Boy boot ROM"
source_ref: "gb.rs:1364, data.rs:29 (embedded as SGB_BOOT)" source_ref: "gb.rs:1351 load_boot_static, data.rs:29 SGB_BOOT"
- name: dmg_bootix.bin - name: dmg_bootix.bin
system: nintendo-gb system: nintendo-gb
@@ -53,8 +52,8 @@ files:
hle_fallback: true hle_fallback: true
mode: standalone mode: standalone
size: 256 size: 256
note: "Open-source DMG boot ROM from Bootix (default)" note: "Open-source DMG boot ROM from Bootix (default DMG)"
source_ref: "gb.rs:1365, data.rs:44 (embedded as DMG_BOOTIX)" source_ref: "gb.rs:1352 load_boot_static, data.rs:44 DMG_BOOTIX"
- name: mgb_bootix.bin - name: mgb_bootix.bin
system: nintendo-gb system: nintendo-gb
@@ -63,7 +62,7 @@ files:
mode: standalone mode: standalone
size: 256 size: 256
note: "Open-source MGB (Pocket) boot ROM from Bootix" note: "Open-source MGB (Pocket) boot ROM from Bootix"
source_ref: "gb.rs:1366, data.rs:59 (embedded as MGB_BOOTIX)" source_ref: "gb.rs:1353 load_boot_static, data.rs:59 MGB_BOOTIX"
- name: cgb_boot.bin - name: cgb_boot.bin
system: nintendo-gbc system: nintendo-gbc
@@ -72,7 +71,7 @@ files:
mode: standalone mode: standalone
size: 2304 size: 2304
note: "Original Nintendo CGB boot ROM" note: "Original Nintendo CGB boot ROM"
source_ref: "gb.rs:1367, data.rs:74 (embedded as CGB_BOOT)" source_ref: "gb.rs:1354 load_boot_static, data.rs:74 CGB_BOOT"
- name: cgb_boytacean.bin - name: cgb_boytacean.bin
system: nintendo-gbc system: nintendo-gbc
@@ -80,21 +79,5 @@ files:
hle_fallback: true hle_fallback: true
mode: standalone mode: standalone
size: 2304 size: 2304
note: "Custom open-source CGB boot ROM (default)" note: "Custom open-source CGB boot ROM (default CGB)"
source_ref: "gb.rs:1368, data.rs:177 (embedded as CGB_BOYTACEAN)" source_ref: "gb.rs:1355 load_boot_static, data.rs:177 CGB_BOYTACEAN"
- name: dmg_pyboy.bin
system: nintendo-gb
required: false
hle_fallback: true
mode: standalone
note: "PyBoy DMG boot ROM variant (in res/boot/, not embedded in data.rs)"
source_ref: "res/boot/dmg_pyboy.bin"
- name: cgb_pyboy.bin
system: nintendo-gbc
required: false
hle_fallback: true
mode: standalone
note: "PyBoy CGB boot ROM variant (in res/boot/, not embedded in data.rs)"
source_ref: "res/boot/cgb_pyboy.bin"

View File

@@ -1,9 +1,10 @@
emulator: bsnes-jg emulator: bsnes-jg
type: libretro type: libretro
core_classification: community_fork
source: "https://github.com/libretro/bsnes-jg" source: "https://github.com/libretro/bsnes-jg"
upstream: "https://github.com/libretro/bsnes-jg" upstream: "https://gitlab.com/jgemu/bsnes"
profiled_date: "2026-03-18" profiled_date: "2026-03-23"
core_version: "2.0.0" core_version: "2.1.0"
display_name: "Nintendo - SNES / SFC (bsnes-jg)" display_name: "Nintendo - SNES / SFC (bsnes-jg)"
cores: [bsnes-jg] cores: [bsnes-jg]
systems: systems:
@@ -13,107 +14,130 @@ systems:
- nintendo-sufami-turbo - nintendo-sufami-turbo
notes: | notes: |
bsnes-jg is a fork of bsnes v115 by Rupert Carmichael, rewritten for Fork of bsnes v115 by Rupert Carmichael, rewritten for C++ standard library.
C++ standard library. Coprocessor firmware loaded from system_dir via Coprocessor firmware loaded from system_dir via openFileCallback.
openFileCallback. SGB boot ROMs and CX4/HitachiDSP data ROM embedded. HLE available for DSP1/1B/2/4 and ST010 (core option bsnes_jg_coproc_preferhle).
DSP3, ST011, ST018 require LLE firmware in all cases (no HLE path).
CX4/HitachiDSP uses embedded static data ROM (3072 bytes), no external file.
SGB1/SGB2 boot ROMs embedded (256 bytes each).
BML game databases embedded as C++ string literals. BML game databases embedded as C++ string literals.
ref: libretro/libretro.cpp:722 RETRO_ENVIRONMENT_GET_SYSTEM_DIRECTORY ref: libretro/libretro.cpp:420-502 fileOpenV firmware loading callback
ref: libretro/libretro.cpp:428-470 firmware path construction (sysdir + filename) ref: src/cartridge.cpp:754-829 uPD7725 (DSP1-4) LLE/HLE dispatch
ref: src/cartridge.cpp:774-786 openFileCallback for DSP/ST .program.rom/.data.rom ref: src/cartridge.cpp:831-901 uPD96050 (ST010/ST011) LLE/HLE dispatch
ref: src/cartridge.cpp:615-670 ARM6 (ST018) firmware loading
ref: src/cartridge.cpp:672-752 HG51BS169 (HitachiDSP/CX4) embedded ROM + HLE
ref: src/coprocessor/icd.cpp:249,260 SGB1/SGB2 boot ROMs embedded ref: src/coprocessor/icd.cpp:249,260 SGB1/SGB2 boot ROMs embedded
ref: src/cartridge.cpp:62 HitachiDSP static data ROM embedded (3072 bytes) ref: src/cartridge.cpp:62 hitachidspStaticDataROM embedded
ref: libretro/libretro.cpp:30-33,410-416 BML databases embedded ref: libretro/libretro.cpp:30-33 BML databases embedded
files: files:
# SNES coprocessor firmware — loaded from system_dir, all optional # uPD7725 coprocessor firmware (DSP1, DSP1B, DSP2, DSP3, DSP4)
# Games using these coprocessors won't work without the firmware # HLE fallback available for DSP1/1B/2/4, not for DSP3
# but most SNES games don't use coprocessors
- name: dsp1.program.rom - name: dsp1.program.rom
system: nintendo-snes system: nintendo-snes
required: false required: false
source_ref: "libretro/libretro.cpp:428-429" hle_fallback: true
source_ref: "libretro/libretro.cpp:429, src/cartridge.cpp:774,798-804"
- name: dsp1.data.rom - name: dsp1.data.rom
system: nintendo-snes system: nintendo-snes
required: false required: false
source_ref: "libretro/libretro.cpp:431-432" hle_fallback: true
source_ref: "libretro/libretro.cpp:432, src/cartridge.cpp:786,798-804"
- name: dsp1b.program.rom - name: dsp1b.program.rom
system: nintendo-snes system: nintendo-snes
required: false required: false
source_ref: "libretro/libretro.cpp:434-435" hle_fallback: true
source_ref: "libretro/libretro.cpp:435, src/cartridge.cpp:774,798-804"
- name: dsp1b.data.rom - name: dsp1b.data.rom
system: nintendo-snes system: nintendo-snes
required: false required: false
source_ref: "libretro/libretro.cpp:437-438" hle_fallback: true
source_ref: "libretro/libretro.cpp:438, src/cartridge.cpp:786,798-804"
- name: dsp2.program.rom - name: dsp2.program.rom
system: nintendo-snes system: nintendo-snes
required: false required: false
source_ref: "libretro/libretro.cpp:440-441" hle_fallback: true
source_ref: "libretro/libretro.cpp:441, src/cartridge.cpp:774,806-811"
- name: dsp2.data.rom - name: dsp2.data.rom
system: nintendo-snes system: nintendo-snes
required: false required: false
source_ref: "libretro/libretro.cpp:443-444" hle_fallback: true
source_ref: "libretro/libretro.cpp:444, src/cartridge.cpp:786,806-811"
- name: dsp3.program.rom - name: dsp3.program.rom
system: nintendo-snes system: nintendo-snes
required: false required: false
source_ref: "libretro/libretro.cpp:446-447" source_ref: "libretro/libretro.cpp:447-448, src/cartridge.cpp:774,822-828"
- name: dsp3.data.rom - name: dsp3.data.rom
system: nintendo-snes system: nintendo-snes
required: false required: false
source_ref: "libretro/libretro.cpp:450-451" source_ref: "libretro/libretro.cpp:451-452, src/cartridge.cpp:786,822-828"
- name: dsp4.program.rom - name: dsp4.program.rom
system: nintendo-snes system: nintendo-snes
required: false required: false
source_ref: "libretro/libretro.cpp:455" hle_fallback: true
source_ref: "libretro/libretro.cpp:455, src/cartridge.cpp:774,813-818"
- name: dsp4.data.rom - name: dsp4.data.rom
system: nintendo-snes system: nintendo-snes
required: false required: false
source_ref: "libretro/libretro.cpp" hle_fallback: true
source_ref: "libretro/libretro.cpp:458, src/cartridge.cpp:786,813-818"
# uPD96050 coprocessor firmware (ST010, ST011)
# HLE fallback available for ST010, not for ST011
- name: st010.program.rom - name: st010.program.rom
system: nintendo-snes system: nintendo-snes
required: false required: false
source_ref: "libretro/libretro.cpp" hle_fallback: true
source_ref: "libretro/libretro.cpp:461, src/cartridge.cpp:851,872-882"
- name: st010.data.rom - name: st010.data.rom
system: nintendo-snes system: nintendo-snes
required: false required: false
source_ref: "libretro/libretro.cpp" hle_fallback: true
source_ref: "libretro/libretro.cpp:464, src/cartridge.cpp:863,872-882"
- name: st011.program.rom - name: st011.program.rom
system: nintendo-snes system: nintendo-snes
required: false required: false
source_ref: "libretro/libretro.cpp" source_ref: "libretro/libretro.cpp:467-468, src/cartridge.cpp:851,884-901"
- name: st011.data.rom - name: st011.data.rom
system: nintendo-snes system: nintendo-snes
required: false required: false
source_ref: "libretro/libretro.cpp" source_ref: "libretro/libretro.cpp:471-472, src/cartridge.cpp:863,884-901"
# ARM6 coprocessor firmware (ST018)
# Internal name arm6, mapped to st018 by libretro wrapper. No HLE.
- name: st018.program.rom - name: st018.program.rom
system: nintendo-snes system: nintendo-snes
required: false required: false
source_ref: "libretro/libretro.cpp" source_ref: "libretro/libretro.cpp:475-476, src/cartridge.cpp:640"
aliases: [arm6.program.rom]
- name: st018.data.rom - name: st018.data.rom
system: nintendo-snes system: nintendo-snes
required: false required: false
source_ref: "libretro/libretro.cpp" source_ref: "libretro/libretro.cpp:479-480, src/cartridge.cpp:650"
aliases: [arm6.data.rom]
# Embedded (no external file needed): # Embedded (no external file needed):
# SGB1BootROM[256] — src/coprocessor/icd.cpp:249 # SGB1BootROM[256] — src/coprocessor/icd.cpp:249
# SGB2BootROM[256] — src/coprocessor/icd.cpp:260 # SGB2BootROM[256] — src/coprocessor/icd.cpp:260
# hitachidspStaticDataROM[3072] — src/cartridge.cpp:62 # hitachidspStaticDataROM[3072] — src/cartridge.cpp:62
# CX4 HLE — src/cartridge.cpp:705-720 (preferHLE path for HG51BS169)
# boards_bml — libretro/boards_bml.hpp # boards_bml — libretro/boards_bml.hpp
# SuperFamicom_bml — libretro/SuperFamicom_bml.hpp # SuperFamicom_bml — libretro/SuperFamicom_bml.hpp
# BSMemory_bml — libretro/BSMemory_bml.hpp # BSMemory_bml — libretro/BSMemory_bml.hpp

View File

@@ -1,10 +1,13 @@
emulator: bsnes emulator: bsnes
type: libretro type: libretro
core_classification: official_port
source: "https://github.com/libretro/bsnes-libretro" source: "https://github.com/libretro/bsnes-libretro"
upstream: "https://github.com/bsnes-emu/bsnes"
logo: "https://raw.githubusercontent.com/bsnes-emu/bsnes/master/bsnes/target-bsnes/resource/bsnes.svg" logo: "https://raw.githubusercontent.com/bsnes-emu/bsnes/master/bsnes/target-bsnes/resource/bsnes.svg"
profiled_date: "2026-03-18" profiled_date: "2026-03-23"
core_version: "115" core_version: "115"
display_name: "Nintendo - SNES / SFC (bsnes)" display_name: "Nintendo - SNES / SFC (bsnes)"
cores: [bsnes]
systems: [nintendo-snes, nintendo-super-game-boy, nintendo-satellaview] systems: [nintendo-snes, nintendo-super-game-boy, nintendo-satellaview]
# bsnes supports HLE for DSP1/DSP1B/DSP2/DSP4, ST010, and Cx4. # bsnes supports HLE for DSP1/DSP1B/DSP2/DSP4, ST010, and Cx4.
@@ -172,8 +175,7 @@ files:
- name: "BS-X.bin" - name: "BS-X.bin"
required: true required: true
md5: fed4d8242cfbed61343d53d48432aced note: "BS-X Satellaview BIOS ROM. Required for .bs games"
note: "BS-X Satellaview BIOS ROM. Required for .bs games. .info md5=fed4d824, repo has 96cf17bf (Rev 1 vs original)"
source_ref: "target-libretro/libretro.cpp:948" source_ref: "target-libretro/libretro.cpp:948"
notes: notes:

View File

@@ -1,8 +1,9 @@
emulator: bsnes 2014 emulator: bsnes 2014
type: libretro type: libretro
core_classification: frozen_snapshot
source: "https://github.com/libretro/bsnes2014" source: "https://github.com/libretro/bsnes2014"
upstream: "https://github.com/bsnes-emu/bsnes" upstream: "https://github.com/bsnes-emu/bsnes"
profiled_date: "2026-03-18" profiled_date: "2026-03-23"
core_version: "v094" core_version: "v094"
display_name: "Nintendo - SNES / SFC (bsnes 2014)" display_name: "Nintendo - SNES / SFC (bsnes 2014)"
cores: [bsnes2014_accuracy, bsnes2014_balanced, bsnes2014_performance] cores: [bsnes2014_accuracy, bsnes2014_balanced, bsnes2014_performance]
@@ -13,110 +14,123 @@ systems:
- nintendo-sufami-turbo - nintendo-sufami-turbo
notes: | notes: |
bsnes 2014 is based on bsnes v094. Three build profiles: Frozen at bsnes v094. Three build profiles: accuracy (dot-based PPU),
accuracy (dot-based PPU), balanced, performance (scanline PPU). balanced, performance (scanline PPU). All 3 share the same 18 firmware
All 3 profiles use the same 18 firmware files. Profiles differ only files. Profiles only differ in PPU (sfc/profile-*.hpp), not coprocessors.
in PPU implementation (sfc/profile-*.hpp: CPU/SMP/DSP/PPU alternates), Performance .info is wrong (firmware_count=17, missing cx4.data.rom).
not in coprocessor support. CX4/Hitachi compiled in all profiles. SPC700 IPL ROM (64 bytes) embedded in target-libretro/libretro.cpp:31.
.info says performance has 17 (no cx4) — this is wrong, verified in No HLE fallback for any coprocessor in v094.
sfc/profile-performance.hpp which only changes CPU/SMP/DSP/PPU.
Unlike modern bsnes (v115+), v094 does NOT have HLE fallback for
coprocessors. CX4 is NOT embedded — cx4.data.rom is required
externally. SGB boot ROM is NOT embedded — sgb.boot.rom required.
Firmware loaded from system_dir via file::exists() + mmapstream. Firmware loaded from system_dir via file::exists() + mmapstream.
ref: target-libretro/libretro.cpp — penviron(RETRO_ENVIRONMENT_GET_SYSTEM_DIRECTORY) DSP1 (non-b) names used via embedded database for specific SHA256-matched
ref: ananke/heuristics/super-famicom.hpp — firmware name definitions games; DSP1B names used via heuristic fallback for all DSP1/DSP1B games.
ref: ananke/super-famicom.cpp:120 — sgb.boot.rom copy Upstream v094 source is contained within the libretro repo (sfc/, ananke/).
bsnes-emu/bsnes is the modern rewrite (v115+).
files: files:
# DSP coprocessor split ROMs (program + data)
- name: dsp1.program.rom - name: dsp1.program.rom
system: nintendo-snes system: nintendo-snes
required: false required: false
source_ref: "ananke/heuristics/super-famicom.hpp:381" size: 6144
source_ref: "ananke/database/super-famicom.hpp:5658"
- name: dsp1.data.rom - name: dsp1.data.rom
system: nintendo-snes system: nintendo-snes
required: false required: false
source_ref: "ananke/heuristics/super-famicom.hpp:382" size: 2048
source_ref: "ananke/database/super-famicom.hpp:5659"
- name: dsp1b.program.rom - name: dsp1b.program.rom
system: nintendo-snes system: nintendo-snes
required: false required: false
size: 6144
source_ref: "ananke/heuristics/super-famicom.hpp:381" source_ref: "ananke/heuristics/super-famicom.hpp:381"
- name: dsp1b.data.rom - name: dsp1b.data.rom
system: nintendo-snes system: nintendo-snes
required: false required: false
size: 2048
source_ref: "ananke/heuristics/super-famicom.hpp:382" source_ref: "ananke/heuristics/super-famicom.hpp:382"
- name: dsp2.program.rom - name: dsp2.program.rom
system: nintendo-snes system: nintendo-snes
required: false required: false
size: 6144
source_ref: "ananke/heuristics/super-famicom.hpp:403"
- name: dsp2.data.rom - name: dsp2.data.rom
system: nintendo-snes system: nintendo-snes
required: false required: false
size: 2048
source_ref: "ananke/heuristics/super-famicom.hpp:404"
- name: dsp3.program.rom - name: dsp3.program.rom
system: nintendo-snes system: nintendo-snes
required: false required: false
note: "no HLE fallback in v094 — required for SD Gundam GX" size: 6144
source_ref: "ananke/heuristics/super-famicom.hpp:417"
- name: dsp3.data.rom - name: dsp3.data.rom
system: nintendo-snes system: nintendo-snes
required: false required: false
size: 2048
source_ref: "ananke/heuristics/super-famicom.hpp:418"
- name: dsp4.program.rom - name: dsp4.program.rom
system: nintendo-snes system: nintendo-snes
required: false required: false
size: 6144
source_ref: "ananke/heuristics/super-famicom.hpp:431"
- name: dsp4.data.rom - name: dsp4.data.rom
system: nintendo-snes system: nintendo-snes
required: false required: false
size: 2048
source_ref: "ananke/heuristics/super-famicom.hpp:432"
# CX4 (Hitachi) — NOT embedded in v094 unlike bsnes v115+
- name: cx4.data.rom - name: cx4.data.rom
system: nintendo-snes system: nintendo-snes
required: false required: false
size: 3072 size: 3072
note: "Capcom CX4 coprocessor data. Required for Mega Man X2/X3. Used in all 3 profiles (.info performance is wrong). NOT embedded in v094."
source_ref: "ananke/heuristics/super-famicom.hpp:146" source_ref: "ananke/heuristics/super-famicom.hpp:146"
# Seta coprocessors
- name: st010.program.rom - name: st010.program.rom
system: nintendo-snes system: nintendo-snes
required: false required: false
size: 49152
source_ref: "ananke/heuristics/super-famicom.hpp:445"
- name: st010.data.rom - name: st010.data.rom
system: nintendo-snes system: nintendo-snes
required: false required: false
size: 4096
source_ref: "ananke/heuristics/super-famicom.hpp:446"
- name: st011.program.rom - name: st011.program.rom
system: nintendo-snes system: nintendo-snes
required: false required: false
note: "no HLE fallback — required for Hayazashi Nidan Morita Shougi" size: 49152
source_ref: "ananke/heuristics/super-famicom.hpp:460"
- name: st011.data.rom - name: st011.data.rom
system: nintendo-snes system: nintendo-snes
required: false required: false
size: 4096
source_ref: "ananke/heuristics/super-famicom.hpp:461"
- name: st018.program.rom - name: st018.program.rom
system: nintendo-snes system: nintendo-snes
required: false required: false
note: "ARM coprocessor. Required for Hayazashi Nidan Morita Shougi 2" size: 131072
source_ref: "ananke/heuristics/super-famicom.hpp:475-476" source_ref: "ananke/heuristics/super-famicom.hpp:475"
- name: st018.data.rom - name: st018.data.rom
system: nintendo-snes system: nintendo-snes
required: false required: false
size: 32768
source_ref: "ananke/heuristics/super-famicom.hpp:476"
# SGB boot ROM — NOT embedded in v094 unlike bsnes-jg/v115+
- name: sgb.boot.rom - name: sgb.boot.rom
system: nintendo-sgb system: nintendo-sgb
required: false required: false
size: 256 size: 256
note: "SGB boot ROM (256 bytes). NOT embedded in v094. Present in all 3 profiles." source_ref: "ananke/heuristics/super-famicom.hpp:133"
source_ref: "ananke/heuristics/super-famicom.hpp:133, ananke/super-famicom.cpp:120"

View File

@@ -1,36 +1,36 @@
emulator: bsnes C++98 emulator: bsnes C++98
type: libretro type: libretro
core_classification: frozen_snapshot
source: "https://github.com/libretro/bsnes-libretro-cplusplus98" source: "https://github.com/libretro/bsnes-libretro-cplusplus98"
upstream: "https://github.com/bsnes-emu/bsnes" upstream: "https://byuu.org/"
profiled_date: "2026-03-18" profiled_date: "2026-03-23"
core_version: "v085 (Performance)" core_version: "v085 (Performance)"
display_name: "Nintendo - SNES / SFC (bsnes C++98 (v085))" display_name: "Nintendo - SNES / SFC (bsnes C++98 (v085))"
cores: [bsnes_cplusplus98] cores: [bsnes_cplusplus98]
systems: systems:
- nintendo-snes - nintendo-snes
- nintendo-sufami-turbo
- nintendo-satellaview
notes: | notes: |
bsnes C++98 is bsnes v085 downgraded to C++98 for old compilers. Frozen snapshot of bsnes v085 downgraded to C++98 for old compilers (PS3).
Performance profile only. is_experimental=true. Performance profile only. is_experimental=true.
Firmware loading differs from newer bsnes versions: NEC DSP and Hitachi DSP firmware loaded from the ROM directory, not
- NEC DSP (dsp1/2/3/4) and Hitachi DSP (cx4) firmware loaded from system_dir. Path: dir(interface->path(Slot::Base, ".dsp")) + firmware_name
the SAME DIRECTORY as the ROM, not from system_dir. from game XML markup. interface->path() returns ROM basename + hint.
- Path: dir(interface->path(Slot::Base, ".dsp")) + firmware_name ref: snes/cartridge/markup.cpp parse_markup_necdsp, parse_markup_hitachidsp
ref: snes/cartridge/markup.cpp:231 ref: snes/libretro/libretro.cpp Interface::path()
- interface->path() returns basename + hint
ref: snes/libretro/libretro.cpp path() method
- Firmware name comes from the game's XML/BML markup (root["firmware"])
NOT fixed names like dsp1.program.rom
- Files are COMBINED (program+data in one file), not split
ref: snes/cartridge/markup.cpp:243-244 reads promsize*3 + dromsize*2
.info has firmware_count=0 because firmware is loaded from ROM dir, RETRO_ENVIRONMENT_GET_SYSTEM_DIRECTORY is never called.
not from system_dir — RetroArch can't pre-populate them. No file I/O targets system_dir anywhere in the codebase.
The core warns "NEC DSP firmware X is missing" if not found but Core continues without DSP firmware but coprocessor games won't function.
continues without the coprocessor (games using it won't work).
exclusion_note: >
firmware_count=0 in .info is correct. DSP firmware (NEC uPD7725/uPD96050,
Hitachi CX4) is loaded from the ROM directory via game XML markup, not from
system_dir. RetroArch cannot pre-populate firmware in the ROM directory.
Upstream byuu.org is defunct; this libretro port is the preserved v085 code.
files: [] files: []
# firmware loaded from ROM directory, not system directory
# no files to declare for system_dir placement

View File

@@ -1,10 +1,10 @@
emulator: bsnes-hd beta emulator: bsnes-hd beta
type: libretro type: libretro
core_classification: enhanced_fork
source: "https://github.com/DerKoun/bsnes-hd" source: "https://github.com/DerKoun/bsnes-hd"
upstream: "https://github.com/bsnes-emu/bsnes" upstream: "https://github.com/bsnes-emu/bsnes"
profiled_date: "2026-03-18" profiled_date: "2026-03-23"
core_version: "v10.6" core_version: "v10.6"
# .info says v112.v12 but repo shows Version = "10.6", SerializerVersion = "114.2"
display_name: "Nintendo - SNES / SFC (bsnes-hd beta)" display_name: "Nintendo - SNES / SFC (bsnes-hd beta)"
cores: [bsnes_hd_beta] cores: [bsnes_hd_beta]
systems: systems:
@@ -14,112 +14,139 @@ systems:
- nintendo-sufami-turbo - nintendo-sufami-turbo
notes: | notes: |
bsnes-hd beta is bsnes ~v114 by DerKoun with widescreen and bsnes-hd beta is a fork of bsnes ~v114 by DerKoun with widescreen
increased color depth. Same firmware as bsnes v115. and true color rendering. Firmware handling identical to bsnes v115.
repo Version="10.6", SerializerVersion="114.2" repo Version="10.6", SerializerVersion="114.2"
ref: bsnes/emulator/emulator.hpp:34,40 ref: bsnes/emulator/emulator.hpp:33-34,40
SGB boot ROMs embedded in binary (icd/boot-roms.cpp:1,12). SGB boot ROMs embedded in binary (icd/boot-roms.cpp:1,12).
SGB1.sfc/SGB2.sfc are SGB cartridge ROMs (not boot ROMs). SGB1.sfc/SGB2.sfc are SGB cartridge ROMs (not boot ROMs).
HLE available for DSP1/2/4, ST010, CX4 — LLE firmware optional. HLE available for DSP1/1B/2/4, ST010, CX4 (default ON in libretro).
DSP3, ST011, ST018 have no HLE — LLE firmware required for those. DSP3, ST011, ST018 have no HLE.
Coprocessor firmware not loaded from system_dir in libretro wrapper;
ref: bsnes/sfc/coprocessor/icd/boot-roms.cpp:1,12 HLE used by default, LLE requires firmware embedded in ROM.
ref: bsnes/sfc/coprocessor/icd/icd.cpp:87,90 ref: sfc/cartridge/load.cpp:431,506,586
ref: bsnes/heuristics/super-famicom.cpp:115 ref: sfc/coprocessor/icd/icd.cpp:87,90
ref: target-libretro/libretro_core_options.h:462-470
files: files:
# Split DSP coprocessor firmware # NEC uPD7725 coprocessor firmware (DSP1/1B/2/3/4)
# code requests upd7725.program.rom / upd7725.data.rom internally
# .info conventional names used here
- name: dsp1.program.rom - name: dsp1.program.rom
system: nintendo-snes system: nintendo-snes
required: false required: false
hle_fallback: true hle_fallback: true
source_ref: "sfc/cartridge/load.cpp:490-494,506-513"
- name: dsp1.data.rom - name: dsp1.data.rom
system: nintendo-snes system: nintendo-snes
required: false required: false
hle_fallback: true hle_fallback: true
source_ref: "sfc/cartridge/load.cpp:498-503,506-513"
- name: dsp1b.program.rom - name: dsp1b.program.rom
system: nintendo-snes system: nintendo-snes
required: false required: false
hle_fallback: true hle_fallback: true
source_ref: "sfc/cartridge/load.cpp:490-494,506-513"
- name: dsp1b.data.rom - name: dsp1b.data.rom
system: nintendo-snes system: nintendo-snes
required: false required: false
hle_fallback: true hle_fallback: true
source_ref: "sfc/cartridge/load.cpp:498-503,506-513"
- name: dsp2.program.rom - name: dsp2.program.rom
system: nintendo-snes system: nintendo-snes
required: false required: false
hle_fallback: true hle_fallback: true
source_ref: "sfc/cartridge/load.cpp:490-494,515-520"
- name: dsp2.data.rom - name: dsp2.data.rom
system: nintendo-snes system: nintendo-snes
required: false required: false
hle_fallback: true hle_fallback: true
source_ref: "sfc/cartridge/load.cpp:498-503,515-520"
- name: dsp3.program.rom - name: dsp3.program.rom
system: nintendo-snes system: nintendo-snes
required: false required: false
note: "no HLE — required for SD Gundam GX" note: "no HLE — required for SD Gundam GX"
source_ref: "sfc/cartridge/load.cpp:490-494,531-534"
- name: dsp3.data.rom - name: dsp3.data.rom
system: nintendo-snes system: nintendo-snes
required: false required: false
note: "no HLE — required for SD Gundam GX"
source_ref: "sfc/cartridge/load.cpp:498-503,531-534"
- name: dsp4.program.rom - name: dsp4.program.rom
system: nintendo-snes system: nintendo-snes
required: false required: false
hle_fallback: true hle_fallback: true
source_ref: "sfc/cartridge/load.cpp:490-494,522-528"
- name: dsp4.data.rom - name: dsp4.data.rom
system: nintendo-snes system: nintendo-snes
required: false required: false
hle_fallback: true hle_fallback: true
source_ref: "sfc/cartridge/load.cpp:498-503,522-528"
# CX4 (Hitachi) # Hitachi HG51BS169 coprocessor (CX4)
# code requests hg51bs169.data.rom internally
- name: cx4.data.rom - name: cx4.data.rom
system: nintendo-snes system: nintendo-snes
required: false required: false
hle_fallback: true hle_fallback: true
size: 3072 size: 3072
note: "HLE available — LLE optional for Mega Man X2/X3" source_ref: "sfc/cartridge/load.cpp:431-454"
# Seta coprocessors # NEC uPD96050 coprocessor (ST010/ST011)
# code requests upd96050.program.rom / upd96050.data.rom internally
- name: st010.program.rom - name: st010.program.rom
system: nintendo-snes system: nintendo-snes
required: false required: false
hle_fallback: true hle_fallback: true
source_ref: "sfc/cartridge/load.cpp:570-574,586-596"
- name: st010.data.rom - name: st010.data.rom
system: nintendo-snes system: nintendo-snes
required: false required: false
hle_fallback: true hle_fallback: true
source_ref: "sfc/cartridge/load.cpp:578-583,586-596"
- name: st011.program.rom - name: st011.program.rom
system: nintendo-snes system: nintendo-snes
required: false required: false
note: "no HLE — required for Hayazashi Nidan Morita Shougi" note: "no HLE — required for Hayazashi Nidan Morita Shougi"
source_ref: "sfc/cartridge/load.cpp:570-574,599-602"
- name: st011.data.rom - name: st011.data.rom
system: nintendo-snes system: nintendo-snes
required: false required: false
note: "no HLE — required for Hayazashi Nidan Morita Shougi"
source_ref: "sfc/cartridge/load.cpp:578-583,599-602"
# ARM6 coprocessor (ST018)
# code requests arm6.program.rom / arm6.data.rom internally
- name: st018.program.rom - name: st018.program.rom
system: nintendo-snes system: nintendo-snes
required: false required: false
note: "no HLE — required for Hayazashi Nidan Morita Shougi 2" note: "no HLE — required for Hayazashi Nidan Morita Shougi 2"
source_ref: "sfc/cartridge/load.cpp:379-384"
- name: st018.data.rom - name: st018.data.rom
system: nintendo-snes system: nintendo-snes
required: false required: false
note: "no HLE — required for Hayazashi Nidan Morita Shougi 2"
source_ref: "sfc/cartridge/load.cpp:387-393"
# SGB cartridge ROMs (NOT boot ROMs — boot ROMs are embedded) # SGB cartridge ROMs (boot ROMs embedded in icd/boot-roms.cpp)
# sgb_bios variable set by core option bsnes_sgb_bios (libretro.cpp:280-285) # sgb_bios core option selects SGB1.sfc or SGB2.sfc (default: SGB1.sfc)
- name: SGB1.sfc - name: SGB1.sfc
system: nintendo-sgb system: nintendo-sgb
required: false required: false
md5: b15ddb15721c657d82c5bab6db982ee9 md5: b15ddb15721c657d82c5bab6db982ee9
note: "SGB1 cartridge ROM. Boot ROM embedded in icd/boot-roms.cpp:1" note: "SGB1 cartridge ROM. Boot ROM embedded in icd/boot-roms.cpp:1"
source_ref: "libretro.cpp:1022,1040" source_ref: "target-libretro/libretro.cpp:1022,1040"
- name: SGB2.sfc - name: SGB2.sfc
system: nintendo-sgb system: nintendo-sgb
required: false required: false
md5: 8ecd73eb4edf7ed7e81aef1be80031d5 md5: 8ecd73eb4edf7ed7e81aef1be80031d5
note: "SGB2 cartridge ROM. Boot ROM embedded in icd/boot-roms.cpp:12" note: "SGB2 cartridge ROM. Boot ROM embedded in icd/boot-roms.cpp:12"
source_ref: "libretro.cpp:1022,1040" source_ref: "target-libretro/libretro.cpp:1022,1040"
# Satellaview BIOS — required for .bs files # Satellaview BIOS
- name: BS-X.bin - name: BS-X.bin
system: nintendo-satellaview system: nintendo-satellaview
required: false required: false
note: "Satellaview BIOS. Required when loading .bs files. Core returns false if missing." note: "required when loading .bs files, core returns false if missing"
source_ref: "libretro.cpp:1054-1060" source_ref: "target-libretro/libretro.cpp:1054-1060"

View File

@@ -1,8 +1,9 @@
emulator: bsnes-mercury emulator: bsnes-mercury
type: libretro type: libretro
core_classification: enhanced_fork
source: "https://github.com/libretro/bsnes-mercury" source: "https://github.com/libretro/bsnes-mercury"
upstream: "https://github.com/bsnes-emu/bsnes" upstream: "https://byuu.org/higan"
profiled_date: "2026-03-18" profiled_date: "2026-03-23"
core_version: "v094 (Mercury)" core_version: "v094 (Mercury)"
display_name: "Nintendo - SNES / SFC (bsnes-mercury)" display_name: "Nintendo - SNES / SFC (bsnes-mercury)"
cores: [bsnes_mercury_accuracy, bsnes_mercury_balanced, bsnes_mercury_performance] cores: [bsnes_mercury_accuracy, bsnes_mercury_balanced, bsnes_mercury_performance]
@@ -13,100 +14,156 @@ systems:
- nintendo-sufami-turbo - nintendo-sufami-turbo
notes: | notes: |
bsnes-mercury is bsnes v094 with Mercury optimizations: HLE for DSP Fork of higan v094 by Alcaro. Restores HLE for coprocessor chips removed
and Hitachi coprocessors, firmware_appended support, overclocking. in v094, adds firmware_appended support and SuperFX overclocking.
Three profiles: accuracy, balanced, performance (PPU differs, not firmware). Three profiles: accuracy, balanced, performance (PPU differs, not firmware).
.info says performance has 17 fw (no cx4) but the code compiles CX4 LLE Core option bsnes_chip_hle (default LLE, requires bsnes_violate_accuracy)
in all profiles — cx4.data.rom works in performance too. The .info is wrong. controls HLE/LLE at runtime. ref: target-libretro/libretro.cpp:428-442
Core option bsnes_chip_hle (default LLE) controls HLE/LLE at runtime.
ref: target-libretro/libretro.cpp altImplementation(), "bsnes_chip_hle"
Same firmware loading as bsnes2014: system_dir via file::exists + Firmware loaded from system_dir via file::exists + mmapstream.
mmapstream. No BS-X auto-load from system_dir (subsystem only). No hash or size validation on any firmware file.
ref: target-libretro/libretro.cpp:245-254 ref: target-libretro/libretro.cpp:241-263
HLE fallback for DSP1/1B/2/4, Hitachi/CX4, ST010.
ref: sfc/cartridge/markup.cpp:351,404,618
firmware_appended: firmware can be appended to end of ROM file. firmware_appended: firmware can be appended to end of ROM file.
ref: ananke/heuristics/super-famicom.hpp:83 ref: ananke/heuristics/super-famicom.hpp:83
SGB boot ROM NOT embedded (sgb.boot.rom from system_dir). SPC700 IPL ROM (64 bytes) is embedded in the binary.
CX4 NOT embedded (cx4.data.rom from system_dir). ref: target-libretro/libretro.cpp:39
Upstream higan v094 by byuu (2014, site defunct). Mercury preserves v094
code with HLE additions documented in changes.diff at repo root.
files: files:
# Same 18 files as bsnes2014 accuracy — see bsnes2014.yml for details # --- NEC uPD7725 DSP chips (DSP1/1B/2/3/4) ---
# DSP1-4 split (program+data), CX4, ST010-018, sgb.boot.rom # ananke always generates dsp1b filenames for DSP-1 games (backward-compatible)
- name: dsp1.program.rom - name: dsp1.program.rom
system: nintendo-snes system: nintendo-snes
required: false required: false
size: 6144
hle_fallback: true hle_fallback: true
note: "only loaded via custom BML manifest, ananke uses dsp1b"
source_ref: "sfc/cartridge/markup.cpp:422-432"
- name: dsp1.data.rom - name: dsp1.data.rom
system: nintendo-snes system: nintendo-snes
required: false required: false
size: 2048
hle_fallback: true hle_fallback: true
note: "only loaded via custom BML manifest, ananke uses dsp1b"
source_ref: "sfc/cartridge/markup.cpp:422-432"
- name: dsp1b.program.rom - name: dsp1b.program.rom
system: nintendo-snes system: nintendo-snes
required: false required: false
size: 6144
hle_fallback: true hle_fallback: true
source_ref: "ananke/heuristics/super-famicom.hpp:381"
- name: dsp1b.data.rom - name: dsp1b.data.rom
system: nintendo-snes system: nintendo-snes
required: false required: false
size: 2048
hle_fallback: true hle_fallback: true
source_ref: "ananke/heuristics/super-famicom.hpp:382"
- name: dsp2.program.rom - name: dsp2.program.rom
system: nintendo-snes system: nintendo-snes
required: false required: false
size: 6144
hle_fallback: true hle_fallback: true
source_ref: "ananke/heuristics/super-famicom.hpp:403"
- name: dsp2.data.rom - name: dsp2.data.rom
system: nintendo-snes system: nintendo-snes
required: false required: false
size: 2048
hle_fallback: true hle_fallback: true
source_ref: "ananke/heuristics/super-famicom.hpp:404"
- name: dsp3.program.rom - name: dsp3.program.rom
system: nintendo-snes system: nintendo-snes
required: false required: false
note: "no HLE — required for SD Gundam GX" size: 6144
hle_fallback: true
source_ref: "ananke/heuristics/super-famicom.hpp:417"
- name: dsp3.data.rom - name: dsp3.data.rom
system: nintendo-snes system: nintendo-snes
required: false required: false
size: 2048
hle_fallback: true
source_ref: "ananke/heuristics/super-famicom.hpp:418"
- name: dsp4.program.rom - name: dsp4.program.rom
system: nintendo-snes system: nintendo-snes
required: false required: false
size: 6144
hle_fallback: true hle_fallback: true
source_ref: "ananke/heuristics/super-famicom.hpp:431"
- name: dsp4.data.rom - name: dsp4.data.rom
system: nintendo-snes system: nintendo-snes
required: false required: false
size: 2048
hle_fallback: true hle_fallback: true
source_ref: "ananke/heuristics/super-famicom.hpp:432"
# --- Hitachi HG51B (CX4) ---
- name: cx4.data.rom - name: cx4.data.rom
system: nintendo-snes system: nintendo-snes
required: false required: false
hle_fallback: true
size: 3072 size: 3072
note: "HLE available via Mercury — LLE optional" hle_fallback: true
source_ref: "ananke/heuristics/super-famicom.hpp:146" source_ref: "ananke/heuristics/super-famicom.hpp:146"
# --- NEC uPD96050 (ST010, ST011) ---
- name: st010.program.rom - name: st010.program.rom
system: nintendo-snes system: nintendo-snes
required: false required: false
size: 49152
hle_fallback: true hle_fallback: true
source_ref: "ananke/heuristics/super-famicom.hpp:445"
- name: st010.data.rom - name: st010.data.rom
system: nintendo-snes system: nintendo-snes
required: false required: false
size: 4096
hle_fallback: true hle_fallback: true
source_ref: "ananke/heuristics/super-famicom.hpp:446"
- name: st011.program.rom - name: st011.program.rom
system: nintendo-snes system: nintendo-snes
required: false required: false
note: "no HLE — required for Hayazashi Nidan Morita Shougi" size: 49152
source_ref: "ananke/heuristics/super-famicom.hpp:460"
- name: st011.data.rom - name: st011.data.rom
system: nintendo-snes system: nintendo-snes
required: false required: false
size: 4096
source_ref: "ananke/heuristics/super-famicom.hpp:461"
# --- ARM DSP (ST018) ---
- name: st018.program.rom - name: st018.program.rom
system: nintendo-snes system: nintendo-snes
required: false required: false
size: 131072
source_ref: "ananke/heuristics/super-famicom.hpp:475"
- name: st018.data.rom - name: st018.data.rom
system: nintendo-snes system: nintendo-snes
required: false required: false
size: 32768
source_ref: "ananke/heuristics/super-famicom.hpp:476"
# --- Super Game Boy ---
- name: sgb.boot.rom - name: sgb.boot.rom
system: nintendo-sgb system: nintendo-sgb
required: false required: false
size: 256 size: 256
note: "SGB boot ROM. NOT embedded in v094."
source_ref: "ananke/heuristics/super-famicom.hpp:133" source_ref: "ananke/heuristics/super-famicom.hpp:133"

View File

@@ -1,10 +1,13 @@
emulator: Cannonball emulator: Cannonball
type: standalone + libretro type: game
core_classification: game_engine
source: "https://github.com/libretro/cannonball" source: "https://github.com/libretro/cannonball"
upstream: "https://github.com/djyt/cannonball" upstream: "https://github.com/djyt/cannonball"
profiled_date: "2026-03-18" profiled_date: "2026-03-23"
core_version: "1.0" core_version: "1.0"
display_name: "Cannonball" display_name: "Cannonball"
cores:
- cannonball
systems: systems:
- sega-outrun - sega-outrun
@@ -26,8 +29,8 @@ notes: |
demand when the "Japanese Tracks" core option is enabled. demand when the "Japanese Tracks" core option is enabled.
Two optional widescreen tilemap patches are loaded from a res/ subdirectory Two optional widescreen tilemap patches are loaded from a res/ subdirectory
(src/main/engine/omusic.cpp:42-51). These are Cannonball-specific data files (src/main/engine/omusic.cpp:42-51). These are Cannonball-specific data files,
shipped with the core, not original arcade ROMs. not original arcade ROMs.
The fixed PCM sample variant (opr-10188.71f) replaces opr-10188.71 when the The fixed PCM sample variant (opr-10188.71f) replaces opr-10188.71 when the
"Fix Broken Samples" core option is enabled. "Fix Broken Samples" core option is enabled.
@@ -38,33 +41,42 @@ files:
# ------------------------------------------------------- # -------------------------------------------------------
- name: "epr-10381a.132" - name: "epr-10381a.132"
system: sega-outrun system: sega-outrun
category: game_data
required: true required: true
size: 65536 # 0x10000 size: 65536
crc32: "be8c412b" crc32: "be8c412b"
note: "Master 68K, high byte, upper bank (Rev A alternate)" validation: [crc32]
aliases: [epr-10381b.132]
note: "Master 68K, high byte, upper bank"
source_ref: "src/main/roms.cpp:29" source_ref: "src/main/roms.cpp:29"
- name: "epr-10383b.117" - name: "epr-10383b.117"
system: sega-outrun system: sega-outrun
category: game_data
required: true required: true
size: 65536 size: 65536
crc32: "10a2014a" crc32: "10a2014a"
validation: [crc32]
note: "Master 68K, low byte, upper bank" note: "Master 68K, low byte, upper bank"
source_ref: "src/main/roms.cpp:38" source_ref: "src/main/roms.cpp:38"
- name: "epr-10380b.133" - name: "epr-10380b.133"
system: sega-outrun system: sega-outrun
category: game_data
required: true required: true
size: 65536 size: 65536
crc32: "1f6cadad" crc32: "1f6cadad"
validation: [crc32]
note: "Master 68K, high byte, lower bank" note: "Master 68K, high byte, lower bank"
source_ref: "src/main/roms.cpp:39" source_ref: "src/main/roms.cpp:39"
- name: "epr-10382b.118" - name: "epr-10382b.118"
system: sega-outrun system: sega-outrun
category: game_data
required: true required: true
size: 65536 size: 65536
crc32: "c4c3fa1a" crc32: "c4c3fa1a"
validation: [crc32]
note: "Master 68K, low byte, lower bank" note: "Master 68K, low byte, lower bank"
source_ref: "src/main/roms.cpp:40" source_ref: "src/main/roms.cpp:40"
@@ -73,33 +85,41 @@ files:
# ------------------------------------------------------- # -------------------------------------------------------
- name: "epr-10327a.76" - name: "epr-10327a.76"
system: sega-outrun system: sega-outrun
category: game_data
required: true required: true
size: 65536 size: 65536
crc32: "e28a5baf" crc32: "e28a5baf"
validation: [crc32]
note: "Slave 68K, high byte, lower bank" note: "Slave 68K, high byte, lower bank"
source_ref: "src/main/roms.cpp:44" source_ref: "src/main/roms.cpp:44"
- name: "epr-10329a.58" - name: "epr-10329a.58"
system: sega-outrun system: sega-outrun
category: game_data
required: true required: true
size: 65536 size: 65536
crc32: "da131c81" crc32: "da131c81"
validation: [crc32]
note: "Slave 68K, low byte, lower bank" note: "Slave 68K, low byte, lower bank"
source_ref: "src/main/roms.cpp:45" source_ref: "src/main/roms.cpp:45"
- name: "epr-10328a.75" - name: "epr-10328a.75"
system: sega-outrun system: sega-outrun
category: game_data
required: true required: true
size: 65536 size: 65536
crc32: "d5ec5e5d" crc32: "d5ec5e5d"
validation: [crc32]
note: "Slave 68K, high byte, upper bank" note: "Slave 68K, high byte, upper bank"
source_ref: "src/main/roms.cpp:46" source_ref: "src/main/roms.cpp:46"
- name: "epr-10330a.57" - name: "epr-10330a.57"
system: sega-outrun system: sega-outrun
category: game_data
required: true required: true
size: 65536 size: 65536
crc32: "ba9ec82a" crc32: "ba9ec82a"
validation: [crc32]
note: "Slave 68K, low byte, upper bank" note: "Slave 68K, low byte, upper bank"
source_ref: "src/main/roms.cpp:47" source_ref: "src/main/roms.cpp:47"
@@ -108,49 +128,61 @@ files:
# ------------------------------------------------------- # -------------------------------------------------------
- name: "opr-10268.99" - name: "opr-10268.99"
system: sega-outrun system: sega-outrun
category: game_data
required: true required: true
size: 32768 # 0x8000 size: 32768
crc32: "95344b04" crc32: "95344b04"
validation: [crc32]
note: "Tile ROM bank 0" note: "Tile ROM bank 0"
source_ref: "src/main/roms.cpp:51" source_ref: "src/main/roms.cpp:51"
- name: "opr-10232.102" - name: "opr-10232.102"
system: sega-outrun system: sega-outrun
category: game_data
required: true required: true
size: 32768 size: 32768
crc32: "776ba1eb" crc32: "776ba1eb"
validation: [crc32]
note: "Tile ROM bank 1" note: "Tile ROM bank 1"
source_ref: "src/main/roms.cpp:52" source_ref: "src/main/roms.cpp:52"
- name: "opr-10267.100" - name: "opr-10267.100"
system: sega-outrun system: sega-outrun
category: game_data
required: true required: true
size: 32768 size: 32768
crc32: "a85bb823" crc32: "a85bb823"
validation: [crc32]
note: "Tile ROM bank 2" note: "Tile ROM bank 2"
source_ref: "src/main/roms.cpp:53" source_ref: "src/main/roms.cpp:53"
- name: "opr-10231.103" - name: "opr-10231.103"
system: sega-outrun system: sega-outrun
category: game_data
required: true required: true
size: 32768 size: 32768
crc32: "8908bcbf" crc32: "8908bcbf"
validation: [crc32]
note: "Tile ROM bank 3" note: "Tile ROM bank 3"
source_ref: "src/main/roms.cpp:54" source_ref: "src/main/roms.cpp:54"
- name: "opr-10266.101" - name: "opr-10266.101"
system: sega-outrun system: sega-outrun
category: game_data
required: true required: true
size: 32768 size: 32768
crc32: "9f6f1a74" crc32: "9f6f1a74"
validation: [crc32]
note: "Tile ROM bank 4" note: "Tile ROM bank 4"
source_ref: "src/main/roms.cpp:55" source_ref: "src/main/roms.cpp:55"
- name: "opr-10230.104" - name: "opr-10230.104"
system: sega-outrun system: sega-outrun
category: game_data
required: true required: true
size: 32768 size: 32768
crc32: "686f5e50" crc32: "686f5e50"
validation: [crc32]
note: "Tile ROM bank 5" note: "Tile ROM bank 5"
source_ref: "src/main/roms.cpp:56" source_ref: "src/main/roms.cpp:56"
@@ -159,17 +191,21 @@ files:
# ------------------------------------------------------- # -------------------------------------------------------
- name: "opr-10185.11" - name: "opr-10185.11"
system: sega-outrun system: sega-outrun
category: game_data
required: true required: true
size: 32768 size: 32768
crc32: "22794426" crc32: "22794426"
validation: [crc32]
note: "Road ROM, layer 1" note: "Road ROM, layer 1"
source_ref: "src/main/roms.cpp:60" source_ref: "src/main/roms.cpp:60"
- name: "opr-10186.47" - name: "opr-10186.47"
system: sega-outrun system: sega-outrun
category: game_data
required: true required: true
size: 32768 size: 32768
crc32: "22794426" crc32: "22794426"
validation: [crc32]
note: "Road ROM, layer 2 (identical to opr-10185.11)" note: "Road ROM, layer 2 (identical to opr-10185.11)"
source_ref: "src/main/roms.cpp:61" source_ref: "src/main/roms.cpp:61"
@@ -178,65 +214,81 @@ files:
# ------------------------------------------------------- # -------------------------------------------------------
- name: "mpr-10371.9" - name: "mpr-10371.9"
system: sega-outrun system: sega-outrun
category: game_data
required: true required: true
size: 131072 # 0x20000 size: 131072
crc32: "7cc86208" crc32: "7cc86208"
validation: [crc32]
note: "Sprite ROM, bank 0 byte 0" note: "Sprite ROM, bank 0 byte 0"
source_ref: "src/main/roms.cpp:65" source_ref: "src/main/roms.cpp:65"
- name: "mpr-10373.10" - name: "mpr-10373.10"
system: sega-outrun system: sega-outrun
category: game_data
required: true required: true
size: 131072 size: 131072
crc32: "b0d26ac9" crc32: "b0d26ac9"
validation: [crc32]
note: "Sprite ROM, bank 0 byte 1" note: "Sprite ROM, bank 0 byte 1"
source_ref: "src/main/roms.cpp:66" source_ref: "src/main/roms.cpp:66"
- name: "mpr-10375.11" - name: "mpr-10375.11"
system: sega-outrun system: sega-outrun
category: game_data
required: true required: true
size: 131072 size: 131072
crc32: "59b60bd7" crc32: "59b60bd7"
validation: [crc32]
note: "Sprite ROM, bank 0 byte 2" note: "Sprite ROM, bank 0 byte 2"
source_ref: "src/main/roms.cpp:67" source_ref: "src/main/roms.cpp:67"
- name: "mpr-10377.12" - name: "mpr-10377.12"
system: sega-outrun system: sega-outrun
category: game_data
required: true required: true
size: 131072 size: 131072
crc32: "17a1b04a" crc32: "17a1b04a"
validation: [crc32]
note: "Sprite ROM, bank 0 byte 3" note: "Sprite ROM, bank 0 byte 3"
source_ref: "src/main/roms.cpp:68" source_ref: "src/main/roms.cpp:68"
- name: "mpr-10372.13" - name: "mpr-10372.13"
system: sega-outrun system: sega-outrun
category: game_data
required: true required: true
size: 131072 size: 131072
crc32: "b557078c" crc32: "b557078c"
validation: [crc32]
note: "Sprite ROM, bank 1 byte 0" note: "Sprite ROM, bank 1 byte 0"
source_ref: "src/main/roms.cpp:69" source_ref: "src/main/roms.cpp:69"
- name: "mpr-10374.14" - name: "mpr-10374.14"
system: sega-outrun system: sega-outrun
category: game_data
required: true required: true
size: 131072 size: 131072
crc32: "8051e517" crc32: "8051e517"
validation: [crc32]
note: "Sprite ROM, bank 1 byte 1" note: "Sprite ROM, bank 1 byte 1"
source_ref: "src/main/roms.cpp:70" source_ref: "src/main/roms.cpp:70"
- name: "mpr-10376.15" - name: "mpr-10376.15"
system: sega-outrun system: sega-outrun
category: game_data
required: true required: true
size: 131072 size: 131072
crc32: "f3b8f318" crc32: "f3b8f318"
validation: [crc32]
note: "Sprite ROM, bank 1 byte 2" note: "Sprite ROM, bank 1 byte 2"
source_ref: "src/main/roms.cpp:71" source_ref: "src/main/roms.cpp:71"
- name: "mpr-10378.16" - name: "mpr-10378.16"
system: sega-outrun system: sega-outrun
category: game_data
required: true required: true
size: 131072 size: 131072
crc32: "a1062984" crc32: "a1062984"
validation: [crc32]
note: "Sprite ROM, bank 1 byte 3" note: "Sprite ROM, bank 1 byte 3"
source_ref: "src/main/roms.cpp:72" source_ref: "src/main/roms.cpp:72"
@@ -245,9 +297,11 @@ files:
# ------------------------------------------------------- # -------------------------------------------------------
- name: "epr-10187.88" - name: "epr-10187.88"
system: sega-outrun system: sega-outrun
category: game_data
required: true required: true
size: 65536 # 0x10000 size: 32768
crc32: "a10abaa9" crc32: "a10abaa9"
validation: [crc32]
note: "Z80 sound program" note: "Z80 sound program"
source_ref: "src/main/roms.cpp:76" source_ref: "src/main/roms.cpp:76"
@@ -256,134 +310,173 @@ files:
# ------------------------------------------------------- # -------------------------------------------------------
- name: "opr-10193.66" - name: "opr-10193.66"
system: sega-outrun system: sega-outrun
category: game_data
required: true required: true
size: 32768 size: 32768
crc32: "bcd10dde" crc32: "bcd10dde"
validation: [crc32]
note: "PCM sample bank 0" note: "PCM sample bank 0"
source_ref: "src/main/roms.cpp:80" source_ref: "src/main/roms.cpp:80"
- name: "opr-10192.67" - name: "opr-10192.67"
system: sega-outrun system: sega-outrun
category: game_data
required: true required: true
size: 32768 size: 32768
crc32: "770f1270" crc32: "770f1270"
validation: [crc32]
note: "PCM sample bank 1" note: "PCM sample bank 1"
source_ref: "src/main/roms.cpp:81" source_ref: "src/main/roms.cpp:81"
- name: "opr-10191.68" - name: "opr-10191.68"
system: sega-outrun system: sega-outrun
category: game_data
required: true required: true
size: 32768 size: 32768
crc32: "20a284ab" crc32: "20a284ab"
validation: [crc32]
note: "PCM sample bank 2" note: "PCM sample bank 2"
source_ref: "src/main/roms.cpp:82" source_ref: "src/main/roms.cpp:82"
- name: "opr-10190.69" - name: "opr-10190.69"
system: sega-outrun system: sega-outrun
category: game_data
required: true required: true
size: 32768 size: 32768
crc32: "7cab70e2" crc32: "7cab70e2"
validation: [crc32]
note: "PCM sample bank 3" note: "PCM sample bank 3"
source_ref: "src/main/roms.cpp:83" source_ref: "src/main/roms.cpp:83"
- name: "opr-10189.70" - name: "opr-10189.70"
system: sega-outrun system: sega-outrun
category: game_data
required: true required: true
size: 32768 size: 32768
crc32: "01366b54" crc32: "01366b54"
validation: [crc32]
note: "PCM sample bank 4" note: "PCM sample bank 4"
source_ref: "src/main/roms.cpp:84" source_ref: "src/main/roms.cpp:84"
- name: "opr-10188.71" - name: "opr-10188.71"
system: sega-outrun system: sega-outrun
category: game_data
required: true required: true
size: 32768 size: 32768
crc32: "bad30ad9" crc32: "bad30ad9"
validation: [crc32]
note: "PCM sample bank 5" note: "PCM sample bank 5"
source_ref: "src/main/roms.cpp:85" source_ref: "src/main/roms.cpp:85"
# ------------------------------------------------------- # -------------------------------------------------------
# Alternate / optional ROMs # Optional: fixed PCM sample
# ------------------------------------------------------- # -------------------------------------------------------
- name: "epr-10381b.132"
system: sega-outrun
required: false
size: 65536
crc32: "be8c412b"
note: "Master 68K, Rev B alternate filename for epr-10381a.132"
source_ref: "src/main/roms.cpp:34"
- name: "opr-10188.71f" - name: "opr-10188.71f"
system: sega-outrun system: sega-outrun
category: game_data
required: false required: false
size: 32768 size: 32768
crc32: "37598616" crc32: "37598616"
validation: [crc32]
note: "PCM sample bank 5, fixed version (replaces opr-10188.71)" note: "PCM sample bank 5, fixed version (replaces opr-10188.71)"
source_ref: "src/main/roms.cpp:123" source_ref: "src/main/roms.cpp:123"
# -------------------------------------------------------
# Optional: widescreen tilemap patches
# -------------------------------------------------------
- name: "res/tilemap.bin"
system: sega-outrun
category: game_data
required: false
note: "Widescreen tilemap patch, Cannonball-specific"
source_ref: "src/main/engine/omusic.cpp:42-44"
- name: "res/tilepatch.bin"
system: sega-outrun
category: game_data
required: false
note: "Widescreen tile patch, Cannonball-specific"
source_ref: "src/main/engine/omusic.cpp:49-51"
# ------------------------------------------------------- # -------------------------------------------------------
# Japanese ROM variants (loaded when jap option enabled) # Japanese ROM variants (loaded when jap option enabled)
# ------------------------------------------------------- # -------------------------------------------------------
- name: "epr-10380.133" - name: "epr-10380.133"
system: sega-outrun system: sega-outrun
category: game_data
required: false required: false
size: 65536 size: 65536
crc32: "e339e87a" crc32: "e339e87a"
validation: [crc32]
note: "Master 68K Japan, high byte, lower bank" note: "Master 68K Japan, high byte, lower bank"
source_ref: "src/main/roms.cpp:104" source_ref: "src/main/roms.cpp:104"
- name: "epr-10382.118" - name: "epr-10382.118"
system: sega-outrun system: sega-outrun
category: game_data
required: false required: false
size: 65536 size: 65536
crc32: "65248dd5" crc32: "65248dd5"
validation: [crc32]
note: "Master 68K Japan, low byte, lower bank" note: "Master 68K Japan, low byte, lower bank"
source_ref: "src/main/roms.cpp:105" source_ref: "src/main/roms.cpp:105"
- name: "epr-10381.132" - name: "epr-10381.132"
system: sega-outrun system: sega-outrun
category: game_data
required: false required: false
size: 65536 size: 65536
crc32: "be8c412b" crc32: "be8c412b"
validation: [crc32]
note: "Master 68K Japan, high byte, upper bank" note: "Master 68K Japan, high byte, upper bank"
source_ref: "src/main/roms.cpp:106" source_ref: "src/main/roms.cpp:106"
- name: "epr-10383.117" - name: "epr-10383.117"
system: sega-outrun system: sega-outrun
category: game_data
required: false required: false
size: 65536 size: 65536
crc32: "dcc586e7" crc32: "dcc586e7"
validation: [crc32]
note: "Master 68K Japan, low byte, upper bank" note: "Master 68K Japan, low byte, upper bank"
source_ref: "src/main/roms.cpp:107" source_ref: "src/main/roms.cpp:107"
- name: "epr-10327.76" - name: "epr-10327.76"
system: sega-outrun system: sega-outrun
category: game_data
required: false required: false
size: 65536 size: 65536
crc32: "da99d855" crc32: "da99d855"
validation: [crc32]
note: "Slave 68K Japan, high byte, lower bank" note: "Slave 68K Japan, high byte, lower bank"
source_ref: "src/main/roms.cpp:110" source_ref: "src/main/roms.cpp:110"
- name: "epr-10329.58" - name: "epr-10329.58"
system: sega-outrun system: sega-outrun
category: game_data
required: false required: false
size: 65536 size: 65536
crc32: "fe0fa5e2" crc32: "fe0fa5e2"
validation: [crc32]
note: "Slave 68K Japan, low byte, lower bank" note: "Slave 68K Japan, low byte, lower bank"
source_ref: "src/main/roms.cpp:111" source_ref: "src/main/roms.cpp:111"
- name: "epr-10328.75" - name: "epr-10328.75"
system: sega-outrun system: sega-outrun
category: game_data
required: false required: false
size: 65536 size: 65536
crc32: "3c0e9a7f" crc32: "3c0e9a7f"
validation: [crc32]
note: "Slave 68K Japan, high byte, upper bank" note: "Slave 68K Japan, high byte, upper bank"
source_ref: "src/main/roms.cpp:112" source_ref: "src/main/roms.cpp:112"
- name: "epr-10330.57" - name: "epr-10330.57"
system: sega-outrun system: sega-outrun
category: game_data
required: false required: false
size: 65536 size: 65536
crc32: "59786e99" crc32: "59786e99"
validation: [crc32]
note: "Slave 68K Japan, low byte, upper bank" note: "Slave 68K Japan, low byte, upper bank"
source_ref: "src/main/roms.cpp:113" source_ref: "src/main/roms.cpp:113"

View File

@@ -1,8 +1,9 @@
emulator: Caprice32 emulator: Caprice32
type: standalone + libretro type: standalone + libretro
core_classification: community_fork
source: "https://github.com/libretro/libretro-cap32" source: "https://github.com/libretro/libretro-cap32"
upstream: "https://github.com/ColinPitrat/caprice32" upstream: "https://github.com/ColinPitrat/caprice32"
profiled_date: "2026-03-18" profiled_date: "2026-03-23"
core_version: "v4.2.0" core_version: "v4.2.0"
display_name: "Amstrad - CPC/GX4000 (Caprice32)" display_name: "Amstrad - CPC/GX4000 (Caprice32)"
cores: cores:
@@ -78,14 +79,16 @@ files:
system: amstrad-cpc system: amstrad-cpc
required: false required: false
mode: standalone mode: standalone
size: 131156
note: "CPC+ system cartridge" note: "CPC+ system cartridge"
source_ref: "caprice32/rom/system.cpr" source_ref: "caprice32/rom/system.cpr"
- name: MF2.rom - name: MF2.rom
system: amstrad-cpc system: amstrad-cpc
required: false required: false
mode: standalone mode: standalone
size: 8192
note: "Multiface 2 ROM" note: "Multiface 2 ROM"
source_ref: "caprice32/rom/MF2.rom" source_ref: "caprice32/rom/MF2.rom, caprice32/src/cap32.cpp:1244-1263"
platform_details: platform_details:
bios_mapping: bios_mapping:

View File

@@ -1,8 +1,9 @@
emulator: CDi 2015 emulator: CDi 2015
type: libretro type: libretro
core_classification: frozen_snapshot
source: "https://github.com/libretro/mame2015-libretro" source: "https://github.com/libretro/mame2015-libretro"
upstream: "https://github.com/mamedev/mame" upstream: "https://github.com/mamedev/mame/tree/mame0160"
profiled_date: "2026-03-18" profiled_date: "2026-03-23"
core_version: "0.160" core_version: "0.160"
display_name: "Philips CDi (CDi 2015)" display_name: "Philips CDi (CDi 2015)"
cores: [cdi2015] cores: [cdi2015]
@@ -10,26 +11,23 @@ systems:
- philips-cdi - philips-cdi
notes: | notes: |
MAME 0.160 compiled with SUBTARGET=cdi (CDi driver only). MAME 0.160 compiled with SUBTARGET=cdi, only cdimono1 driver.
ref: libretro-super/rules.d/core-rules.sh — SUBTARGET=cdi Checks cdimono1.zip existence in system_dir, then game dir. Returns -2 if missing.
source: libretro/mame2015-libretro cdic.bin and slave.bin are undumped 68HC05 MCUs (NO_DUMP), not in the ZIP.
Loads cdimono1.zip from system_dir.
ref: src/osd/retro/retromain.c:1989 —
sprintf(tmp_dir, "%s%ccdimono1.zip", retro_system_directory, slash)
If not found as ZIP, falls back to system_dir as rompath.
ref: src/osd/retro/retromain.c:1991
ROM_START(cdimono1) in src/mame/drivers/cdi.c:421 defines:
cdi200.rom (0x80000, CRC 279683ca, SHA1 53360a1f21ddac952e95306ced64186a3fc0b93e)
cdic.bin (MCU, undumped)
slave.bin (MCU, undumped)
The ZIP contains the MAME romset for cdimono1 — user provides it.
files: files:
- name: cdimono1.zip - name: cdimono1.zip
system: philips-cdi system: philips-cdi
required: true required: true
note: "MAME cdimono1 romset ZIP. Contains cdi200.rom + MCU dumps." category: bios_zip
source_ref: "src/osd/retro/retromain.c:1989, src/mame/drivers/cdi.c:421" source_ref: "src/osd/retro/retromain.c:1989, src/mame/drivers/cdi.c:421"
validation: [crc32, sha1]
contents:
- name: cdi200.rom
description: Magnavox CD-i 200 BIOS (default)
size: 524288
crc32: 40c4e6b9
- name: cdi220b.rom
description: Philips CD-i 220 F2 BIOS (alternate)
size: 524288
crc32: 279683ca

View File

@@ -1,14 +1,16 @@
emulator: ChaiLove emulator: ChaiLove
type: game type: game
core_classification: game_engine
source: "https://github.com/libretro/libretro-chailove" source: "https://github.com/libretro/libretro-chailove"
profiled_date: "2026-03-18" upstream: "https://github.com/libretro/libretro-chailove"
profiled_date: "2026-03-23"
core_version: "2.0.0" core_version: "2.0.0"
display_name: "ChaiLove" display_name: "ChaiLove"
cores: [chailove] cores: [chailove]
systems: [] systems: []
files: [] files: []
notes: > notes: >
2D game framework for libretro inspired by LOVE2D, using ChaiScript. 2D game framework for libretro using ChaiScript, inspired by LOVE2D.
Loads .chai or .chailove game files as content. The core itself is a Game engine runtime that loads .chai/.chailove game files as content.
game engine runtime with no system directory dependencies. Mounts system_dir at /libretro/system via PhysFS for game scripts,
No BIOS, firmware, or system directory files required. but the core itself requires no external files.

View File

@@ -1,29 +1,47 @@
emulator: ChimeraSNES emulator: ChimeraSNES
type: libretro type: libretro
core_classification: community_fork
source: "https://github.com/jamsilva/chimerasnes" source: "https://github.com/jamsilva/chimerasnes"
upstream: "https://github.com/snes9xgit/snes9x" upstream: "https://github.com/snes9xgit/snes9x"
profiled_date: "2026-03-18" profiled_date: "2026-03-23"
core_version: "" core_version: ""
display_name: "Nintendo - SNES / SFC (ChimeraSNES)" display_name: "Nintendo - SNES / SFC (ChimeraSNES)"
cores: [chimerasnes] cores: [chimerasnes]
systems: systems:
- nintendo-snes - nintendo-snes
- nintendo-satellaview
- nintendo-sufami-turbo
notes: | notes: |
Fork of Snes9x ~2005, optimized for slow hardware. Based on multiple snes9x forks (uosnes, snes9x2005), optimized for slow hardware.
NOT identical to snes9x — different firmware behavior. All coprocessor data (DSP1-4, CX4, SuperFX, SA-1, SPC7110, OBC1) is HLE with
embedded ROM tables. No external coprocessor firmware needed.
BS-X BIOS loading controlled by core option chimerasnes_bsx_bios (default: skip).
retro_load_game_special() returns false (no subsystem support).
.info firmware_count absent (= 0), under-declares: code loads 2 files.
All coprocessor data is HLE with static ROM tables embedded: files:
DSP1: DSP1ROM[1024] in source/dsp1.c:6 - name: "BS-X.bin"
DSP3: DSP3_DataROM[1024] in source/dsp3.c:7 system: nintendo-satellaview
No external DSP/ST/CX4 firmware files needed. description: "Satellaview BS-X BIOS"
required: false
size: 1048576
source_ref: "source/bsx.c:857-882"
aliases: ["BS-X.bios"]
validation: [size]
notes: |
Loaded by BSX_LoadBIOS() from system_dir when core option
chimerasnes_bsx_bios is set to 'load' (default: skip).
Tries BS-X.bin first, then BS-X.bios as fallback.
Size must be BIOS_SIZE (0x100000). Many BS-X games run without it.
BS-X: path constructed in source/bsx.c:873 as romdir/BS-X.bios - name: "STBIOS.bin"
(relative to ROM directory, NOT system_dir). No system: nintendo-sufami-turbo
RETRO_ENVIRONMENT_GET_SYSTEM_DIRECTORY for firmware loading. description: "Sufami Turbo BIOS"
required: true
firmware_count absent in .info (= 0). Confirmed in source. size: 262144
source_ref: "source/memmap.c:275-289"
files: [] notes: |
# all coprocessors HLE with embedded data Loaded by LoadSFTBIOS() from system_dir when Sufami Turbo game
# BS-X.bios loaded from ROM directory, not system_dir detected (BANDAI SFC-ADX header at ROM offset 0, memmap.c:833).
Reads 0x40000 bytes into Memory.ROM. No validation performed.

View File

@@ -1,8 +1,9 @@
emulator: Citra 2018 emulator: Citra 2018
type: libretro type: libretro
core_classification: frozen_snapshot
source: "https://github.com/libretro/citra2018" source: "https://github.com/libretro/citra2018"
upstream: "https://github.com/citra-emu/citra" upstream: "https://github.com/citra-emu/citra"
profiled_date: "2026-03-18" profiled_date: "2026-03-23"
core_version: "Git" core_version: "Git"
display_name: "Nintendo - 3DS (Citra 2018)" display_name: "Nintendo - 3DS (Citra 2018)"
cores: [citra2018] cores: [citra2018]
@@ -10,35 +11,25 @@ systems:
- nintendo-3ds - nintendo-3ds
notes: | notes: |
Citra 2018 is a 2018 snapshot of the Citra 3DS emulator. Frozen 2018 snapshot of the Citra 3DS emulator.
Older than current Azahar/Citra — fewer firmware files. Loads files from {system_dir}/Citra/sysdata/.
Data dir: citra-emu (not azahar-emu). ref: src/citra_libretro/citra_libretro.cpp:317, src/common/common_paths.h:24
ref: src/common/common_paths.h:24
Uses RETRO_ENVIRONMENT_GET_SYSTEM_DIRECTORY. Embedded open-source replacement font in archive_ncch.cpp.
ref: src/citra_libretro/environment.cpp:107 ref: src/core/file_sys/archive_ncch.cpp:134-146
Loads from sysdata/: firmware_count absent in .info (= 0). Both files are optional.
aes_keys.txt (not keys.txt like current Citra)
shared_font.bin
ref: src/core/hw/aes/key.cpp:72-73, src/core/hle/service/apt/apt.cpp:174
Does NOT load (added in later versions):
boot9.bin, sector0x96.bin, seeddb.bin, otp.bin,
movable.sed, SecureInfo_A, LocalFriendCodeSeed_B
firmware_count absent in .info (= 0). Files are optional (HLE).
files: files:
- name: aes_keys.txt - name: aes_keys.txt
system: nintendo-3ds system: nintendo-3ds
required: false required: false
note: "AES encryption keys (named aes_keys.txt, not keys.txt like current Citra)" note: "AES encryption keys for decrypting 3DS content"
source_ref: "src/core/hw/aes/key.cpp:72-73" source_ref: "src/core/hw/aes/key.cpp:72-76"
- name: shared_font.bin - name: shared_font.bin
system: nintendo-3ds system: nintendo-3ds
required: false required: false
hle_fallback: true hle_fallback: true
note: "system shared font, HLE fallback if missing" note: "system shared font, falls back to embedded open-source replacement"
source_ref: "src/core/hle/service/apt/apt.cpp:174" source_ref: "src/core/hle/service/apt/apt.cpp:168-183"

View File

@@ -1,8 +1,9 @@
emulator: Citra Canary emulator: Citra Canary
type: libretro type: libretro
core_classification: community_fork
source: "https://github.com/libretro/citra" source: "https://github.com/libretro/citra"
upstream: "https://github.com/citra-emu/citra" upstream: "https://github.com/citra-emu/citra"
profiled_date: "2026-03-18" profiled_date: "2026-03-23"
core_version: "Git" core_version: "Git"
display_name: "Nintendo - 3DS (Citra Canary/Experimental)" display_name: "Nintendo - 3DS (Citra Canary/Experimental)"
cores: [citra_canary] cores: [citra_canary]
@@ -10,54 +11,30 @@ systems:
- nintendo-3ds - nintendo-3ds
notes: | notes: |
Same repo as citra (libretro/citra master branch). Canary = experimental. Canary branch of libretro/citra. Older codebase than master branch (citra core).
Data dir: citra-emu (not azahar-emu — this is pre-Azahar Citra). Missing boot9.bin, sector0x96.bin, seeddb.bin support present in master.
ref: src/common/common_paths.h Seed crypto unimplemented (src/core/file_sys/ncch_container.cpp:169).
Upstream citra-emu/citra taken down March 2024 (Nintendo lawsuit).
Mirror: https://github.com/citra-mirror/citra
Key file: aes_keys.txt (NOT keys.txt like Azahar). Data dir: {system_dir}/Citra/sysdata/
ref: src/common/common_paths.h:68 ref: src/citra_libretro/citra_libretro.cpp:305-314
Uses RETRO_ENVIRONMENT_GET_SYSTEM_DIRECTORY. Embedded open-source replacements for shared font, country list, bad word list.
ref: src/citra_libretro/environment.cpp:149 ref: src/core/file_sys/archive_ncch.cpp:142-147
Files in sysdata/: firmware_count absent in .info (= 0).
aes_keys.txt — AES encryption keys (common_paths.h:68)
boot9.bin — ARM9 bootrom (common_paths.h:69)
sector0x96.bin — secret NAND sector (common_paths.h:70)
shared_font.bin — system shared font, HLE fallback (common_paths.h:67)
seeddb.bin — game seed database (file_sys/seed_db.cpp:15)
NOTE: citra.yml profiles Azahar which uses keys.txt (not aes_keys.txt).
This core uses the pre-Azahar naming convention.
files: files:
- name: aes_keys.txt - name: aes_keys.txt
system: nintendo-3ds system: nintendo-3ds
required: false required: false
note: "AES keys (named aes_keys.txt in pre-Azahar Citra)" note: "AES encryption keys for decrypting 3DS content"
source_ref: "src/common/common_paths.h:68, src/core/hw/aes/key.cpp" source_ref: "src/core/hw/aes/key.cpp:71-131"
- name: boot9.bin
system: nintendo-3ds
required: false
note: "ARM9 bootrom for key derivation"
source_ref: "src/common/common_paths.h:69"
- name: sector0x96.bin
system: nintendo-3ds
required: false
note: "OTP-encrypted NAND sector for key derivation"
source_ref: "src/common/common_paths.h:70"
- name: shared_font.bin - name: shared_font.bin
system: nintendo-3ds system: nintendo-3ds
required: false required: false
hle_fallback: true hle_fallback: true
note: "system shared font, HLE fallback if missing" note: "system shared font, falls back to embedded open-source replacement"
source_ref: "src/common/common_paths.h:67" source_ref: "src/core/hle/service/apt/apt.cpp:168-200"
- name: seeddb.bin
system: nintendo-3ds
required: false
note: "game seed database for seed-encrypted games (9.6+ titles)"
source_ref: "src/core/file_sys/seed_db.cpp:15"

View File

@@ -1,8 +1,10 @@
emulator: DoubleCherryGB emulator: DoubleCherryGB
type: libretro type: libretro
core_classification: enhanced_fork
source: "https://github.com/TimOelrichs/doublecherryGB-libretro" source: "https://github.com/TimOelrichs/doublecherryGB-libretro"
profiled_date: "2026-03-18" upstream: "https://github.com/libertyernie/tgbdual"
core_version: "v0.17.0" profiled_date: "2026-03-22"
core_version: "v0.18.1"
display_name: "Nintendo - Game Boy / Color (DoubleCherryGB)" display_name: "Nintendo - Game Boy / Color (DoubleCherryGB)"
cores: cores:
- DoubleCherryGB - DoubleCherryGB
@@ -11,23 +13,13 @@ systems:
- nintendo-gbc - nintendo-gbc
notes: | notes: |
DoubleCherryGB is a Game Boy / Game Boy Color emulator forked from TGB Dual Game Boy / Game Boy Color emulator forked from TGB Dual (Hii, 2000-2004)
by GIGO and Hii. It adds multi-Game Boy emulation with virtual link cable via the libretro port tgbdual. Adds multi-Game Boy emulation with link
support for up to 16 players, DMG-07 4-Player Adapter emulation, and cable support for up to 16 players, DMG-07 4-Player Adapter emulation,
built-in Pokemon distribution events. infrared peripherals, and built-in Pokemon distribution events.
No BIOS or boot ROM files are required or supported. The core does not No boot ROM support. cpu::reset() sets PC=0x100 and post-boot register
call RETRO_ENVIRONMENT_GET_SYSTEM_DIRECTORY for firmware loading and does values directly (AF=0x01B0 DMG, 0x11B0 CGB). The core does not access
not attempt to open any files from the system directory. the system directory and loads no external firmware files.
In cpu.cpp:82, the program counter is initialized to 0x100 (post-boot ROM
entry point), and cpu::reset() sets all registers to their post-boot
values directly (AF=0x01B0 for DMG, 0x11B0 for CGB). This means the
core completely bypasses the boot ROM sequence via HLE register setup.
The .info file at libretro-core-info confirms no firmware entries.
Supported extensions: gb, dmg, gbc, cgb, sgb.
Library version: v0.18.0.
files: [] files: []

View File

@@ -3,7 +3,7 @@ type: libretro
core_classification: official_port core_classification: official_port
source: "https://github.com/libretro/FBNeo" source: "https://github.com/libretro/FBNeo"
upstream: "https://github.com/finalburnneo/FBNeo" upstream: "https://github.com/finalburnneo/FBNeo"
profiled_date: "2026-03-21" profiled_date: "2026-03-22"
core_version: "v1.0.0.03" core_version: "v1.0.0.03"
display_name: "Arcade (FinalBurn Neo) (CPS-1 / CPS-2)" display_name: "Arcade (FinalBurn Neo) (CPS-1 / CPS-2)"
cores: cores:
@@ -25,8 +25,7 @@ notes: |
Board PLDs (buf1, ioa1, prg1/prg2, rom1, sou1) are BRF_OPT — GAL/PAL Board PLDs (buf1, ioa1, prg1/prg2, rom1, sou1) are BRF_OPT — GAL/PAL
dumps for hardware preservation, never loaded by the emulator. dumps for hardware preservation, never loaded by the emulator.
CPS-1/CPS-2 have no system BIOS. hiscore.dat enables persistent high hiscore.dat enables persistent high scores across all arcade games.
scores across all arcade games.
ROM path: game ZIPs loaded from content directory. ROM path: game ZIPs loaded from content directory.
system/fbneo/ used for hiscore.dat, samples, cheats, blend files, IPS patches. system/fbneo/ used for hiscore.dat, samples, cheats, blend files, IPS patches.

View File

@@ -1,39 +1,28 @@
emulator: "FreeIntv (Touchscreen Overlay)" emulator: "FreeIntv (Touchscreen Overlay)"
type: libretro type: alias
source: "https://github.com/libretro/FreeIntv" core_classification: alias
profiled_date: "2026-03-18" source: "https://github.com/jcarr71/FreeIntvTSOverlay"
core_version: "v2025.11.1" upstream: "https://github.com/libretro/FreeIntv"
display_name: "Mattel Intellivision (FreeIntvTSOverlay)" profiled_date: "2026-03-22"
core_version: "1.2"
display_name: "Mattel - Intellivision (FreeIntvTSOverlay)"
cores: cores:
- freeintv - freeintv
systems: systems:
- intellivision - intellivision
notes: | notes: |
Same repo and core as FreeIntv. The touchscreen overlay feature is a Alias of FreeIntv. The jcarr71/FreeIntvTSOverlay fork is 100% identical
compile-time option within the same codebase, not a separate core. The to libretro/FreeIntv (zero diff). Jason Carr's overlay work was merged
library_name is "freeintv" (src/libretro.c:1413), identical to the upstream. The Makefile produces freeintv_libretro (TARGET_NAME = freeintv),
non-overlay build. and library_name is "freeintv" (src/libretro.c:1413).
The overlay system adds an onscreen interactive keypad for touchscreen The FreeIntvTSOverlay_libretro.info in libretro-core-info has errors:
and mouse input. It is toggled via core option freeintv_multiscreen_overlay wrong overlay directory (claims FreeIntvTS_Overlays, code uses
(src/libretro_core_options.h:82-85). When enabled, the display splits into freeintv_overlays), wrong dimensions (claims 300x670, code uses 370x600),
game + keypad side-by-side (multi-screen mode). phantom external PNG files (controller_base.png, default.png,
button_swapscreen.png are either embedded in C headers or nonexistent),
Visual assets (controller base frame, banner, default keypad image) are and firmware1 key typos (uses firmware0_path/firmware0_opt).
compiled into the binary from C headers: banner.h, keypad_frame_graphic.h,
default_keypad_image.h. These are NOT files the user needs to provide.
ROM-specific overlays are optional 370x600 PNG files placed by the user in
system/freeintv_overlays/<rom_name>.png. These are cosmetic per-game keypad
images loaded via stbi_load() (src/libretro.c:273). Core falls back to
embedded default_keypad_image.h if no per-game overlay found.
90 overlays available in Assets/Overlays.zip in the core repo.
Not on RetroArch buildbot — sourced from core repo via _data_dirs.yml.
BIOS loading is unchanged from the base FreeIntv core. retro_load_game()
(src/libretro.c:1169-1174) loads exec.bin and grom.bin from the system
directory with no variation based on overlay mode.
bios_identical_to: freeintv bios_identical_to: freeintv
@@ -47,7 +36,7 @@ files:
required: true required: true
size: 8192 size: 8192
md5: 62e761035cb657903761800f4437b8af md5: 62e761035cb657903761800f4437b8af
note: "Executive ROM. Same file as base FreeIntv." note: "Executive ROM."
source_ref: "src/intv.c:47-71, src/libretro.c:1169" source_ref: "src/intv.c:47-71, src/libretro.c:1169"
- name: "grom.bin" - name: "grom.bin"
@@ -55,5 +44,5 @@ files:
required: true required: true
size: 2048 size: 2048
md5: 0cd5946c6473e42e8e4c2137785e427f md5: 0cd5946c6473e42e8e4c2137785e427f
note: "Graphics ROM. Same file as base FreeIntv." note: "Graphics ROM."
source_ref: "src/intv.c:73-98, src/libretro.c:1173" source_ref: "src/intv.c:73-98, src/libretro.c:1173"