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:
Abdessamad Derraz
2026-03-26 07:01:16 +01:00
parent 3f676b75e8
commit bbe4936cf2
18 changed files with 1660 additions and 96 deletions

View File

@@ -2,7 +2,7 @@
Complete BIOS and firmware packs for Batocera, EmuDeck, Lakka, Recalbox, RetroArch, RetroBat, RetroDECK, RetroPie, and RomM. Complete BIOS and firmware packs for Batocera, EmuDeck, Lakka, Recalbox, RetroArch, RetroBat, RetroDECK, RetroPie, and RomM.
**6,748** verified files across **305** systems, ready to extract into your emulator's BIOS directory. **6,748** verified files across **322** systems, ready to extract into your emulator's BIOS directory.
## Download BIOS packs ## Download BIOS packs
@@ -26,14 +26,14 @@ BIOS, firmware, and system files for consoles from Atari to PlayStation 3.
Each file is checked against the emulator's source code to match what the code actually loads at runtime. Each file is checked against the emulator's source code to match what the code actually loads at runtime.
- **9 platforms** supported with platform-specific verification - **9 platforms** supported with platform-specific verification
- **307 emulators** profiled from source (RetroArch cores + standalone) - **319 emulators** profiled from source (RetroArch cores + standalone)
- **305 systems** covered (NES, SNES, PlayStation, Saturn, Dreamcast, ...) - **322 systems** covered (NES, SNES, PlayStation, Saturn, Dreamcast, ...)
- **6,748 files** verified with MD5, SHA1, CRC32 checksums - **6,748 files** verified with MD5, SHA1, CRC32 checksums
- **5251 MB** total collection size - **5251 MB** total collection size
## Supported systems ## Supported systems
NES, SNES, Nintendo 64, GameCube, Wii, Game Boy, Game Boy Advance, Nintendo DS, Nintendo 3DS, Switch, PlayStation, PlayStation 2, PlayStation 3, PSP, PS Vita, Mega Drive, Saturn, Dreamcast, Game Gear, Master System, Neo Geo, Atari 2600, Atari 7800, Atari Lynx, Atari ST, MSX, PC Engine, TurboGrafx-16, ColecoVision, Intellivision, Commodore 64, Amiga, ZX Spectrum, Arcade (MAME), and 271+ more. NES, SNES, Nintendo 64, GameCube, Wii, Game Boy, Game Boy Advance, Nintendo DS, Nintendo 3DS, Switch, PlayStation, PlayStation 2, PlayStation 3, PSP, PS Vita, Mega Drive, Saturn, Dreamcast, Game Gear, Master System, Neo Geo, Atari 2600, Atari 7800, Atari Lynx, Atari ST, MSX, PC Engine, TurboGrafx-16, ColecoVision, Intellivision, Commodore 64, Amiga, ZX Spectrum, Arcade (MAME), and 288+ more.
Full list with per-file details: **[https://abdess.github.io/retrobios/](https://abdess.github.io/retrobios/)** Full list with per-file details: **[https://abdess.github.io/retrobios/](https://abdess.github.io/retrobios/)**
@@ -79,4 +79,4 @@ See [CONTRIBUTING.md](CONTRIBUTING.md) for guidelines.
This repository provides BIOS files for personal backup and archival purposes. This repository provides BIOS files for personal backup and archival purposes.
*Auto-generated on 2026-03-25T23:43:15Z* *Auto-generated on 2026-03-26T02:33:34Z*

View File

@@ -1,5 +1,5 @@
{ {
"generated_at": "2026-03-25T23:42:57Z", "generated_at": "2026-03-26T02:33:17Z",
"total_files": 6748, "total_files": 6748,
"total_size": 5505760050, "total_size": 5505760050,
"files": { "files": {
@@ -95438,6 +95438,24 @@
"FdsBios.bin": [ "FdsBios.bin": [
"57fe1bdee955bb48d357e463ccbf129496930b62" "57fe1bdee955bb48d357e463ccbf129496930b62"
], ],
"dragon32": [
"f2dab125673e653995a83bf6b793e3390ec7f65a"
],
"d32rom": [
"f2dab125673e653995a83bf6b793e3390ec7f65a"
],
"Dragon Data Ltd - Dragon 32 - IC17": [
"f2dab125673e653995a83bf6b793e3390ec7f65a"
],
"Color Basic v1.2 (1982)(Tandy)": [
"0f14dc46c647510eb0b7bd3f53e33da07907d04f"
],
"mx1600bas_zephyr": [
"70a464edf3a654ed4ffe687e6dee4f0d2acc758b"
],
"PNP - SuperDOS E6": [
"ef157016386ed463374de6bac84d1f8ce654ed80"
],
"N88_0.ROM": [ "N88_0.ROM": [
"d1ae642aed4f0584eeb81ff50180db694e5101d4" "d1ae642aed4f0584eeb81ff50180db694e5101d4"
], ],
@@ -115851,6 +115869,10 @@
"604556b2e62860af18db5a77f2956ebc75450020", "604556b2e62860af18db5a77f2956ebc75450020",
"6e89d1227581c76441a53d605f9e324185f1da33", "6e89d1227581c76441a53d605f9e324185f1da33",
"57fe1bdee955bb48d357e463ccbf129496930b62", "57fe1bdee955bb48d357e463ccbf129496930b62",
"f2dab125673e653995a83bf6b793e3390ec7f65a",
"0f14dc46c647510eb0b7bd3f53e33da07907d04f",
"70a464edf3a654ed4ffe687e6dee4f0d2acc758b",
"ef157016386ed463374de6bac84d1f8ce654ed80",
"d1ae642aed4f0584eeb81ff50180db694e5101d4", "d1ae642aed4f0584eeb81ff50180db694e5101d4",
"4ae4d37409ff99411a623da9f6a44192170a854e", "4ae4d37409ff99411a623da9f6a44192170a854e",
"e94278682ef9e9bbb82201f72c50382748dcea2a", "e94278682ef9e9bbb82201f72c50382748dcea2a",

View File

@@ -3,8 +3,8 @@ type: standalone + libretro
core_classification: official_port core_classification: official_port
source: "https://github.com/BlitterStudio/amiberry" source: "https://github.com/BlitterStudio/amiberry"
upstream: "https://github.com/tonioni/WinUAE" upstream: "https://github.com/tonioni/WinUAE"
profiled_date: "2026-03-25" profiled_date: "2026-03-26"
core_version: "v8.1.1" core_version: "v8.1.2"
display_name: "Commodore - Amiga (Amiberry)" display_name: "Commodore - Amiga (Amiberry)"
cores: [amiberry] cores: [amiberry]
systems: systems:
@@ -17,45 +17,60 @@ notes: |
and libretro core. No built-in kickstart — requires a real Kickstart ROM or and libretro core. No built-in kickstart — requires a real Kickstart ROM or
external AROS replacement files (aros-ext.bin + aros-rom.bin). external AROS replacement files (aros-ext.bin + aros-rom.bin).
Core option "amiberry_kickstart" overrides ROM selection: auto, kick.rom, Libretro core option "amiberry_kickstart" overrides ROM selection: auto,
kick13.rom, kick20.rom, kick31.rom, kick205.rom, kick40068.A1200, kick.rom, kick13.rom, kick20.rom, kick31.rom, kick205.rom, kick40068.A1200,
kick40068.A4000, cd32.rom, cdtv.rom. "auto" selects per model. kick40068.A4000, cd32.rom, cdtv.rom. "auto" selects per model.
ref: libretro/libretro.cpp:558,621-640 ref: libretro/libretro.cpp:558,621-640
Default model is A500 (KS 1.3). ROM search directories: Libretro ROM search directories (in order): save_dir/Kickstarts,
save_dir/Kickstarts, system_dir/Kickstarts, system_dir/save-data/Kickstarts, system_dir/Kickstarts, system_dir/save-data/Kickstarts, system_dir.
then system_dir as fallback. ref: libretro/libretro.cpp:2722-2742
ref: libretro/libretro.cpp:2740-2756
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 ROM identification uses SHA1 against WinUAE database (340+ entries) but does
not reject unknown ROMs. Cloanto encrypted ROMs supported with rom.key. 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 Munt MT-32/CM-32L emulation compiled in (WITH_MIDIEMU). ROMs loaded from
mt32-roms/ subdirectory of the ROM path. mt32-roms/ subdirectory of the ROM path. Split ROM pairs supported
ref: src/midiemu.cpp:120-157 (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, Keyboard MCU emulation (keyboard_mode setting) loads MCU ROMs via ROM
WHDLoad, AmiQuit, JST, whdload_db.xml. These ship with the standalone build database scanning. Three MCU types supported: 6570-036 (A500/A600/A1000),
but must be obtained separately for the libretro core. 68HC05 (A1200), D8039HLC (A2000).
ref: libretro/libretro.cpp:1151-1184 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: files:
# --- Kickstart ROMs (searched by find_kickstart_in_system_dir) --- # --- Kickstart ROMs ---
# ref: libretro/libretro.cpp:1502-1565 # 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 - name: kick13.rom
system: commodore-amiga system: commodore-amiga
required: true required: true
size: 262144 size: 262144
note: "A500 Kickstart v1.3 rev 34.005, default for A500 model" 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 - name: kick12.rom
system: commodore-amiga system: commodore-amiga
required: false required: false
size: 262144 size: 262144
note: "A500 Kickstart v1.2 rev 33.180, for A500OG model" 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 - name: kick20.rom
system: commodore-amiga system: commodore-amiga
@@ -63,41 +78,41 @@ files:
size: 524288 size: 524288
aliases: [kick204.rom] aliases: [kick204.rom]
note: "A500+ Kickstart v2.04 rev 37.175" 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 - name: kick205.rom
system: commodore-amiga system: commodore-amiga
required: false required: false
size: 524288 size: 524288
note: "A600 Kickstart v2.05 rev 37.350, also used for WHDLoad" 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 - name: kick31.rom
system: commodore-amiga system: commodore-amiga
required: false required: false
size: 524288 size: 524288
note: "Kickstart v3.1 (generic), first candidate for A1200 and A4000" 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 - name: kick40068.A1200
system: commodore-amiga system: commodore-amiga
required: false required: false
size: 524288 size: 524288
note: "A1200 Kickstart v3.1 rev 40.68, fallback after kick31.rom" 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 - name: kick40068.A4000
system: commodore-amiga system: commodore-amiga
required: false required: false
size: 524288 size: 524288
note: "A4000 Kickstart v3.1 rev 40.68, fallback after kick31.rom" 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 - name: kick.rom
system: commodore-amiga system: commodore-amiga
required: false required: false
note: "Generic name, any Kickstart ROM. Last resort fallback for all models." 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 --- # --- CD32 ROMs ---
@@ -107,7 +122,7 @@ files:
size: 524288 size: 524288
aliases: [amiga-os-310-cd32.rom, kick40060.CD32] aliases: [amiga-os-310-cd32.rom, kick40060.CD32]
note: "CD32 Kickstart v3.1 rev 40.60" 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 - name: cd32ext.rom
system: commodore-cd32 system: commodore-cd32
@@ -115,7 +130,7 @@ files:
size: 524288 size: 524288
aliases: [amiga-ext-310-cd32.rom, "CD32 Extended.ROM"] aliases: [amiga-ext-310-cd32.rom, "CD32 Extended.ROM"]
note: "CD32 extended ROM rev 40.60. Not needed if using a combined 1MB 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 --- # --- CDTV ROMs ---
@@ -124,17 +139,17 @@ files:
required: false required: false
aliases: [kick34005.CDTV] aliases: [kick34005.CDTV]
note: "CDTV extended ROM v1.00, used as kickstart candidate" 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 - name: cdtvext.rom
system: commodore-cdtv system: commodore-cdtv
required: false required: false
aliases: ["CDTV Extended.ROM"] aliases: ["CDTV Extended.ROM"]
note: "CDTV extended ROM file" 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 --- # --- 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 - name: aros-ext.bin
system: commodore-amiga system: commodore-amiga
@@ -156,36 +171,78 @@ files:
system: commodore-amiga system: commodore-amiga
required: false required: false
note: "Decryption key for Cloanto Amiga Forever encrypted ROMs" 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 --- # --- Munt MT-32/CM-32L MIDI ROMs ---
# Located in mt32-roms/ subdirectory of the ROM path # Located in mt32-roms/ subdirectory of the ROM path.
# ref: src/midiemu.cpp:120-157 midi_emu_add_roms # 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 - name: mt32-roms/mt32_control.rom
system: commodore-amiga system: commodore-amiga
required: false 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" 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 - name: mt32-roms/pcm_mt32.rom
system: commodore-amiga system: commodore-amiga
required: false 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" note: "Roland MT-32 PCM ROM for Munt MIDI emulation"
source_ref: "src/midiemu.cpp:133-140 MT-32 PCM loading" source_ref: "src/midiemu.cpp:133-140 MT-32 PCM loading"
- name: mt32-roms/cm32l_control.rom - name: mt32-roms/cm32l_control.rom
system: commodore-amiga system: commodore-amiga
required: false 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" note: "Roland CM-32L control ROM for Munt MIDI emulation"
source_ref: "src/midiemu.cpp:25-37 cm32lctl candidates, 151-156 load loop" source_ref: "src/midiemu.cpp:25-37 cm32lctl candidates, 151-156 load loop"
- name: mt32-roms/pcm_cm32l.rom - name: mt32-roms/pcm_cm32l.rom
system: commodore-amiga system: commodore-amiga
required: false 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" note: "Roland CM-32L PCM ROM for Munt MIDI emulation"
source_ref: "src/midiemu.cpp:142-149 CM-32L PCM loading" source_ref: "src/midiemu.cpp:142-149 CM-32L PCM loading"

55
emulators/citron.yml Normal file
View 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
View 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
View 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"

View File

@@ -1,10 +1,10 @@
emulator: FS-UAE emulator: FS-UAE
type: libretro type: standalone + libretro
core_classification: community_fork core_classification: community_fork
source: "https://github.com/libretro/libretro-fsuae" source: "https://github.com/libretro/libretro-fsuae"
upstream: "https://github.com/FrodeSolheim/fs-uae" upstream: "https://github.com/FrodeSolheim/fs-uae"
profiled_date: "2026-03-23" profiled_date: "2026-03-26"
core_version: "v2.7.15" core_version: "v5.0.7"
display_name: "Commodore - Amiga (FS-UAE)" display_name: "Commodore - Amiga (FS-UAE)"
cores: cores:
- fsuae - fsuae
@@ -14,122 +14,143 @@ systems:
notes: | notes: |
FS-UAE is an Amiga emulator by Frode Solheim, based on UAE/WinUAE. FS-UAE is an Amiga emulator by Frode Solheim, based on UAE/WinUAE.
ROMs loaded from save_dir/fsuae/Kickstarts/ (not system_dir). Standalone: scans --kickstarts_dir for .rom/.bin files (default: Documents/FS-UAE/Kickstarts/).
base_dir = RETRO_ENVIRONMENT_GET_SAVE_DIRECTORY/fsuae (paths.c:197). Batocera overrides to bios/amiga/ via --kickstarts_dir (fsuaePaths.py:8, fsuaeGenerator.py:68).
Also scans base_dir/AmigaForever/Amiga Files/Shared/rom/ (config.c:129-135). Libretro port: scans save_dir/fsuae/Kickstarts/ (frozen at v2.7.15).
Scans for .rom and .bin files. Identification by SHA-1 checksum, not filename. Identification by SHA-1 checksum, not filename (rommgr.cpp:92-151, romservice.py:78-91).
AROS kickstart (512 KB) bundled in fs-uae.dat as fallback for all models. AROS kickstart (1 MB) compiled into binary as fallback for all models (rommgr.cpp:112).
rom.key enables decryption of Cloanto Amiga Forever encrypted ROMs. 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. Supported models: A1000, A500, A500+, A600, A1200, A3000, A4000, A4000T, CD32, CDTV.
Default model is A500 (config.c:42). Each model auto-selects its kickstart Default model is A500. Each model auto-selects its kickstart via quickstart
via quickstart mechanism (cfgfile.c:7111-7154, config.c:140). 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 ROM database shared between standalone and libretro (same WinUAE-derived rommgr.cpp).
directory scan, not by explicit filename lookup. 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.
Libretro port is frozen at v2.7.15. Upstream ROM database is larger (3030
vs 1980 lines in rommgr). Core functionality equivalent for standard models.
files: files:
- name: "amiga-os-130.rom" - name: "amiga-os-130.rom"
system: amiga system: amiga
required: false required: false
hle_fallback: true hle_fallback: true
size: 262144
sha1: "891e9a547772fe0c6c19b610baf8bc4ea7fcb785" sha1: "891e9a547772fe0c6c19b610baf8bc4ea7fcb785"
validation: [sha1] validation: [sha1]
mode: both
note: "Amiga 500 Kickstart 1.3 r34.5. Default model ROM." 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" - name: "amiga-os-204.rom"
system: amiga system: amiga
required: false required: false
hle_fallback: true hle_fallback: true
size: 524288
sha1: "c5839f5cb98a7a8947065c3ed2f14f5f42e334a1" sha1: "c5839f5cb98a7a8947065c3ed2f14f5f42e334a1"
validation: [sha1] validation: [sha1]
mode: both
note: "Amiga 500+ Kickstart 2.04 r37.175." 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" - name: "amiga-os-205.rom"
system: amiga system: amiga
required: false required: false
hle_fallback: true hle_fallback: true
size: 524288
sha1: "02843c4253bbd29aba535b0aa3bd9a85034ecde4" sha1: "02843c4253bbd29aba535b0aa3bd9a85034ecde4"
validation: [sha1] validation: [sha1]
mode: both
note: "Amiga 600 Kickstart 2.05 r37.350." 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" - name: "amiga-os-120.rom"
system: amiga system: amiga
required: false required: false
hle_fallback: true hle_fallback: true
size: 262144
sha1: "11f9e62cf299f72184835b7b2a70a16333fc0d88" sha1: "11f9e62cf299f72184835b7b2a70a16333fc0d88"
validation: [sha1] validation: [sha1]
mode: both
note: "Amiga 1000 Kickstart 1.2 r33.180." 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" - name: "amiga-os-310-a1200.rom"
system: amiga system: amiga
required: false required: false
hle_fallback: true hle_fallback: true
size: 524288
sha1: "e21545723fe8374e91342617604f1b3d703094f1" sha1: "e21545723fe8374e91342617604f1b3d703094f1"
validation: [sha1] validation: [sha1]
mode: both
note: "Amiga 1200 Kickstart 3.1 r40.68." 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" - name: "amiga-os-310-a3000.rom"
system: amiga system: amiga
required: false required: false
hle_fallback: true hle_fallback: true
size: 524288
sha1: "f8e210d72b4c4853e0c9b85d223ba20e3d1b36ee" sha1: "f8e210d72b4c4853e0c9b85d223ba20e3d1b36ee"
validation: [sha1] validation: [sha1]
mode: both
note: "Amiga 3000 Kickstart 3.1 r40.68." 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" - name: "amiga-os-310-a4000.rom"
system: amiga system: amiga
required: false required: false
hle_fallback: true hle_fallback: true
size: 524288
sha1: "5fe04842d04a489720f0f4bb0e46948199406f49" sha1: "5fe04842d04a489720f0f4bb0e46948199406f49"
validation: [sha1] validation: [sha1]
mode: both
note: "Amiga 4000 Kickstart 3.1 r40.68." 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" - name: "amiga-os-310-cd32.rom"
system: amiga system: amiga
required: false required: false
hle_fallback: true hle_fallback: true
size: 524288
sha1: "3525be8887f79b5929e017b42380a79edfee542d" sha1: "3525be8887f79b5929e017b42380a79edfee542d"
validation: [sha1] validation: [sha1]
mode: both
note: "Amiga CD32 Kickstart 3.1 r40.60." 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" - name: "amiga-ext-310-cd32.rom"
system: amiga system: amiga
required: false required: false
size: 524288
sha1: "5bef3d628ce59cc02a66e6e4ae0da48f60e78f7f" sha1: "5bef3d628ce59cc02a66e6e4ae0da48f60e78f7f"
validation: [sha1] validation: [sha1]
mode: both
note: "CD32 extended ROM r40.60. Required for CD32 mode." 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" - name: "cd32fmv.rom"
system: amiga system: amiga
required: false required: false
size: 262144
sha1: "03ca81c7a7b259cf64bc9582863eca0f6529f435" sha1: "03ca81c7a7b259cf64bc9582863eca0f6529f435"
validation: [sha1] validation: [sha1]
note: "CD32 Full Motion Video cartridge ROM. For CD32/FMV model." mode: both
source_ref: "sources/src/rommgr.c:208-209 (id=23, ROMTYPE_CD32CART)" 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" - name: "amiga-ext-130-cdtv.rom"
system: amiga system: amiga
required: false required: false
size: 262144
sha1: "7ba40ffa17e500ed9fed041f3424bd81d9c907be" sha1: "7ba40ffa17e500ed9fed041f3424bd81d9c907be"
validation: [sha1] validation: [sha1]
note: "CDTV extended ROM v1.0. Required for CDTV mode." mode: both
source_ref: "sources/src/rommgr.c:213-214 (id=20, ROMTYPE_EXTCDTV)" 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" - name: "rom.key"
system: amiga system: amiga
required: false required: false
mode: both
note: "Cloanto Amiga Forever decryption key. Enables encrypted ROM loading." 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
View 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
View 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
View 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
View 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
View 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
View 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
View 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
View 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."

View File

@@ -1,10 +1,14 @@
emulator: ymir emulator: ymir
type: standalone + libretro type: standalone + libretro
core_classification: community_fork 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" upstream: "https://github.com/StrikerX3/Ymir"
profiled_date: "2026-03-25" profiled_date: "2026-03-26"
core_version: "PR#746" core_version:
standalone: "v0.2.1"
libretro: "PR#746"
display_name: "Sega - Saturn (Ymir)" display_name: "Sega - Saturn (Ymir)"
cores: cores:
- ymir - ymir
@@ -16,22 +20,27 @@ notes: |
warmenhoven wraps the shared ymir-core library (PR #746, not yet merged). warmenhoven wraps the shared ymir-core library (PR #746, not yet merged).
No .info file exists in libretro-core-info. No .info file exists in libretro-core-info.
Saturn BIOS search order: Standalone: scans configured directories recursively for files matching
1. {system}/sega_101.bin the expected size. No specific filenames required. Identifies known ROMs
2. {system}/mpr-17933.bin by XXH128 hash from an internal database (19 IPL variants, 4 CD Block
3. {system}/saturn_bios.bin versions, 2 ROM carts). Unknown files are accepted if size matches.
First file found with exact 512 KiB size wins. No HLE fallback for IPL.
CD Block LLE: optional low-level CD drive emulation. Scans {system}/cdb/ Libretro: searches {system}/sega_101.bin, mpr-17933.bin, saturn_bios.bin
for any 64 KiB file. Falls back to HLE when disabled or no ROM found. in order. First file found with exact 512 KiB size wins.
Known versions in upstream db: 1.04, 1.05, 1.06.
ROM cartridges: KoF95 and Ultraman shipped with physical ROM carts. The Batocera standalone: configgen maps IPLROMImages to /userdata/bios,
core auto-detects required cartridge from its game database. 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). 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. All file loading validates size only.
files: files:
@@ -42,7 +51,9 @@ files:
validation: [size] validation: [size]
aliases: [mpr-17933.bin, saturn_bios.bin] aliases: [mpr-17933.bin, saturn_bios.bin]
description: "Saturn IPL ROM (BIOS). Any region accepted." 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" - name: "cdb/cdb_rom.bin"
system: sega-saturn system: sega-saturn
@@ -50,8 +61,10 @@ files:
hle_fallback: true hle_fallback: true
size: 65536 size: 65536
validation: [size] validation: [size]
description: "SH1 CD Block ROM for low-level CD drive emulation. Core scans cdb/ subdirectory for any matching file." description: "SH1 CD Block ROM for low-level CD drive emulation. Scans cdb/ subdirectory for any matching file."
source_ref: "libretro.cpp:567-591" 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" - name: "mpr-18811-mx.ic1"
system: sega-saturn system: sega-saturn
@@ -60,7 +73,9 @@ files:
size: 2097152 size: 2097152
validation: [size] validation: [size]
description: "ROM cartridge for The King of Fighters '95." 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" - name: "mpr-19367-mx.ic1"
system: sega-saturn system: sega-saturn
@@ -69,4 +84,6 @@ files:
size: 2097152 size: 2097152
validation: [size] validation: [size]
description: "ROM cartridge for Ultraman: Hikari no Kyojin Densetsu." 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
View 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"

View File

@@ -189,7 +189,7 @@ nav:
- Vircon32: emulators/vircon32.md - Vircon32: emulators/vircon32.md
- vitaQuakeII: emulators/vitaquake2.md - vitaQuakeII: emulators/vitaquake2.md
- yabasanshiro: emulators/yabasanshiro.md - yabasanshiro: emulators/yabasanshiro.md
- Community forks (104): - Community forks (105):
- EightyOne: emulators/81.md - EightyOne: emulators/81.md
- a5200: emulators/a5200.md - a5200: emulators/a5200.md
- Anarch: emulators/anarch.md - Anarch: emulators/anarch.md
@@ -211,6 +211,7 @@ nav:
- ChimeraSNES: emulators/chimerasnes.md - ChimeraSNES: emulators/chimerasnes.md
- Citra: emulators/citra.md - Citra: emulators/citra.md
- Citra Canary: emulators/citra_canary.md - Citra Canary: emulators/citra_canary.md
- Citron: emulators/citron.md
- Daphne: emulators/daphne.md - Daphne: emulators/daphne.md
- DeSmuME: emulators/desmume.md - DeSmuME: emulators/desmume.md
- DICE: emulators/dice.md - DICE: emulators/dice.md
@@ -324,7 +325,7 @@ nav:
- MicroW8: emulators/uw8.md - MicroW8: emulators/uw8.md
- uzem: emulators/uzem.md - uzem: emulators/uzem.md
- VirtualXT: emulators/virtualxt.md - VirtualXT: emulators/virtualxt.md
- Game engines (24): - Game engines (25):
- boom3: emulators/boom3.md - boom3: emulators/boom3.md
- Cannonball: emulators/cannonball.md - Cannonball: emulators/cannonball.md
- ChaiLove: emulators/chailove.md - ChaiLove: emulators/chailove.md
@@ -349,6 +350,7 @@ nav:
- TyrQuake: emulators/tyrquake.md - TyrQuake: emulators/tyrquake.md
- WASM-4: emulators/wasm4.md - WASM-4: emulators/wasm4.md
- XRick: emulators/xrick.md - XRick: emulators/xrick.md
- Zelda Classic v2.10: emulators/zc210.md
- Enhanced forks (12): - Enhanced forks (12):
- bsnes-hd beta: emulators/bsnes_hd_beta.md - bsnes-hd beta: emulators/bsnes_hd_beta.md
- bsnes-mercury: emulators/bsnes_mercury.md - bsnes-mercury: emulators/bsnes_mercury.md
@@ -399,18 +401,28 @@ nav:
- PCSX-ReARMed: emulators/pcsx_rearmed.md - PCSX-ReARMed: emulators/pcsx_rearmed.md
- Launchers (1): - Launchers (1):
- Dolphin Launcher: emulators/dolphin_launcher.md - Dolphin Launcher: emulators/dolphin_launcher.md
- Other (11): - Other (21):
- Beetle GBA (Mednafen): emulators/beetle_gba.md - Beetle GBA (Mednafen): emulators/beetle_gba.md
- Cemu: emulators/cemu.md - Cemu: emulators/cemu.md
- Clock Signal (CLK): emulators/clk.md - Clock Signal (CLK): emulators/clk.md
- Demul: emulators/demul.md
- eka2l1: emulators/eka2l1.md
- ep128emu-core: emulators/ep128emu.md - ep128emu-core: emulators/ep128emu.md
- GSplus: emulators/gsplus.md
- Lexaloffle: emulators/lexaloffle.md
- openMSX: emulators/openmsx.md
- PCSX2: emulators/pcsx2.md - PCSX2: emulators/pcsx2.md
- Redream: emulators/redream.md - Redream: emulators/redream.md
- RPCS3: emulators/rpcs3.md - RPCS3: emulators/rpcs3.md
- Ryujinx: emulators/ryujinx.md
- shadps4: emulators/shadps4.md
- tsugaru: emulators/tsugaru.md
- VBA-M: emulators/vba_m.md - VBA-M: emulators/vba_m.md
- VICE: emulators/vice.md - VICE: emulators/vice.md
- Vita3K: emulators/vita3k.md - Vita3K: emulators/vita3k.md
- x16emu: emulators/x16emu.md
- Xemu: emulators/xemu.md - Xemu: emulators/xemu.md
- XRoar: emulators/xroar.md
- Cross-reference: cross-reference.md - Cross-reference: cross-reference.md
- Gap Analysis: gaps.md - Gap Analysis: gaps.md
- Wiki: - Wiki: