mirror of
https://github.com/Abdess/retroarch_system.git
synced 2026-04-15 21:32:32 -05:00
feat: add 12 batocera standalone profiles, update 3 existing
New profiles: citron (Switch), clk (multi-system), demul (Hikaru), eka2l1 (Symbian/N-Gage), gsplus (Apple IIGS), lexaloffle (PICO-8), openmsx (MSX), ryujinx (Switch), shadps4 (PS4), tsugaru (FM Towns), x16emu (Commander X16), xroar (Dragon/CoCo), zc210 (Zelda Classic). Updated: amiberry, fsuae (standalone Amiga), ymir (Saturn standalone).
This commit is contained in:
@@ -3,8 +3,8 @@ type: standalone + libretro
|
||||
core_classification: official_port
|
||||
source: "https://github.com/BlitterStudio/amiberry"
|
||||
upstream: "https://github.com/tonioni/WinUAE"
|
||||
profiled_date: "2026-03-25"
|
||||
core_version: "v8.1.1"
|
||||
profiled_date: "2026-03-26"
|
||||
core_version: "v8.1.2"
|
||||
display_name: "Commodore - Amiga (Amiberry)"
|
||||
cores: [amiberry]
|
||||
systems:
|
||||
@@ -17,45 +17,60 @@ notes: |
|
||||
and libretro core. No built-in kickstart — requires a real Kickstart ROM or
|
||||
external AROS replacement files (aros-ext.bin + aros-rom.bin).
|
||||
|
||||
Core option "amiberry_kickstart" overrides ROM selection: auto, kick.rom,
|
||||
kick13.rom, kick20.rom, kick31.rom, kick205.rom, kick40068.A1200,
|
||||
Libretro core option "amiberry_kickstart" overrides ROM selection: auto,
|
||||
kick.rom, kick13.rom, kick20.rom, kick31.rom, kick205.rom, kick40068.A1200,
|
||||
kick40068.A4000, cd32.rom, cdtv.rom. "auto" selects per model.
|
||||
ref: libretro/libretro.cpp:558,621-640
|
||||
|
||||
Default model is A500 (KS 1.3). ROM search directories:
|
||||
save_dir/Kickstarts, system_dir/Kickstarts, system_dir/save-data/Kickstarts,
|
||||
then system_dir as fallback.
|
||||
ref: libretro/libretro.cpp:2740-2756
|
||||
Libretro ROM search directories (in order): save_dir/Kickstarts,
|
||||
system_dir/Kickstarts, system_dir/save-data/Kickstarts, system_dir.
|
||||
ref: libretro/libretro.cpp:2722-2742
|
||||
|
||||
Standalone ROM path: configurable via amiberry.conf "rom_path" setting.
|
||||
Batocera sets this to /userdata/bios/amiga/. Fallback search order:
|
||||
{home_dir}/roms/kick.rom, {home_dir}/kick.rom, ../shared/rom/kick.rom,
|
||||
../System/rom/kick.rom, then ROM database guess.
|
||||
ref: src/memory.cpp:2030-2072
|
||||
|
||||
ROM identification uses SHA1 against WinUAE database (340+ entries) but does
|
||||
not reject unknown ROMs. Cloanto encrypted ROMs supported with rom.key.
|
||||
ref: src/rommgr.cpp:111-1100,1731-1787
|
||||
|
||||
Munt MT-32/CM-32L emulation compiled in (WITH_MIDIEMU). ROMs loaded from
|
||||
mt32-roms/ subdirectory of the ROM path.
|
||||
ref: src/midiemu.cpp:120-157
|
||||
mt32-roms/ subdirectory of the ROM path. Split ROM pairs supported
|
||||
(e.g. pcm_mt32_l.rom + pcm_mt32_h.rom).
|
||||
ref: src/midiemu.cpp:82-157
|
||||
|
||||
WHDLoad autoboot requires whdboot/ directory in system_dir with boot-data.zip,
|
||||
WHDLoad, AmiQuit, JST, whdload_db.xml. These ship with the standalone build
|
||||
but must be obtained separately for the libretro core.
|
||||
ref: libretro/libretro.cpp:1151-1184
|
||||
Keyboard MCU emulation (keyboard_mode setting) loads MCU ROMs via ROM
|
||||
database scanning. Three MCU types supported: 6570-036 (A500/A600/A1000),
|
||||
68HC05 (A1200), D8039HLC (A2000).
|
||||
ref: src/kbmcu/keyboard_mcu_6500_1.cpp:385, keyboard_mcu_6805.cpp:544,
|
||||
keyboard_mcu_d8039hlc.cpp:235
|
||||
|
||||
WHDLoad autoboot requires whdboot/ directory with boot-data.zip, WHDLoad,
|
||||
AmiQuit, JST, whdload_db.xml. These ship with the standalone build but must
|
||||
be obtained separately for the libretro core.
|
||||
ref: src/osdep/amiberry_whdbooter.cpp:1380-1565
|
||||
|
||||
files:
|
||||
# --- Kickstart ROMs (searched by find_kickstart_in_system_dir) ---
|
||||
# ref: libretro/libretro.cpp:1502-1565
|
||||
# --- Kickstart ROMs ---
|
||||
# Libretro: find_kickstart_in_system_dir() with per-model candidate lists
|
||||
# Standalone: get_kickstart_filehandle() with ROM database + config
|
||||
# ref: libretro/libretro.cpp:1503-1566, src/memory.cpp:2030-2072
|
||||
|
||||
- name: kick13.rom
|
||||
system: commodore-amiga
|
||||
required: true
|
||||
size: 262144
|
||||
note: "A500 Kickstart v1.3 rev 34.005, default for A500 model"
|
||||
source_ref: "libretro/libretro.cpp:1516 candidates_a500"
|
||||
source_ref: "libretro/libretro.cpp:1517 candidates_a500"
|
||||
|
||||
- name: kick12.rom
|
||||
system: commodore-amiga
|
||||
required: false
|
||||
size: 262144
|
||||
note: "A500 Kickstart v1.2 rev 33.180, for A500OG model"
|
||||
source_ref: "libretro/libretro.cpp:1515 candidates_a500og"
|
||||
source_ref: "libretro/libretro.cpp:1516 candidates_a500og"
|
||||
|
||||
- name: kick20.rom
|
||||
system: commodore-amiga
|
||||
@@ -63,41 +78,41 @@ files:
|
||||
size: 524288
|
||||
aliases: [kick204.rom]
|
||||
note: "A500+ Kickstart v2.04 rev 37.175"
|
||||
source_ref: "libretro/libretro.cpp:1517 candidates_a500p"
|
||||
source_ref: "libretro/libretro.cpp:1518 candidates_a500p"
|
||||
|
||||
- name: kick205.rom
|
||||
system: commodore-amiga
|
||||
required: false
|
||||
size: 524288
|
||||
note: "A600 Kickstart v2.05 rev 37.350, also used for WHDLoad"
|
||||
source_ref: "libretro/libretro.cpp:1518 candidates_a600, 1479 pick_whdload_kickstart"
|
||||
source_ref: "libretro/libretro.cpp:1519 candidates_a600"
|
||||
|
||||
- name: kick31.rom
|
||||
system: commodore-amiga
|
||||
required: false
|
||||
size: 524288
|
||||
note: "Kickstart v3.1 (generic), first candidate for A1200 and A4000"
|
||||
source_ref: "libretro/libretro.cpp:1519-1520 candidates_a1200/a4000"
|
||||
source_ref: "libretro/libretro.cpp:1520-1521 candidates_a1200/a4000"
|
||||
|
||||
- name: kick40068.A1200
|
||||
system: commodore-amiga
|
||||
required: false
|
||||
size: 524288
|
||||
note: "A1200 Kickstart v3.1 rev 40.68, fallback after kick31.rom"
|
||||
source_ref: "libretro/libretro.cpp:1519 candidates_a1200"
|
||||
source_ref: "libretro/libretro.cpp:1520 candidates_a1200"
|
||||
|
||||
- name: kick40068.A4000
|
||||
system: commodore-amiga
|
||||
required: false
|
||||
size: 524288
|
||||
note: "A4000 Kickstart v3.1 rev 40.68, fallback after kick31.rom"
|
||||
source_ref: "libretro/libretro.cpp:1520 candidates_a4000"
|
||||
source_ref: "libretro/libretro.cpp:1521 candidates_a4000"
|
||||
|
||||
- name: kick.rom
|
||||
system: commodore-amiga
|
||||
required: false
|
||||
note: "Generic name, any Kickstart ROM. Last resort fallback for all models."
|
||||
source_ref: "libretro/libretro.cpp:1510-1521 last in all candidate lists"
|
||||
source_ref: "libretro/libretro.cpp:1510-1522 last in all candidate lists"
|
||||
|
||||
# --- CD32 ROMs ---
|
||||
|
||||
@@ -107,7 +122,7 @@ files:
|
||||
size: 524288
|
||||
aliases: [amiga-os-310-cd32.rom, kick40060.CD32]
|
||||
note: "CD32 Kickstart v3.1 rev 40.60"
|
||||
source_ref: "libretro/libretro.cpp:1521 candidates_cd32"
|
||||
source_ref: "libretro/libretro.cpp:1522 candidates_cd32"
|
||||
|
||||
- name: cd32ext.rom
|
||||
system: commodore-cd32
|
||||
@@ -115,7 +130,7 @@ files:
|
||||
size: 524288
|
||||
aliases: [amiga-ext-310-cd32.rom, "CD32 Extended.ROM"]
|
||||
note: "CD32 extended ROM rev 40.60. Not needed if using a combined 1MB ROM."
|
||||
source_ref: "libretro/libretro.cpp:1579 candidates_cd32 (find_ext_rom_in_system_dir)"
|
||||
source_ref: "libretro/libretro.cpp:1580 candidates_cd32 (find_ext_rom_in_system_dir)"
|
||||
|
||||
# --- CDTV ROMs ---
|
||||
|
||||
@@ -124,17 +139,17 @@ files:
|
||||
required: false
|
||||
aliases: [kick34005.CDTV]
|
||||
note: "CDTV extended ROM v1.00, used as kickstart candidate"
|
||||
source_ref: "libretro/libretro.cpp:1522 candidates_cdtv"
|
||||
source_ref: "libretro/libretro.cpp:1523 candidates_cdtv"
|
||||
|
||||
- name: cdtvext.rom
|
||||
system: commodore-cdtv
|
||||
required: false
|
||||
aliases: ["CDTV Extended.ROM"]
|
||||
note: "CDTV extended ROM file"
|
||||
source_ref: "libretro/libretro.cpp:1581 candidates_cdtv (find_ext_rom_in_system_dir)"
|
||||
source_ref: "libretro/libretro.cpp:1582 candidates_cdtv (find_ext_rom_in_system_dir)"
|
||||
|
||||
# --- AROS replacement ROMs ---
|
||||
# ref: src/memory.cpp:1871-1930 load_kickstart_replacement
|
||||
# ref: src/memory.cpp:1871-1954 load_kickstart_replacement
|
||||
|
||||
- name: aros-ext.bin
|
||||
system: commodore-amiga
|
||||
@@ -156,36 +171,78 @@ files:
|
||||
system: commodore-amiga
|
||||
required: false
|
||||
note: "Decryption key for Cloanto Amiga Forever encrypted ROMs"
|
||||
source_ref: "src/rommgr.cpp:1738 AMIROMTYPE1 decryption"
|
||||
source_ref: "src/rommgr.cpp:1444-1525 load_keyring"
|
||||
|
||||
# --- Keyboard MCU ROMs ---
|
||||
# Loaded when keyboard_mode is set to MCU emulation.
|
||||
# Found via ROM database scanning (SHA1/CRC32 identification).
|
||||
# ref: src/kbmcu/keyboard_mcu_*.cpp
|
||||
|
||||
- name: "6570-036.rom"
|
||||
system: commodore-amiga
|
||||
required: false
|
||||
size: 2048
|
||||
note: "6500-1/6570-036 keyboard MCU ROM for A500/A600/A1000 models"
|
||||
source_ref: "src/kbmcu/keyboard_mcu_6500_1.cpp:385-408 keymcu_reset, src/rommgr.cpp:126 ROM ID 321"
|
||||
|
||||
- name: "68HC05.rom"
|
||||
system: commodore-amiga
|
||||
required: false
|
||||
size: 8192
|
||||
note: "68HC05 keyboard MCU ROM for A1200"
|
||||
source_ref: "src/kbmcu/keyboard_mcu_6805.cpp:544-567 keymcu2_reset, src/rommgr.cpp:128 ROM ID 322"
|
||||
|
||||
- name: "D8039HLC.rom"
|
||||
system: commodore-amiga
|
||||
required: false
|
||||
size: 2048
|
||||
note: "D8039HLC keyboard MCU ROM for A2000"
|
||||
source_ref: "src/kbmcu/keyboard_mcu_d8039hlc.cpp:235-258 keymcu3_reset, src/rommgr.cpp:130 ROM ID 323"
|
||||
|
||||
# --- Munt MT-32/CM-32L MIDI ROMs ---
|
||||
# Located in mt32-roms/ subdirectory of the ROM path
|
||||
# ref: src/midiemu.cpp:120-157 midi_emu_add_roms
|
||||
# Located in mt32-roms/ subdirectory of the ROM path.
|
||||
# Code appends .rom extension and tries uppercase .ROM as fallback.
|
||||
# Split ROM pairs (e.g. pcm_mt32_l.rom + pcm_mt32_h.rom) also supported.
|
||||
# ref: src/midiemu.cpp:82-157 midi_emu_add_roms
|
||||
|
||||
- name: mt32-roms/mt32_control.rom
|
||||
system: commodore-amiga
|
||||
required: false
|
||||
aliases: [mt32-roms/ctrl_mt32.rom, mt32-roms/MT32_CONTROL.rom]
|
||||
aliases:
|
||||
- mt32-roms/ctrl_mt32.rom
|
||||
- mt32-roms/ctrl_mt32_1_07.rom
|
||||
- mt32-roms/ctrl_mt32_1_06.rom
|
||||
- mt32-roms/ctrl_mt32_1_05.rom
|
||||
- mt32-roms/ctrl_mt32_1_04.rom
|
||||
- mt32-roms/ctrl_mt32_bluer.rom
|
||||
- mt32-roms/ctrl_mt32_2_04.rom
|
||||
- mt32-roms/ctrl_mt32_2_07.rom
|
||||
- mt32-roms/ctrl_mt32_2_06.rom
|
||||
- mt32-roms/ctrl_mt32_2_03.rom
|
||||
note: "Roland MT-32 control ROM for Munt MIDI emulation"
|
||||
source_ref: "src/midiemu.cpp:38-61 mt32ctl candidates, 151-156 load loop"
|
||||
source_ref: "src/midiemu.cpp:38-62 mt32ctl candidates, 151-156 load loop"
|
||||
|
||||
- name: mt32-roms/pcm_mt32.rom
|
||||
system: commodore-amiga
|
||||
required: false
|
||||
aliases: [mt32-roms/mt32_pcm.rom, mt32-roms/MT32_PCM.rom, mt32-roms/PCM_MT32.rom]
|
||||
aliases: [mt32-roms/mt32_pcm.rom]
|
||||
note: "Roland MT-32 PCM ROM for Munt MIDI emulation"
|
||||
source_ref: "src/midiemu.cpp:133-140 MT-32 PCM loading"
|
||||
|
||||
- name: mt32-roms/cm32l_control.rom
|
||||
system: commodore-amiga
|
||||
required: false
|
||||
aliases: [mt32-roms/ctrl_cm32l.rom, mt32-roms/CM32L_CONTROL.rom]
|
||||
aliases:
|
||||
- mt32-roms/ctrl_cm32l.rom
|
||||
- mt32-roms/ctrl_cm32ln_1_00.rom
|
||||
- mt32-roms/ctrl_cm32l_1_02.rom
|
||||
- mt32-roms/ctrl_cm32l_1_00.rom
|
||||
note: "Roland CM-32L control ROM for Munt MIDI emulation"
|
||||
source_ref: "src/midiemu.cpp:25-37 cm32lctl candidates, 151-156 load loop"
|
||||
|
||||
- name: mt32-roms/pcm_cm32l.rom
|
||||
system: commodore-amiga
|
||||
required: false
|
||||
aliases: [mt32-roms/cm32l_pcm.rom, mt32-roms/PCM_CM32L.rom, mt32-roms/CM32L_PCM.rom]
|
||||
aliases: [mt32-roms/cm32l_pcm.rom]
|
||||
note: "Roland CM-32L PCM ROM for Munt MIDI emulation"
|
||||
source_ref: "src/midiemu.cpp:142-149 CM-32L PCM loading"
|
||||
|
||||
55
emulators/citron.yml
Normal file
55
emulators/citron.yml
Normal file
@@ -0,0 +1,55 @@
|
||||
emulator: Citron
|
||||
type: standalone
|
||||
core_classification: community_fork
|
||||
source: "https://git.citron-emu.org/citron-emu/Citron"
|
||||
upstream: "https://git.citron-emu.org/citron-emu/Citron"
|
||||
profiled_date: "2026-03-26"
|
||||
core_version: "2026.03.12"
|
||||
display_name: "Citron (Nintendo Switch)"
|
||||
systems: [nintendo-switch]
|
||||
analysis_date: "2026-03-26"
|
||||
analysis_commit: "79dee42 (depth=1)"
|
||||
mode: standalone
|
||||
|
||||
# Citron is a community fork of yuzu, continued by Zephyron after yuzu's takedown.
|
||||
# Key files loaded from <data_dir>/keys/ (fs_paths.h:18, path_util.cpp:124).
|
||||
# On Linux: $XDG_DATA_HOME/citron/keys/
|
||||
# On Batocera: XDG_DATA_HOME=/userdata/saves/switch → /userdata/saves/switch/citron/keys/
|
||||
# Firmware NCAs are installed into NAND via UI (main.cpp:1808), not placed as files.
|
||||
# HLE fallbacks exist for fonts, timezone, system version, mii model, ng word lists.
|
||||
|
||||
files:
|
||||
- name: "prod.keys"
|
||||
required: true
|
||||
path: "switch/"
|
||||
mode: standalone
|
||||
note: "Production keys for NCA decryption (master, key area, header, titlekek)"
|
||||
source_ref: "src/core/crypto/key_manager.cpp:655-656"
|
||||
|
||||
- name: "title.keys"
|
||||
required: false
|
||||
path: "switch/"
|
||||
mode: standalone
|
||||
note: "Per-title encryption keys (rights_id to titlekey mappings)"
|
||||
source_ref: "src/core/crypto/key_manager.cpp:659-660"
|
||||
|
||||
- name: "console.keys"
|
||||
required: false
|
||||
path: "switch/"
|
||||
mode: standalone
|
||||
note: "Console-specific keys (BIS, SD seed)"
|
||||
source_ref: "src/core/crypto/key_manager.cpp:661-662"
|
||||
|
||||
- name: "key_retail.bin"
|
||||
required: false
|
||||
path: "switch/"
|
||||
size: 160
|
||||
mode: standalone
|
||||
note: "Amiibo decryption keys (two InternalKey structs, 0x50 bytes each)"
|
||||
source_ref: "src/core/hle/service/nfc/common/amiibo_crypto.cpp:274-292"
|
||||
|
||||
notes: |
|
||||
Citron is a standalone Nintendo Switch emulator, community fork of yuzu by Zephyron.
|
||||
dev.keys can be used instead of prod.keys when use_dev_keys is enabled (for Switch dev units).
|
||||
Firmware (system NCAs) must be installed through Citron's UI from a firmware ZIP or NCA files.
|
||||
Required for commercial games. Homebrew (.nro, .nso) can run without keys or firmware.
|
||||
157
emulators/demul.yml
Normal file
157
emulators/demul.yml
Normal file
@@ -0,0 +1,157 @@
|
||||
emulator: Demul
|
||||
type: standalone
|
||||
upstream: "https://demul.emulation64.com"
|
||||
profiled_date: "2026-03-26"
|
||||
core_version: "0.7"
|
||||
display_name: "Sega - Dreamcast/NAOMI/Hikaru (Demul)"
|
||||
cores:
|
||||
- demul
|
||||
systems:
|
||||
- sega-dreamcast
|
||||
- sega-naomi
|
||||
- sega-naomi2
|
||||
- sega-hikaru
|
||||
- sammy-atomiswave
|
||||
- sega-system-sp
|
||||
- gaelco-powervr
|
||||
- cave-cv1000
|
||||
|
||||
notes: |
|
||||
Closed-source Windows emulator for Sega Dreamcast and related arcade hardware.
|
||||
Run via Wine (32-bit, win32 prefix) on Linux platforms (Batocera, RetroBat).
|
||||
Uses MAME ROM naming conventions for arcade BIOS archives.
|
||||
|
||||
Batocera configgen (demulGenerator.py) maps roms0 to the BIOS directory.
|
||||
All BIOS ZIPs are placed directly in bios/ (no subdirectory prefix).
|
||||
Demul searches configured ROM paths for both game ROMs and BIOS archives.
|
||||
|
||||
Gaelco PowerVR and Cave CV1000 (3rd gen) games are self-contained ROM sets
|
||||
and do not require separate BIOS archives.
|
||||
|
||||
HLE MIE emulation available (changelog: "full HLE MIE" mode). LLE mode
|
||||
requires mie.zip with the 315-6146 MCU firmware.
|
||||
|
||||
Supported launch modes via -run= parameter:
|
||||
dc, naomi, naomi2, hikaru, atomiswave, gaelco, cave3rd, segasp.
|
||||
|
||||
BIOS requirements verified against Batocera configgen, batocera-systems
|
||||
declarations, MAME ROM set conventions, and community documentation.
|
||||
No source code available for direct verification.
|
||||
|
||||
files:
|
||||
# -------------------------------------------------------
|
||||
# Sega Dreamcast
|
||||
# -------------------------------------------------------
|
||||
- name: dc_boot.bin
|
||||
system: sega-dreamcast
|
||||
required: true
|
||||
size: 2097152
|
||||
note: "Dreamcast boot ROM (2 MB). No HLE fallback in Demul."
|
||||
|
||||
- name: dc_flash.bin
|
||||
system: sega-dreamcast
|
||||
required: false
|
||||
size: 131072
|
||||
note: "Dreamcast flash memory (128 KB). Created by emulator if missing."
|
||||
|
||||
# -------------------------------------------------------
|
||||
# Sega NAOMI
|
||||
# -------------------------------------------------------
|
||||
- name: naomi.zip
|
||||
system: sega-naomi
|
||||
required: true
|
||||
category: bios_zip
|
||||
note: >
|
||||
NAOMI system BIOS archive (MAME format). Contains region-specific
|
||||
BIOS ROMs (EPR-21576 Japan, EPR-21577 USA, EPR-21578 Export,
|
||||
EPR-21579 Korea) plus development and special BIOS variants.
|
||||
|
||||
- name: naomigd.zip
|
||||
system: sega-naomi
|
||||
required: false
|
||||
category: bios_zip
|
||||
note: "NAOMI GD-ROM BIOS. Shares ROMs with naomi.zip (subset of region BIOS variants)."
|
||||
|
||||
- name: hod2bios.zip
|
||||
system: sega-naomi
|
||||
required: false
|
||||
category: bios_zip
|
||||
note: "House of the Dead 2 game-specific BIOS. Japan/USA/Export variants."
|
||||
|
||||
- name: f355bios.zip
|
||||
system: sega-naomi
|
||||
required: false
|
||||
category: bios_zip
|
||||
note: "Ferrari F355 Challenge game-specific BIOS. Japan/USA/Export variants."
|
||||
|
||||
- name: f355dlx.zip
|
||||
system: sega-naomi
|
||||
required: false
|
||||
category: bios_zip
|
||||
note: "Ferrari F355 Challenge Deluxe game-specific BIOS. Japan/USA/Export variants."
|
||||
|
||||
- name: airlbios.zip
|
||||
system: sega-naomi
|
||||
required: false
|
||||
category: bios_zip
|
||||
note: "Airline Pilots Deluxe game-specific BIOS. USA/Export variants."
|
||||
|
||||
# -------------------------------------------------------
|
||||
# Sega NAOMI 2
|
||||
# -------------------------------------------------------
|
||||
- name: naomi2.zip
|
||||
system: sega-naomi2
|
||||
required: true
|
||||
category: bios_zip
|
||||
note: >
|
||||
NAOMI 2 system BIOS archive (MAME format). Contains region-specific
|
||||
BIOS ROMs (EPR-23605 Japan, EPR-23607 USA, EPR-23608 Export,
|
||||
EPR-23609 Korea, EPR-23610 Australia).
|
||||
|
||||
# -------------------------------------------------------
|
||||
# Sega Hikaru
|
||||
# -------------------------------------------------------
|
||||
- name: hikaru.zip
|
||||
system: sega-hikaru
|
||||
required: true
|
||||
category: bios_zip
|
||||
note: >
|
||||
Hikaru system BIOS archive (MAME format). Contains EPR-23400a (latest),
|
||||
EPR-23400, EPR-21904 (early), prot_bot (dev/prototype). All 2 MB at IC94.
|
||||
|
||||
# -------------------------------------------------------
|
||||
# Sammy Atomiswave
|
||||
# -------------------------------------------------------
|
||||
- name: awbios.zip
|
||||
system: sammy-atomiswave
|
||||
required: true
|
||||
category: bios_zip
|
||||
note: "Atomiswave system BIOS archive (MAME format). Contains bios0.ic23 and bios1.ic23 (128 KB each)."
|
||||
|
||||
# -------------------------------------------------------
|
||||
# Sega System SP
|
||||
# -------------------------------------------------------
|
||||
- name: segasp.zip
|
||||
system: sega-system-sp
|
||||
required: true
|
||||
category: bios_zip
|
||||
note: >
|
||||
System SP (Aurora/Spider) BIOS archive (MAME format). Contains
|
||||
EPR-24236a, EPR-24328/a BIOS ROMs, serial EEPROM, and network
|
||||
firmware variants.
|
||||
|
||||
# -------------------------------------------------------
|
||||
# Device ROMs (NAOMI / NAOMI 2 / Hikaru)
|
||||
# -------------------------------------------------------
|
||||
- name: mie.zip
|
||||
required: false
|
||||
hle_fallback: true
|
||||
category: bios_zip
|
||||
note: "MIE (Maple-JVS bridge) Z80 MCU firmware (315-6146.bin). HLE mode available; LLE mode requires this archive."
|
||||
|
||||
- name: jvs13551.zip
|
||||
required: true
|
||||
category: bios_zip
|
||||
note: >
|
||||
Sega 837-13551 JVS I/O board firmware. Contains sp5001.bin,
|
||||
sp5001-a.bin, sp5001-b.bin, sp5002-a.bin, 315-6215.bin.
|
||||
53
emulators/eka2l1.yml
Normal file
53
emulators/eka2l1.yml
Normal file
@@ -0,0 +1,53 @@
|
||||
emulator: eka2l1
|
||||
type: standalone
|
||||
source: "https://github.com/EKA2L1/EKA2L1"
|
||||
upstream: "https://github.com/EKA2L1/EKA2L1"
|
||||
profiled_date: "2026-03-26"
|
||||
core_version: "continuous"
|
||||
display_name: "EKA2L1 (Symbian OS / N-Gage)"
|
||||
cores:
|
||||
- eka2l1
|
||||
systems:
|
||||
- ngage
|
||||
analysis_date: "2026-03-26"
|
||||
analysis_commit: "e67f84d (depth=1)"
|
||||
mode: standalone
|
||||
|
||||
# EKA2L1 emulates Symbian OS kernel and reimplements critical app servers and
|
||||
# libraries. Supports S60v1 through Symbian Belle, including N-Gage 1.0/2.0.
|
||||
#
|
||||
# Each phone model requires its own ROM dump identified by firmware code.
|
||||
# ROM path at runtime: {storage}/roms/{firmware_code_lowercase}/SYM.ROM
|
||||
# Storage defaults to data/ relative to executable.
|
||||
#
|
||||
# Device installation (GUI or CLI) processes ROM dumps:
|
||||
# - Raw .rom files → copied to roms/{firmcode}/SYM.ROM
|
||||
# - RPKG files → extracted to drives/z/{firmcode}/ (system partition)
|
||||
# - VPL firmware packages → extracted to roms/ and drives/
|
||||
#
|
||||
# drives/z/{firmcode}/ content is generated during installation, not
|
||||
# user-placed. drives/c/, drives/d/, drives/e/ are runtime storage.
|
||||
#
|
||||
# Firmware codes for N-Gage systems:
|
||||
# NEM-4 = Nokia N-Gage (original, S60v1)
|
||||
# RH-29 = Nokia N-Gage QD (S60v1)
|
||||
# For N-Gage 2.0 games, a S60v3 phone ROM is needed (e.g., RM-409 = 5320 XpressMusic).
|
||||
#
|
||||
# No libretro core exists. No .info file.
|
||||
# resources/ files (shaders, soundfonts, gamecontrollerdb.txt) ship with the
|
||||
# emulator distribution, not user-supplied.
|
||||
|
||||
notes: |
|
||||
Pure standalone Symbian OS / N-Gage emulator. No libretro core.
|
||||
Requires phone ROM dumps (SYM.ROM) obtained from real Nokia devices.
|
||||
The emulator supports 100+ Nokia phone models (NEM-4, RH-29, RM-409, etc.).
|
||||
No hash or size validation on the ROM file; the loader parses the ROM structure.
|
||||
Batocera maps the ngage system to eka2l1 in configgen-defaults.yml.
|
||||
No dedicated Batocera configgen generator exists.
|
||||
|
||||
files:
|
||||
- name: "SYM.ROM"
|
||||
required: true
|
||||
mode: standalone
|
||||
description: "Symbian OS phone ROM dump. One per device, placed in roms/{firmware_code}/ subdirectory."
|
||||
source_ref: "src/emu/system/src/epoc.cpp:1225,754-759, src/emu/system/include/system/consts.h:23-25"
|
||||
@@ -1,10 +1,10 @@
|
||||
emulator: FS-UAE
|
||||
type: libretro
|
||||
type: standalone + libretro
|
||||
core_classification: community_fork
|
||||
source: "https://github.com/libretro/libretro-fsuae"
|
||||
upstream: "https://github.com/FrodeSolheim/fs-uae"
|
||||
profiled_date: "2026-03-23"
|
||||
core_version: "v2.7.15"
|
||||
profiled_date: "2026-03-26"
|
||||
core_version: "v5.0.7"
|
||||
display_name: "Commodore - Amiga (FS-UAE)"
|
||||
cores:
|
||||
- fsuae
|
||||
@@ -14,122 +14,143 @@ systems:
|
||||
notes: |
|
||||
FS-UAE is an Amiga emulator by Frode Solheim, based on UAE/WinUAE.
|
||||
|
||||
ROMs loaded from save_dir/fsuae/Kickstarts/ (not system_dir).
|
||||
base_dir = RETRO_ENVIRONMENT_GET_SAVE_DIRECTORY/fsuae (paths.c:197).
|
||||
Also scans base_dir/AmigaForever/Amiga Files/Shared/rom/ (config.c:129-135).
|
||||
Scans for .rom and .bin files. Identification by SHA-1 checksum, not filename.
|
||||
AROS kickstart (512 KB) bundled in fs-uae.dat as fallback for all models.
|
||||
rom.key enables decryption of Cloanto Amiga Forever encrypted ROMs.
|
||||
Standalone: scans --kickstarts_dir for .rom/.bin files (default: Documents/FS-UAE/Kickstarts/).
|
||||
Batocera overrides to bios/amiga/ via --kickstarts_dir (fsuaePaths.py:8, fsuaeGenerator.py:68).
|
||||
Libretro port: scans save_dir/fsuae/Kickstarts/ (frozen at v2.7.15).
|
||||
Identification by SHA-1 checksum, not filename (rommgr.cpp:92-151, romservice.py:78-91).
|
||||
AROS kickstart (1 MB) compiled into binary as fallback for all models (rommgr.cpp:112).
|
||||
rom.key searched in kickstart dir and multiple fallback paths (rommgr.cpp:1397-1498).
|
||||
|
||||
Supported models: A1000, A500, A500+, A600, A1200, A3000, A4000, CD32, CDTV.
|
||||
Default model is A500 (config.c:42). Each model auto-selects its kickstart
|
||||
via quickstart mechanism (cfgfile.c:7111-7154, config.c:140).
|
||||
Supported models: A1000, A500, A500+, A600, A1200, A3000, A4000, A4000T, CD32, CDTV.
|
||||
Default model is A500. Each model auto-selects its kickstart via quickstart
|
||||
mechanism (cfgfile.cpp:9468-9517 for A500, cfgfile.cpp:9732-9791 for dispatch).
|
||||
|
||||
The .info declares firmware_count=0. All ROMs are auto-discovered by
|
||||
directory scan, not by explicit filename lookup.
|
||||
|
||||
Libretro port is frozen at v2.7.15. Upstream ROM database is larger (3030
|
||||
vs 1980 lines in rommgr). Core functionality equivalent for standard models.
|
||||
ROM database shared between standalone and libretro (same WinUAE-derived rommgr.cpp).
|
||||
Upstream v5.0.7 has a larger database (332 vs ~200 ROM IDs in libretro port).
|
||||
Also supports Arcadia, ALG, freezer cartridges, SCSI/CPU board ROMs when configured.
|
||||
|
||||
files:
|
||||
- name: "amiga-os-130.rom"
|
||||
system: amiga
|
||||
required: false
|
||||
hle_fallback: true
|
||||
size: 262144
|
||||
sha1: "891e9a547772fe0c6c19b610baf8bc4ea7fcb785"
|
||||
validation: [sha1]
|
||||
mode: both
|
||||
note: "Amiga 500 Kickstart 1.3 r34.5. Default model ROM."
|
||||
source_ref: "sources/src/rommgr.c:141-142 (id=6, ROMTYPE_KICK)"
|
||||
source_ref: "rommgr.cpp:150-151 (id=6, ROMTYPE_KICK)"
|
||||
|
||||
- name: "amiga-os-204.rom"
|
||||
system: amiga
|
||||
required: false
|
||||
hle_fallback: true
|
||||
size: 524288
|
||||
sha1: "c5839f5cb98a7a8947065c3ed2f14f5f42e334a1"
|
||||
validation: [sha1]
|
||||
mode: both
|
||||
note: "Amiga 500+ Kickstart 2.04 r37.175."
|
||||
source_ref: "sources/src/rommgr.c:149-150 (id=7, ROMTYPE_KICK)"
|
||||
source_ref: "rommgr.cpp:158-159 (id=7, ROMTYPE_KICK)"
|
||||
|
||||
- name: "amiga-os-205.rom"
|
||||
system: amiga
|
||||
required: false
|
||||
hle_fallback: true
|
||||
size: 524288
|
||||
sha1: "02843c4253bbd29aba535b0aa3bd9a85034ecde4"
|
||||
validation: [sha1]
|
||||
mode: both
|
||||
note: "Amiga 600 Kickstart 2.05 r37.350."
|
||||
source_ref: "sources/src/rommgr.c:155-156 (id=10, ROMTYPE_KICK)"
|
||||
source_ref: "rommgr.cpp:164-165 (id=10, ROMTYPE_KICK)"
|
||||
|
||||
- name: "amiga-os-120.rom"
|
||||
system: amiga
|
||||
required: false
|
||||
hle_fallback: true
|
||||
size: 262144
|
||||
sha1: "11f9e62cf299f72184835b7b2a70a16333fc0d88"
|
||||
validation: [sha1]
|
||||
mode: both
|
||||
note: "Amiga 1000 Kickstart 1.2 r33.180."
|
||||
source_ref: "sources/src/rommgr.c:139-140 (id=5, ROMTYPE_KICK)"
|
||||
source_ref: "rommgr.cpp:148-149 (id=5, ROMTYPE_KICK)"
|
||||
|
||||
- name: "amiga-os-310-a1200.rom"
|
||||
system: amiga
|
||||
required: false
|
||||
hle_fallback: true
|
||||
size: 524288
|
||||
sha1: "e21545723fe8374e91342617604f1b3d703094f1"
|
||||
validation: [sha1]
|
||||
mode: both
|
||||
note: "Amiga 1200 Kickstart 3.1 r40.68."
|
||||
source_ref: "sources/src/rommgr.c:176-177 (id=15, ROMTYPE_KICK)"
|
||||
source_ref: "rommgr.cpp:185-186 (id=15, ROMTYPE_KICK)"
|
||||
|
||||
- name: "amiga-os-310-a3000.rom"
|
||||
system: amiga
|
||||
required: false
|
||||
hle_fallback: true
|
||||
size: 524288
|
||||
sha1: "f8e210d72b4c4853e0c9b85d223ba20e3d1b36ee"
|
||||
validation: [sha1]
|
||||
mode: both
|
||||
note: "Amiga 3000 Kickstart 3.1 r40.68."
|
||||
source_ref: "sources/src/rommgr.c:180-181 (id=61, ROMTYPE_KICK)"
|
||||
source_ref: "rommgr.cpp:189-190 (id=61, ROMTYPE_KICK)"
|
||||
|
||||
- name: "amiga-os-310-a4000.rom"
|
||||
system: amiga
|
||||
required: false
|
||||
hle_fallback: true
|
||||
size: 524288
|
||||
sha1: "5fe04842d04a489720f0f4bb0e46948199406f49"
|
||||
validation: [sha1]
|
||||
mode: both
|
||||
note: "Amiga 4000 Kickstart 3.1 r40.68."
|
||||
source_ref: "sources/src/rommgr.c:186-187 (id=16, ROMTYPE_KICK)"
|
||||
source_ref: "rommgr.cpp:195-196 (id=16, ROMTYPE_KICK)"
|
||||
|
||||
- name: "amiga-os-310-cd32.rom"
|
||||
system: amiga
|
||||
required: false
|
||||
hle_fallback: true
|
||||
size: 524288
|
||||
sha1: "3525be8887f79b5929e017b42380a79edfee542d"
|
||||
validation: [sha1]
|
||||
mode: both
|
||||
note: "Amiga CD32 Kickstart 3.1 r40.60."
|
||||
source_ref: "sources/src/rommgr.c:197-198 (id=18, ROMTYPE_KICKCD32)"
|
||||
source_ref: "rommgr.cpp:312-313 (id=18, ROMTYPE_KICKCD32)"
|
||||
|
||||
- name: "amiga-ext-310-cd32.rom"
|
||||
system: amiga
|
||||
required: false
|
||||
size: 524288
|
||||
sha1: "5bef3d628ce59cc02a66e6e4ae0da48f60e78f7f"
|
||||
validation: [sha1]
|
||||
mode: both
|
||||
note: "CD32 extended ROM r40.60. Required for CD32 mode."
|
||||
source_ref: "sources/src/rommgr.c:199-200 (id=19, ROMTYPE_EXTCD32)"
|
||||
source_ref: "rommgr.cpp:314-315 (id=19, ROMTYPE_EXTCD32)"
|
||||
|
||||
- name: "cd32fmv.rom"
|
||||
system: amiga
|
||||
required: false
|
||||
size: 262144
|
||||
sha1: "03ca81c7a7b259cf64bc9582863eca0f6529f435"
|
||||
validation: [sha1]
|
||||
note: "CD32 Full Motion Video cartridge ROM. For CD32/FMV model."
|
||||
source_ref: "sources/src/rommgr.c:208-209 (id=23, ROMTYPE_CD32CART)"
|
||||
mode: both
|
||||
note: "CD32 Full Motion Video cartridge ROM v40.30. Also accepts v40.22 (391777-01)."
|
||||
source_ref: "rommgr.cpp:323-326 (id=23/74, ROMTYPE_CD32CART)"
|
||||
|
||||
- name: "amiga-ext-130-cdtv.rom"
|
||||
system: amiga
|
||||
required: false
|
||||
size: 262144
|
||||
sha1: "7ba40ffa17e500ed9fed041f3424bd81d9c907be"
|
||||
validation: [sha1]
|
||||
note: "CDTV extended ROM v1.0. Required for CDTV mode."
|
||||
source_ref: "sources/src/rommgr.c:213-214 (id=20, ROMTYPE_EXTCDTV)"
|
||||
mode: both
|
||||
note: "CDTV extended ROM v1.0. Required for CDTV mode. Also accepts v2.30 and v2.7."
|
||||
source_ref: "rommgr.cpp:328-329 (id=20, ROMTYPE_EXTCDTV)"
|
||||
|
||||
- name: "rom.key"
|
||||
system: amiga
|
||||
required: false
|
||||
mode: both
|
||||
note: "Cloanto Amiga Forever decryption key. Enables encrypted ROM loading."
|
||||
source_ref: "libretro/libretro.c:206-222 (addkeyfile via amiga_add_key_dir)"
|
||||
source_ref: "rommgr.cpp:119-124 (ROMTYPE_KEY), rommgr.cpp:1397-1412 (addkeydir)"
|
||||
|
||||
43
emulators/gsplus.yml
Normal file
43
emulators/gsplus.yml
Normal file
@@ -0,0 +1,43 @@
|
||||
emulator: GSplus
|
||||
type: standalone
|
||||
source: "https://github.com/digarok/gsplus"
|
||||
upstream: "https://github.com/digarok/gsplus"
|
||||
profiled_date: "2026-03-26"
|
||||
core_version: "KEGS 1.38"
|
||||
display_name: "Apple - Apple IIGS (GSplus)"
|
||||
cores:
|
||||
- gsplus
|
||||
systems:
|
||||
- apple-iigs
|
||||
|
||||
notes: |
|
||||
Fork of KEGS (Kent's Emulated GS) by digarok. Cross-platform Apple IIGS
|
||||
emulator supporting ROM 01 (128K), ROM 03 (256K), and Apple //e (32K) ROMs.
|
||||
ROM version determined by file size at load time.
|
||||
|
||||
Batocera configgen (gsplusGenerator.py) sets g_cfg_rom_path to bios/ROM.03
|
||||
by default (configurable via gsplus_bios_filename system setting).
|
||||
|
||||
Built-in Disk II controller PROM derived via XOR diffs from main ROM.
|
||||
Built-in HD SmartPort PROM (slot 7) hardcoded in source.
|
||||
Built-in character font (kegsfont.h), optional ROMX-compatible charrom
|
||||
loadable via config UI.
|
||||
|
||||
files:
|
||||
- name: ROM
|
||||
aliases: [ROM.01, ROM.03, APPLE2GS.ROM, APPLE2GS.ROM2, xgs.rom, XGS.ROM, Rom03gd, 342-0077-b]
|
||||
required: true
|
||||
description: "Apple IIGS system ROM"
|
||||
source_ref: "config.c:131,403-407,1092-1149"
|
||||
note: "Accepted sizes: 32768 (Apple //e), 131072 (ROM 01), 262144 (ROM 03)"
|
||||
validation: [size]
|
||||
|
||||
- name: c600.rom
|
||||
aliases: [controller.rom, disk.rom, DISK.ROM, diskII.prom]
|
||||
required: false
|
||||
hle_fallback: true
|
||||
size: 256
|
||||
description: "Disk II controller PROM (slot 6)"
|
||||
validation: [size]
|
||||
source_ref: "config.c:414-415,1188-1220"
|
||||
note: "Built-in PROM generated from XOR diffs against main ROM"
|
||||
88
emulators/lexaloffle.yml
Normal file
88
emulators/lexaloffle.yml
Normal file
@@ -0,0 +1,88 @@
|
||||
emulator: Lexaloffle
|
||||
type: standalone
|
||||
upstream: "https://www.lexaloffle.com/"
|
||||
profiled_date: "2026-03-26"
|
||||
display_name: "Lexaloffle - PICO-8 / Voxatron"
|
||||
cores:
|
||||
- lexaloffle
|
||||
systems:
|
||||
- pico8
|
||||
- voxatron
|
||||
|
||||
notes: |
|
||||
Commercial fantasy consoles by Lexaloffle Games LLP. Closed-source binaries
|
||||
distributed as ZIP archives from lexaloffle.com (requires purchase).
|
||||
|
||||
Batocera configgen (lexaloffleGenerator.py) handles both systems via a single
|
||||
generator. PICO-8: binary at bios/pico-8/pico8. Voxatron: binary at
|
||||
bios/voxatron/vox. Generator checks binary existence and executable permission,
|
||||
raises BatoceraException if missing. LD_LIBRARY_PATH set to the BIOS directory
|
||||
for shared library resolution.
|
||||
|
||||
Each distribution ships a statically linked binary (pico8/vox) and a dynamically
|
||||
linked variant (pico8_dyn/vox_dyn). Batocera uses the static binary. The .dat
|
||||
file is loaded at startup and contains boot sequence, themes, and internal data.
|
||||
|
||||
PICO-8 supports x86_64 and ARM (Raspberry Pi). Voxatron x86_64 only.
|
||||
Voxatron depends on libHoloPlayCore.so (Looking Glass SDK), compile-time linked.
|
||||
|
||||
files:
|
||||
# -------------------------------------------------------
|
||||
# PICO-8
|
||||
# -------------------------------------------------------
|
||||
- name: pico8
|
||||
path: pico-8/pico8
|
||||
system: pico8
|
||||
required: true
|
||||
description: "PICO-8 main executable (statically linked)"
|
||||
source_ref: "lexaloffleGenerator.py:17,36,48-49"
|
||||
note: "Configgen checks existence and executable permission"
|
||||
|
||||
- name: pico8_dyn
|
||||
path: pico-8/pico8_dyn
|
||||
system: pico8
|
||||
required: false
|
||||
description: "PICO-8 dynamically linked executable"
|
||||
source_ref: "lexaloffleGenerator.py:17,36"
|
||||
note: "Alternative to pico8. Requires system SDL2. Some platforms prefer this variant."
|
||||
|
||||
- name: pico8.dat
|
||||
path: pico-8/pico8.dat
|
||||
system: pico8
|
||||
required: true
|
||||
description: "PICO-8 data file (boot sequence, themes, demo carts)"
|
||||
note: "POD format. Loaded by pico8/pico8_dyn from same directory at startup."
|
||||
|
||||
# -------------------------------------------------------
|
||||
# Voxatron
|
||||
# -------------------------------------------------------
|
||||
- name: vox
|
||||
path: voxatron/vox
|
||||
system: voxatron
|
||||
required: true
|
||||
description: "Voxatron main executable"
|
||||
source_ref: "lexaloffleGenerator.py:20,42,48-49"
|
||||
note: "Configgen checks existence and executable permission. x86_64 only."
|
||||
|
||||
- name: vox_dyn
|
||||
path: voxatron/vox_dyn
|
||||
system: voxatron
|
||||
required: false
|
||||
description: "Voxatron dynamically linked executable"
|
||||
source_ref: "lexaloffleGenerator.py:20,42"
|
||||
note: "Alternative to vox. Requires system SDL2."
|
||||
|
||||
- name: vox.dat
|
||||
path: voxatron/vox.dat
|
||||
system: voxatron
|
||||
required: true
|
||||
description: "Voxatron data file"
|
||||
note: "Loaded by vox/vox_dyn from same directory at startup."
|
||||
|
||||
- name: libHoloPlayCore.so
|
||||
path: voxatron/libHoloPlayCore.so
|
||||
system: voxatron
|
||||
required: true
|
||||
description: "Looking Glass holographic display support library"
|
||||
source_ref: "lexaloffleGenerator.py:89"
|
||||
note: "Compile-time linked dependency. LD_LIBRARY_PATH set to bios/voxatron/ by configgen."
|
||||
192
emulators/openmsx.yml
Normal file
192
emulators/openmsx.yml
Normal file
@@ -0,0 +1,192 @@
|
||||
emulator: openMSX
|
||||
type: standalone
|
||||
source: "https://github.com/openMSX/openMSX"
|
||||
upstream: "https://github.com/openMSX/openMSX"
|
||||
profiled_date: "2026-03-26"
|
||||
core_version: "21.0"
|
||||
display_name: "MSX / ColecoVision / Spectravideo (openMSX)"
|
||||
cores:
|
||||
- openmsx
|
||||
systems:
|
||||
- msx
|
||||
- msx1
|
||||
- msx2
|
||||
- msx2+
|
||||
- msxturbor
|
||||
- colecovision
|
||||
- spectravideo
|
||||
|
||||
notes: |
|
||||
Standalone MSX emulator supporting MSX1 through turboR, ColecoVision,
|
||||
Spectravideo, and Pioneer LaserDisc hardware. Uses XML machine definitions
|
||||
(share/machines/) that describe complete hardware configurations and
|
||||
reference system ROMs by filename and SHA1 hash.
|
||||
|
||||
ROM resolution via FilePool (src/file/FilePool.cc, FilePoolCore.cc):
|
||||
searches configured directories for files matching SHA1 checksums.
|
||||
Filenames are secondary hints; SHA1 is the primary lookup key.
|
||||
Files may be gzipped or individually zipped.
|
||||
|
||||
Batocera configgen (openmsxGenerator.py) configures filepool paths
|
||||
(/userdata/bios/Machines position 1, /userdata/bios/openmsx position 2)
|
||||
and selects machines per system type:
|
||||
msx1, msx2 -> Boosted_MSX2_EN (enhanced Philips NMS 8245)
|
||||
msx2+ -> Boosted_MSX2+_JP (enhanced Panasonic FS-A1WSX)
|
||||
msxturbor -> Boosted_MSXturboR_with_IDE (enhanced Panasonic FS-A1GT)
|
||||
colecovision -> ColecoVision_SGM
|
||||
spectravideo -> Spectravideo_SVI-328
|
||||
laserdisc (.ogv) -> Pioneer_PX-7
|
||||
|
||||
C-BIOS (open source MSX BIOS replacement) is shipped with openMSX in
|
||||
Contrib/cbios/ and supports cartridge-only games. Not used by Batocera.
|
||||
|
||||
237 machine definitions exist in total. Each machine has its own ROM
|
||||
requirements. Only ROMs for Batocera-selected machines are listed here.
|
||||
Users selecting other machines via openMSX GUI need additional ROMs.
|
||||
|
||||
files:
|
||||
# -------------------------------------------------------
|
||||
# Boosted_MSX2_EN (msx1, msx2)
|
||||
# Based on Philips NMS 8245 with extra hardware
|
||||
# -------------------------------------------------------
|
||||
- name: NMS8245SystemROM1.08.bin
|
||||
sha1: cc57c1dcd7249ea9f8e2547244592e7d97308ed0
|
||||
required: true
|
||||
size: 65536
|
||||
description: "NMS 8245 combined system ROM (BIOS+BASIC 0x0000-0x7FFF, Sub ROM 0x8000-0xBFFF, FDC 0xC000-0xFFFF)"
|
||||
validation: [sha1]
|
||||
source_ref: "share/machines/Boosted_MSX2_EN.xml:24,65,111"
|
||||
|
||||
- name: fmpac.rom
|
||||
sha1: fec451b9256570a0e4869355a40329c57f40705f
|
||||
required: true
|
||||
description: "Panasonic SW-M004 FMPAC (FM-PAC) sound cartridge ROM"
|
||||
validation: [sha1]
|
||||
source_ref: "share/machines/Boosted_MSX2_EN.xml:83"
|
||||
|
||||
- name: phc-70fd2_basickun.rom
|
||||
sha1: 22b3191d865010264001b9d896186a9818478a6b
|
||||
required: true
|
||||
description: "Sanyo PHC-70FD2 MSX-BASIC Kun compiler ROM"
|
||||
validation: [sha1]
|
||||
source_ref: "share/machines/Boosted_MSX2_EN.xml:89, Boosted_MSX2+_JP.xml:167, Boosted_MSXturboR_with_IDE.xml:79"
|
||||
|
||||
- name: yrw801.rom
|
||||
sha1: 32760893ce06dbe3930627755ba065cc3d8ec6ca
|
||||
required: true
|
||||
description: "Yamaha YRW801 MoonSound wavetable ROM"
|
||||
validation: [sha1]
|
||||
source_ref: "share/machines/Boosted_MSX2_EN.xml:186, Boosted_MSX2+_JP.xml:120, Boosted_MSXturboR_with_IDE.xml:202"
|
||||
|
||||
# -------------------------------------------------------
|
||||
# Boosted_MSX2+_JP (msx2+)
|
||||
# Based on Panasonic FS-A1WSX with extra hardware
|
||||
# -------------------------------------------------------
|
||||
- name: fs-a1wsx_basic-bios2p.rom
|
||||
sha1: f4433752d3bf876bfefb363c749d4d2e08a218b6
|
||||
required: true
|
||||
description: "FS-A1WSX MSX2+ BIOS and BASIC ROM"
|
||||
validation: [sha1]
|
||||
source_ref: "share/machines/Boosted_MSX2+_JP.xml:143"
|
||||
|
||||
- name: fs-a1wsx_fmbasic.rom
|
||||
sha1: aad42ba4289b33d8eed225d42cea930b7fc5c228
|
||||
required: true
|
||||
description: "FS-A1WSX MSX-MUSIC (OPLL) ROM"
|
||||
validation: [sha1]
|
||||
source_ref: "share/machines/Boosted_MSX2+_JP.xml:155"
|
||||
|
||||
- name: fs-a1wsx_msx2psub.rom
|
||||
sha1: fe0254cbfc11405b79e7c86c7769bd6322b04995
|
||||
required: true
|
||||
description: "FS-A1WSX MSX2+ Sub ROM"
|
||||
validation: [sha1]
|
||||
source_ref: "share/machines/Boosted_MSX2+_JP.xml:218"
|
||||
|
||||
- name: fs-a1wsx_kanjibasic.rom
|
||||
sha1: dcc3a67732aa01c4f2ee8d1ad886444a4dbafe06
|
||||
required: true
|
||||
description: "FS-A1WSX Kanji Driver with BASIC ROM"
|
||||
validation: [sha1]
|
||||
source_ref: "share/machines/Boosted_MSX2+_JP.xml:225"
|
||||
|
||||
- name: fs-a1wsx_disk.rom
|
||||
sha1: 7ed7c55e0359737ac5e68d38cb6903f9e5d7c2b6
|
||||
required: true
|
||||
description: "FS-A1WSX FDC (TC8566AF) disk controller ROM"
|
||||
validation: [sha1]
|
||||
source_ref: "share/machines/Boosted_MSX2+_JP.xml:237"
|
||||
|
||||
- name: fs-a1wsx_firmware.rom
|
||||
sha1: 3330d9b6b76e3c4ccb7cf252496ed15d08b95d3f
|
||||
required: true
|
||||
description: "FS-A1WSX Panasonic firmware ROM"
|
||||
validation: [sha1]
|
||||
source_ref: "share/machines/Boosted_MSX2+_JP.xml:251"
|
||||
|
||||
- name: fs-a1wsx_kanjifont.rom
|
||||
sha1: 5aff2d9b6efc723bc395b0f96f0adfa83cc54a49
|
||||
aliases: [fs-a1gt_kanjifont.rom]
|
||||
required: true
|
||||
description: "Kanji font ROM (shared by FS-A1WSX and FS-A1GT machines)"
|
||||
validation: [sha1]
|
||||
source_ref: "share/machines/Boosted_MSX2+_JP.xml:28, Boosted_MSXturboR_with_IDE.xml:215"
|
||||
|
||||
# -------------------------------------------------------
|
||||
# Boosted_MSXturboR_with_IDE (msxturbor)
|
||||
# Based on Panasonic FS-A1GT with IDE interface
|
||||
# -------------------------------------------------------
|
||||
- name: fs-a1gt_firmware.rom
|
||||
sha1:
|
||||
- e779c338eb91a7dea3ff75f3fde76b8af22c4a3a
|
||||
- 5fa3aa79aeba2c0441f349e78e9a16d9d64422ea
|
||||
required: true
|
||||
description: "FS-A1GT turboR combined firmware (512KB, contains BIOS, Sub ROM, Kanji, FDC, MSX-MUSIC, Opening ROM)"
|
||||
validation: [sha1]
|
||||
source_ref: "share/machines/Boosted_MSXturboR_with_IDE.xml:23"
|
||||
|
||||
- name: ide250.dat
|
||||
sha1: 93e41c7d479bc90c1d1f6d081af20fd9924b8ada
|
||||
required: true
|
||||
description: "Sunrise IDE 2.50 interface ROM"
|
||||
validation: [sha1]
|
||||
source_ref: "share/machines/Boosted_MSXturboR_with_IDE.xml:49"
|
||||
|
||||
# -------------------------------------------------------
|
||||
# ColecoVision_SGM (colecovision)
|
||||
# ColecoVision with built-in Super Game Module
|
||||
# -------------------------------------------------------
|
||||
- name: COLECO.ROM
|
||||
sha1: 45bedc4cbdeac66c7df59e9e599195c778d86a92
|
||||
required: true
|
||||
description: "ColecoVision system BIOS ROM"
|
||||
validation: [sha1]
|
||||
source_ref: "share/machines/ColecoVision_SGM.xml:57"
|
||||
|
||||
# -------------------------------------------------------
|
||||
# Spectravideo_SVI-328 (spectravideo)
|
||||
# -------------------------------------------------------
|
||||
- name: svi-3x8_v111.rom
|
||||
sha1: 10349ce675f6d6d47f0976e39cb7188eba858d89
|
||||
required: true
|
||||
description: "SVI-328 BASIC v1.11 ROM"
|
||||
validation: [sha1]
|
||||
source_ref: "share/machines/Spectravideo_SVI-328.xml:52"
|
||||
|
||||
# -------------------------------------------------------
|
||||
# Pioneer_PX-7 (laserdisc)
|
||||
# MSX1 with LaserDisc controller
|
||||
# -------------------------------------------------------
|
||||
- name: px-7_basic-bios1.rom
|
||||
sha1: 302afb5d8be26c758309ca3df611ae69cced2821
|
||||
required: true
|
||||
description: "Pioneer PX-7 MSX1 BIOS and BASIC ROM"
|
||||
validation: [sha1]
|
||||
source_ref: "share/machines/Pioneer_PX-7.xml:67"
|
||||
|
||||
- name: px-7_pbasic.rom
|
||||
sha1: 665d805f96616e1037f1823050657b7849899283
|
||||
required: true
|
||||
description: "Pioneer PX-7 LaserDisc PBASIC controller ROM"
|
||||
validation: [sha1]
|
||||
source_ref: "share/machines/Pioneer_PX-7.xml:82"
|
||||
45
emulators/ryujinx.yml
Normal file
45
emulators/ryujinx.yml
Normal file
@@ -0,0 +1,45 @@
|
||||
emulator: Ryujinx
|
||||
type: standalone
|
||||
source: "https://git.ngram.ca/mirrors/Ryujinx"
|
||||
upstream: "https://github.com/Ryujinx/Ryujinx"
|
||||
profiled_date: "2026-03-26"
|
||||
core_version: "1.1.1403"
|
||||
display_name: "Ryujinx (Nintendo Switch)"
|
||||
systems: [nintendo-switch]
|
||||
analysis_date: "2026-03-26"
|
||||
analysis_commit: "HEAD (depth=1, ngram.ca mirror)"
|
||||
mode: standalone
|
||||
|
||||
# Key files are read from {BaseDirPath}/system/ (AppDataManager.cs:229)
|
||||
# Also searched in ~/.switch/ (AppDataManager.cs:47)
|
||||
# Batocera copies bios/switch/prod.keys to Ryujinx/system/prod.keys (ryujinxGenerator.py:108)
|
||||
# Firmware NCAs are installed via UI (ContentManager.cs:429), not placed as files
|
||||
|
||||
files:
|
||||
- name: "prod.keys"
|
||||
required: true
|
||||
path: "switch/"
|
||||
mode: standalone
|
||||
note: "Switch production keys for NCA decryption"
|
||||
source_ref: "src/Ryujinx.HLE/FileSystem/VirtualFileSystem.cs:239"
|
||||
|
||||
- name: "title.keys"
|
||||
required: false
|
||||
path: "switch/"
|
||||
mode: standalone
|
||||
note: "Per-title decryption keys, needed for specific game content"
|
||||
source_ref: "src/Ryujinx.HLE/FileSystem/VirtualFileSystem.cs:240"
|
||||
|
||||
- name: "console.keys"
|
||||
required: false
|
||||
path: "switch/"
|
||||
mode: standalone
|
||||
note: "Console-specific keys for encrypted content"
|
||||
source_ref: "src/Ryujinx.HLE/FileSystem/VirtualFileSystem.cs:241"
|
||||
|
||||
notes: |
|
||||
Ryujinx is a standalone Nintendo Switch emulator written in C#, created by gdkchan.
|
||||
Original repo discontinued October 2024 after Nintendo takedown.
|
||||
Firmware (system NCAs) must be installed through Ryujinx's UI from a ZIP or XCI.
|
||||
Required for commercial games (.nsp, .xci). Homebrew (.nro, .nso) runs without firmware.
|
||||
Firmware provides shared fonts, timezone data, SSL certificates, system version info.
|
||||
135
emulators/shadps4.yml
Normal file
135
emulators/shadps4.yml
Normal file
@@ -0,0 +1,135 @@
|
||||
emulator: shadps4
|
||||
type: standalone
|
||||
source: "https://github.com/shadps4-emu/shadPS4"
|
||||
upstream: "https://github.com/shadps4-emu/shadPS4"
|
||||
profiled_date: "2026-03-26"
|
||||
core_version: "pre-release 2026-03-25"
|
||||
display_name: "shadPS4 (PlayStation 4)"
|
||||
cores:
|
||||
- shadps4
|
||||
systems:
|
||||
- ps4
|
||||
mode: standalone
|
||||
analysis_date: "2026-03-26"
|
||||
analysis_commit: "31b2d9c (depth=1)"
|
||||
|
||||
notes: |
|
||||
shadPS4 is a standalone PlayStation 4 emulator. Most PS4 system libraries
|
||||
are reimplemented in HLE. For better game compatibility, real firmware
|
||||
modules (.sprx) can be loaded in LLE mode from the sys_modules/ directory.
|
||||
|
||||
Modules are loaded by sysmodule_internal.cpp via loadModuleInternal().
|
||||
If a module exists in sys_modules/, it is loaded as LLE. If absent and
|
||||
an HLE implementation exists, the emulator falls back to HLE. If neither,
|
||||
the module is stubbed and games needing it may fail.
|
||||
|
||||
Game-specific overrides are supported: sys_modules/{CUSA_ID}/ takes
|
||||
priority over the global sys_modules/ directory.
|
||||
|
||||
System fonts are mounted from fonts/font/ (/preinst/common/font on real
|
||||
PS4) and fonts/font2/ (/system/common/font2 on real PS4). These are SST
|
||||
(Sony Standard Text) typeface files in OTF format. The emulator mounts
|
||||
the directories wholesale; games load individual fonts by name. Without
|
||||
fonts, the emulator warns "No dumped system fonts, expect missing text
|
||||
or instability."
|
||||
|
||||
All firmware files are extracted from a real PS4 via FTP:
|
||||
- .sprx modules from /system/common/lib/
|
||||
- font/ from /preinst/common/font/
|
||||
- font2/ from /system/common/font2/
|
||||
|
||||
Batocera configgen (shadps4Generator.py) configures display, input, and
|
||||
saves but does not map BIOS/firmware paths. The emulator uses its own
|
||||
user directory for sys_modules/ and fonts/.
|
||||
|
||||
files:
|
||||
- name: "libSceLibcInternal.sprx"
|
||||
required: false
|
||||
hle_fallback: true
|
||||
path: "shadps4/sys_modules/"
|
||||
description: "PS4 C standard library"
|
||||
source_ref: "src/core/libraries/sysmodule/sysmodule_internal.cpp:221"
|
||||
|
||||
- name: "libSceNgs2.sprx"
|
||||
required: false
|
||||
hle_fallback: true
|
||||
path: "shadps4/sys_modules/"
|
||||
description: "PS4 next-generation audio system"
|
||||
source_ref: "src/core/libraries/sysmodule/sysmodule_internal.cpp:213"
|
||||
|
||||
- name: "libSceRtc.sprx"
|
||||
required: false
|
||||
hle_fallback: true
|
||||
path: "shadps4/sys_modules/"
|
||||
description: "PS4 real-time clock library"
|
||||
source_ref: "src/core/libraries/sysmodule/sysmodule_internal.cpp:215"
|
||||
|
||||
- name: "libSceJpegEnc.sprx"
|
||||
required: false
|
||||
hle_fallback: true
|
||||
path: "shadps4/sys_modules/"
|
||||
description: "PS4 JPEG encoder"
|
||||
source_ref: "src/core/libraries/sysmodule/sysmodule_internal.cpp:217"
|
||||
|
||||
- name: "libScePngEnc.sprx"
|
||||
required: false
|
||||
hle_fallback: true
|
||||
path: "shadps4/sys_modules/"
|
||||
description: "PS4 PNG encoder"
|
||||
source_ref: "src/core/libraries/sysmodule/sysmodule_internal.cpp:218"
|
||||
|
||||
- name: "libSceFont.sprx"
|
||||
required: false
|
||||
hle_fallback: true
|
||||
path: "shadps4/sys_modules/"
|
||||
description: "PS4 font rendering library"
|
||||
source_ref: "src/core/libraries/sysmodule/sysmodule_internal.cpp:224"
|
||||
|
||||
- name: "libSceFontFt.sprx"
|
||||
required: false
|
||||
hle_fallback: true
|
||||
path: "shadps4/sys_modules/"
|
||||
description: "PS4 FreeType font library"
|
||||
source_ref: "src/core/libraries/sysmodule/sysmodule_internal.cpp:225"
|
||||
|
||||
- name: "libSceUlt.sprx"
|
||||
required: false
|
||||
path: "shadps4/sys_modules/"
|
||||
description: "PS4 user-level threading library"
|
||||
source_ref: "src/core/libraries/sysmodule/sysmodule_internal.cpp:214"
|
||||
|
||||
- name: "libSceJpegDec.sprx"
|
||||
required: false
|
||||
path: "shadps4/sys_modules/"
|
||||
description: "PS4 JPEG decoder"
|
||||
source_ref: "src/core/libraries/sysmodule/sysmodule_internal.cpp:216"
|
||||
|
||||
- name: "libSceJson.sprx"
|
||||
required: false
|
||||
path: "shadps4/sys_modules/"
|
||||
description: "PS4 JSON parser"
|
||||
source_ref: "src/core/libraries/sysmodule/sysmodule_internal.cpp:219"
|
||||
|
||||
- name: "libSceJson2.sprx"
|
||||
required: false
|
||||
path: "shadps4/sys_modules/"
|
||||
description: "PS4 JSON v2 parser"
|
||||
source_ref: "src/core/libraries/sysmodule/sysmodule_internal.cpp:220"
|
||||
|
||||
- name: "libSceCesCs.sprx"
|
||||
required: false
|
||||
path: "shadps4/sys_modules/"
|
||||
description: "PS4 character encoding conversion"
|
||||
source_ref: "src/core/libraries/sysmodule/sysmodule_internal.cpp:222"
|
||||
|
||||
- name: "libSceAudiodec.sprx"
|
||||
required: false
|
||||
path: "shadps4/sys_modules/"
|
||||
description: "PS4 audio decoder"
|
||||
source_ref: "src/core/libraries/sysmodule/sysmodule_internal.cpp:223"
|
||||
|
||||
- name: "libSceFreeTypeOt.sprx"
|
||||
required: false
|
||||
path: "shadps4/sys_modules/"
|
||||
description: "PS4 FreeType OpenType library"
|
||||
source_ref: "src/core/libraries/sysmodule/sysmodule_internal.cpp:226"
|
||||
91
emulators/tsugaru.yml
Normal file
91
emulators/tsugaru.yml
Normal file
@@ -0,0 +1,91 @@
|
||||
emulator: tsugaru
|
||||
display_name: Tsugaru
|
||||
type: standalone
|
||||
source: "https://github.com/captainys/TOWNSEMU"
|
||||
upstream: "https://github.com/captainys/TOWNSEMU"
|
||||
profiled_date: "2026-03-26"
|
||||
cores:
|
||||
- tsugaru
|
||||
systems:
|
||||
- fmtowns
|
||||
|
||||
notes: |
|
||||
FM Towns / Marty emulator by CaptainYS. Takes a ROM directory as first
|
||||
argument. ROM format compatible with UNZ emulator. Free compatible ROMs
|
||||
available at ysflight.com/FM/towns/FreeTOWNS/. FMT_ALL.ROM is an
|
||||
alternative combined format that bundles all individual ROM files.
|
||||
|
||||
files:
|
||||
- name: FMT_SYS.ROM
|
||||
description: system ROM
|
||||
required: true
|
||||
size: 262144
|
||||
validation:
|
||||
- size
|
||||
source_ref: "physmem.cpp:392,503-507"
|
||||
- name: FMT_DOS.ROM
|
||||
description: DOS ROM
|
||||
required: true
|
||||
size: 524288
|
||||
validation:
|
||||
- size
|
||||
source_ref: "physmem.cpp:395,508-512"
|
||||
- name: FMT_FNT.ROM
|
||||
description: font ROM
|
||||
required: true
|
||||
size: 262144
|
||||
validation:
|
||||
- size
|
||||
source_ref: "physmem.cpp:398,513-517"
|
||||
- name: FMT_F20.ROM
|
||||
description: 20-dot font ROM, filled with 0xFF if missing
|
||||
required: false
|
||||
size: 524288
|
||||
hle_fallback: true
|
||||
validation:
|
||||
- size
|
||||
source_ref: "physmem.cpp:401,518-527"
|
||||
- name: FMT_DIC.ROM
|
||||
description: dictionary ROM
|
||||
required: true
|
||||
size: 524288
|
||||
validation:
|
||||
- size
|
||||
source_ref: "physmem.cpp:404,528-532"
|
||||
- name: MYTOWNS.ROM
|
||||
description: serial ROM for machine identity, uses defaults if absent
|
||||
required: false
|
||||
min_size: 32
|
||||
source_ref: "physmem.cpp:407,533-539"
|
||||
- name: FMT_ALL.ROM
|
||||
description: combined ROM file, alternative to individual ROM files
|
||||
required: false
|
||||
source_ref: "physmem.cpp:420-500"
|
||||
- name: MAR_EX0.ROM
|
||||
description: Marty extra ROM 0, all 4 MAR_EX ROMs needed for Marty mode
|
||||
required: false
|
||||
size: 524288
|
||||
validation:
|
||||
- size
|
||||
source_ref: "physmem.cpp:410,541-564"
|
||||
- name: MAR_EX1.ROM
|
||||
description: Marty extra ROM 1
|
||||
required: false
|
||||
size: 524288
|
||||
validation:
|
||||
- size
|
||||
source_ref: "physmem.cpp:412,541-564"
|
||||
- name: MAR_EX2.ROM
|
||||
description: Marty extra ROM 2
|
||||
required: false
|
||||
size: 524288
|
||||
validation:
|
||||
- size
|
||||
source_ref: "physmem.cpp:414,541-564"
|
||||
- name: MAR_EX3.ROM
|
||||
description: Marty extra ROM 3
|
||||
required: false
|
||||
size: 524288
|
||||
validation:
|
||||
- size
|
||||
source_ref: "physmem.cpp:416,541-564"
|
||||
32
emulators/x16emu.yml
Normal file
32
emulators/x16emu.yml
Normal file
@@ -0,0 +1,32 @@
|
||||
emulator: x16emu
|
||||
type: standalone
|
||||
upstream: "https://github.com/X16Community/x16-emulator"
|
||||
profiled_date: "2026-03-26"
|
||||
core_version: "r50"
|
||||
display_name: "Commander X16 (x16emu)"
|
||||
cores:
|
||||
- x16emu
|
||||
systems:
|
||||
- commanderx16
|
||||
|
||||
notes: |
|
||||
Standalone emulator for the Commander X16 retro computer by Michael Steil.
|
||||
65C02/65C816 CPU, VERA video, YM2151+PSG audio, SD card, cartridge support.
|
||||
|
||||
System ROM built separately from the x16-rom repo (KERNAL + BASIC + DOS,
|
||||
32 banks x 16 KB = 512 KB). Emulator and ROM versions must match.
|
||||
|
||||
Batocera configgen (x16emuGenerator.py) passes -rom /userdata/bios/commanderx16/rom.bin.
|
||||
Also sets -ram 2048, -rtc, and scale/quality/widescreen per user config.
|
||||
|
||||
files:
|
||||
- name: rom.bin
|
||||
path: commanderx16/rom.bin
|
||||
required: true
|
||||
size: 524288
|
||||
description: "Commander X16 system ROM (KERNAL, BASIC, DOS, charset)"
|
||||
source_ref: "x16-emulator/src/main.c:602,1158-1165; glue.h:19,24"
|
||||
note: >
|
||||
Default filename "rom.bin", loaded from executable directory or via -rom flag.
|
||||
ROM_SIZE = NUM_ROM_BANKS(32) * 16384 = 524288 bytes. exit(1) if file not found.
|
||||
Built from x16-rom repo (open source, derived from C64 KERNAL/BASIC).
|
||||
401
emulators/xroar.yml
Normal file
401
emulators/xroar.yml
Normal file
@@ -0,0 +1,401 @@
|
||||
emulator: XRoar
|
||||
type: standalone
|
||||
source: "https://www.6809.org.uk/git/xroar.git"
|
||||
upstream: "https://www.6809.org.uk/xroar/"
|
||||
profiled_date: "2026-03-26"
|
||||
core_version: "1.10"
|
||||
display_name: "Dragon / CoCo / MC-10 (XRoar)"
|
||||
cores:
|
||||
- xroar
|
||||
systems:
|
||||
- dragon32
|
||||
- dragon64
|
||||
- coco
|
||||
- coco3
|
||||
- mc10
|
||||
|
||||
notes: |
|
||||
XRoar by Ciaran Anscomb emulates Dragon 32/64, Tandy CoCo 1/2/3,
|
||||
MC-10, Alice, and clones (MX-1600, CP-400, Dragon 200-E, Deluxe CoCo).
|
||||
ROM files are searched in a configurable rompath directory with automatic
|
||||
extension appending (.rom, .ROM, .dgn, .DGN). Batocera sets rompath to
|
||||
/userdata/bios/xroar/.
|
||||
|
||||
The romlist mechanism defines fallback filenames per ROM slot. Each machine
|
||||
type has a default romlist that tries filenames in priority order. CRC32 is
|
||||
computed for loaded ROMs and matched against known-good values for breakpoint
|
||||
and feature detection, but mismatches do not prevent loading.
|
||||
|
||||
Machine selection: Batocera maps system names to default machines via
|
||||
xroarGenerator.py (mc10 -> mc10, dragon64 -> dragon64, others -> coco2bus).
|
||||
|
||||
files:
|
||||
# ---- Dragon 32 ----
|
||||
|
||||
- name: "d32.rom"
|
||||
system: dragon32
|
||||
description: "Dragon 32 BASIC ROM"
|
||||
required: true
|
||||
size: 16384
|
||||
crc32: "e3879310"
|
||||
validation: [crc32]
|
||||
aliases: [dragon32, d32rom, "Dragon Data Ltd - Dragon 32 - IC17"]
|
||||
source_ref: "xroar.c:643 (romlist d32), dragon.c:792,798-803,820-821 (load + CRC)"
|
||||
notes: "Combined 16K ROM. Loaded into a single 16384-byte rombank slot."
|
||||
|
||||
# ---- Dragon 64 ----
|
||||
|
||||
- name: "d64_1.rom"
|
||||
system: dragon64
|
||||
description: "Dragon 64 32K mode BASIC ROM"
|
||||
required: true
|
||||
size: 16384
|
||||
crc32: "84f68bf9"
|
||||
validation: [crc32]
|
||||
aliases: [d64rom1, dragrom, "Dragon Data Ltd - Dragon 64 - IC17", "Dragon Data Ltd - TANO IC18", "Eurohard S.A. - Dragon 200 IC18"]
|
||||
source_ref: "xroar.c:641 (romlist d64_1), xroar.c:647 (romlist dragon64), dragon64.c:138-141,155-157 (load + CRC)"
|
||||
notes: "IC17 ROM. Required for the machine to start."
|
||||
|
||||
- name: "d64_2.rom"
|
||||
system: dragon64
|
||||
description: "Dragon 64 64K mode BASIC ROM"
|
||||
required: false
|
||||
size: 16384
|
||||
crc32: "17893a42"
|
||||
validation: [crc32]
|
||||
aliases: [d64rom2, "Dragon Data Ltd - Dragon 64 - IC18", "Dragon Data Ltd - TANO IC17", "Eurohard S.A. - Dragon 200 IC17"]
|
||||
source_ref: "xroar.c:642 (romlist d64_2), xroar.c:648 (romlist dragon64_alt), dragon64.c:146-152,160-162 (load + CRC)"
|
||||
notes: "IC18 ROM. 64K mode alternate BASIC. Machine starts without it (32K mode only)."
|
||||
|
||||
# ---- Dragon 200-E ----
|
||||
|
||||
- name: "d200e_1.rom"
|
||||
system: dragon64
|
||||
description: "Dragon 200-E BASIC IC18 (Spanish)"
|
||||
required: true
|
||||
size: 16384
|
||||
crc32: "95af0a0a"
|
||||
validation: [crc32]
|
||||
aliases: [d200e_rom1, ic18_v1.4e.ic34]
|
||||
source_ref: "xroar.c:644 (romlist d200e_1), xroar.c:650 (romlist dragon200e), xroar.c:735 (crclist)"
|
||||
notes: "Required for Dragon 200-E. Falls back to d64_1 then generic dragon if not found."
|
||||
|
||||
- name: "d200e_2.rom"
|
||||
system: dragon64
|
||||
description: "Dragon 200-E BASIC IC17 (Spanish)"
|
||||
required: false
|
||||
size: 16384
|
||||
aliases: [d200e_rom2, ic17_v1.4e.ic37]
|
||||
source_ref: "xroar.c:645 (romlist d200e_2), xroar.c:651 (romlist dragon200e_alt)"
|
||||
notes: "64K mode alternate. Falls back to d64_2 if not found."
|
||||
|
||||
- name: "d200e_26.rom"
|
||||
system: dragon64
|
||||
description: "Dragon 200-E external character generator ROM"
|
||||
required: false
|
||||
size: 4096
|
||||
aliases: [rom26.ic1]
|
||||
source_ref: "xroar.c:652 (romlist dragon200e_charset), dragon.c:523-539 (ext_charset load)"
|
||||
notes: "Spanish character set. Loaded into a 4096-byte rombank. Machine works without it (uses standard charset)."
|
||||
|
||||
# ---- Dragon Professional (Alpha) ----
|
||||
|
||||
- name: "alpha-boot-v1.0.rom"
|
||||
system: dragon64
|
||||
description: "Dragon Professional (Alpha) boot ROM v1.0"
|
||||
required: true
|
||||
crc32: "d6172b56"
|
||||
validation: [crc32]
|
||||
aliases: [alpha_bt_10, "Dragon Data Ltd - Dragon Alpha Boot v1.0 150584"]
|
||||
source_ref: "xroar.c:654 (romlist dragonpro_boot), xroar.c:741 (crclist), dragonpro.c:231-234 (load)"
|
||||
notes: "Required for Dragon Professional machine. Loaded as extbas_rom (boot ROM)."
|
||||
|
||||
- name: "alpha-basic.rom"
|
||||
system: dragon64
|
||||
description: "Dragon Professional (Alpha) BASIC ROM"
|
||||
required: true
|
||||
aliases: [alpha_ba, "Dragon Data Ltd - Dragon Alpga Basic"]
|
||||
source_ref: "xroar.c:655 (romlist dragonpro_basic), dragonpro.c:240-243 (load)"
|
||||
notes: "Loaded as altbas_rom. Falls back to d64_1 if not found."
|
||||
|
||||
# ---- Tandy CoCo (Colour BASIC) ----
|
||||
|
||||
- name: "bas13.rom"
|
||||
system: coco
|
||||
description: "Tandy CoCo Colour BASIC 1.3"
|
||||
required: true
|
||||
size: 8192
|
||||
crc32: "d8f4d15e"
|
||||
validation: [crc32]
|
||||
source_ref: "xroar.c:657 (romlist coco), xroar.c:747 (crclist bas13), dragon.c:807-812,824-826 (load + CRC)"
|
||||
notes: "Default Colour BASIC. First tried in the @coco romlist. 8K ROM loaded into slot 1 of a 2-slot rombank."
|
||||
|
||||
- name: "bas12.rom"
|
||||
system: coco
|
||||
description: "Tandy CoCo Colour BASIC 1.2"
|
||||
required: false
|
||||
size: 8192
|
||||
crc32: "54368805"
|
||||
validation: [crc32]
|
||||
aliases: ["Color Basic v1.2 (1982)(Tandy)"]
|
||||
source_ref: "xroar.c:657 (romlist coco), xroar.c:746 (crclist bas12)"
|
||||
notes: "Alternative to bas13. Second in fallback order."
|
||||
|
||||
- name: "bas11.rom"
|
||||
system: coco
|
||||
description: "Tandy CoCo Colour BASIC 1.1"
|
||||
required: false
|
||||
size: 8192
|
||||
crc32: "6270955a"
|
||||
validation: [crc32]
|
||||
source_ref: "xroar.c:657 (romlist coco), xroar.c:745 (crclist bas11)"
|
||||
notes: "Used by CoCo 1E. Third in fallback order."
|
||||
|
||||
- name: "bas10.rom"
|
||||
system: coco
|
||||
description: "Tandy CoCo Colour BASIC 1.0"
|
||||
required: false
|
||||
size: 8192
|
||||
crc32: "00b50aaa"
|
||||
validation: [crc32]
|
||||
source_ref: "xroar.c:657 (romlist coco), xroar.c:744 (crclist bas10)"
|
||||
notes: "Earliest version. Used by original CoCo 1. Last in fallback order."
|
||||
|
||||
# ---- Tandy CoCo (Extended Colour BASIC) ----
|
||||
|
||||
- name: "extbas11.rom"
|
||||
system: coco
|
||||
description: "Tandy CoCo Extended Colour BASIC 1.1"
|
||||
required: true
|
||||
size: 8192
|
||||
crc32: "a82a6254"
|
||||
validation: [crc32]
|
||||
source_ref: "xroar.c:658 (romlist coco_ext), xroar.c:752 (crclist extbas11), dragon.c:798-803,828-829 (load + CRC)"
|
||||
notes: "Default Extended BASIC. 8K ROM loaded into slot 0 of a 2-slot rombank."
|
||||
|
||||
- name: "extbas10.rom"
|
||||
system: coco
|
||||
description: "Tandy CoCo Extended Colour BASIC 1.0"
|
||||
required: false
|
||||
size: 8192
|
||||
crc32: "e031d076"
|
||||
validation: [crc32]
|
||||
source_ref: "xroar.c:658 (romlist coco_ext), xroar.c:751 (crclist extbas10)"
|
||||
notes: "Earlier version. Second in fallback order."
|
||||
|
||||
# ---- Tandy CoCo 3 ----
|
||||
|
||||
- name: "coco3.rom"
|
||||
system: coco3
|
||||
description: "CoCo 3 Super Extended Colour BASIC (NTSC)"
|
||||
required: true
|
||||
size: 32768
|
||||
crc32: "b4c88d6c"
|
||||
validation: [crc32]
|
||||
source_ref: "xroar.c:688 (romlist coco3), xroar.c:762 (crclist coco3), coco3.c:254-256,512-526 (load + CRC)"
|
||||
notes: "32K combined ROM. Single required ROM for CoCo 3 NTSC."
|
||||
|
||||
- name: "coco3p.rom"
|
||||
system: coco3
|
||||
description: "CoCo 3 Super Extended Colour BASIC (PAL)"
|
||||
required: true
|
||||
size: 32768
|
||||
source_ref: "xroar.c:689 (romlist coco3p), xroar.c:505,514 (machine config), coco3.c:254-256"
|
||||
notes: "PAL variant of the CoCo 3 ROM. Required for PAL CoCo 3 machines."
|
||||
|
||||
# ---- Tandy MC-10 ----
|
||||
|
||||
- name: "mc10.rom"
|
||||
system: mc10
|
||||
description: "Tandy MC-10 Microcolour BASIC"
|
||||
required: true
|
||||
size: 8192
|
||||
crc32: "11fda97e"
|
||||
validation: [crc32]
|
||||
source_ref: "xroar.c:695 (romlist mc10), xroar.c:767 (crclist mc10), mc10.c:157-158,397-407 (load + CRC)"
|
||||
notes: "Single required ROM for MC-10."
|
||||
|
||||
- name: "alice.rom"
|
||||
system: mc10
|
||||
description: "Matra & Hachette Alice Microcolour BASIC"
|
||||
required: true
|
||||
size: 8192
|
||||
crc32: "f876abe9"
|
||||
validation: [crc32]
|
||||
source_ref: "xroar.c:697 (romlist alice), xroar.c:769 (crclist alice), mc10.c:157-158"
|
||||
notes: "French Alice variant. Required for Alice machine. MC-10 compatible."
|
||||
|
||||
# ---- Deluxe CoCo (prototype) ----
|
||||
|
||||
- name: "deluxe.rom"
|
||||
system: coco
|
||||
description: "Tandy Deluxe CoCo Advanced BASIC (bank 0)"
|
||||
required: true
|
||||
crc32: "1cce231e"
|
||||
validation: [crc32]
|
||||
aliases: [adv070_u24]
|
||||
source_ref: "xroar.c:673 (romlist deluxecoco), xroar.c:757 (crclist), deluxecoco.c:191-194 (load)"
|
||||
notes: "Primary ROM for the Deluxe CoCo prototype. Loaded as extbas_rom."
|
||||
|
||||
- name: "adv071_u24.rom"
|
||||
system: coco
|
||||
description: "Tandy Deluxe CoCo ROM bank 1"
|
||||
required: false
|
||||
source_ref: "xroar.c:675 (romlist deluxecoco1), deluxecoco.c:201-204 (load)"
|
||||
|
||||
- name: "adv072_u24.rom"
|
||||
system: coco
|
||||
description: "Tandy Deluxe CoCo ROM bank 2"
|
||||
required: false
|
||||
source_ref: "xroar.c:676 (romlist deluxecoco2), deluxecoco.c:208-211 (load)"
|
||||
|
||||
- name: "adv073-2_u24.rom"
|
||||
system: coco
|
||||
description: "Tandy Deluxe CoCo ROM bank 3"
|
||||
required: false
|
||||
aliases: [adv073_u24]
|
||||
source_ref: "xroar.c:677 (romlist deluxecoco3), deluxecoco.c:215-218 (load)"
|
||||
|
||||
# ---- Dynacom MX-1600 (Brazilian clone) ----
|
||||
|
||||
- name: "mx1600bas.rom"
|
||||
system: coco
|
||||
description: "Dynacom MX-1600 Colour BASIC"
|
||||
required: true
|
||||
crc32: "d918156e"
|
||||
validation: [crc32]
|
||||
aliases: [mx1600bas_zephyr]
|
||||
source_ref: "xroar.c:679 (romlist mx1600), xroar.c:748 (crclist mx1600)"
|
||||
notes: "Required for MX-1600. Zephyr-patched variant (CRC32 d11b1c96) is an alias."
|
||||
|
||||
- name: "mx1600extbas.rom"
|
||||
system: coco
|
||||
description: "Dynacom MX-1600 Extended Colour BASIC"
|
||||
required: true
|
||||
crc32: "322a3d58"
|
||||
validation: [crc32]
|
||||
source_ref: "xroar.c:680 (romlist mx1600ext), xroar.c:753 (crclist mx1600ext)"
|
||||
|
||||
# ---- Prologica CP-400 (Brazilian clone) ----
|
||||
|
||||
- name: "cp400bas.rom"
|
||||
system: coco
|
||||
description: "Prologica CP-400 Colour BASIC"
|
||||
required: true
|
||||
crc32: "0b2903d4"
|
||||
validation: [crc32]
|
||||
source_ref: "xroar.c:682 (romlist cp400), xroar.c:749 (crclist cp400)"
|
||||
|
||||
- name: "cp400ext.rom"
|
||||
system: coco
|
||||
description: "Prologica CP-400 Extended Colour BASIC"
|
||||
required: true
|
||||
crc32: "114accbc"
|
||||
validation: [crc32]
|
||||
source_ref: "xroar.c:683 (romlist cp400ext), xroar.c:754 (crclist cp400ext)"
|
||||
|
||||
# ---- DOS cartridge ROMs (all optional) ----
|
||||
|
||||
- name: "disk11.rom"
|
||||
system: coco
|
||||
description: "Tandy RS-DOS 1.1 (CoCo floppy disk controller)"
|
||||
required: false
|
||||
source_ref: "xroar.c:708 (romlist rsdos), rsdos.c:176 (default @rsdos)"
|
||||
notes: "Primary CoCo disk controller ROM. disk10.rom (RS-DOS 1.0) is an earlier version used as fallback."
|
||||
|
||||
- name: "hdbdw3bck.rom"
|
||||
system: coco
|
||||
description: "RS-DOS with Becker port (DriveWire)"
|
||||
required: false
|
||||
source_ref: "xroar.c:718 (romlist rsdos_becker), xroar.c:572-574 (cart becker)"
|
||||
notes: "For CoCo with Becker port hardware. Enables DriveWire connectivity."
|
||||
|
||||
- name: "ddos12a.rom"
|
||||
system: dragon64
|
||||
description: "DragonDOS 1.2a (Dragon floppy disk controller)"
|
||||
required: false
|
||||
source_ref: "xroar.c:702 (romlist dragondos), dragondos.c:173 (default @dragondos_compat)"
|
||||
notes: "Latest DragonDOS version. Fallback chain tries DOSPlus -> SuperDOS -> DragonDOS -> Cumana. Older versions: ddos12, ddos40, ddos15, ddos10."
|
||||
|
||||
- name: "dplus49b.rom"
|
||||
system: dragon64
|
||||
description: "DOSPlus 4.9b (Dragon compatible DOS)"
|
||||
required: false
|
||||
source_ref: "xroar.c:703 (romlist dosplus)"
|
||||
notes: "First tried in DragonDOS-compatible cartridge. Enhanced Dragon DOS. Older version: dplus48 (alias: dosplus-4.8, DOSPLUS)."
|
||||
|
||||
- name: "sdose6.rom"
|
||||
system: dragon64
|
||||
description: "SuperDOS E6 (Dragon compatible DOS)"
|
||||
required: false
|
||||
aliases: ["PNP - SuperDOS E6"]
|
||||
source_ref: "xroar.c:704 (romlist superdos)"
|
||||
notes: "Latest SuperDOS. Older versions: sdose5, sdose4."
|
||||
|
||||
- name: "cdos20.rom"
|
||||
system: dragon64
|
||||
description: "Cumana DOS 2.0 (Dragon compatible DOS)"
|
||||
required: false
|
||||
aliases: [CDOS20, "CumanaDOSv2.0"]
|
||||
source_ref: "xroar.c:705 (romlist cumana)"
|
||||
|
||||
- name: "delta2.rom"
|
||||
system: dragon64
|
||||
description: "Delta System 2 (Premier Microsystems disk controller)"
|
||||
required: false
|
||||
aliases: ["Premier Micros - DeltaDOS"]
|
||||
source_ref: "xroar.c:711 (romlist delta), deltados.c:160 (default @delta)"
|
||||
notes: "Latest Delta version. Older versions: delta1a, delta19, delta, deltados."
|
||||
|
||||
- name: "cp450dsk.rom"
|
||||
system: coco
|
||||
description: "Prologica CP-450 DOS cartridge"
|
||||
required: false
|
||||
source_ref: "xroar.c:709 (romlist cp450)"
|
||||
notes: "Falls back to RS-DOS if not found."
|
||||
|
||||
# ---- Other cartridge ROMs (all optional) ----
|
||||
|
||||
- name: "orch90.rom"
|
||||
system: coco
|
||||
description: "Orchestra-90 CC sound cartridge ROM"
|
||||
required: false
|
||||
source_ref: "orch90.c:122 (default rom = orch90)"
|
||||
notes: "Sound synthesis cartridge. Loaded directly (no romlist fallback)."
|
||||
|
||||
- name: "mcx128.rom"
|
||||
system: mc10
|
||||
description: "MCX128 memory expansion BASIC ROM"
|
||||
required: false
|
||||
aliases: [MCX_Basic_21]
|
||||
source_ref: "xroar.c:724 (romlist mcx128), mcx128.c:208 (default @mcx128)"
|
||||
notes: "128K memory expansion for MC-10. Adds enhanced BASIC."
|
||||
|
||||
- name: "mcx128a.rom"
|
||||
system: mc10
|
||||
description: "MCX128 memory expansion BASIC ROM (AZERTY)"
|
||||
required: false
|
||||
aliases: [MCX_Basic_21_AZERTY]
|
||||
source_ref: "xroar.c:725 (romlist mcx128_azerty), xroar.c:632-633 (cart mcx128a)"
|
||||
notes: "AZERTY keyboard variant for Alice. Same MCX128 hardware."
|
||||
|
||||
- name: "yados.rom"
|
||||
system: coco
|
||||
description: "YADOS (Glenside IDE interface ROM)"
|
||||
required: false
|
||||
source_ref: "xroar.c:690 (romlist glenside_ide), idecart.c:204 (default @glenside_ide)"
|
||||
notes: "IDE hard disk interface. Fallback: hdblba.rom (alternative IDE ROM)."
|
||||
|
||||
- name: "sdbdos.rom"
|
||||
system: dragon64
|
||||
description: "SDBDOS (MOOH memory cartridge ROM)"
|
||||
required: false
|
||||
source_ref: "mooh.c:254 (default rom = sdbdos)"
|
||||
notes: "SD card boot DOS for MOOH cartridge. Loaded directly."
|
||||
|
||||
- name: "dragonfly-2.3.rom"
|
||||
system: dragon64
|
||||
description: "Ikon Ultra Drive Dragonfly ROM 2.3"
|
||||
required: false
|
||||
source_ref: "xroar.c:715 (romlist ikon), ikon.c:151 (default @ikon)"
|
||||
notes: "Experimental. Ikon Ultra Drive storage interface. Older version: dragonfly-1.3."
|
||||
@@ -1,10 +1,14 @@
|
||||
emulator: ymir
|
||||
type: standalone + libretro
|
||||
core_classification: community_fork
|
||||
source: "https://github.com/warmenhoven/Ymir/tree/libretro"
|
||||
source:
|
||||
standalone: "https://github.com/StrikerX3/Ymir"
|
||||
libretro: "https://github.com/warmenhoven/Ymir/tree/libretro"
|
||||
upstream: "https://github.com/StrikerX3/Ymir"
|
||||
profiled_date: "2026-03-25"
|
||||
core_version: "PR#746"
|
||||
profiled_date: "2026-03-26"
|
||||
core_version:
|
||||
standalone: "v0.2.1"
|
||||
libretro: "PR#746"
|
||||
display_name: "Sega - Saturn (Ymir)"
|
||||
cores:
|
||||
- ymir
|
||||
@@ -16,22 +20,27 @@ notes: |
|
||||
warmenhoven wraps the shared ymir-core library (PR #746, not yet merged).
|
||||
No .info file exists in libretro-core-info.
|
||||
|
||||
Saturn BIOS search order:
|
||||
1. {system}/sega_101.bin
|
||||
2. {system}/mpr-17933.bin
|
||||
3. {system}/saturn_bios.bin
|
||||
First file found with exact 512 KiB size wins. No HLE fallback for IPL.
|
||||
Standalone: scans configured directories recursively for files matching
|
||||
the expected size. No specific filenames required. Identifies known ROMs
|
||||
by XXH128 hash from an internal database (19 IPL variants, 4 CD Block
|
||||
versions, 2 ROM carts). Unknown files are accepted if size matches.
|
||||
|
||||
CD Block LLE: optional low-level CD drive emulation. Scans {system}/cdb/
|
||||
for any 64 KiB file. Falls back to HLE when disabled or no ROM found.
|
||||
Known versions in upstream db: 1.04, 1.05, 1.06.
|
||||
Libretro: searches {system}/sega_101.bin, mpr-17933.bin, saturn_bios.bin
|
||||
in order. First file found with exact 512 KiB size wins.
|
||||
|
||||
ROM cartridges: KoF95 and Ultraman shipped with physical ROM carts. The
|
||||
core auto-detects required cartridge from its game database.
|
||||
Batocera standalone: configgen maps IPLROMImages to /userdata/bios,
|
||||
CDBlockROMImages to /userdata/roms/saturn/cdb/, ROMCartImages to
|
||||
/userdata/roms/saturn.
|
||||
|
||||
No HLE fallback for IPL ROM. CD Block LLE is optional; falls back to
|
||||
HLE when disabled or no ROM found. Known CDB versions: 1.04, 1.05, 1.06.
|
||||
|
||||
ROM cartridges: KoF95 and Ultraman shipped with physical ROM carts.
|
||||
Auto-detected from game database when loading a disc.
|
||||
|
||||
Addon cartridges: 1M/4M DRAM expansion handled via core option (no files).
|
||||
|
||||
Upstream uses XXH128 hashes for ROM identification only, not validation.
|
||||
XXH128 hashes used for ROM identification only, not validation.
|
||||
All file loading validates size only.
|
||||
|
||||
files:
|
||||
@@ -42,7 +51,9 @@ files:
|
||||
validation: [size]
|
||||
aliases: [mpr-17933.bin, saturn_bios.bin]
|
||||
description: "Saturn IPL ROM (BIOS). Any region accepted."
|
||||
source_ref: "libretro.cpp:260-263,534-558"
|
||||
source_ref:
|
||||
standalone: "apps/ymir-sdl3/src/util/rom_loader.cpp:9-22, apps/ymir-sdl3/src/app/rom_manager.cpp:14-56, libs/ymir-core/include/ymir/sys/memory_defs.hpp:9"
|
||||
libretro: "libretro.cpp:260-263,534-558"
|
||||
|
||||
- name: "cdb/cdb_rom.bin"
|
||||
system: sega-saturn
|
||||
@@ -50,8 +61,10 @@ files:
|
||||
hle_fallback: true
|
||||
size: 65536
|
||||
validation: [size]
|
||||
description: "SH1 CD Block ROM for low-level CD drive emulation. Core scans cdb/ subdirectory for any matching file."
|
||||
source_ref: "libretro.cpp:567-591"
|
||||
description: "SH1 CD Block ROM for low-level CD drive emulation. Scans cdb/ subdirectory for any matching file."
|
||||
source_ref:
|
||||
standalone: "apps/ymir-sdl3/src/util/rom_loader.cpp:25-38, apps/ymir-sdl3/src/app/rom_manager.cpp:58-93, libs/ymir-core/include/ymir/hw/sh1/sh1_defs.hpp:7"
|
||||
libretro: "libretro.cpp:567-591"
|
||||
|
||||
- name: "mpr-18811-mx.ic1"
|
||||
system: sega-saturn
|
||||
@@ -60,7 +73,9 @@ files:
|
||||
size: 2097152
|
||||
validation: [size]
|
||||
description: "ROM cartridge for The King of Fighters '95."
|
||||
source_ref: "libretro.cpp:619-620,597-616"
|
||||
source_ref:
|
||||
standalone: "apps/ymir-sdl3/src/app/rom_manager.cpp:96-131, libs/ymir-core/include/ymir/db/rom_cart_db.hpp:19-22"
|
||||
libretro: "libretro.cpp:619-620,597-616"
|
||||
|
||||
- name: "mpr-19367-mx.ic1"
|
||||
system: sega-saturn
|
||||
@@ -69,4 +84,6 @@ files:
|
||||
size: 2097152
|
||||
validation: [size]
|
||||
description: "ROM cartridge for Ultraman: Hikari no Kyojin Densetsu."
|
||||
source_ref: "libretro.cpp:619,621,597-616"
|
||||
source_ref:
|
||||
standalone: "apps/ymir-sdl3/src/app/rom_manager.cpp:96-131, libs/ymir-core/include/ymir/db/rom_cart_db.hpp:25-28"
|
||||
libretro: "libretro.cpp:619,621,597-616"
|
||||
|
||||
143
emulators/zc210.yml
Normal file
143
emulators/zc210.yml
Normal file
@@ -0,0 +1,143 @@
|
||||
emulator: Zelda Classic v2.10
|
||||
type: libretro
|
||||
core_classification: game_engine
|
||||
source: https://github.com/netux79/zc210-libretro
|
||||
upstream: https://www.zeldaclassic.com/
|
||||
core_version: "2.10 Beta 5"
|
||||
display_name: Zelda Classic v2.10 (ZC210)
|
||||
profiled_date: 2026-03-26
|
||||
cores:
|
||||
- zc210
|
||||
systems:
|
||||
- zc210
|
||||
notes: >-
|
||||
Libretro port of Zelda Classic 2.10 quest player by netux79. Removed
|
||||
Allegro dependency, runs .qst quest files. No ZQuest editor, no ZC Music
|
||||
(mp3/ogg), no menus. MIDI playback via SoundFont (SF2). Data files
|
||||
distributed with the core source in the datfile/ directory.
|
||||
files:
|
||||
- name: zcdata.dat
|
||||
path: zc210/zcdata.dat
|
||||
description: main engine data (fonts, palette, SFX samples, MIDI tracks)
|
||||
required: true
|
||||
source_ref: "zelda.cpp:1173-1181 load_datafile + signature validation"
|
||||
|
||||
- name: default.sf2
|
||||
path: zc210/sf2/default.sf2
|
||||
description: default SoundFont for MIDI music playback
|
||||
required: true
|
||||
source_ref: "zc_sys.cpp:2234-2238 file_exists + midi_init"
|
||||
|
||||
- name: custom0.sf2
|
||||
path: zc210/sf2/custom0.sf2
|
||||
description: alternative SoundFont (selectable via core option)
|
||||
required: false
|
||||
source_ref: "zc_sys.cpp:2234-2238, libretro.cpp:147"
|
||||
|
||||
- name: custom1.sf2
|
||||
path: zc210/sf2/custom1.sf2
|
||||
description: alternative SoundFont (selectable via core option)
|
||||
required: false
|
||||
source_ref: "zc_sys.cpp:2234-2238, libretro.cpp:147"
|
||||
|
||||
- name: custom2.sf2
|
||||
path: zc210/sf2/custom2.sf2
|
||||
description: alternative SoundFont (selectable via core option)
|
||||
required: false
|
||||
source_ref: "zc_sys.cpp:2234-2238, libretro.cpp:147"
|
||||
|
||||
- name: custom3.sf2
|
||||
path: zc210/sf2/custom3.sf2
|
||||
description: alternative SoundFont (selectable via core option)
|
||||
required: false
|
||||
source_ref: "zc_sys.cpp:2234-2238, libretro.cpp:147"
|
||||
|
||||
- name: custom4.sf2
|
||||
path: zc210/sf2/custom4.sf2
|
||||
description: alternative SoundFont (selectable via core option)
|
||||
required: false
|
||||
source_ref: "zc_sys.cpp:2234-2238, libretro.cpp:147"
|
||||
|
||||
- name: custom5.sf2
|
||||
path: zc210/sf2/custom5.sf2
|
||||
description: alternative SoundFont (selectable via core option)
|
||||
required: false
|
||||
source_ref: "zc_sys.cpp:2234-2238, libretro.cpp:147"
|
||||
|
||||
- name: custom6.sf2
|
||||
path: zc210/sf2/custom6.sf2
|
||||
description: alternative SoundFont (selectable via core option)
|
||||
required: false
|
||||
source_ref: "zc_sys.cpp:2234-2238, libretro.cpp:147"
|
||||
|
||||
- name: custom7.sf2
|
||||
path: zc210/sf2/custom7.sf2
|
||||
description: alternative SoundFont (selectable via core option)
|
||||
required: false
|
||||
source_ref: "zc_sys.cpp:2234-2238, libretro.cpp:147"
|
||||
|
||||
- name: custom8.sf2
|
||||
path: zc210/sf2/custom8.sf2
|
||||
description: alternative SoundFont (selectable via core option)
|
||||
required: false
|
||||
source_ref: "zc_sys.cpp:2234-2238, libretro.cpp:147"
|
||||
|
||||
- name: custom9.sf2
|
||||
path: zc210/sf2/custom9.sf2
|
||||
description: alternative SoundFont (selectable via core option)
|
||||
required: false
|
||||
source_ref: "zc_sys.cpp:2234-2238, libretro.cpp:147"
|
||||
|
||||
- name: LinkTothePast.dat
|
||||
path: zc210/sfx/LinkTothePast.dat
|
||||
description: Zelda A Link to the Past SFX replacement
|
||||
required: false
|
||||
source_ref: "zelda.cpp:1193-1218, libretro.cpp:148"
|
||||
|
||||
- name: LinksAwakening.dat
|
||||
path: zc210/sfx/LinksAwakening.dat
|
||||
description: Zelda Link's Awakening SFX replacement
|
||||
required: false
|
||||
source_ref: "zelda.cpp:1193-1218, libretro.cpp:148"
|
||||
|
||||
- name: BSZelda.dat
|
||||
path: zc210/sfx/BSZelda.dat
|
||||
description: BS Zelda SFX replacement
|
||||
required: false
|
||||
source_ref: "zelda.cpp:1193-1218, libretro.cpp:148"
|
||||
|
||||
- name: Metroid.dat
|
||||
path: zc210/sfx/Metroid.dat
|
||||
description: Metroid NES SFX replacement
|
||||
required: false
|
||||
source_ref: "zelda.cpp:1193-1218, libretro.cpp:148"
|
||||
|
||||
- name: Tortuga.dat
|
||||
path: zc210/sfx/Tortuga.dat
|
||||
description: Link to Tortuga quest SFX replacement
|
||||
required: false
|
||||
source_ref: "zelda.cpp:1193-1218, libretro.cpp:148"
|
||||
|
||||
- name: Castle.dat
|
||||
path: zc210/sfx/Castle.dat
|
||||
description: Castle Hunt quest SFX replacement
|
||||
required: false
|
||||
source_ref: "zelda.cpp:1193-1218, libretro.cpp:148"
|
||||
|
||||
- name: Elise.dat
|
||||
path: zc210/sfx/Elise.dat
|
||||
description: Search for Elise quest SFX replacement
|
||||
required: false
|
||||
source_ref: "zelda.cpp:1193-1218, libretro.cpp:148"
|
||||
|
||||
- name: SwangSong.dat
|
||||
path: zc210/sfx/SwangSong.dat
|
||||
description: Swang Song quest SFX replacement
|
||||
required: false
|
||||
source_ref: "zelda.cpp:1193-1218, libretro.cpp:148"
|
||||
|
||||
- name: Custom.dat
|
||||
path: zc210/sfx/Custom.dat
|
||||
description: user-provided custom SFX replacement
|
||||
required: false
|
||||
source_ref: "zelda.cpp:1193-1218, libretro.cpp:148"
|
||||
Reference in New Issue
Block a user