mirror of
https://github.com/Abdess/retroarch_system.git
synced 2026-04-15 21:32:32 -05:00
Compare commits
12 Commits
v2026.03.1
...
9a69b49eac
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
9a69b49eac | ||
|
|
ff82f64cb6 | ||
|
|
60d9d38d69 | ||
|
|
99581d8aba | ||
|
|
4bc7085c1c | ||
|
|
9eede1c957 | ||
|
|
8768aed7aa | ||
|
|
639ff69d6c | ||
|
|
f6a44c9409 | ||
|
|
9052a6b750 | ||
|
|
a38c86cf1e | ||
|
|
e82a498124 |
14
README.md
14
README.md
@@ -2,7 +2,7 @@
|
||||
|
||||
Complete, verified collection of BIOS, firmware, and system files for retrogaming emulators - RetroArch, Batocera, Recalbox, Lakka, RetroPie, and more. Every file checked against official checksums from [libretro System.dat](https://github.com/libretro/libretro-database), [batocera-systems](https://github.com/batocera-linux/batocera.linux), and [Recalbox es_bios.xml](https://gitlab.com/recalbox/recalbox).
|
||||
|
||||
> **5352** files | **3540.1 MB** | Last updated: 2026-03-17T16:25:33Z
|
||||
> **5352** files | **3540.1 MB** | Last updated: 2026-03-17T19:10:45Z
|
||||
>
|
||||
> PlayStation, PS2, Nintendo DS, Game Boy, GBA, Dreamcast, Saturn, Neo Geo, Mega CD, PC Engine, MSX, Amiga, Atari ST, ZX Spectrum, Arcade (MAME/FBNeo), and 50+ systems.
|
||||
|
||||
@@ -156,7 +156,7 @@ python scripts/generate_pack.py --all --include-archived --output-dir ~/Download
|
||||
| Sega/Master System | 2 | 16.0 KB |
|
||||
| Sega/Mega CD | 5 | 1024.0 KB |
|
||||
| Sega/Mega Drive | 6 | 2.3 MB |
|
||||
| Sega/SC-3000 | 1 | 22.3 KB |
|
||||
| Sega/SC-3000 | 1 | 20.8 KB |
|
||||
| Sega/Saturn | 12 | 11.2 MB |
|
||||
| Sega/Triforce | 2 | 4.0 MB |
|
||||
| Sharp/MZ | 6 | 504.6 KB |
|
||||
@@ -9370,10 +9370,10 @@ These are large asset packs required by specific cores. They are included in the
|
||||
|
||||
### Sega/SC-3000
|
||||
|
||||
- **[sc3000.zip](bios/Sega/SC-3000/sc3000.zip)** (22,881 bytes)
|
||||
- SHA1: `ac7ac52c22f22bf499ecc5ead6afeddfb1fc9ffd`
|
||||
- MD5: `b5d6782fb57775bf2a5e06889cfae58d`
|
||||
- CRC32: `7a1b9d80`
|
||||
- **[sc3000.zip](bios/Sega/SC-3000/sc3000.zip)** (21,348 bytes)
|
||||
- SHA1: `12de390be2595ad17015310085eaec57ad2b953f`
|
||||
- MD5: `48e8821fb9087ab60a2a3b1465ee5124`
|
||||
- CRC32: `62fb7d82`
|
||||
|
||||
### Sega/Saturn
|
||||
|
||||
@@ -11104,4 +11104,4 @@ See [CONTRIBUTING.md](CONTRIBUTING.md) for guidelines on submitting BIOS files.
|
||||
|
||||
This repository provides BIOS files for personal backup and archival purposes.
|
||||
|
||||
*Auto-generated on 2026-03-17T16:25:33Z*
|
||||
*Auto-generated on 2026-03-17T19:10:45Z*
|
||||
|
||||
Binary file not shown.
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"generated_at": "2026-03-17T16:25:33Z",
|
||||
"generated_at": "2026-03-17T19:10:45Z",
|
||||
"total_files": 5352,
|
||||
"total_size": 3712114662,
|
||||
"total_size": 3712113129,
|
||||
"files": {
|
||||
"520d3d1b5897800af47f92efd2444a26b7a7dead": {
|
||||
"path": "bios/3DO Company/3DO/3do_arcade_saot.bin",
|
||||
@@ -44913,14 +44913,14 @@
|
||||
"sha256": "e184f5982a99c6ebf7799383f16a8624221755786056a3573944598283a4b8cf",
|
||||
"crc32": "4dcfd55c"
|
||||
},
|
||||
"ac7ac52c22f22bf499ecc5ead6afeddfb1fc9ffd": {
|
||||
"12de390be2595ad17015310085eaec57ad2b953f": {
|
||||
"path": "bios/Sega/SC-3000/sc3000.zip",
|
||||
"name": "sc3000.zip",
|
||||
"size": 22881,
|
||||
"sha1": "ac7ac52c22f22bf499ecc5ead6afeddfb1fc9ffd",
|
||||
"md5": "b5d6782fb57775bf2a5e06889cfae58d",
|
||||
"sha256": "eebf770fb1426dc6a2f7a0ce084cedb8aed7a8a904ee006c98344ced7526915f",
|
||||
"crc32": "7a1b9d80"
|
||||
"size": 21348,
|
||||
"sha1": "12de390be2595ad17015310085eaec57ad2b953f",
|
||||
"md5": "48e8821fb9087ab60a2a3b1465ee5124",
|
||||
"sha256": "942ca934f6d43bc81677d3355cf8c795322661c8784b58e78d62951b6a033c2b",
|
||||
"crc32": "62fb7d82"
|
||||
},
|
||||
"8c031bf9908fd0142fdd10a9cdd79389f8a3f2fc": {
|
||||
"path": "bios/Sega/Saturn/.variants/hisaturn_v103.bin",
|
||||
@@ -53164,7 +53164,7 @@
|
||||
"ff4a3572475236e859e3e9ac5c87d1f1": "02c287d10da6de579af7a4ce73b134bbdf23c970",
|
||||
"4ea493ea4e9f6c9ebfccbdb15110367e": "88d6499d874dcb5721ff58d76fe1b9af811192e3",
|
||||
"b4e76e416b887f4e7413ba76fa735f16": "70429f1d80503a0632f603bf762fe0bbaa881d22",
|
||||
"b5d6782fb57775bf2a5e06889cfae58d": "ac7ac52c22f22bf499ecc5ead6afeddfb1fc9ffd",
|
||||
"48e8821fb9087ab60a2a3b1465ee5124": "12de390be2595ad17015310085eaec57ad2b953f",
|
||||
"0306c0e408d6682dd2d86324bd4ac661": "8c031bf9908fd0142fdd10a9cdd79389f8a3f2fc",
|
||||
"9992f2761b0f6e83b3e923451ab8057b": "999ed28cfbf18103a4963b0d3797af3dcf67db05",
|
||||
"37e9746f4491aa2df9a83729d1a93620": "fefb403a7e91bdaf75ffd8a94c2a1f0ef4ece740",
|
||||
@@ -66949,7 +66949,7 @@
|
||||
"70429f1d80503a0632f603bf762fe0bbaa881d22"
|
||||
],
|
||||
"sc3000.zip": [
|
||||
"ac7ac52c22f22bf499ecc5ead6afeddfb1fc9ffd"
|
||||
"12de390be2595ad17015310085eaec57ad2b953f"
|
||||
],
|
||||
"hisaturn_v103.bin": [
|
||||
"8c031bf9908fd0142fdd10a9cdd79389f8a3f2fc"
|
||||
@@ -74133,7 +74133,7 @@
|
||||
"c94e8c8b": "02c287d10da6de579af7a4ce73b134bbdf23c970",
|
||||
"0658f691": "88d6499d874dcb5721ff58d76fe1b9af811192e3",
|
||||
"4dcfd55c": "70429f1d80503a0632f603bf762fe0bbaa881d22",
|
||||
"7a1b9d80": "ac7ac52c22f22bf499ecc5ead6afeddfb1fc9ffd",
|
||||
"62fb7d82": "12de390be2595ad17015310085eaec57ad2b953f",
|
||||
"6abfefea": "8c031bf9908fd0142fdd10a9cdd79389f8a3f2fc",
|
||||
"0ab1c9ec": "999ed28cfbf18103a4963b0d3797af3dcf67db05",
|
||||
"94c90a92": "fefb403a7e91bdaf75ffd8a94c2a1f0ef4ece740",
|
||||
|
||||
47
emulators/a5200.yml
Normal file
47
emulators/a5200.yml
Normal file
@@ -0,0 +1,47 @@
|
||||
emulator: a5200
|
||||
type: libretro
|
||||
source: "https://github.com/libretro/a5200"
|
||||
cores:
|
||||
- a5200
|
||||
systems:
|
||||
- atari-5200
|
||||
|
||||
# a5200 is a dedicated Atari 5200 emulator forked from Atari800/Atari++ codebase.
|
||||
# It loads the official 5200 OS ROM from <system_dir>/5200.rom (2048 bytes, mapped
|
||||
# to memory at 0xF800-0xFFFF via MEMORY_InitialiseMachine).
|
||||
#
|
||||
# If 5200.rom is missing or the user selects "internal" via core option "a5200_bios",
|
||||
# the core falls back to Altirra 5200 OS, an open-source replacement compiled from
|
||||
# Altirra-3.20-test4 (altirra_5200_os.c). The fallback has reduced compatibility
|
||||
# compared to the original Atari OS ROM.
|
||||
#
|
||||
# BIOS loading (libretro.c:409-500):
|
||||
# 1. check_bios_variable() reads core option "a5200_bios" (official/internal)
|
||||
# 2. load_bios() attempts to read <system_dir>/5200.rom (0x800 bytes)
|
||||
# 3. On failure or "internal" selected: memcpy from ROM_altirra_5200_os fallback
|
||||
#
|
||||
# Cartridge detection (atari.c:169-236):
|
||||
# Auto-detects cart type from header bytes and size. ROM database in cartridge.c
|
||||
# maps MD5 hashes to cart types (standard 8K/16K/32K/40K, bounty bob, super cart).
|
||||
|
||||
files:
|
||||
- name: "5200.rom"
|
||||
path: "5200.rom"
|
||||
size: 2048
|
||||
required: false
|
||||
note: >
|
||||
Atari 5200 OS ROM. Provides the built-in OS routines used by all 5200
|
||||
cartridges. Without it, the core uses the Altirra open-source replacement
|
||||
which has lower compatibility with some games. Core option "a5200_bios"
|
||||
controls whether to use this file or the internal fallback.
|
||||
source_ref: "libretro/libretro.c:58-59, libretro/libretro.c:409-500, emu/memory.c:46"
|
||||
|
||||
notes:
|
||||
altirra_fallback: >
|
||||
The built-in Altirra 5200 OS (from altirra_5200_os.c, 0x800 bytes) is a free
|
||||
replacement that works for most games but some titles require the original ROM
|
||||
for full compatibility. The core displays a notification when falling back.
|
||||
cart_db: >
|
||||
cartridge.c contains an MD5-based ROM database for automatic cart type detection
|
||||
(standard, EE banked, bounty bob, super cart variants). Unknown ROMs are detected
|
||||
by size heuristic.
|
||||
178
emulators/atari800.yml
Normal file
178
emulators/atari800.yml
Normal file
@@ -0,0 +1,178 @@
|
||||
emulator: Atari800
|
||||
type: libretro
|
||||
source: "https://github.com/libretro/libretro-atari800"
|
||||
systems: [atari-400, atari-800, atari-800xl, atari-130xe, atari-5200, atari-xegs]
|
||||
|
||||
# Atari800 emulates the Atari 8-bit family (400/800/XL/XE) and the 5200 console.
|
||||
# All BIOS files are optional -- the core ships built-in Altirra OS replacements
|
||||
# (altirraos_800, altirraos_xl, altirra_5200_os, altirra_basic) compiled into the
|
||||
# binary. If real ROM files are found in the system directory they take priority.
|
||||
#
|
||||
# ROM discovery (sysrom.c SYSROM_FindInDir):
|
||||
# 1. Scan system directory for files of valid size (0x800, 0x2000, 0x2800, 0x4000)
|
||||
# 2. Match by CRC32 against known ROM revisions
|
||||
# 3. If no CRC match, try case-insensitive filename match (MatchByName)
|
||||
# 4. Results stored in .atari800.cfg (generated on first run)
|
||||
#
|
||||
# The core generates .atari800.cfg in the frontend home directory on first boot.
|
||||
# Core option "atari800_system" selects the emulated machine type:
|
||||
# 400/800, 800XL (64KB), 130XE (128KB), Modern XL/XE(320KB), Modern XL/XE(576KB),
|
||||
# Modern XL/XE(1088KB), 5200
|
||||
|
||||
files:
|
||||
# -- Atari 5200 BIOS --
|
||||
# Original 5200 OS ($F800-$FFFF, 2 KB). Matched by CRC32: 0x4248d3e3 (orig)
|
||||
# or 0xc2ba2613 (rev A). Altirra 5200 OS used as fallback.
|
||||
# Filename match (case-insensitive): atari5200.rom, atar5200.rom, 5200.rom,
|
||||
# 5200.bin, atari_5200.rom
|
||||
|
||||
- name: "5200.rom"
|
||||
path: "5200.rom"
|
||||
required: false
|
||||
size: 2048
|
||||
md5: 281f20ea4320404ec820fb7ec0693b38
|
||||
note: >
|
||||
Atari 5200 BIOS (original). Mapped at $F800-$FFFF.
|
||||
Altirra 5200 OS is used when this file is absent.
|
||||
source_ref: "atari800/src/sysrom.c:101, libretro info firmware0"
|
||||
|
||||
# -- Atari BASIC ROM --
|
||||
# Atari BASIC interpreter (8 KB). Three known revisions:
|
||||
# Rev A: CRC32 0x4bec4de2, Rev B: CRC32 0xf0202fb3, Rev C: CRC32 0x7d684184
|
||||
# Auto-select prefers Rev C > B > A > custom > Altirra BASIC.
|
||||
# Filename match: ataribasic.rom, ataribas.rom, basic.rom, atari_basic.rom
|
||||
# Core option "atari800_opt2" enables BASIC (needed for some 400/800 software).
|
||||
|
||||
- name: "ATARIBAS.ROM"
|
||||
path: "ATARIBAS.ROM"
|
||||
required: false
|
||||
size: 8192
|
||||
md5: 0bac0c6a50104045d902df4503a4c30b
|
||||
note: >
|
||||
Atari BASIC Rev C. Required for 400/800 software that needs BASIC.
|
||||
Altirra BASIC is used as fallback. Enable via core option atari800_opt2.
|
||||
source_ref: "atari800/src/sysrom.c:103-105, libretro info firmware1"
|
||||
|
||||
# -- Atari 400/800 OS A --
|
||||
# Original Atari 400/800 OS (10 KB). Two known CRC32 values:
|
||||
# NTSC: 0xc1b3bb02, PAL: 0x72b3fed4
|
||||
# Filename match: atariosa.rom, atari_osa.rom, atari_os_a.rom
|
||||
|
||||
- name: "ATARIOSA.ROM"
|
||||
path: "ATARIOSA.ROM"
|
||||
required: false
|
||||
size: 10240
|
||||
md5: eb1f32f5d9f382db1bbfb8d7f9cb343a
|
||||
note: >
|
||||
Atari 400/800 OS Rev A. Altirra OS 800 is used as fallback.
|
||||
Auto-select order: OS B NTSC, OS A NTSC, OS A PAL, custom, Altirra.
|
||||
source_ref: "atari800/src/sysrom.c:87-89, libretro info firmware2"
|
||||
|
||||
# -- Atari 400/800 OS B --
|
||||
# OS revision B (10 KB), NTSC: CRC32 0x0e86d61d
|
||||
# Filename match: atariosb.rom, atari_osb.rom, atari_os_b.rom
|
||||
|
||||
- name: "ATARIOSB.ROM"
|
||||
path: "ATARIOSB.ROM"
|
||||
required: false
|
||||
size: 10240
|
||||
md5: 4177f386a3bac989a981d3fe3388cb6c
|
||||
note: >
|
||||
Atari 400/800 OS Rev B (NTSC). Preferred over Rev A for 400/800 mode.
|
||||
source_ref: "atari800/src/sysrom.c:89, libretro info firmware3"
|
||||
|
||||
# -- Atari XL/XE OS --
|
||||
# XL/XE OS (16 KB). Many revisions known by CRC32 in sysrom.c:
|
||||
# BB01R2 (800XL stock): 0x1f9cd270
|
||||
# CC01R4: 0x0e000b99
|
||||
# BB01R4: 0x1eaf4002
|
||||
# Auto-select prefers BB01R2 for 800XL, BB01R3 for XE, BB01R4 for XEGS.
|
||||
# Filename match: atarixlxe.rom, atarixl.rom, atari_xlxe.rom, atari_xl_xe.rom
|
||||
|
||||
- name: "ATARIXL.ROM"
|
||||
path: "ATARIXL.ROM"
|
||||
required: false
|
||||
size: 16384
|
||||
md5: 06daac977823773a3eea3422fd26a703
|
||||
note: >
|
||||
Atari XL/XE OS. Used for 800XL, 130XE, and XEGS modes.
|
||||
Altirra XL OS is used as fallback.
|
||||
source_ref: "atari800/src/sysrom.c:90-99, libretro info firmware4"
|
||||
|
||||
# -- Atari XL/XE/XEGS OS v4 (BB01R4) --
|
||||
# XEGS-specific OS revision BB01R4 (16 KB), CRC32: 0x1eaf4002
|
||||
# Preferred for XEGS machine mode. Same filename matching as ATARIXL above.
|
||||
|
||||
- name: "BB01R4_OS.ROM"
|
||||
path: "BB01R4_OS.ROM"
|
||||
required: false
|
||||
size: 16384
|
||||
md5: b7a2a04677d34f069eeb643d5238bf86
|
||||
note: >
|
||||
Atari XEGS OS Rev 4 (BB01R4). Preferred OS for XEGS machine mode.
|
||||
source_ref: "atari800/src/sysrom.c:98, libretro info firmware5"
|
||||
|
||||
# -- XEGS Missile Command built-in game --
|
||||
# The XEGS had Missile Command in ROM (8 KB), CRC32: 0xbdca01fb
|
||||
# No filename auto-match -- must be set via config or detected by CRC.
|
||||
|
||||
- name: "XEGAME.ROM"
|
||||
path: "XEGAME.ROM"
|
||||
required: false
|
||||
size: 8192
|
||||
md5: d7eb37aec6960cba36bc500e0e5d00bc
|
||||
note: >
|
||||
XEGS built-in Missile Command ROM. Only used in XEGS machine mode.
|
||||
No built-in replacement exists for this ROM.
|
||||
source_ref: "atari800/src/sysrom.c:106, libretro info firmware6"
|
||||
|
||||
# Known ROM revisions from sysrom.c (CRC32 identifiers):
|
||||
#
|
||||
# 400/800 OS:
|
||||
# SYSROM_A_NTSC 0xc1b3bb02 10 KB OS Rev A (NTSC)
|
||||
# SYSROM_A_PAL 0x72b3fed4 10 KB OS Rev A (PAL)
|
||||
# SYSROM_B_NTSC 0x0e86d61d 10 KB OS Rev B (NTSC)
|
||||
#
|
||||
# XL/XE OS (all 16 KB):
|
||||
# SYSROM_AA00R10 0xc5c11546 1200XL first rev
|
||||
# SYSROM_AA01R11 0x1a1d7b1b 1200XL second rev
|
||||
# SYSROM_BB00R1 0x643bcc98 600XL stock
|
||||
# SYSROM_BB01R2 0x1f9cd270 800XL stock
|
||||
# SYSROM_BB02R3 0x0d477aa1 XL/XE rev 3a
|
||||
# SYSROM_BB02R3V4 0xd425a9cf XL/XE rev 3b
|
||||
# SYSROM_CC01R4 0x0e000b99 XL/XE rev 5
|
||||
# SYSROM_BB01R3 0x29f133f7 XE stock
|
||||
# SYSROM_BB01R4 0x1eaf4002 XEGS stock
|
||||
# SYSROM_BB01R59 0x45f47988 XL/XE rev 59
|
||||
# SYSROM_BB01R59A 0xf0a236d3 XL/XE rev 59a
|
||||
#
|
||||
# 5200 OS (2 KB):
|
||||
# SYSROM_5200 0x4248d3e3 Original
|
||||
# SYSROM_5200A 0xc2ba2613 Rev A
|
||||
#
|
||||
# BASIC (8 KB):
|
||||
# SYSROM_BASIC_A 0x4bec4de2 Rev A
|
||||
# SYSROM_BASIC_B 0xf0202fb3 Rev B
|
||||
# SYSROM_BASIC_C 0x7d684184 Rev C
|
||||
#
|
||||
# XEGAME (8 KB):
|
||||
# SYSROM_XEGAME 0xbdca01fb Missile Command
|
||||
#
|
||||
# Built-in Altirra replacements (no file needed):
|
||||
# altirraos_800 10 KB 400/800 OS replacement
|
||||
# altirraos_xl 16 KB XL/XE OS replacement
|
||||
# altirra_5200_os 2 KB 5200 OS replacement
|
||||
# altirra_basic 8 KB BASIC replacement
|
||||
|
||||
notes:
|
||||
altirra_note: >
|
||||
The Altirra OS/BASIC replacements are open-source alternatives compiled
|
||||
directly into the core binary (roms/ directory in source). They provide
|
||||
good compatibility for most software but real ROMs give better accuracy.
|
||||
cfg_note: >
|
||||
On first boot the core creates .atari800.cfg in the frontend home directory.
|
||||
It scans the system directory for ROM files by CRC32 first, then by filename.
|
||||
The core option atari800_opt1 controls whether this legacy config is loaded.
|
||||
machine_selection: >
|
||||
Core option atari800_system selects the emulated machine. Each machine type
|
||||
has its own preferred OS ROM auto-select order defined in sysrom.c.
|
||||
103
emulators/b2.yml
Normal file
103
emulators/b2.yml
Normal file
@@ -0,0 +1,103 @@
|
||||
emulator: b2
|
||||
type: standalone
|
||||
source: "https://github.com/tom-seddon/b2"
|
||||
cores: []
|
||||
systems:
|
||||
- bbc-micro-b
|
||||
- bbc-micro-bplus
|
||||
- bbc-master-128
|
||||
- bbc-master-compact
|
||||
|
||||
# b2 is a standalone BBC Micro emulator by Tom Seddon. It is NOT a libretro
|
||||
# core -- there is no libretro port. The emulator uses SDL2 and Dear ImGui.
|
||||
#
|
||||
# Emulated models (src/b2/BeebConfig.cpp:211-433):
|
||||
# - BBC Model B (with various disc interfaces: Acorn 1770, Watford, Opus)
|
||||
# - BBC Model B+ / B+128
|
||||
# - BBC Master 128 (MOS 3.20 and 3.50)
|
||||
# - BBC Master Turbo (MOS 3.20 and 3.50, with 65C102 parasite)
|
||||
# - BBC Model B + 6502 second processor
|
||||
# - BBC Master Compact (MOS 5.00, 5.10, I5.10C)
|
||||
# - Olivetti PC 128 S (Master Compact variant)
|
||||
#
|
||||
# ROM handling:
|
||||
# All ROMs ship in the repo under etc/roms/. The emulator loads them via
|
||||
# GetAssetPath("roms", path) at runtime. No external BIOS files needed.
|
||||
# ROM paths are defined in src/b2/roms.cpp as BeebROM structs with
|
||||
# {filename, display_name, StandardROM_enum}.
|
||||
#
|
||||
# ROM inventory (etc/roms/):
|
||||
#
|
||||
# BBC Model B:
|
||||
# OS12.ROM 16384 md5:0a59a5ba15fe8557b5f7fee32bbd393a OS 1.20
|
||||
# BASIC2.ROM 16384 md5:2cc67be4624df4dc66617742571a8e3d BASIC II
|
||||
#
|
||||
# BBC Model B+:
|
||||
# B+MOS.rom 16384 md5:47a1eff6c7fbb47be780c87dfd50ece1 B+ MOS
|
||||
# BASIC2.ROM 16384 (shared with Model B)
|
||||
#
|
||||
# Disc interfaces (sideways ROMs, slot 14):
|
||||
# acorn/DFS-2.26.rom 16384 md5:f083f49d6fe66344c650d7e74249cb96 Acorn 1770 DFS
|
||||
# watford/DDFS-1.53.rom 16384 md5:d2b71fa664f6cdf8c24b9b304777998c Watford DDFS (DDB2)
|
||||
# watford/DDFS-1.54T.rom 16384 md5:e73a0417278504a6dfac2ccd9a73e9a9 Watford DDFS (DDB3)
|
||||
# opus/OPUS-DDOS-3.45.rom 16384 md5:d98316eaff56ceab4fe3bfe54d2f92b2 Opus DDOS
|
||||
# opus/challenger-1.01.rom 16384 md5:67e086a11834f8cc69175b601c4e5a5f Opus Challenger
|
||||
#
|
||||
# BBC Master 128 MOS 3.20 (M128/3.20/):
|
||||
# mos.rom 16384 md5:9087f772447038a00178488b3591347b MOS 3.20 OS
|
||||
# terminal.rom 16384 md5:7e053353b78b4631c274280931d96f02 Terminal (slot f)
|
||||
# view.rom 16384 md5:178d09285727d596f8863f94a2fc8dad View (slot e)
|
||||
# adfs.rom 16384 md5:10f08b255d6a6e3e888631946b628f1a ADFS (slot d)
|
||||
# basic4.rom 16384 md5:63a6f43cbf491533cb03ceca2d2728d4 BASIC IV (slot c)
|
||||
# edit.rom 16384 md5:cb3d762eaab6130d1360e1ac575589de Edit (slot b)
|
||||
# viewsht.rom 16384 md5:7d5a80a8ce929d0a0f6ca8626cb9f436 Viewsheet (slot a)
|
||||
# dfs.rom 16384 md5:865a0f7a5d6f10f48798801bf514d761 DFS (slot 9)
|
||||
#
|
||||
# BBC Master 128 MOS 3.50 (M128/3.50/):
|
||||
# mos.rom 16384 md5:d7a046b1e6a9991748cee05332f1e258 MOS 3.50 OS
|
||||
# terminal.rom 16384 md5:b1fa51fd49d31224ecb7e10e6908ec01 Terminal (slot f)
|
||||
# view.rom 16384 md5:1566fab2f1827fb7ba61b283b828731d View (slot e)
|
||||
# adfs.rom 16384 md5:fb8ceb72c5fbd9dd80eedd10d076b1a2 ADFS (slot d)
|
||||
# basic4.rom 16384 md5:e11eed95d1caba8aa9772e9001590585 BASIC IV (slot c)
|
||||
# edit.rom 16384 md5:8c72c7f24567cb4a2fb15eb0b0aeb55b Edit (slot b)
|
||||
# viewsht.rom 16384 md5:1bc68b7c5eba6a2de2a43c9d1d9d983b Viewsheet (slot a)
|
||||
# dfs.rom 16384 md5:22c2b7f14f244da21d630a7828541c79 DFS (slot 9)
|
||||
#
|
||||
# Parasite processors:
|
||||
# MasterTurboParasite.rom 2048 md5:83d73e0e78693bb4b43e7cb18e58d556 65C102 TUBE 1.20
|
||||
# TUBE110.rom 2048 md5:a77c7946128ca0b2c5e5a66b17c99dae 6502 TUBE 1.10
|
||||
#
|
||||
# BBC Master Compact MOS 5.00 (MCompact/5.00/):
|
||||
# mos.rom 16384 md5:5d1b635e39aa461f17db2344870dda36 MOS 5.00 OS
|
||||
# utils.rom 16384 md5:4f9ded16f44278a4ca0ef4e66822e316 UTILS (slot f)
|
||||
# basic4.rom 16384 md5:64b3cd52e36b5262ac6ca3a9823c6ee2 BASIC IV (slot e)
|
||||
# adfs.rom 16384 md5:bfbd0a7dbbfb1f1f4ba5ac0343c1f8ce ADFS (slot d)
|
||||
#
|
||||
# BBC Master Compact MOS 5.10 (MCompact/5.10/):
|
||||
# mos.rom 16384 md5:f65eb89c7044e328b79f2ef8e51b7fd8 MOS 5.10 OS
|
||||
# utils.rom 16384 md5:48a197850113b00a1eb141fb6d3ea135 UTILS (slot f)
|
||||
# basic4.rom 16384 md5:64b3cd52e36b5262ac6ca3a9823c6ee2 BASIC IV (slot e, same as 5.00)
|
||||
# adfs.rom 16384 md5:c2afc1cabb135e6f2254bcf9300a9b83 ADFS (slot d)
|
||||
#
|
||||
# Olivetti PC 128 S / MOS I5.10C (MCompact/I5.10C/):
|
||||
# mos.rom 16384 md5:5e16a38bd7fd6f07f26b5a64826e4ec6 MOS I5.10C OS
|
||||
# utils.rom 16384 md5:75364aa6fd5e134a40051d9ee772df37 UTILS (slot f)
|
||||
# basic4.rom 16384 md5:717df34edae5b6bf5bbd8879c0d13022 BASIC IV (slot e)
|
||||
# adfs.rom 16384 md5:10f23a239dde39b7fe09d72083709e93 ADFS (slot d)
|
||||
#
|
||||
# ROM type system (src/beeb/include/beeb/roms.inl):
|
||||
# Sideways ROMs support banked mappers: 16KB (standard), CCIWORD (32KB),
|
||||
# CCIBASE (64KB), CCISPELL (128KB), PALQST/PALWAP/PALTED, ABEP, ABE,
|
||||
# Trilogy (64KB), MO2 (128KB). OS ROM types: 16KB, Compact (64KB),
|
||||
# MegaROM (128KB), Multi-OS (512KB with 4 banks).
|
||||
#
|
||||
# Memory map (src/beeb/include/beeb/type.h):
|
||||
# OS ROM mapped at $C000-$FFFF (MOS big pages). Sideways ROMs in 16 banks
|
||||
# at $8000-$BFFF, selected via ROMSEL register at $FE30.
|
||||
|
||||
notes: |
|
||||
b2 is a standalone BBC Micro emulator (SDL2 + Dear ImGui). Not a libretro core.
|
||||
All required ROMs are bundled in the repository under etc/roms/.
|
||||
No external BIOS files need to be provided by the user.
|
||||
|
||||
bios_files: []
|
||||
32
emulators/beetle_lynx.yml
Normal file
32
emulators/beetle_lynx.yml
Normal file
@@ -0,0 +1,32 @@
|
||||
emulator: Beetle Lynx (Mednafen Lynx)
|
||||
type: libretro
|
||||
source: "https://github.com/libretro/beetle-lynx-libretro"
|
||||
cores: [mednafen_lynx]
|
||||
systems: [atari-lynx]
|
||||
verification: existence
|
||||
|
||||
notes: >
|
||||
Fork of Mednafen's Handy module for Atari Lynx emulation via libretro.
|
||||
The core loads lynxboot.img from the system directory at game load time
|
||||
(libretro.cpp:191). CRom constructor in rom.cpp reads exactly 512 bytes
|
||||
from the file. If the file is missing or undersized, the ROM array is
|
||||
filled with 0x88 (DEFAULT_ROM_CONTENTS) and the core continues without
|
||||
error, but games will not boot correctly without the real boot ROM.
|
||||
The cart database in cart.cpp identifies the BIOS by CRC32 0x0d973c9d
|
||||
("[BIOS] Atari Lynx (USA, Europe)", size 512).
|
||||
No hash validation is performed on the BIOS at load time.
|
||||
Core options: lynx_rot_screen (screen rotation), lynx_pix_format
|
||||
(pixel format), lynx_force_60hz (force 60Hz refresh).
|
||||
ROM extensions: .lnx, .lyx, .bll, .o
|
||||
|
||||
files:
|
||||
- name: "lynxboot.img"
|
||||
description: "Atari Lynx Boot ROM"
|
||||
region: "World"
|
||||
required: true
|
||||
size: 512
|
||||
sha1: "e4ed47fae31693e016b081c6bda48da5b70d7ccb"
|
||||
md5: "fcd403db69f54290b51035d82f835e7b"
|
||||
crc32: "0d973c9d"
|
||||
source_ref: "libretro.cpp:191, rom.cpp:50-78, cart.cpp:67"
|
||||
notes: "512-byte boot ROM. Core silently degrades without it but games will not run."
|
||||
33
emulators/beetle_ngp.yml
Normal file
33
emulators/beetle_ngp.yml
Normal file
@@ -0,0 +1,33 @@
|
||||
emulator: Beetle NGP (Mednafen Neo Geo Pocket)
|
||||
type: libretro
|
||||
source: "https://github.com/libretro/beetle-ngp-libretro"
|
||||
systems: [snk-ngp, snk-ngpc]
|
||||
|
||||
notes: |
|
||||
Beetle NGP is a fork of Mednafen's NeoPop module for Neo Geo Pocket
|
||||
and Neo Geo Pocket Color emulation via libretro.
|
||||
|
||||
No external BIOS or firmware files are required. The core uses a
|
||||
built-in High-Level Emulation (HLE) BIOS that is constructed at
|
||||
runtime by bios_install() in mednafen/ngp/bios.c.
|
||||
|
||||
The HLE BIOS populates a 64KB array (ngpc_bios[0x10000]) with:
|
||||
- A system call vector table at 0xFE00 (27 entries covering
|
||||
clock, RTC, interrupts, font, flash read/write, comms)
|
||||
- Each vector target contains an iBIOSHLE instruction (opcode 0x1F)
|
||||
that traps into biosHLE.c for high-level handling
|
||||
- A built-in system font (2048 bytes at 0x8DCF)
|
||||
- A default interrupt handler (RETI at 0x23DF)
|
||||
- An infinite loop at 0xFFFE as the idle entry point
|
||||
|
||||
The TLCS-900h CPU (main) and Z80 (sound) are both emulated in
|
||||
software. Flash memory for game saves is handled internally via
|
||||
flash.c without needing a separate firmware dump.
|
||||
|
||||
The only core option is ngp_language (english/japanese), which
|
||||
controls the language flag passed to games. It does not affect
|
||||
BIOS loading.
|
||||
|
||||
ROM extensions: .ngp, .ngc, .ngpc, .npc
|
||||
|
||||
files: []
|
||||
88
emulators/beetle_pce.yml
Normal file
88
emulators/beetle_pce.yml
Normal file
@@ -0,0 +1,88 @@
|
||||
emulator: Beetle PCE (Mednafen PCE)
|
||||
type: libretro
|
||||
source: "https://github.com/libretro/beetle-pce-libretro"
|
||||
cores: [mednafen_pce, mednafen_pce_fast, mednafen_supergrafx]
|
||||
systems: [nec-pc-engine]
|
||||
verification: existence
|
||||
notes: >
|
||||
BIOS loaded from system directory at CD-ROM load time via PCE_LoadCD().
|
||||
Core option "pce_cdbios" selects which card image to use (default: System Card 3).
|
||||
DetectGECD() auto-detects Games Express discs and switches to "pce.gecdbios" (gexpress.pce).
|
||||
Arcade Card mode (pce_arcadecard option, enabled by default) extends System Card 3 with
|
||||
extra RAM mapping via SYSCARD_ARCADE enum.
|
||||
No hash validation on BIOS load: the core opens the file and reads it directly.
|
||||
gexpress.pce and gecard.pce are the same ROM (Games Express CD Card); the core expects
|
||||
gexpress.pce, libretro System.dat references gecard.pce. Both names should be provided.
|
||||
SuperGrafx CD detection (DetectSGXCD) reads sector data to decide SGX mode but uses the
|
||||
same BIOS files.
|
||||
|
||||
files:
|
||||
# -- CD-ROM System Card 3 (Japan) - default --
|
||||
|
||||
- name: "syscard3.pce"
|
||||
description: "CD-ROM System Card 3.0 (Japan)"
|
||||
region: "NTSC-J"
|
||||
required: true
|
||||
sha1: "79f5ff55dd10187c7fd7b8daab0b3ffbd1f56a2c"
|
||||
md5: "38179df8f4ac870017db21ebcbf53114"
|
||||
source_ref: "libretro.cpp:1051-1052, settings.cpp:40"
|
||||
notes: "Default value for pce_cdbios option. Most CD games run with this."
|
||||
|
||||
# -- CD-ROM System Card 3 (US) --
|
||||
|
||||
- name: "syscard3u.pce"
|
||||
description: "CD-ROM System Card 3.0 (US / TurboGrafx-CD)"
|
||||
region: "NTSC-U"
|
||||
required: false
|
||||
sha1: "d02611d99921986147c753df14c7349b31d71950"
|
||||
md5: "0754f903b52e3b3342202bdafb13efa5"
|
||||
source_ref: "libretro.cpp:1059-1060"
|
||||
notes: "pce_cdbios = 'System Card 3 US'"
|
||||
|
||||
# -- CD-ROM System Card 2 (Japan) --
|
||||
|
||||
- name: "syscard2.pce"
|
||||
description: "CD-ROM System Card 2.0 (Japan)"
|
||||
region: "NTSC-J"
|
||||
required: false
|
||||
sha1: "88da02e2503f7c32810f5d93a34849d470742b6d"
|
||||
md5: "3cdd6614a918616bfc41c862e889dd79"
|
||||
source_ref: "libretro.cpp:1053-1054"
|
||||
notes: "pce_cdbios = 'System Card 2'. Older games only."
|
||||
|
||||
# -- CD-ROM System Card 2 (US) --
|
||||
|
||||
- name: "syscard2u.pce"
|
||||
description: "CD-ROM System Card 2.0 (US / TurboGrafx-CD)"
|
||||
region: "NTSC-U"
|
||||
required: false
|
||||
sha1: "2bea3dac98f84b2f2f469fa77ea720b8770d598d"
|
||||
md5: "94279f315e8b52904f65ab3108542afe"
|
||||
source_ref: "libretro.cpp:1061-1062"
|
||||
notes: "pce_cdbios = 'System Card 2 US'"
|
||||
|
||||
# -- CD-ROM System Card 1 (Japan) --
|
||||
|
||||
- name: "syscard1.pce"
|
||||
description: "CD-ROM System Card 1.0 (Japan)"
|
||||
region: "NTSC-J"
|
||||
required: false
|
||||
sha1: "a39a66da7de6ba94ab84d04eef7afeec7d4ee66a"
|
||||
md5: "2b7ccb3d86baa18f6402c176f3065082"
|
||||
source_ref: "libretro.cpp:1055-1056"
|
||||
notes: "pce_cdbios = 'System Card 1'. Very early CD-ROM2 games."
|
||||
|
||||
# -- Games Express CD Card --
|
||||
|
||||
- name: "gexpress.pce"
|
||||
description: "Games Express CD Card"
|
||||
region: "NTSC-J"
|
||||
required: false
|
||||
sha1: "014881a959e045e00f4db8f52955200865d40280"
|
||||
md5: "6d2cb14fc3e1f65ceb135633d1694122"
|
||||
source_ref: "libretro.cpp:1057-1058, settings.cpp:41"
|
||||
alt_names: ["gecard.pce"]
|
||||
notes: >
|
||||
pce_cdbios = 'Games Express' or auto-detected via DetectGECD() in pce.cpp:374.
|
||||
Same ROM as gecard.pce (System.dat name). Core expects gexpress.pce filename.
|
||||
Required for unlicensed Games Express titles (AV Tanjou, Bishoujo Jyanshi, etc).
|
||||
49
emulators/beetle_pcfx.yml
Normal file
49
emulators/beetle_pcfx.yml
Normal file
@@ -0,0 +1,49 @@
|
||||
emulator: Beetle PC-FX (Mednafen)
|
||||
type: libretro
|
||||
cores: [mednafen_pcfx]
|
||||
source: "https://github.com/libretro/beetle-pcfx-libretro"
|
||||
systems:
|
||||
- nec-pcfx
|
||||
|
||||
notes: |
|
||||
Beetle PC-FX is the libretro port of Mednafen's NEC PC-FX emulation module.
|
||||
The core requires a single BIOS file: pcfx.rom (1 MB). The setting
|
||||
"pcfx.bios" resolves to the filename "pcfx.rom" via MDFN_GetSettingS()
|
||||
in mednafen/settings.c:92-93. The file is loaded from the libretro
|
||||
system directory in LoadCommon() (libretro.cpp:367-394).
|
||||
|
||||
The BIOS is mapped at address 0xFFF00000 and must be exactly 1048576 bytes
|
||||
(1024 * 1024). LoadCommon() returns false if the file is missing or the
|
||||
wrong size, so the core will not start without it.
|
||||
|
||||
No other firmware files (fx-scsi.rom, pcfxga.rom, pcfxv101.bin) are
|
||||
referenced by this core. Those exist for other PC-FX emulators or
|
||||
alternate BIOS versions but are unused here.
|
||||
|
||||
BIOS loading: libretro.cpp LoadCommon() lines 364-397.
|
||||
Setting resolution: mednafen/settings.c MDFN_GetSettingS() lines 90-94.
|
||||
BIOS memory: static uint8 *BIOSROM, mapped at 0xFFF00000 (1 MB region).
|
||||
|
||||
files:
|
||||
# -------------------------------------------------------
|
||||
# PC-FX BIOS
|
||||
# -------------------------------------------------------
|
||||
- name: "pcfx.rom"
|
||||
system: nec-pcfx
|
||||
required: true
|
||||
size: 1048576 # 1 MB (1024 * 1024)
|
||||
md5: "08e36edbea28a017f79f8d4f7ff9b6d7"
|
||||
sha1: "1a77fd83e337f906aecab27a1604db064cf10074"
|
||||
note: "PC-FX BIOS v1.00. Only BIOS file used by this core."
|
||||
source_ref: "libretro.cpp:367, mednafen/settings.c:92-93"
|
||||
|
||||
platform_details:
|
||||
pcfx:
|
||||
bios_size: 1048576 # 1 MB
|
||||
ram_size: 2097152 # 2 MB
|
||||
bios_address: "0xFFF00000-0xFFFFFFFF"
|
||||
ram_address: "0x00000000-0x001FFFFF"
|
||||
cpu: "NEC V810"
|
||||
cpu_modes: [accurate, fast]
|
||||
hle_available: false
|
||||
source_ref: "libretro.cpp:103-104, 379-387"
|
||||
83
emulators/beetle_psx.yml
Normal file
83
emulators/beetle_psx.yml
Normal file
@@ -0,0 +1,83 @@
|
||||
emulator: Beetle PSX (Mednafen PSX)
|
||||
type: libretro
|
||||
source: "https://github.com/libretro/beetle-psx-libretro"
|
||||
cores: [mednafen_psx, mednafen_psx_hw]
|
||||
systems: [sony-playstation]
|
||||
bios_size: 524288 # 512 KB for all accepted BIOS images
|
||||
verification: sha1
|
||||
notes: >
|
||||
Region-based BIOS selection: the core picks JP/NA/EU firmware based on disc region.
|
||||
SHA1 validated with warning on mismatch (does not block loading).
|
||||
Override option allows using PSP or PS3 extracted PS1 BIOS as region-free alternative.
|
||||
"Skip BIOS" option exists but causes compatibility issues (PAL copy protection, Saga Frontier).
|
||||
Alternate filenames are case variants and model aliases for the same image.
|
||||
Comment in source references MAME psx.cpp as hash source.
|
||||
|
||||
files:
|
||||
# -- Region: Japan (REGION_JP) --
|
||||
|
||||
- name: "scph5500.bin"
|
||||
description: "SCPH-5500 (v3.0 09-09-96 J)"
|
||||
region: "NTSC-J"
|
||||
required: true
|
||||
sha1: "b05def971d8ec59f346f2d9ac21fb742e3eb6917"
|
||||
md5: "8dd7d5296a650fac7319bce665a6a53c"
|
||||
source_ref: "libretro.cpp:252-256"
|
||||
alt_names: ["SCPH5500.bin", "SCPH-5500.bin"]
|
||||
|
||||
# -- Region: North America (REGION_NA) --
|
||||
|
||||
- name: "scph5501.bin"
|
||||
description: "SCPH-5501, 5503, 7003 (v3.0 11-18-96 A)"
|
||||
region: "NTSC-U"
|
||||
required: true
|
||||
sha1: "0555c6fae8906f3f09baf5988f00e55f88e9f30b"
|
||||
md5: "490f666e1afb15b7362b406ed1cea246"
|
||||
source_ref: "libretro.cpp:258-270"
|
||||
alt_names:
|
||||
- "SCPH5501.bin"
|
||||
- "SCPH-5501.bin"
|
||||
- "scph5503.bin"
|
||||
- "SCPH5503.bin"
|
||||
- "SCPH-5503.bin"
|
||||
- "scph7003.bin"
|
||||
- "SCPH7003.bin"
|
||||
- "SCPH-7003.bin"
|
||||
|
||||
# -- Region: Europe (REGION_EU) --
|
||||
|
||||
- name: "scph5502.bin"
|
||||
description: "SCPH-5502, 5552 (v3.0 01-06-97 E)"
|
||||
region: "PAL"
|
||||
required: true
|
||||
sha1: "f6bc2d1f5eb6593de7d089c425ac681d6fffd3f0"
|
||||
md5: "32736f17079d0b2b7024407c39bd3050"
|
||||
source_ref: "libretro.cpp:272-282"
|
||||
alt_names:
|
||||
- "SCPH5502.bin"
|
||||
- "SCPH-5502.bin"
|
||||
- "scph5552.bin"
|
||||
- "SCPH5552.bin"
|
||||
- "SCPH-5552.bin"
|
||||
|
||||
# -- Override BIOS (region-free alternatives) --
|
||||
|
||||
- name: "psxonpsp660.bin"
|
||||
description: "PSP embedded PS1 BIOS (region-free override)"
|
||||
region: "Auto"
|
||||
required: false
|
||||
sha1: "96880d1ca92a016ff054be5159bb06fe03cb4e14"
|
||||
md5: "c53ca5908936d412331790f4426c6c33"
|
||||
source_ref: "libretro.cpp:190-196"
|
||||
alt_names: ["PSXONPSP660.bin"]
|
||||
notes: "override_bios=1 (psxonpsp option). Falls back to region BIOS if not found."
|
||||
|
||||
- name: "ps1_rom.bin"
|
||||
description: "PS3 embedded PS1 BIOS (region-free override)"
|
||||
region: "Auto"
|
||||
required: false
|
||||
sha1: "c40146361eb8cf670b19fdc9759190257803cab7"
|
||||
md5: "81bbe60ba7a3d1cea1d48c14cbcc647b"
|
||||
source_ref: "libretro.cpp:198-204"
|
||||
alt_names: ["PS1_ROM.bin"]
|
||||
notes: "override_bios=2 (ps1_rom option). Falls back to region BIOS if not found."
|
||||
93
emulators/beetle_saturn.yml
Normal file
93
emulators/beetle_saturn.yml
Normal file
@@ -0,0 +1,93 @@
|
||||
emulator: Beetle Saturn (Mednafen)
|
||||
type: libretro
|
||||
core: mednafen_saturn_libretro
|
||||
source: "https://github.com/libretro/beetle-saturn-libretro"
|
||||
systems:
|
||||
- sega-saturn
|
||||
|
||||
notes: |
|
||||
Beetle Saturn is the libretro port of Mednafen's Sega Saturn emulation module.
|
||||
Two region-specific BIOS files are used: sega_101.bin for Japan/Asia NTSC,
|
||||
mpr-17933.bin for North America, Europe, and all other regions. The core
|
||||
returns false from InitCommon() if the BIOS file is missing or not exactly
|
||||
512 KB, so both BIOS files are required for full region coverage.
|
||||
|
||||
Region auto-detection reads the disc header and picks the matching BIOS.
|
||||
Manual region override is available via beetle_saturn_region core option.
|
||||
|
||||
The KOF95 and Ultraman ROM carts are optional game-specific expansion
|
||||
cartridges loaded from the system directory. The Action Replay 4M Plus
|
||||
cart (satar4mp.bin) is listed but marked unfinished in source (needs
|
||||
CPU UBC emulation).
|
||||
|
||||
BIOS loading: mednafen/ss/ss.cpp InitCommon() lines 920-961.
|
||||
Cart loading: mednafen/ss/cart.cpp CART_Init() lines 128-220.
|
||||
Firmware path: libretro.cpp MDFN_MakeFName(MDFNMKF_FIRMWARE) -> system dir.
|
||||
Default cart ROM filenames: mednafen/settings.cpp MDFN_GetSettingS().
|
||||
|
||||
files:
|
||||
# -------------------------------------------------------
|
||||
# Saturn BIOS - Japan / Asia NTSC
|
||||
# -------------------------------------------------------
|
||||
- name: "sega_101.bin"
|
||||
system: sega-saturn
|
||||
region: [japan, asia-ntsc]
|
||||
required: true
|
||||
size: 524288 # 512 KB
|
||||
md5: "85ec9ca47d8f6807718151cbcca8b964"
|
||||
note: "Saturn BIOS v1.01 (Japan). Used when region is JP or Asia NTSC."
|
||||
source_ref: "mednafen/ss/ss.cpp:928-929"
|
||||
|
||||
# -------------------------------------------------------
|
||||
# Saturn BIOS - North America / Europe / other
|
||||
# -------------------------------------------------------
|
||||
- name: "mpr-17933.bin"
|
||||
system: sega-saturn
|
||||
region: [north-america, europe, south-korea, asia-pal, brazil, latin-america]
|
||||
required: true
|
||||
size: 524288 # 512 KB
|
||||
md5: "3240872c70984b6cbfda1586cab68dbe"
|
||||
note: "Saturn BIOS (NA/EU). Used for all non-JP/Asia-NTSC regions."
|
||||
source_ref: "mednafen/ss/ss.cpp:930-931"
|
||||
|
||||
# -------------------------------------------------------
|
||||
# King of Fighters '95 ROM cart
|
||||
# -------------------------------------------------------
|
||||
- name: "mpr-18811-mx.ic1"
|
||||
system: sega-saturn
|
||||
required: false
|
||||
size: 2097152 # 2 MB (0x200000, rom.cpp reads up to this)
|
||||
md5: "255113ba943c92a54facd25a10fd780c"
|
||||
note: "KOF95 expansion ROM cart. Loaded when cart type set to KOF95."
|
||||
source_ref: "mednafen/ss/cart.cpp:157-172, mednafen/settings.cpp:64-65"
|
||||
|
||||
# -------------------------------------------------------
|
||||
# Ultraman ROM cart
|
||||
# -------------------------------------------------------
|
||||
- name: "mpr-19367-mx.ic1"
|
||||
system: sega-saturn
|
||||
required: false
|
||||
size: 2097152 # 2 MB
|
||||
md5: "1cd19988d1d72a3e7caa0b73234c96b4"
|
||||
note: "Ultraman expansion ROM cart. Loaded when cart type set to Ultraman."
|
||||
source_ref: "mednafen/ss/cart.cpp:157-172, mednafen/settings.cpp:66-67"
|
||||
|
||||
# -------------------------------------------------------
|
||||
# Action Replay 4M Plus (unfinished)
|
||||
# -------------------------------------------------------
|
||||
- name: "satar4mp.bin"
|
||||
system: sega-saturn
|
||||
required: false
|
||||
note: "Action Replay 4M Plus firmware. Unfinished in source, needs CPU UBC emulation."
|
||||
source_ref: "mednafen/ss/cart.cpp:174-188, mednafen/settings.cpp:68-69"
|
||||
|
||||
platform_details:
|
||||
saturn:
|
||||
bios_size: 524288 # 512 KB
|
||||
rom_cart_size: 2097152 # 2 MB max (rom.cpp)
|
||||
workram_low: 1048576 # 1 MB
|
||||
workram_high: 1048576 # 1 MB
|
||||
bios_address: "0x00000000-0x000FFFFF"
|
||||
cart_address: "0x02000000-0x03FFFFFF"
|
||||
hle_available: false
|
||||
source_ref: "mednafen/ss/ss.cpp:906-908"
|
||||
26
emulators/beetle_vb.yml
Normal file
26
emulators/beetle_vb.yml
Normal file
@@ -0,0 +1,26 @@
|
||||
emulator: Beetle VB (Mednafen Virtual Boy)
|
||||
type: libretro
|
||||
source: "https://github.com/libretro/beetle-vb-libretro"
|
||||
systems: [nintendo-virtualboy]
|
||||
|
||||
notes: |
|
||||
Beetle VB is a port of Mednafen's Virtual Boy emulation module to
|
||||
libretro. Based on Mednafen v0.9.36.1.
|
||||
|
||||
No external BIOS or firmware files are required. The Virtual Boy
|
||||
hardware did not use a traditional boot ROM or BIOS in the way
|
||||
that consoles like PlayStation or Saturn do. The V810 CPU starts
|
||||
execution directly from the game ROM mapped at 0x07000000.
|
||||
|
||||
The core loads the ROM into GPROM (Game Pak ROM), mirrors it if
|
||||
smaller than 64KB, and initializes 64KB of WRAM and optional
|
||||
GPRAM (Game Pak RAM/SRAM for saves). The VIP (Virtual Image
|
||||
Processor), VSU (Virtual Sound Unit), and hardware timer are all
|
||||
emulated in software with no firmware dependencies.
|
||||
|
||||
The libretro .info file (mednafen_vb_libretro.info) declares no
|
||||
firmware entries and no system files.
|
||||
|
||||
ROM extensions: .vb, .vboy, .bin
|
||||
|
||||
files: []
|
||||
31
emulators/beetle_wswan.yml
Normal file
31
emulators/beetle_wswan.yml
Normal file
@@ -0,0 +1,31 @@
|
||||
emulator: Beetle WonderSwan (Mednafen WonderSwan)
|
||||
type: libretro
|
||||
source: "https://github.com/libretro/beetle-wswan-libretro"
|
||||
systems: [bandai-wswan, bandai-wswanc]
|
||||
|
||||
notes: |
|
||||
Beetle WonderSwan is a fork of Mednafen's Cygne module for WonderSwan
|
||||
and WonderSwan Color emulation via libretro.
|
||||
|
||||
No external BIOS or firmware files are required. The core bypasses the
|
||||
original boot ROM entirely by hardcoding the initial I/O register state
|
||||
in mednafen/wswan/start.inc (a 256-byte table of power-on defaults for
|
||||
all hardware registers 0x00-0xFF). On reset, WSwan_MemoryReset() in
|
||||
wswan-memory.c zeroes RAM and writes a fixed 8-byte identifier at
|
||||
0x75AC, then the CPU starts executing the cartridge directly.
|
||||
|
||||
Internal EEPROM owner data (name, birthday, sex, blood type) is
|
||||
configured through core options (wswan.name, wswan.byear, wswan.bmonth,
|
||||
wswan.bday, wswan.sex, wswan.blood) and initialized at boot by
|
||||
WSwan_EEPROMInit() without needing a real EEPROM dump.
|
||||
|
||||
The wswan.language core option selects English or Japanese, which is
|
||||
returned via I/O port 0xC8+ as the hardware language flag. This
|
||||
replaces the boot ROM's language selection screen.
|
||||
|
||||
The NEC V30MZ CPU is emulated in software (v30mz.c). Sound DMA,
|
||||
cartridge banking, and RTC are all handled internally.
|
||||
|
||||
ROM extensions: .ws, .wsc, .pc2
|
||||
|
||||
files: []
|
||||
149
emulators/bk.yml
Normal file
149
emulators/bk.yml
Normal file
@@ -0,0 +1,149 @@
|
||||
emulator: bk-emulator
|
||||
type: libretro
|
||||
source: "https://github.com/libretro/bk-emulator"
|
||||
cores:
|
||||
- bk
|
||||
systems:
|
||||
- elektronika-bk
|
||||
|
||||
# BK-emulator is an Elektronika BK-0010/0011M emulator (Soviet PDP-11 based home
|
||||
# computer). The libretro core supports six machine configurations selected via
|
||||
# the "bk_model" core option:
|
||||
# BK-0010 (model 0) - default
|
||||
# BK-0010.01 (model 1)
|
||||
# BK-0010.01 + FDD (model 2)
|
||||
# BK-0011M + FDD (model 3)
|
||||
# Slow BK-0011M (model 4) - same ROMs as model 3
|
||||
# Terak 8510/a (model 9)
|
||||
#
|
||||
# ROM loading (boot.c:83-116):
|
||||
# BK-0010 models use load_rom() which maps ROM into emulated memory at
|
||||
# specific addresses: monitor at 0100000 (8 KB), BASIC/FOCAL at 0120000
|
||||
# (24448-24576 bytes), disk controller at 0160000 (4 KB).
|
||||
# BK-0011M uses load_rom11() which loads into separate ROM buffer arrays.
|
||||
#
|
||||
# ROM file resolution (libretro.c:1051-1108):
|
||||
# Files are loaded from {system_dir}/bk/{filename} (libretro.c:724-726).
|
||||
# If not found with original casing, the loader retries with lowercase
|
||||
# filename (libretro.c:1074-1079).
|
||||
#
|
||||
# All ROM files are required for their respective model. The core calls
|
||||
# environ_cb(RETRO_ENVIRONMENT_SHUTDOWN) if any ROM file is missing.
|
||||
|
||||
notes: |
|
||||
Files go in {system_dir}/bk/.
|
||||
Each BK model requires a specific set of ROMs. The default model is BK-0010
|
||||
which needs MONIT10.ROM and FOCAL10.ROM. Changing the core option "bk_model"
|
||||
changes which ROMs are loaded. The core shuts down if a required ROM is
|
||||
missing (no fallback or pseudo-BIOS).
|
||||
If a ROM file with uppercase name is not found, the core retries with
|
||||
the filename lowercased.
|
||||
|
||||
files:
|
||||
# -- BK-0010 Monitor ROM (all BK-0010 variants) --
|
||||
|
||||
- name: MONIT10.ROM
|
||||
path: "bk/MONIT10.ROM"
|
||||
size: 8192
|
||||
required: true
|
||||
note: "BK-0010 monitor ROM (8 KB). Loaded at address 0100000. Required for all BK-0010 models (0, 1, 2)."
|
||||
source_ref: "main.c:53, boot.c:107"
|
||||
aliases: ["monit10.rom"]
|
||||
|
||||
# -- BK-0010 language ROMs (model-dependent) --
|
||||
|
||||
- name: FOCAL10.ROM
|
||||
path: "bk/FOCAL10.ROM"
|
||||
size: 24576
|
||||
required: false
|
||||
note: "FOCAL interpreter ROM (24448-24576 bytes). Loaded at 0120000. Used by BK-0010 (model 0, default)."
|
||||
source_ref: "libretro.c:15, boot.c:110"
|
||||
aliases: ["focal10.rom"]
|
||||
|
||||
- name: BASIC10.ROM
|
||||
path: "bk/BASIC10.ROM"
|
||||
size: 24576
|
||||
required: false
|
||||
note: "BASIC interpreter ROM (24448-24576 bytes). Loaded at 0120000. Used by BK-0010.01 (model 1)."
|
||||
source_ref: "libretro.c:16, boot.c:110"
|
||||
aliases: ["basic10.rom"]
|
||||
|
||||
# -- Disk controller ROM (BK-0010.01+FDD and BK-0011M) --
|
||||
|
||||
- name: DISK_327.ROM
|
||||
path: "bk/DISK_327.ROM"
|
||||
size: 4096
|
||||
required: false
|
||||
note: "Floppy disk controller ROM (4 KB). Loaded at 0160000 for BK-0010.01+FDD (model 2), or into system_rom for BK-0011M (model 3/4)."
|
||||
source_ref: "main.c:54, boot.c:99,113"
|
||||
aliases: ["disk_327.rom"]
|
||||
|
||||
# -- BK-0011M ROMs --
|
||||
|
||||
- name: B11M_BOS.ROM
|
||||
path: "bk/B11M_BOS.ROM"
|
||||
size: 8192
|
||||
required: false
|
||||
note: "BK-0011M system ROM / BOS (8 KB). Loaded into system_rom at offset 0. Required for BK-0011M (model 3/4)."
|
||||
source_ref: "main.c:55, boot.c:98"
|
||||
aliases: ["b11m_bos.rom"]
|
||||
|
||||
- name: B11M_EXT.ROM
|
||||
path: "bk/B11M_EXT.ROM"
|
||||
size: 8192
|
||||
required: false
|
||||
note: "BK-0011M extended BOS ROM (8 KB). Loaded into rom[1] at offset 8192. Required for BK-0011M (model 3/4)."
|
||||
source_ref: "main.c:56, boot.c:102"
|
||||
aliases: ["b11m_ext.rom"]
|
||||
|
||||
- name: BAS11M_0.ROM
|
||||
path: "bk/BAS11M_0.ROM"
|
||||
size: 16384
|
||||
required: false
|
||||
note: "BK-0011M BASIC ROM part 0 (16 KB). Loaded into rom[0]. Required for BK-0011M (model 3/4)."
|
||||
source_ref: "main.c:57, boot.c:100"
|
||||
aliases: ["bas11m_0.rom"]
|
||||
|
||||
- name: BAS11M_1.ROM
|
||||
path: "bk/BAS11M_1.ROM"
|
||||
size: 8192
|
||||
required: false
|
||||
note: "BK-0011M BASIC ROM part 1 (8 KB). Loaded into rom[1] at offset 0. Required for BK-0011M (model 3/4)."
|
||||
source_ref: "main.c:58, boot.c:101"
|
||||
aliases: ["bas11m_1.rom"]
|
||||
|
||||
# -- Terak 8510/a ROM --
|
||||
|
||||
- name: TERAK.ROM
|
||||
path: "bk/TERAK.ROM"
|
||||
size: 128
|
||||
required: false
|
||||
note: "Terak 8510/a boot ROM (128 bytes). Only used when model is set to Terak 8510/a (model 9)."
|
||||
source_ref: "boot.c:94"
|
||||
aliases: ["terak.rom"]
|
||||
|
||||
platform_details:
|
||||
bios_mapping:
|
||||
source_ref: "libretro.c:718-760, boot.c:83-116"
|
||||
notes: |
|
||||
ROM directory is {system_dir}/bk/ (libretro.c:724-726).
|
||||
Model selection via core option "bk_model" determines which ROMs are loaded.
|
||||
The core shuts down immediately if any required ROM for the selected model
|
||||
is not found.
|
||||
|
||||
model_rom_map:
|
||||
source_ref: "libretro.c:734-756, boot.c:83-116"
|
||||
notes: |
|
||||
BK-0010: MONIT10.ROM + FOCAL10.ROM
|
||||
BK-0010.01: MONIT10.ROM + BASIC10.ROM
|
||||
BK-0010.01 + FDD: MONIT10.ROM + DISK_327.ROM
|
||||
BK-0011M + FDD: B11M_BOS.ROM + DISK_327.ROM + BAS11M_0.ROM + BAS11M_1.ROM + B11M_EXT.ROM
|
||||
Slow BK-0011M: same as BK-0011M + FDD
|
||||
Terak 8510/a: TERAK.ROM
|
||||
|
||||
rom_loading:
|
||||
source_ref: "libretro.c:1051-1108"
|
||||
notes: |
|
||||
load_rom_file() first tries {romdir}/{filename} with original casing.
|
||||
If not found, retries with the filename converted to lowercase.
|
||||
Returns NULL and shuts down the core on failure.
|
||||
55
emulators/blastem.yml
Normal file
55
emulators/blastem.yml
Normal file
@@ -0,0 +1,55 @@
|
||||
emulator: BlastEm
|
||||
type: libretro
|
||||
source: "https://github.com/libretro/blastem"
|
||||
cores:
|
||||
- blastem
|
||||
systems:
|
||||
- sega-megadrive
|
||||
- sega-mastersystem
|
||||
|
||||
notes: |
|
||||
BlastEm is a cycle-accurate Sega Mega Drive/Genesis emulator with basic
|
||||
Master System support. In standalone mode it supports TMSS ROM loading and
|
||||
multiple hardware models (MD1 VA0 through MD3 VA2, Teradrive). The Jaguar
|
||||
emulator (blastjag) is a separate standalone binary, not part of the
|
||||
libretro core.
|
||||
|
||||
The libretro port (libblastem.c) does NOT expose any core options and
|
||||
defaults to model md1va3 which has TMSS disabled. There is no way to
|
||||
select a TMSS-enabled model through the libretro interface.
|
||||
|
||||
Even if a TMSS-enabled model were forced, read_bundled_file() in the
|
||||
libretro build only serves rom.db and returns NULL for tmss.md, so TMSS
|
||||
ROM loading would fail (fatal_error at genesis.c:1923).
|
||||
|
||||
Sega CD / Mega CD is not supported (only a TODO comment in system.c:16).
|
||||
No BIOS files are required or loaded by the libretro core.
|
||||
|
||||
files: []
|
||||
|
||||
analysis:
|
||||
tmss:
|
||||
standalone_support: true
|
||||
libretro_support: false
|
||||
default_model: md1va3
|
||||
default_tmss: "off"
|
||||
rom_filename: tmss.md
|
||||
rom_size: 2048 # 2 KB
|
||||
config_path: "system\0tmss_path\0"
|
||||
source_ref: "genesis.c:1910"
|
||||
notes: |
|
||||
TMSS ROM is loaded from tmss.md (configurable via system/tmss_path).
|
||||
Models with tmss=on: md1va6, md2va1, md2va2, md3va1, md3va2.
|
||||
Models with tmss=off: md1va0, md1va3 (default), teradrive.
|
||||
The libretro build uses md1va3 (tmss off) with no option to change.
|
||||
|
||||
sega_cd:
|
||||
supported: false
|
||||
source_ref: "system.c:16"
|
||||
notes: "TODO comment only: 'Differentiate between vanilla Genesis and Sega CD/32X games'"
|
||||
|
||||
jaguar_bios:
|
||||
libretro_relevant: false
|
||||
notes: |
|
||||
blastjag (jaguar.c) is a separate standalone binary, not compiled
|
||||
into the libretro core. Requires BIOS as first CLI argument.
|
||||
644
emulators/bluemsx.yml
Normal file
644
emulators/bluemsx.yml
Normal file
@@ -0,0 +1,644 @@
|
||||
emulator: blueMSX
|
||||
type: libretro
|
||||
source: "https://github.com/libretro/blueMSX-libretro"
|
||||
cores:
|
||||
- bluemsx
|
||||
systems:
|
||||
- msx
|
||||
- msx2
|
||||
- msx2plus
|
||||
- msxturboR
|
||||
- colecovision
|
||||
- sega-sg1000
|
||||
- sega-sc3000
|
||||
- sega-sf7000
|
||||
- spectravideo
|
||||
|
||||
# blueMSX is a multi-system emulator covering MSX (1/2/2+/turboR), ColecoVision,
|
||||
# SVI (Spectravideo), and SEGA SG-1000/SC-3000/SF-7000. The core ships its entire
|
||||
# machine database (config.ini per machine model) plus ROM files under
|
||||
# <system_dir>/Machines/. Each machine config.ini references ROM paths relative
|
||||
# to the Machines directory.
|
||||
#
|
||||
# Machine type selection (libretro.c:855-896):
|
||||
# Core option "bluemsx_msxtype" selects the machine. "Auto" defaults to SC-3000
|
||||
# then switches based on file extension: .dsk/.cas/.rom/.mx1/.mx2 -> MSX2+,
|
||||
# .col -> ColecoVision, .sg -> SG-1000, .sc -> SC-3000, .sf/.sf7 -> SF-7000.
|
||||
#
|
||||
# C-BIOS (open source MSX BIOS replacement) is bundled for MSX, MSX2, MSX2+.
|
||||
# Machines: "MSX - C-BIOS", "MSX2 - C-BIOS", "MSX2+ - C-BIOS"
|
||||
# These allow running cartridge ROMs without copyrighted BIOS files.
|
||||
# Disk and tape software requires real BIOS ROMs.
|
||||
#
|
||||
# ROM loading (Src/Board/Machine.c:594-647):
|
||||
# machineCreate() reads <machinesDir>/<machineName>/config.ini which lists
|
||||
# ROM slots. ROM paths in config.ini are relative to machinesDir parent.
|
||||
#
|
||||
# All files go under: <system_dir>/Machines/
|
||||
|
||||
notes: |
|
||||
The directory structure must be preserved exactly as shipped in the repo's
|
||||
system/bluemsx/ folder. The core expects Machines/ and Databases/ subdirectories
|
||||
inside the system directory. Each machine model has its own subdirectory with
|
||||
a config.ini and associated ROM files.
|
||||
|
||||
Default machines (used when selecting base type names like "MSX", "MSX2", etc.)
|
||||
reference ROMs from "Machines/Shared Roms/". Machine-specific variants (e.g.
|
||||
"MSX2 - Panasonic FS-A1F") have their own ROMs in their own subdirectory.
|
||||
|
||||
C-BIOS machines work for cartridge-based games without any copyrighted BIOS.
|
||||
For disk/tape support, real BIOS ROMs are required.
|
||||
|
||||
files:
|
||||
# ============================================================
|
||||
# Shared ROMs (Machines/Shared Roms/)
|
||||
# Used by the default/generic machine configs and many specific models.
|
||||
# ============================================================
|
||||
|
||||
# -- MSX1 main BIOS variants --
|
||||
|
||||
- name: MSX.rom
|
||||
path: "Machines/Shared Roms/MSX.rom"
|
||||
size: 32768
|
||||
required: true
|
||||
system: msx
|
||||
note: "MSX1 generic BIOS. Used by default 'MSX' machine config."
|
||||
source_ref: "system/bluemsx/Machines/MSX/config.ini"
|
||||
|
||||
- name: MSXJ.rom
|
||||
path: "Machines/Shared Roms/MSXJ.rom"
|
||||
size: 32768
|
||||
required: false
|
||||
system: msx
|
||||
note: "MSX1 Japanese BIOS. Used by 'MSX - Japanese' machine."
|
||||
source_ref: "system/bluemsx/Machines/MSX - Japanese/config.ini"
|
||||
|
||||
- name: MSXBR.rom
|
||||
path: "Machines/Shared Roms/MSXBR.rom"
|
||||
size: 32768
|
||||
required: false
|
||||
system: msx
|
||||
note: "MSX1 Brazilian BIOS."
|
||||
|
||||
- name: MSXFR.rom
|
||||
path: "Machines/Shared Roms/MSXFR.rom"
|
||||
size: 32768
|
||||
required: false
|
||||
system: msx
|
||||
note: "MSX1 French BIOS."
|
||||
|
||||
- name: MSXG.rom
|
||||
path: "Machines/Shared Roms/MSXG.rom"
|
||||
size: 32768
|
||||
required: false
|
||||
system: msx
|
||||
note: "MSX1 German BIOS."
|
||||
|
||||
- name: MSXKR.rom
|
||||
path: "Machines/Shared Roms/MSXKR.rom"
|
||||
size: 32768
|
||||
required: false
|
||||
system: msx
|
||||
note: "MSX1 Korean BIOS."
|
||||
|
||||
- name: MSXR.rom
|
||||
path: "Machines/Shared Roms/MSXR.rom"
|
||||
size: 32768
|
||||
required: false
|
||||
system: msx
|
||||
note: "MSX1 Russian BIOS."
|
||||
|
||||
- name: MSXSE.ROM
|
||||
path: "Machines/Shared Roms/MSXSE.ROM"
|
||||
size: 32768
|
||||
required: false
|
||||
system: msx
|
||||
note: "MSX1 Swedish BIOS."
|
||||
|
||||
- name: MSXSP.rom
|
||||
path: "Machines/Shared Roms/MSXSP.rom"
|
||||
size: 32768
|
||||
required: false
|
||||
system: msx
|
||||
note: "MSX1 Spanish BIOS."
|
||||
|
||||
- name: MSXAR.ROM
|
||||
path: "Machines/Shared Roms/MSXAR.ROM"
|
||||
size: 32768
|
||||
required: false
|
||||
system: msx
|
||||
note: "MSX1 Arabic BIOS."
|
||||
|
||||
- name: MSXR2.ROM
|
||||
path: "Machines/Shared Roms/MSXR2.ROM"
|
||||
size: 32768
|
||||
required: false
|
||||
system: msx
|
||||
note: "MSX1 Russian BIOS (variant 2)."
|
||||
|
||||
- name: MSXHAN.rom
|
||||
path: "Machines/Shared Roms/MSXHAN.rom"
|
||||
size: 8192
|
||||
required: false
|
||||
system: msx
|
||||
note: "MSX1 Korean Hangul extension ROM."
|
||||
|
||||
# -- MSX2 main BIOS + extension --
|
||||
|
||||
- name: MSX2.rom
|
||||
path: "Machines/Shared Roms/MSX2.rom"
|
||||
size: 32768
|
||||
required: true
|
||||
system: msx2
|
||||
note: "MSX2 generic main BIOS. Used by default 'MSX2' machine config."
|
||||
source_ref: "system/bluemsx/Machines/MSX2/config.ini"
|
||||
|
||||
- name: MSX2EXT.rom
|
||||
path: "Machines/Shared Roms/MSX2EXT.rom"
|
||||
size: 16384
|
||||
required: true
|
||||
system: msx2
|
||||
note: "MSX2 extension BIOS (SubROM). Required alongside MSX2.rom."
|
||||
source_ref: "system/bluemsx/Machines/MSX2/config.ini"
|
||||
|
||||
- name: MSX2J.rom
|
||||
path: "Machines/Shared Roms/MSX2J.rom"
|
||||
size: 32768
|
||||
required: false
|
||||
system: msx2
|
||||
note: "MSX2 Japanese main BIOS."
|
||||
|
||||
- name: MSX2JEXT.rom
|
||||
path: "Machines/Shared Roms/MSX2JEXT.rom"
|
||||
size: 16384
|
||||
required: false
|
||||
system: msx2
|
||||
note: "MSX2 Japanese extension BIOS."
|
||||
|
||||
- name: MSX2BR.rom
|
||||
path: "Machines/Shared Roms/MSX2BR.rom"
|
||||
size: 32768
|
||||
required: false
|
||||
system: msx2
|
||||
note: "MSX2 Brazilian main BIOS."
|
||||
|
||||
- name: MSX2BREXT.rom
|
||||
path: "Machines/Shared Roms/MSX2BREXT.rom"
|
||||
size: 16384
|
||||
required: false
|
||||
system: msx2
|
||||
note: "MSX2 Brazilian extension BIOS."
|
||||
|
||||
- name: MSX2FR.rom
|
||||
path: "Machines/Shared Roms/MSX2FR.rom"
|
||||
size: 32768
|
||||
required: false
|
||||
system: msx2
|
||||
note: "MSX2 French main BIOS."
|
||||
|
||||
- name: MSX2FREXT.rom
|
||||
path: "Machines/Shared Roms/MSX2FREXT.rom"
|
||||
size: 16384
|
||||
required: false
|
||||
system: msx2
|
||||
note: "MSX2 French extension BIOS."
|
||||
|
||||
- name: MSX2G.rom
|
||||
path: "Machines/Shared Roms/MSX2G.rom"
|
||||
size: 32768
|
||||
required: false
|
||||
system: msx2
|
||||
note: "MSX2 German main BIOS."
|
||||
|
||||
- name: MSX2GEXT.rom
|
||||
path: "Machines/Shared Roms/MSX2GEXT.rom"
|
||||
size: 16384
|
||||
required: false
|
||||
system: msx2
|
||||
note: "MSX2 German extension BIOS."
|
||||
|
||||
- name: MSX2KR.rom
|
||||
path: "Machines/Shared Roms/MSX2KR.rom"
|
||||
size: 32768
|
||||
required: false
|
||||
system: msx2
|
||||
note: "MSX2 Korean main BIOS."
|
||||
|
||||
- name: MSX2KREXT.rom
|
||||
path: "Machines/Shared Roms/MSX2KREXT.rom"
|
||||
size: 32768
|
||||
required: false
|
||||
system: msx2
|
||||
note: "MSX2 Korean extension BIOS."
|
||||
|
||||
- name: MSX2R.rom
|
||||
path: "Machines/Shared Roms/MSX2R.rom"
|
||||
size: 32768
|
||||
required: false
|
||||
system: msx2
|
||||
note: "MSX2 Russian main BIOS."
|
||||
|
||||
- name: MSX2REXT.rom
|
||||
path: "Machines/Shared Roms/MSX2REXT.rom"
|
||||
size: 16384
|
||||
required: false
|
||||
system: msx2
|
||||
note: "MSX2 Russian extension BIOS."
|
||||
|
||||
- name: MSX2R2.ROM
|
||||
path: "Machines/Shared Roms/MSX2R2.ROM"
|
||||
size: 32768
|
||||
required: false
|
||||
system: msx2
|
||||
note: "MSX2 Russian main BIOS (variant 2)."
|
||||
|
||||
- name: MSX2SE.rom
|
||||
path: "Machines/Shared Roms/MSX2SE.rom"
|
||||
size: 32768
|
||||
required: false
|
||||
system: msx2
|
||||
note: "MSX2 Swedish main BIOS."
|
||||
|
||||
- name: MSX2SP.rom
|
||||
path: "Machines/Shared Roms/MSX2SP.rom"
|
||||
size: 32768
|
||||
required: false
|
||||
system: msx2
|
||||
note: "MSX2 Spanish main BIOS."
|
||||
|
||||
- name: MSX2SPEXT.rom
|
||||
path: "Machines/Shared Roms/MSX2SPEXT.rom"
|
||||
size: 16384
|
||||
required: false
|
||||
system: msx2
|
||||
note: "MSX2 Spanish extension BIOS."
|
||||
|
||||
- name: MSX2AR.ROM
|
||||
path: "Machines/Shared Roms/MSX2AR.ROM"
|
||||
size: 32768
|
||||
required: false
|
||||
system: msx2
|
||||
note: "MSX2 Arabic main BIOS."
|
||||
|
||||
- name: MSX2AREXT.ROM
|
||||
path: "Machines/Shared Roms/MSX2AREXT.ROM"
|
||||
size: 16384
|
||||
required: false
|
||||
system: msx2
|
||||
note: "MSX2 Arabic extension BIOS."
|
||||
|
||||
- name: MSX2HAN.rom
|
||||
path: "Machines/Shared Roms/MSX2HAN.rom"
|
||||
size: 32768
|
||||
required: false
|
||||
system: msx2
|
||||
note: "MSX2 Korean Hangul BIOS."
|
||||
|
||||
# -- MSX2+ main BIOS + extension --
|
||||
|
||||
- name: MSX2P.rom
|
||||
path: "Machines/Shared Roms/MSX2P.rom"
|
||||
size: 32768
|
||||
required: true
|
||||
system: msx2plus
|
||||
note: "MSX2+ main BIOS. Used by default 'MSX2+' machine config (auto-selected for .dsk/.cas/.rom)."
|
||||
source_ref: "system/bluemsx/Machines/MSX2+/config.ini"
|
||||
|
||||
- name: MSX2PEXT.rom
|
||||
path: "Machines/Shared Roms/MSX2PEXT.rom"
|
||||
size: 16384
|
||||
required: true
|
||||
system: msx2plus
|
||||
note: "MSX2+ extension BIOS (SubROM)."
|
||||
source_ref: "system/bluemsx/Machines/MSX2+/config.ini"
|
||||
|
||||
- name: MSX2PMUS.rom
|
||||
path: "Machines/Shared Roms/MSX2PMUS.rom"
|
||||
size: 16384
|
||||
required: true
|
||||
system: msx2plus
|
||||
note: "MSX2+ MSX-MUSIC BIOS (FM-PAC built-in). Used by MSX2+ and MSX2 default configs."
|
||||
source_ref: "system/bluemsx/Machines/MSX2+/config.ini"
|
||||
|
||||
# -- MSX turboR BIOS set --
|
||||
|
||||
- name: MSXTR.ROM
|
||||
path: "Machines/Shared Roms/MSXTR.ROM"
|
||||
size: 32768
|
||||
required: true
|
||||
system: msxturboR
|
||||
note: "MSX turboR main BIOS."
|
||||
source_ref: "system/bluemsx/Machines/MSXturboR/config.ini"
|
||||
|
||||
- name: MSXTREXT.ROM
|
||||
path: "Machines/Shared Roms/MSXTREXT.ROM"
|
||||
size: 16384
|
||||
required: true
|
||||
system: msxturboR
|
||||
note: "MSX turboR extension BIOS."
|
||||
source_ref: "system/bluemsx/Machines/MSXturboR/config.ini"
|
||||
|
||||
- name: MSXTRMUS.ROM
|
||||
path: "Machines/Shared Roms/MSXTRMUS.ROM"
|
||||
size: 16384
|
||||
required: true
|
||||
system: msxturboR
|
||||
note: "MSX turboR MSX-MUSIC BIOS."
|
||||
source_ref: "system/bluemsx/Machines/MSXturboR/config.ini"
|
||||
|
||||
- name: MSXTROPT.ROM
|
||||
path: "Machines/Shared Roms/MSXTROPT.ROM"
|
||||
size: 16384
|
||||
required: true
|
||||
system: msxturboR
|
||||
note: "MSX turboR option ROM (firmware utilities)."
|
||||
source_ref: "system/bluemsx/Machines/MSXturboR/config.ini"
|
||||
|
||||
- name: MSXDOS23.ROM
|
||||
path: "Machines/Shared Roms/MSXDOS23.ROM"
|
||||
size: 65536
|
||||
required: true
|
||||
system: msxturboR
|
||||
note: "MSX-DOS 2.3 ROM. Used by turboR default config for disk operations."
|
||||
source_ref: "system/bluemsx/Machines/MSXturboR/config.ini"
|
||||
|
||||
# -- Shared utility/extension ROMs --
|
||||
|
||||
- name: KANJI.rom
|
||||
path: "Machines/Shared Roms/KANJI.rom"
|
||||
size: 262144
|
||||
required: false
|
||||
note: "Kanji font ROM (256 KB). Used by MSX2+, turboR, and Japanese MSX2 machines."
|
||||
source_ref: "system/bluemsx/Machines/MSX2+/config.ini"
|
||||
|
||||
- name: MSXKANJI.rom
|
||||
path: "Machines/Shared Roms/MSXKANJI.rom"
|
||||
size: 32768
|
||||
required: false
|
||||
note: "MSX-Kanji driver ROM. Used by MSX2+, turboR, and Japanese MSX2 for kanji display."
|
||||
source_ref: "system/bluemsx/Machines/MSX2+/config.ini"
|
||||
|
||||
- name: FMPAC.rom
|
||||
path: "Machines/Shared Roms/FMPAC.rom"
|
||||
size: 65536
|
||||
required: false
|
||||
note: "FM-PAC cartridge ROM (YM2413 FM synthesis). Loaded as expansion cartridge by MegaromCartridge.c."
|
||||
source_ref: "Src/Memory/MegaromCartridge.c:290"
|
||||
|
||||
- name: XBASIC2.rom
|
||||
path: "Machines/Shared Roms/XBASIC2.rom"
|
||||
size: 16384
|
||||
required: false
|
||||
note: "MSX-BASIC 2 extension ROM. Used by MSX2, MSX2+, and turboR default configs."
|
||||
source_ref: "system/bluemsx/Machines/MSX2/config.ini"
|
||||
|
||||
- name: PAINT.rom
|
||||
path: "Machines/Shared Roms/PAINT.rom"
|
||||
size: 65536
|
||||
required: false
|
||||
note: "Paint utility ROM. Used by some MSX2 Japanese machine configs."
|
||||
|
||||
- name: SWP.rom
|
||||
path: "Machines/Shared Roms/SWP.rom"
|
||||
size: 32768
|
||||
required: false
|
||||
note: "Software World Processor ROM. Used by Al Alamiah MSX2 machines."
|
||||
|
||||
- name: ARABIC.rom
|
||||
path: "Machines/Shared Roms/ARABIC.rom"
|
||||
size: 32768
|
||||
required: false
|
||||
note: "Arabic character set extension ROM."
|
||||
|
||||
- name: HANGUL.rom
|
||||
path: "Machines/Shared Roms/HANGUL.rom"
|
||||
size: 131072
|
||||
required: false
|
||||
note: "Korean Hangul font ROM (128 KB)."
|
||||
|
||||
- name: RS232.ROM
|
||||
path: "Machines/Shared Roms/RS232.ROM"
|
||||
size: 8192
|
||||
required: false
|
||||
note: "RS-232C serial interface ROM."
|
||||
|
||||
- name: MOONSOUND.rom
|
||||
path: "Machines/Shared Roms/MOONSOUND.rom"
|
||||
size: 2097152
|
||||
required: false
|
||||
note: "MoonSound (OPL4) wavetable ROM (2 MB). Used by MSX2, MSX2+, and turboR configs."
|
||||
source_ref: "system/bluemsx/Machines/MSX2/config.ini"
|
||||
|
||||
# -- Disk controller ROMs --
|
||||
|
||||
- name: PANASONICDISK.rom
|
||||
path: "Machines/Shared Roms/PANASONICDISK.rom"
|
||||
size: 16384
|
||||
required: false
|
||||
note: "Panasonic disk controller ROM. Used by MSX2+ and turboR default configs."
|
||||
source_ref: "system/bluemsx/Machines/MSX2+/config.ini"
|
||||
|
||||
- name: PHILIPSDISK.rom
|
||||
path: "Machines/Shared Roms/PHILIPSDISK.rom"
|
||||
size: 16384
|
||||
required: false
|
||||
note: "Philips disk controller ROM. Used by MSX1 and MSX2 default configs."
|
||||
source_ref: "system/bluemsx/Machines/MSX/config.ini"
|
||||
|
||||
- name: NATIONALDISK.rom
|
||||
path: "Machines/Shared Roms/NATIONALDISK.rom"
|
||||
size: 16384
|
||||
required: false
|
||||
note: "National disk controller ROM."
|
||||
|
||||
- name: MICROSOLDISK.ROM
|
||||
path: "Machines/Shared Roms/MICROSOLDISK.ROM"
|
||||
size: 16384
|
||||
required: false
|
||||
note: "Microsol disk controller ROM."
|
||||
|
||||
# -- Expansion hardware ROMs --
|
||||
|
||||
- name: SUNRISEIDE.rom
|
||||
path: "Machines/Shared Roms/SUNRISEIDE.rom"
|
||||
size: 65536
|
||||
required: false
|
||||
note: "Sunrise IDE interface ROM. Loaded as expansion cartridge."
|
||||
source_ref: "Src/Memory/MegaromCartridge.c:310"
|
||||
|
||||
- name: BEERIDE.ROM
|
||||
path: "Machines/Shared Roms/BEERIDE.ROM"
|
||||
size: 16384
|
||||
required: false
|
||||
note: "Beer IDE interface ROM."
|
||||
source_ref: "Src/Memory/MegaromCartridge.c:318"
|
||||
|
||||
- name: NOVAXIS.rom
|
||||
path: "Machines/Shared Roms/NOVAXIS.rom"
|
||||
size: 16384
|
||||
required: false
|
||||
note: "Novaxis SCSI interface ROM."
|
||||
source_ref: "Src/Memory/MegaromCartridge.c:326"
|
||||
|
||||
- name: nowindDos1.rom
|
||||
path: "Machines/Shared Roms/nowindDos1.rom"
|
||||
size: 524288
|
||||
required: false
|
||||
note: "Nowind USB disk interface with MSX-DOS 1."
|
||||
source_ref: "Src/Memory/MegaromCartridge.c:334"
|
||||
|
||||
- name: nowindDos2.rom
|
||||
path: "Machines/Shared Roms/nowindDos2.rom"
|
||||
size: 524288
|
||||
required: false
|
||||
note: "Nowind USB disk interface with MSX-DOS 2."
|
||||
source_ref: "Src/Memory/MegaromCartridge.c:338"
|
||||
|
||||
- name: GCVMX80.ROM
|
||||
path: "Machines/Shared Roms/GCVMX80.ROM"
|
||||
size: 8192
|
||||
required: false
|
||||
note: "GCV MX-80 printer interface ROM."
|
||||
|
||||
- name: ARAB1.ROM
|
||||
path: "Machines/Shared Roms/ARAB1.ROM"
|
||||
size: 32768
|
||||
required: false
|
||||
note: "Arabic support ROM (variant 1)."
|
||||
|
||||
# ============================================================
|
||||
# C-BIOS ROMs (open source, bundled with core)
|
||||
# These are pre-installed and do not require user-supplied files.
|
||||
# ============================================================
|
||||
|
||||
- name: cbios_main_msx1.rom
|
||||
path: "Machines/MSX - C-BIOS/cbios_main_msx1.rom"
|
||||
size: 32768
|
||||
required: false
|
||||
bundled: true
|
||||
system: msx
|
||||
note: "C-BIOS MSX1 main ROM (open source). Bundled with core. Cartridge games only."
|
||||
|
||||
- name: cbios_logo_msx1.rom
|
||||
path: "Machines/MSX - C-BIOS/cbios_logo_msx1.rom"
|
||||
size: 16384
|
||||
required: false
|
||||
bundled: true
|
||||
system: msx
|
||||
note: "C-BIOS MSX1 logo ROM (open source). Bundled with core."
|
||||
|
||||
- name: cbios_main_msx2.rom
|
||||
path: "Machines/MSX2 - C-BIOS/cbios_main_msx2.rom"
|
||||
size: 32768
|
||||
required: false
|
||||
bundled: true
|
||||
system: msx2
|
||||
note: "C-BIOS MSX2 main ROM (open source). Bundled with core. Cartridge games only."
|
||||
|
||||
- name: cbios_logo_msx2.rom
|
||||
path: "Machines/MSX2 - C-BIOS/cbios_logo_msx2.rom"
|
||||
size: 16384
|
||||
required: false
|
||||
bundled: true
|
||||
system: msx2
|
||||
note: "C-BIOS MSX2 logo ROM (open source). Bundled with core."
|
||||
|
||||
- name: cbios_sub.rom
|
||||
path: "Machines/MSX2 - C-BIOS/cbios_sub.rom"
|
||||
size: 16384
|
||||
required: false
|
||||
bundled: true
|
||||
system: msx2
|
||||
note: "C-BIOS MSX2/MSX2+ sub ROM (open source). Bundled with core."
|
||||
|
||||
- name: "cbios_main_msx2+.rom"
|
||||
path: "Machines/MSX2+ - C-BIOS/cbios_main_msx2+.rom"
|
||||
size: 32768
|
||||
required: false
|
||||
bundled: true
|
||||
system: msx2plus
|
||||
note: "C-BIOS MSX2+ main ROM (open source). Bundled with core. Cartridge games only."
|
||||
|
||||
- name: "cbios_logo_msx2+.rom"
|
||||
path: "Machines/MSX2+ - C-BIOS/cbios_logo_msx2+.rom"
|
||||
size: 16384
|
||||
required: false
|
||||
bundled: true
|
||||
system: msx2plus
|
||||
note: "C-BIOS MSX2+ logo ROM (open source). Bundled with core."
|
||||
|
||||
- name: cbios_music.rom
|
||||
path: "Machines/MSX2+ - C-BIOS/cbios_music.rom"
|
||||
size: 16384
|
||||
required: false
|
||||
bundled: true
|
||||
system: msx2plus
|
||||
note: "C-BIOS MSX2+ music ROM (open source). Bundled with core."
|
||||
|
||||
# ============================================================
|
||||
# ColecoVision BIOS
|
||||
# ============================================================
|
||||
|
||||
- name: coleco.rom
|
||||
path: "Machines/COL - ColecoVision/coleco.rom"
|
||||
size: 8192
|
||||
required: true
|
||||
system: colecovision
|
||||
note: "ColecoVision BIOS ROM. Required for ColecoVision mode."
|
||||
source_ref: "system/bluemsx/Machines/COL - ColecoVision/config.ini"
|
||||
|
||||
# ============================================================
|
||||
# SEGA SF-7000 BIOS
|
||||
# SG-1000 and SC-3000 do not require BIOS ROMs.
|
||||
# ============================================================
|
||||
|
||||
- name: sf7000.rom
|
||||
path: "Machines/SEGA - SF-7000/sf7000.rom"
|
||||
size: 8192
|
||||
required: true
|
||||
system: sega-sf7000
|
||||
note: "Sega SF-7000 BIOS ROM. SG-1000 and SC-3000 have no BIOS requirement."
|
||||
source_ref: "system/bluemsx/Machines/SEGA - SF-7000/config.ini"
|
||||
|
||||
# ============================================================
|
||||
# Spectravideo SVI BIOS files
|
||||
# ============================================================
|
||||
|
||||
- name: svi318.rom
|
||||
path: "Machines/SVI - Spectravideo SVI-318/svi318.rom"
|
||||
size: 32768
|
||||
required: true
|
||||
system: spectravideo
|
||||
note: "SVI-318 BIOS ROM."
|
||||
source_ref: "system/bluemsx/Machines/SVI - Spectravideo SVI-318/config.ini"
|
||||
|
||||
- name: svi328.rom
|
||||
path: "Machines/SVI - Spectravideo SVI-328/svi328.rom"
|
||||
size: 32768
|
||||
required: true
|
||||
system: spectravideo
|
||||
note: "SVI-328 BIOS ROM."
|
||||
source_ref: "system/bluemsx/Machines/SVI - Spectravideo SVI-328/config.ini"
|
||||
|
||||
# ============================================================
|
||||
# Databases (required for ROM identification/mapper detection)
|
||||
# Shipped with the core, not user-supplied.
|
||||
# ============================================================
|
||||
|
||||
- name: msxromdb.xml
|
||||
path: "Databases/msxromdb.xml"
|
||||
required: false
|
||||
bundled: true
|
||||
note: "MSX ROM database for mapper auto-detection. Bundled with core."
|
||||
|
||||
- name: msxsysromdb.xml
|
||||
path: "Databases/msxsysromdb.xml"
|
||||
required: false
|
||||
bundled: true
|
||||
note: "MSX system ROM database. Bundled with core."
|
||||
|
||||
# Machine count: 170+ machine configurations covering dozens of regional MSX
|
||||
# variants from manufacturers like Panasonic, Sony, Philips, Yamaha, Sanyo,
|
||||
# National, Toshiba, Daewoo, Sharp, Gradiente, Spectravideo, and others.
|
||||
# Each has its own ROM set in its own subdirectory. The Shared Roms directory
|
||||
# covers the generic/default configs that most users will need.
|
||||
189
emulators/bsnes.yml
Normal file
189
emulators/bsnes.yml
Normal file
@@ -0,0 +1,189 @@
|
||||
emulator: bsnes
|
||||
type: libretro
|
||||
source: "https://github.com/libretro/bsnes-libretro"
|
||||
systems: [nintendo-snes, nintendo-super-game-boy, nintendo-satellaview]
|
||||
|
||||
# bsnes supports HLE for DSP1/DSP1B/DSP2/DSP4, ST010, and Cx4.
|
||||
# When HLE is enabled (core option bsnes_coprocessor_prefer_hle) or
|
||||
# when LLE firmware files are missing, bsnes falls back to HLE automatically.
|
||||
# DSP3 and ST011 have no HLE fallback - LLE firmware is required.
|
||||
# SGB boot ROMs are embedded in the core (icd/boot-roms.cpp), but the SGB
|
||||
# cartridge ROM (SGB1.sfc / SGB2.sfc) must be provided for Game Boy support.
|
||||
|
||||
# All coprocessor firmware loaded via system directory lookup:
|
||||
# RETRO_ENVIRONMENT_GET_SYSTEM_DIRECTORY -> "{sysdir}/{identifier}.{type}.rom"
|
||||
# SGB BIOS loaded from: "{sysdir}/{SGB1.sfc|SGB2.sfc}" (core option bsnes_sgb_bios)
|
||||
# BS-X BIOS loaded from: "{sysdir}/BS-X.bin"
|
||||
|
||||
files:
|
||||
# -- NEC uPD7725 coprocessor (DSP1, DSP1B, DSP2, DSP3, DSP4) --
|
||||
# Used by: Pilotwings (DSP1), Super Mario Kart (DSP1B), Dungeon Master (DSP2),
|
||||
# SD Gundam GX (DSP3), Top Gear 3000 / Planets Champ TG3000 (DSP4)
|
||||
# program ROM: 2048 x 24-bit words, data ROM: 1024 x 16-bit words
|
||||
|
||||
- name: "dsp1.program.rom"
|
||||
size: 6144 # 0x1800
|
||||
required: false
|
||||
note: "NEC uPD7725 program ROM for DSP1. HLE fallback available"
|
||||
source_ref: "sfc/cartridge/load.cpp:490-494, heuristics/super-famicom.cpp:601"
|
||||
|
||||
- name: "dsp1.data.rom"
|
||||
size: 2048 # 0x800
|
||||
required: false
|
||||
note: "NEC uPD7725 data ROM for DSP1. HLE fallback available"
|
||||
source_ref: "sfc/cartridge/load.cpp:498-503"
|
||||
|
||||
- name: "dsp1b.program.rom"
|
||||
size: 6144 # 0x1800
|
||||
required: false
|
||||
note: "NEC uPD7725 program ROM for DSP1B (default NEC identifier). HLE fallback available"
|
||||
source_ref: "heuristics/super-famicom.cpp:606"
|
||||
|
||||
- name: "dsp1b.data.rom"
|
||||
size: 2048 # 0x800
|
||||
required: false
|
||||
note: "NEC uPD7725 data ROM for DSP1B. HLE fallback available"
|
||||
source_ref: "heuristics/super-famicom.cpp:606"
|
||||
|
||||
- name: "dsp2.program.rom"
|
||||
size: 6144 # 0x1800
|
||||
required: false
|
||||
note: "NEC uPD7725 program ROM for DSP2 (Dungeon Master). HLE fallback available"
|
||||
source_ref: "sfc/cartridge/load.cpp:515-520, heuristics/super-famicom.cpp:602"
|
||||
|
||||
- name: "dsp2.data.rom"
|
||||
size: 2048 # 0x800
|
||||
required: false
|
||||
note: "NEC uPD7725 data ROM for DSP2. HLE fallback available"
|
||||
source_ref: "sfc/cartridge/load.cpp:498-503"
|
||||
|
||||
- name: "dsp3.program.rom"
|
||||
size: 6144 # 0x1800
|
||||
required: true
|
||||
note: "NEC uPD7725 program ROM for DSP3 (SD Gundam GX). No HLE fallback"
|
||||
source_ref: "sfc/cartridge/load.cpp:531-534"
|
||||
|
||||
- name: "dsp3.data.rom"
|
||||
size: 2048 # 0x800
|
||||
required: true
|
||||
note: "NEC uPD7725 data ROM for DSP3. No HLE fallback"
|
||||
source_ref: "sfc/cartridge/load.cpp:531-534"
|
||||
|
||||
- name: "dsp4.program.rom"
|
||||
size: 6144 # 0x1800
|
||||
required: false
|
||||
note: "NEC uPD7725 program ROM for DSP4 (Top Gear 3000). HLE fallback available"
|
||||
source_ref: "sfc/cartridge/load.cpp:522-528, heuristics/super-famicom.cpp:604-605"
|
||||
|
||||
- name: "dsp4.data.rom"
|
||||
size: 2048 # 0x800
|
||||
required: false
|
||||
note: "NEC uPD7725 data ROM for DSP4. HLE fallback available"
|
||||
source_ref: "sfc/cartridge/load.cpp:498-503"
|
||||
|
||||
# -- NEC uPD96050 coprocessor (ST010, ST011) --
|
||||
# Used by: Exhaust Heat 2 / F1 ROC II (ST010), 2dan Morita Shougi (ST011)
|
||||
# program ROM: 16384 x 24-bit words, data ROM: 2048 x 16-bit words
|
||||
|
||||
- name: "st010.program.rom"
|
||||
size: 49152 # 0xC000
|
||||
required: false
|
||||
note: "NEC uPD96050 program ROM for ST010. HLE fallback available"
|
||||
source_ref: "sfc/cartridge/load.cpp:570-574, heuristics/super-famicom.cpp:583-587"
|
||||
|
||||
- name: "st010.data.rom"
|
||||
size: 4096 # 0x1000
|
||||
required: false
|
||||
note: "NEC uPD96050 data ROM for ST010. HLE fallback available"
|
||||
source_ref: "sfc/cartridge/load.cpp:578-583"
|
||||
|
||||
- name: "st011.program.rom"
|
||||
size: 49152 # 0xC000
|
||||
required: true
|
||||
note: "NEC uPD96050 program ROM for ST011 (2dan Morita Shougi). No HLE fallback"
|
||||
source_ref: "sfc/cartridge/load.cpp:599-601, heuristics/super-famicom.cpp:586"
|
||||
|
||||
- name: "st011.data.rom"
|
||||
size: 4096 # 0x1000
|
||||
required: true
|
||||
note: "NEC uPD96050 data ROM for ST011. No HLE fallback"
|
||||
source_ref: "sfc/cartridge/load.cpp:599-601"
|
||||
|
||||
# -- SETA ST018 (ARM6 coprocessor) --
|
||||
# Used by: Hayazashi Nidan Morita Shougi
|
||||
# No HLE fallback exists
|
||||
|
||||
- name: "st018.program.rom"
|
||||
size: 131072 # 0x20000 (128 KB)
|
||||
required: true
|
||||
note: "ARM6 program ROM for ST018 (Hayazashi Nidan Morita Shougi). No HLE fallback"
|
||||
source_ref: "sfc/cartridge/load.cpp:379-385, armdsp/armdsp.hpp:31, heuristics/super-famicom.cpp:580"
|
||||
|
||||
- name: "st018.data.rom"
|
||||
size: 32768 # 0x8000 (32 KB)
|
||||
required: true
|
||||
note: "ARM6 data ROM for ST018. No HLE fallback"
|
||||
source_ref: "sfc/cartridge/load.cpp:387-393, armdsp/armdsp.hpp:32"
|
||||
|
||||
# -- Hitachi HG51BS169 (Cx4 coprocessor) --
|
||||
# Used by: Mega Man X2, Mega Man X3
|
||||
# HLE fallback available (configuration.hacks.coprocessor.preferHLE)
|
||||
# Built-in staticDataROM fallback also present for LLE when file missing
|
||||
|
||||
- name: "cx4.data.rom"
|
||||
size: 3072 # 0xC00
|
||||
required: false
|
||||
note: "Hitachi HG51BS169 data ROM for Cx4 (Mega Man X2/X3). HLE fallback and built-in static ROM available"
|
||||
source_ref: "sfc/cartridge/load.cpp:444-456, hitachidsp/hitachidsp.hpp:49, heuristics/super-famicom.cpp:597"
|
||||
|
||||
# -- Super Game Boy cartridge ROM --
|
||||
# The SGB boot ROMs (256 bytes each) are embedded in icd/boot-roms.cpp.
|
||||
# But the actual SGB cartridge ROM must be supplied for Game Boy game support.
|
||||
# Core option bsnes_sgb_bios selects between SGB1.sfc and SGB2.sfc.
|
||||
|
||||
- name: "SGB1.sfc"
|
||||
required: false
|
||||
note: "Super Game Boy 1 cartridge ROM. Needed to play Game Boy games via SGB mode"
|
||||
source_ref: "target-libretro/libretro.cpp:689,933, target-libretro/libretro_core_options.h:689"
|
||||
|
||||
- name: "SGB2.sfc"
|
||||
required: false
|
||||
note: "Super Game Boy 2 cartridge ROM. Uses dedicated oscillator for accurate GB speed"
|
||||
source_ref: "target-libretro/libretro.cpp:690,933, target-libretro/libretro_core_options.h:690"
|
||||
|
||||
# -- BS-X Satellaview BIOS --
|
||||
# Required for loading .bs (BS Memory) format games.
|
||||
# Hardcoded filename in libretro.cpp.
|
||||
|
||||
- name: "BS-X.bin"
|
||||
required: true
|
||||
note: "BS-X Satellaview BIOS ROM. Required for .bs format Satellaview games"
|
||||
source_ref: "target-libretro/libretro.cpp:948, target-libretro/program.cpp:790-799"
|
||||
|
||||
notes:
|
||||
hle_available: true
|
||||
hle_note: >
|
||||
bsnes provides HLE for DSP1, DSP1B, DSP2, DSP4, ST010, and Cx4.
|
||||
Controlled by core option bsnes_coprocessor_prefer_hle (default ON).
|
||||
DSP3, ST011, and ST018 have no HLE - LLE firmware files are mandatory
|
||||
for the few games that use them.
|
||||
sgb_note: >
|
||||
SGB boot ROMs (256 bytes each for SGB1/SGB2) are compiled into the core
|
||||
at icd/boot-roms.cpp. The SGB cartridge ROM (SGB1.sfc or SGB2.sfc) is a
|
||||
separate requirement. Core option bsnes_sgb_bios selects which one to use
|
||||
(default SGB1.sfc). Loading .gb/.gbc files auto-loads the selected SGB ROM.
|
||||
firmware_resolution: >
|
||||
Firmware filenames are derived from the game manifest identifier field
|
||||
(lowercased) plus ".program.rom" or ".data.rom" suffix. The mapping is:
|
||||
NEC uPD7725 -> dsp1/dsp1b/dsp2/dsp3/dsp4, NEC uPD96050 -> st010/st011,
|
||||
ARM6 -> st018, HG51BS169 -> cx4. Firmware can also be appended directly
|
||||
to the ROM image (auto-detected by firmwareRomSize heuristic).
|
||||
embedded_firmware: >
|
||||
If firmware data is appended to the game ROM, bsnes splits it automatically
|
||||
based on firmwareRomSize() detection. Sizes: uPD7725=0x2000, uPD96050=0xD000,
|
||||
ARM6=0x28000, HG51BS169=0xC00. This eliminates the need for separate files
|
||||
when using combined ROM+firmware dumps.
|
||||
cx4_static_fallback: >
|
||||
The Cx4 (HG51BS169) has a compiled-in static data ROM (hitachidsp/staticDataROM)
|
||||
as fallback when cx4.data.rom is missing and HLE is disabled. This means
|
||||
Mega Man X2/X3 work in all configurations without user-supplied firmware.
|
||||
385
emulators/cannonball.yml
Normal file
385
emulators/cannonball.yml
Normal file
@@ -0,0 +1,385 @@
|
||||
emulator: Cannonball
|
||||
type: libretro
|
||||
source: "https://github.com/libretro/cannonball"
|
||||
systems:
|
||||
- sega-outrun
|
||||
|
||||
notes: |
|
||||
Cannonball is an enhanced OutRun engine that runs the original Sega OutRun
|
||||
arcade ROM set (Rev B). It is not a traditional emulator but a source port
|
||||
that loads the original ROM data for graphics, sound, and gameplay logic.
|
||||
|
||||
The core looks for ROM files in one of two locations
|
||||
(src/main/libretro/main.cpp:945-967):
|
||||
1. The directory containing a loaded .game content file
|
||||
2. {system_dir}/cannonball/
|
||||
|
||||
ROM loading is in src/main/roms.cpp. Each file is verified by CRC32 at load
|
||||
time (src/main/romloader.cpp:70-76). Files are loaded as raw ROM chips, not
|
||||
inside ZIP archives.
|
||||
|
||||
The Rev B ROM set is always required. Japanese ROM variants are loaded on
|
||||
demand when the "Japanese Tracks" core option is enabled.
|
||||
|
||||
Two optional widescreen tilemap patches are loaded from a res/ subdirectory
|
||||
(src/main/engine/omusic.cpp:42-51). These are Cannonball-specific data files
|
||||
shipped with the core, not original arcade ROMs.
|
||||
|
||||
The fixed PCM sample variant (opr-10188.71f) replaces opr-10188.71 when the
|
||||
"Fix Broken Samples" core option is enabled.
|
||||
|
||||
files:
|
||||
# -------------------------------------------------------
|
||||
# Master CPU ROMs (68000, Rev B)
|
||||
# -------------------------------------------------------
|
||||
- name: "epr-10381a.132"
|
||||
system: sega-outrun
|
||||
required: true
|
||||
size: 65536 # 0x10000
|
||||
crc32: "be8c412b"
|
||||
note: "Master 68K, high byte, upper bank (Rev A alternate)"
|
||||
source_ref: "src/main/roms.cpp:29"
|
||||
|
||||
- name: "epr-10383b.117"
|
||||
system: sega-outrun
|
||||
required: true
|
||||
size: 65536
|
||||
crc32: "10a2014a"
|
||||
note: "Master 68K, low byte, upper bank"
|
||||
source_ref: "src/main/roms.cpp:38"
|
||||
|
||||
- name: "epr-10380b.133"
|
||||
system: sega-outrun
|
||||
required: true
|
||||
size: 65536
|
||||
crc32: "1f6cadad"
|
||||
note: "Master 68K, high byte, lower bank"
|
||||
source_ref: "src/main/roms.cpp:39"
|
||||
|
||||
- name: "epr-10382b.118"
|
||||
system: sega-outrun
|
||||
required: true
|
||||
size: 65536
|
||||
crc32: "c4c3fa1a"
|
||||
note: "Master 68K, low byte, lower bank"
|
||||
source_ref: "src/main/roms.cpp:40"
|
||||
|
||||
# -------------------------------------------------------
|
||||
# Slave CPU ROMs (68000, Rev A)
|
||||
# -------------------------------------------------------
|
||||
- name: "epr-10327a.76"
|
||||
system: sega-outrun
|
||||
required: true
|
||||
size: 65536
|
||||
crc32: "e28a5baf"
|
||||
note: "Slave 68K, high byte, lower bank"
|
||||
source_ref: "src/main/roms.cpp:44"
|
||||
|
||||
- name: "epr-10329a.58"
|
||||
system: sega-outrun
|
||||
required: true
|
||||
size: 65536
|
||||
crc32: "da131c81"
|
||||
note: "Slave 68K, low byte, lower bank"
|
||||
source_ref: "src/main/roms.cpp:45"
|
||||
|
||||
- name: "epr-10328a.75"
|
||||
system: sega-outrun
|
||||
required: true
|
||||
size: 65536
|
||||
crc32: "d5ec5e5d"
|
||||
note: "Slave 68K, high byte, upper bank"
|
||||
source_ref: "src/main/roms.cpp:46"
|
||||
|
||||
- name: "epr-10330a.57"
|
||||
system: sega-outrun
|
||||
required: true
|
||||
size: 65536
|
||||
crc32: "ba9ec82a"
|
||||
note: "Slave 68K, low byte, upper bank"
|
||||
source_ref: "src/main/roms.cpp:47"
|
||||
|
||||
# -------------------------------------------------------
|
||||
# Tile ROMs
|
||||
# -------------------------------------------------------
|
||||
- name: "opr-10268.99"
|
||||
system: sega-outrun
|
||||
required: true
|
||||
size: 32768 # 0x8000
|
||||
crc32: "95344b04"
|
||||
note: "Tile ROM bank 0"
|
||||
source_ref: "src/main/roms.cpp:51"
|
||||
|
||||
- name: "opr-10232.102"
|
||||
system: sega-outrun
|
||||
required: true
|
||||
size: 32768
|
||||
crc32: "776ba1eb"
|
||||
note: "Tile ROM bank 1"
|
||||
source_ref: "src/main/roms.cpp:52"
|
||||
|
||||
- name: "opr-10267.100"
|
||||
system: sega-outrun
|
||||
required: true
|
||||
size: 32768
|
||||
crc32: "a85bb823"
|
||||
note: "Tile ROM bank 2"
|
||||
source_ref: "src/main/roms.cpp:53"
|
||||
|
||||
- name: "opr-10231.103"
|
||||
system: sega-outrun
|
||||
required: true
|
||||
size: 32768
|
||||
crc32: "8908bcbf"
|
||||
note: "Tile ROM bank 3"
|
||||
source_ref: "src/main/roms.cpp:54"
|
||||
|
||||
- name: "opr-10266.101"
|
||||
system: sega-outrun
|
||||
required: true
|
||||
size: 32768
|
||||
crc32: "9f6f1a74"
|
||||
note: "Tile ROM bank 4"
|
||||
source_ref: "src/main/roms.cpp:55"
|
||||
|
||||
- name: "opr-10230.104"
|
||||
system: sega-outrun
|
||||
required: true
|
||||
size: 32768
|
||||
crc32: "686f5e50"
|
||||
note: "Tile ROM bank 5"
|
||||
source_ref: "src/main/roms.cpp:56"
|
||||
|
||||
# -------------------------------------------------------
|
||||
# Road ROMs (identical pair, one per road layer)
|
||||
# -------------------------------------------------------
|
||||
- name: "opr-10185.11"
|
||||
system: sega-outrun
|
||||
required: true
|
||||
size: 32768
|
||||
crc32: "22794426"
|
||||
note: "Road ROM, layer 1"
|
||||
source_ref: "src/main/roms.cpp:60"
|
||||
|
||||
- name: "opr-10186.47"
|
||||
system: sega-outrun
|
||||
required: true
|
||||
size: 32768
|
||||
crc32: "22794426"
|
||||
note: "Road ROM, layer 2 (identical to opr-10185.11)"
|
||||
source_ref: "src/main/roms.cpp:61"
|
||||
|
||||
# -------------------------------------------------------
|
||||
# Sprite ROMs (interleaved 4-way)
|
||||
# -------------------------------------------------------
|
||||
- name: "mpr-10371.9"
|
||||
system: sega-outrun
|
||||
required: true
|
||||
size: 131072 # 0x20000
|
||||
crc32: "7cc86208"
|
||||
note: "Sprite ROM, bank 0 byte 0"
|
||||
source_ref: "src/main/roms.cpp:65"
|
||||
|
||||
- name: "mpr-10373.10"
|
||||
system: sega-outrun
|
||||
required: true
|
||||
size: 131072
|
||||
crc32: "b0d26ac9"
|
||||
note: "Sprite ROM, bank 0 byte 1"
|
||||
source_ref: "src/main/roms.cpp:66"
|
||||
|
||||
- name: "mpr-10375.11"
|
||||
system: sega-outrun
|
||||
required: true
|
||||
size: 131072
|
||||
crc32: "59b60bd7"
|
||||
note: "Sprite ROM, bank 0 byte 2"
|
||||
source_ref: "src/main/roms.cpp:67"
|
||||
|
||||
- name: "mpr-10377.12"
|
||||
system: sega-outrun
|
||||
required: true
|
||||
size: 131072
|
||||
crc32: "17a1b04a"
|
||||
note: "Sprite ROM, bank 0 byte 3"
|
||||
source_ref: "src/main/roms.cpp:68"
|
||||
|
||||
- name: "mpr-10372.13"
|
||||
system: sega-outrun
|
||||
required: true
|
||||
size: 131072
|
||||
crc32: "b557078c"
|
||||
note: "Sprite ROM, bank 1 byte 0"
|
||||
source_ref: "src/main/roms.cpp:69"
|
||||
|
||||
- name: "mpr-10374.14"
|
||||
system: sega-outrun
|
||||
required: true
|
||||
size: 131072
|
||||
crc32: "8051e517"
|
||||
note: "Sprite ROM, bank 1 byte 1"
|
||||
source_ref: "src/main/roms.cpp:70"
|
||||
|
||||
- name: "mpr-10376.15"
|
||||
system: sega-outrun
|
||||
required: true
|
||||
size: 131072
|
||||
crc32: "f3b8f318"
|
||||
note: "Sprite ROM, bank 1 byte 2"
|
||||
source_ref: "src/main/roms.cpp:71"
|
||||
|
||||
- name: "mpr-10378.16"
|
||||
system: sega-outrun
|
||||
required: true
|
||||
size: 131072
|
||||
crc32: "a1062984"
|
||||
note: "Sprite ROM, bank 1 byte 3"
|
||||
source_ref: "src/main/roms.cpp:72"
|
||||
|
||||
# -------------------------------------------------------
|
||||
# Z80 Sound ROM
|
||||
# -------------------------------------------------------
|
||||
- name: "epr-10187.88"
|
||||
system: sega-outrun
|
||||
required: true
|
||||
size: 65536 # 0x10000
|
||||
crc32: "a10abaa9"
|
||||
note: "Z80 sound program"
|
||||
source_ref: "src/main/roms.cpp:76"
|
||||
|
||||
# -------------------------------------------------------
|
||||
# Sega PCM samples
|
||||
# -------------------------------------------------------
|
||||
- name: "opr-10193.66"
|
||||
system: sega-outrun
|
||||
required: true
|
||||
size: 32768
|
||||
crc32: "bcd10dde"
|
||||
note: "PCM sample bank 0"
|
||||
source_ref: "src/main/roms.cpp:80"
|
||||
|
||||
- name: "opr-10192.67"
|
||||
system: sega-outrun
|
||||
required: true
|
||||
size: 32768
|
||||
crc32: "770f1270"
|
||||
note: "PCM sample bank 1"
|
||||
source_ref: "src/main/roms.cpp:81"
|
||||
|
||||
- name: "opr-10191.68"
|
||||
system: sega-outrun
|
||||
required: true
|
||||
size: 32768
|
||||
crc32: "20a284ab"
|
||||
note: "PCM sample bank 2"
|
||||
source_ref: "src/main/roms.cpp:82"
|
||||
|
||||
- name: "opr-10190.69"
|
||||
system: sega-outrun
|
||||
required: true
|
||||
size: 32768
|
||||
crc32: "7cab70e2"
|
||||
note: "PCM sample bank 3"
|
||||
source_ref: "src/main/roms.cpp:83"
|
||||
|
||||
- name: "opr-10189.70"
|
||||
system: sega-outrun
|
||||
required: true
|
||||
size: 32768
|
||||
crc32: "01366b54"
|
||||
note: "PCM sample bank 4"
|
||||
source_ref: "src/main/roms.cpp:84"
|
||||
|
||||
- name: "opr-10188.71"
|
||||
system: sega-outrun
|
||||
required: true
|
||||
size: 32768
|
||||
crc32: "bad30ad9"
|
||||
note: "PCM sample bank 5"
|
||||
source_ref: "src/main/roms.cpp:85"
|
||||
|
||||
# -------------------------------------------------------
|
||||
# Alternate / optional ROMs
|
||||
# -------------------------------------------------------
|
||||
- name: "epr-10381b.132"
|
||||
system: sega-outrun
|
||||
required: false
|
||||
size: 65536
|
||||
crc32: "be8c412b"
|
||||
note: "Master 68K, Rev B alternate filename for epr-10381a.132"
|
||||
source_ref: "src/main/roms.cpp:34"
|
||||
|
||||
- name: "opr-10188.71f"
|
||||
system: sega-outrun
|
||||
required: false
|
||||
size: 32768
|
||||
crc32: "37598616"
|
||||
note: "PCM sample bank 5, fixed version (replaces opr-10188.71)"
|
||||
source_ref: "src/main/roms.cpp:123"
|
||||
|
||||
# -------------------------------------------------------
|
||||
# Japanese ROM variants (loaded when jap option enabled)
|
||||
# -------------------------------------------------------
|
||||
- name: "epr-10380.133"
|
||||
system: sega-outrun
|
||||
required: false
|
||||
size: 65536
|
||||
crc32: "e339e87a"
|
||||
note: "Master 68K Japan, high byte, lower bank"
|
||||
source_ref: "src/main/roms.cpp:104"
|
||||
|
||||
- name: "epr-10382.118"
|
||||
system: sega-outrun
|
||||
required: false
|
||||
size: 65536
|
||||
crc32: "65248dd5"
|
||||
note: "Master 68K Japan, low byte, lower bank"
|
||||
source_ref: "src/main/roms.cpp:105"
|
||||
|
||||
- name: "epr-10381.132"
|
||||
system: sega-outrun
|
||||
required: false
|
||||
size: 65536
|
||||
crc32: "be8c412b"
|
||||
note: "Master 68K Japan, high byte, upper bank"
|
||||
source_ref: "src/main/roms.cpp:106"
|
||||
|
||||
- name: "epr-10383.117"
|
||||
system: sega-outrun
|
||||
required: false
|
||||
size: 65536
|
||||
crc32: "dcc586e7"
|
||||
note: "Master 68K Japan, low byte, upper bank"
|
||||
source_ref: "src/main/roms.cpp:107"
|
||||
|
||||
- name: "epr-10327.76"
|
||||
system: sega-outrun
|
||||
required: false
|
||||
size: 65536
|
||||
crc32: "da99d855"
|
||||
note: "Slave 68K Japan, high byte, lower bank"
|
||||
source_ref: "src/main/roms.cpp:110"
|
||||
|
||||
- name: "epr-10329.58"
|
||||
system: sega-outrun
|
||||
required: false
|
||||
size: 65536
|
||||
crc32: "fe0fa5e2"
|
||||
note: "Slave 68K Japan, low byte, lower bank"
|
||||
source_ref: "src/main/roms.cpp:111"
|
||||
|
||||
- name: "epr-10328.75"
|
||||
system: sega-outrun
|
||||
required: false
|
||||
size: 65536
|
||||
crc32: "3c0e9a7f"
|
||||
note: "Slave 68K Japan, high byte, upper bank"
|
||||
source_ref: "src/main/roms.cpp:112"
|
||||
|
||||
- name: "epr-10330.57"
|
||||
system: sega-outrun
|
||||
required: false
|
||||
size: 65536
|
||||
crc32: "59786e99"
|
||||
note: "Slave 68K Japan, low byte, upper bank"
|
||||
source_ref: "src/main/roms.cpp:113"
|
||||
70
emulators/cap32.yml
Normal file
70
emulators/cap32.yml
Normal file
@@ -0,0 +1,70 @@
|
||||
emulator: Caprice32
|
||||
type: libretro
|
||||
source: "https://github.com/libretro/libretro-cap32"
|
||||
cores:
|
||||
- cap32
|
||||
systems:
|
||||
- amstrad-cpc
|
||||
|
||||
notes: |
|
||||
Caprice32 is an Amstrad CPC emulator ported to libretro. Supports CPC 464,
|
||||
CPC 664, CPC 6128, and CPC+ (Plus) models.
|
||||
|
||||
All system ROMs are compiled directly into the core binary as C header
|
||||
arrays in cap32/rom/*.h. No external BIOS files are required.
|
||||
|
||||
Embedded ROMs (cap32/cap32.c:342-345):
|
||||
- cap32/rom/464.h: OS_BASIC10[32768] - CPC 464 OS + BASIC 1.0
|
||||
- cap32/rom/6128.h: OS_BASIC11[32768] - CPC 6128 OS + BASIC 1.1
|
||||
- cap32/rom/amsdos.h: AMSDOS[16384] - AMSDOS disk controller ROM
|
||||
- cap32/rom/6128p.h: OS_6128P - CPC+ system cartridge ROM
|
||||
- cap32/rom/cpm.h: cpmROM - CP/M boot snapshot (128KB)
|
||||
|
||||
ROM selection in emulator_select_ROM() (cap32/cap32.c:1072-1100):
|
||||
- CPC 464: OS_BASIC10 (32KB)
|
||||
- CPC 664: OS_BASIC10 (32KB) + AMSDOS in slot 7
|
||||
- CPC 6128: OS_BASIC11 (32KB) + AMSDOS in slot 7
|
||||
- CPC+: OS_6128P loaded as system cartridge via cpr_load()
|
||||
|
||||
The standalone (non-libretro) version references external filenames
|
||||
cpc464.rom, cpc664.rom, cpc6128.rom, amsdos.rom in cap32.c:349-352
|
||||
via config file loading (cap32.c:1828-1840), but the libretro port
|
||||
does not use this path. The libretro init (libretro-core.c:1512) has
|
||||
a "TODO: future use to load custom bios" comment that is not
|
||||
implemented.
|
||||
|
||||
Keyboard layout patches are applied to the ROM in memory for French
|
||||
and Spanish layouts via rom_mods.h (cap32.c:1102-1126).
|
||||
|
||||
CP/M support loads a pre-built snapshot (cpm.h) into memory via
|
||||
snapshot_load_mem() in slots.c:87.
|
||||
|
||||
files: []
|
||||
|
||||
platform_details:
|
||||
bios_mapping:
|
||||
source_ref: "cap32/cap32.c:1072-1100, cap32/cap32.c:342-345"
|
||||
notes: |
|
||||
All ROMs are embedded. emulator_select_ROM() copies the appropriate
|
||||
ROM array into the pbROM buffer based on CPC.model. No filesystem
|
||||
lookup occurs in the libretro port. The retro_system_bios_directory
|
||||
variable is set up in libretro-core.c:1499-1510 but only used for
|
||||
a future custom BIOS feature that is not yet implemented.
|
||||
|
||||
embedded_roms:
|
||||
source_ref: "cap32/rom/464.h, cap32/rom/6128.h, cap32/rom/amsdos.h, cap32/rom/6128p.h, cap32/rom/cpm.h"
|
||||
notes: |
|
||||
5 ROM sets embedded as C arrays:
|
||||
OS_BASIC10 (32KB) - CPC 464/664 OS + BASIC 1.0
|
||||
OS_BASIC11 (32KB) - CPC 6128 OS + BASIC 1.1
|
||||
AMSDOS (16KB) - Disk controller ROM, mapped to slot 7
|
||||
OS_6128P - CPC+ system cartridge (White Label cartridge)
|
||||
cpmROM (128KB+) - CP/M boot snapshot including SNA header
|
||||
|
||||
model_rom_map:
|
||||
source_ref: "cap32/cap32.c:1072-1100"
|
||||
notes: |
|
||||
CPC 464: OS_BASIC10 only (no disk support)
|
||||
CPC 664: OS_BASIC10 + AMSDOS in ROM slot 7
|
||||
CPC 6128: OS_BASIC11 + AMSDOS in ROM slot 7
|
||||
CPC+: 6128P system cartridge (or user-provided .cpr file)
|
||||
399
emulators/cemu.yml
Normal file
399
emulators/cemu.yml
Normal file
@@ -0,0 +1,399 @@
|
||||
emulator: Cemu
|
||||
type: standalone
|
||||
source: "https://github.com/cemu-project/Cemu"
|
||||
systems: [nintendo-wiiu]
|
||||
analysis_date: "2026-03-17"
|
||||
analysis_commit: "HEAD (depth=1)"
|
||||
|
||||
# keys.txt - disc decryption keys (AES-128, one per line, hex format)
|
||||
# Located in Cemu user data root directory
|
||||
# otp.bin and seeprom.bin - console-specific dumps for online features
|
||||
# MLC path contains firmware titles under sys/title/
|
||||
|
||||
files:
|
||||
# --- Disc decryption keys ---
|
||||
- name: "keys.txt"
|
||||
required: true
|
||||
path: "" # Cemu root / user data directory
|
||||
size: null
|
||||
note: "AES-128 disc keys for WUD/WUX decryption, one 32-char hex key per line"
|
||||
source_ref: "src/Cafe/Filesystem/FST/KeyCache.cpp:63"
|
||||
|
||||
# --- Console-specific dumps (online play) ---
|
||||
- name: "otp.bin"
|
||||
required: false
|
||||
path: "" # Cemu root / user data directory
|
||||
size: 1024
|
||||
note: "Wii U OTP dump, required for online mode and SSL certificate generation"
|
||||
source_ref: "src/Cafe/IOSU/legacy/iosu_crypto.cpp:556"
|
||||
|
||||
- name: "seeprom.bin"
|
||||
required: false
|
||||
path: "" # Cemu root / user data directory
|
||||
size: 512
|
||||
note: "Wii U SEEPROM dump, required for online mode and console region detection"
|
||||
source_ref: "src/Cafe/IOSU/legacy/iosu_crypto.cpp:579"
|
||||
|
||||
# --- Shared system fonts (title 0005001b-10042400) ---
|
||||
# Fallback: Cemu also checks resources/sharedFonts/ in its data directory
|
||||
- name: "CafeCn.ttf"
|
||||
required: true
|
||||
path: "mlc01/sys/title/0005001b/10042400/content/"
|
||||
note: "Shared font - Chinese"
|
||||
source_ref: "src/Cafe/CafeSystem.cpp:289"
|
||||
|
||||
- name: "CafeKr.ttf"
|
||||
required: true
|
||||
path: "mlc01/sys/title/0005001b/10042400/content/"
|
||||
note: "Shared font - Korean"
|
||||
source_ref: "src/Cafe/CafeSystem.cpp:290"
|
||||
|
||||
- name: "CafeStd.ttf"
|
||||
required: true
|
||||
path: "mlc01/sys/title/0005001b/10042400/content/"
|
||||
note: "Shared font - Standard (Latin/Japanese)"
|
||||
source_ref: "src/Cafe/CafeSystem.cpp:291"
|
||||
|
||||
- name: "CafeTw.ttf"
|
||||
required: true
|
||||
path: "mlc01/sys/title/0005001b/10042400/content/"
|
||||
note: "Shared font - Traditional Chinese (Taiwan)"
|
||||
source_ref: "src/Cafe/CafeSystem.cpp:292"
|
||||
|
||||
# --- SSL client certificates (title 0005001b-10054000) ---
|
||||
# Required for online features, loaded only when otp.bin is present
|
||||
- name: "WIIU_COMMON_1_CERT.der"
|
||||
required: false
|
||||
path: "mlc01/sys/title/0005001b/10054000/content/ccerts/"
|
||||
note: "Nintendo client certificate - common"
|
||||
source_ref: "src/Cafe/IOSU/legacy/iosu_crypto.cpp:471"
|
||||
|
||||
- name: "WIIU_COMMON_1_RSA_KEY.aes"
|
||||
required: false
|
||||
path: "mlc01/sys/title/0005001b/10054000/content/ccerts/"
|
||||
note: "Nintendo client key - common (AES-encrypted)"
|
||||
source_ref: "src/Cafe/IOSU/legacy/iosu_crypto.cpp:471"
|
||||
|
||||
- name: "WIIU_ACCOUNT_1_CERT.der"
|
||||
required: false
|
||||
path: "mlc01/sys/title/0005001b/10054000/content/ccerts/"
|
||||
note: "Nintendo client certificate - account"
|
||||
source_ref: "src/Cafe/IOSU/legacy/iosu_crypto.cpp:472"
|
||||
|
||||
- name: "WIIU_ACCOUNT_1_RSA_KEY.aes"
|
||||
required: false
|
||||
path: "mlc01/sys/title/0005001b/10054000/content/ccerts/"
|
||||
note: "Nintendo client key - account (AES-encrypted)"
|
||||
source_ref: "src/Cafe/IOSU/legacy/iosu_crypto.cpp:472"
|
||||
|
||||
- name: "WIIU_OLIVE_1_CERT.der"
|
||||
required: false
|
||||
path: "mlc01/sys/title/0005001b/10054000/content/ccerts/"
|
||||
note: "Nintendo client certificate - olive (Miiverse)"
|
||||
source_ref: "src/Cafe/IOSU/legacy/iosu_crypto.cpp:473"
|
||||
|
||||
- name: "WIIU_OLIVE_1_RSA_KEY.aes"
|
||||
required: false
|
||||
path: "mlc01/sys/title/0005001b/10054000/content/ccerts/"
|
||||
note: "Nintendo client key - olive (AES-encrypted)"
|
||||
source_ref: "src/Cafe/IOSU/legacy/iosu_crypto.cpp:473"
|
||||
|
||||
- name: "WIIU_VINO_1_CERT.der"
|
||||
required: false
|
||||
path: "mlc01/sys/title/0005001b/10054000/content/ccerts/"
|
||||
note: "Nintendo client certificate - vino"
|
||||
source_ref: "src/Cafe/IOSU/legacy/iosu_crypto.cpp:474"
|
||||
|
||||
- name: "WIIU_VINO_1_RSA_KEY.aes"
|
||||
required: false
|
||||
path: "mlc01/sys/title/0005001b/10054000/content/ccerts/"
|
||||
note: "Nintendo client key - vino (AES-encrypted)"
|
||||
source_ref: "src/Cafe/IOSU/legacy/iosu_crypto.cpp:474"
|
||||
|
||||
- name: "WIIU_WOOD_1_CERT.der"
|
||||
required: false
|
||||
path: "mlc01/sys/title/0005001b/10054000/content/ccerts/"
|
||||
note: "Nintendo client certificate - wood"
|
||||
source_ref: "src/Cafe/IOSU/legacy/iosu_crypto.cpp:475"
|
||||
|
||||
- name: "WIIU_WOOD_1_RSA_KEY.aes"
|
||||
required: false
|
||||
path: "mlc01/sys/title/0005001b/10054000/content/ccerts/"
|
||||
note: "Nintendo client key - wood (AES-encrypted)"
|
||||
source_ref: "src/Cafe/IOSU/legacy/iosu_crypto.cpp:475"
|
||||
|
||||
# --- SSL CA certificates (title 0005001b-10054000) ---
|
||||
# Nintendo CA certs
|
||||
- name: "CACERT_NINTENDO_CA.der"
|
||||
required: false
|
||||
path: "mlc01/sys/title/0005001b/10054000/content/scerts/"
|
||||
source_ref: "src/Cafe/IOSU/legacy/iosu_crypto.cpp:480"
|
||||
|
||||
- name: "CACERT_NINTENDO_CA_G2.der"
|
||||
required: false
|
||||
path: "mlc01/sys/title/0005001b/10054000/content/scerts/"
|
||||
source_ref: "src/Cafe/IOSU/legacy/iosu_crypto.cpp:481"
|
||||
|
||||
- name: "CACERT_NINTENDO_CA_G3.der"
|
||||
required: false
|
||||
path: "mlc01/sys/title/0005001b/10054000/content/scerts/"
|
||||
source_ref: "src/Cafe/IOSU/legacy/iosu_crypto.cpp:482"
|
||||
|
||||
- name: "CACERT_NINTENDO_CLASS2_CA.der"
|
||||
required: false
|
||||
path: "mlc01/sys/title/0005001b/10054000/content/scerts/"
|
||||
source_ref: "src/Cafe/IOSU/legacy/iosu_crypto.cpp:483"
|
||||
|
||||
- name: "CACERT_NINTENDO_CLASS2_CA_G2.der"
|
||||
required: false
|
||||
path: "mlc01/sys/title/0005001b/10054000/content/scerts/"
|
||||
source_ref: "src/Cafe/IOSU/legacy/iosu_crypto.cpp:484"
|
||||
|
||||
- name: "CACERT_NINTENDO_CLASS2_CA_G3.der"
|
||||
required: false
|
||||
path: "mlc01/sys/title/0005001b/10054000/content/scerts/"
|
||||
source_ref: "src/Cafe/IOSU/legacy/iosu_crypto.cpp:485"
|
||||
|
||||
# Commercial CA certs
|
||||
- name: "BALTIMORE_CYBERTRUST_ROOT_CA.der"
|
||||
required: false
|
||||
path: "mlc01/sys/title/0005001b/10054000/content/scerts/"
|
||||
source_ref: "src/Cafe/IOSU/legacy/iosu_crypto.cpp:488"
|
||||
|
||||
- name: "CYBERTRUST_GLOBAL_ROOT_CA.der"
|
||||
required: false
|
||||
path: "mlc01/sys/title/0005001b/10054000/content/scerts/"
|
||||
source_ref: "src/Cafe/IOSU/legacy/iosu_crypto.cpp:489"
|
||||
|
||||
- name: "VERIZON_GLOBAL_ROOT_CA.der"
|
||||
required: false
|
||||
path: "mlc01/sys/title/0005001b/10054000/content/scerts/"
|
||||
source_ref: "src/Cafe/IOSU/legacy/iosu_crypto.cpp:490"
|
||||
|
||||
- name: "GLOBALSIGN_ROOT_CA.der"
|
||||
required: false
|
||||
path: "mlc01/sys/title/0005001b/10054000/content/scerts/"
|
||||
source_ref: "src/Cafe/IOSU/legacy/iosu_crypto.cpp:491"
|
||||
|
||||
- name: "GLOBALSIGN_ROOT_CA_R2.der"
|
||||
required: false
|
||||
path: "mlc01/sys/title/0005001b/10054000/content/scerts/"
|
||||
source_ref: "src/Cafe/IOSU/legacy/iosu_crypto.cpp:492"
|
||||
|
||||
- name: "GLOBALSIGN_ROOT_CA_R3.der"
|
||||
required: false
|
||||
path: "mlc01/sys/title/0005001b/10054000/content/scerts/"
|
||||
source_ref: "src/Cafe/IOSU/legacy/iosu_crypto.cpp:493"
|
||||
|
||||
- name: "VERISIGN_CLASS3_PUBLIC_PRIMARY_CA_G3.der"
|
||||
required: false
|
||||
path: "mlc01/sys/title/0005001b/10054000/content/scerts/"
|
||||
source_ref: "src/Cafe/IOSU/legacy/iosu_crypto.cpp:494"
|
||||
|
||||
- name: "VERISIGN_UNIVERSAL_ROOT_CA.der"
|
||||
required: false
|
||||
path: "mlc01/sys/title/0005001b/10054000/content/scerts/"
|
||||
source_ref: "src/Cafe/IOSU/legacy/iosu_crypto.cpp:495"
|
||||
|
||||
- name: "VERISIGN_CLASS3_PUBLIC_PRIMARY_CA_G5.der"
|
||||
required: false
|
||||
path: "mlc01/sys/title/0005001b/10054000/content/scerts/"
|
||||
source_ref: "src/Cafe/IOSU/legacy/iosu_crypto.cpp:496"
|
||||
|
||||
- name: "THAWTE_PRIMARY_ROOT_CA_G3.der"
|
||||
required: false
|
||||
path: "mlc01/sys/title/0005001b/10054000/content/scerts/"
|
||||
source_ref: "src/Cafe/IOSU/legacy/iosu_crypto.cpp:497"
|
||||
|
||||
- name: "THAWTE_PRIMARY_ROOT_CA.der"
|
||||
required: false
|
||||
path: "mlc01/sys/title/0005001b/10054000/content/scerts/"
|
||||
source_ref: "src/Cafe/IOSU/legacy/iosu_crypto.cpp:498"
|
||||
|
||||
- name: "GEOTRUST_GLOBAL_CA.der"
|
||||
required: false
|
||||
path: "mlc01/sys/title/0005001b/10054000/content/scerts/"
|
||||
source_ref: "src/Cafe/IOSU/legacy/iosu_crypto.cpp:499"
|
||||
|
||||
- name: "GEOTRUST_GLOBAL_CA2.der"
|
||||
required: false
|
||||
path: "mlc01/sys/title/0005001b/10054000/content/scerts/"
|
||||
source_ref: "src/Cafe/IOSU/legacy/iosu_crypto.cpp:500"
|
||||
|
||||
- name: "GEOTRUST_PRIMARY_CA.der"
|
||||
required: false
|
||||
path: "mlc01/sys/title/0005001b/10054000/content/scerts/"
|
||||
source_ref: "src/Cafe/IOSU/legacy/iosu_crypto.cpp:501"
|
||||
|
||||
- name: "GEOTRUST_PRIMARY_CA_G3.der"
|
||||
required: false
|
||||
path: "mlc01/sys/title/0005001b/10054000/content/scerts/"
|
||||
source_ref: "src/Cafe/IOSU/legacy/iosu_crypto.cpp:502"
|
||||
|
||||
- name: "ADDTRUST_EXT_CA_ROOT.der"
|
||||
required: false
|
||||
path: "mlc01/sys/title/0005001b/10054000/content/scerts/"
|
||||
source_ref: "src/Cafe/IOSU/legacy/iosu_crypto.cpp:503"
|
||||
|
||||
- name: "COMODO_CA.der"
|
||||
required: false
|
||||
path: "mlc01/sys/title/0005001b/10054000/content/scerts/"
|
||||
source_ref: "src/Cafe/IOSU/legacy/iosu_crypto.cpp:504"
|
||||
|
||||
- name: "UTN_DATACORP_SGC_CA.der"
|
||||
required: false
|
||||
path: "mlc01/sys/title/0005001b/10054000/content/scerts/"
|
||||
source_ref: "src/Cafe/IOSU/legacy/iosu_crypto.cpp:505"
|
||||
|
||||
- name: "UTN_USERFIRST_HARDWARE_CA.der"
|
||||
required: false
|
||||
path: "mlc01/sys/title/0005001b/10054000/content/scerts/"
|
||||
source_ref: "src/Cafe/IOSU/legacy/iosu_crypto.cpp:506"
|
||||
|
||||
- name: "DIGICERT_HIGH_ASSURANCE_EV_ROOT_CA.der"
|
||||
required: false
|
||||
path: "mlc01/sys/title/0005001b/10054000/content/scerts/"
|
||||
source_ref: "src/Cafe/IOSU/legacy/iosu_crypto.cpp:507"
|
||||
|
||||
- name: "DIGICERT_ASSURED_ID_ROOT_CA.der"
|
||||
required: false
|
||||
path: "mlc01/sys/title/0005001b/10054000/content/scerts/"
|
||||
source_ref: "src/Cafe/IOSU/legacy/iosu_crypto.cpp:508"
|
||||
|
||||
- name: "DIGICERT_GLOBAL_ROOT_CA.der"
|
||||
required: false
|
||||
path: "mlc01/sys/title/0005001b/10054000/content/scerts/"
|
||||
source_ref: "src/Cafe/IOSU/legacy/iosu_crypto.cpp:509"
|
||||
|
||||
- name: "GTE_CYBERTRUST_GLOBAL_ROOT.der"
|
||||
required: false
|
||||
path: "mlc01/sys/title/0005001b/10054000/content/scerts/"
|
||||
source_ref: "src/Cafe/IOSU/legacy/iosu_crypto.cpp:510"
|
||||
|
||||
- name: "VERISIGN_CLASS3_PUBLIC_PRIMARY_CA.der"
|
||||
required: false
|
||||
path: "mlc01/sys/title/0005001b/10054000/content/scerts/"
|
||||
source_ref: "src/Cafe/IOSU/legacy/iosu_crypto.cpp:511"
|
||||
|
||||
- name: "THAWTE_PREMIUM_SERVER_CA.der"
|
||||
required: false
|
||||
path: "mlc01/sys/title/0005001b/10054000/content/scerts/"
|
||||
source_ref: "src/Cafe/IOSU/legacy/iosu_crypto.cpp:512"
|
||||
|
||||
- name: "EQUIFAX_SECURE_CA.der"
|
||||
required: false
|
||||
path: "mlc01/sys/title/0005001b/10054000/content/scerts/"
|
||||
source_ref: "src/Cafe/IOSU/legacy/iosu_crypto.cpp:513"
|
||||
|
||||
- name: "ENTRUST_SECURE_SERVER_CA.der"
|
||||
required: false
|
||||
path: "mlc01/sys/title/0005001b/10054000/content/scerts/"
|
||||
source_ref: "src/Cafe/IOSU/legacy/iosu_crypto.cpp:514"
|
||||
|
||||
- name: "VERISIGN_CLASS3_PUBLIC_PRIMARY_CA_G2.der"
|
||||
required: false
|
||||
path: "mlc01/sys/title/0005001b/10054000/content/scerts/"
|
||||
source_ref: "src/Cafe/IOSU/legacy/iosu_crypto.cpp:515"
|
||||
|
||||
- name: "ENTRUST_CA_2048.der"
|
||||
required: false
|
||||
path: "mlc01/sys/title/0005001b/10054000/content/scerts/"
|
||||
source_ref: "src/Cafe/IOSU/legacy/iosu_crypto.cpp:516"
|
||||
|
||||
- name: "ENTRUST_ROOT_CA.der"
|
||||
required: false
|
||||
path: "mlc01/sys/title/0005001b/10054000/content/scerts/"
|
||||
source_ref: "src/Cafe/IOSU/legacy/iosu_crypto.cpp:517"
|
||||
|
||||
- name: "ENTRUST_ROOT_CA_G2.der"
|
||||
required: false
|
||||
path: "mlc01/sys/title/0005001b/10054000/content/scerts/"
|
||||
source_ref: "src/Cafe/IOSU/legacy/iosu_crypto.cpp:518"
|
||||
|
||||
- name: "DIGICERT_ASSURED_ID_ROOT_CA_G2.der"
|
||||
required: false
|
||||
path: "mlc01/sys/title/0005001b/10054000/content/scerts/"
|
||||
source_ref: "src/Cafe/IOSU/legacy/iosu_crypto.cpp:519"
|
||||
|
||||
- name: "DIGICERT_GLOBAL_ROOT_CA_G2.der"
|
||||
required: false
|
||||
path: "mlc01/sys/title/0005001b/10054000/content/scerts/"
|
||||
source_ref: "src/Cafe/IOSU/legacy/iosu_crypto.cpp:520"
|
||||
|
||||
# --- Optional firmware libraries (cafeLibs/) ---
|
||||
- name: "snd_user.rpl"
|
||||
required: false
|
||||
path: "cafeLibs/"
|
||||
note: "Wii U firmware sound library, improves audio accuracy for some games"
|
||||
source_ref: "src/Cafe/OS/libs/snd_user/snd_user.cpp:1071"
|
||||
|
||||
- name: "snduser2.rpl"
|
||||
required: false
|
||||
path: "cafeLibs/"
|
||||
note: "Wii U firmware sound library v2, improves audio accuracy for some games"
|
||||
source_ref: "src/Cafe/OS/libs/snd_user/snd_user.cpp:1071"
|
||||
|
||||
# Firmware title IDs referenced in the source
|
||||
firmware_titles:
|
||||
- id: "0005001b-10042400"
|
||||
name: "Shared fonts"
|
||||
content: ["CafeCn.ttf", "CafeKr.ttf", "CafeStd.ttf", "CafeTw.ttf"]
|
||||
required: true
|
||||
source_ref: "src/Cafe/CafeSystem.cpp:289-292"
|
||||
|
||||
- id: "0005001b-10054000"
|
||||
name: "SSL certificates"
|
||||
content: ["ccerts/", "scerts/"]
|
||||
required: false
|
||||
note: "Only needed for online features, requires otp.bin"
|
||||
source_ref: "src/Cafe/IOSU/legacy/iosu_crypto.cpp:535"
|
||||
|
||||
- id: "0005001b-1005c000"
|
||||
name: "System language/country data"
|
||||
content: ["language.txt", "country.txt"]
|
||||
required: false
|
||||
note: "Auto-generated by Cemu if missing"
|
||||
source_ref: "src/gui/wxgui/CemuApp.cpp:535-561"
|
||||
|
||||
- id: "00050010-10041200"
|
||||
name: "System version"
|
||||
content: ["version.bin"]
|
||||
required: false
|
||||
note: "Referenced but not strictly loaded (TODO in source)"
|
||||
source_ref: "src/Cafe/OS/libs/coreinit/coreinit_MCP.cpp:203"
|
||||
|
||||
- id: "00050010-10040000"
|
||||
name: "Wii U Menu (JPN)"
|
||||
required: false
|
||||
source_ref: "src/Cafe/OS/libs/sysapp/sysapp.cpp:382"
|
||||
|
||||
- id: "00050010-10040100"
|
||||
name: "Wii U Menu (USA)"
|
||||
required: false
|
||||
source_ref: "src/Cafe/OS/libs/sysapp/sysapp.cpp:382"
|
||||
|
||||
- id: "00050010-10040200"
|
||||
name: "Wii U Menu (EUR)"
|
||||
required: false
|
||||
source_ref: "src/Cafe/OS/libs/sysapp/sysapp.cpp:382"
|
||||
|
||||
# MLC directory structure expected by Cemu
|
||||
mlc_structure:
|
||||
- "mlc01/sys/title/0005001b/10042400/content/" # shared fonts
|
||||
- "mlc01/sys/title/0005001b/10054000/content/ccerts/" # client certs
|
||||
- "mlc01/sys/title/0005001b/10054000/content/scerts/" # server CA certs
|
||||
- "mlc01/sys/title/0005001b/1005c000/content/" # language files
|
||||
- "mlc01/sys/title/00050010/" # system applets
|
||||
- "mlc01/usr/title/00050000/" # base games
|
||||
- "mlc01/usr/title/0005000c/" # DLC
|
||||
- "mlc01/usr/title/0005000e/" # updates
|
||||
- "mlc01/usr/save/" # save data
|
||||
- "mlc01/usr/boss/" # SpotPass data
|
||||
|
||||
notes: |
|
||||
Cemu is a standalone Wii U emulator (not a libretro core).
|
||||
Minimum to run games: keys.txt with disc decryption keys.
|
||||
Shared fonts are required but Cemu ships fallback fonts in resources/sharedFonts/.
|
||||
Online play requires otp.bin (1024 bytes) + seeprom.bin (512 bytes) + SSL certificates.
|
||||
The cafeLibs/ directory can hold original Wii U firmware .rpl libraries for accuracy.
|
||||
Any .rpl from the Wii U firmware placed in cafeLibs/ will override Cemu's HLE implementation.
|
||||
86
emulators/citra.yml
Normal file
86
emulators/citra.yml
Normal file
@@ -0,0 +1,86 @@
|
||||
emulator: Citra / Lime3DS / Azahar
|
||||
type: standalone + libretro
|
||||
source: "https://github.com/azahar-emu/azahar"
|
||||
systems: [nintendo-3ds]
|
||||
|
||||
notes: |
|
||||
Citra (now Azahar, formerly Lime3DS) uses HLE for most system services,
|
||||
so many files are optional. AES keys are the most important for decrypting
|
||||
games and system data. Shared font has a built-in fallback.
|
||||
File locations relative to user dir: sysdata/ for keys/boot/font/otp/seeddb,
|
||||
nand/ for NAND filesystem, nand/private/ for movable.sed.
|
||||
Legacy data dirs: citra-emu, lime3ds-emu -> azahar-emu.
|
||||
|
||||
files:
|
||||
# --- sysdata/ directory ---
|
||||
- name: "keys.txt"
|
||||
path: "sysdata/keys.txt"
|
||||
description: "AES encryption keys"
|
||||
required: false
|
||||
source_ref: "src/common/common_paths.h:83, src/core/hw/aes/key.cpp:291"
|
||||
notes: "Contains AES key slots (X/Y/N types) for game decryption; has built-in encrypted fallback keys (key.cpp:300-306)"
|
||||
|
||||
- name: "boot9.bin"
|
||||
path: "sysdata/boot9.bin"
|
||||
description: "ARM9 bootrom"
|
||||
required: false
|
||||
source_ref: "src/common/common_paths.h:84"
|
||||
notes: "3DS ARM9 boot ROM; used for hardware key derivation"
|
||||
|
||||
- name: "sector0x96.bin"
|
||||
path: "sysdata/sector0x96.bin"
|
||||
description: "Secret sector from NAND"
|
||||
required: false
|
||||
source_ref: "src/common/common_paths.h:85"
|
||||
notes: "OTP-encrypted sector 0x96 from 3DS NAND; used for key derivation"
|
||||
|
||||
- name: "shared_font.bin"
|
||||
path: "sysdata/shared_font.bin"
|
||||
description: "System shared font"
|
||||
required: false
|
||||
source_ref: "src/common/common_paths.h:82, src/core/hle/service/apt/apt.cpp:284"
|
||||
notes: "Fallback if NAND system archive not available; built-in font data also exists (archive_ncch.cpp:28,189)"
|
||||
|
||||
- name: "seeddb.bin"
|
||||
path: "sysdata/seeddb.bin"
|
||||
description: "Game seed database"
|
||||
required: false
|
||||
source_ref: "src/core/file_sys/seed_db.cpp:15"
|
||||
notes: "Required for some seed-encrypted games (9.6+ titles)"
|
||||
|
||||
- name: "otp.bin"
|
||||
path: "sysdata/otp.bin"
|
||||
description: "One-time programmable memory dump"
|
||||
required: false
|
||||
source_ref: "src/core/hw/unique_data.cpp:214"
|
||||
notes: "Console-unique OTP data; used for hardware key derivation"
|
||||
|
||||
# --- nand/ directory ---
|
||||
- name: "movable.sed"
|
||||
path: "nand/private/movable.sed"
|
||||
description: "Movable unique key"
|
||||
required: false
|
||||
source_ref: "src/core/hw/unique_data.cpp:218"
|
||||
notes: "Console-unique key seed for SD/NAND encryption; signature verified at load (unique_data.cpp:197)"
|
||||
|
||||
- name: "SecureInfo_A"
|
||||
path: "nand/rw/sys/SecureInfo_A"
|
||||
description: "Console serial and region info"
|
||||
required: false
|
||||
source_ref: "src/core/hw/unique_data.cpp:206"
|
||||
notes: "Contains console serial number and region data"
|
||||
|
||||
- name: "LocalFriendCodeSeed_B"
|
||||
path: "nand/rw/sys/LocalFriendCodeSeed_B"
|
||||
description: "Friend code seed"
|
||||
required: false
|
||||
source_ref: "src/core/hw/unique_data.cpp:210"
|
||||
notes: "Used for friend code generation"
|
||||
|
||||
# --- NAND system archives (installed titles) ---
|
||||
- name: "shared font (system archive)"
|
||||
path: "nand/ (installed as NCCH title 0004009B00014002)"
|
||||
description: "Shared font system archive (JPN/USA/EUR)"
|
||||
required: false
|
||||
source_ref: "src/core/file_sys/archive_ncch.cpp:161"
|
||||
notes: "Region variants: CHN=00014102, KOR=00014202, TWN=00014302"
|
||||
59
emulators/crocods.yml
Normal file
59
emulators/crocods.yml
Normal file
@@ -0,0 +1,59 @@
|
||||
emulator: CrocoDS
|
||||
type: libretro
|
||||
source: "https://github.com/libretro/libretro-crocods"
|
||||
cores:
|
||||
- crocods
|
||||
systems:
|
||||
- amstrad-cpc
|
||||
|
||||
notes: |
|
||||
CrocoDS is an Amstrad CPC 6128 emulator ported to libretro. Supports
|
||||
.dsk, .sna, and .kcr file formats.
|
||||
|
||||
All system ROMs are compiled directly into the core binary as C byte
|
||||
arrays. No external BIOS files are required.
|
||||
|
||||
Embedded ROMs (crocods-core/):
|
||||
- cpc6128.bin.c: cpc6128_bin[32768] - CPC 6128 OS (16KB) + BASIC 1.1 (16KB)
|
||||
- romdisc.bin.c: romdisc_bin[16384] - AMSDOS disk controller ROM (16KB)
|
||||
|
||||
ROM initialization in InitMemCPC() (crocods-core/vga.c:185-200):
|
||||
- ROMINF (lower ROM, 16KB): first half of cpc6128_bin (OS)
|
||||
- ROMEXT[0] (upper ROM slot 0, 16KB): second half of cpc6128_bin (BASIC)
|
||||
- ROMEXT[7] (upper ROM slot 7, 16KB): romdisc_bin (AMSDOS)
|
||||
|
||||
Called from HardResetCPC() (crocods-core/platform.c:1009-1020) using
|
||||
the extern byte arrays directly. No filesystem ROM loading exists in
|
||||
the libretro path.
|
||||
|
||||
A Multiface ROM loader exists (crocods-core/multiface.c:51-61) that
|
||||
reads LocRomMulti via fopen(), but InitMultiface() is never called
|
||||
from the libretro build or platform.c. Dead code in libretro context.
|
||||
|
||||
The core does not request retro_system_directory or declare any
|
||||
firmware entries in the .info file. need_fullpath is false.
|
||||
|
||||
Only the CPC 6128 model is emulated (no CPC 464/664 selection).
|
||||
|
||||
files: []
|
||||
|
||||
platform_details:
|
||||
bios_mapping:
|
||||
source_ref: "crocods-core/vga.c:185-200, crocods-core/platform.c:1009-1020"
|
||||
notes: |
|
||||
All ROMs are embedded. InitMemCPC() copies cpc6128_bin and romdisc_bin
|
||||
into ROMINF and ROMEXT arrays via memcpy. No filesystem lookup occurs.
|
||||
retro_set_environment() does not request system_directory.
|
||||
|
||||
embedded_roms:
|
||||
source_ref: "crocods-core/cpc6128.bin.c, crocods-core/romdisc.bin.c"
|
||||
notes: |
|
||||
2 ROM sets embedded as C byte arrays:
|
||||
cpc6128_bin (32KB) - CPC 6128 OS (lower 16KB) + BASIC 1.1 (upper 16KB)
|
||||
romdisc_bin (16KB) - AMSDOS disk controller ROM, mapped to slot 7
|
||||
|
||||
model_rom_map:
|
||||
source_ref: "crocods-core/vga.c:189-192"
|
||||
notes: |
|
||||
CPC 6128 only: OS in ROMINF, BASIC in ROMEXT[0], AMSDOS in ROMEXT[7]
|
||||
emulator_patch_ROM() applies language patches to ROMINF after loading
|
||||
41
emulators/desmume.yml
Normal file
41
emulators/desmume.yml
Normal file
@@ -0,0 +1,41 @@
|
||||
emulator: DeSmuME
|
||||
type: libretro
|
||||
source: "https://github.com/libretro/desmume"
|
||||
cores: [desmume, desmume2015]
|
||||
systems: [nintendo-ds]
|
||||
|
||||
notes: |
|
||||
DeSmuME provides full HLE (High-Level Emulation) of all ARM7/ARM9 SWI
|
||||
routines, making BIOS files optional for most games. When external BIOS
|
||||
is disabled, a minimal fake BIOS with exception vectors and IRQ handler
|
||||
stubs is generated at runtime (NDSSystem.cpp:2208-2224, 2263-2278).
|
||||
External BIOS enables SWI-from-BIOS mode and firmware boot animation.
|
||||
Firmware boot requires both ARM7+ARM9 BIOS loaded AND interpreter mode
|
||||
(JIT incompatible, see libretro.cpp:788).
|
||||
ARM9 BIOS read size: 4096 bytes (0x1000). ARM7 BIOS read size: 16384
|
||||
bytes (0x4000). No DSi support.
|
||||
Libretro core option: desmume_use_external_bios (enabled/disabled).
|
||||
|
||||
files:
|
||||
- name: "bios7.bin"
|
||||
system: nintendo-ds
|
||||
description: "ARM7 BIOS"
|
||||
required: false
|
||||
size: 16384
|
||||
source_ref: "desmume/src/NDSSystem.cpp:2178-2182, frontend/libretro/libretro.cpp:763"
|
||||
notes: "HLE fallback covers all SWI calls; native file needed for firmware boot and SWI-from-BIOS accuracy"
|
||||
|
||||
- name: "bios9.bin"
|
||||
system: nintendo-ds
|
||||
description: "ARM9 BIOS"
|
||||
required: false
|
||||
size: 4096
|
||||
source_ref: "desmume/src/NDSSystem.cpp:2236-2239, frontend/libretro/libretro.cpp:764"
|
||||
notes: "HLE fallback covers all SWI calls; native file needed for firmware boot and logo comparison (Pal Park)"
|
||||
|
||||
- name: "firmware.bin"
|
||||
system: nintendo-ds
|
||||
description: "NDS firmware image"
|
||||
required: false
|
||||
source_ref: "desmume/src/NDSSystem.cpp:2653-2655, frontend/libretro/libretro.cpp:765"
|
||||
notes: "Dummy firmware generated when absent; native firmware needed for boot animation, wifi config, user settings"
|
||||
182
emulators/dolphin.yml
Normal file
182
emulators/dolphin.yml
Normal file
@@ -0,0 +1,182 @@
|
||||
emulator: Dolphin
|
||||
type: standalone + libretro
|
||||
source: "https://github.com/dolphin-emu/dolphin"
|
||||
systems: [nintendo-gamecube, nintendo-wii]
|
||||
|
||||
# Dolphin has HLE for most system functions, so real BIOS/firmware files
|
||||
# are optional but improve accuracy. DSP ROMs are the most commonly needed.
|
||||
|
||||
# File paths are relative to Dolphin User directory:
|
||||
# Standalone: User/GC/ and User/Wii/
|
||||
# Libretro (RetroArch): system/dolphin-emu/GC/ and system/dolphin-emu/Wii/
|
||||
|
||||
files:
|
||||
# -- GameCube IPL (Boot ROM) --
|
||||
# Region-specific, placed in GC/<region>/IPL.bin
|
||||
# Regions: USA, EUR, JAP (legacy), JPN, DEV
|
||||
- name: "IPL.bin"
|
||||
path: "GC/USA/IPL.bin"
|
||||
size: 2097152 # 0x200000 (2 MB)
|
||||
required: false
|
||||
note: "GameCube NTSC-U boot ROM. HLE available but real IPL needed for GC menu boot and accurate fonts"
|
||||
source_ref: "Source/Core/Common/CommonPaths.h:139, Source/Core/Core/HW/EXI/EXI_DeviceIPL.cpp:108"
|
||||
|
||||
- name: "IPL.bin"
|
||||
path: "GC/EUR/IPL.bin"
|
||||
size: 2097152
|
||||
required: false
|
||||
note: "GameCube PAL boot ROM"
|
||||
source_ref: "Source/Core/Core/Config/MainSettings.cpp:744-750"
|
||||
|
||||
- name: "IPL.bin"
|
||||
path: "GC/JAP/IPL.bin"
|
||||
size: 2097152
|
||||
required: false
|
||||
note: "GameCube NTSC-J boot ROM"
|
||||
source_ref: "Source/Core/Core/HW/EXI/EXI_DeviceIPL.cpp:185"
|
||||
|
||||
# -- DSP ROMs --
|
||||
# Used by DSP LLE (low-level emulation) for accurate audio
|
||||
# Dolphin ships a free replacement ROM, but dumps from real hardware are more accurate
|
||||
# Searched in: User/GC/ then Sys/GC/
|
||||
- name: "dsp_rom.bin"
|
||||
path: "GC/dsp_rom.bin"
|
||||
size: 8192 # 0x2000 (DSP_IROM_BYTE_SIZE)
|
||||
required: false
|
||||
note: "DSP instruction ROM for LLE audio. Free replacement included with Dolphin, real dump improves accuracy"
|
||||
known_hash_adler32: "0x66f334fe" # official Nintendo ROM
|
||||
source_ref: "Source/Core/Common/CommonPaths.h:136, Source/Core/Core/HW/DSPLLE/DSPLLE.cpp:106-117"
|
||||
|
||||
- name: "dsp_coef.bin"
|
||||
path: "GC/dsp_coef.bin"
|
||||
size: 4096 # 0x1000 (DSP_COEF_BYTE_SIZE)
|
||||
required: false
|
||||
note: "DSP coefficient ROM for LLE audio and HLE polyphase resampling. Free replacement included"
|
||||
known_hash_adler32: "0xf3b93527" # official Nintendo ROM
|
||||
source_ref: "Source/Core/Common/CommonPaths.h:137, Source/Core/Core/DSP/DSPCore.cpp:32-33, Source/Core/Core/HW/DSPHLE/UCodes/AX.cpp:55-62"
|
||||
|
||||
# -- GameCube Fonts --
|
||||
# Bundled free alternatives exist but have padding differences causing misplaced text
|
||||
# If IPL dump is present, fonts are extracted from it instead
|
||||
# Searched in: Sys/GC/
|
||||
- name: "font_western.bin"
|
||||
path: "GC/font_western.bin"
|
||||
size: 9589 # 0x2575
|
||||
required: false
|
||||
note: "Windows-1252 font for GC/Wii text rendering. Free alternative bundled, real one from IPL dump preferred"
|
||||
source_ref: "Source/Core/Common/CommonPaths.h:133, Source/Core/Core/HW/EXI/EXI_DeviceIPL.cpp:130,202-239"
|
||||
|
||||
- name: "font_japanese.bin"
|
||||
path: "GC/font_japanese.bin"
|
||||
size: 303693 # 0x4A24D
|
||||
required: false
|
||||
note: "Shift-JIS font for Japanese text. Free alternative bundled, real one from IPL dump preferred"
|
||||
source_ref: "Source/Core/Common/CommonPaths.h:134, Source/Core/Core/HW/EXI/EXI_DeviceIPL.cpp:129,234"
|
||||
|
||||
# -- GBA BIOS (for GC-GBA link) --
|
||||
# Used by integrated mGBA core for GameCube-GBA connectivity
|
||||
- name: "gba_bios.bin"
|
||||
path: "GBA/gba_bios.bin"
|
||||
required: false
|
||||
note: "GBA BIOS for GC-GBA link feature (uses integrated mGBA). Path configurable in settings"
|
||||
source_ref: "Source/Core/Common/CommonPaths.h:145, Source/Core/Core/HW/GBACore.cpp:346-363"
|
||||
|
||||
# -- Wii System Files --
|
||||
# These are generated/managed by Dolphin's Wii NAND emulation
|
||||
# Not typically user-supplied, but listed for completeness
|
||||
|
||||
- name: "SYSCONF"
|
||||
path: "Wii/shared2/sys/SYSCONF"
|
||||
required: false
|
||||
note: "Wii system configuration. Auto-generated by Dolphin, can be imported from NAND backup"
|
||||
source_ref: "Source/Core/Common/CommonPaths.h:118, Source/Core/Common/FileUtil.cpp:900"
|
||||
|
||||
- name: "setting.txt"
|
||||
path: "Wii/title/00000001/00000002/data/setting.txt"
|
||||
size: 256
|
||||
required: false
|
||||
note: "Wii region/language settings. Auto-generated by Dolphin during Wii boot emulation"
|
||||
source_ref: "Source/Core/Common/CommonPaths.h:153, Source/Core/Core/Boot/Boot_BS2Emu.cpp:384-460"
|
||||
|
||||
# -- Wii NAND Backup (BootMii) --
|
||||
- name: "nand.bin"
|
||||
path: null # user-selected via file dialog
|
||||
required: false
|
||||
note: "BootMii NAND backup. Can be imported to populate Wii NAND with channels, saves, system menu"
|
||||
source_ref: "Source/Core/DiscIO/NANDImporter.cpp:26-39,42-89"
|
||||
|
||||
- name: "keys.bin"
|
||||
path: null # user-selected, or appended to nand.bin
|
||||
size: 1024 # 0x400 (NAND_KEYS_SIZE)
|
||||
required: false
|
||||
note: "OTP/SEEPROM dump (Wii encryption keys). Needed if not appended to nand.bin for NAND import"
|
||||
source_ref: "Source/Core/DiscIO/NANDImporter.cpp:19,76-88, Source/Core/DiscIO/NANDImporter.h:28"
|
||||
|
||||
# -- Wii SD Card Image --
|
||||
- name: "WiiSD.raw"
|
||||
path: "Load/WiiSD.raw"
|
||||
required: false
|
||||
note: "Virtual SD card image for Wii homebrew. Auto-created by Dolphin, supports SD/SDHC up to 4GB"
|
||||
source_ref: "Source/Core/Common/CommonPaths.h:150"
|
||||
|
||||
# -- Gecko Code Handler --
|
||||
- name: "codehandler.bin"
|
||||
path: null # in Sys directory, shipped with Dolphin
|
||||
required: false
|
||||
note: "Gecko/Ocarina cheat code handler. Shipped with Dolphin in Sys/, not user-supplied"
|
||||
source_ref: "Source/Core/Common/CommonPaths.h:155, Source/Core/Core/GeckoCode.cpp:120"
|
||||
|
||||
# -- Wii System Menu (WAD) --
|
||||
- name: "Wii System Menu"
|
||||
path: null # installed to NAND via WAD import
|
||||
required: false
|
||||
note: "Wii System Menu WAD. Installed to NAND via Tools > Install WAD, needed for Wii Menu boot"
|
||||
source_ref: "Source/Core/DolphinQt/MainWindow.cpp:1581-1583, Source/Core/DolphinQt/MenuBar.cpp:1174-1188"
|
||||
|
||||
# -- NAND Certificates (auto-extracted) --
|
||||
- name: "clientca.pem"
|
||||
path: "Wii/clientca.pem"
|
||||
required: false
|
||||
note: "SSL client certificate. Auto-extracted from IOS13 content during NAND import"
|
||||
source_ref: "Source/Core/DiscIO/NANDImporter.cpp:201-285"
|
||||
|
||||
- name: "clientcakey.pem"
|
||||
path: "Wii/clientcakey.pem"
|
||||
required: false
|
||||
note: "SSL client private key. Auto-extracted from IOS13 content during NAND import"
|
||||
source_ref: "Source/Core/DiscIO/NANDImporter.cpp:237"
|
||||
|
||||
- name: "rootca.pem"
|
||||
path: "Wii/rootca.pem"
|
||||
required: false
|
||||
note: "SSL root CA certificate. Auto-extracted from IOS13 content during NAND import"
|
||||
source_ref: "Source/Core/DiscIO/NANDImporter.cpp:238"
|
||||
|
||||
notes:
|
||||
hle_available: true
|
||||
hle_note: >
|
||||
Dolphin provides HLE for GameCube IPL (boot ROM), DSP, and Wii system functions.
|
||||
No BIOS files are strictly required for most games. DSP ROMs (dsp_rom.bin + dsp_coef.bin)
|
||||
are the most impactful optional files - Dolphin ships free replacements but real dumps
|
||||
from hardware provide better audio accuracy in some titles.
|
||||
ipl_regions: ["USA", "EUR", "JAP", "JPN", "DEV"]
|
||||
ipl_region_note: >
|
||||
IPL.bin is region-specific, placed in GC/<REGION>/IPL.bin.
|
||||
JAP is the legacy directory name, JPN is the modern default.
|
||||
DEV is for development/debug units.
|
||||
dsp_rom_note: >
|
||||
DSP ROMs are verified at load time via Adler32 hash.
|
||||
Official Nintendo hashes: irom=0x66f334fe, drom=0xf3b93527.
|
||||
Multiple free replacement versions exist (v0.1 through v0.4).
|
||||
font_note: >
|
||||
Fonts can come from three sources: real IPL dump (preferred), standalone font files
|
||||
in Sys/GC/, or bundled free alternatives. The free fonts have different padding that
|
||||
causes text positioning issues in some games.
|
||||
libretro_note: >
|
||||
No official libretro core exists in the main Dolphin repo.
|
||||
Third-party libretro cores (dolphin_libretro) use the same file paths
|
||||
under RetroArch system/dolphin-emu/.
|
||||
nand_note: >
|
||||
Wii NAND content (channels, saves, system menu) is managed by Dolphin internally.
|
||||
Users can import a BootMii NAND backup (nand.bin + optional keys.bin) to populate it.
|
||||
Most Wii games do not require a real NAND dump.
|
||||
171
emulators/dosbox_core.yml
Normal file
171
emulators/dosbox_core.yml
Normal file
@@ -0,0 +1,171 @@
|
||||
emulator: DOSBox-core
|
||||
type: libretro
|
||||
source: "https://github.com/libretro/dosbox-core"
|
||||
cores: [dosbox_core]
|
||||
systems: [dos]
|
||||
verification: sha1
|
||||
notes: >
|
||||
No BIOS required. MT-32 and SoundFont support is optional for MIDI music.
|
||||
Unlike DOSBox Pure, this core expects MT-32 ROMs with exact filenames
|
||||
directly in the system directory (no recursive scan, no ZIP support).
|
||||
The mt32.romdir config option is set to the system directory by the
|
||||
libretro frontend. CM-32L is the default emulated hardware type.
|
||||
FluidSynth support reads .sf2/.sf3/.dls/.gig from system/soundfonts/.
|
||||
BASSMIDI support reads .sf2/.sfz from system/soundfonts/ but also
|
||||
requires the BASS and BASSMIDI shared libraries (downloaded separately
|
||||
from https://www.un4seen.com) placed in the system directory.
|
||||
Uses bundled MUNT (mt32emu) for MT-32 emulation, bundled FluidSynth
|
||||
for SF2 playback. BASSMIDI is optional and loaded at runtime via dlopen.
|
||||
The .info file declares firmware_count=10 (4 ROMs + 6 BASS libs).
|
||||
|
||||
files:
|
||||
# -- MT-32 Control ROM --
|
||||
# The core only loads MT32_CONTROL.ROM (not versioned filenames).
|
||||
# Any v1.x control ROM (64 KB) works. The .info references v1.07.
|
||||
|
||||
- name: "MT32_CONTROL.ROM"
|
||||
description: "MT-32 Control v1.04"
|
||||
required: false
|
||||
size: 65536
|
||||
sha1: "5a5cb5a77d7d55ee69657c2f870416daed52dea7"
|
||||
source_ref: "midi_mt32.cpp:55"
|
||||
|
||||
- name: "MT32_CONTROL.ROM"
|
||||
description: "MT-32 Control v1.05"
|
||||
required: false
|
||||
size: 65536
|
||||
sha1: "e17a3a6d265bf1fa150312061134293d2b58288c"
|
||||
source_ref: "midi_mt32.cpp:55"
|
||||
|
||||
- name: "MT32_CONTROL.ROM"
|
||||
description: "MT-32 Control v1.06"
|
||||
required: false
|
||||
size: 65536
|
||||
sha1: "a553481f4e2794c10cfe597fef154eef0d8257de"
|
||||
source_ref: "midi_mt32.cpp:55"
|
||||
|
||||
- name: "MT32_CONTROL.ROM"
|
||||
description: "MT-32 Control v1.07"
|
||||
required: false
|
||||
size: 65536
|
||||
sha1: "b083518fffb7f66b03c23b7eb4f868e62dc5a987"
|
||||
source_ref: "midi_mt32.cpp:55, dosbox_core_libretro.info:firmware0"
|
||||
notes: "version referenced in .info file (md5: 5626206284b22c2734f3e9efefcd2675)"
|
||||
|
||||
- name: "MT32_CONTROL.ROM"
|
||||
description: "MT-32 Control BlueRidge"
|
||||
required: false
|
||||
size: 65536
|
||||
sha1: "7b8c2a5ddb42fd0732e2f22b3340dcf5360edf92"
|
||||
source_ref: "midi_mt32.cpp:55"
|
||||
|
||||
# -- MT-32 v2.x Control ROMs (128 KB) --
|
||||
|
||||
- name: "MT32_CONTROL.ROM"
|
||||
description: "MT-32 Control v2.03 (new MT-32)"
|
||||
required: false
|
||||
size: 131072
|
||||
sha1: "5837064c9df4741a55f7c4d8787ac158dff2d3ce"
|
||||
source_ref: "midi_mt32.cpp:55"
|
||||
|
||||
- name: "MT32_CONTROL.ROM"
|
||||
description: "MT-32 Control v2.04"
|
||||
required: false
|
||||
size: 131072
|
||||
sha1: "2c16432b6c73dd2a3947cba950a0f4c19d6180eb"
|
||||
source_ref: "midi_mt32.cpp:55"
|
||||
|
||||
- name: "MT32_CONTROL.ROM"
|
||||
description: "MT-32 Control v2.06"
|
||||
required: false
|
||||
size: 131072
|
||||
sha1: "2869cf4c235d671668cfcb62415e2ce8323ad4ed"
|
||||
source_ref: "midi_mt32.cpp:55"
|
||||
|
||||
- name: "MT32_CONTROL.ROM"
|
||||
description: "MT-32 Control v2.07"
|
||||
required: false
|
||||
size: 131072
|
||||
sha1: "47b52adefedaec475c925e54340e37673c11707c"
|
||||
source_ref: "midi_mt32.cpp:55"
|
||||
|
||||
# -- CM-32L / LAPC-I Control ROMs (64 KB) --
|
||||
# Loaded when mt32.type = "cm32l" (the default).
|
||||
|
||||
- name: "CM32L_CONTROL.ROM"
|
||||
description: "CM-32L/LAPC-I Control v1.00"
|
||||
required: false
|
||||
size: 65536
|
||||
sha1: "73683d585cd6948cc19547942ca0e14a0319456d"
|
||||
source_ref: "midi_mt32.cpp:53"
|
||||
|
||||
- name: "CM32L_CONTROL.ROM"
|
||||
description: "CM-32L/LAPC-I Control v1.02"
|
||||
required: false
|
||||
size: 65536
|
||||
sha1: "a439fbb390da38cada95a7cbb1d6ca199cd66ef8"
|
||||
source_ref: "midi_mt32.cpp:53, dosbox_core_libretro.info:firmware2"
|
||||
notes: "version referenced in .info file (md5: bfff32b6144c1d706109accb6e6b1113)"
|
||||
|
||||
# -- PCM ROMs --
|
||||
|
||||
- name: "MT32_PCM.ROM"
|
||||
description: "MT-32 PCM ROM"
|
||||
required: false
|
||||
size: 524288
|
||||
sha1: "f6b1eebc4b2d200ec6d3d21d51325d5b48c60252"
|
||||
source_ref: "midi_mt32.cpp:66, dosbox_core_libretro.info:firmware1"
|
||||
notes: "pairs with any MT-32 v1.x control ROM (md5: 89e42e386e82e0cacb4a2704a03706ca)"
|
||||
|
||||
- name: "CM32L_PCM.ROM"
|
||||
description: "CM-32L/CM-64/LAPC-I PCM ROM"
|
||||
required: false
|
||||
size: 1048576
|
||||
sha1: "289cc298ad532b702461bfc738009d9ebe8025ea"
|
||||
source_ref: "midi_mt32.cpp:64, dosbox_core_libretro.info:firmware3"
|
||||
notes: "pairs with MT-32 v2.x or CM-32L control ROMs (md5: 08cdcfa0ed93e9cb16afa76e6ac5f0a4)"
|
||||
|
||||
# -- BASS shared libraries (BASSMIDI driver) --
|
||||
# Downloaded from https://www.un4seen.com, placed in system directory.
|
||||
# Loaded at runtime via dlopen. Not redistributable ROMs.
|
||||
|
||||
- name: "libbass.so"
|
||||
description: "BASS audio library (Linux)"
|
||||
required: false
|
||||
source_ref: "midi_bassmidi.cpp:238, dosbox_core_libretro.info:firmware4"
|
||||
notes: "proprietary library from un4seen.com, not a ROM"
|
||||
|
||||
- name: "libbassmidi.so"
|
||||
description: "BASSMIDI addon library (Linux)"
|
||||
required: false
|
||||
source_ref: "midi_bassmidi.cpp:239, dosbox_core_libretro.info:firmware5"
|
||||
notes: "proprietary library from un4seen.com, not a ROM"
|
||||
|
||||
- name: "bass.dll"
|
||||
description: "BASS audio library (Windows)"
|
||||
required: false
|
||||
source_ref: "midi_bassmidi.cpp:232, dosbox_core_libretro.info:firmware6"
|
||||
notes: "proprietary library from un4seen.com, not a ROM"
|
||||
|
||||
- name: "bassmidi.dll"
|
||||
description: "BASSMIDI addon library (Windows)"
|
||||
required: false
|
||||
source_ref: "midi_bassmidi.cpp:233, dosbox_core_libretro.info:firmware7"
|
||||
notes: "proprietary library from un4seen.com, not a ROM"
|
||||
|
||||
- name: "libbass.dylib"
|
||||
description: "BASS audio library (macOS)"
|
||||
required: false
|
||||
source_ref: "midi_bassmidi.cpp:235, dosbox_core_libretro.info:firmware8"
|
||||
notes: "proprietary library from un4seen.com, not a ROM"
|
||||
|
||||
- name: "libbassmidi.dylib"
|
||||
description: "BASSMIDI addon library (macOS)"
|
||||
required: false
|
||||
source_ref: "midi_bassmidi.cpp:236, dosbox_core_libretro.info:firmware9"
|
||||
notes: "proprietary library from un4seen.com, not a ROM"
|
||||
|
||||
# -- General MIDI SoundFont --
|
||||
# Placed in system/soundfonts/ directory. Core scans for .sf2/.sf3/.sfz/.dls/.gig.
|
||||
# FluidSynth reads .sf2/.sf3/.dls/.gig; BASSMIDI reads .sf2/.sfz.
|
||||
# No specific filename required - all found files appear in the core option dropdown.
|
||||
139
emulators/dosbox_pure.yml
Normal file
139
emulators/dosbox_pure.yml
Normal file
@@ -0,0 +1,139 @@
|
||||
emulator: DOSBox Pure
|
||||
type: libretro
|
||||
source: "https://github.com/libretro/dosbox-pure"
|
||||
cores: [dosbox_pure]
|
||||
systems: [dos]
|
||||
verification: sha1
|
||||
notes: >
|
||||
No BIOS required. MT-32 and SoundFont support is optional for MIDI music.
|
||||
The core scans the RetroArch system directory (and subdirectories) for files
|
||||
ending in _CONTROL.ROM (MT-32/CM-32L) and .SF2/.SF3 (General MIDI SoundFont).
|
||||
MT-32 requires a matched pair: *_CONTROL.ROM + *_PCM.ROM in the same directory.
|
||||
Files can also be placed inside the game content as DOSBOX.SF2 or MT32_CONTROL.ROM
|
||||
+ MT32_PCM.ROM on the mounted C: drive. ZIP archives containing both ROMs are
|
||||
also supported (identified by file size, not name). A cache file
|
||||
DOSBoxPureMidiCache.txt is written to system dir when scan takes >2s.
|
||||
Uses bundled MUNT (mt32emu) for MT-32 emulation, TinySoundFont for SF2 playback.
|
||||
No firmware entries in the .info file - all MIDI files are optional enhancements.
|
||||
|
||||
files:
|
||||
# -- MT-32 Control ROMs (64 KB) --
|
||||
|
||||
- name: "MT32_CONTROL.ROM"
|
||||
description: "MT-32 Control v1.04"
|
||||
required: false
|
||||
size: 65536
|
||||
sha1: "5a5cb5a77d7d55ee69657c2f870416daed52dea7"
|
||||
source_ref: "mt32emu.h:CTRL_MT32_V1_04"
|
||||
|
||||
- name: "MT32_CONTROL.ROM"
|
||||
description: "MT-32 Control v1.05"
|
||||
required: false
|
||||
size: 65536
|
||||
sha1: "e17a3a6d265bf1fa150312061134293d2b58288c"
|
||||
source_ref: "mt32emu.h:CTRL_MT32_V1_05"
|
||||
|
||||
- name: "MT32_CONTROL.ROM"
|
||||
description: "MT-32 Control v1.06"
|
||||
required: false
|
||||
size: 65536
|
||||
sha1: "a553481f4e2794c10cfe597fef154eef0d8257de"
|
||||
source_ref: "mt32emu.h:CTRL_MT32_V1_06"
|
||||
|
||||
- name: "MT32_CONTROL.ROM"
|
||||
description: "MT-32 Control v1.07"
|
||||
required: false
|
||||
size: 65536
|
||||
sha1: "b083518fffb7f66b03c23b7eb4f868e62dc5a987"
|
||||
source_ref: "mt32emu.h:CTRL_MT32_V1_07"
|
||||
|
||||
- name: "MT32_CONTROL.ROM"
|
||||
description: "MT-32 Control BlueRidge"
|
||||
required: false
|
||||
size: 65536
|
||||
sha1: "7b8c2a5ddb42fd0732e2f22b3340dcf5360edf92"
|
||||
source_ref: "mt32emu.h:CTRL_MT32_BLUER"
|
||||
|
||||
# -- MT-32 v2.x Control ROMs (128 KB) --
|
||||
|
||||
- name: "MT32_CONTROL.ROM"
|
||||
description: "MT-32 Control v2.03 (new MT-32)"
|
||||
required: false
|
||||
size: 131072
|
||||
sha1: "5837064c9df4741a55f7c4d8787ac158dff2d3ce"
|
||||
source_ref: "mt32emu.h:CTRL_MT32_V2_03"
|
||||
|
||||
- name: "MT32_CONTROL.ROM"
|
||||
description: "MT-32 Control v2.04"
|
||||
required: false
|
||||
size: 131072
|
||||
sha1: "2c16432b6c73dd2a3947cba950a0f4c19d6180eb"
|
||||
source_ref: "mt32emu.h:CTRL_MT32_V2_04"
|
||||
|
||||
- name: "MT32_CONTROL.ROM"
|
||||
description: "MT-32 Control v2.06"
|
||||
required: false
|
||||
size: 131072
|
||||
sha1: "2869cf4c235d671668cfcb62415e2ce8323ad4ed"
|
||||
source_ref: "mt32emu.h:CTRL_MT32_V2_06"
|
||||
|
||||
- name: "MT32_CONTROL.ROM"
|
||||
description: "MT-32 Control v2.07"
|
||||
required: false
|
||||
size: 131072
|
||||
sha1: "47b52adefedaec475c925e54340e37673c11707c"
|
||||
source_ref: "mt32emu.h:CTRL_MT32_V2_07"
|
||||
|
||||
# -- CM-32L / LAPC-I Control ROMs (64 KB) --
|
||||
|
||||
- name: "CM32L_CONTROL.ROM"
|
||||
description: "CM-32L/LAPC-I Control v1.00"
|
||||
required: false
|
||||
size: 65536
|
||||
sha1: "73683d585cd6948cc19547942ca0e14a0319456d"
|
||||
source_ref: "mt32emu.h:CTRL_CM32L_V1_00"
|
||||
|
||||
- name: "CM32L_CONTROL.ROM"
|
||||
description: "CM-32L/LAPC-I Control v1.02"
|
||||
required: false
|
||||
size: 65536
|
||||
sha1: "a439fbb390da38cada95a7cbb1d6ca199cd66ef8"
|
||||
source_ref: "mt32emu.h:CTRL_CM32L_V1_02"
|
||||
|
||||
# -- CM-32LN / CM-500 / LAPC-N Control ROM (64 KB) --
|
||||
|
||||
- name: "CM32LN_CONTROL.ROM"
|
||||
description: "CM-32LN/CM-500/LAPC-N Control v1.00"
|
||||
required: false
|
||||
size: 65536
|
||||
sha1: "dc1c5b1b90a4646d00f7daf3679733c7badc7077"
|
||||
source_ref: "mt32emu.h:CTRL_CM32LN_V1_00"
|
||||
|
||||
# -- PCM ROMs --
|
||||
|
||||
- name: "MT32_PCM.ROM"
|
||||
description: "MT-32 PCM ROM"
|
||||
required: false
|
||||
size: 524288
|
||||
sha1: "f6b1eebc4b2d200ec6d3d21d51325d5b48c60252"
|
||||
source_ref: "mt32emu.h:PCM_MT32"
|
||||
notes: "pairs with any MT-32 v1.x control ROM"
|
||||
|
||||
- name: "CM32L_PCM.ROM"
|
||||
description: "CM-32L/CM-64/LAPC-I PCM ROM"
|
||||
required: false
|
||||
size: 1048576
|
||||
sha1: "289cc298ad532b702461bfc738009d9ebe8025ea"
|
||||
source_ref: "mt32emu.h:PCM_CM32L"
|
||||
notes: "pairs with MT-32 v2.x or CM-32L control ROMs. Lower half aliases MT-32 PCM."
|
||||
|
||||
# -- General MIDI SoundFont --
|
||||
|
||||
- name: "DOSBOX.SF2"
|
||||
description: "General MIDI SoundFont (any .sf2/.sf3 accepted)"
|
||||
required: false
|
||||
source_ref: "dosbox_pure_libretro.cpp:1375,2760"
|
||||
notes: >
|
||||
Any .SF2 or .SF3 file in the system directory works. The core lists all
|
||||
found SoundFonts in the MIDI config dropdown. DOSBOX.SF2 is the conventional
|
||||
name and is also auto-detected when placed inside game content on C: drive.
|
||||
1074
emulators/duckstation.yml
Normal file
1074
emulators/duckstation.yml
Normal file
File diff suppressed because it is too large
Load Diff
32
emulators/ecwolf.yml
Normal file
32
emulators/ecwolf.yml
Normal file
@@ -0,0 +1,32 @@
|
||||
emulator: ECWolf
|
||||
type: libretro
|
||||
source: "https://github.com/libretro/ecwolf"
|
||||
cores: [ecwolf]
|
||||
systems: [wolfenstein3d]
|
||||
verification: md5
|
||||
notes: >
|
||||
Wolfenstein 3D source port. Plays Wolf3D (wl6/wl1), Spear of Destiny (sod/sdm),
|
||||
Super 3D Noah's Ark (n3d), and community pk3 mods. The core requires ecwolf.pk3
|
||||
in the system directory - this is the engine data package built from wadsrc/static/
|
||||
containing IWADINFO definitions, palettes, sprites, map configs, and lump remappers.
|
||||
Game data files (vswap, gamemaps, vgagraph, audiot) are loaded from the content
|
||||
directory, not the system directory. The core auto-detects the game variant by
|
||||
scanning lump contents against IWADINFO MustContain rules. Spear of Destiny
|
||||
mission packs (sd2/sd3) and Mac Wolfenstein variants are also supported.
|
||||
Blake Stone and Rise of the Triad support is flagged as Preview.
|
||||
The SelectGame path searches: content directory, system directory, BaseDataPaths
|
||||
config, then platform-specific paths (Steam, GOG installs on desktop).
|
||||
|
||||
files:
|
||||
- name: "ecwolf.pk3"
|
||||
description: "ECWolf engine data package"
|
||||
required: true
|
||||
md5: "c011b428819eea4a80b455c245a5a04d"
|
||||
source_ref: "ecwolf_libretro.info:firmware0, version.h:MAIN_PK3, wl_iwad.cpp:SelectGame"
|
||||
notes: >
|
||||
Built from wadsrc/static/ via zipdir. Contains IWADINFO (game detection rules),
|
||||
palettes (wolfpal, spearpal, blakepal, noahpal), map lump remappers (wl6map,
|
||||
sodmap, etc.), DECORATE actor definitions, MAPINFO, SNDINFO, SNDSEQ, textures,
|
||||
sprites, fonts, and localization strings. Without this file the core errors
|
||||
with "Could not open ecwolf.pk3!". The md5 corresponds to the version shipped
|
||||
with the current libretro buildbot release.
|
||||
66
emulators/emuscv.yml
Normal file
66
emulators/emuscv.yml
Normal file
@@ -0,0 +1,66 @@
|
||||
emulator: EmuSCV
|
||||
type: libretro
|
||||
source: "https://github.com/wzcwzc/emuscv"
|
||||
cores:
|
||||
- emuscv
|
||||
systems:
|
||||
- scv
|
||||
|
||||
notes: |
|
||||
EmuSCV is an Epoch/YENO Super Cassette Vision emulator for libretro,
|
||||
based on eSCV by Takeda Toshiya.
|
||||
|
||||
BIOS loading in src/vm/scv/memory.cpp:initialize() (line 71-242). The core
|
||||
tries multiple filenames in order: upd7801g.s01, upd7801g.bin, upd7801g.bios,
|
||||
bios.rom, bios.bin. First successful open wins.
|
||||
|
||||
The BIOS is read as 0x1000 (4096) bytes into the bios[] array, mapped
|
||||
read-only at CPU address 0x0000-0x0FFF (UPD7801 internal ROM area).
|
||||
|
||||
When CHECKBIOS core option is YES or AUTO, the core computes MD5 of the
|
||||
loaded data and compares against 635a978fd40db9a18ee44eff449fc126. If the
|
||||
hash does not match, the BIOS is rejected (zeroed out, bios_present=false).
|
||||
When CHECKBIOS is NO, any file content is accepted.
|
||||
|
||||
The font/character data is embedded within the BIOS at offset 0x200
|
||||
(memory.h:163 get_font() returns bios + 0x200). No separate font ROM file.
|
||||
|
||||
The core can start without BIOS (supports_no_game=true) but shows
|
||||
"BIOS not found" or "Bad BIOS" on the OSD. Games will not run without it.
|
||||
|
||||
The .info file declares firmware_count = 1, firmware0_opt = false.
|
||||
|
||||
files:
|
||||
- name: "upd7801g.s01"
|
||||
system: scv
|
||||
required: true
|
||||
size: 4096 # 4 KB, UPD7801G internal ROM
|
||||
md5: 635a978fd40db9a18ee44eff449fc126
|
||||
note: "UPD7801G internal ROM (BIOS). Mapped at 0x0000-0x0FFF. Contains character font at offset 0x200."
|
||||
source_ref: "src/vm/scv/memory.cpp:74, libretro-core-info/emuscv_libretro.info"
|
||||
aliases:
|
||||
- "upd7801g.bin"
|
||||
- "upd7801g.bios"
|
||||
- "bios.rom"
|
||||
- "bios.bin"
|
||||
|
||||
platform_details:
|
||||
cpu: "NEC UPD7801G"
|
||||
bios_mapping:
|
||||
upd7801g:
|
||||
target: "0x0000-0x0FFF (CPU internal ROM, 4 KB)"
|
||||
format: "raw binary"
|
||||
source_ref: "src/vm/scv/memory.cpp:249"
|
||||
notes: |
|
||||
Memory map from memory.cpp:initialize():
|
||||
0x0000-0x0FFF BIOS ROM (read-only)
|
||||
0x2000-0x3FFF VRAM (8 KB)
|
||||
0x8000-0xFF7F Cartridge ROM (up to 4 banks of 32 KB)
|
||||
0xFF80-0xFFFF CPU internal RAM (128 bytes)
|
||||
Font data lives inside the BIOS at offset 0x200, accessed via
|
||||
get_font() for the VDP character rendering (src/vm/scv/vdp.cpp).
|
||||
|
||||
cartridge_loading:
|
||||
formats: "cart, bin, rom, 0 (multi-file: .0/.1/.2/.3), zip"
|
||||
banking: "4 banks of 32 KB via PC5/PC6 port lines"
|
||||
source_ref: "src/vm/scv/memory.h, src/vm/scv/memory.cpp"
|
||||
309
emulators/ep128emu.yml
Normal file
309
emulators/ep128emu.yml
Normal file
@@ -0,0 +1,309 @@
|
||||
emulator: ep128emu-core
|
||||
type: libretro
|
||||
source: "https://github.com/libretro/ep128emu-core"
|
||||
cores:
|
||||
- ep128emu_core
|
||||
systems:
|
||||
- enterprise-64
|
||||
- enterprise-128
|
||||
- videoton-tvc
|
||||
- amstrad-cpc
|
||||
- zx-spectrum
|
||||
|
||||
# ep128emu-core emulates Enterprise 64/128, Videoton TVC, Amstrad CPC 464/664/6128,
|
||||
# and ZX Spectrum 48/128. All ROMs are optional because the core ships built-in
|
||||
# fallback ROMs compiled into roms.hpp. External ROM files override the built-ins
|
||||
# and provide better accuracy for some systems.
|
||||
#
|
||||
# ROM path: <system_dir>/ep128emu/roms/
|
||||
#
|
||||
# Machine selection (core/core.cpp:62-118):
|
||||
# Content file extension determines machine type:
|
||||
# .cas/.tap/.bas/.128/.com/.trn -> Enterprise
|
||||
# .tvcwav/.cas(TVC) -> Videoton TVC
|
||||
# .cdt/.tzx -> Amstrad CPC or ZX Spectrum (autodetect)
|
||||
# .img/.dsk -> Enterprise disk (default) or CPC/TVC depending on content
|
||||
#
|
||||
# Enterprise ROM layout (core/core.cpp:195-307):
|
||||
# EP128 (default): exos21.rom (segments 0-1) + basic21.rom (segment 4/5)
|
||||
# EP64: exos20.rom (segments 0-1) + basic20.rom (segment 4/5)
|
||||
# EP128 enhanced: exos24uk.rom (segments 0-3, 64K)
|
||||
# Disk mode: exdos13.rom (segments 0x20-0x21)
|
||||
# IS-DOS mode: exdos14isdos10uk.rom (segments 0x20-0x21)
|
||||
# File I/O mode: epfileio.rom (segment 0x10)
|
||||
# DTF mode: zt19uk.rom (segments 0x40-0x41)
|
||||
# Hungarian locale: hun.rom + epdos16f.rom
|
||||
# German locale: brd.rom
|
||||
#
|
||||
# Built-in fallbacks (roms/roms.hpp:46516-46538):
|
||||
# All 22 ROMs have compiled-in defaults. The core prepends "_default_" to
|
||||
# the filename and looks up the builtin_rom map when no external file is found.
|
||||
# This means the core works out of the box without any user-supplied ROMs.
|
||||
#
|
||||
# TOSEC alternate names (core/core.hpp:80-118):
|
||||
# The core tries TOSEC naming conventions as fallback before using built-in ROMs.
|
||||
# For example exos21.rom -> "Expandible OS v2.1 (1985)(Intelligent Software).bin"
|
||||
# CPC ROMs can also be split into page-sized files (OS.ROM + BASIC.ROM).
|
||||
|
||||
notes: |
|
||||
All ROMs go under <system_dir>/ep128emu/roms/. The core has built-in ROM
|
||||
fallbacks for every file, so it works without any user-supplied ROMs.
|
||||
External ROMs provide byte-exact originals vs the built-in copies.
|
||||
|
||||
Enterprise EP128 is the default machine. EP64 is selected when content
|
||||
requires it. Machine type can also be forced via core options.
|
||||
|
||||
Hungarian and German locale ROMs are loaded automatically when content
|
||||
metadata indicates the locale. The IS-DOS disk system is an alternative
|
||||
to the standard EXDOS disk controller.
|
||||
|
||||
files:
|
||||
# ============================================================
|
||||
# Enterprise 64/128 - EXOS (Expandible OS)
|
||||
# ============================================================
|
||||
|
||||
- name: exos21.rom
|
||||
path: ep128emu/roms/exos21.rom
|
||||
md5: f36f24cbb87745fbd2714e4df881db09
|
||||
required: false
|
||||
system: enterprise-128
|
||||
has_builtin: true
|
||||
note: "Enterprise 128 EXOS 2.1. Default OS for EP128 machines."
|
||||
source_ref: "core/core.cpp:234-237"
|
||||
|
||||
- name: exos20.rom
|
||||
path: ep128emu/roms/exos20.rom
|
||||
md5: 5ad3baaad3b5156d6b60b34229a676fb
|
||||
required: false
|
||||
system: enterprise-64
|
||||
has_builtin: true
|
||||
note: "Enterprise 64 EXOS 2.0. Used when EP64 machine type is selected."
|
||||
source_ref: "core/core.cpp:226-229"
|
||||
|
||||
- name: exos24uk.rom
|
||||
path: ep128emu/roms/exos24uk.rom
|
||||
md5: 55af78f877a21ca45eb2df68a74fcc60
|
||||
required: false
|
||||
system: enterprise-128
|
||||
has_builtin: true
|
||||
note: "Enterprise 128 EXOS 2.4 (UK). Used when enhanced ROM mode is enabled. 64K, loaded across segments 0-3."
|
||||
source_ref: "core/core.cpp:214-221"
|
||||
|
||||
# ============================================================
|
||||
# Enterprise 64/128 - BASIC interpreter
|
||||
# ============================================================
|
||||
|
||||
- name: basic21.rom
|
||||
path: ep128emu/roms/basic21.rom
|
||||
md5: e972fe42b398c9ff1d93ff014786aec6
|
||||
required: false
|
||||
system: enterprise-128
|
||||
has_builtin: true
|
||||
note: "Enterprise 128 BASIC 2.1. Loaded when cartridge mode is active (default)."
|
||||
source_ref: "core/core.cpp:248,276"
|
||||
|
||||
- name: basic20.rom
|
||||
path: ep128emu/roms/basic20.rom
|
||||
md5: 8e18edce4a7acb2c33cc0ab18f988482
|
||||
required: false
|
||||
system: enterprise-64
|
||||
has_builtin: true
|
||||
note: "Enterprise 64 BASIC 2.0. Used with EP64 machine type."
|
||||
source_ref: "core/core.cpp:246,264,274"
|
||||
|
||||
# ============================================================
|
||||
# Enterprise 64/128 - disk controllers
|
||||
# ============================================================
|
||||
|
||||
- name: exdos13.rom
|
||||
path: ep128emu/roms/exdos13.rom
|
||||
md5: ddff70c014d1958dc75378b6c9aab6f8
|
||||
required: false
|
||||
system: enterprise-128
|
||||
has_builtin: true
|
||||
note: "EXDOS 1.3 disk controller. Loaded for EP128_DISK and EP64_DISK modes. 32K across segments 0x20-0x21."
|
||||
source_ref: "core/core.cpp:303-306"
|
||||
|
||||
- name: exdos14isdos10uk.rom
|
||||
path: ep128emu/roms/exdos14isdos10uk.rom
|
||||
required: false
|
||||
system: enterprise-128
|
||||
has_builtin: true
|
||||
note: "EXDOS 1.4 + IS-DOS 1.0 (UK). Used for IS-DOS disk mode instead of exdos13.rom."
|
||||
source_ref: "core/core.cpp:295-298"
|
||||
|
||||
# ============================================================
|
||||
# Enterprise 64/128 - file I/O and extensions
|
||||
# ============================================================
|
||||
|
||||
- name: epfileio.rom
|
||||
path: ep128emu/roms/epfileio.rom
|
||||
md5: a68ebcbc73a4d2178d755b7755bf18fe
|
||||
required: false
|
||||
system: enterprise-128
|
||||
has_builtin: true
|
||||
bundled: true
|
||||
note: "Direct file I/O extension. Loaded for EP128_FILE and EP64_FILE modes. Source included in roms/ directory."
|
||||
source_ref: "core/core.cpp:283-284"
|
||||
|
||||
- name: zt19uk.rom
|
||||
path: ep128emu/roms/zt19uk.rom
|
||||
md5: 228540b6be83ae2acd7569c8ff0f91d0
|
||||
required: false
|
||||
system: enterprise-128
|
||||
has_builtin: true
|
||||
note: "ZozoTools 1.9 (UK). Loaded for DTF (direct tape file) mode. 32K across segments 0x40-0x41."
|
||||
source_ref: "core/core.cpp:287-290"
|
||||
|
||||
# ============================================================
|
||||
# Enterprise 64/128 - locale extensions
|
||||
# ============================================================
|
||||
|
||||
- name: hun.rom
|
||||
path: ep128emu/roms/hun.rom
|
||||
md5: 22167938f142c222f40992839aa21a06
|
||||
required: false
|
||||
system: enterprise-128
|
||||
has_builtin: true
|
||||
note: "Hungarian language extension. Auto-loaded when content locale is Hungarian."
|
||||
source_ref: "core/core.cpp:242-243"
|
||||
|
||||
- name: epdos16f.rom
|
||||
path: ep128emu/roms/epdos16f.rom
|
||||
required: false
|
||||
system: enterprise-128
|
||||
has_builtin: true
|
||||
note: "EP-DOS 1.6f. Provides HFONT and CLKOFF for Hungarian locale. 32K across segments 0x06-0x07."
|
||||
source_ref: "core/core.cpp:252-255"
|
||||
|
||||
- name: brd.rom
|
||||
path: ep128emu/roms/brd.rom
|
||||
md5: 6af0402906944fd134004b85097c8524
|
||||
required: false
|
||||
system: enterprise-128
|
||||
has_builtin: true
|
||||
note: "German (BRD) language extension. Auto-loaded when content locale is German."
|
||||
source_ref: "core/core.cpp:260-261"
|
||||
|
||||
# ============================================================
|
||||
# Enterprise 64/128 - optional extras (in .info, not in source)
|
||||
# ============================================================
|
||||
|
||||
- name: epd19hft.rom
|
||||
path: ep128emu/roms/epd19hft.rom
|
||||
md5: 12cfc9c7e48c8a16c2e09edbd926d467
|
||||
required: false
|
||||
system: enterprise-128
|
||||
note: "EP-DOS 1.9 with Hungarian font. Listed in .info file as optional firmware."
|
||||
source_ref: "ep128emu_core_libretro.info:firmware8"
|
||||
|
||||
- name: zt19hfnt.rom
|
||||
path: ep128emu/roms/zt19hfnt.rom
|
||||
md5: 653daaf7b9b29c2c4e577f489580f247
|
||||
required: false
|
||||
system: enterprise-128
|
||||
note: "ZozoTools 1.9 with Hungarian font. Listed in .info file as optional firmware."
|
||||
source_ref: "ep128emu_core_libretro.info:firmware9"
|
||||
|
||||
# ============================================================
|
||||
# Videoton TVC
|
||||
# ============================================================
|
||||
|
||||
- name: tvc22_sys.rom
|
||||
path: ep128emu/roms/tvc22_sys.rom
|
||||
md5: 8c54285f541930cde766069942bad0f2
|
||||
required: false
|
||||
system: videoton-tvc
|
||||
has_builtin: true
|
||||
note: "TVC system ROM v2.2. Main BIOS for all TVC modes."
|
||||
source_ref: "core/core.cpp:313-314"
|
||||
|
||||
- name: tvc22_ext.rom
|
||||
path: ep128emu/roms/tvc22_ext.rom
|
||||
md5: 5ce95a26ceed5bec73995d83568da9cf
|
||||
required: false
|
||||
system: videoton-tvc
|
||||
has_builtin: true
|
||||
note: "TVC extension ROM v2.2. Loaded alongside tvc22_sys.rom."
|
||||
source_ref: "core/core.cpp:315-316"
|
||||
|
||||
- name: tvcfileio.rom
|
||||
path: ep128emu/roms/tvcfileio.rom
|
||||
md5: a2cf86ba8e7fc58b242137fe59036832
|
||||
required: false
|
||||
system: videoton-tvc
|
||||
has_builtin: true
|
||||
bundled: true
|
||||
note: "TVC direct file I/O extension. Used for TVC64_FILE mode. Source included in roms/ directory."
|
||||
source_ref: "core/core.cpp:319-320"
|
||||
|
||||
- name: tvc_dos12d.rom
|
||||
path: ep128emu/roms/tvc_dos12d.rom
|
||||
md5: 88dc7876d584f90e4106f91444ab23b7
|
||||
required: false
|
||||
system: videoton-tvc
|
||||
has_builtin: true
|
||||
note: "TVC DOS 1.2d. Loaded for TVC64_DISK mode."
|
||||
source_ref: "core/core.cpp:324-325"
|
||||
|
||||
# ============================================================
|
||||
# Amstrad CPC
|
||||
# ============================================================
|
||||
|
||||
- name: cpc464.rom
|
||||
path: ep128emu/roms/cpc464.rom
|
||||
md5: a993f85b88ac4350cf4d41554e87fe4f
|
||||
required: false
|
||||
system: amstrad-cpc
|
||||
has_builtin: true
|
||||
note: "CPC 464 combined ROM (OS + BASIC). 32K loaded at segments 0x10 (OS) and 0x00 (BASIC) with offset."
|
||||
source_ref: "core/core.cpp:335-338"
|
||||
|
||||
- name: cpc664.rom
|
||||
path: ep128emu/roms/cpc664.rom
|
||||
md5: 5a384a2310f472c7857888371c00ed66
|
||||
required: false
|
||||
system: amstrad-cpc
|
||||
has_builtin: true
|
||||
note: "CPC 664 combined ROM (OS + BASIC). Used for CPC_664_DISK mode."
|
||||
source_ref: "core/core.cpp:343-346"
|
||||
|
||||
- name: cpc6128.rom
|
||||
path: ep128emu/roms/cpc6128.rom
|
||||
md5: b96280dc6c95a48857b4b8eb931533ae
|
||||
required: false
|
||||
system: amstrad-cpc
|
||||
has_builtin: true
|
||||
note: "CPC 6128 combined ROM (OS + BASIC). Default CPC machine when no specific model requested."
|
||||
source_ref: "core/core.cpp:352-355"
|
||||
|
||||
- name: cpc_amsdos.rom
|
||||
path: ep128emu/roms/cpc_amsdos.rom
|
||||
md5: 25629dfe870d097469c217b95fdc1c95
|
||||
required: false
|
||||
system: amstrad-cpc
|
||||
has_builtin: true
|
||||
note: "AMSDOS disk controller ROM. Loaded for CPC_DISK and CPC_664_DISK modes."
|
||||
source_ref: "core/core.cpp:359-360"
|
||||
|
||||
# ============================================================
|
||||
# ZX Spectrum
|
||||
# ============================================================
|
||||
|
||||
- name: zx128.rom
|
||||
path: ep128emu/roms/zx128.rom
|
||||
md5: 85fede415f4294cc777517d7eada482e
|
||||
required: false
|
||||
system: zx-spectrum
|
||||
has_builtin: true
|
||||
note: "ZX Spectrum 128K ROM. 32K loaded at segments 0x00-0x01."
|
||||
source_ref: "core/core.cpp:382-385"
|
||||
|
||||
- name: zx48.rom
|
||||
path: ep128emu/roms/zx48.rom
|
||||
md5: 4c42a2f075212361c3117015b107ff68
|
||||
required: false
|
||||
system: zx-spectrum
|
||||
has_builtin: true
|
||||
note: "ZX Spectrum 48K ROM. Used for ZX16 and ZX48 modes."
|
||||
source_ref: "core/core.cpp:389-390"
|
||||
1343
emulators/fbneo.yml
Normal file
1343
emulators/fbneo.yml
Normal file
File diff suppressed because it is too large
Load Diff
52
emulators/fceumm.yml
Normal file
52
emulators/fceumm.yml
Normal file
@@ -0,0 +1,52 @@
|
||||
emulator: FCEUmm
|
||||
type: libretro
|
||||
source: "https://github.com/libretro/libretro-fceumm"
|
||||
systems: [nintendo-nes, nintendo-fds]
|
||||
|
||||
notes: |
|
||||
FCEUmm (FCE Ultra mappers modified) is a NES/Famicom emulator.
|
||||
NES cartridge games need no BIOS. Famicom Disk System games require
|
||||
the FDS BIOS ROM (disksys.rom, 8 KB) loaded from the system directory.
|
||||
Game Genie emulation is an optional core feature (disabled by default)
|
||||
that requires gamegenie.nes in the system directory.
|
||||
An optional external palette file (nes.pal, 192 bytes, 64 RGB triplets)
|
||||
can override the built-in NES palette when the core option is set to Custom.
|
||||
NstDatabase.xml is NOT used by FCEUmm (that is Nestopia's database).
|
||||
|
||||
File path construction: src/general.c FCEU_MakeFName() joins the
|
||||
system directory (RETRO_ENVIRONMENT_GET_SYSTEM_DIRECTORY) with each
|
||||
filename directly - no subdirectories.
|
||||
|
||||
files:
|
||||
# --- Famicom Disk System BIOS (required for FDS games) ---
|
||||
- name: "disksys.rom"
|
||||
system: nintendo-fds
|
||||
description: "FDS BIOS ROM"
|
||||
required: true
|
||||
size: 8192
|
||||
md5: "ca30b50f880eb660a320674ed365ef7a"
|
||||
sha1: "57fe1bdee955bb48d357e463ccbf129496930b62"
|
||||
source_ref: "src/fds.c:636-667 (FDSLoad), src/general.c:64-66 (FCEUMKF_FDSROM)"
|
||||
notes: "Loaded at 0xE000, mapped as 8 KB PRG bank 0. Load fails with error if missing or short read."
|
||||
|
||||
# --- Game Genie ROM (optional, core option fceumm_game_genie) ---
|
||||
- name: "gamegenie.nes"
|
||||
system: nintendo-nes
|
||||
description: "Game Genie add-on cartridge ROM"
|
||||
required: false
|
||||
size: 24592
|
||||
md5: "7f98d77d7a094ad7d069b74bd553ec98"
|
||||
sha1: "f430a0d752a9fa0c7032db8131f9090d18f71779"
|
||||
source_ref: "src/cart.c:351-389 (OpenGenie), src/general.c:60-62 (FCEUMKF_GGROM)"
|
||||
notes: "iNES format ROM (4 KB PRG + 256 bytes CHR). Core option disabled by default. Does not apply to FDS or arcade content."
|
||||
|
||||
# --- Custom palette (optional, core option fceumm_palette) ---
|
||||
- name: "nes.pal"
|
||||
system: nintendo-nes
|
||||
description: "External NES color palette"
|
||||
required: false
|
||||
size: 192
|
||||
md5: "aaf3666e4ed478e2964b46d6a7aa27ad"
|
||||
sha1: "37027d92e1015b82a7dc5c43e9f1649a961577ab"
|
||||
source_ref: "src/general.c:68-70 (FCEUMKF_PALETTE), src/drivers/libretro/libretro.c:1791"
|
||||
notes: "64 RGB triplets (64 x 3 bytes). Only loaded when palette core option is set to Custom. Multiple valid palettes exist."
|
||||
42
emulators/fixgb.yml
Normal file
42
emulators/fixgb.yml
Normal file
@@ -0,0 +1,42 @@
|
||||
emulator: fixGB
|
||||
type: libretro
|
||||
source: "https://github.com/libretro/fixGB"
|
||||
cores:
|
||||
- fixgb
|
||||
systems:
|
||||
- nintendo-gbc
|
||||
|
||||
notes: |
|
||||
fixGB is a Game Boy / Game Boy Color emulator by FIX94, currently at
|
||||
alpha v0.8.1. It supports .gb, .gbc, and .gbs (Game Boy Sound) files.
|
||||
|
||||
The core optionally loads "gbc_bios.bin" (CGB boot ROM) from the
|
||||
system directory. In the libretro port, doOpenCGBBootrom() in
|
||||
libretro.c:246-254 resolves the path via
|
||||
RETRO_ENVIRONMENT_GET_SYSTEM_DIRECTORY + "/gbc_bios.bin".
|
||||
|
||||
memInitCGBBootrom() in mem.c:567-586 validates the file: it must be
|
||||
at least 0x900 (2304) bytes. If present, 0x900 bytes are read into
|
||||
memCGBBootrom[] and cgbBootromEnabled is set to true. The boot ROM
|
||||
plays the Game Boy Color startup animation before handing off to the
|
||||
game.
|
||||
|
||||
If the file is missing or too small, the core skips the boot sequence
|
||||
and starts games directly. The BIOS is optional -- games run fine
|
||||
without it.
|
||||
|
||||
Despite the core name suggesting general Game Boy support, the only
|
||||
BIOS file referenced is the GBC boot ROM. There is no DMG (original
|
||||
Game Boy) boot ROM support in the source.
|
||||
|
||||
files:
|
||||
# --- GBC boot ROM (optional, enables startup animation) ---
|
||||
- name: "gbc_bios.bin"
|
||||
system: nintendo-gbc
|
||||
description: "Game Boy Color (CGB-001) boot ROM"
|
||||
required: false
|
||||
size: 2304
|
||||
md5: "dbfce9db9deaa2567f6a84fde55f9680"
|
||||
sha1: "1293d68bf9643bc4f36954c1e80e38f39864528d"
|
||||
source_ref: "libretro/libretro.c:246-254 (doOpenCGBBootrom), mem.c:567-586 (memInitCGBBootrom)"
|
||||
notes: "Must be at least 0x900 (2304) bytes. Only the first 0x900 bytes are read. Enables cgbBootromEnabled flag for boot animation. Disabled via memDisableCGBBootrom() when register write occurs."
|
||||
185
emulators/flycast.yml
Normal file
185
emulators/flycast.yml
Normal file
@@ -0,0 +1,185 @@
|
||||
emulator: Flycast
|
||||
type: standalone + libretro
|
||||
source: "https://github.com/flyinghead/flycast"
|
||||
systems:
|
||||
- sega-dreamcast
|
||||
- sega-naomi
|
||||
- sega-naomi2
|
||||
- sega-atomiswave
|
||||
- sega-systemsp
|
||||
|
||||
notes: |
|
||||
Flycast has a built-in HLE BIOS (reios) for Dreamcast that can boot most
|
||||
games without real BIOS files. Arcade systems (NAOMI, NAOMI2, Atomiswave,
|
||||
System SP) require MAME-format BIOS ROM archives.
|
||||
Hikaru and Triforce are NOT supported by Flycast.
|
||||
|
||||
BIOS file search uses prefix + name pattern. The emulator looks in configured
|
||||
"Content Path" directories for these files (standalone) or the system directory
|
||||
(libretro).
|
||||
|
||||
File loading logic: core/hw/flashrom/nvmem.cpp loadFiles() and
|
||||
core/hw/naomi/naomi_cart.cpp loadBios().
|
||||
|
||||
The prefix is determined by platform (nvmem.cpp:36-49):
|
||||
Dreamcast -> dc_
|
||||
NAOMI -> naomi_
|
||||
NAOMI 2 -> naomi2_
|
||||
Atomiswave -> aw_
|
||||
|
||||
Boot ROM search pattern (nvmem.cpp:287):
|
||||
{prefix}boot.bin, {prefix}boot.bin.bin, {prefix}bios.bin, {prefix}bios.bin.bin
|
||||
|
||||
files:
|
||||
# -------------------------------------------------------
|
||||
# Sega Dreamcast
|
||||
# -------------------------------------------------------
|
||||
- name: "dc_boot.bin"
|
||||
system: sega-dreamcast
|
||||
required: false
|
||||
size: 2097152 # 2 MB
|
||||
note: "Dreamcast boot ROM. HLE BIOS (reios) used as fallback."
|
||||
source_ref: "core/hw/flashrom/nvmem.cpp:287"
|
||||
|
||||
- name: "dc_bios.bin"
|
||||
system: sega-dreamcast
|
||||
required: false
|
||||
size: 2097152
|
||||
note: "Alternate name for Dreamcast boot ROM."
|
||||
source_ref: "core/hw/flashrom/nvmem.cpp:287"
|
||||
|
||||
- name: "dc_flash.bin"
|
||||
system: sega-dreamcast
|
||||
required: false
|
||||
size: 131072 # 128 KB
|
||||
note: "Dreamcast flash memory (settings, saves). Created if missing."
|
||||
source_ref: "core/hw/flashrom/nvmem.cpp:246"
|
||||
|
||||
# -------------------------------------------------------
|
||||
# Sega NAOMI
|
||||
# -------------------------------------------------------
|
||||
- name: "naomi_boot.bin"
|
||||
system: sega-naomi
|
||||
required: false
|
||||
size: 2097152 # 2 MB
|
||||
note: "NAOMI boot ROM (flat binary). Alternative to naomi.zip."
|
||||
source_ref: "core/hw/flashrom/nvmem.cpp:287"
|
||||
|
||||
- name: "naomi.zip"
|
||||
system: sega-naomi
|
||||
required: true
|
||||
note: >
|
||||
NAOMI system BIOS archive (MAME format). Contains region-specific
|
||||
BIOS ROMs: epr-21576h.ic27 (Japan), epr-21577h.ic27 (USA),
|
||||
epr-21578h.ic27 (Export), epr-21579d.ic27 (Korea).
|
||||
source_ref: "core/hw/naomi/naomi_roms.cpp:87-143"
|
||||
|
||||
# NAOMI special BIOS sets (game-specific, loaded from game archive or standalone)
|
||||
- name: "airlbios.zip"
|
||||
system: sega-naomi
|
||||
required: false
|
||||
note: "Airline Pilots Deluxe BIOS. epr-21802.ic27 (Export), epr-21801.ic27 (USA)."
|
||||
source_ref: "core/hw/naomi/naomi_roms.cpp:30-37"
|
||||
|
||||
- name: "f355bios.zip"
|
||||
system: sega-naomi
|
||||
required: false
|
||||
note: "Ferrari F355 Challenge BIOS. Japan/USA/Export variants."
|
||||
source_ref: "core/hw/naomi/naomi_roms.cpp:49-58"
|
||||
|
||||
- name: "f355dlx.zip"
|
||||
system: sega-naomi
|
||||
required: false
|
||||
note: "Ferrari F355 Challenge Deluxe BIOS. Japan/USA/Export variants."
|
||||
source_ref: "core/hw/naomi/naomi_roms.cpp:60-74"
|
||||
|
||||
- name: "hod2bios.zip"
|
||||
system: sega-naomi
|
||||
required: false
|
||||
note: "House of the Dead 2 BIOS. Japan/USA/Export variants."
|
||||
source_ref: "core/hw/naomi/naomi_roms.cpp:76-85"
|
||||
|
||||
- name: "naomigd.zip"
|
||||
system: sega-naomi
|
||||
required: false
|
||||
note: "NAOMI GD-ROM BIOS. Used by GD-ROM based NAOMI games."
|
||||
source_ref: "core/hw/naomi/naomi_roms.cpp:158-181"
|
||||
|
||||
# -------------------------------------------------------
|
||||
# Sega NAOMI 2
|
||||
# -------------------------------------------------------
|
||||
- name: "naomi2_boot.bin"
|
||||
system: sega-naomi2
|
||||
required: false
|
||||
size: 2097152 # 2 MB
|
||||
note: "NAOMI 2 boot ROM (flat binary). Alternative to naomi2.zip."
|
||||
source_ref: "core/hw/flashrom/nvmem.cpp:287"
|
||||
|
||||
- name: "naomi2.zip"
|
||||
system: sega-naomi2
|
||||
required: true
|
||||
note: >
|
||||
NAOMI 2 system BIOS archive (MAME format). Contains region-specific
|
||||
ROMs: epr-23605c.ic27 (Japan), epr-23607c.ic27 (USA),
|
||||
epr-23608c.ic27 (Export), epr-23609b.ic27 (Korea).
|
||||
source_ref: "core/hw/naomi/naomi_roms.cpp:183-201"
|
||||
|
||||
# -------------------------------------------------------
|
||||
# Sega Atomiswave
|
||||
# -------------------------------------------------------
|
||||
- name: "awbios.zip"
|
||||
system: sega-atomiswave
|
||||
required: true
|
||||
note: >
|
||||
Atomiswave system BIOS archive (MAME format). Contains
|
||||
bios0.ic23 (Sammy, 128 KB). BIOS size is 128 KB.
|
||||
source_ref: "core/hw/naomi/naomi_roms.cpp:39-48"
|
||||
|
||||
# -------------------------------------------------------
|
||||
# Sega System SP
|
||||
# -------------------------------------------------------
|
||||
- name: "segasp.zip"
|
||||
system: sega-systemsp
|
||||
required: true
|
||||
note: >
|
||||
Sega System SP BIOS archive (MAME format). Contains
|
||||
epr-24328a.ic50 (BOOT VER 2.01, 2 MB) and region-specific
|
||||
EEPROM files mb_eeprom_us.ic54s, mb_eeprom_exp.ic54s.
|
||||
source_ref: "core/hw/naomi/naomi_roms.cpp:204-218"
|
||||
|
||||
platform_details:
|
||||
dreamcast:
|
||||
bios_size: 2097152 # 2 MB
|
||||
flash_size: 131072 # 128 KB
|
||||
ram_size: 16777216 # 16 MB (32 MB with mod)
|
||||
hle_available: true
|
||||
source_ref: "core/emulator.cpp:446-452"
|
||||
|
||||
naomi:
|
||||
bios_size: 2097152 # 2 MB
|
||||
flash_size: 32768 # 32 KB (battery-backed SRAM)
|
||||
ram_size: 33554432 # 32 MB
|
||||
hle_available: false
|
||||
source_ref: "core/emulator.cpp:453-459"
|
||||
|
||||
naomi2:
|
||||
bios_size: 2097152 # 2 MB
|
||||
flash_size: 32768 # 32 KB (battery-backed SRAM)
|
||||
ram_size: 33554432 # 32 MB
|
||||
eram_size: 33554432 # 32 MB (ELAN)
|
||||
hle_available: false
|
||||
source_ref: "core/emulator.cpp:460-467"
|
||||
|
||||
atomiswave:
|
||||
bios_size: 131072 # 128 KB
|
||||
flash_size: 131072 # 128 KB (SRAM)
|
||||
ram_size: 16777216 # 16 MB
|
||||
hle_available: false
|
||||
source_ref: "core/emulator.cpp:468-474"
|
||||
|
||||
systemsp:
|
||||
bios_size: 2097152 # 2 MB
|
||||
flash_size: 131072 # 128 KB (SRAM)
|
||||
ram_size: 33554432 # 32 MB
|
||||
hle_available: false
|
||||
source_ref: "core/emulator.cpp:475-481"
|
||||
185
emulators/fmsx.yml
Normal file
185
emulators/fmsx.yml
Normal file
@@ -0,0 +1,185 @@
|
||||
emulator: fMSX
|
||||
type: libretro
|
||||
source: "https://github.com/libretro/fmsx-libretro"
|
||||
cores:
|
||||
- fmsx
|
||||
systems:
|
||||
- msx
|
||||
- msx2
|
||||
- msx2plus
|
||||
|
||||
# fMSX is a standalone MSX emulator by Marat Fayzullin, ported to libretro.
|
||||
# Supports MSX1, MSX2, and MSX2+ hardware models. Default model is MSX2+.
|
||||
#
|
||||
# ROM loading (fMSX/MSX.c:688-750, ResetMSX):
|
||||
# The core sets ProgDir = RetroArch system_directory, then chdir(ProgDir)
|
||||
# before calling LoadROM(). All BIOS files must be placed directly in the
|
||||
# system directory root (no subdirectories).
|
||||
#
|
||||
# Model selection (libretro.c:731-757):
|
||||
# Core option "fmsx_machine_type" picks MSX1/MSX2/MSX2+. Default is MSX2+.
|
||||
# MSX1 loads MSX.ROM (32 KB main BIOS).
|
||||
# MSX2 loads MSX2.ROM (32 KB) + MSX2EXT.ROM (16 KB extension).
|
||||
# MSX2+ loads MSX2P.ROM (32 KB) + MSX2PEXT.ROM (16 KB extension).
|
||||
#
|
||||
# Disk support (fMSX/MSX.c:780):
|
||||
# DISK.ROM is loaded when "fmsx_simbdos" option is enabled (MSX_PATCHBDOS).
|
||||
# Without it, .dsk files won't boot. The core shows a warning if DISK.ROM
|
||||
# is missing when loading disk content.
|
||||
#
|
||||
# Optional ROMs (fMSX/MSX.c:526-582):
|
||||
# KANJI.ROM - Kanji font (128 KB), loaded unconditionally if present
|
||||
# FMPAC.ROM - FM-PAC cartridge (64 KB), loaded into first free slot
|
||||
# MSXDOS2.ROM - MSX-DOS 2 (64 KB), loaded when "fmsx_dos2" enabled and MSX2+
|
||||
# PAINTER.ROM - Paint utility (64 KB), loaded for MSX2/MSX2+
|
||||
# RS232.ROM - RS-232C serial (16 KB + 256 B), loaded into slot 3:3
|
||||
# GMASTER2.ROM - Konami GameMaster2 cart, loaded when "fmsx_game_master" enabled
|
||||
# GMASTER.ROM - Konami GameMaster (fallback if GMASTER2.ROM missing)
|
||||
# CMOS.ROM - RTC settings persistence, saved/loaded automatically
|
||||
#
|
||||
# All ROMs listed below are bundled in fMSX/ROMs/ inside the repo source.
|
||||
# They are the standard C-BIOS-compatible generic MSX BIOS set from fMSX.
|
||||
|
||||
notes: |
|
||||
Place all ROM files directly in the RetroArch system directory. No subdirectory
|
||||
needed. The core does chdir() to system_dir before loading.
|
||||
|
||||
The default model is MSX2+, which needs MSX2P.ROM and MSX2PEXT.ROM. If you only
|
||||
play cartridge ROMs, these two files are sufficient. For disk games (.dsk), also
|
||||
add DISK.ROM and enable "Simulate DiskROM" in core options.
|
||||
|
||||
KANJI.ROM and FMPAC.ROM are loaded automatically when present, no option needed.
|
||||
|
||||
files:
|
||||
# -- MSX1 BIOS --
|
||||
|
||||
- name: MSX.ROM
|
||||
size: 32768
|
||||
md5: aa95aea2563cd5ec0a0919b44cc17d47
|
||||
sha1: 409e82adac40f6bdd18eb6c84e8b2fbdc7fb5498
|
||||
required: true
|
||||
system: msx
|
||||
bundled: true
|
||||
note: "MSX1 main BIOS (32 KB). Loaded for MSX1 model (fMSX/MSX.c:693)."
|
||||
source_ref: "fMSX/ROMs/MSX.ROM"
|
||||
|
||||
# -- MSX2 BIOS --
|
||||
|
||||
- name: MSX2.ROM
|
||||
size: 32768
|
||||
md5: ec3a01c91f24fbddcbcab0ad301bc9ef
|
||||
sha1: 6103b39f1e38d1aa2d84b1c3219c44f1abb5436e
|
||||
required: true
|
||||
system: msx2
|
||||
bundled: true
|
||||
note: "MSX2 main BIOS (32 KB). Loaded for MSX2 model (fMSX/MSX.c:709)."
|
||||
source_ref: "fMSX/ROMs/MSX2.ROM"
|
||||
|
||||
- name: MSX2EXT.ROM
|
||||
size: 16384
|
||||
md5: 2183c2aff17cf4297bdb496de78c2e8a
|
||||
sha1: 5c1f9c7fb655e43d38e5dd1fcc6b942b2ff68b02
|
||||
required: true
|
||||
system: msx2
|
||||
bundled: true
|
||||
note: "MSX2 extension BIOS (16 KB). Loaded alongside MSX2.ROM (fMSX/MSX.c:710)."
|
||||
source_ref: "fMSX/ROMs/MSX2EXT.ROM"
|
||||
|
||||
# -- MSX2+ BIOS (default model) --
|
||||
|
||||
- name: MSX2P.ROM
|
||||
size: 32768
|
||||
md5: 6d8c0ca64e726c82a4b726e9b01cdf1e
|
||||
sha1: e2fbd56e42da637609d23ae9df9efd1b4241b18a
|
||||
required: true
|
||||
system: msx2plus
|
||||
bundled: true
|
||||
note: "MSX2+ main BIOS (32 KB). Loaded for MSX2+ model, the default (fMSX/MSX.c:731)."
|
||||
source_ref: "fMSX/ROMs/MSX2P.ROM"
|
||||
|
||||
- name: MSX2PEXT.ROM
|
||||
size: 16384
|
||||
md5: 7c8243c71d8f143b2531f01afa6a05dc
|
||||
sha1: fe0254cbfc11405b79e7c86c7769bd6322b04995
|
||||
required: true
|
||||
system: msx2plus
|
||||
bundled: true
|
||||
note: "MSX2+ extension BIOS (16 KB). Loaded alongside MSX2P.ROM (fMSX/MSX.c:732)."
|
||||
source_ref: "fMSX/ROMs/MSX2PEXT.ROM"
|
||||
|
||||
# -- Disk support --
|
||||
|
||||
- name: DISK.ROM
|
||||
size: 16384
|
||||
md5: 80dcd1ad1a4cf65d64b7ba10504e8190
|
||||
sha1: 032cb1c1c75b9a191fa1230978971698d9d2a17f
|
||||
required: false
|
||||
bundled: true
|
||||
note: "Disk controller BIOS (16 KB). Needed for .dsk content. Enable 'Simulate DiskROM' option (fMSX/MSX.c:780)."
|
||||
source_ref: "fMSX/ROMs/DISK.ROM"
|
||||
|
||||
# -- Optional expansion ROMs --
|
||||
|
||||
- name: FMPAC.ROM
|
||||
size: 65536
|
||||
md5: 6f69cc8b5ed761b03afd78000dfb0e19
|
||||
sha1: 9d789166e3caf28e4742fe933d962e99618c633d
|
||||
required: false
|
||||
bundled: true
|
||||
note: "FM-PAC cartridge ROM (64 KB, YM2413 FM synthesis). Auto-loaded into first free slot (fMSX/MSX.c:557)."
|
||||
source_ref: "fMSX/ROMs/FMPAC.ROM"
|
||||
|
||||
- name: KANJI.ROM
|
||||
size: 131072
|
||||
md5: febe8782b466d7c3b16de6d104826b34
|
||||
sha1: 84a645becec0a25d3ab7a909cde1b242699a8662
|
||||
required: false
|
||||
bundled: true
|
||||
note: "Kanji font ROM (128 KB). Auto-loaded if present, no option needed (fMSX/MSX.c:530)."
|
||||
source_ref: "fMSX/ROMs/KANJI.ROM"
|
||||
|
||||
- name: MSXDOS2.ROM
|
||||
size: 65536
|
||||
md5: 6418d091cd6907bbcf940324339e43bb
|
||||
sha1: c36c9e0f96738a340381e23b4f97245388801a46
|
||||
required: false
|
||||
bundled: true
|
||||
note: "MSX-DOS 2 ROM (64 KB). Loaded when 'fmsx_dos2' option enabled and model is MSX2+ (fMSX/MSX.c:545)."
|
||||
source_ref: "fMSX/ROMs/MSXDOS2.ROM"
|
||||
|
||||
- name: PAINTER.ROM
|
||||
size: 65536
|
||||
md5: 403cdea1cbd2bb24fae506941f8f655e
|
||||
sha1: 7fd2a28c4fdaeb140f3c8c8fb90271b1472c97b9
|
||||
required: false
|
||||
bundled: true
|
||||
note: "Paint utility ROM (64 KB). Auto-loaded for MSX2 and MSX2+ models (fMSX/MSX.c:552)."
|
||||
source_ref: "fMSX/ROMs/PAINTER.ROM"
|
||||
|
||||
- name: RS232.ROM
|
||||
size: 16640
|
||||
md5: 279efd1eae0d358eecd4edc7d9adedf3
|
||||
sha1: 7aec0134ad6a5177f4056fcb6047083e8e00529b
|
||||
required: false
|
||||
bundled: true
|
||||
note: "RS-232C serial interface ROM (16 KB + 256 B). Loaded into slot 3:3 (fMSX/MSX.c:533)."
|
||||
source_ref: "fMSX/ROMs/RS232.ROM"
|
||||
|
||||
# -- GameMaster (not bundled, requires core option) --
|
||||
|
||||
- name: GMASTER2.ROM
|
||||
required: false
|
||||
bundled: false
|
||||
note: "Konami GameMaster2 cartridge ROM. Loaded when 'fmsx_game_master' option enabled (fMSX/MSX.c:576)."
|
||||
|
||||
- name: GMASTER.ROM
|
||||
required: false
|
||||
bundled: false
|
||||
note: "Konami GameMaster cartridge ROM. Fallback if GMASTER2.ROM is missing (fMSX/MSX.c:580)."
|
||||
|
||||
# -- CMOS persistence (auto-generated, not a BIOS) --
|
||||
|
||||
- name: CMOS.ROM
|
||||
required: false
|
||||
bundled: false
|
||||
note: "RTC/CMOS settings. Auto-saved by the core on exit, auto-loaded on start (fMSX/MSX.c:526)."
|
||||
81
emulators/freechaf.yml
Normal file
81
emulators/freechaf.yml
Normal file
@@ -0,0 +1,81 @@
|
||||
emulator: FreeChaF
|
||||
type: libretro
|
||||
source: "https://github.com/libretro/FreeChaF"
|
||||
cores:
|
||||
- freechaf
|
||||
systems:
|
||||
- fairchild-channelf
|
||||
|
||||
notes: |
|
||||
FreeChaF is a Fairchild Channel F emulator ported to libretro.
|
||||
|
||||
BIOS loading is in src/libretro.c:186-208. The core first tries to load
|
||||
sl90025.bin (Channel F II PSU1) at address 0x000. If that fails, it falls
|
||||
back to sl31253.bin (original Channel F PSU1) at the same address. PSU2
|
||||
(sl31254.bin) is always loaded at address 0x400.
|
||||
|
||||
Memory layout from src/memory.h:27-30:
|
||||
0x000-0x3FF PSU1 ROM (sl31253 or sl90025)
|
||||
0x400-0x7FF PSU2 ROM (sl31254)
|
||||
0x800-0x1FFF cartridge ROM
|
||||
0x2000+ VRAM
|
||||
|
||||
If either PSU ROM fails to load, the core switches to experimental HLE
|
||||
(high-level emulation) for that PSU. A warning message is shown to the
|
||||
user recommending real BIOS files. HLE state is tracked per-PSU via
|
||||
hle_state.psu1_hle and hle_state.psu2_hle (src/channelf_hle.c).
|
||||
|
||||
The .info file declares all three firmware files as required (opt=false),
|
||||
but the core does not abort on missing BIOS -- it falls back to HLE.
|
||||
|
||||
files:
|
||||
- name: "sl31253.bin"
|
||||
system: fairchild-channelf
|
||||
required: false
|
||||
md5: ac9804d4c0e9d07e33472e3726ed15c3
|
||||
size: 1024 # 1 KB, fills 0x000-0x3FF
|
||||
note: "Channel F PSU1 ROM (original). Fallback if sl90025.bin is missing."
|
||||
source_ref: "src/libretro.c:192"
|
||||
|
||||
- name: "sl31254.bin"
|
||||
system: fairchild-channelf
|
||||
required: false
|
||||
md5: da98f4bb3242ab80d76629021bb27585
|
||||
size: 1024 # 1 KB, fills 0x400-0x7FF
|
||||
note: "Channel F PSU2 ROM. Always loaded at address 0x400."
|
||||
source_ref: "src/libretro.c:202"
|
||||
|
||||
- name: "sl90025.bin"
|
||||
system: fairchild-channelf
|
||||
required: false
|
||||
md5: 95d339631d867c8f1d15a5f2ec26069d
|
||||
size: 1024 # 1 KB, fills 0x000-0x3FF
|
||||
note: "Channel F II PSU1 ROM. Tried first, preferred over sl31253.bin."
|
||||
source_ref: "src/libretro.c:186"
|
||||
|
||||
platform_details:
|
||||
bios_mapping:
|
||||
target: "0x000-0x7FF in 64K memory space"
|
||||
source_ref: "src/memory.h:27-29, src/memory.c:30-61"
|
||||
notes: |
|
||||
MEMORY_loadSysROM_libretro() reads the file and copies it into
|
||||
Memory[] at the given address offset. PSU1 is loaded at 0x000,
|
||||
PSU2 at 0x400. The loader caps file size to (MEMORY_SIZE - address)
|
||||
to prevent overflow. MEMORY_RAMStart is advanced past the loaded
|
||||
ROM to protect it from writes.
|
||||
|
||||
hle_fallback:
|
||||
source_ref: "src/channelf_hle.c"
|
||||
notes: |
|
||||
When BIOS files are missing, FreeChaF uses HLE to emulate the
|
||||
PSU routines in software. This is marked as experimental and may
|
||||
cause compatibility issues with some games. Each PSU can
|
||||
independently fall back to HLE.
|
||||
|
||||
load_priority:
|
||||
source_ref: "src/libretro.c:186-198"
|
||||
notes: |
|
||||
PSU1 loading order: sl90025.bin (Channel F II) first, then
|
||||
sl31253.bin (original Channel F) as fallback. If both fail,
|
||||
HLE is used. sl90025.bin is the preferred BIOS as it includes
|
||||
Channel F II improvements.
|
||||
71
emulators/freeintv.yml
Normal file
71
emulators/freeintv.yml
Normal file
@@ -0,0 +1,71 @@
|
||||
emulator: FreeIntv
|
||||
type: libretro
|
||||
source: "https://github.com/libretro/FreeIntv"
|
||||
cores:
|
||||
- freeintv
|
||||
systems:
|
||||
- intellivision
|
||||
|
||||
notes: |
|
||||
FreeIntv is a Mattel Intellivision emulator for libretro.
|
||||
|
||||
BIOS loading happens in retro_init() (src/libretro.c:1166-1174). The core
|
||||
calls retro_get_system_directory() then joins exec.bin and grom.bin paths
|
||||
directly. No subdirectory, no core option to disable BIOS loading.
|
||||
|
||||
loadExec() in src/intv.c:47-71 reads exec.bin as big-endian 16-bit words
|
||||
into memory range 0x1000-0x1FFF (Executive ROM, 8 KB file).
|
||||
|
||||
loadGrom() in src/intv.c:73-98 reads grom.bin as raw bytes into memory
|
||||
range 0x3000-0x37FF (Graphics ROM, 2 KB file).
|
||||
|
||||
Both files are required. Without them the core prints an error and shows
|
||||
"PUT GROM/EXEC IN SYSTEM DIRECTORY" on the OSD, but does not abort.
|
||||
Games will not run correctly without both BIOS files.
|
||||
|
||||
The .info file declares firmware_count = 2 with both marked opt = false.
|
||||
|
||||
No ECS (Entertainment Computer System) BIOS support exists in this core.
|
||||
There is no ecs.bin loading code anywhere in the source.
|
||||
|
||||
files:
|
||||
- name: "exec.bin"
|
||||
system: intellivision
|
||||
required: true
|
||||
size: 8192 # 8 KB (4096 x 16-bit words, 0x1000-0x1FFF)
|
||||
md5: 62e761035cb657903761800f4437b8af
|
||||
note: "Executive ROM. Big-endian 16-bit words loaded at 0x1000-0x1FFF."
|
||||
source_ref: "src/intv.c:47-71, src/libretro.c:1169"
|
||||
|
||||
- name: "grom.bin"
|
||||
system: intellivision
|
||||
required: true
|
||||
size: 2048 # 2 KB (bytes, 0x3000-0x37FF)
|
||||
md5: 0cd5946c6473e42e8e4c2137785e427f
|
||||
note: "Graphics ROM. Raw bytes loaded at 0x3000-0x37FF."
|
||||
source_ref: "src/intv.c:73-98, src/libretro.c:1173"
|
||||
|
||||
platform_details:
|
||||
bios_mapping:
|
||||
exec:
|
||||
target: "0x1000-0x1FFF (Executive ROM)"
|
||||
format: "big-endian 16-bit words"
|
||||
source_ref: "src/intv.c:55-58"
|
||||
grom:
|
||||
target: "0x3000-0x37FF (Graphics ROM)"
|
||||
format: "raw 8-bit bytes"
|
||||
source_ref: "src/intv.c:81-84"
|
||||
notes: |
|
||||
Memory[] is a 64K array of unsigned int (src/memory.c:26).
|
||||
EXEC region (0x1000-0x1FFF) is write-protected in writeMem()
|
||||
(src/memory.c:60-61). GROM region (0x3000-0x37FF) is also
|
||||
write-protected (src/memory.c:62).
|
||||
|
||||
cartridge_loading:
|
||||
formats: "int, bin, rom"
|
||||
methods: "Intellicart (magic byte 0xA8), raw ROM with fingerprint DB"
|
||||
source_ref: "src/cart.c"
|
||||
notes: |
|
||||
Raw ROMs use a fingerprint database (sum of first 256 bytes)
|
||||
to select one of 10 memory map configurations (load0-load9).
|
||||
Intellicart format is auto-detected by 0xA8 magic byte.
|
||||
39
emulators/freej2me.yml
Normal file
39
emulators/freej2me.yml
Normal file
@@ -0,0 +1,39 @@
|
||||
emulator: FreeJ2ME
|
||||
type: libretro
|
||||
source: "https://github.com/hex007/freej2me"
|
||||
cores:
|
||||
- freej2me
|
||||
systems:
|
||||
- j2me
|
||||
|
||||
notes: |
|
||||
FreeJ2ME is a Java ME (J2ME) emulator for libretro. The native .so/.dll
|
||||
core acts as a bridge that spawns a Java process running freej2me-lr.jar,
|
||||
which handles all actual J2ME emulation. Communication between the C
|
||||
frontend and Java backend happens over pipes (Linux) or named pipes
|
||||
(Windows).
|
||||
|
||||
The jar file is required: without it the core cannot start. It must be
|
||||
placed directly in the system directory (not a subdirectory). The core
|
||||
resolves it via RETRO_ENVIRONMENT_GET_SYSTEM_DIRECTORY joined with
|
||||
"freej2me-lr.jar" using fill_pathname_join().
|
||||
|
||||
A working Java runtime (JRE/JDK 8+) must be installed on the host
|
||||
system. The core invokes "java -jar freej2me-lr.jar" with resolution,
|
||||
rotation, phone type, FPS, and sound arguments passed via argv.
|
||||
|
||||
freej2me-lr.jar is built from the project source via Apache Ant
|
||||
(build.xml target "lr"). It is not a traditional BIOS dump but a
|
||||
software component distributed with the emulator.
|
||||
|
||||
The project also produces freej2me.jar (standalone AWT frontend) and
|
||||
freej2me-sdl.jar (SDL2 frontend), but only freej2me-lr.jar is needed
|
||||
for the libretro core.
|
||||
|
||||
files:
|
||||
- name: "freej2me-lr.jar"
|
||||
system: j2me
|
||||
description: "FreeJ2ME libretro Java application"
|
||||
required: true
|
||||
source_ref: "src/libretro/freej2me_libretro.c:485 (fill_pathname_join with javapath)"
|
||||
notes: "Not a BIOS dump. This is the Java emulator itself, loaded by the native core at startup. Built from source via 'ant lr'. Must be in the system directory root."
|
||||
396
emulators/fuse.yml
Normal file
396
emulators/fuse.yml
Normal file
@@ -0,0 +1,396 @@
|
||||
emulator: Fuse
|
||||
type: libretro
|
||||
source: "https://github.com/libretro/fuse-libretro"
|
||||
cores:
|
||||
- fuse
|
||||
systems:
|
||||
- sinclair-zxspectrum
|
||||
|
||||
notes: |
|
||||
Fuse (Free Unix Spectrum Emulator) ported to libretro. Emulates the ZX
|
||||
Spectrum family: 16K, 48K, 48K NTSC, 128K, +2, +2A, +3, +3e, SE, Timex
|
||||
TC2048, TC2068, TS2068, Pentagon 128K/512K/1024, and Scorpion 256K.
|
||||
|
||||
ROM loading is in src/compat/file.c:91-118. The core first checks an
|
||||
internal table of embedded ROMs (mem_entries[]). If the ROM filename is
|
||||
not found there, it falls back to the filesystem at
|
||||
{system_dir}/fuse/{rom_filename} (file.c:160-175).
|
||||
|
||||
Embedded ROMs cover 48K-family, 128K, +2, +3, +3e, SE, TC2048, TC2068.
|
||||
Pentagon, Scorpion, and peripheral ROMs are NOT embedded and must be
|
||||
placed in {system_dir}/fuse/ by the user.
|
||||
|
||||
Default ROM filenames are set in fuse/settings.c:209-260. Each machine
|
||||
type loads its ROMs during reset via machine_load_rom() calls in
|
||||
fuse/machines/*.c files.
|
||||
|
||||
The +2A reuses the +3 ROMs (plus3-0/1/2/3.rom) per settings.c:234-237.
|
||||
The TS2068 reuses TC2068 ROMs (tc2068-0/1.rom) per settings.c:257-258.
|
||||
Spectrum 16K uses 48.rom per settings.c:211.
|
||||
|
||||
files:
|
||||
# -- Embedded ROMs (compiled into the core, not required on disk) --
|
||||
|
||||
- name: "fuse/48.rom"
|
||||
system: sinclair-zxspectrum
|
||||
required: false
|
||||
md5: 4c42a2f075212361c3117015b107ff68
|
||||
sha1: 5ea7c2b824672e914525d1d5c419d71b84a426a2
|
||||
size: 16384
|
||||
note: "Spectrum 48K ROM. Also used for 16K and 48K NTSC. Embedded in core."
|
||||
source_ref: "fuse/settings.c:211-212, fuse/machines/spec48.c:76"
|
||||
|
||||
- name: "fuse/128-0.rom"
|
||||
system: sinclair-zxspectrum
|
||||
required: false
|
||||
md5: b4d2692115a9f2924df92a3cbfb358fb
|
||||
sha1: 4f4b11ec22326280bdb96e3baf9db4b4cb1d02c5
|
||||
size: 16384
|
||||
note: "Spectrum 128K ROM 0 (editor). Embedded in core."
|
||||
source_ref: "fuse/settings.c:209, fuse/machines/spec128.c:70"
|
||||
|
||||
- name: "fuse/128-1.rom"
|
||||
system: sinclair-zxspectrum
|
||||
required: false
|
||||
md5: 6e09e5d3c4aef166601669feaaadc01c
|
||||
sha1: 80080644289ed93d71a1103992a154cc9802b2fa
|
||||
size: 16384
|
||||
note: "Spectrum 128K ROM 1 (48 BASIC). Embedded in core."
|
||||
source_ref: "fuse/settings.c:210, fuse/machines/spec128.c:73"
|
||||
|
||||
- name: "fuse/plus2-0.rom"
|
||||
system: sinclair-zxspectrum
|
||||
required: false
|
||||
md5: 4ed7af4636308b8a48d7a35e6c5b546b
|
||||
sha1: 72703f9a3e734f3c23ec34c0727aae4ccbef9a91
|
||||
size: 16384
|
||||
note: "Spectrum +2 ROM 0. Embedded in core."
|
||||
source_ref: "fuse/settings.c:232, fuse/machines/specplus2.c:70"
|
||||
|
||||
- name: "fuse/plus2-1.rom"
|
||||
system: sinclair-zxspectrum
|
||||
required: false
|
||||
md5: b3db95931cc844efaeb82db9c171b9f3
|
||||
sha1: de8b0d2d0379cfe7c39322a086ca6da68c7f23cb
|
||||
size: 16384
|
||||
note: "Spectrum +2 ROM 1. Embedded in core."
|
||||
source_ref: "fuse/settings.c:233, fuse/machines/specplus2.c:73"
|
||||
|
||||
- name: "fuse/plus3-0.rom"
|
||||
system: sinclair-zxspectrum
|
||||
required: false
|
||||
md5: 9833b8b73384dd5fa3678377ff00a2bb
|
||||
sha1: e319ed08b4d53a5e421a75ea00ea02039ba6555b
|
||||
size: 16384
|
||||
note: "Spectrum +3 ROM 0. Also used for +2A. Embedded in core."
|
||||
source_ref: "fuse/settings.c:234,238, fuse/machines/specplus3.c:197"
|
||||
|
||||
- name: "fuse/plus3-1.rom"
|
||||
system: sinclair-zxspectrum
|
||||
required: false
|
||||
md5: 0f711ceb5ab801b4701989982e0f334c
|
||||
sha1: c9969fc36095a59787554026a9adc3b87678c794
|
||||
size: 16384
|
||||
note: "Spectrum +3 ROM 1. Also used for +2A. Embedded in core."
|
||||
source_ref: "fuse/settings.c:235,239, fuse/machines/specplus3.c:200"
|
||||
|
||||
- name: "fuse/plus3-2.rom"
|
||||
system: sinclair-zxspectrum
|
||||
required: false
|
||||
md5: 3b6dd659d5e4ec97f0e2f7878152c987
|
||||
sha1: 22e50c6ba4157a3f6a821bd9937cd26e292775c6
|
||||
size: 16384
|
||||
note: "Spectrum +3 ROM 2. Also used for +2A. Embedded in core."
|
||||
source_ref: "fuse/settings.c:236,240, fuse/machines/specplus3.c:203"
|
||||
|
||||
- name: "fuse/plus3-3.rom"
|
||||
system: sinclair-zxspectrum
|
||||
required: false
|
||||
md5: a148bcc575e51389e84fdf5d555c3196
|
||||
sha1: 65f031caa8148a5493afe42c41f4929deab26b4e
|
||||
size: 16384
|
||||
note: "Spectrum +3 ROM 3. Also used for +2A. Embedded in core."
|
||||
source_ref: "fuse/settings.c:237,241, fuse/machines/specplus3.c:206"
|
||||
|
||||
- name: "fuse/plus3e-0.rom"
|
||||
system: sinclair-zxspectrum
|
||||
required: false
|
||||
md5: bc123f625e245c225f92ef05933ed134
|
||||
sha1: 649fbd233490bf58b35350b0123d36caaaa011eb
|
||||
size: 16384
|
||||
note: "Spectrum +3e ROM 0. Embedded in core."
|
||||
source_ref: "fuse/settings.c:242, fuse/machines/specplus3e.c:70"
|
||||
|
||||
- name: "fuse/plus3e-1.rom"
|
||||
system: sinclair-zxspectrum
|
||||
required: false
|
||||
md5: 617364264c587d20c9fc4746c29679f2
|
||||
sha1: f12198108cbb14de4f03c6695bc16d08c85ee214
|
||||
size: 16384
|
||||
note: "Spectrum +3e ROM 1. Embedded in core."
|
||||
source_ref: "fuse/settings.c:243, fuse/machines/specplus3e.c:73"
|
||||
|
||||
- name: "fuse/plus3e-2.rom"
|
||||
system: sinclair-zxspectrum
|
||||
required: false
|
||||
md5: c363e95dcd0a90e6e7f847e6e47e0179
|
||||
sha1: 773633dce5ba323a9e00d9d0f9e4d8c295df7c87
|
||||
size: 16384
|
||||
note: "Spectrum +3e ROM 2. Embedded in core."
|
||||
source_ref: "fuse/settings.c:244, fuse/machines/specplus3e.c:76"
|
||||
|
||||
- name: "fuse/plus3e-3.rom"
|
||||
system: sinclair-zxspectrum
|
||||
required: false
|
||||
md5: a148bcc575e51389e84fdf5d555c3196
|
||||
sha1: 65f031caa8148a5493afe42c41f4929deab26b4e
|
||||
size: 16384
|
||||
note: "Spectrum +3e ROM 3. Same as plus3-3.rom. Embedded in core."
|
||||
source_ref: "fuse/settings.c:245, fuse/machines/specplus3e.c:79"
|
||||
|
||||
- name: "fuse/se-0.rom"
|
||||
system: sinclair-zxspectrum
|
||||
required: false
|
||||
md5: fb3f86eb1e5a695d9c50c124e7cfb875
|
||||
sha1: 8608328d7dd66602a4846f046b24fed500f7d828
|
||||
size: 16384
|
||||
note: "Spectrum SE ROM 0. Embedded in core."
|
||||
source_ref: "fuse/settings.c:251, fuse/machines/spec_se.c:89"
|
||||
|
||||
- name: "fuse/se-1.rom"
|
||||
system: sinclair-zxspectrum
|
||||
required: false
|
||||
md5: 88de4a3129086f34bb9ca559acc51e6c
|
||||
sha1: 3be5de57dd3bd0a9d15c57cabe9179afe2906a52
|
||||
size: 16384
|
||||
note: "Spectrum SE ROM 1. Embedded in core."
|
||||
source_ref: "fuse/settings.c:252, fuse/machines/spec_se.c:92"
|
||||
|
||||
- name: "fuse/tc2048.rom"
|
||||
system: sinclair-zxspectrum
|
||||
required: false
|
||||
md5: 9dd7ecf784a6c04265c073c236f5fadb
|
||||
sha1: febb2d495b6eda7cdcb4074935d6e9d9f328972d
|
||||
size: 16384
|
||||
note: "Timex TC2048 ROM. Embedded in core."
|
||||
source_ref: "fuse/settings.c:254, fuse/machines/tc2048.c:80"
|
||||
|
||||
- name: "fuse/tc2068-0.rom"
|
||||
system: sinclair-zxspectrum
|
||||
required: false
|
||||
md5: 55d462fccc6c536037404ef4ced08bec
|
||||
sha1: 1446cb2780a9dedf640404a639fa3ae518b2d8aa
|
||||
size: 16384
|
||||
note: "Timex TC2068 ROM 0. Also used for TS2068. Embedded in core."
|
||||
source_ref: "fuse/settings.c:255,257, fuse/machines/tc2068.c:138"
|
||||
|
||||
- name: "fuse/tc2068-1.rom"
|
||||
system: sinclair-zxspectrum
|
||||
required: false
|
||||
md5: 575d203c6e15e679fba0b73f854ec7a2
|
||||
sha1: 7e265a2c1f621ed365ea23bdcafdedbc79c1299c
|
||||
size: 8192
|
||||
note: "Timex TC2068 ROM 1 (EXROM). Also used for TS2068. Embedded in core."
|
||||
source_ref: "fuse/settings.c:256,258, fuse/machines/tc2068.c:141"
|
||||
|
||||
# -- External ROMs (NOT embedded, must be in {system_dir}/fuse/) --
|
||||
|
||||
# Pentagon family
|
||||
- name: "fuse/128p-0.rom"
|
||||
system: sinclair-zxspectrum
|
||||
required: true
|
||||
md5: ""
|
||||
size: 16384
|
||||
note: "Pentagon 128K/512K/1024 ROM 0. Required for Pentagon machines."
|
||||
source_ref: "fuse/settings.c:221,225,229, fuse/machines/pentagon.c:135"
|
||||
|
||||
- name: "fuse/128p-1.rom"
|
||||
system: sinclair-zxspectrum
|
||||
required: true
|
||||
md5: ""
|
||||
size: 16384
|
||||
note: "Pentagon 128K/512K/1024 ROM 1. Required for Pentagon machines."
|
||||
source_ref: "fuse/settings.c:222,226,230, fuse/machines/pentagon.c:138"
|
||||
|
||||
- name: "fuse/trdos.rom"
|
||||
system: sinclair-zxspectrum
|
||||
required: true
|
||||
md5: ""
|
||||
size: 16384
|
||||
note: "TR-DOS ROM (Beta 128 disk interface). Used by Pentagon and Scorpion."
|
||||
source_ref: "fuse/settings.c:223,227,231, fuse/machines/pentagon.c:141"
|
||||
|
||||
- name: "fuse/gluck.rom"
|
||||
system: sinclair-zxspectrum
|
||||
required: true
|
||||
md5: ""
|
||||
size: 16384
|
||||
note: "Gluck ROM. Required for Pentagon 512K and 1024."
|
||||
source_ref: "fuse/settings.c:224,228, fuse/machines/pentagon512.c:82"
|
||||
|
||||
# Scorpion
|
||||
- name: "fuse/256s-0.rom"
|
||||
system: sinclair-zxspectrum
|
||||
required: true
|
||||
md5: ""
|
||||
size: 16384
|
||||
note: "Scorpion 256K ROM 0. Required for Scorpion machine."
|
||||
source_ref: "fuse/settings.c:247, fuse/machines/scorpion.c:76"
|
||||
|
||||
- name: "fuse/256s-1.rom"
|
||||
system: sinclair-zxspectrum
|
||||
required: true
|
||||
md5: ""
|
||||
size: 16384
|
||||
note: "Scorpion 256K ROM 1. Required for Scorpion machine."
|
||||
source_ref: "fuse/settings.c:248, fuse/machines/scorpion.c:79"
|
||||
|
||||
- name: "fuse/256s-2.rom"
|
||||
system: sinclair-zxspectrum
|
||||
required: true
|
||||
md5: ""
|
||||
size: 16384
|
||||
note: "Scorpion 256K ROM 2. Required for Scorpion machine."
|
||||
source_ref: "fuse/settings.c:249, fuse/machines/scorpion.c:82"
|
||||
|
||||
- name: "fuse/256s-3.rom"
|
||||
system: sinclair-zxspectrum
|
||||
required: true
|
||||
md5: ""
|
||||
size: 16384
|
||||
note: "Scorpion 256K ROM 3 (TR-DOS). Required for Scorpion machine."
|
||||
source_ref: "fuse/settings.c:250, fuse/machines/scorpion.c:85"
|
||||
|
||||
# Peripheral ROMs (optional, only needed if peripheral is enabled)
|
||||
- name: "fuse/if1-2.rom"
|
||||
system: sinclair-zxspectrum
|
||||
required: false
|
||||
md5: ""
|
||||
size: 16384
|
||||
note: "Interface 1 ROM (edition 2). Loaded by peripherals/if1.c:403."
|
||||
source_ref: "fuse/settings.c:216, fuse/peripherals/if1.c:403"
|
||||
|
||||
- name: "fuse/disciple.rom"
|
||||
system: sinclair-zxspectrum
|
||||
required: false
|
||||
md5: 78e61a2a02121873c1756b21fd1398b1
|
||||
sha1: 9a75ed4b293f968985be4c9aa893cd88276d1ced
|
||||
size: 8192
|
||||
note: "DISCiPLE disk interface ROM. Bundled in repo but not in mem_entries[]."
|
||||
source_ref: "fuse/settings.c:215, fuse/peripherals/disk/disciple.c:279"
|
||||
|
||||
- name: "fuse/plusd.rom"
|
||||
system: sinclair-zxspectrum
|
||||
required: false
|
||||
md5: 42e5de16fb5e50082bb954ec7ce45851
|
||||
sha1: 6b841dc5797ef7eb219ad455cd1e434ca3b9d30d
|
||||
size: 8192
|
||||
note: "+D disk interface ROM. Bundled in repo but not in mem_entries[]."
|
||||
source_ref: "fuse/settings.c:246, fuse/peripherals/disk/plusd.c:239"
|
||||
|
||||
- name: "fuse/didaktik80.rom"
|
||||
system: sinclair-zxspectrum
|
||||
required: false
|
||||
md5: ""
|
||||
note: "Didaktik 80 disk interface ROM. Not embedded."
|
||||
source_ref: "fuse/settings.c:214, fuse/peripherals/disk/didaktik.c:236"
|
||||
|
||||
- name: "fuse/opus.rom"
|
||||
system: sinclair-zxspectrum
|
||||
required: false
|
||||
md5: ""
|
||||
note: "Opus Discovery disk interface ROM. Not embedded."
|
||||
source_ref: "fuse/settings.c:220, fuse/peripherals/disk/opus.c:210"
|
||||
|
||||
- name: "fuse/mf1.rom"
|
||||
system: sinclair-zxspectrum
|
||||
required: false
|
||||
md5: ""
|
||||
note: "Multiface 1 ROM. Not embedded."
|
||||
source_ref: "fuse/settings.c:217, fuse/peripherals/multiface.c:224"
|
||||
|
||||
- name: "fuse/mf128.rom"
|
||||
system: sinclair-zxspectrum
|
||||
required: false
|
||||
md5: ""
|
||||
note: "Multiface 128 ROM. Not embedded."
|
||||
source_ref: "fuse/settings.c:218, fuse/peripherals/multiface.c:225"
|
||||
|
||||
- name: "fuse/mf3.rom"
|
||||
system: sinclair-zxspectrum
|
||||
required: false
|
||||
md5: ""
|
||||
note: "Multiface 3 ROM. Not embedded."
|
||||
source_ref: "fuse/settings.c:219, fuse/peripherals/multiface.c:226"
|
||||
|
||||
- name: "fuse/speccyboot-1.4.rom"
|
||||
system: sinclair-zxspectrum
|
||||
required: false
|
||||
md5: c54aa8f374b0971f51546c29d5d1eba1
|
||||
sha1: 16af6f052b38a027dd49ba6e96e3a59d16b62672
|
||||
size: 8192
|
||||
note: "SpeccyBoot ethernet ROM. Bundled in repo but not in mem_entries[]."
|
||||
source_ref: "fuse/settings.c:253, fuse/peripherals/speccyboot.c:148"
|
||||
|
||||
- name: "fuse/ttx2000s.rom"
|
||||
system: sinclair-zxspectrum
|
||||
required: false
|
||||
md5: ""
|
||||
note: "TTX2000S teletext adapter ROM. Not embedded."
|
||||
source_ref: "fuse/settings.c:259, fuse/peripherals/ttx2000s.c:198"
|
||||
|
||||
- name: "fuse/usource.rom"
|
||||
system: sinclair-zxspectrum
|
||||
required: false
|
||||
md5: ""
|
||||
note: "Currah uSource ROM. Not embedded."
|
||||
source_ref: "fuse/settings.c:260, fuse/peripherals/usource.c:129"
|
||||
|
||||
platform_details:
|
||||
bios_mapping:
|
||||
source_ref: "src/compat/file.c:55-89, 129-223"
|
||||
notes: |
|
||||
ROM resolution order in compat_file_open():
|
||||
1. Check mem_entries[] (18 embedded ROMs compiled as .h arrays)
|
||||
2. If not found, try {system_dir}/fuse/{filename} on filesystem
|
||||
The path is constructed by concatenating system_dir + "/fuse" + path
|
||||
where path includes the leading slash from fuse's internal path.
|
||||
|
||||
embedded_roms:
|
||||
source_ref: "src/compat/file.c:55-73"
|
||||
notes: |
|
||||
18 ROMs embedded in the binary via .h headers generated from .rom files:
|
||||
48.rom, 128-0.rom, 128-1.rom, plus2-0.rom, plus2-1.rom,
|
||||
plus3-0/1/2/3.rom, plus3e-0/1/2/3.rom, se-0.rom, se-1.rom,
|
||||
tc2048.rom, tc2068-0.rom, tc2068-1.rom.
|
||||
disciple.rom, plusd.rom, speccyboot-1.4.rom are present in the repo
|
||||
fuse/roms/ directory but NOT in mem_entries[], so they are loaded
|
||||
from the filesystem only.
|
||||
|
||||
machine_rom_map:
|
||||
source_ref: "fuse/settings.c:209-260, fuse/machines/*.c"
|
||||
notes: |
|
||||
Spectrum 16K: 48.rom (1 ROM)
|
||||
Spectrum 48K: 48.rom (1 ROM)
|
||||
Spectrum 48K NTSC: 48.rom (1 ROM)
|
||||
Spectrum 128K: 128-0.rom, 128-1.rom (2 ROMs)
|
||||
Spectrum +2: plus2-0.rom, plus2-1.rom (2 ROMs)
|
||||
Spectrum +2A: plus3-0.rom, plus3-1.rom, plus3-2.rom, plus3-3.rom (4 ROMs)
|
||||
Spectrum +3: plus3-0.rom, plus3-1.rom, plus3-2.rom, plus3-3.rom (4 ROMs)
|
||||
Spectrum +3e: plus3e-0/1/2/3.rom (4 ROMs)
|
||||
Spectrum SE: se-0.rom, se-1.rom (2 ROMs)
|
||||
Timex TC2048: tc2048.rom (1 ROM)
|
||||
Timex TC2068: tc2068-0.rom, tc2068-1.rom (2 ROMs)
|
||||
Timex TS2068: tc2068-0.rom, tc2068-1.rom (2 ROMs, same files)
|
||||
Pentagon 128K: 128p-0.rom, 128p-1.rom, trdos.rom (3 ROMs)
|
||||
Pentagon 512K: 128p-0.rom, 128p-1.rom, trdos.rom, gluck.rom (4 ROMs)
|
||||
Pentagon 1024: 128p-0.rom, 128p-1.rom, trdos.rom, gluck.rom (4 ROMs)
|
||||
Scorpion 256K: 256s-0.rom, 256s-1.rom, 256s-2.rom, 256s-3.rom (4 ROMs)
|
||||
|
||||
rom_copyright:
|
||||
source_ref: "fuse/roms/README.copyright"
|
||||
notes: |
|
||||
Most ROMs are copyright Amstrad. Amstrad allows free distribution but
|
||||
retains copyright. Selling ROMs standalone is not permitted. SE ROMs
|
||||
are GPLv2+. DISCiPLE/+D ROMs are copyright Datel, distribution allowed.
|
||||
SpeccyBoot ROM is MIT licensed.
|
||||
94
emulators/galaksija.yml
Normal file
94
emulators/galaksija.yml
Normal file
@@ -0,0 +1,94 @@
|
||||
emulator: galaksija
|
||||
type: libretro
|
||||
source: "https://github.com/libretro/galaxy-libretro"
|
||||
cores:
|
||||
- galaksija
|
||||
systems:
|
||||
- galaksija
|
||||
|
||||
# Galaksija is a Yugoslav home computer (1983, designed by Voja Antonic) emulator.
|
||||
# Z80-based at 3.072 MHz, PAL 50fps, character-mode display (32x16 chars, 256x208 px).
|
||||
#
|
||||
# The core embeds all three firmware files compressed in rom.c (LoadCHRGENBIN,
|
||||
# LoadROM1BIN, LoadROM2BIN). External files are optional overrides -- if ANY of
|
||||
# CHRGEN.BIN or ROM1.BIN is missing from <system_dir>/galaksija/, the core sets
|
||||
# firmware_ignore=true and loads all ROMs from the embedded copies instead.
|
||||
#
|
||||
# Firmware loading (src/libretro.c:93-135):
|
||||
# 1. retro_init() checks for galaksija/CHRGEN.BIN and galaksija/ROM1.BIN
|
||||
# 2. If either is missing: firmware_ignore=true, load embedded compressed ROMs
|
||||
# 3. If both present: galaxy_init() reads files from disk (init.c:46-105)
|
||||
# 4. ROM2.BIN missing is a warning only, not fatal (init.c:84-85)
|
||||
# 5. GAL_PLUS.BIN: referenced in a TODO comment but not implemented yet
|
||||
#
|
||||
# Memory map:
|
||||
# 0x0000-0x0FFF: ROM1 (4096 bytes) - BASIC interpreter
|
||||
# 0x1000-0x1FFF: ROM2 (4096 bytes) - math extension (optional)
|
||||
# 0x2000-0x27FF: keyboard memory-mapped I/O
|
||||
# 0x2800-0x29FF: screen RAM (32x16 characters)
|
||||
# 0x2A00-0x3FFF: free RAM
|
||||
# chargen: 2048-byte character generator ROM (separate, not memory-mapped)
|
||||
#
|
||||
# The included firmware is public domain per README.
|
||||
|
||||
files:
|
||||
- name: "CHRGEN.BIN"
|
||||
path: "galaksija/CHRGEN.BIN"
|
||||
size: 2048
|
||||
required: false
|
||||
note: >
|
||||
Character generator ROM. Defines the 128-character bitmap font (8x13 pixels
|
||||
each). The core has this embedded compressed in rom.c and only loads the
|
||||
external file if all firmware files are present in the system directory.
|
||||
source_ref: "src/rom.h:5, src/libretro.c:95-99, src/external/galaksija-emulator/src/init.c:55-67"
|
||||
|
||||
- name: "ROM1.BIN"
|
||||
path: "galaksija/ROM1.BIN"
|
||||
size: 4096
|
||||
required: false
|
||||
note: >
|
||||
System ROM / BASIC interpreter. Mapped at 0x0000-0x0FFF. Contains the
|
||||
Galaksija BASIC language and boot routines. Embedded in rom.c as fallback.
|
||||
source_ref: "src/rom.h:8, src/libretro.c:101-105, src/external/galaksija-emulator/src/init.c:69-81"
|
||||
|
||||
- name: "ROM2.BIN"
|
||||
path: "galaksija/ROM2.BIN"
|
||||
size: 4096
|
||||
required: false
|
||||
note: >
|
||||
Math extension ROM. Mapped at 0x1000-0x1FFF. Adds floating-point math
|
||||
functions (SIN, COS, TG, SQR, LN, EXP, POW, etc). Optional even when
|
||||
loading from disk -- missing ROM2 only triggers a warning. Embedded in
|
||||
rom.c as fallback.
|
||||
source_ref: "src/rom.h:11, src/libretro.c:107-110, src/external/galaksija-emulator/src/init.c:83-92"
|
||||
|
||||
- name: "GAL_PLUS.BIN"
|
||||
path: "galaksija/GAL_PLUS.BIN"
|
||||
size: 4096
|
||||
required: false
|
||||
note: >
|
||||
Galaksija Plus extension ROM. Would map at 0xE000-0xEFFF. Referenced in a
|
||||
TODO comment in init.c but not yet implemented in the libretro core. The
|
||||
original standalone emulator loaded it optionally with a Serbian message
|
||||
on failure ("GAL_PLUS.BIN nije prisutan, idemo dalje bez njega!").
|
||||
source_ref: "src/external/galaksija-emulator/src/init.c:94-104"
|
||||
|
||||
notes:
|
||||
embedded_firmware: >
|
||||
All three ROMs (CHRGEN.BIN, ROM1.BIN, ROM2.BIN) are embedded as compressed
|
||||
blobs in src/rom.c using RLE compression. The core works out of the box
|
||||
without any external firmware files. External files only serve as overrides
|
||||
for users who want alternative ROM versions (e.g. different BASIC revisions
|
||||
or character sets).
|
||||
firmware_override_logic: >
|
||||
The override is all-or-nothing for CHRGEN.BIN and ROM1.BIN. If either file
|
||||
is missing from galaksija/, the core ignores all external firmware and uses
|
||||
embedded copies. ROM2.BIN is handled separately and can be absent even when
|
||||
loading from disk.
|
||||
license: >
|
||||
The emulator code and included firmware are public domain. External
|
||||
dependencies (libz80, libretro-common, tinyfiledialogs) have separate
|
||||
licenses (GPL2, MIT).
|
||||
no_bios_required_for_pack: >
|
||||
Since all firmware is embedded, this core does not need any BIOS files in
|
||||
platform packs. The files listed above are optional overrides only.
|
||||
53
emulators/gambatte.yml
Normal file
53
emulators/gambatte.yml
Normal file
@@ -0,0 +1,53 @@
|
||||
emulator: Gambatte
|
||||
type: libretro
|
||||
source: "https://github.com/libretro/gambatte-libretro"
|
||||
systems: [nintendo-gb, nintendo-gbc]
|
||||
|
||||
notes: |
|
||||
Gambatte is a Game Boy / Game Boy Color emulator focused on accuracy.
|
||||
No BIOS is required for normal operation. The core has a built-in
|
||||
HLE boot sequence that skips the Nintendo logo animation by default.
|
||||
|
||||
When the core option "gambatte_gb_bootloader" is set to "enabled"
|
||||
(the default), the core looks for official boot ROMs in the system
|
||||
directory to play the real startup logo animation. If the files are
|
||||
missing, emulation still works without them.
|
||||
|
||||
The boot ROM loaded depends on the hardware mode:
|
||||
- DMG (original Game Boy): gb_bios.bin (256 bytes, 0x100)
|
||||
- CGB (Game Boy Color) or GBA mode: gbc_bios.bin (2304 bytes, 0x900)
|
||||
|
||||
In GBA mode the core patches the CGB boot ROM at 0xF2 to fake
|
||||
GBA detection (ld b,0x01), enabling GBA-enhanced features in
|
||||
compatible GBC games (Shantae, Zelda Oracle series, etc.).
|
||||
|
||||
File path construction: libretro.cpp get_bootloader_from_file()
|
||||
joins RETRO_ENVIRONMENT_GET_SYSTEM_DIRECTORY with each filename
|
||||
directly - no subdirectories.
|
||||
|
||||
Gambatte does NOT use sgb_bios.bin. The SGB palette references in
|
||||
the source are color lookup tables for DMG palette colorization,
|
||||
not actual Super Game Boy boot ROM loading.
|
||||
|
||||
files:
|
||||
# --- DMG boot ROM (optional, enables startup animation) ---
|
||||
- name: "gb_bios.bin"
|
||||
system: nintendo-gb
|
||||
description: "Original Game Boy (DMG-01) boot ROM"
|
||||
required: false
|
||||
size: 256
|
||||
md5: "32fbbd84168d3482956eb3c5051637f5"
|
||||
sha1: "4ed31ec6b0b175bb109c0eb5fd3d193da823339f"
|
||||
source_ref: "libretro.cpp:1304-1364 (get_bootloader_from_file), bootloader.cpp:20-55 (load)"
|
||||
notes: "Mapped at 0x0000-0x00FF, swapped out when register 0xFF50 is written. Core option gambatte_gb_bootloader must be enabled."
|
||||
|
||||
# --- CGB boot ROM (optional, enables startup animation) ---
|
||||
- name: "gbc_bios.bin"
|
||||
system: nintendo-gbc
|
||||
description: "Game Boy Color (CGB-001) boot ROM"
|
||||
required: false
|
||||
size: 2304
|
||||
md5: "dbfce9db9deaa2567f6a84fde55f9680"
|
||||
sha1: "1293d68bf9643bc4f36954c1e80e38f39864528d"
|
||||
source_ref: "libretro.cpp:1304-1364 (get_bootloader_from_file), bootloader.cpp:20-55 (load)"
|
||||
notes: "Mapped at 0x0000-0x08FF with cartridge data preserved at 0x0100-0x01FF. Also used for GBA-enhanced mode with a patch at 0xF2. Presence required for FORCE_CGB flag when hw mode is set to GBC or GBA."
|
||||
56
emulators/gearcoleco.yml
Normal file
56
emulators/gearcoleco.yml
Normal file
@@ -0,0 +1,56 @@
|
||||
emulator: Gearcoleco
|
||||
type: libretro
|
||||
source: "https://github.com/drhelius/Gearcoleco"
|
||||
cores:
|
||||
- gearcoleco
|
||||
systems:
|
||||
- colecovision
|
||||
|
||||
notes: |
|
||||
Gearcoleco is a ColecoVision emulator by Ignacio Sanchez (drhelius).
|
||||
The ColecoVision BIOS ROM is required to run games. Without it, the
|
||||
core displays a static "no BIOS" placeholder image (kNoBiosImage from
|
||||
no_bios.h) and games will not execute.
|
||||
|
||||
The BIOS is loaded in load_bootroms() (libretro.cpp:293-305) from the
|
||||
system directory. The core first tries "colecovision.rom", then falls
|
||||
back to "coleco.rom" if the first file is not found.
|
||||
|
||||
Memory.cpp:LoadBios() validates the file size must be exactly 8192
|
||||
bytes (0x2000). No hash check is performed by the core itself.
|
||||
|
||||
On reset, the BIOS byte at offset 0x69 is patched to select region:
|
||||
0x3C for NTSC, 0x32 for PAL (Memory.cpp:184-187).
|
||||
|
||||
The core also supports Super Game Module (SGM) expanded RAM but that
|
||||
requires no additional BIOS files.
|
||||
|
||||
files:
|
||||
# --- ColecoVision BIOS (required) ---
|
||||
- name: "colecovision.rom"
|
||||
system: colecovision
|
||||
description: "ColecoVision BIOS ROM"
|
||||
required: true
|
||||
size: 8192
|
||||
source_ref: "platforms/libretro/libretro.cpp:297 (load_bootroms)"
|
||||
notes: "Primary filename. Loaded via Memory::LoadBios(), must be exactly 8192 bytes."
|
||||
|
||||
- name: "coleco.rom"
|
||||
system: colecovision
|
||||
description: "ColecoVision BIOS ROM (legacy filename)"
|
||||
required: false
|
||||
size: 8192
|
||||
source_ref: "platforms/libretro/libretro.cpp:303 (load_bootroms fallback)"
|
||||
notes: "Fallback filename tried when colecovision.rom is not found."
|
||||
|
||||
platform_details:
|
||||
colecovision:
|
||||
bios_filename: "colecovision.rom"
|
||||
bios_fallback: "coleco.rom"
|
||||
bios_size: 8192
|
||||
source_ref: "src/Memory.cpp:228-258"
|
||||
notes: |
|
||||
LoadBios() reads the file as raw binary. Size must be exactly 0x2000
|
||||
(8192 bytes) or the load is rejected with a log message. The BIOS is
|
||||
mapped at address 0x0000-0x1FFF in the ColecoVision memory map. On
|
||||
reset, byte 0x69 is patched for NTSC/PAL region selection.
|
||||
128
emulators/geargrafx.yml
Normal file
128
emulators/geargrafx.yml
Normal file
@@ -0,0 +1,128 @@
|
||||
emulator: Geargrafx
|
||||
type: libretro
|
||||
source: "https://github.com/drhelius/Geargrafx"
|
||||
cores:
|
||||
- geargrafx
|
||||
systems:
|
||||
- nec-pc-engine
|
||||
- nec-supergrafx
|
||||
- nec-pc-engine-cd
|
||||
|
||||
notes: |
|
||||
Geargrafx is a PC Engine / TurboGrafx-16 / SuperGrafx / CD-ROM emulator by
|
||||
Ignacio Sanchez (drhelius). HuCard games (pce/sgx/hes) run without BIOS.
|
||||
|
||||
CD-ROM games require a System Card BIOS loaded from the system directory.
|
||||
The core option "geargrafx_cdrom_bios" selects which card image to use:
|
||||
Auto (default, maps to syscard3.pce), System Card 1, System Card 2,
|
||||
System Card 3, or Game Express. The load_bios() function in libretro.cpp
|
||||
builds the path as "{system_directory}/{filename}" and calls
|
||||
core->LoadBios(path, true) for the syscard, then always attempts to load
|
||||
gexpress.pce as the Game Express BIOS via core->LoadBios(path, false).
|
||||
|
||||
BIOS validation uses CRC32 against an internal game_db (game_db.h).
|
||||
The LoadBios() function in media.cpp reads the file, strips a 512-byte
|
||||
header if present, computes CRC32, and looks it up in k_game_database
|
||||
entries flagged with GG_GAMEDB_BIOS_SYSCARD or GG_GAMEDB_BIOS_GAME_EXPRESS.
|
||||
If the CRC32 is not found, the BIOS is marked as "Unknown" and invalid,
|
||||
but loading still proceeds (the file is kept in memory).
|
||||
|
||||
Expected BIOS sizes (from defines.h):
|
||||
- System Card: GG_BIOS_SYSCARD_SIZE = 0x40000 (256 KB)
|
||||
- Game Express: GG_BIOS_GAME_EXPRESS_SIZE = 0x8000 (32 KB)
|
||||
|
||||
Game Express CD-ROM games are auto-detected via CRC32 lookup in game_db.h
|
||||
(GG_GAMEDB_GAME_EXPRESS flag). When detected, the core uses the Game Express
|
||||
BIOS instead of the System Card for ROM bank mapping (media.cpp:649).
|
||||
|
||||
Arcade Card games are also detected from game_db.h and enable extra
|
||||
0x30000 bytes of Card RAM for Super CD-ROM mode.
|
||||
|
||||
Unlike beetle_pce, this core does NOT have separate US syscard3u.pce or
|
||||
syscard2u.pce options. The libretro frontend only references syscard1.pce,
|
||||
syscard2.pce, syscard3.pce, and gexpress.pce.
|
||||
|
||||
files:
|
||||
# -- CD-ROM System Card 3 (Japan) - default --
|
||||
|
||||
- name: "syscard3.pce"
|
||||
description: "Super CD-ROM System Card 3.0 (Japan)"
|
||||
region: "NTSC-J"
|
||||
required: true
|
||||
source_ref: "libretro.cpp:453,471-473, game_db.h:50 CRC32=0x6D9A73EF"
|
||||
notes: >
|
||||
Default BIOS for CD-ROM games (cdrom_bios=0 or 3). Recommended for
|
||||
most CD-ROM and Super CD-ROM titles. 256 KB expected size.
|
||||
|
||||
# -- CD-ROM System Card 2 (Japan) --
|
||||
|
||||
- name: "syscard2.pce"
|
||||
description: "CD-ROM System Card 2.0 (Japan)"
|
||||
region: "NTSC-J"
|
||||
required: false
|
||||
source_ref: "libretro.cpp:452,462-463, game_db.h:48-49"
|
||||
notes: >
|
||||
cdrom_bios = 'System Card 2'. For older CD-ROM2 titles. game_db.h lists
|
||||
two variants: v2.0 (CRC32=0x52520BC6) and v2.1 (CRC32=0x283B74E0).
|
||||
|
||||
# -- CD-ROM System Card 1 (Japan) --
|
||||
|
||||
- name: "syscard1.pce"
|
||||
description: "CD-ROM System Card 1.0 (Japan)"
|
||||
region: "NTSC-J"
|
||||
required: false
|
||||
source_ref: "libretro.cpp:451,459-460, game_db.h:47 CRC32=0x3F9F95A4"
|
||||
notes: >
|
||||
cdrom_bios = 'System Card 1'. Very early CD-ROM2 games only.
|
||||
|
||||
# -- TurboGrafx CD System Card 3 (US) --
|
||||
# Not directly selectable via core option, but game_db.h recognizes it.
|
||||
|
||||
- name: "syscard3.pce"
|
||||
sha1_note: "US variant"
|
||||
description: "TurboGrafx CD Super System Card 3.0 (US)"
|
||||
region: "NTSC-U"
|
||||
required: false
|
||||
source_ref: "game_db.h:52 CRC32=0x2B5B75FE"
|
||||
notes: >
|
||||
The core does not have a separate syscard3u.pce option like beetle_pce.
|
||||
If using a US System Card 3, it must be named syscard3.pce and placed in
|
||||
the system directory. The game_db.h CRC32 validation will recognize it.
|
||||
|
||||
# -- TurboGrafx CD System Card 2 (US) --
|
||||
|
||||
- name: "syscard2.pce"
|
||||
sha1_note: "US variant"
|
||||
description: "TurboGrafx CD System Card 2.0 (US)"
|
||||
region: "NTSC-U"
|
||||
required: false
|
||||
source_ref: "game_db.h:51 CRC32=0xFF2A5EC3"
|
||||
notes: >
|
||||
Same constraint as US System Card 3: must be named syscard2.pce.
|
||||
Recognized by game_db.h CRC32 validation.
|
||||
|
||||
# -- Game Express CD Card --
|
||||
|
||||
- name: "gexpress.pce"
|
||||
description: "Game Express CD Card"
|
||||
region: "NTSC-J"
|
||||
required: false
|
||||
source_ref: "libretro.cpp:454,468-469,481-482, game_db.h:53-54"
|
||||
notes: >
|
||||
Always loaded alongside the selected System Card BIOS (libretro.cpp:481).
|
||||
Required for unlicensed Game Express CD-ROM titles (AV Tanjou,
|
||||
Bishoujo Pachinko, etc). game_db.h lists two variants:
|
||||
Blue Version (CRC32=0x51A12D90) and Green Version (CRC32=0x16AAF05A).
|
||||
Expected size: 32 KB (0x8000).
|
||||
|
||||
valid_bios_crc32:
|
||||
syscard:
|
||||
- { crc32: "3F9F95A4", name: "CD-ROM System Card 1.0 (J)" }
|
||||
- { crc32: "52520BC6", name: "CD-ROM System Card 2.0 (J)" }
|
||||
- { crc32: "283B74E0", name: "CD-ROM System Card 2.1 (J)" }
|
||||
- { crc32: "6D9A73EF", name: "Super CD-ROM System 3.0 (J)" }
|
||||
- { crc32: "FF2A5EC3", name: "TurboGrafx CD System Card 2.0 (USA)" }
|
||||
- { crc32: "2B5B75FE", name: "TurboGrafx CD Super System 3.0 (USA)" }
|
||||
game_express:
|
||||
- { crc32: "51A12D90", name: "Game Express Card Blue Version (J)" }
|
||||
- { crc32: "16AAF05A", name: "Game Express Card Green Version (J)" }
|
||||
43
emulators/gearlynx.yml
Normal file
43
emulators/gearlynx.yml
Normal file
@@ -0,0 +1,43 @@
|
||||
emulator: Gearlynx
|
||||
type: libretro
|
||||
source: "https://github.com/drhelius/Gearlynx"
|
||||
cores: [gearlynx]
|
||||
systems: [atari-lynx]
|
||||
verification: existence
|
||||
|
||||
notes: |
|
||||
Gearlynx is an Atari Lynx emulator by Ignacio Sanchez (drhelius).
|
||||
The libretro core loads lynxboot.img from the system directory at
|
||||
retro_load_game time (libretro.cpp:106-130, function load_bootroms).
|
||||
Path is built as: system_directory + "/lynxboot.img", no subdirectory.
|
||||
|
||||
LoadBios in media.cpp:274 reads exactly 512 bytes (GLYNX_BIOS_SIZE
|
||||
= 0x200, defines.h:52). If the file size is not 0x200, the load is
|
||||
rejected with BIOS_LOAD_INVALID_SIZE. After loading, bytes at offset
|
||||
0x1F8 and 0x1F9 are patched (RAM/MAPCTL registers), then CRC32 is
|
||||
computed and compared against GLYNX_DB_BIOS_CRC (0x0D973C9D,
|
||||
game_db.h:38). An invalid CRC triggers a warning log but the BIOS
|
||||
is still marked as loaded (m_is_bios_loaded = true).
|
||||
|
||||
Unlike Handy, Gearlynx has no HLE fallback. If the BIOS is not
|
||||
loaded (IsBiosLoaded() returns false), RunToVBlank in
|
||||
gearlynx_core_inline.h:31-37 renders a static "no bios" image
|
||||
and returns false, refusing to emulate. The BIOS is required for
|
||||
any ROM to run. Homebrew (.o, BS93 format) bypasses the normal
|
||||
boot sequence via PrepareForHomebrew() but still requires the BIOS
|
||||
to be loaded for the emulation loop to execute.
|
||||
|
||||
ROM extensions: .lnx, .lyx, .o
|
||||
Core options: none documented in the libretro port.
|
||||
|
||||
files:
|
||||
- name: "lynxboot.img"
|
||||
description: "Atari Lynx boot ROM"
|
||||
region: "World"
|
||||
required: true
|
||||
size: 512
|
||||
sha1: "e4ed47fae31693e016b081c6bda48da5b70d7ccb"
|
||||
md5: "fcd403db69f54290b51035d82f835e7b"
|
||||
crc32: "0d973c9d"
|
||||
source_ref: "libretro.cpp:106-130 (load_bootroms), media.cpp:274-329 (LoadBios), defines.h:52 (GLYNX_BIOS_SIZE=0x200), game_db.h:38 (GLYNX_DB_BIOS_CRC=0x0D973C9D), gearlynx_core_inline.h:33-37 (no-bios guard)"
|
||||
notes: "512-byte boot ROM validated by CRC32 after load. Invalid CRC logs a warning but still works. Missing or wrong-size file blocks emulation entirely (no HLE fallback)."
|
||||
68
emulators/gearsystem.yml
Normal file
68
emulators/gearsystem.yml
Normal file
@@ -0,0 +1,68 @@
|
||||
emulator: Gearsystem
|
||||
type: libretro
|
||||
source: "https://github.com/drhelius/Gearsystem"
|
||||
cores:
|
||||
- gearsystem
|
||||
systems:
|
||||
- sega-mastersystem
|
||||
- sega-gamegear
|
||||
- sega-sg1000
|
||||
|
||||
notes: |
|
||||
Gearsystem is a Sega Master System / Game Gear / SG-1000 emulator by
|
||||
Ignacio Sanchez (drhelius). No BIOS is required for normal operation.
|
||||
|
||||
The core supports optional boot ROMs for Master System and Game Gear,
|
||||
controlled by core options "gearsystem_bios_sms" and "gearsystem_bios_gg"
|
||||
(both disabled by default). Boot ROMs are loaded in load_bootroms()
|
||||
from the system directory with fixed filenames.
|
||||
|
||||
SG-1000 has no BIOS support. IsBootromEnabled() in Memory.cpp explicitly
|
||||
returns false when a SG-1000 cartridge is detected.
|
||||
|
||||
When enabled, the boot ROM executes as on original hardware, which may
|
||||
cause invalid ROMs to lock or fail to boot entirely.
|
||||
|
||||
Note: gearcoleco, geargrafx, and gearlynx are separate emulators by the
|
||||
same author covering ColecoVision, PC Engine, and Atari Lynx respectively.
|
||||
They are not part of Gearsystem.
|
||||
|
||||
files:
|
||||
# --- Master System boot ROM (optional, behind gearsystem_bios_sms) ---
|
||||
- name: "bios.sms"
|
||||
system: sega-mastersystem
|
||||
description: "Master System boot ROM"
|
||||
required: false
|
||||
source_ref: "platforms/libretro/libretro.cpp:414 (load_bootroms)"
|
||||
notes: "Loaded from system directory. Core option gearsystem_bios_sms must be set to Enabled. No size or hash validation performed by the core."
|
||||
|
||||
# --- Game Gear boot ROM (optional, behind gearsystem_bios_gg) ---
|
||||
- name: "bios.gg"
|
||||
system: sega-gamegear
|
||||
description: "Game Gear boot ROM"
|
||||
required: false
|
||||
source_ref: "platforms/libretro/libretro.cpp:415 (load_bootroms)"
|
||||
notes: "Loaded from system directory. Core option gearsystem_bios_gg must be set to Enabled. No size or hash validation performed by the core."
|
||||
|
||||
platform_details:
|
||||
mastersystem:
|
||||
bios_filename: "bios.sms"
|
||||
source_ref: "src/Memory.cpp:222-228"
|
||||
notes: |
|
||||
Boot ROM loaded via LoadBootromSMS() -> LoadBootroom(path, false).
|
||||
Raw binary read, stored in m_pBootromSMS. Bank count computed as
|
||||
Pow2Ceil(size / 0x4000). Memory mapping controlled by port 3E bit 3.
|
||||
|
||||
gamegear:
|
||||
bios_filename: "bios.gg"
|
||||
source_ref: "src/Memory.cpp:230-234"
|
||||
notes: |
|
||||
Boot ROM loaded via LoadBootromGG() -> LoadBootroom(path, true).
|
||||
Raw binary read, stored in m_pBootromGG. Same bank computation.
|
||||
Supports standard GG BIOS and Majesco 1KB variant.
|
||||
|
||||
sg1000:
|
||||
bios_filename: null
|
||||
notes: |
|
||||
No BIOS support. Memory.cpp:291 returns false from IsBootromEnabled()
|
||||
when IsSG1000() is true.
|
||||
154
emulators/genesis_plus_gx.yml
Normal file
154
emulators/genesis_plus_gx.yml
Normal file
@@ -0,0 +1,154 @@
|
||||
emulator: Genesis Plus GX
|
||||
type: libretro
|
||||
source: "https://github.com/libretro/Genesis-Plus-GX"
|
||||
cores:
|
||||
- genesis_plus_gx
|
||||
- genesis_plus_gx_wide
|
||||
systems:
|
||||
- sega-megadrive
|
||||
- sega-megacd
|
||||
- sega-mastersystem
|
||||
- sega-gamegear
|
||||
- sega-sg1000
|
||||
|
||||
notes: |
|
||||
Genesis Plus GX is a Sega 8/16-bit emulator covering SG-1000, Master System,
|
||||
Game Gear, Mega Drive/Genesis, and Mega CD/Sega CD.
|
||||
|
||||
BIOS loading is handled by load_bios() in core/loadrom.c. The libretro port
|
||||
resolves filenames from the system directory in libretro/libretro.c:3516-3527.
|
||||
|
||||
Mega CD BIOS is required to boot CD images (load fails without it).
|
||||
Master System, Game Gear, and Mega Drive BIOS files are optional boot ROMs
|
||||
gated behind the "genesis_plus_gx_bios" core option (config.bios).
|
||||
Lock-on ROMs (Game Genie, Action Replay, Sonic & Knuckles) are optional
|
||||
and loaded only when the corresponding lock-on feature is enabled.
|
||||
|
||||
files:
|
||||
# -------------------------------------------------------
|
||||
# Sega Mega CD / Sega CD - boot ROMs (required for CD)
|
||||
# -------------------------------------------------------
|
||||
- name: bios_CD_U.bin
|
||||
system: sega-megacd
|
||||
required: true
|
||||
size: 131072 # 128 KB (0x20000)
|
||||
note: "Sega CD (NTSC-U) boot ROM. Loaded for REGION_USA."
|
||||
source_ref: "core/loadrom.c:409"
|
||||
|
||||
- name: bios_CD_E.bin
|
||||
system: sega-megacd
|
||||
required: true
|
||||
size: 131072
|
||||
note: "Mega CD (PAL) boot ROM. Loaded for REGION_EUROPE."
|
||||
source_ref: "core/loadrom.c:412"
|
||||
|
||||
- name: bios_CD_J.bin
|
||||
system: sega-megacd
|
||||
required: true
|
||||
size: 131072
|
||||
note: "Mega CD (NTSC-J) boot ROM. Loaded for default/Japan region."
|
||||
source_ref: "core/loadrom.c:415"
|
||||
|
||||
# -------------------------------------------------------
|
||||
# Sega Master System - boot ROMs (optional, behind config.bios)
|
||||
# -------------------------------------------------------
|
||||
- name: bios_U.sms
|
||||
system: sega-mastersystem
|
||||
required: false
|
||||
note: "Master System (NTSC-U) boot ROM. Snail maze game built in."
|
||||
source_ref: "core/loadrom.c:511"
|
||||
|
||||
- name: bios_E.sms
|
||||
system: sega-mastersystem
|
||||
required: false
|
||||
note: "Master System (PAL) boot ROM. Snail maze / Sonic built in."
|
||||
source_ref: "core/loadrom.c:514"
|
||||
|
||||
- name: bios_J.sms
|
||||
system: sega-mastersystem
|
||||
required: false
|
||||
note: "Master System (NTSC-J) boot ROM."
|
||||
source_ref: "core/loadrom.c:517"
|
||||
|
||||
# -------------------------------------------------------
|
||||
# Sega Game Gear - boot ROM (optional, behind config.bios)
|
||||
# -------------------------------------------------------
|
||||
- name: bios.gg
|
||||
system: sega-gamegear
|
||||
required: false
|
||||
note: "Game Gear boot ROM (Majesco 1KB or standard). Shows startup logo."
|
||||
source_ref: "core/loadrom.c:480"
|
||||
|
||||
# -------------------------------------------------------
|
||||
# Sega Mega Drive / Genesis - TMSS boot ROM (optional)
|
||||
# -------------------------------------------------------
|
||||
- name: bios_MD.bin
|
||||
system: sega-megadrive
|
||||
required: false
|
||||
size: 2048 # 2 KB (0x800)
|
||||
note: "Mega Drive TMSS boot ROM. Shows 'Produced by or under license' screen."
|
||||
source_ref: "libretro/libretro.c:3651"
|
||||
|
||||
# -------------------------------------------------------
|
||||
# Lock-on ROMs (optional, feature-gated)
|
||||
# -------------------------------------------------------
|
||||
- name: ggenie.bin
|
||||
system: sega-megadrive
|
||||
required: false
|
||||
size: 32768 # 32 KB (0x8000)
|
||||
note: "Game Genie ROM. Loaded when Game Genie lock-on is enabled."
|
||||
source_ref: "core/cart_hw/ggenie.c:64"
|
||||
|
||||
- name: areplay.bin
|
||||
system: sega-megadrive
|
||||
required: false
|
||||
size: 65536 # max 64 KB (0x10000)
|
||||
note: "Action Replay (Pro) ROM. Loaded when Action Replay lock-on is enabled."
|
||||
source_ref: "core/cart_hw/areplay.c:64"
|
||||
|
||||
- name: sk.bin
|
||||
system: sega-megadrive
|
||||
required: false
|
||||
size: 2097152 # 2 MB (0x200000)
|
||||
note: "Sonic & Knuckles ROM. Required for S&K lock-on feature."
|
||||
source_ref: "core/cart_hw/md_cart.c:867"
|
||||
|
||||
- name: sk2chip.bin
|
||||
system: sega-megadrive
|
||||
required: false
|
||||
size: 262144 # 256 KB (0x40000)
|
||||
note: "Sonic & Knuckles UPMEM ROM. Used by Sonic 2 & Knuckles lock-on."
|
||||
source_ref: "core/cart_hw/md_cart.c:873"
|
||||
|
||||
platform_details:
|
||||
megacd:
|
||||
bootrom_size: 131072 # 128 KB
|
||||
source_ref: "core/cd_hw/scd.h:73"
|
||||
notes: |
|
||||
CD boot ROM region is auto-detected from disc image header.
|
||||
Hardware model detected from boot ROM string at offset 0x120:
|
||||
WONDER-MEGA BOOT -> Wondermega
|
||||
WONDERMEGA2 BOOT -> Wondermega M2 / X'Eye
|
||||
CDX BOOT ROM -> CDX / Multi-Mega
|
||||
|
||||
megadrive:
|
||||
tmss_rom_size: 2048 # 2 KB
|
||||
source_ref: "libretro/libretro.c:3648-3666"
|
||||
notes: |
|
||||
TMSS boot ROM validated by checking "GENESIS OS" at offset 0x120.
|
||||
Only loaded when genesis_plus_gx_bios core option is enabled.
|
||||
|
||||
mastersystem:
|
||||
bios_max_size: 4194304 # 4 MB (stored above cart ROM)
|
||||
source_ref: "core/loadrom.c:504-527"
|
||||
notes: |
|
||||
BIOS ROM loaded into cart.rom + 0x400000. SEGA mapper assumed
|
||||
for ROMs larger than 48KB, otherwise no mapper.
|
||||
Region selected based on current region_code setting.
|
||||
|
||||
gamegear:
|
||||
bios_max_size: 4194304 # 4 MB (stored above cart ROM)
|
||||
source_ref: "core/loadrom.c:467-489"
|
||||
notes: |
|
||||
Handles 1KB Majesco GG BIOS (mapped to $0000-$03FF) and
|
||||
standard larger BIOS ROMs.
|
||||
145
emulators/geolith.yml
Normal file
145
emulators/geolith.yml
Normal file
@@ -0,0 +1,145 @@
|
||||
emulator: Geolith
|
||||
type: libretro
|
||||
source: "https://github.com/libretro/geolith-libretro"
|
||||
systems:
|
||||
- snk-neogeo-mvs
|
||||
- snk-neogeo-aes
|
||||
|
||||
notes: |
|
||||
Geolith is a highly accurate Neo Geo AES and MVS emulator using .NEO format
|
||||
ROMs only. BIOS files must be provided as MAME-format ZIP archives in the
|
||||
system directory. The core selects which ZIP to open based on the
|
||||
"geolith_system_type" core option (libretro/libretro.c:1017-1018):
|
||||
- AES mode -> aes.zip
|
||||
- MVS mode -> neogeo.zip
|
||||
- Uni mode -> neogeo.zip (loads uni-bios_4_0.rom from it)
|
||||
|
||||
Inside the ZIP, specific ROM files are extracted by filename
|
||||
(src/geo.c:162-241):
|
||||
1. One 68K BIOS ROM, selected by system type + region:
|
||||
- AES Japan: neo-po.bin
|
||||
- AES other: neo-epo.bin
|
||||
- MVS US: sp-u2.sp1
|
||||
- MVS Japan: japan-j3.bin
|
||||
- MVS Asia: sp-45.sp1
|
||||
- MVS Europe: sp-s2.sp1
|
||||
- Universe: uni-bios_4_0.rom
|
||||
2. 000-lo.lo (zoom lookup table, always required)
|
||||
3. sfix.sfix (FIX layer tiles, required for MVS/Uni, not AES)
|
||||
4. sm1.sm1 (Z80 sound BIOS, required for MVS/Uni, not AES)
|
||||
|
||||
The AES mode only needs the 68K BIOS + 000-lo.lo. MVS and Universe BIOS
|
||||
modes additionally need sfix.sfix and sm1.sm1.
|
||||
|
||||
files:
|
||||
# -----------------------------------------------------------
|
||||
# neogeo.zip - MVS and Universe BIOS
|
||||
# -----------------------------------------------------------
|
||||
|
||||
# MVS 68K BIOS ROMs (one required per region)
|
||||
- name: "sp-u2.sp1"
|
||||
archive: neogeo.zip
|
||||
system: snk-neogeo-mvs
|
||||
required: true
|
||||
size: 131072
|
||||
crc32: "e72943de"
|
||||
note: "MVS USA ver. 5 (2 slot) - default for US region"
|
||||
source_ref: "src/geo.c:174"
|
||||
|
||||
- name: "japan-j3.bin"
|
||||
archive: neogeo.zip
|
||||
system: snk-neogeo-mvs
|
||||
required: false
|
||||
size: 131072
|
||||
crc32: "dff6d41f"
|
||||
note: "MVS Japan (J3) - default for JP region"
|
||||
source_ref: "src/geo.c:177"
|
||||
|
||||
- name: "sp-45.sp1"
|
||||
archive: neogeo.zip
|
||||
system: snk-neogeo-mvs
|
||||
required: false
|
||||
size: 524288
|
||||
crc32: "03cc9f6a"
|
||||
note: "NEO-MVH MV1C (Asia) - default for AS region"
|
||||
source_ref: "src/geo.c:179"
|
||||
|
||||
- name: "sp-s2.sp1"
|
||||
archive: neogeo.zip
|
||||
system: snk-neogeo-mvs
|
||||
required: false
|
||||
size: 131072
|
||||
crc32: "9036d879"
|
||||
note: "MVS Asia/Europe ver. 5 (1 slot) - default for EU region"
|
||||
source_ref: "src/geo.c:183"
|
||||
|
||||
# Universe BIOS (loaded from neogeo.zip when system type = uni)
|
||||
- name: "uni-bios_4_0.rom"
|
||||
archive: neogeo.zip
|
||||
system: snk-neogeo-mvs
|
||||
required: false
|
||||
size: 131072
|
||||
crc32: "a7aab458"
|
||||
note: "Universe BIOS ver. 4.0 - only version supported by Geolith"
|
||||
source_ref: "src/geo.c:189"
|
||||
|
||||
# Shared ROMs (required for MVS and Universe modes)
|
||||
- name: "000-lo.lo"
|
||||
archive: neogeo.zip
|
||||
system: snk-neogeo-mvs
|
||||
required: true
|
||||
size: 131072
|
||||
crc32: "5a86cff2"
|
||||
note: "Zoom lookup table (vertical shrink ROM)"
|
||||
source_ref: "src/geo.c:207-208"
|
||||
|
||||
- name: "sfix.sfix"
|
||||
archive: neogeo.zip
|
||||
system: snk-neogeo-mvs
|
||||
required: true
|
||||
size: 131072
|
||||
crc32: "c2ea0cfd"
|
||||
note: "System FIX layer tiles (text layer)"
|
||||
source_ref: "src/geo.c:218-219"
|
||||
|
||||
- name: "sm1.sm1"
|
||||
archive: neogeo.zip
|
||||
system: snk-neogeo-mvs
|
||||
required: true
|
||||
size: 131072
|
||||
crc32: "94416d67"
|
||||
note: "Z80 sound BIOS"
|
||||
source_ref: "src/geo.c:229-230"
|
||||
|
||||
# -----------------------------------------------------------
|
||||
# aes.zip - AES (Home Console)
|
||||
# -----------------------------------------------------------
|
||||
|
||||
# AES 68K BIOS ROMs (one required per region)
|
||||
- name: "neo-epo.bin"
|
||||
archive: aes.zip
|
||||
system: snk-neogeo-aes
|
||||
required: true
|
||||
size: 131072
|
||||
crc32: "d27a71f1"
|
||||
note: "AES Asia/US/EU - default for non-JP regions"
|
||||
source_ref: "src/geo.c:168"
|
||||
|
||||
- name: "neo-po.bin"
|
||||
archive: aes.zip
|
||||
system: snk-neogeo-aes
|
||||
required: false
|
||||
size: 131072
|
||||
crc32: "16d0c132"
|
||||
note: "AES Japan - default for JP region"
|
||||
source_ref: "src/geo.c:167-168"
|
||||
|
||||
# Shared ROM (always required for AES)
|
||||
- name: "000-lo.lo"
|
||||
archive: aes.zip
|
||||
system: snk-neogeo-aes
|
||||
required: true
|
||||
size: 131072
|
||||
crc32: "5a86cff2"
|
||||
note: "Zoom lookup table (same ROM as in neogeo.zip)"
|
||||
source_ref: "src/geo.c:207-208"
|
||||
65
emulators/gpsp.yml
Normal file
65
emulators/gpsp.yml
Normal file
@@ -0,0 +1,65 @@
|
||||
emulator: gpSP
|
||||
type: libretro
|
||||
source: "https://github.com/libretro/gpsp"
|
||||
cores:
|
||||
- gpsp
|
||||
systems:
|
||||
- nintendo-gba
|
||||
|
||||
notes: |
|
||||
gpSP is a Game Boy Advance emulator originally by Exophase, ported to
|
||||
libretro. Historically it required the official GBA BIOS to run. Current
|
||||
versions ship a built-in open-source BIOS (bios/open_gba_bios.bin) compiled
|
||||
from bios/source/ that covers most games.
|
||||
|
||||
The core option gpsp_bios controls BIOS selection:
|
||||
auto (default) - try official gba_bios.bin, fall back to built-in
|
||||
builtin - always use the built-in open-source BIOS
|
||||
official - try gba_bios.bin, warn and fall back to built-in if missing
|
||||
|
||||
A second option gpsp_boot_mode selects startup behavior:
|
||||
game (default) - skip BIOS intro, boot directly into game
|
||||
bios - run the BIOS boot animation before launching
|
||||
|
||||
BIOS loading path (libretro/libretro.c:1093-1131):
|
||||
1. Resolve system directory (RETRO_ENVIRONMENT_GET_SYSTEM_DIRECTORY)
|
||||
2. Append "/gba_bios.bin"
|
||||
3. load_bios() reads 0x4000 (16 KB) into bios_rom[]
|
||||
4. Sanity check: bios_rom[0] must be 0x18 (ARM branch opcode)
|
||||
5. On failure, memcpy open_gba_bios_rom[] as fallback
|
||||
|
||||
The official BIOS improves compatibility for a few games that rely on
|
||||
precise SWI behavior or BIOS checksum verification. The built-in BIOS
|
||||
works for the vast majority of the GBA library.
|
||||
|
||||
files:
|
||||
# -------------------------------------------------------
|
||||
# Game Boy Advance - BIOS (optional, built-in fallback)
|
||||
# -------------------------------------------------------
|
||||
- name: gba_bios.bin
|
||||
system: nintendo-gba
|
||||
required: false
|
||||
size: 16384 # 16 KB (0x4000)
|
||||
note: "Official GBA BIOS. Built-in open-source BIOS used as fallback. Real BIOS needed for full SWI accuracy and boot logo."
|
||||
source_ref: "libretro/libretro.c:1111"
|
||||
|
||||
platform_details:
|
||||
gba:
|
||||
bios_size: 16384 # 16 KB
|
||||
hle_bios: true
|
||||
source_ref: "libretro/libretro.c:1107-1131, bios/source/"
|
||||
notes: |
|
||||
The built-in BIOS (open_gba_bios_rom, 16 KB) is an open-source
|
||||
reimplementation compiled from bios/source/. It implements most
|
||||
SWI calls (SoftReset, RegisterRamReset, Halt, VBlankIntrWait,
|
||||
arithmetic, decompression, sound, multiboot).
|
||||
|
||||
Validation is minimal: load_bios() in gba_memory.c reads exactly
|
||||
0x4000 bytes. The libretro frontend checks bios_rom[0] == 0x18
|
||||
(ARM branch instruction at reset vector) to reject garbage files.
|
||||
No hash or checksum verification is performed.
|
||||
|
||||
The bios_type enum (main.h:56-61) defines three modes:
|
||||
auto_detect - try official first, fall back to built-in
|
||||
builtin_bios - skip file load entirely, use open_gba_bios_rom
|
||||
official_bios - try file, warn on failure, still fall back
|
||||
39
emulators/handy.yml
Normal file
39
emulators/handy.yml
Normal file
@@ -0,0 +1,39 @@
|
||||
emulator: Handy
|
||||
type: libretro
|
||||
source: "https://github.com/libretro/libretro-handy"
|
||||
systems: [atari-lynx]
|
||||
|
||||
notes: |
|
||||
Handy is an Atari Lynx emulator. The core loads lynxboot.img from
|
||||
the system directory and validates it by CRC32 (0x0D973C9D). If the
|
||||
file is missing or the CRC does not match, the core falls back to an
|
||||
internal HLE BIOS that replicates the boot sequence in software
|
||||
(ram clear, cart loader decrypt, jump to $0200).
|
||||
|
||||
The HLE path intercepts CPU calls to ROM addresses FE00, FE19, FE4A
|
||||
and FF80 via a Mikie register write trap (address 0xFD97). When
|
||||
useEmu is true (no valid BIOS loaded), CRom initialises mRomData
|
||||
with a default fill byte (0x88) plus reset vectors pointing to
|
||||
the HLE entry points. The cart decryption uses a hardcoded RSA
|
||||
public key (lynxdec.cpp) identical to the real hardware.
|
||||
|
||||
With the real BIOS, the first frame has unusually high cycle counts
|
||||
because hardware timers start from the boot ROM rather than being
|
||||
set artificially. Blip_Buffer::end_frame() caps the audio buffer
|
||||
to handle this overflow.
|
||||
|
||||
File path: libretro.cpp retro_load_game() joins
|
||||
RETRO_ENVIRONMENT_GET_SYSTEM_DIRECTORY with "lynxboot.img".
|
||||
No subdirectory.
|
||||
|
||||
files:
|
||||
- name: "lynxboot.img"
|
||||
system: atari-lynx
|
||||
description: "Atari Lynx boot ROM (Mikie internal 512B ROM)"
|
||||
required: false
|
||||
size: 512
|
||||
md5: "fcd403db69f54290b51035d82f835e7b"
|
||||
sha1: "e4ed47fae31693e016b081c6bda48da5b70d7ccb"
|
||||
crc32: "0d973c9d"
|
||||
source_ref: "rom.h:48-49 (ROM_SIZE=0x200, ROM_CRC32=0xD973C9D), rom.cpp:76-128 (CRom constructor), libretro.cpp:1231-1258 (bios path + CSystem init)"
|
||||
notes: "Validated by CRC32 at load time. If invalid or missing, core uses HLE fallback (system.cpp HLE_BIOS_* functions). Games work without it but the real boot ROM provides accurate startup timing."
|
||||
84
emulators/hatari.yml
Normal file
84
emulators/hatari.yml
Normal file
@@ -0,0 +1,84 @@
|
||||
emulator: Hatari
|
||||
type: libretro
|
||||
source: "https://github.com/libretro/hatari"
|
||||
systems: [atari-st, atari-ste, atari-tt, atari-falcon]
|
||||
|
||||
# Hatari requires a TOS ROM image to boot. The default filename is tos.img,
|
||||
# loaded from either system/ or system/hatari/tos/ (libretro core scans both).
|
||||
# EmuTOS (open source replacement) is detected via 'ETOS' magic at offset 0x2c.
|
||||
# Cartridge ROM is optional and loaded from szCartridgeImageFileName config.
|
||||
|
||||
# TOS version/machine compatibility (enforced in tos.c TOS_CheckSysConfig):
|
||||
# TOS 1.00-1.04 -> ST only, 68000
|
||||
# TOS 1.06/1.62 -> STE only
|
||||
# TOS 2.0x -> ST/STE (patched for ST compatibility)
|
||||
# TOS 3.0x -> TT only, 68030+
|
||||
# TOS 4.0x -> Falcon only, 68020+
|
||||
# EmuTOS -> all machine types (no version constraint)
|
||||
|
||||
# Libretro core search paths (libretro.c):
|
||||
# 1. <system>/tos.img (legacy default)
|
||||
# 2. <system>/hatari/tos/ directory (all .img/.rom/.tos files listed as options)
|
||||
# Core option "hatari_tosimage" selects which TOS image to use.
|
||||
|
||||
files:
|
||||
# -- Primary TOS ROM (required) --
|
||||
# At minimum one TOS image must be present. The most commonly used
|
||||
# version is TOS 1.02, which is the default for Atari ST emulation.
|
||||
|
||||
- name: "tos.img"
|
||||
path: "tos.img"
|
||||
required: true
|
||||
note: >
|
||||
TOS ROM image. Any valid version (1.00 through 4.04) or EmuTOS works.
|
||||
The core auto-detects version from the ROM header and adjusts machine type.
|
||||
Default location is system/tos.img, additional images go in system/hatari/tos/.
|
||||
source_ref: "src/tos.c:576-696, libretro/libretro.c:387-410"
|
||||
|
||||
# -- Cartridge ROM (optional) --
|
||||
# External cartridge image, max 128 KB. Formats: .img, .rom, .stc
|
||||
# Cannot be used together with GEMDOS HD emulation or extended VDI resolution.
|
||||
|
||||
- name: "cartridge ROM"
|
||||
path: null # user-configured via szCartridgeImageFileName
|
||||
required: false
|
||||
max_size: 131076 # 0x20004 (.stc with 4-byte header) or 0x20000 (raw)
|
||||
note: >
|
||||
External cartridge image. Loaded to address 0xFA0000.
|
||||
STC format images (0x20004 bytes) have a 4-byte header that is stripped.
|
||||
Mutually exclusive with GEMDOS hard disk emulation and extended VDI.
|
||||
source_ref: "src/cart.c:53-88"
|
||||
|
||||
# Supported TOS versions (from patch table in tos.c):
|
||||
# 0x100 - TOS 1.00 (ST, 68000 only, no VDI extensions)
|
||||
# 0x102 - TOS 1.02 (ST, most common for gaming)
|
||||
# 0x104 - TOS 1.04 (ST, adds autostart support)
|
||||
# 0x106 - TOS 1.06 (STE only)
|
||||
# 0x162 - TOS 1.62 (STE only)
|
||||
# 0x205 - TOS 2.05 (STE native, patched for ST)
|
||||
# 0x206 - TOS 2.06 (STE/ST)
|
||||
# 0x306 - TOS 3.06 (TT, 68030+)
|
||||
# 0x400 - TOS 4.00 (Falcon, 68020+)
|
||||
# 0x401 - TOS 4.01 (Falcon)
|
||||
# 0x402 - TOS 4.02 (Falcon)
|
||||
# 0x404 - TOS 4.04 (Falcon)
|
||||
# 0x492 - TOS 4.92 (RAM TOS variant)
|
||||
|
||||
# TOS ROM sizes (typical):
|
||||
# 192 KB (0x30000) - TOS 1.0x (loaded at 0xFC0000)
|
||||
# 256 KB (0x40000) - TOS 2.0x+ (loaded at 0xE00000)
|
||||
# Up to 1 MB - maximum accepted by the loader
|
||||
|
||||
# File extensions scanned: .img, .rom, .tos
|
||||
|
||||
notes:
|
||||
emutos_note: >
|
||||
EmuTOS is a free open-source TOS replacement that works with all machine types.
|
||||
Hatari detects it via the 'ETOS' signature at ROM offset 0x2c and skips
|
||||
machine-type enforcement and ROM patches.
|
||||
gemdos_boot_note: >
|
||||
When using GEMDOS hard disk mode with .gem files, the core also loads
|
||||
system/hatari/BOOT.ST as a floppy image for bootstrapping.
|
||||
libretro_path_note: >
|
||||
The libretro core checks system/tos.img first for backward compatibility,
|
||||
then scans system/hatari/tos/ for additional TOS images exposed as core options.
|
||||
42
emulators/hbmame.yml
Normal file
42
emulators/hbmame.yml
Normal file
@@ -0,0 +1,42 @@
|
||||
emulator: HBMAME (Homebrew MAME)
|
||||
type: libretro
|
||||
source: "https://github.com/libretro/hbmame-libretro"
|
||||
based_on: MAME 0.220
|
||||
author: Robbbert
|
||||
game_count: 8511
|
||||
|
||||
notes: |
|
||||
HBMAME (Home Brew MAME) is a fork of MAME focused on two things: preserving
|
||||
homebrew games written for arcade hardware, and including worthwhile hacks of
|
||||
existing arcade games. The libretro port builds as TARGET=hbmame.
|
||||
|
||||
Based on MAME 0.220 (src/version.cpp: BARE_BUILD_VERSION "0.220"). The core
|
||||
carries 191 driver files under src/hbmame/drivers/ covering ~8500 game entries
|
||||
(hbmame.lst). Most drivers are hack/homebrew variants of well-known arcade
|
||||
boards: CPS1, CPS2, CPS3, Neo Geo, Pac-Man, Galaxian, etc.
|
||||
|
||||
BIOS handling is identical to MAME. HBMAME does not define any custom BIOS
|
||||
ROMs beyond what standard MAME uses. The Neo Geo subsystem (which accounts for
|
||||
the bulk of hbmame content) reuses the same neogeo.zip BIOS set as MAME:
|
||||
sp-s2.sp1, sm1.sm1, sfix.sfix, 000-lo.lo, plus regional and Universe BIOS
|
||||
variants. The NEO_BIOS macros in src/hbmame/includes/neogeo.h are copied
|
||||
directly from MAME with no modifications to hashes or filenames.
|
||||
|
||||
The neogeo_noslot.cpp driver includes a reduced MV1C-only BIOS set for a few
|
||||
specific PCB games (sp-45.sp1, sp1-j3.bin). The neogeohb.cpp driver handles
|
||||
homebrew and unreleased Neo Geo titles (numbered 300-999) using the same
|
||||
standard BIOS infrastructure.
|
||||
|
||||
No other hbmame-specific drivers (CPS1, CPS2, Pac-Man, Galaxian, etc.) define
|
||||
ROM_SYSTEM_BIOS entries. Their games are ROM-only hacks that rely on parent
|
||||
MAME sets for any BIOS needs.
|
||||
|
||||
BIOS files are expected as MAME-format ZIP archives in the ROM search path.
|
||||
Users with a working MAME 0.220 BIOS collection need nothing extra for HBMAME.
|
||||
|
||||
bios_impact: none
|
||||
bios_note: |
|
||||
Uses the same BIOS ZIPs as MAME 0.220. No custom or modified BIOS entries.
|
||||
The primary BIOS dependency is neogeo.zip for the large Neo Geo homebrew/hack
|
||||
library. Other arcade boards (CPS, Pac-Man, Galaxian, etc.) are ROM-only hacks
|
||||
with no additional BIOS requirements beyond standard MAME parent sets.
|
||||
79
emulators/jollycv.yml
Normal file
79
emulators/jollycv.yml
Normal file
@@ -0,0 +1,79 @@
|
||||
emulator: JollyCV
|
||||
type: libretro
|
||||
source: "https://github.com/libretro/jollycv"
|
||||
cores:
|
||||
- jollycv
|
||||
systems:
|
||||
- colecovision
|
||||
- creativision
|
||||
- myvision
|
||||
|
||||
notes: |
|
||||
JollyCV is a multi-system emulator by Rupert Carmichael supporting
|
||||
ColecoVision (with Super Game Module), CreatiVision, and My Vision.
|
||||
|
||||
BIOS handling depends on the detected system type (set via core option
|
||||
or auto-detected from ROM database via jcv_process_hash/jcv_get_dbflags):
|
||||
|
||||
- ColecoVision (JCV_SYS_COLECO): loads "coleco.rom" from system dir.
|
||||
BIOS is mapped at 0x0000-0x1FFF. Size must be exactly 8192 bytes
|
||||
(SIZE_CVBIOS = SIZE_8K = 0x2000). Load fails if size mismatches.
|
||||
Without the BIOS, ColecoVision games will not run (load returns false).
|
||||
|
||||
- CreatiVision (JCV_SYS_CRVISION): loads "bioscv.rom" from system dir.
|
||||
BIOS is mapped at 0xF800-0xFFFF. Size must be exactly 2048 bytes
|
||||
(SIZE_CRVBIOS = SIZE_2K = 0x800). Without the BIOS, CreatiVision
|
||||
games will not run.
|
||||
|
||||
- My Vision (JCV_SYS_MYVISION): no BIOS required.
|
||||
|
||||
The libretro port constructs paths via snprintf("%s%c%s", sysdir, pss,
|
||||
filename) in libretro.c:699-711. jcv_bios_load_file() opens the file,
|
||||
reads it fully, then delegates to jcv_coleco_bios_load() or
|
||||
jcv_crvision_bios_load() which validate size before copying.
|
||||
|
||||
ColecoVision cartridge header bytes at offset 0x0000-0x0001 control
|
||||
boot behavior: 0xAA55 shows the BIOS title screen, 0x55AA jumps
|
||||
directly to the game code vector.
|
||||
|
||||
The core includes a built-in ROM database with MD5 hashes (gamedb.h)
|
||||
for game-specific flags, but this is for game compatibility, not BIOS
|
||||
verification.
|
||||
|
||||
files:
|
||||
# --- ColecoVision BIOS (required for CV games) ---
|
||||
- name: "coleco.rom"
|
||||
system: colecovision
|
||||
description: "ColecoVision BIOS ROM"
|
||||
required: true
|
||||
size: 8192
|
||||
md5: "2c66f5911e5b42b8ebe113403548eee7"
|
||||
sha1: "4aa1d9b48f39b68bb17b3d6997b74850c6089dc3"
|
||||
source_ref: "libretro/libretro.c:701, src/jcv_coleco.c:402-406"
|
||||
notes: "Mapped at 0x0000-0x1FFF. Replaced by SGM lower RAM when Super Game Module is active. Must be exactly 8192 bytes."
|
||||
|
||||
# --- CreatiVision BIOS (required for CV games) ---
|
||||
- name: "bioscv.rom"
|
||||
system: creativision
|
||||
description: "VTech CreatiVision BIOS ROM"
|
||||
required: true
|
||||
size: 2048
|
||||
source_ref: "libretro/libretro.c:711, src/jcv_crvision.c:315-318"
|
||||
notes: "Mapped at 0xF800-0xFFFF. Must be exactly 2048 bytes."
|
||||
|
||||
platform_details:
|
||||
colecovision:
|
||||
bios_filename: "coleco.rom"
|
||||
bios_size: 8192
|
||||
memory_map: "0x0000-0x1FFF"
|
||||
source_ref: "src/jcv_coleco.c:269-281"
|
||||
|
||||
creativision:
|
||||
bios_filename: "bioscv.rom"
|
||||
bios_size: 2048
|
||||
memory_map: "0xF800-0xFFFF"
|
||||
source_ref: "src/jcv_crvision.c:315-337, 441"
|
||||
|
||||
myvision:
|
||||
bios_required: false
|
||||
notes: "No BIOS needed. My Vision games run without any system ROM."
|
||||
238
emulators/kronos.yml
Normal file
238
emulators/kronos.yml
Normal file
@@ -0,0 +1,238 @@
|
||||
emulator: Kronos
|
||||
type: libretro
|
||||
cores:
|
||||
- kronos_libretro
|
||||
- yabause_libretro
|
||||
source: "https://github.com/FCare/Kronos"
|
||||
systems:
|
||||
- sega-saturn
|
||||
- sega-stv
|
||||
|
||||
notes: |
|
||||
Kronos is a Sega Saturn and ST-V arcade emulator forked from Yabause.
|
||||
The libretro repo at libretro/yabause ships the older "Yabause" core
|
||||
(yabause_libretro) which handles Saturn only and has no STV support.
|
||||
|
||||
Saturn BIOS search order (Kronos):
|
||||
1. {system}/kronos/saturn_bios.bin
|
||||
2. {system}/saturn_bios.bin
|
||||
3. {system}/sega_101.bin
|
||||
4. {system}/mpr-17933.bin
|
||||
First file found wins. Real BIOS required, HLE is deprecated and causes
|
||||
issues. Multi-disc (m3u) also forces real BIOS.
|
||||
|
||||
Saturn BIOS search order (YabaSanshiro / Yabause):
|
||||
1. {system}/saturn_bios.bin
|
||||
2. {system}/sega_101.bin
|
||||
3. {system}/mpr-17933.bin
|
||||
Falls back to HLE if none found, but HLE is not recommended.
|
||||
|
||||
ST-V BIOS (Kronos only):
|
||||
{system}/kronos/stvbios.zip or {system}/stvbios.zip
|
||||
The ZIP is a MAME-style romset containing region-specific EPROMs.
|
||||
Kronos picks the first matching BIOS by region, with a configurable
|
||||
"favorite region" core option (EU/US/JP/TW). The ZIP must contain
|
||||
at least one of the BIOS blobs listed below. ST-V games are detected
|
||||
automatically when loading a .zip file.
|
||||
|
||||
BIOS loading: libretro.c retro_load_game() lines 1601-1727.
|
||||
STV blob table: ctrl/src/stv.c BiosList lines 112-136.
|
||||
Region enums: ctrl/include/stv.h lines 47-52.
|
||||
|
||||
files:
|
||||
# -----------------------------------------------------------
|
||||
# Saturn BIOS - generic (any region accepted)
|
||||
# -----------------------------------------------------------
|
||||
- name: "saturn_bios.bin"
|
||||
system: sega-saturn
|
||||
required: true
|
||||
size: 524288 # 512 KB (0x80000)
|
||||
note: "Primary Saturn BIOS. Any region. Searched first by both cores."
|
||||
source_ref: "libretro.c:1619-1623 (kronos), libretro.c:1035 (yabause)"
|
||||
|
||||
# -----------------------------------------------------------
|
||||
# Saturn BIOS - Japan v1.01
|
||||
# -----------------------------------------------------------
|
||||
- name: "sega_101.bin"
|
||||
system: sega-saturn
|
||||
region: [japan]
|
||||
required: false
|
||||
size: 524288
|
||||
md5: "85ec9ca47d8f6807718151cbcca8b964"
|
||||
note: "Saturn BIOS v1.01 (Japan). Fallback if saturn_bios.bin missing."
|
||||
source_ref: "libretro.c:1627 (kronos), libretro.c:1039 (yabause)"
|
||||
|
||||
# -----------------------------------------------------------
|
||||
# Saturn BIOS - NA/EU
|
||||
# -----------------------------------------------------------
|
||||
- name: "mpr-17933.bin"
|
||||
system: sega-saturn
|
||||
region: [north-america, europe]
|
||||
required: false
|
||||
size: 524288
|
||||
md5: "3240872c70984b6cbfda1586cab68dbe"
|
||||
note: "Saturn BIOS (NA/EU). Last fallback for Saturn mode."
|
||||
source_ref: "libretro.c:1631 (kronos), libretro.c:1043 (yabause)"
|
||||
|
||||
# -----------------------------------------------------------
|
||||
# ST-V Arcade BIOS (stvbios.zip) - Kronos only
|
||||
# -----------------------------------------------------------
|
||||
- name: "stvbios.zip"
|
||||
system: sega-stv
|
||||
required: true
|
||||
note: >
|
||||
MAME-style ZIP containing ST-V region BIOS EPROMs. Required for
|
||||
ST-V arcade games. Kronos picks the best match based on game
|
||||
region and the stv_favorite_region core option. At least one
|
||||
BIOS blob must be present. Searched in kronos/ subdir first.
|
||||
source_ref: "libretro.c:1608-1617, ctrl/src/stv.c:112-136"
|
||||
|
||||
# -----------------------------------------------------------
|
||||
# ST-V BIOS blobs inside stvbios.zip
|
||||
# -----------------------------------------------------------
|
||||
|
||||
# Japan
|
||||
- name: "epr-23603.ic8"
|
||||
system: sega-stv
|
||||
region: [japan]
|
||||
required: false
|
||||
size: 524288
|
||||
crc32: "f688ae60"
|
||||
note: "STV BIOS Japan (latest). Inside stvbios.zip."
|
||||
source_ref: "stv.c:120"
|
||||
|
||||
- name: "epr-20091.ic8"
|
||||
system: sega-stv
|
||||
region: [japan]
|
||||
required: false
|
||||
size: 524288
|
||||
crc32: "59ed40f4"
|
||||
note: "STV BIOS Japan v1. Inside stvbios.zip."
|
||||
source_ref: "stv.c:121"
|
||||
|
||||
- name: "epr-19730.ic8"
|
||||
system: sega-stv
|
||||
region: [japan]
|
||||
required: false
|
||||
size: 524288
|
||||
crc32: "d0e0889d"
|
||||
note: "STV BIOS Japan v2. Inside stvbios.zip."
|
||||
source_ref: "stv.c:122"
|
||||
|
||||
- name: "epr-17951a.ic8"
|
||||
system: sega-stv
|
||||
region: [japan]
|
||||
required: false
|
||||
size: 524288
|
||||
crc32: "2672f9d8"
|
||||
note: "STV BIOS Japan v3. Inside stvbios.zip."
|
||||
source_ref: "stv.c:123"
|
||||
|
||||
- name: "epr-17740a.ic8"
|
||||
system: sega-stv
|
||||
region: [japan]
|
||||
required: false
|
||||
size: 524288
|
||||
crc32: "3e23c81f"
|
||||
note: "STV BIOS Japan v4. Inside stvbios.zip."
|
||||
source_ref: "stv.c:124"
|
||||
|
||||
- name: "epr-17740.ic8"
|
||||
system: sega-stv
|
||||
region: [japan]
|
||||
required: false
|
||||
size: 524288
|
||||
crc32: "5c5aa63d"
|
||||
note: "STV BIOS Japan v5. Inside stvbios.zip."
|
||||
source_ref: "stv.c:125"
|
||||
|
||||
# Europe
|
||||
- name: "epr-17954a.ic8"
|
||||
system: sega-stv
|
||||
region: [europe]
|
||||
required: false
|
||||
size: 524288
|
||||
crc32: "f7722da3"
|
||||
note: "STV BIOS Europe. Inside stvbios.zip."
|
||||
source_ref: "stv.c:126"
|
||||
|
||||
# USA
|
||||
- name: "epr-17952a.ic8"
|
||||
system: sega-stv
|
||||
region: [north-america]
|
||||
required: false
|
||||
size: 524288
|
||||
crc32: "d1be2adf"
|
||||
note: "STV BIOS USA. Inside stvbios.zip."
|
||||
source_ref: "stv.c:127"
|
||||
|
||||
- name: "epr-17741a.ic8"
|
||||
system: sega-stv
|
||||
region: [north-america]
|
||||
required: false
|
||||
size: 524288
|
||||
crc32: "4166c663"
|
||||
note: "STV BIOS USA v1. Inside stvbios.zip."
|
||||
source_ref: "stv.c:128"
|
||||
|
||||
# Taiwan
|
||||
- name: "epr-19854.ic8"
|
||||
system: sega-stv
|
||||
region: [taiwan]
|
||||
required: false
|
||||
size: 524288
|
||||
crc32: "e09d1f60"
|
||||
note: "STV BIOS Taiwan. Inside stvbios.zip."
|
||||
source_ref: "stv.c:129"
|
||||
|
||||
- name: "epr-17953a.ic8"
|
||||
system: sega-stv
|
||||
region: [taiwan]
|
||||
required: false
|
||||
size: 524288
|
||||
crc32: "a4c47570"
|
||||
note: "STV BIOS Taiwan v1. Inside stvbios.zip."
|
||||
source_ref: "stv.c:130"
|
||||
|
||||
- name: "epr-17742a.ic8"
|
||||
system: sega-stv
|
||||
region: [taiwan]
|
||||
required: false
|
||||
size: 524288
|
||||
crc32: "02daf123"
|
||||
note: "STV BIOS Taiwan v2. Inside stvbios.zip."
|
||||
source_ref: "stv.c:131"
|
||||
|
||||
# Debug / Dev
|
||||
- name: "stv110.bin"
|
||||
system: sega-stv
|
||||
required: false
|
||||
size: 524288
|
||||
crc32: "3dfeda92"
|
||||
note: "STV debug BIOS. Inside stvbios.zip. Not used in normal operation."
|
||||
source_ref: "stv.c:132"
|
||||
|
||||
- name: "stv1061.bin"
|
||||
system: sega-stv
|
||||
required: false
|
||||
size: 524288
|
||||
crc32: "728dbca3"
|
||||
note: "STV dev BIOS. Inside stvbios.zip. Not used in normal operation."
|
||||
source_ref: "stv.c:133"
|
||||
|
||||
platform_details:
|
||||
saturn:
|
||||
bios_size: 524288
|
||||
bios_address: "0x00000000-0x0007FFFF"
|
||||
hle_available: true
|
||||
hle_recommended: false
|
||||
kronos_bios_subdir: "kronos"
|
||||
source_ref: "sys/memory/src/memory.c:1346, libretro.c:1619-1638"
|
||||
stv:
|
||||
bios_format: "MAME-style ZIP (stvbios.zip)"
|
||||
blob_size: 524288
|
||||
blob_load_address: "0x000000"
|
||||
regions: [japan, europe, north-america, taiwan]
|
||||
region_selection: "automatic per game, overridable via kronos_stv_favorite_region"
|
||||
kronos_bios_subdir: "kronos"
|
||||
source_ref: "ctrl/src/stv.c:112-136, ctrl/include/stv.h:47-52"
|
||||
284
emulators/mame2003_plus.yml
Normal file
284
emulators/mame2003_plus.yml
Normal file
@@ -0,0 +1,284 @@
|
||||
emulator: MAME 2003-Plus
|
||||
type: libretro
|
||||
source: "https://github.com/libretro/mame2003-plus-libretro"
|
||||
mame_version: "0.78 (plus backports)"
|
||||
systems:
|
||||
- snk-neogeo-mvs
|
||||
- snk-neogeo-aes
|
||||
- igs-pgm
|
||||
- sega-stv
|
||||
- sega-megaplay
|
||||
- sega-megatech
|
||||
- deco-cassette
|
||||
- nintendo-playch10
|
||||
- nintendo-nss
|
||||
- super-kaneko-nova
|
||||
- konami-gx
|
||||
- zn1-capcom
|
||||
- zn2-capcom
|
||||
- zn1-taito
|
||||
- zn1-tecmo
|
||||
- zn1-video-system
|
||||
- zn1-acclaim
|
||||
- zn1-atlus
|
||||
|
||||
notes: |
|
||||
MAME 2003-Plus is a libretro port of MAME 0.78 with backported drivers, bug fixes,
|
||||
and new game support contributed after the original 0.78 snapshot. It targets
|
||||
low-end hardware (Raspberry Pi, handhelds) while expanding game compatibility
|
||||
beyond stock 0.78.
|
||||
|
||||
BIOS handling follows standard MAME conventions. Each arcade board with a shared
|
||||
BIOS defines a parent ROM set. Game drivers reference this parent, and the emulator
|
||||
merges the parent ZIP contents at load time.
|
||||
|
||||
BIOS ZIPs are searched in:
|
||||
1. {content_dir}/ (same folder as the game ROM)
|
||||
2. {system_dir}/mame2003-plus/ (libretro system subfolder)
|
||||
3. {system_dir}/ (libretro system root)
|
||||
|
||||
ROM naming follows MAME 0.78 conventions with some updates from the Plus patches.
|
||||
ROMs from modern MAME may not match expected CRC32/SHA1 values. Use a
|
||||
mame2003-plus-specific romset for full compatibility.
|
||||
|
||||
Key differences from FBNeo and modern MAME:
|
||||
- Neo Geo: uses mame.sm1 / mamelo.lo / sfix.sfx naming (not sm1.sm1 / 000-lo.lo)
|
||||
- Neo Geo: Universe BIOS up to 4.0 (FBNeo has newer)
|
||||
- PGM: uses pgm_p01s.rom naming (not pgm_p01s.u20)
|
||||
- No NAOMI, no Atomiswave, no CPS-3 (too late for 0.78 era)
|
||||
- ZN-1/ZN-2 boards present but marked NOT_WORKING
|
||||
|
||||
The Neo Geo set is the most critical BIOS for this core since nearly all Neo Geo
|
||||
games work well. PGM and ST-V have partial support. Most ZN-based games are
|
||||
flagged NOT_WORKING due to incomplete PlayStation emulation in 0.78.
|
||||
|
||||
bios_zips:
|
||||
# ---------------------------------------------------------
|
||||
# SNK Neo Geo MVS/AES (neogeo.zip)
|
||||
# ---------------------------------------------------------
|
||||
- name: neogeo.zip
|
||||
system: snk-neogeo-mvs
|
||||
required: true
|
||||
note: "MVS/AES BIOS, 15 variants including Universe BIOS 4.0"
|
||||
source_ref: "src/drivers/neogeo.c:1677-1714"
|
||||
key_files:
|
||||
# 68K BIOS variants (one active at a time via dipswitch)
|
||||
- "sp-s2.sp1 (Europe MVS v2, default)"
|
||||
- "sp-s.sp1 (Europe MVS v1)"
|
||||
- "usa_2slt.bin (US MVS v2)"
|
||||
- "sp-e.sp1 (US MVS v1)"
|
||||
- "asia-s3.rom (Asia MVS v3)"
|
||||
- "vs-bios.rom (Japan MVS v6)"
|
||||
- "sp-j2.sp1 (Japan MVS v2)"
|
||||
- "uni-bios_4_0.rom (Universe BIOS 4.0, hack)"
|
||||
- "uni-bios_3_3.rom (Universe BIOS 3.3, hack)"
|
||||
- "uni-bios_2_0.rom (Universe BIOS 2.0, hack)"
|
||||
- "uni-bios_1_3.rom (Universe BIOS 1.3, hack)"
|
||||
- "uni-bios_1_1.rom (Universe BIOS 1.1, hack)"
|
||||
- "uni-bios_1_0.rom (Universe BIOS 1.0, hack)"
|
||||
- "neodebug.rom (Debug MVS)"
|
||||
- "neo-epo.bin (Asia AES)"
|
||||
# Z80 sound BIOS (always required)
|
||||
- "mame.sm1 (Z80 sound BIOS, 128KB)"
|
||||
# Fix tiles (always required)
|
||||
- "sfix.sfx (fix layer tiles, 128KB)"
|
||||
# Zoom table (always required)
|
||||
- "mamelo.lo (Y zoom control, 64KB)"
|
||||
|
||||
# Irritating Maze special BIOS (separate from standard neogeo)
|
||||
# - name: irrmaze.zip (uses 236-bios.bin, Asia-only dedicated cabinet)
|
||||
|
||||
# ---------------------------------------------------------
|
||||
# IGS PGM (pgm.zip)
|
||||
# ---------------------------------------------------------
|
||||
- name: pgm.zip
|
||||
system: igs-pgm
|
||||
required: true
|
||||
note: "PGM system BIOS - 68K program, text tiles, samples"
|
||||
source_ref: "src/drivers/pgm.c:3459-3468"
|
||||
key_files:
|
||||
- "pgm_p01s.rom (68K BIOS, 128KB)"
|
||||
- "pgm_t01s.rom (text tiles, 2MB)"
|
||||
- "pgm_m01s.rom (samples, 2MB)"
|
||||
|
||||
# ---------------------------------------------------------
|
||||
# Sega ST-V (stvbios.zip)
|
||||
# ---------------------------------------------------------
|
||||
- name: stvbios.zip
|
||||
system: sega-stv
|
||||
required: true
|
||||
note: "ST-V (Saturn-based arcade) BIOS, 6 region variants"
|
||||
source_ref: "src/drivers/stv.c:3741-3767"
|
||||
key_files:
|
||||
- "epr19730.ic8 (Japan)"
|
||||
- "mp17951a.s (Japan alt)"
|
||||
- "mp17952a.s (USA)"
|
||||
- "20091.bin (Japan alt 2)"
|
||||
- "mp17953a.ic8 (Taiwan)"
|
||||
- "mp17954a.s (Europe)"
|
||||
|
||||
# ---------------------------------------------------------
|
||||
# Sega Mega Play (megaplay.zip)
|
||||
# ---------------------------------------------------------
|
||||
- name: megaplay.zip
|
||||
system: sega-megaplay
|
||||
required: true
|
||||
note: "Mega Play BIOS, 2 versions"
|
||||
source_ref: "src/drivers/segac2.c:5794-5804"
|
||||
key_files:
|
||||
- "ep15294.ic2 (Mega Play BIOS v1)"
|
||||
- "megaplay.bin (Mega Play BIOS v2)"
|
||||
|
||||
# ---------------------------------------------------------
|
||||
# Sega Mega Tech (megatech.zip)
|
||||
# ---------------------------------------------------------
|
||||
- name: megatech.zip
|
||||
system: sega-megatech
|
||||
required: true
|
||||
note: "Mega Tech BIOS - menu/instruction screen processor"
|
||||
source_ref: "src/drivers/segac2.c:5434-5437"
|
||||
key_files:
|
||||
- "epr12664.20 (Mega Tech BIOS, 32KB)"
|
||||
|
||||
# ---------------------------------------------------------
|
||||
# DECO Cassette (decocass.zip)
|
||||
# ---------------------------------------------------------
|
||||
- name: decocass.zip
|
||||
system: deco-cassette
|
||||
required: true
|
||||
note: "DECO Cassette shared BIOS - 6502 CPU, sound, MCU, PROMs"
|
||||
source_ref: "src/drivers/decocass.c:696-727"
|
||||
key_files:
|
||||
# BIOS variant A
|
||||
- "v0a-.7e (6502 BIOS variant A)"
|
||||
# BIOS variant B
|
||||
- "rms8.cpu (6502 BIOS variant B)"
|
||||
# Shared across both variants
|
||||
- "rms8.snd (audio CPU, 2KB)"
|
||||
- "cass8041.bin (MCU, 1KB)"
|
||||
- "dsp8.3m (PROM)"
|
||||
- "dsp8.10d (PROM)"
|
||||
- "rms8.j3 (DRAM banking PROM)"
|
||||
|
||||
# ---------------------------------------------------------
|
||||
# Nintendo PlayChoice-10 (playch10.zip)
|
||||
# ---------------------------------------------------------
|
||||
- name: playch10.zip
|
||||
system: nintendo-playch10
|
||||
required: true
|
||||
note: "PlayChoice-10 BIOS - Z80 main CPU + character ROMs + PROMs"
|
||||
source_ref: "src/drivers/playch10.c:815-827"
|
||||
key_files:
|
||||
- "pch1-c.8t (Z80 BIOS, 16KB)"
|
||||
- "pch1-c.8p (character ROM)"
|
||||
- "pch1-c.8m (character ROM)"
|
||||
- "pch1-c.8k (character ROM)"
|
||||
- "82s129.6f (color PROM)"
|
||||
- "82s129.6e (color PROM)"
|
||||
- "82s129.6d (color PROM)"
|
||||
|
||||
# ---------------------------------------------------------
|
||||
# Nintendo Super System (nss.zip)
|
||||
# ---------------------------------------------------------
|
||||
- name: nss.zip
|
||||
system: nintendo-nss
|
||||
required: true
|
||||
note: "Nintendo Super System BIOS - SPC700 boot ROM + BIOS CPU"
|
||||
source_ref: "src/drivers/nss.c:260-269"
|
||||
key_files:
|
||||
- "spc700.rom (SPC700 boot ROM, 64 bytes)"
|
||||
- "nss-c.dat (NSS BIOS CPU, 32KB)"
|
||||
- "nss-ic14.02 (NSS BIOS CPU alt, 32KB)"
|
||||
|
||||
# ---------------------------------------------------------
|
||||
# Super Kaneko Nova System (skns.zip)
|
||||
# ---------------------------------------------------------
|
||||
- name: skns.zip
|
||||
system: super-kaneko-nova
|
||||
required: true
|
||||
note: "Super Kaneko Nova System BIOS, 4 region variants"
|
||||
source_ref: "src/drivers/suprnova.c:1226-1229"
|
||||
key_files:
|
||||
- "sknsj1.u10 (Japan BIOS, 512KB)"
|
||||
- "sknse1.u10 (Europe BIOS, 512KB)"
|
||||
- "sknsa1.u10 (Asia BIOS, 512KB)"
|
||||
- "sknsu1.u10 (USA BIOS, 512KB)"
|
||||
|
||||
# ---------------------------------------------------------
|
||||
# Konami GX (konamigx.zip)
|
||||
# ---------------------------------------------------------
|
||||
- name: konamigx.zip
|
||||
system: konami-gx
|
||||
required: true
|
||||
note: "Konami System GX BIOS"
|
||||
source_ref: "src/drivers/konamigx.c:2404"
|
||||
key_files:
|
||||
- "300a01.34k (GX BIOS, 128KB)"
|
||||
|
||||
# ---------------------------------------------------------
|
||||
# ZN-1/ZN-2 PlayStation-based arcade boards
|
||||
# These are mostly NOT_WORKING in mame2003-plus due to
|
||||
# incomplete PS1 emulation in the 0.78 codebase
|
||||
# ---------------------------------------------------------
|
||||
|
||||
# Capcom ZN-1
|
||||
- name: cpzn1.zip
|
||||
system: zn1-capcom
|
||||
required: true
|
||||
note: "Capcom ZN-1 BIOS (PS1-based). Most games NOT_WORKING"
|
||||
source_ref: "src/drivers/zn.c:1016-1018"
|
||||
key_files:
|
||||
- "coh1002c.bin (Capcom ZN-1 BIOS, 512KB)"
|
||||
|
||||
# Capcom ZN-2
|
||||
- name: cpzn2.zip
|
||||
system: zn2-capcom
|
||||
required: true
|
||||
note: "Capcom ZN-2 BIOS (PS1-based). Most games NOT_WORKING"
|
||||
source_ref: "src/drivers/zn.c:1274-1276"
|
||||
key_files:
|
||||
- "coh3002c.bin (Capcom ZN-2 BIOS, 512KB)"
|
||||
|
||||
# Taito FX-1
|
||||
- name: taitofx1.zip
|
||||
system: zn1-taito
|
||||
required: true
|
||||
note: "Taito FX-1 BIOS (PS1-based). Most games NOT_WORKING"
|
||||
source_ref: "src/drivers/zn.c:1579-1581"
|
||||
key_files:
|
||||
- "coh1002t.bin (Taito FX-1 BIOS, 512KB)"
|
||||
|
||||
# Tecmo TPS
|
||||
- name: tps.zip
|
||||
system: zn1-tecmo
|
||||
required: true
|
||||
note: "Tecmo TPS BIOS (PS1-based). Most games NOT_WORKING"
|
||||
source_ref: "src/drivers/zn.c:1466-1468"
|
||||
key_files:
|
||||
- "coh1002m.bin (Tecmo TPS BIOS, 512KB)"
|
||||
|
||||
# Video System / Taito KN (sncwgltd uses this)
|
||||
- name: sncwgltd.zip
|
||||
system: zn1-video-system
|
||||
required: false
|
||||
note: "Video System KN BIOS (PS1-based). NOT_WORKING"
|
||||
source_ref: "src/drivers/zn.c:1555-1557"
|
||||
key_files:
|
||||
- "coh1002v.bin (KN BIOS, 512KB)"
|
||||
|
||||
# Acclaim PSX
|
||||
- name: acpsx.zip
|
||||
system: zn1-acclaim
|
||||
required: true
|
||||
note: "Acclaim PSX BIOS (PS1-based). NOT_WORKING"
|
||||
source_ref: "src/drivers/zn.c:1815-1817"
|
||||
key_files:
|
||||
- "coh1000a.bin (Acclaim PSX BIOS, 512KB)"
|
||||
|
||||
# Atlus PSX (PSARC95) - BIOS ROM is NO_DUMP
|
||||
# - name: psarc95.zip
|
||||
# note: "PSARC95 BIOS is NO_DUMP (coh1002e.bin), games won't boot"
|
||||
|
||||
# Atari PSX - BIOS ROM is NO_DUMP
|
||||
# - name: atpsx.zip
|
||||
# note: "Atari PSX BIOS is NO_DUMP (coh1000t.bin), games won't boot"
|
||||
268
emulators/mame2010.yml
Normal file
268
emulators/mame2010.yml
Normal file
@@ -0,0 +1,268 @@
|
||||
emulator: MAME 2010
|
||||
type: libretro
|
||||
source: "https://github.com/libretro/mame2010-libretro"
|
||||
mame_version: "0.139"
|
||||
systems:
|
||||
- snk-neogeo-mvs
|
||||
- igs-pgm
|
||||
- sega-naomi
|
||||
- sega-naomi2
|
||||
- sega-naomigd
|
||||
- sega-stv
|
||||
- sega-hikaru
|
||||
- sega-chihiro
|
||||
- sega-triforce
|
||||
- sega-model2
|
||||
- commodore-cd32
|
||||
- philips-cdi
|
||||
- deco-cassette
|
||||
- nintendo-playch10
|
||||
- sega-megaplay
|
||||
- sega-megatech
|
||||
- nintendo-sfcbox
|
||||
- nintendo-nss
|
||||
- snk-neogeo-aes
|
||||
- sammy-atomiswave
|
||||
- taito-type-x
|
||||
- namco-system246
|
||||
- namco-system256
|
||||
- namco-system573
|
||||
- konami-viper
|
||||
- cave-cv1000
|
||||
|
||||
notes: |
|
||||
MAME 2010 is a libretro port of MAME 0.139, released around mid-2010. Compared
|
||||
to mame2003 (MAME 0.78, early 2003), it adds roughly 7 years of MAME development
|
||||
including better driver accuracy, more supported arcade boards, and additional
|
||||
BIOS sets.
|
||||
|
||||
Key differences from mame2003 (0.78):
|
||||
- 51 BIOS root sets vs ~30 in mame2003
|
||||
- Sega boards: adds Hikaru, Chihiro, Triforce, Naomi 2, Naomi GD-ROM
|
||||
- Namco boards: adds System 246/256/573
|
||||
- Konami: adds Viper, expanded GX support
|
||||
- Philips CD-i support (cdi)
|
||||
- Taito Type X / GNet expanded
|
||||
- Crystal System (Brezzasoft)
|
||||
- More ZN-1/ZN-2/PSX-based board variants (cpzn1, cpzn2, atpsx, etc.)
|
||||
- Neo Geo: same core BIOS set, adds Universe BIOS up to 2.3
|
||||
- PGM: same BIOS ROMs, more game drivers
|
||||
|
||||
BIOS ZIPs are standard MAME romsets. The core looks for them in:
|
||||
1. {content_dir}/ (same folder as the game ROM)
|
||||
2. {system_dir}/mame2010/ (libretro system subfolder)
|
||||
3. {system_dir}/ (libretro system root)
|
||||
|
||||
ROM naming follows MAME 0.139 conventions. ROMs from newer or older MAME
|
||||
versions may not match expected CRC32/SHA1 values. Use a 0.139-specific
|
||||
romset for full compatibility.
|
||||
|
||||
bios_zips:
|
||||
# SNK Neo Geo MVS/AES
|
||||
- name: neogeo.zip
|
||||
system: snk-neogeo-mvs
|
||||
required: true
|
||||
note: "MVS/AES BIOS, 21 variants (11 official + 10 Universe BIOS up to 2.3)"
|
||||
source_ref: "src/mame/drivers/neodrvr.c:565-614"
|
||||
key_files:
|
||||
- "sp-s2.sp1 (Europe, default)"
|
||||
- "usa_2slt.bin (US, 2 slot)"
|
||||
- "asia-s3.rom (Asia)"
|
||||
- "vs-bios.rom (Japan VS)"
|
||||
- "sp-45.sp1 (MV1C Asia, 512KB)"
|
||||
- "sm1.sm1 (Z80 sound, always required)"
|
||||
- "sfix.sfix (fix tiles, always required)"
|
||||
- "000-lo.lo (zoom table, always required)"
|
||||
|
||||
# IGS PGM
|
||||
- name: pgm.zip
|
||||
system: igs-pgm
|
||||
required: true
|
||||
note: "PGM system BIOS, 2 program ROM versions + shared tiles/samples"
|
||||
source_ref: "src/mame/drivers/pgm.c:1525-1533"
|
||||
key_files:
|
||||
- "pgm_p02s.u20 (68K BIOS v2, default)"
|
||||
- "pgm_p01s.u20 (68K BIOS v1)"
|
||||
- "pgm_t01s.rom (text tiles, 2MB)"
|
||||
- "pgm_m01s.rom (samples, 2MB)"
|
||||
|
||||
# Sega Naomi / Naomi 2 / Naomi GD-ROM / Atomiswave
|
||||
- name: naomi.zip
|
||||
system: sega-naomi
|
||||
required: true
|
||||
note: "Naomi BIOS, multiple region variants"
|
||||
source_ref: "src/mame/drivers/naomi.c"
|
||||
|
||||
- name: naomi2.zip
|
||||
system: sega-naomi2
|
||||
required: true
|
||||
note: "Naomi 2 BIOS"
|
||||
source_ref: "src/mame/drivers/naomi.c"
|
||||
|
||||
- name: naomigd.zip
|
||||
system: sega-naomigd
|
||||
required: true
|
||||
note: "Naomi GD-ROM BIOS"
|
||||
source_ref: "src/mame/drivers/naomi.c"
|
||||
|
||||
- name: awbios.zip
|
||||
system: sammy-atomiswave
|
||||
required: true
|
||||
note: "Atomiswave BIOS (Sammy)"
|
||||
source_ref: "src/mame/drivers/naomi.c"
|
||||
|
||||
# Sega ST-V (Saturn-based arcade)
|
||||
- name: stvbios.zip
|
||||
system: sega-stv
|
||||
required: true
|
||||
note: "ST-V BIOS, multiple region variants"
|
||||
source_ref: "src/mame/drivers/stv.c"
|
||||
|
||||
# Sega Hikaru / Chihiro / Triforce
|
||||
- name: hikaru.zip
|
||||
system: sega-hikaru
|
||||
required: true
|
||||
note: "Hikaru BIOS (not working in 0.139)"
|
||||
source_ref: "src/mame/drivers/hikaru.c"
|
||||
|
||||
- name: chihiro.zip
|
||||
system: sega-chihiro
|
||||
required: true
|
||||
note: "Chihiro BIOS (Xbox-based, not working in 0.139)"
|
||||
source_ref: "src/mame/drivers/chihiro.c"
|
||||
|
||||
- name: triforce.zip
|
||||
system: sega-triforce
|
||||
required: true
|
||||
note: "Triforce BIOS (GameCube-based, not working in 0.139)"
|
||||
source_ref: "src/mame/drivers/triforce.c"
|
||||
|
||||
# DECO Cassette
|
||||
- name: decocass.zip
|
||||
system: deco-cassette
|
||||
required: true
|
||||
note: "DECO Cassette BIOS, 4 regions (Japan/USA/UK/Europe) x old/new"
|
||||
source_ref: "src/mame/drivers/decocass.c"
|
||||
|
||||
# Nintendo arcade
|
||||
- name: playch10.zip
|
||||
system: nintendo-playch10
|
||||
required: true
|
||||
note: "PlayChoice-10 BIOS"
|
||||
source_ref: "src/mame/drivers/playch10.c"
|
||||
|
||||
- name: nss.zip
|
||||
system: nintendo-nss
|
||||
required: true
|
||||
note: "Nintendo Super System BIOS"
|
||||
source_ref: "src/mame/drivers/nss.c"
|
||||
|
||||
- name: sfcbox.zip
|
||||
system: nintendo-sfcbox
|
||||
required: true
|
||||
note: "Super Famicom Box BIOS"
|
||||
source_ref: "src/mame/drivers/sfcbox.c"
|
||||
|
||||
# Sega Mega Drive arcade
|
||||
- name: megaplay.zip
|
||||
system: sega-megaplay
|
||||
required: true
|
||||
note: "Mega Play BIOS (Mega Drive arcade)"
|
||||
source_ref: "src/mame/drivers/megaplay.c"
|
||||
|
||||
- name: megatech.zip
|
||||
system: sega-megatech
|
||||
required: true
|
||||
note: "Mega-Tech BIOS (Mega Drive arcade)"
|
||||
source_ref: "src/mame/drivers/megatech.c"
|
||||
|
||||
# Commodore CD32
|
||||
- name: cd32.zip
|
||||
system: commodore-cd32
|
||||
required: true
|
||||
note: "Amiga CD32 BIOS"
|
||||
source_ref: "src/mame/drivers/cubocd32.c"
|
||||
|
||||
# Philips CD-i (new vs mame2003)
|
||||
- name: cdi.zip
|
||||
system: philips-cdi
|
||||
required: true
|
||||
note: "CD-i BIOS (not in mame2003)"
|
||||
source_ref: "src/mame/drivers/cdi.c"
|
||||
|
||||
# Namco boards (new vs mame2003)
|
||||
- name: sys246.zip
|
||||
system: namco-system246
|
||||
required: true
|
||||
note: "Namco System 246 BIOS (PS2-based, not in mame2003)"
|
||||
source_ref: "src/mame/drivers/namcops2.c"
|
||||
|
||||
- name: sys256.zip
|
||||
system: namco-system256
|
||||
required: true
|
||||
note: "Namco System 256 BIOS (PS2-based, not in mame2003)"
|
||||
source_ref: "src/mame/drivers/namcops2.c"
|
||||
|
||||
- name: sys573.zip
|
||||
system: namco-system573
|
||||
required: true
|
||||
note: "Namco System 573 BIOS (PSX-based)"
|
||||
source_ref: "src/mame/drivers/ksys573.c"
|
||||
|
||||
# Konami Viper (new vs mame2003)
|
||||
- name: kviper.zip
|
||||
system: konami-viper
|
||||
required: true
|
||||
note: "Konami Viper BIOS (3dfx-based, not working in 0.139)"
|
||||
source_ref: "src/mame/drivers/viper.c"
|
||||
|
||||
# Taito
|
||||
- name: taitogn.zip
|
||||
system: taito-type-x
|
||||
required: true
|
||||
note: "Taito G-Net BIOS (PSX-based)"
|
||||
source_ref: "src/mame/drivers/taitogn.c"
|
||||
|
||||
# PSX-based arcade boards
|
||||
- name: cpzn1.zip
|
||||
system: capcom-zn1
|
||||
required: true
|
||||
note: "Capcom ZN-1 BIOS (PSX-based)"
|
||||
source_ref: "src/mame/drivers/zn.c"
|
||||
|
||||
- name: cpzn2.zip
|
||||
system: capcom-zn2
|
||||
required: true
|
||||
note: "Capcom ZN-2 BIOS (PSX-based)"
|
||||
source_ref: "src/mame/drivers/zn.c"
|
||||
|
||||
- name: konamigv.zip
|
||||
system: konami-gv
|
||||
required: true
|
||||
note: "Konami GV BIOS (PSX-based)"
|
||||
source_ref: "src/mame/drivers/konamigv.c"
|
||||
|
||||
# Other notable BIOS sets
|
||||
- name: skns.zip
|
||||
system: super-kaneko-nova
|
||||
required: true
|
||||
note: "Super Kaneko Nova System BIOS, 5 regions"
|
||||
source_ref: "src/mame/drivers/suprnova.c"
|
||||
|
||||
- name: alg_bios.zip
|
||||
system: alg-laserdisc
|
||||
required: true
|
||||
note: "American Laser Games BIOS (Amiga-based laserdisc)"
|
||||
source_ref: "src/mame/drivers/alg.c"
|
||||
|
||||
- name: maxaflex.zip
|
||||
system: exidy-maxaflex
|
||||
required: true
|
||||
note: "Exidy Max-A-Flex BIOS (Atari 600XL-based)"
|
||||
source_ref: "src/mame/drivers/maxaflex.c"
|
||||
|
||||
- name: hng64.zip
|
||||
system: hyper-neogeo64
|
||||
required: true
|
||||
note: "Hyper Neo-Geo 64 BIOS (not working in 0.139)"
|
||||
source_ref: "src/mame/drivers/hng64.c"
|
||||
344
emulators/mame2016.yml
Normal file
344
emulators/mame2016.yml
Normal file
@@ -0,0 +1,344 @@
|
||||
emulator: MAME 2016
|
||||
type: libretro
|
||||
source: "https://github.com/libretro/mame2016-libretro"
|
||||
mame_version: "0.174"
|
||||
systems:
|
||||
- snk-neogeo-mvs
|
||||
- snk-neogeo-aes
|
||||
- snk-neogeo-cd
|
||||
- igs-pgm
|
||||
- igs-pgm2
|
||||
- sega-naomi
|
||||
- sega-naomi2
|
||||
- sega-naomigd
|
||||
- sammy-atomiswave
|
||||
- sega-stv
|
||||
- sega-model2
|
||||
- sega-model3
|
||||
- sega-lindbergh
|
||||
- sega-hikaru
|
||||
- sega-chihiro
|
||||
- sega-triforce
|
||||
- deco-cassette
|
||||
- nintendo-playch10
|
||||
- sega-megaplay
|
||||
- sega-megatech
|
||||
- nintendo-sfcbox
|
||||
- nintendo-nss
|
||||
- philips-cdi
|
||||
- commodore-cd32
|
||||
- namco-system246
|
||||
- namco-system256
|
||||
- namco-system573
|
||||
- konami-viper
|
||||
- cave-cv1000
|
||||
- taito-gnet
|
||||
- super-kaneko-nova
|
||||
- capcom-zn1
|
||||
- capcom-zn2
|
||||
- konami-gv
|
||||
|
||||
notes: |
|
||||
MAME 2016 is a libretro port of MAME 0.174, released mid-2016. Compared to
|
||||
mame2010 (0.139), it adds 6 years of MAME development including significantly
|
||||
better driver accuracy, ~9200 more ROM sets (23430 vs ~14000), and new hardware
|
||||
support.
|
||||
|
||||
Key differences from mame2010 (0.139):
|
||||
- Driver source files renamed from .c to .cpp
|
||||
- Neo Geo: Universe BIOS updated to 3.2 (was 2.3 in 0.139)
|
||||
- NAOMI: 23 BIOS variants (Japan/Export/USA/Korea/Dev), same EPR numbering
|
||||
- Sega Lindbergh: new board support (lindbios.zip), 3 BIOS versions
|
||||
- PGM2: new IGS PolyGame Master 2 support (no shared BIOS ZIP)
|
||||
- Saturn driver split to separate saturn.cpp (was in stv.c)
|
||||
- Dreamcast driver split to dccons.cpp, 5 BIOS variants
|
||||
- PlayStation: expanded BIOS coverage (9 JP, 7 EU, 9 US variants)
|
||||
- More Cave CV1000/SH3 games (26 sets, no shared BIOS)
|
||||
- Model 2/3: improved emulation, same BIOS structure
|
||||
|
||||
Key differences from current MAME (0.274+):
|
||||
- Missing BIOS dumps added after 0.174 (newer redumps, alt regions)
|
||||
- Neo Geo: no Universe BIOS 4.0 (added in later MAME)
|
||||
- Some CRC32/SHA1 values differ for redumped ROMs
|
||||
- Fewer Sega board BIOS region variants
|
||||
- No Konami e-Amusement/Bemani expansions from post-2016
|
||||
|
||||
BIOS ZIPs are standard MAME romsets. The core looks for them in:
|
||||
1. {content_dir}/ (same folder as the game ROM)
|
||||
2. {system_dir}/mame2016/ (libretro system subfolder)
|
||||
3. {system_dir}/ (libretro system root)
|
||||
|
||||
ROM naming follows MAME 0.174 conventions. Use a 0.174-specific romset for
|
||||
full compatibility.
|
||||
|
||||
bios_zips:
|
||||
# SNK Neo Geo MVS/AES
|
||||
- name: neogeo.zip
|
||||
system: snk-neogeo-mvs
|
||||
required: true
|
||||
note: "MVS/AES BIOS, 25+ variants (12 official + 13 Universe BIOS up to 3.2)"
|
||||
source_ref: "src/mame/drivers/neogeo.cpp"
|
||||
key_files:
|
||||
- "sp-s2.sp1 (Europe MVS v2, default)"
|
||||
- "sp-u2.sp1 (US MVS v2)"
|
||||
- "asia-s3.rom (Asia MVS v3)"
|
||||
- "vs-bios.rom (Japan MVS v6 VS)"
|
||||
- "sp-45.sp1 (MV1C Asia, 512KB)"
|
||||
- "sm1.sm1 (Z80 sound, always required)"
|
||||
- "sfix.sfix (fix tiles, always required)"
|
||||
- "000-lo.lo (zoom table, always required)"
|
||||
- "uni-bios_3_2.rom (Universe BIOS 3.2, newest hack)"
|
||||
|
||||
# Neo Geo CD
|
||||
- name: neocdz.zip
|
||||
system: snk-neogeo-cd
|
||||
required: true
|
||||
note: "Neo Geo CDZ BIOS"
|
||||
source_ref: "src/mame/drivers/neogeocd.cpp"
|
||||
key_files:
|
||||
- "neocd.bin (CDZ BIOS, 512KB)"
|
||||
- "000-lo.lo (zoom table)"
|
||||
|
||||
# IGS PGM
|
||||
- name: pgm.zip
|
||||
system: igs-pgm
|
||||
required: true
|
||||
note: "PGM system BIOS, 2 program ROM versions + shared tiles/samples"
|
||||
source_ref: "src/mame/drivers/pgm.cpp"
|
||||
key_files:
|
||||
- "pgm_p02s.u20 (68K BIOS v2, default)"
|
||||
- "pgm_p01s.u20 (68K BIOS v1)"
|
||||
- "pgm_t01s.rom (text tiles, 2MB)"
|
||||
- "pgm_m01s.rom (samples, 2MB)"
|
||||
|
||||
# Sega NAOMI / NAOMI 2 / GD-ROM / Atomiswave
|
||||
- name: naomi.zip
|
||||
system: sega-naomi
|
||||
required: true
|
||||
note: "NAOMI BIOS, 23 variants: 8 Japan + 6 Export + 6 USA + 2 Korea + 1 Dev"
|
||||
source_ref: "src/mame/drivers/naomi.cpp:2904-2951"
|
||||
key_files:
|
||||
- "epr-21576h.ic27 (Japan, latest)"
|
||||
- "epr-21578h.ic27 (Export, latest)"
|
||||
- "epr-21577h.ic27 (USA, latest)"
|
||||
|
||||
- name: naomi2.zip
|
||||
system: sega-naomi2
|
||||
required: true
|
||||
note: "NAOMI 2 BIOS, same EPR structure as NAOMI"
|
||||
source_ref: "src/mame/drivers/naomi.cpp:3046-3072"
|
||||
|
||||
- name: naomigd.zip
|
||||
system: sega-naomigd
|
||||
required: true
|
||||
note: "NAOMI GD-ROM BIOS, requires rev E or higher"
|
||||
source_ref: "src/mame/drivers/naomi.cpp:2994-3044"
|
||||
|
||||
- name: awbios.zip
|
||||
system: sammy-atomiswave
|
||||
required: true
|
||||
note: "Atomiswave BIOS (Sammy)"
|
||||
source_ref: "src/mame/drivers/naomi.cpp:3073-3088"
|
||||
|
||||
# Dedicated NAOMI game BIOS sets
|
||||
- name: hod2bios.zip
|
||||
system: sega-naomi
|
||||
required: false
|
||||
note: "House of the Dead 2 dedicated BIOS, 3 variants"
|
||||
source_ref: "src/mame/drivers/naomi.cpp:2963-2971"
|
||||
|
||||
- name: f355dlx.zip
|
||||
system: sega-naomi
|
||||
required: false
|
||||
note: "Ferrari F355 Deluxe dedicated BIOS"
|
||||
source_ref: "src/mame/drivers/naomi.cpp:2973-2976"
|
||||
|
||||
- name: f355bios.zip
|
||||
system: sega-naomi
|
||||
required: false
|
||||
note: "Ferrari F355 Challenge dedicated BIOS, 2 variants"
|
||||
source_ref: "src/mame/drivers/naomi.cpp:2978-2983"
|
||||
|
||||
- name: airlbios.zip
|
||||
system: sega-naomi
|
||||
required: false
|
||||
note: "Airline Pilots Deluxe dedicated BIOS, 2 variants"
|
||||
source_ref: "src/mame/drivers/naomi.cpp:2985-2990"
|
||||
|
||||
# Sega ST-V
|
||||
- name: stvbios.zip
|
||||
system: sega-stv
|
||||
required: true
|
||||
note: "ST-V BIOS, 10+ region variants (JP/US/EU/TW/Dev)"
|
||||
source_ref: "src/mame/drivers/stv.cpp"
|
||||
key_files:
|
||||
- "epr-20091.ic8 (Japan 97/08/21, default)"
|
||||
- "epr-19730.ic8 (Japan 97/02/17)"
|
||||
|
||||
# Sega Lindbergh (new vs mame2010)
|
||||
- name: lindbios.zip
|
||||
system: sega-lindbergh
|
||||
required: true
|
||||
note: "Lindbergh BIOS, 3 PC BIOS versions + MPC firmware + GPU BIOS"
|
||||
source_ref: "src/mame/drivers/lindbergh.cpp"
|
||||
key_files:
|
||||
- "6.0.0010a.bin (PC BIOS v6.0.0010 alt)"
|
||||
- "6.0.0009.bin (PC BIOS v6.0.0009)"
|
||||
- "fpr-24370b.ic6 (MPC firmware, 4MB)"
|
||||
- "vid_bios.u504 (GeForce BIOS)"
|
||||
|
||||
# Sega Model 2
|
||||
- name: model2.zip
|
||||
system: sega-model2
|
||||
required: true
|
||||
note: "Model 2 BIOS"
|
||||
source_ref: "src/mame/drivers/model2.cpp"
|
||||
|
||||
# Sega Hikaru / Chihiro / Triforce
|
||||
- name: hikaru.zip
|
||||
system: sega-hikaru
|
||||
required: true
|
||||
note: "Hikaru BIOS (limited functionality in 0.174)"
|
||||
source_ref: "src/mame/drivers/hikaru.cpp"
|
||||
|
||||
- name: chihiro.zip
|
||||
system: sega-chihiro
|
||||
required: true
|
||||
note: "Chihiro BIOS (Xbox-based, limited in 0.174)"
|
||||
source_ref: "src/mame/drivers/chihiro.cpp"
|
||||
|
||||
- name: triforce.zip
|
||||
system: sega-triforce
|
||||
required: true
|
||||
note: "Triforce BIOS (GameCube-based, limited in 0.174)"
|
||||
source_ref: "src/mame/drivers/triforce.cpp"
|
||||
|
||||
# DECO Cassette
|
||||
- name: decocass.zip
|
||||
system: deco-cassette
|
||||
required: true
|
||||
note: "DECO Cassette BIOS"
|
||||
source_ref: "src/mame/drivers/decocass.cpp"
|
||||
|
||||
# Nintendo arcade
|
||||
- name: playch10.zip
|
||||
system: nintendo-playch10
|
||||
required: true
|
||||
note: "PlayChoice-10 BIOS"
|
||||
source_ref: "src/mame/drivers/playch10.cpp"
|
||||
|
||||
- name: nss.zip
|
||||
system: nintendo-nss
|
||||
required: true
|
||||
note: "Nintendo Super System BIOS"
|
||||
source_ref: "src/mame/drivers/nss.cpp"
|
||||
|
||||
- name: sfcbox.zip
|
||||
system: nintendo-sfcbox
|
||||
required: true
|
||||
note: "Super Famicom Box BIOS"
|
||||
source_ref: "src/mame/drivers/sfcbox.cpp"
|
||||
|
||||
# Sega Mega Drive arcade
|
||||
- name: megaplay.zip
|
||||
system: sega-megaplay
|
||||
required: true
|
||||
note: "Mega Play BIOS (Mega Drive arcade)"
|
||||
source_ref: "src/mame/drivers/megaplay.cpp"
|
||||
|
||||
- name: megatech.zip
|
||||
system: sega-megatech
|
||||
required: true
|
||||
note: "Mega-Tech BIOS (Mega Drive arcade)"
|
||||
source_ref: "src/mame/drivers/megatech.cpp"
|
||||
|
||||
# Philips CD-i
|
||||
- name: cdi.zip
|
||||
system: philips-cdi
|
||||
required: true
|
||||
note: "CD-i BIOS"
|
||||
source_ref: "src/mame/drivers/cdi.cpp"
|
||||
|
||||
# Commodore CD32
|
||||
- name: cd32.zip
|
||||
system: commodore-cd32
|
||||
required: true
|
||||
note: "Amiga CD32 BIOS"
|
||||
source_ref: "src/mame/drivers/cubocd32.cpp"
|
||||
|
||||
# Namco boards
|
||||
- name: sys246.zip
|
||||
system: namco-system246
|
||||
required: true
|
||||
note: "Namco System 246 BIOS (PS2-based)"
|
||||
source_ref: "src/mame/drivers/namcops2.cpp"
|
||||
|
||||
- name: sys256.zip
|
||||
system: namco-system256
|
||||
required: true
|
||||
note: "Namco System 256 BIOS (PS2-based)"
|
||||
source_ref: "src/mame/drivers/namcops2.cpp"
|
||||
|
||||
- name: sys573.zip
|
||||
system: namco-system573
|
||||
required: true
|
||||
note: "Konami System 573 BIOS (PSX-based)"
|
||||
source_ref: "src/mame/drivers/ksys573.cpp"
|
||||
|
||||
# Konami Viper
|
||||
- name: kviper.zip
|
||||
system: konami-viper
|
||||
required: true
|
||||
note: "Konami Viper BIOS (3dfx-based, limited in 0.174)"
|
||||
source_ref: "src/mame/drivers/viper.cpp"
|
||||
|
||||
# Taito G-NET
|
||||
- name: taitogn.zip
|
||||
system: taito-gnet
|
||||
required: true
|
||||
note: "Taito G-Net BIOS (PSX-based)"
|
||||
source_ref: "src/mame/drivers/taitogn.cpp"
|
||||
|
||||
# PSX-based arcade boards
|
||||
- name: cpzn1.zip
|
||||
system: capcom-zn1
|
||||
required: true
|
||||
note: "Capcom ZN-1 BIOS (PSX-based)"
|
||||
source_ref: "src/mame/drivers/zn.cpp"
|
||||
|
||||
- name: cpzn2.zip
|
||||
system: capcom-zn2
|
||||
required: true
|
||||
note: "Capcom ZN-2 BIOS (PSX-based)"
|
||||
source_ref: "src/mame/drivers/zn.cpp"
|
||||
|
||||
- name: konamigv.zip
|
||||
system: konami-gv
|
||||
required: true
|
||||
note: "Konami GV BIOS (PSX-based)"
|
||||
source_ref: "src/mame/drivers/konamigv.cpp"
|
||||
|
||||
# Other notable BIOS sets
|
||||
- name: skns.zip
|
||||
system: super-kaneko-nova
|
||||
required: true
|
||||
note: "Super Kaneko Nova System BIOS, 5 regions"
|
||||
source_ref: "src/mame/drivers/suprnova.cpp"
|
||||
|
||||
- name: alg_bios.zip
|
||||
system: alg-laserdisc
|
||||
required: true
|
||||
note: "American Laser Games BIOS (Amiga-based laserdisc)"
|
||||
source_ref: "src/mame/drivers/alg.cpp"
|
||||
|
||||
- name: hng64.zip
|
||||
system: hyper-neogeo64
|
||||
required: true
|
||||
note: "Hyper Neo-Geo 64 BIOS (limited in 0.174)"
|
||||
source_ref: "src/mame/drivers/hng64.cpp"
|
||||
|
||||
- name: isgsm.zip
|
||||
system: isg-selection-master
|
||||
required: true
|
||||
note: "ISG Selection Master BIOS (Sega System 16 conversion)"
|
||||
source_ref: "src/mame/drivers/isgsm.cpp"
|
||||
75
emulators/melonds.yml
Normal file
75
emulators/melonds.yml
Normal file
@@ -0,0 +1,75 @@
|
||||
emulator: MelonDS
|
||||
type: standalone + libretro
|
||||
source: "https://github.com/melonDS-emu/melonDS"
|
||||
systems: [nintendo-ds, nintendo-dsi]
|
||||
|
||||
notes: |
|
||||
MelonDS includes a built-in FreeBIOS replacement for basic DS mode (NTR).
|
||||
Native BIOS/firmware files are required for DSi mode and recommended for
|
||||
full DS compatibility (Key1 crypto for cartridge auth).
|
||||
ARM9 BIOS size: 0x1000 (4 KB), ARM7 BIOS size: 0x4000 (16 KB).
|
||||
DSi BIOS size: 0x10000 (64 KB) each.
|
||||
Config keys: DS.BIOS9Path, DS.BIOS7Path, DS.FirmwarePath,
|
||||
DSi.BIOS9Path, DSi.BIOS7Path, DSi.FirmwarePath, DSi.NANDPath.
|
||||
|
||||
files:
|
||||
# --- Nintendo DS (NTR) ---
|
||||
- name: "bios9.bin"
|
||||
system: nintendo-ds
|
||||
description: "ARM9 BIOS (NDS mode)"
|
||||
required: false
|
||||
size: 4096
|
||||
crc32: "0x2ab23573"
|
||||
source_ref: "src/MemConstants.h:30,37"
|
||||
notes: "FreeBIOS fallback available; native needed for Key1 cartridge crypto (src/NDSCart.cpp:147-153)"
|
||||
|
||||
- name: "bios7.bin"
|
||||
system: nintendo-ds
|
||||
description: "ARM7 BIOS (NDS mode)"
|
||||
required: false
|
||||
size: 16384
|
||||
crc32: "0x1280f0d5"
|
||||
source_ref: "src/MemConstants.h:31,36"
|
||||
notes: "FreeBIOS fallback available; native needed for Key1 init at offset 0x0030 (src/NDSCart.cpp:149-153)"
|
||||
|
||||
- name: "firmware.bin"
|
||||
system: nintendo-ds
|
||||
description: "NDS firmware image"
|
||||
required: false
|
||||
source_ref: "src/frontend/qt_sdl/EmuInstance.cpp:561"
|
||||
notes: "Generated firmware used as default; native firmware needed for boot animation and wifi settings"
|
||||
|
||||
# --- Nintendo DSi (TWL) ---
|
||||
- name: "dsi_bios9.bin"
|
||||
system: nintendo-dsi
|
||||
description: "ARM9i BIOS (DSi mode)"
|
||||
required: true
|
||||
size: 65536
|
||||
crc32_full: "0xBAE84F6C"
|
||||
crc32_low32k: "0x11E7C1EA"
|
||||
source_ref: "src/MemConstants.h:32,41,45"
|
||||
notes: "No FreeBIOS fallback for DSi; full dump needed for native boot (src/DSi.cpp:150-152)"
|
||||
|
||||
- name: "dsi_bios7.bin"
|
||||
system: nintendo-dsi
|
||||
description: "ARM7i BIOS (DSi mode)"
|
||||
required: true
|
||||
size: 65536
|
||||
crc32_full: "0x4316CC42"
|
||||
crc32_low32k: "0x5434691D"
|
||||
source_ref: "src/MemConstants.h:32,40,44"
|
||||
notes: "Contains eMMC key-Y at offset 0x8308 used for NAND init (src/frontend/qt_sdl/EmuInstance.cpp:1044)"
|
||||
|
||||
- name: "dsi_firmware.bin"
|
||||
system: nintendo-dsi
|
||||
description: "DSi firmware image"
|
||||
required: true
|
||||
source_ref: "src/frontend/qt_sdl/EmuInstance.cpp:593"
|
||||
notes: "Separate from DS firmware; config key DSi.FirmwarePath"
|
||||
|
||||
- name: "dsi_nand.bin"
|
||||
system: nintendo-dsi
|
||||
description: "DSi NAND dump"
|
||||
required: true
|
||||
source_ref: "src/DSi_NAND.h:34, src/Args.h:132"
|
||||
notes: "eMMC image; uses AES keys from ARM7i BIOS and ARM9i BIOS (src/DSi_AES.cpp:94)"
|
||||
118
emulators/mgba.yml
Normal file
118
emulators/mgba.yml
Normal file
@@ -0,0 +1,118 @@
|
||||
emulator: mGBA
|
||||
type: libretro
|
||||
source: "https://github.com/libretro/mgba"
|
||||
cores:
|
||||
- mgba
|
||||
systems:
|
||||
- nintendo-gba
|
||||
- nintendo-gb
|
||||
- nintendo-gbc
|
||||
- nintendo-sgb
|
||||
|
||||
notes: |
|
||||
mGBA is a Game Boy Advance emulator with Game Boy, Game Boy Color, and
|
||||
Super Game Boy support.
|
||||
|
||||
All BIOS files are optional. mGBA ships a built-in HLE BIOS for GBA
|
||||
(src/gba/hle-bios.c) that covers most software. The real BIOS improves
|
||||
accuracy (startup logo, some edge-case SWI behavior). There is no HLE
|
||||
BIOS for GB/GBC/SGB -- those rely on GBSkipBIOS() if no file is found.
|
||||
|
||||
BIOS loading is controlled by two core options:
|
||||
mgba_use_bios (default ON) - whether to look for BIOS files at all
|
||||
mgba_skip_bios (default OFF) - skip the boot animation even if loaded
|
||||
|
||||
The libretro port resolves BIOS filenames in retro_load_game()
|
||||
(src/platform/libretro/libretro.c:2091-2148). It picks the filename
|
||||
based on detected model:
|
||||
GBA -> gba_bios.bin
|
||||
GB (DMG/MGB) -> gb_bios.bin
|
||||
GBC (CGB/AGB) -> gbc_bios.bin
|
||||
SGB (SGB/SGB2)-> sgb_bios.bin
|
||||
|
||||
The standalone core (src/gb/core.c:637-684) handles the same models
|
||||
and maps SGB2 to sgb_bios.bin (marked TODO for a dedicated file).
|
||||
|
||||
GBIsBIOS() in src/gb/gb.c validates BIOS files by CRC32 checksum.
|
||||
Accepted checksums cover DMG, DMG0, MGB, SGB, SGB2, CGB, CGB0, CGBE,
|
||||
AGB, and AGB0 revisions.
|
||||
|
||||
files:
|
||||
# -------------------------------------------------------
|
||||
# Game Boy Advance - BIOS (optional, HLE fallback)
|
||||
# -------------------------------------------------------
|
||||
- name: gba_bios.bin
|
||||
system: nintendo-gba
|
||||
required: false
|
||||
size: 16384 # 16 KB (0x4000, GBA_SIZE_BIOS)
|
||||
note: "GBA BIOS. HLE replacement built in. Real BIOS adds boot logo and full SWI accuracy."
|
||||
source_ref: "src/platform/libretro/libretro.c:2099"
|
||||
|
||||
# -------------------------------------------------------
|
||||
# Game Boy - boot ROM (optional, skip fallback)
|
||||
# -------------------------------------------------------
|
||||
- name: gb_bios.bin
|
||||
system: nintendo-gb
|
||||
required: false
|
||||
size: 256 # 256 B (0x100)
|
||||
note: "DMG/MGB boot ROM. Scrolling Nintendo logo. Skipped if absent."
|
||||
source_ref: "src/platform/libretro/libretro.c:2134"
|
||||
|
||||
# -------------------------------------------------------
|
||||
# Game Boy Color - boot ROM (optional, skip fallback)
|
||||
# -------------------------------------------------------
|
||||
- name: gbc_bios.bin
|
||||
system: nintendo-gbc
|
||||
required: false
|
||||
size: 2304 # 2304 B (0x900)
|
||||
note: "CGB boot ROM. Used for CGB, AGB (GBA in GB mode), and SCGB models."
|
||||
source_ref: "src/platform/libretro/libretro.c:2127"
|
||||
|
||||
# -------------------------------------------------------
|
||||
# Super Game Boy - boot ROM (optional, skip fallback)
|
||||
# -------------------------------------------------------
|
||||
- name: sgb_bios.bin
|
||||
system: nintendo-sgb
|
||||
required: false
|
||||
size: 256 # 256 B (0x100)
|
||||
note: "SGB/SGB2 boot ROM. Also used when model is SGB2 (no separate sgb2_bios.bin)."
|
||||
source_ref: "src/platform/libretro/libretro.c:2130"
|
||||
|
||||
platform_details:
|
||||
gba:
|
||||
bios_size: 16384 # 16 KB
|
||||
hle_bios: true
|
||||
source_ref: "src/gba/hle-bios.c, src/gba/gba.c:520-548"
|
||||
notes: |
|
||||
GBALoadBIOS() validates size (must be exactly 0x4000) then computes
|
||||
an internal checksum. Two official checksums are recognized:
|
||||
GBA_BIOS_CHECKSUM = 0xBAAE187F (standard GBA)
|
||||
GBA_DS_BIOS_CHECKSUM = 0xBAAE1880 (DS GBA mode)
|
||||
Other checksums trigger a warning but the file is still loaded.
|
||||
|
||||
gb:
|
||||
bios_size: 256 # 256 B
|
||||
hle_bios: false
|
||||
source_ref: "src/gb/gb.c:570-605"
|
||||
notes: |
|
||||
GBIsBIOS() validates by CRC32. Accepted DMG-family checksums:
|
||||
DMG0 = 0xC2F5CC97, DMG = 0x59C8598E, MGB = 0xE6920754
|
||||
Files not matching any known checksum are rejected.
|
||||
|
||||
gbc:
|
||||
bios_size: 2304 # 2304 B (0x900)
|
||||
hle_bios: false
|
||||
source_ref: "src/gb/gb.c:570-605"
|
||||
notes: |
|
||||
Accepted CGB-family CRC32 checksums:
|
||||
CGB = 0x41884E46, CGB0 = 0xE8EF5318, CGBE = 0xE95DC95D
|
||||
AGB = 0xFFD6B0F1, AGB0 = 0x570337EA
|
||||
|
||||
sgb:
|
||||
bios_size: 256 # 256 B
|
||||
hle_bios: false
|
||||
source_ref: "src/gb/gb.c:570-605, src/gb/core.c:642-644"
|
||||
notes: |
|
||||
Accepted SGB CRC32 checksums:
|
||||
SGB = 0xEC8A83B9, SGB2 = 0x53D0DD63
|
||||
SGB2 model falls through to sgb_bios.bin (marked TODO upstream).
|
||||
66
emulators/minivmac.yml
Normal file
66
emulators/minivmac.yml
Normal file
@@ -0,0 +1,66 @@
|
||||
emulator: Mini vMac
|
||||
type: libretro
|
||||
source: "https://github.com/libretro/libretro-minivmac"
|
||||
systems: [macintosh-ii]
|
||||
|
||||
# Mini vMac is a Macintosh II emulator. The libretro port is hardcoded for
|
||||
# Mac II emulation (CurEmMd = kEmMd_II) with 68020 CPU, FPU, ADB, VIA2, ASC.
|
||||
# ROM is loaded from the RetroArch system directory.
|
||||
|
||||
# ROM loading order (OSGLUERETRO.c LoadMacRom):
|
||||
# 1. <system>/MacIIx.ROM (tried first, same 256 KB size)
|
||||
# 2. <system>/MacII.ROM (defined as RomFileName in CNFGRAPI.h)
|
||||
# 3. --rom command line arg (if provided)
|
||||
# 4. ~/.gryphel/mnvm_rom/MacII.ROM
|
||||
# 5. app parent directory
|
||||
# 6. current directory
|
||||
|
||||
# ROM size: kROM_Size = 0x00040000 = 262144 bytes (256 KB)
|
||||
# ROM checksums defined in CNFGRAPI.h:
|
||||
# kRomCheckSum1 = 0x9779D2C4 (Mac II v1)
|
||||
# kRomCheckSum2 = 0x97221136 (Mac II v2)
|
||||
# Note: DisableRomCheck = 1, so checksum validation is skipped at runtime
|
||||
# (ROMEMDEV.c patches the ROM check jump). Any 256 KB Mac II ROM works.
|
||||
|
||||
files:
|
||||
# -- MacII.ROM (primary, required) --
|
||||
# Standard Macintosh II ROM image. This is the hardcoded RomFileName.
|
||||
# The core reads exactly kROM_Size (262144) bytes from this file.
|
||||
|
||||
- name: "MacII.ROM"
|
||||
path: "MacII.ROM"
|
||||
required: true
|
||||
size: 262144
|
||||
source_ref: "minivmac/cfg/CNFGRAPI.h:32, minivmac/src/OSGLUERETRO.c:781"
|
||||
note: >
|
||||
Macintosh II ROM image (256 KB). The core loads this from the system
|
||||
directory. Must be exactly 262144 bytes. ROM checksum verification is
|
||||
disabled in the libretro build, so either Mac II ROM revision works.
|
||||
|
||||
# -- MacIIx.ROM (alternative, optional) --
|
||||
# Tried before MacII.ROM in the loading sequence. The Mac IIx ROM is the
|
||||
# same 256 KB size and is compatible with the Mac II emulation mode.
|
||||
|
||||
- name: "MacIIx.ROM"
|
||||
path: "MacIIx.ROM"
|
||||
required: false
|
||||
size: 262144
|
||||
source_ref: "minivmac/src/OSGLUERETRO.c:778"
|
||||
note: >
|
||||
Macintosh IIx ROM image (256 KB). Checked first in the ROM loading
|
||||
sequence. If present, it takes priority over MacII.ROM. The Mac IIx
|
||||
uses the same 68020-class architecture as the Mac II.
|
||||
|
||||
notes:
|
||||
emulation_target: >
|
||||
The libretro build is configured exclusively for Macintosh II emulation
|
||||
(kEmMd_II). Build options: 68020 CPU, FPU enabled, ADB keyboard/mouse,
|
||||
VIA2, ASC sound chip. Screen: 640x480, 8-bit color depth.
|
||||
disk_formats: >
|
||||
Supported disk image formats: .dsk, .img, .zip, .hvf, .cmd
|
||||
The core auto-inserts the loaded content as a floppy disk.
|
||||
Supports up to NumDrives simultaneous disk images.
|
||||
rom_checksum_note: >
|
||||
DisableRomCheck is set to 1 in ROMEMDEV.c, meaning the core patches out
|
||||
the ROM checksum verification at boot. This allows any valid Mac II era
|
||||
ROM to work regardless of exact revision.
|
||||
81
emulators/mu.yml
Normal file
81
emulators/mu.yml
Normal file
@@ -0,0 +1,81 @@
|
||||
emulator: Mu
|
||||
type: libretro
|
||||
source: "https://github.com/libretro/Mu"
|
||||
systems: [palm-os]
|
||||
|
||||
notes: |
|
||||
Mu emulates Palm OS handhelds: Palm m500, Palm m515, and (if compiled
|
||||
with EMU_SUPPORT_PALM_OS5) the Tungsten T3.
|
||||
|
||||
A Palm OS ROM dump is required. The core selects the ROM filename based
|
||||
on the "OS Version" core option:
|
||||
Palm m500 / Palm OS 4.0 -> palmos40-en-m500.rom
|
||||
Palm m515 / Palm OS 4.1 -> palmos41-en-m515.rom (default)
|
||||
Tungsten T3 / Palm OS 5.2 -> palmos52-en-t3.rom
|
||||
Tungsten T3 / Palm OS 6.0 -> palmos60-en-t3.rom
|
||||
|
||||
ROM path construction: retro_load_game() joins
|
||||
RETRO_ENVIRONMENT_GET_SYSTEM_DIRECTORY + "/" + osVersion + ".rom".
|
||||
|
||||
The bootloader (bootloader-dbvz.rom) is optional. It contains the
|
||||
MC68VZ328 UART bootloader and is only relevant for m500/m515 devices.
|
||||
For the Tungsten T3 it is ignored even if present.
|
||||
|
||||
The m500/m515 ROM is loaded into a 4 MB region (M5XX_ROM_SIZE),
|
||||
padded with 0x00 if smaller, and byte-swapped on little-endian hosts.
|
||||
The Tungsten T3 ROM maps into a 16 MB region (TUNGSTEN_T3_ROM_SIZE).
|
||||
|
||||
The core also supports no-game mode (supports_no_game = true). Without
|
||||
content, it boots the standard Palm OS desktop from the ROM.
|
||||
|
||||
files:
|
||||
# --- Palm m515 / Palm OS 4.1 (default device) ---
|
||||
- name: "palmos41-en-m515.rom"
|
||||
system: palm-os
|
||||
description: "Palm m515 ROM, Palm OS 4.1 English"
|
||||
required: true
|
||||
note: "Default ROM. Selected when core option is 'Palm m515/Palm OS 4.1'. Max 4 MB, byte-swapped on LE."
|
||||
source_ref: "libretroBuildSystem/libretro.c:173-176,744-763 (retro_load_game ROM loading)"
|
||||
|
||||
# --- Palm m500 / Palm OS 4.0 ---
|
||||
- name: "palmos40-en-m500.rom"
|
||||
system: palm-os
|
||||
description: "Palm m500 ROM, Palm OS 4.0 English"
|
||||
required: false
|
||||
note: "Selected when core option is 'Palm m500/Palm OS 4.0'. Max 4 MB."
|
||||
source_ref: "libretroBuildSystem/libretro.c:169-172"
|
||||
|
||||
# --- Tungsten T3 / Palm OS 5.2.1 (requires EMU_SUPPORT_PALM_OS5) ---
|
||||
- name: "palmos52-en-t3.rom"
|
||||
system: palm-os
|
||||
description: "Tungsten T3 ROM, Palm OS 5.2.1 English"
|
||||
required: false
|
||||
note: "Selected when core option is 'Tungsten T3/Palm OS 5.2.1'. Max 16 MB. Only available if core compiled with EMU_SUPPORT_PALM_OS5."
|
||||
source_ref: "libretroBuildSystem/libretro.c:178-181"
|
||||
|
||||
# --- Tungsten T3 / Palm OS 6.0 (requires EMU_SUPPORT_PALM_OS5) ---
|
||||
- name: "palmos60-en-t3.rom"
|
||||
system: palm-os
|
||||
description: "Tungsten T3 ROM, Palm OS 6.0 English"
|
||||
required: false
|
||||
note: "Selected when core option is 'Tungsten T3/Palm OS 6.0'. Max 16 MB. Only available if core compiled with EMU_SUPPORT_PALM_OS5."
|
||||
source_ref: "libretroBuildSystem/libretro.c:182-185"
|
||||
|
||||
# --- MC68VZ328 bootloader ---
|
||||
- name: "bootloader-dbvz.rom"
|
||||
system: palm-os
|
||||
description: "MC68VZ328 UART bootloader"
|
||||
required: false
|
||||
note: "Optional for m500/m515. Ignored for Tungsten T3. Loads from system directory."
|
||||
source_ref: "libretroBuildSystem/libretro.c:766-782"
|
||||
|
||||
platform_details:
|
||||
palm_m5xx:
|
||||
rom_size: 4194304 # 4 MB (M5XX_ROM_SIZE)
|
||||
cpu: "MC68VZ328"
|
||||
source_ref: "include/m5XXBus.h:23, src/emulator.c:191-212"
|
||||
|
||||
tungsten_t3:
|
||||
rom_size: 16777216 # 16 MB (TUNGSTEN_T3_ROM_SIZE)
|
||||
cpu: "PXA260 (ARM)"
|
||||
source_ref: "include/tungstenT3Bus.h:17, src/emulator.c:158-164"
|
||||
48
emulators/mupen64plus.yml
Normal file
48
emulators/mupen64plus.yml
Normal file
@@ -0,0 +1,48 @@
|
||||
emulator: Mupen64Plus-Next
|
||||
type: libretro
|
||||
source: "https://github.com/libretro/mupen64plus-libretro-nx"
|
||||
systems: [nintendo-64, nintendo-64dd]
|
||||
cores: [mupen64plus_next, mupen64plus_next_gles3, mupen64plus_next_gles2, parallel_n64]
|
||||
|
||||
# PIF boot ROM is fully HLE'd (bootrom_hle.c), no external PIF ROM needed.
|
||||
# CIC emulation is also handled internally (n64_cic_nus_6105.c).
|
||||
# The only optional firmware is the 64DD IPL ROM for N64 Disk Drive games.
|
||||
|
||||
# mupen64plus_next cores use: system/Mupen64plus/IPL.n64
|
||||
# parallel_n64 uses: system/64DD_IPL.bin
|
||||
# Both expect the same ROM, different path.
|
||||
|
||||
files:
|
||||
# -- 64DD IPL ROM (mupen64plus_next variants) --
|
||||
- name: "IPL.n64"
|
||||
path: "Mupen64plus/IPL.n64"
|
||||
size: 4194304 # 0x400000 (4 MB)
|
||||
md5: "8d3d9f294b6e174bc7b1d2fd1c727530"
|
||||
required: false
|
||||
note: "64DD IPL ROM for N64 Disk Drive games. Only needed for .ndd disk images via subsystem API"
|
||||
source_ref: "mupen64plus-core/src/main/main.c:959-961, libretro/libretro.c:641"
|
||||
cores: [mupen64plus_next, mupen64plus_next_gles3, mupen64plus_next_gles2]
|
||||
|
||||
# -- 64DD IPL ROM (parallel_n64) --
|
||||
- name: "64DD_IPL.bin"
|
||||
path: "64DD_IPL.bin"
|
||||
md5: "8d3d9f294b6e174bc7b1d2fd1c727530"
|
||||
required: false
|
||||
note: "Same 64DD IPL ROM, different path expected by parallel_n64"
|
||||
cores: [parallel_n64]
|
||||
|
||||
notes:
|
||||
hle_available: true
|
||||
hle_note: >
|
||||
N64 does not require any BIOS or firmware files for standard cartridge games.
|
||||
The PIF boot ROM is fully emulated via HLE (bootrom_hle.c). CIC chip
|
||||
challenge/response is handled in software (n64_cic_nus_6105.c).
|
||||
dd_note: >
|
||||
The 64DD IPL ROM is only needed to run N64 Disk Drive games (.ndd).
|
||||
It is loaded via the retro subsystem API (RETRO_GAME_TYPE_DD), which
|
||||
takes both a disk image and an optional cartridge ROM.
|
||||
The core accepts Z64 (big-endian), N64 (little-endian), and V64
|
||||
(byte-swapped) formats and converts internally.
|
||||
transferpak_note: >
|
||||
Transfer Pak support (GB/GBC games on N64) is handled via subsystem API.
|
||||
No additional firmware files needed, just the GB ROM and save file.
|
||||
141
emulators/neocd.yml
Normal file
141
emulators/neocd.yml
Normal file
@@ -0,0 +1,141 @@
|
||||
emulator: NeoCD
|
||||
type: libretro
|
||||
source: "https://github.com/libretro/neocd_libretro"
|
||||
systems:
|
||||
- snk-neogeo-cd
|
||||
|
||||
notes: |
|
||||
NeoCD is a dedicated SNK Neo Geo CD emulator. It supports Front Loader,
|
||||
Top Loader, and CDZ hardware variants. BIOS files go in {system_dir}/neocd/
|
||||
subdirectory (src/path.cpp:7, src/libretro_bios.cpp:76-81).
|
||||
|
||||
The core scans the neocd/ directory for any .rom or .bin file (also inside
|
||||
.zip archives), reads the first 512 bytes, and identifies the BIOS type by
|
||||
binary pattern matching at fixed ROM addresses (src/bios.cpp:168-208).
|
||||
Filenames listed in the .info are conventional but not enforced by the core.
|
||||
|
||||
Three hardware families are detected: Front Loader (NeoCD), Top Loader
|
||||
(NeoCD), and CDZ. Modified BIOS variants are also recognized: SMKDan 0.07,
|
||||
SMKDan 0.07b, Universe BIOS 3.2, and Universe BIOS 3.3. The core applies
|
||||
speed hack patches and CD recognition patches at load time for each type
|
||||
(src/bios.cpp:209-280).
|
||||
|
||||
The Y-ZOOM ROM (ng-lo.rom / 000-lo.lo) is a sprite zoom lookup table loaded
|
||||
separately (src/memory.h:22, YZOOMROM_SIZE = 0x10000 = 65536 bytes). It is
|
||||
optional but improves sprite scaling accuracy.
|
||||
|
||||
All firmware entries are marked optional in the .info (any single valid BIOS
|
||||
is sufficient). The core presents detected BIOSes as a dropdown in the core
|
||||
options menu, sorted alphabetically by description.
|
||||
|
||||
BIOS ROM size: 524288 bytes (0x80000, src/memory.h:16).
|
||||
Y-ZOOM ROM size: 65536 bytes (0x10000, src/memory.h:22).
|
||||
|
||||
files:
|
||||
# Front Loader BIOS (NeoCD original front-loading unit)
|
||||
- name: neocd_f.rom
|
||||
dest: neocd/neocd_f.rom
|
||||
system: snk-neogeo-cd
|
||||
required: false
|
||||
size: 524288
|
||||
note: "Front Loader BIOS, official NeoCD format"
|
||||
source_ref: "retroarch/libneocd_libretro.info:15 (firmware0)"
|
||||
|
||||
# Front Loader BIOS, SMKDan custom
|
||||
- name: neocd_sf.rom
|
||||
dest: neocd/neocd_sf.rom
|
||||
system: snk-neogeo-cd
|
||||
required: false
|
||||
size: 524288
|
||||
note: "Front Loader BIOS, SMKDan custom"
|
||||
source_ref: "retroarch/libneocd_libretro.info:18 (firmware1)"
|
||||
|
||||
# Top Loader BIOS (NeoCD top-loading unit)
|
||||
- name: neocd_t.rom
|
||||
dest: neocd/neocd_t.rom
|
||||
system: snk-neogeo-cd
|
||||
required: false
|
||||
size: 524288
|
||||
note: "Top Loader BIOS, official NeoCD format"
|
||||
source_ref: "retroarch/libneocd_libretro.info:21 (firmware2)"
|
||||
|
||||
# Top Loader BIOS, SMKDan custom
|
||||
- name: neocd_st.rom
|
||||
dest: neocd/neocd_st.rom
|
||||
system: snk-neogeo-cd
|
||||
required: false
|
||||
size: 524288
|
||||
note: "Top Loader BIOS, SMKDan custom"
|
||||
source_ref: "retroarch/libneocd_libretro.info:24 (firmware3)"
|
||||
|
||||
# CDZ BIOS (Neo Geo CDZ, last revision)
|
||||
- name: neocd_z.rom
|
||||
dest: neocd/neocd_z.rom
|
||||
system: snk-neogeo-cd
|
||||
required: false
|
||||
size: 524288
|
||||
note: "CDZ BIOS, official NeoCD format"
|
||||
source_ref: "retroarch/libneocd_libretro.info:27 (firmware4)"
|
||||
|
||||
# CDZ BIOS, SMKDan custom
|
||||
- name: neocd_sz.rom
|
||||
dest: neocd/neocd_sz.rom
|
||||
system: snk-neogeo-cd
|
||||
required: false
|
||||
size: 524288
|
||||
note: "CDZ BIOS, SMKDan custom"
|
||||
source_ref: "retroarch/libneocd_libretro.info:30 (firmware5)"
|
||||
|
||||
# Y-ZOOM ROM (sprite zoom lookup table)
|
||||
- name: ng-lo.rom
|
||||
dest: neocd/ng-lo.rom
|
||||
system: snk-neogeo-cd
|
||||
required: false
|
||||
size: 65536
|
||||
note: "Y-ZOOM ROM, NeoCD format"
|
||||
source_ref: "retroarch/libneocd_libretro.info:33 (firmware6)"
|
||||
|
||||
# Y-ZOOM ROM, MAME naming
|
||||
- name: 000-lo.lo
|
||||
dest: neocd/000-lo.lo
|
||||
system: snk-neogeo-cd
|
||||
required: false
|
||||
size: 65536
|
||||
note: "Y-ZOOM ROM, MAME naming (same content as ng-lo.rom)"
|
||||
source_ref: "retroarch/libneocd_libretro.info:36 (firmware7)"
|
||||
|
||||
# Front Loader BIOS, MAME naming
|
||||
- name: front-sp1.bin
|
||||
dest: neocd/front-sp1.bin
|
||||
system: snk-neogeo-cd
|
||||
required: false
|
||||
size: 524288
|
||||
note: "Front Loader BIOS, MAME naming (same content as neocd_f.rom)"
|
||||
source_ref: "retroarch/libneocd_libretro.info:39 (firmware8)"
|
||||
|
||||
# Top Loader BIOS, MAME naming
|
||||
- name: top-sp1.bin
|
||||
dest: neocd/top-sp1.bin
|
||||
system: snk-neogeo-cd
|
||||
required: false
|
||||
size: 524288
|
||||
note: "Top Loader BIOS, MAME naming (same content as neocd_t.rom)"
|
||||
source_ref: "retroarch/libneocd_libretro.info:42 (firmware9)"
|
||||
|
||||
# CDZ BIOS, MAME naming
|
||||
- name: neocd.bin
|
||||
dest: neocd/neocd.bin
|
||||
system: snk-neogeo-cd
|
||||
required: false
|
||||
size: 524288
|
||||
note: "CDZ BIOS, MAME naming (same content as neocd_z.rom)"
|
||||
source_ref: "retroarch/libneocd_libretro.info:45 (firmware10)"
|
||||
|
||||
# Universe BIOS for CD systems
|
||||
- name: uni-bioscd.rom
|
||||
dest: neocd/uni-bioscd.rom
|
||||
system: snk-neogeo-cd
|
||||
required: false
|
||||
size: 524288
|
||||
note: "Universe BIOS CD, third-party multi-region BIOS (hack)"
|
||||
source_ref: "retroarch/libneocd_libretro.info:48 (firmware11)"
|
||||
67
emulators/nestopia.yml
Normal file
67
emulators/nestopia.yml
Normal file
@@ -0,0 +1,67 @@
|
||||
emulator: Nestopia UE
|
||||
type: libretro
|
||||
source: "https://github.com/libretro/nestopia"
|
||||
systems: [nintendo-nes, nintendo-fds]
|
||||
|
||||
notes: |
|
||||
Nestopia UE (Undead Edition) is a cycle-accurate NES/Famicom emulator.
|
||||
NES cartridge games need no BIOS. Famicom Disk System games require
|
||||
the FDS BIOS ROM (disksys.rom, 8 KB) loaded from the system directory.
|
||||
The core validates the BIOS via CRC32 against two known dumps:
|
||||
standard Famicom (0x5E607DCF) and Twin Famicom (0x4DF24A6C).
|
||||
An unknown BIOS triggers a warning but still loads.
|
||||
|
||||
NstDatabase.xml is an optional game database used for region autodetection,
|
||||
aspect ratio selection, and 4-player adapter recognition. A copy is baked
|
||||
into the core binary (libretro/nstdatabase.hpp) and used as fallback when
|
||||
no external file is found. Placing a newer NstDatabase.xml in the system
|
||||
directory overrides the built-in copy.
|
||||
|
||||
An optional custom palette file (custom.pal, 192 bytes, 64 RGB triplets)
|
||||
overrides the built-in palettes when the nestopia_palette core option is
|
||||
set to Custom. The core ships with 10+ built-in palettes (Royaltea,
|
||||
Smooth FBx, etc.) so the external file is rarely needed.
|
||||
|
||||
Audio samples for specific games can be placed in system/nestopia/samples/
|
||||
as numbered .wav files (e.g., 00.wav, 01.wav). This is used for Famicom
|
||||
expansion audio in a few titles.
|
||||
|
||||
Game Genie is handled as cheat code decoding (software), not via a ROM file.
|
||||
|
||||
File path construction: libretro/libretro.cpp retro_load_game() joins the
|
||||
system directory (RETRO_ENVIRONMENT_GET_SYSTEM_DIRECTORY) with each
|
||||
filename directly - no subdirectories.
|
||||
|
||||
files:
|
||||
# --- Famicom Disk System BIOS (required for FDS games) ---
|
||||
- name: "disksys.rom"
|
||||
system: nintendo-fds
|
||||
description: "FDS BIOS ROM"
|
||||
required: true
|
||||
size: 8192
|
||||
md5: "ca30b50f880eb660a320674ed365ef7a"
|
||||
sha1: "57fe1bdee955bb48d357e463ccbf129496930b62"
|
||||
source_ref: "libretro/libretro.cpp:1608-1634 (FDS load), source/core/NstFds.cpp:61-131 (Bios class, CRC32 validation)"
|
||||
notes: "Mapped at 0xE000-0xFFFF (8 KB). retro_load_game returns false if missing when loading .fds files. CRC32 checked: Famicom 0x5E607DCF, Twin Famicom 0x4DF24A6C."
|
||||
|
||||
# --- NES game database (optional, overrides baked-in copy) ---
|
||||
- name: "NstDatabase.xml"
|
||||
system: nintendo-nes
|
||||
description: "Nestopia game database for region and mapper autodetection"
|
||||
required: false
|
||||
size: 1022369
|
||||
md5: "0ee6cbdc6f5c96ce9c8aa5edb59066f4"
|
||||
sha1: ~
|
||||
source_ref: "libretro/libretro.cpp:1561-1586 (database load), libretro/nstdatabase.hpp (baked-in fallback)"
|
||||
notes: "XML database matching games by SHA1+CRC32. Used for region, mapper, mirroring, and 4-player adapter detection. Built-in fallback exists so this file is optional. Hash is for the upstream copy shipped with the core repo."
|
||||
|
||||
# --- Custom palette (optional, core option nestopia_palette = Custom) ---
|
||||
- name: "custom.pal"
|
||||
system: nintendo-nes
|
||||
description: "External NES color palette"
|
||||
required: false
|
||||
size: 192
|
||||
md5: ~
|
||||
sha1: ~
|
||||
source_ref: "libretro/libretro.cpp:1540-1559 (palette load)"
|
||||
notes: "64 RGB triplets (64 x 3 bytes = 192 bytes). Only loaded when nestopia_palette core option is set to Custom. Falls back to built-in Royaltea palette if not found. Multiple valid palettes exist so no single canonical hash."
|
||||
54
emulators/noods.yml
Normal file
54
emulators/noods.yml
Normal file
@@ -0,0 +1,54 @@
|
||||
emulator: NooDS
|
||||
type: libretro
|
||||
source: "https://github.com/Hydr8gon/NooDS"
|
||||
cores: [noods]
|
||||
systems: [nintendo-ds, nintendo-gba]
|
||||
|
||||
notes: |
|
||||
NooDS includes full HLE BIOS for ARM9, ARM7 and GBA SWI routines, making
|
||||
all BIOS files optional when direct boot is enabled (default). HLE tables
|
||||
cover SWI 0x00-0x20 for each processor (hle_bios.cpp:24-62). When BIOS
|
||||
files are missing, a special opcode (0xFF at offset 3) is written for
|
||||
interrupt return and the HLE handler is activated (memory.cpp:130-169).
|
||||
Firmware is auto-generated (128KB non-bootable) if not provided, with
|
||||
default WiFi config, touch calibration and user settings (spi.cpp:90-160).
|
||||
Native BIOS+firmware required only for firmware boot (non-direct-boot mode).
|
||||
ARM9 BIOS read: 0x1000 bytes (4 KB), ARM7 BIOS read: 0x4000 bytes (16 KB),
|
||||
GBA BIOS read: 0x4000 bytes (16 KB). Firmware bootable threshold: >128 KB
|
||||
(spi.cpp:87). DSi mode supported but uses same BIOS files.
|
||||
Config: noods.ini keys bios9Path, bios7Path, firmwarePath, gbaBiosPath.
|
||||
|
||||
files:
|
||||
- name: "bios9.bin"
|
||||
system: nintendo-ds
|
||||
description: "ARM9 BIOS"
|
||||
required: false
|
||||
size: 4096
|
||||
md5: "a392174eb3e572fed6447e956bde4b25"
|
||||
source_ref: "src/memory.cpp:130-142, src/memory.h:73"
|
||||
notes: "HLE fallback for all SWI calls; native needed for firmware boot and logo verification (copyBiosLogo)"
|
||||
|
||||
- name: "bios7.bin"
|
||||
system: nintendo-ds
|
||||
description: "ARM7 BIOS"
|
||||
required: false
|
||||
size: 16384
|
||||
md5: "df692a80a5b1bc90728bc3dfc76cd948"
|
||||
source_ref: "src/memory.cpp:144-156, src/memory.h:74"
|
||||
notes: "HLE fallback for all SWI calls; native needed for firmware boot"
|
||||
|
||||
- name: "firmware.bin"
|
||||
system: nintendo-ds
|
||||
description: "NDS firmware image"
|
||||
required: false
|
||||
source_ref: "src/spi.cpp:62-160, src/settings.cpp:42"
|
||||
notes: "Auto-generated 128KB non-bootable firmware as fallback; native dump (>128KB) needed for firmware boot"
|
||||
|
||||
- name: "gba_bios.bin"
|
||||
system: nintendo-gba
|
||||
description: "GBA BIOS"
|
||||
required: false
|
||||
size: 16384
|
||||
md5: "a860e8c0b6d573d191e4ec7db1b1e4f6"
|
||||
source_ref: "src/memory.cpp:158-169, src/memory.h:75, src/core.cpp:244-252"
|
||||
notes: "HLE fallback via swiTableGba; native BIOS disables HLE and enables real GBA boot (core.cpp:244-247)"
|
||||
162
emulators/np2kai.yml
Normal file
162
emulators/np2kai.yml
Normal file
@@ -0,0 +1,162 @@
|
||||
emulator: NP2kai
|
||||
type: libretro
|
||||
source: "https://github.com/libretro/NP2kai"
|
||||
systems: [pc-98]
|
||||
|
||||
# NP2kai is a PC-9801/9821 emulator (Neko Project II kai).
|
||||
# All BIOS/font/sound files are loaded from <system>/np2kai/ subdirectory.
|
||||
# The core sets np2cfg.biospath to "<system>/np2kai/" in retro_load_game()
|
||||
# (sdl/libretro/libretro.c:1800-1815). All getbiospath() calls resolve
|
||||
# relative to that directory.
|
||||
#
|
||||
# The core has a built-in BIOS simulator (BIOS_SIMULATE) that can boot
|
||||
# without a real BIOS ROM, but a real bios.rom provides better compatibility.
|
||||
# Font data is auto-generated from built-in tables if font.bmp is missing,
|
||||
# but Japanese kanji display requires the real font file.
|
||||
#
|
||||
# The fmgen YM2608 rhythm engine (fmgen_opna.cpp:1413-1443) loads WAV files
|
||||
# with uppercase extension (.WAV) but the built-in rhythm engine (rhythmc.c)
|
||||
# uses lowercase (.wav). Both paths resolve from np2kai/.
|
||||
# The fmgen engine also accepts "2608_RYM.WAV" as fallback for the rim sample.
|
||||
|
||||
files:
|
||||
# -- Main BIOS ROM --
|
||||
# Loaded in bios/bios.c:430-440. 96 KB (0x18000) mapped at 0xe8000.
|
||||
# Without this, the built-in BIOS simulator is used (less compatible).
|
||||
- name: "bios.rom"
|
||||
path: "np2kai/bios.rom"
|
||||
required: false
|
||||
note: >
|
||||
PC-9801 system BIOS ROM (96 KB). Provides full hardware compatibility.
|
||||
The core can boot without it using the built-in BIOS simulator, but
|
||||
some software may not work correctly. Loaded at address 0xe8000.
|
||||
source_ref: "bios/bios.c:430-440, common/strres.c:60"
|
||||
|
||||
# -- ITF ROM --
|
||||
# Initial Test Firmware, loaded at ITF_ADRS (0xf8000), 32 KB.
|
||||
# Only loaded when BIOS_SIMULATE is not defined (bios/bios.c:569-574).
|
||||
# In the libretro build, BIOS_SIMULATE is typically enabled, so this is
|
||||
# only needed for non-simulated builds.
|
||||
- name: "itf.rom"
|
||||
path: "np2kai/itf.rom"
|
||||
required: false
|
||||
note: >
|
||||
Initial Test Firmware ROM (32 KB). Used for hardware initialization
|
||||
and memory check at boot. Only loaded when the built-in ITF simulator
|
||||
is disabled. Most libretro builds include the simulator.
|
||||
source_ref: "bios/bios.c:569-574"
|
||||
|
||||
# -- Font file --
|
||||
# Set explicitly in libretro.c:1813 as "<system>/np2kai/font.bmp".
|
||||
# The core also supports FONT.ROM / font.rom (V98 format) via font_load().
|
||||
# Without any font file, built-in 8x8 bitmap data is used but kanji
|
||||
# characters will not display correctly.
|
||||
- name: "font.bmp"
|
||||
path: "np2kai/font.bmp"
|
||||
required: false
|
||||
note: >
|
||||
PC-98 font bitmap (288 KB). Required for correct Japanese kanji display.
|
||||
The core also accepts FONT.ROM (V98 format). Without this file,
|
||||
only basic ASCII characters render correctly using built-in data.
|
||||
source_ref: "sdl/libretro/libretro.c:1813, font/fontdata.c:11-14"
|
||||
|
||||
# -- Sound BIOS ROM --
|
||||
# Loaded by soundrom_load() as "sound.rom" (soundrom.c:15-16, 28-32).
|
||||
# The filename is composed as "sound" + optional board name + ".rom".
|
||||
# 16 KB ROM for the FM sound board.
|
||||
- name: "sound.rom"
|
||||
path: "np2kai/sound.rom"
|
||||
required: false
|
||||
note: >
|
||||
FM sound board BIOS ROM (16 KB). Used by the PC-9801-26K/86/118
|
||||
sound boards. The core falls back to a minimal built-in default
|
||||
(9-byte stub) if this file is missing.
|
||||
source_ref: "sound/soundrom.c:15-16,21-55,93-106"
|
||||
|
||||
# -- YM2608 OPNA rhythm samples --
|
||||
# Loaded by both the built-in rhythm engine (rhythmc.c:60-71) and the
|
||||
# fmgen engine (fmgen_opna.cpp:1413-1443). Required for YM2608 OPNA
|
||||
# rhythm sound channel (bass drum, snare, etc).
|
||||
# The fmgen engine tries uppercase .WAV, the built-in engine uses .wav.
|
||||
# Place lowercase versions - the filesystem handles case on most platforms.
|
||||
- name: "2608_bd.wav"
|
||||
path: "np2kai/2608_bd.wav"
|
||||
required: false
|
||||
note: "YM2608 OPNA rhythm sample: bass drum"
|
||||
source_ref: "sound/rhythmc.c:11, sound/fmgen/fmgen_opna.cpp:1431-1433"
|
||||
|
||||
- name: "2608_sd.wav"
|
||||
path: "np2kai/2608_sd.wav"
|
||||
required: false
|
||||
note: "YM2608 OPNA rhythm sample: snare drum"
|
||||
source_ref: "sound/rhythmc.c:12"
|
||||
|
||||
- name: "2608_top.wav"
|
||||
path: "np2kai/2608_top.wav"
|
||||
required: false
|
||||
note: "YM2608 OPNA rhythm sample: top cymbal"
|
||||
source_ref: "sound/rhythmc.c:13"
|
||||
|
||||
- name: "2608_hh.wav"
|
||||
path: "np2kai/2608_hh.wav"
|
||||
required: false
|
||||
note: "YM2608 OPNA rhythm sample: hi-hat"
|
||||
source_ref: "sound/rhythmc.c:14"
|
||||
|
||||
- name: "2608_tom.wav"
|
||||
path: "np2kai/2608_tom.wav"
|
||||
required: false
|
||||
note: "YM2608 OPNA rhythm sample: tom"
|
||||
source_ref: "sound/rhythmc.c:15"
|
||||
|
||||
- name: "2608_rim.wav"
|
||||
path: "np2kai/2608_rim.wav"
|
||||
required: false
|
||||
note: "YM2608 OPNA rhythm sample: rim shot"
|
||||
source_ref: "sound/rhythmc.c:16"
|
||||
|
||||
# -- IDE BIOS ROM --
|
||||
# Loaded by ideio.c:1913-1931. Tried in order: ide.rom, d8000.rom,
|
||||
# bank3.bin, bios9821.rom. Only loaded when IDE BIOS is enabled in
|
||||
# core options (np2cfg.idebios) and a real BIOS ROM is also present.
|
||||
- name: "ide.rom"
|
||||
path: "np2kai/ide.rom"
|
||||
required: false
|
||||
note: >
|
||||
IDE controller BIOS ROM (8 KB). Required for real IDE BIOS emulation
|
||||
(HDD boot from IDE). The core also checks d8000.rom, bank3.bin,
|
||||
and bios9821.rom as fallback filenames. Without this, a simulated
|
||||
IDE BIOS is used.
|
||||
source_ref: "cbus/ideio.c:1913-1931"
|
||||
|
||||
# -- SCSI BIOS ROM --
|
||||
# Loaded by scsiio.c:219-231. Falls back to built-in scsibios[] stub.
|
||||
- name: "scsi.rom"
|
||||
path: "np2kai/scsi.rom"
|
||||
required: false
|
||||
note: >
|
||||
SCSI controller BIOS ROM (16 KB). For PC-98 SCSI HDD support.
|
||||
The core includes a built-in SCSI BIOS stub as fallback.
|
||||
source_ref: "cbus/scsiio.c:219-231"
|
||||
|
||||
# -- PCI BIOS ROM --
|
||||
# Loaded by pcidev.c:364-382. Tries pci.rom then bank0.bin.
|
||||
# Falls back to built-in PCI BIOS simulation.
|
||||
- name: "pci.rom"
|
||||
path: "np2kai/pci.rom"
|
||||
required: false
|
||||
note: >
|
||||
PCI BIOS ROM (32 KB). For PC-9821 PCI bus emulation.
|
||||
The core also checks bank0.bin as fallback. Without this,
|
||||
the built-in PCI BIOS simulator is used.
|
||||
source_ref: "io/pcidev.c:360-382"
|
||||
|
||||
# -- GPIB BIOS ROM --
|
||||
# Loaded by gpibio.c:327-356.
|
||||
- name: "gpib.rom"
|
||||
path: "np2kai/gpib.rom"
|
||||
required: false
|
||||
note: >
|
||||
GP-IB interface BIOS ROM. Rarely needed, only for GP-IB peripheral
|
||||
emulation.
|
||||
source_ref: "cbus/gpibio.c:327-356"
|
||||
79
emulators/numero.yml
Normal file
79
emulators/numero.yml
Normal file
@@ -0,0 +1,79 @@
|
||||
emulator: Numero
|
||||
type: libretro
|
||||
source: "https://github.com/nbarkhina/numero"
|
||||
cores:
|
||||
- numero
|
||||
systems:
|
||||
- ti-83
|
||||
|
||||
notes: |
|
||||
Numero is a TI-83 family calculator emulator for libretro, based on the
|
||||
Wabbitemu emulator. Supports TI-83, TI-83 Plus and TI-83 Silver Edition.
|
||||
|
||||
A calculator ROM dump is required to run. The core searches for ROM files
|
||||
in the system directory root with a fixed priority order
|
||||
(libretronew.cpp:575-594):
|
||||
|
||||
1. ti83se.rom (TI-83 Silver Edition, recommended -- largest storage)
|
||||
2. ti83plus.rom (TI-83 Plus)
|
||||
3. ti83.rom (TI-83)
|
||||
|
||||
The first file found wins. file_present_in_system() checks existence only
|
||||
(libretronew.cpp:451-472), then rom_load() loads it (libretronew.cpp:608).
|
||||
|
||||
There is no fallback or built-in ROM. If none of the three files are found,
|
||||
the core starts without a BIOS and shows a blank screen with a status
|
||||
message listing the expected filenames (libretronew.cpp:1034-1041).
|
||||
|
||||
The core supports no-content launch (RETRO_ENVIRONMENT_SET_SUPPORT_NO_GAME
|
||||
is set to true, libretronew.cpp:555-556). Content files are .8xp/.8xk/.8xg
|
||||
calculator programs loaded on top of the running ROM.
|
||||
|
||||
The emulator auto-saves calculator state every 10 seconds to preserve RAM
|
||||
contents (the TI-83 has no persistent storage beyond battery-backed RAM).
|
||||
|
||||
files:
|
||||
- name: "ti83se.rom"
|
||||
system: ti-83
|
||||
description: "TI-83 Silver Edition ROM dump"
|
||||
required: false
|
||||
source_ref: "libretronew.cpp:576-578"
|
||||
notes: "Checked first. Recommended by the author for largest storage capacity."
|
||||
|
||||
- name: "ti83plus.rom"
|
||||
system: ti-83
|
||||
description: "TI-83 Plus ROM dump"
|
||||
required: false
|
||||
source_ref: "libretronew.cpp:583-585"
|
||||
notes: "Checked second, used if ti83se.rom is missing."
|
||||
|
||||
- name: "ti83.rom"
|
||||
system: ti-83
|
||||
description: "TI-83 ROM dump"
|
||||
required: false
|
||||
source_ref: "libretronew.cpp:591-593"
|
||||
notes: "Checked last. Original TI-83 (non-Plus) ROM."
|
||||
|
||||
platform_details:
|
||||
bios_search:
|
||||
source_ref: "libretronew.cpp:451-472, 575-608"
|
||||
notes: |
|
||||
file_present_in_system() opens a read handle via libretro VFS to
|
||||
test file existence. The search is sequential: ti83se.rom first,
|
||||
then ti83plus.rom, then ti83.rom. Only one ROM is loaded.
|
||||
|
||||
rom_loading:
|
||||
source_ref: "src/Interface/calc.cpp (rom_load)"
|
||||
notes: |
|
||||
rom_load() detects the calculator model from the ROM image header
|
||||
and initializes the appropriate hardware (83, 83+, 83SE). Each
|
||||
model gets its own progress/save directory via setProgressDir().
|
||||
|
||||
content_loading:
|
||||
formats: "8xp, 8xk, 8xg"
|
||||
source_ref: "libretronew.cpp:483, 769"
|
||||
notes: |
|
||||
Calculator programs (.8xp), apps (.8xk) and groups (.8xg) are
|
||||
loaded into the running calculator via the sendfile mechanism,
|
||||
simulating the link cable transfer. Multiple programs can be
|
||||
loaded sequentially onto the same ROM session.
|
||||
98
emulators/o2em.yml
Normal file
98
emulators/o2em.yml
Normal file
@@ -0,0 +1,98 @@
|
||||
emulator: O2EM
|
||||
type: libretro
|
||||
core: o2em_libretro
|
||||
source: "https://github.com/libretro/libretro-o2em"
|
||||
systems:
|
||||
- odyssey2
|
||||
- videopac
|
||||
|
||||
notes: |
|
||||
O2EM is the libretro port of the Odyssey2/Videopac emulator.
|
||||
The core requires exactly one BIOS ROM selected via the o2em_bios core option.
|
||||
Default is o2rom.bin (Odyssey2 NTSC). The user can switch to c52.bin, g7400.bin
|
||||
or jopac.bin for European/French Videopac variants.
|
||||
|
||||
BIOS files are loaded from the system directory into rom_table[0] (1024 bytes).
|
||||
The core identifies the BIOS variant by CRC32 and sets the vpp flag accordingly
|
||||
(vpp=1 enables Videopac+ enhanced graphics for g7400.bin and jopac.bin).
|
||||
|
||||
The core will not start without a valid BIOS file present.
|
||||
Any single BIOS from the list below is sufficient for its region/hardware.
|
||||
|
||||
All BIOS files are exactly 1 KB (1024 bytes).
|
||||
|
||||
BIOS detection: libretro.c load_bios() lines 146-212, CRC32 switch.
|
||||
BIOS selection: libretro_core_options.h o2em_bios option lines 52-64.
|
||||
Core option handling: libretro.c lines 1107-1134.
|
||||
|
||||
files:
|
||||
# -------------------------------------------------------
|
||||
# Magnavox Odyssey2 (NTSC) - G7000 model
|
||||
# -------------------------------------------------------
|
||||
- name: "o2rom.bin"
|
||||
system: odyssey2
|
||||
region: [north-america]
|
||||
required: true
|
||||
size: 1024
|
||||
md5: "562d5ebf9e030a40d6fabfc2f33139fd"
|
||||
sha1: "b2e1955d957a475de2411770452eff4ea19f4cee"
|
||||
crc32: "8016a315"
|
||||
note: "Magnavox Odyssey2 BIOS (G7000 NTSC). Default BIOS, vpp=0."
|
||||
source_ref: "libretro.c:182-186"
|
||||
|
||||
# -------------------------------------------------------
|
||||
# Philips Videopac G7000 (European)
|
||||
# -------------------------------------------------------
|
||||
- name: "c52.bin"
|
||||
system: videopac
|
||||
region: [europe]
|
||||
required: true
|
||||
size: 1024
|
||||
md5: "f1071cdb0b6b10dde94d3bc8a6146387"
|
||||
sha1: "a6120aed50831c9c0d95dbdf707820f601d9452e"
|
||||
crc32: "a318e8d6"
|
||||
note: "Philips Videopac G7000 European BIOS. vpp=0, auto-sets PAL region."
|
||||
source_ref: "libretro.c:192-197"
|
||||
|
||||
# -------------------------------------------------------
|
||||
# Philips Videopac+ G7400 (European)
|
||||
# -------------------------------------------------------
|
||||
- name: "g7400.bin"
|
||||
system: videopac
|
||||
region: [europe]
|
||||
required: true
|
||||
size: 1024
|
||||
md5: "c500ff71236068e0dc0d0603d265ae76"
|
||||
sha1: "5130243429b40b01a14e1304d0394b8459a6fbae"
|
||||
crc32: "e20a9f41"
|
||||
note: "Philips Videopac+ G7400 European BIOS. vpp=1, enables enhanced graphics."
|
||||
source_ref: "libretro.c:187-191"
|
||||
|
||||
# -------------------------------------------------------
|
||||
# Philips Videopac+ G7400 (French) - JoPac
|
||||
# -------------------------------------------------------
|
||||
- name: "jopac.bin"
|
||||
system: videopac
|
||||
region: [france]
|
||||
required: true
|
||||
size: 1024
|
||||
md5: "279008e4a0db2dc5f1c048853b033828"
|
||||
sha1: "54b8d2c1317628de51a85fc1c424423a986775e4"
|
||||
crc32: "11647ca5"
|
||||
note: "Philips Videopac+ G7400 French BIOS (JoPac). vpp=1, enables enhanced graphics."
|
||||
source_ref: "libretro.c:198-203"
|
||||
|
||||
platform_details:
|
||||
odyssey2:
|
||||
bios_size: 1024
|
||||
bios_selection: "core option o2em_bios, default o2rom.bin"
|
||||
detection_method: "CRC32 of 1024-byte ROM"
|
||||
hle_available: false
|
||||
source_ref: "libretro.c:146-212, libretro_core_options.h:52-64"
|
||||
videopac:
|
||||
bios_size: 1024
|
||||
bios_selection: "core option o2em_bios, choose c52/g7400/jopac"
|
||||
detection_method: "CRC32 of 1024-byte ROM"
|
||||
vpp_flag: "g7400.bin and jopac.bin set vpp=1 for enhanced graphics"
|
||||
hle_available: false
|
||||
source_ref: "libretro.c:146-212, libretro_core_options.h:52-64"
|
||||
209
emulators/opera.yml
Normal file
209
emulators/opera.yml
Normal file
@@ -0,0 +1,209 @@
|
||||
emulator: Opera (4DO)
|
||||
type: libretro
|
||||
core: opera_libretro
|
||||
source: "https://github.com/libretro/opera-libretro"
|
||||
systems:
|
||||
- 3do
|
||||
|
||||
notes: |
|
||||
Opera is the libretro port of the 4DO/FreeDO 3DO Interactive Multiplayer emulator.
|
||||
The core requires exactly one system BIOS ROM (rom1) selected via the opera_bios
|
||||
core option. BIOS files are loaded from the system directory with
|
||||
read_file_from_system_directory() and byteswapped on little-endian hosts.
|
||||
The core will not start without a valid BIOS ROM.
|
||||
|
||||
The user selects which BIOS to use from the core option dropdown, which only
|
||||
lists BIOS files physically present in the system directory. Any single BIOS
|
||||
from the list below is sufficient to run games from its region.
|
||||
|
||||
Kanji font ROMs (rom2) are optional and only needed for Japanese text rendering.
|
||||
They are loaded via opera_lr_opts_set_font() and selected via opera_font core option.
|
||||
|
||||
All BIOS files are exactly 1 MB (1048576 bytes) except 3do_arcade_saot.bin (512 KB)
|
||||
and panafz1-kanji.bin (933636 bytes).
|
||||
|
||||
BIOS definitions: libopera/opera_bios.c BIOSES[] lines 3-136.
|
||||
BIOS loading: opera_lr_opts.c opera_lr_opts_set_bios() lines 239-270.
|
||||
Font loading: opera_lr_opts.c opera_lr_opts_set_font() lines 272-320.
|
||||
Core option: libretro_core_options.c opera_bios / opera_font.
|
||||
|
||||
files:
|
||||
# -------------------------------------------------------
|
||||
# Panasonic FZ-1 (US) - original 3DO launch model
|
||||
# -------------------------------------------------------
|
||||
- name: "panafz1.bin"
|
||||
system: 3do
|
||||
region: [north-america]
|
||||
required: true
|
||||
size: 1048576 # 1 MB
|
||||
md5: "f47264dd47fe30f73ab3c010015c155b"
|
||||
sha1: "34bf189111295f74d7b7dfc1f304d98b8d36325a"
|
||||
note: "Panasonic FZ-1 (U). Version unknown, dated 1993-08-03."
|
||||
source_ref: "libopera/opera_bios.c:6-17"
|
||||
|
||||
# -------------------------------------------------------
|
||||
# Panasonic FZ-1 (Japan)
|
||||
# -------------------------------------------------------
|
||||
- name: "panafz1j.bin"
|
||||
system: 3do
|
||||
region: [japan]
|
||||
required: true
|
||||
size: 1048576 # 1 MB
|
||||
md5: "a496cfdded3da562759be3561317b605"
|
||||
sha1: "ec7ec62d60ec0459a14ed56ebc66761ef3c80efc"
|
||||
note: "Panasonic FZ-1 (J). Version 1.54, dated 1994-01-22."
|
||||
source_ref: "libopera/opera_bios.c:19-30"
|
||||
|
||||
# -------------------------------------------------------
|
||||
# Panasonic FZ-1 (Japan) [No RSA]
|
||||
# -------------------------------------------------------
|
||||
- name: "panafz1j-norsa.bin"
|
||||
system: 3do
|
||||
region: [japan]
|
||||
required: false
|
||||
size: 1048576 # 1 MB
|
||||
md5: "f6c71de7470d16abe4f71b1444883dc8"
|
||||
sha1: "a417587ae3b0b8ef00c830920c21af8bee88e419"
|
||||
note: "Panasonic FZ-1 (J) with RSA check removed. Version 1.54."
|
||||
source_ref: "libopera/opera_bios.c:32-43"
|
||||
|
||||
# -------------------------------------------------------
|
||||
# Panasonic FZ-10 (US) - slim redesign
|
||||
# -------------------------------------------------------
|
||||
- name: "panafz10.bin"
|
||||
system: 3do
|
||||
region: [north-america]
|
||||
required: true
|
||||
size: 1048576 # 1 MB
|
||||
md5: "51f2f43ae2f3508a14d9f56597e2d3ce"
|
||||
sha1: "3c912300775d1ad730dc35757e279c274c0acaad"
|
||||
note: "Panasonic FZ-10 (U). Version 1.59.1.1, dated 1994-08-25."
|
||||
source_ref: "libopera/opera_bios.c:45-56"
|
||||
|
||||
# -------------------------------------------------------
|
||||
# Panasonic FZ-10 (US) [No RSA]
|
||||
# -------------------------------------------------------
|
||||
- name: "panafz10-norsa.bin"
|
||||
system: 3do
|
||||
region: [north-america]
|
||||
required: false
|
||||
size: 1048576 # 1 MB
|
||||
md5: "1477bda80dc33731a65468c1f5bcbee9"
|
||||
sha1: "f05e642322c03694f06a809c0b90fc27ac73c002"
|
||||
note: "Panasonic FZ-10 (U) with RSA check removed. Version 1.59.1.1."
|
||||
source_ref: "libopera/opera_bios.c:58-69"
|
||||
|
||||
# -------------------------------------------------------
|
||||
# Panasonic FZ-10 (Europe) ANVIL
|
||||
# -------------------------------------------------------
|
||||
- name: "panafz10e-anvil.bin"
|
||||
system: 3do
|
||||
region: [europe]
|
||||
required: true
|
||||
size: 1048576 # 1 MB
|
||||
md5: "a48e6746bd7edec0f40cff078f0bb19f"
|
||||
sha1: "a900371f0cdcdc03f79557f11d406fd71251a5fd"
|
||||
note: "Panasonic FZ-10 (E) ANVIL. Version 1.66.1.1, dated 1994-09-22."
|
||||
source_ref: "libopera/opera_bios.c:71-82"
|
||||
|
||||
# -------------------------------------------------------
|
||||
# Panasonic FZ-10 (Europe) ANVIL [No RSA]
|
||||
# -------------------------------------------------------
|
||||
- name: "panafz10e-anvil-norsa.bin"
|
||||
system: 3do
|
||||
region: [europe]
|
||||
required: false
|
||||
size: 1048576 # 1 MB
|
||||
md5: "cf11bbb5a16d7af9875cca9de9a15e09"
|
||||
sha1: "2765c7b4557cc838b32567d2428d088980295159"
|
||||
note: "Panasonic FZ-10 (E) ANVIL with RSA check removed. Version 1.66.1.1."
|
||||
source_ref: "libopera/opera_bios.c:84-95"
|
||||
|
||||
# -------------------------------------------------------
|
||||
# Goldstar GDO-101M (US)
|
||||
# -------------------------------------------------------
|
||||
- name: "goldstar.bin"
|
||||
system: 3do
|
||||
region: [north-america]
|
||||
required: true
|
||||
size: 1048576 # 1 MB
|
||||
md5: "8639fd5e549bd6238cfee79e3e749114"
|
||||
sha1: "c4a2e5336f77fb5f743de1eea2cda43675ee2de7"
|
||||
note: "Goldstar GDO-101M. Version 1.59, dated 1994-05-10."
|
||||
source_ref: "libopera/opera_bios.c:97-108"
|
||||
|
||||
# -------------------------------------------------------
|
||||
# Sanyo Try IMP-21J (Japan)
|
||||
# -------------------------------------------------------
|
||||
- name: "sanyotry.bin"
|
||||
system: 3do
|
||||
region: [japan]
|
||||
required: true
|
||||
size: 1048576 # 1 MB
|
||||
md5: "35fa1a1ebaaeea286dc5cd15487c13ea"
|
||||
sha1: "b01c53da256dde43ffec4ad3fc3adfa8d635e943"
|
||||
note: "Sanyo Try IMP-21J. Version 1.59, dated 1994-05-10."
|
||||
source_ref: "libopera/opera_bios.c:110-121"
|
||||
|
||||
# -------------------------------------------------------
|
||||
# 3DO Arcade - SAOT
|
||||
# -------------------------------------------------------
|
||||
- name: "3do_arcade_saot.bin"
|
||||
system: 3do
|
||||
region: [north-america]
|
||||
required: false
|
||||
size: 524288 # 512 KB
|
||||
md5: "8970fc987ab89a7f64da9f8a8c4333ff"
|
||||
sha1: "520d3d1b5897800af47f92efd2444a26b7a7dead"
|
||||
note: "3DO Arcade SAOT board BIOS. Half the size of consumer BIOS ROMs."
|
||||
source_ref: "libopera/opera_bios.c:123-134"
|
||||
|
||||
# -------------------------------------------------------
|
||||
# Kanji font ROM - FZ-1 (933636 bytes, non-standard size)
|
||||
# -------------------------------------------------------
|
||||
- name: "panafz1-kanji.bin"
|
||||
system: 3do
|
||||
region: [japan]
|
||||
required: false
|
||||
size: 933636
|
||||
md5: "b8dc97f778a6245c58e064b0312e8281"
|
||||
sha1: "acd39a8fee1b9d2950d5ab447846c11fb31af63e"
|
||||
note: "Kanji font ROM for FZ-1. Version 16.4, dated 1993-08-03. Optional, Japanese text only."
|
||||
source_ref: "libopera/opera_bios.c:141-152"
|
||||
|
||||
# -------------------------------------------------------
|
||||
# Kanji font ROM - FZ-1J (1 MB)
|
||||
# -------------------------------------------------------
|
||||
- name: "panafz1j-kanji.bin"
|
||||
system: 3do
|
||||
region: [japan]
|
||||
required: false
|
||||
size: 1048576 # 1 MB
|
||||
md5: "c23fb5d5e6bb1c240d02cf968972be37"
|
||||
sha1: "884515605ee243577ab20767ef8c1a7368e4e407"
|
||||
note: "Kanji font ROM for FZ-1J. Version 16.4, dated 1993-08-03. Optional, Japanese text only."
|
||||
source_ref: "libopera/opera_bios.c:154-165"
|
||||
|
||||
# -------------------------------------------------------
|
||||
# Kanji font ROM - FZ-10JA ANVIL (1 MB)
|
||||
# -------------------------------------------------------
|
||||
- name: "panafz10ja-anvil-kanji.bin"
|
||||
system: 3do
|
||||
region: [japan]
|
||||
required: false
|
||||
size: 1048576 # 1 MB
|
||||
md5: "428577250f43edc902ea239c50d2240d"
|
||||
sha1: "2e857b957803d0331fd229328df01f3ffab69eee"
|
||||
note: "Kanji font ROM for FZ-10JA ANVIL. Version 16.4. Optional, Japanese text only."
|
||||
source_ref: "libopera/opera_bios.c:167-178"
|
||||
|
||||
platform_details:
|
||||
3do:
|
||||
rom1_size: 1048576 # 1 MB standard BIOS
|
||||
rom1_arcade_size: 524288 # 512 KB arcade BIOS
|
||||
rom2_max_size: 1048576 # 1 MB kanji font ROM
|
||||
bios_selection: "core option opera_bios, user picks from detected files"
|
||||
font_selection: "core option opera_font, optional"
|
||||
byteswap: "rom1 is byteswapped on little-endian (opera_mem_rom1_byteswap32_if_le)"
|
||||
hle_available: false
|
||||
source_ref: "opera_lr_opts.c:239-270, libopera/opera_bios.c:3-180"
|
||||
212
emulators/pcsx2.yml
Normal file
212
emulators/pcsx2.yml
Normal file
@@ -0,0 +1,212 @@
|
||||
# PCSX2 emulator BIOS profile
|
||||
# Generated from source analysis of https://github.com/PCSX2/pcsx2
|
||||
# Commit analyzed: HEAD as of 2026-03-17
|
||||
|
||||
emulator: PCSX2
|
||||
type: standalone
|
||||
source: "https://github.com/PCSX2/pcsx2"
|
||||
systems: [sony-playstation-2]
|
||||
|
||||
bios_directory: "bios/"
|
||||
bios_detection: "romdir" # scans romdir structure inside binary, looks for RESET/ROMVER/EXTINFO entries
|
||||
bios_selection: "automatic" # scans all files in bios dir matching 4-8 MB size, validates via romdir
|
||||
|
||||
validation:
|
||||
method: "romdir_parse"
|
||||
min_size: 4194304 # 4 MB (MIN_BIOS_SIZE = 4 * _1mb)
|
||||
max_size: 8388608 # 8 MB (MAX_BIOS_SIZE = 8 * _1mb)
|
||||
required_entries: ["RESET", "ROMVER"]
|
||||
optional_entries: ["EXTINFO"]
|
||||
note: "Any file in bios/ between 4-8 MB with valid romdir containing RESET+ROMVER is accepted"
|
||||
|
||||
regions:
|
||||
J: {zone: "Japan", id: 0}
|
||||
A: {zone: "USA", id: 1}
|
||||
E: {zone: "Europe", id: 2}
|
||||
H: {zone: "Asia", id: 4}
|
||||
C: {zone: "China", id: 6}
|
||||
T: {zone: "T10K/COH-H", id: 8}
|
||||
X: {zone: "Test", id: 9}
|
||||
P: {zone: "Free", id: 10}
|
||||
|
||||
files:
|
||||
# -- Main BIOS binary (required) --
|
||||
- name: "<user-selected>.bin"
|
||||
pattern: "*"
|
||||
required: true
|
||||
size_range: "4MB-8MB"
|
||||
source_ref: "pcsx2/ps2/BiosTools.cpp:258-282"
|
||||
note: >
|
||||
PCSX2 does not mandate a specific filename. It scans the entire bios/ directory
|
||||
for any file between 4-8 MB that contains a valid romdir structure (RESET + ROMVER entries).
|
||||
Common filenames follow the SCPH-XXXXX_BIOS_VYYY_REGION_ZZZ.BIN convention but this is
|
||||
not enforced. The file is loaded into the 4 MB ROM region of EE memory.
|
||||
|
||||
# -- ROM1 (optional, DVD player) --
|
||||
- name: "<biosname>.rom1"
|
||||
pattern: "{biosname}.rom1 or {biosbase}.rom1"
|
||||
required: false
|
||||
max_size: 4194304 # 4 MB (Ps2MemSize::Rom1)
|
||||
source_ref: "pcsx2/ps2/BiosTools.cpp:214-241"
|
||||
note: >
|
||||
DVD player ROM. Loaded via LoadExtraRom("rom1"). PCSX2 tries two naming patterns:
|
||||
1) Full bios path + ".rom1" appended (e.g. scph70004.bin.rom1)
|
||||
2) Bios path with extension replaced (e.g. scph70004.rom1)
|
||||
Mapped to EE memory at ROM1 region (0x1FC00000 + 4MB offset).
|
||||
Contains DVD player and region detection data (DVDID).
|
||||
|
||||
# -- ROM2 (optional, Chinese ROM extension) --
|
||||
- name: "<biosname>.rom2"
|
||||
pattern: "{biosname}.rom2 or {biosbase}.rom2"
|
||||
required: false
|
||||
max_size: 4194304 # 4 MB (Ps2MemSize::Rom2)
|
||||
source_ref: "pcsx2/ps2/BiosTools.cpp:214-241"
|
||||
note: >
|
||||
Chinese ROM extension. Loaded via LoadExtraRom("rom2"). Same naming convention
|
||||
as rom1: tries appended extension first, then replaced extension.
|
||||
Only present on Chinese region consoles.
|
||||
|
||||
# -- NVM / NVRAM (optional, auto-created) --
|
||||
- name: "<biosname>.nvm"
|
||||
pattern: "{biosbase}.nvm"
|
||||
required: false
|
||||
size: 1024 # NVRAM_SIZE = 1024 bytes
|
||||
source_ref: "pcsx2/CDVD/CDVD.cpp:160-238"
|
||||
note: >
|
||||
EEPROM / NVRAM data. Path derived from BiosPath with extension replaced to ".nvm"
|
||||
(cdvdGetNVRAMPath). Contains console configuration: language, timezone, iLink ID,
|
||||
region parameters, OSD settings. Auto-created with defaults if missing.
|
||||
Two NVM layouts exist: v0.00+ (biosVer 0x000) and v1.70+ (biosVer 0x146).
|
||||
|
||||
# -- MEC file (optional, auto-created) --
|
||||
- name: "<biosname>.mec"
|
||||
pattern: "{biosbase}.mec"
|
||||
required: false
|
||||
size: 4 # u32 s_mecha_version
|
||||
source_ref: "pcsx2/CDVD/CDVD.cpp:190-204"
|
||||
note: >
|
||||
Mechacon (mechanism controller) version file. 4 bytes containing the mecha version
|
||||
as a u32 value. Auto-created with DEFAULT_MECHA_VERSION (0x00020603) if missing.
|
||||
Path derived from BiosPath with extension replaced to ".mec".
|
||||
|
||||
# -- IRX override (optional, advanced) --
|
||||
- name: "<custom>.irx"
|
||||
pattern: "*.irx"
|
||||
required: false
|
||||
source_ref: "pcsx2/ps2/BiosTools.cpp:243-256,384-385"
|
||||
note: >
|
||||
Custom IOP Reboot eXecutable module. Loaded into ROM at offset 0x3C0000 if
|
||||
EmuConfig.CurrentIRX is set (path length > 3). Injected at IOP reset (PC=0x1630).
|
||||
Used for debugging/development, not needed for normal operation.
|
||||
|
||||
# -- DEV9 EEPROM (optional, network adapter) --
|
||||
- name: "eeprom.dat"
|
||||
required: false
|
||||
size: 64 # 64 bytes, mmap'd
|
||||
source_ref: "pcsx2/DEV9/DEV9.cpp:110-160"
|
||||
note: >
|
||||
DEV9 (network adapter / HDD expansion bay) EEPROM data. Fixed filename "eeprom.dat"
|
||||
opened from working directory. Contains network adapter configuration.
|
||||
Falls back to built-in defaults if file not found. Only relevant when using
|
||||
DEV9 features (online play, HDD).
|
||||
|
||||
common_bios_filenames:
|
||||
# Japan
|
||||
- "SCPH-10000_BIOS_V1_JAP_100.BIN"
|
||||
- "SCPH-15000_BIOS_V3_JAP_120.BIN"
|
||||
- "SCPH-30000_BIOS_V4_JAP_150.BIN"
|
||||
- "SCPH-30001R_BIOS_V7_JAP_160.BIN"
|
||||
- "SCPH-30004R_BIOS_V7_JAP_160.BIN"
|
||||
- "SCPH-35000_BIOS_V5_JAP_160.BIN"
|
||||
- "SCPH-50000_BIOS_V9_JAP_170.BIN"
|
||||
- "SCPH-50004_BIOS_V9_JAP_170.BIN"
|
||||
- "SCPH-70000_BIOS_V12_JAP_200.BIN"
|
||||
- "SCPH-75000_BIOS_V14_JAP_220.BIN"
|
||||
- "SCPH-77000_BIOS_V14_JAP_220.BIN"
|
||||
- "SCPH-90000_BIOS_V18_JAP_230.BIN"
|
||||
# USA
|
||||
- "SCPH-30001_BIOS_V4_USA_150.BIN"
|
||||
- "SCPH-39001_BIOS_V6_USA_160.BIN"
|
||||
- "SCPH-50001_BIOS_V9_USA_170.BIN"
|
||||
- "SCPH-50003_BIOS_V9_USA_170.BIN"
|
||||
- "SCPH-70002_BIOS_V12_USA_200.BIN"
|
||||
- "SCPH-70004_BIOS_V12_USA_200.BIN"
|
||||
- "SCPH-70012_BIOS_V12_USA_200.BIN"
|
||||
- "SCPH-75001_BIOS_V14_USA_220.BIN"
|
||||
- "SCPH-77001_BIOS_V14_USA_220.BIN"
|
||||
- "SCPH-90001_BIOS_V18_USA_230.BIN"
|
||||
# Europe
|
||||
- "SCPH-30002_BIOS_V4_EUR_150.BIN"
|
||||
- "SCPH-30003_BIOS_V4_EUR_150.BIN"
|
||||
- "SCPH-30004_BIOS_V4_EUR_150.BIN"
|
||||
- "SCPH-39002_BIOS_V6_EUR_160.BIN"
|
||||
- "SCPH-39003_BIOS_V6_EUR_160.BIN"
|
||||
- "SCPH-39004_BIOS_V6_EUR_160.BIN"
|
||||
- "SCPH-50002_BIOS_V9_EUR_170.BIN"
|
||||
- "SCPH-50004_BIOS_V9_EUR_170.BIN"
|
||||
- "SCPH-70002_BIOS_V12_EUR_200.BIN"
|
||||
- "SCPH-70003_BIOS_V12_EUR_200.BIN"
|
||||
- "SCPH-70004_BIOS_V12_EUR_200.BIN"
|
||||
- "SCPH-70008_BIOS_V12_EUR_200.BIN"
|
||||
- "SCPH-75002_BIOS_V14_EUR_220.BIN"
|
||||
- "SCPH-75003_BIOS_V14_EUR_220.BIN"
|
||||
- "SCPH-75004_BIOS_V14_EUR_220.BIN"
|
||||
- "SCPH-77002_BIOS_V14_EUR_220.BIN"
|
||||
- "SCPH-77003_BIOS_V14_EUR_220.BIN"
|
||||
- "SCPH-77004_BIOS_V14_EUR_220.BIN"
|
||||
- "SCPH-90002_BIOS_V18_EUR_230.BIN"
|
||||
- "SCPH-90003_BIOS_V18_EUR_230.BIN"
|
||||
- "SCPH-90004_BIOS_V18_EUR_230.BIN"
|
||||
# Asia
|
||||
- "SCPH-50009_BIOS_V9_HK_170.BIN"
|
||||
- "SCPH-70005_BIOS_V12_HK_200.BIN"
|
||||
- "SCPH-70006_BIOS_V12_HK_200.BIN"
|
||||
- "SCPH-70008_BIOS_V12_HK_200.BIN"
|
||||
# China
|
||||
- "SCPH-50009_BIOS_V9_CHN_170.BIN"
|
||||
- "SCPH-70006_BIOS_V12_CHN_200.BIN"
|
||||
|
||||
memory_layout:
|
||||
ROM: {offset: "0x1FC00000", size: "4 MB", purpose: "Main BIOS binary"}
|
||||
ROM1: {offset: "ROM + 4MB", size: "4 MB", purpose: "DVD player"}
|
||||
ROM2: {offset: "ROM + 8MB", size: "4 MB", purpose: "Chinese ROM extension"}
|
||||
|
||||
nvm_layout:
|
||||
format_0:
|
||||
applies_to: "BIOS v0.00+"
|
||||
biosVer: 0x000
|
||||
config0: 0x280
|
||||
config1: 0x300
|
||||
config2: 0x200
|
||||
consoleId: 0x1C8
|
||||
ilinkId: 0x1C0
|
||||
modelNum: 0x1A0
|
||||
regparams: 0x180
|
||||
mac: 0x198
|
||||
format_1:
|
||||
applies_to: "BIOS v1.70+"
|
||||
biosVer: 0x146
|
||||
config0: 0x270
|
||||
config1: 0x2B0
|
||||
config2: 0x200
|
||||
consoleId: 0x1F0
|
||||
ilinkId: 0x1E0
|
||||
modelNum: 0x1B0
|
||||
regparams: 0x180
|
||||
mac: 0x198
|
||||
|
||||
notes: |
|
||||
PCSX2 is filename-agnostic for the main BIOS. Detection relies on romdir structure
|
||||
parsing inside the binary itself, not on filename or extension. Any file between 4-8 MB
|
||||
with a valid romdir (containing at least RESET and ROMVER entries) is accepted.
|
||||
|
||||
The ROMVER entry encodes: version (2+2 digits), region letter, console/devel flag,
|
||||
build date (YYYYMMDD), and is used to determine the BIOS description and region.
|
||||
|
||||
Companion files (.nvm, .mec) are auto-created with sane defaults if missing.
|
||||
ROM1/ROM2 are silently skipped if not found - only the main BIOS binary is strictly required.
|
||||
|
||||
PCSX2 no longer ships as a libretro core in official builds. The standalone emulator
|
||||
is the primary distribution channel.
|
||||
|
||||
Devel console BIOSes (< ~2.3 MB) lack the OSD and are handled with NoOSD=true flag.
|
||||
89
emulators/pcsx_rearmed.yml
Normal file
89
emulators/pcsx_rearmed.yml
Normal file
@@ -0,0 +1,89 @@
|
||||
emulator: PCSX-ReARMed
|
||||
type: libretro
|
||||
source: "https://github.com/libretro/pcsx_rearmed"
|
||||
cores: [pcsx_rearmed, pcsx_rearmed_neon, pcsx_rearmed_interpreter]
|
||||
systems: [sony-playstation]
|
||||
bios_size: 524288 # 512 KB (0x80000); also accepts 4 MB psxonpsp combo (reads first 512 KB)
|
||||
verification: crc32
|
||||
notes: >
|
||||
HLE BIOS built-in: core option pcsx_rearmed_bios = "HLE" bypasses real BIOS entirely.
|
||||
Default is "auto" which searches system dir for listed filenames, then scans all files.
|
||||
Region detection reads bytes at offset 0x7ff51: " E" = EU, " J" = JP, else US.
|
||||
Three CRC32 hardcoded as JP override: 0x18D0F7D8, 0x3B601FC8, 0x3539DEF6 (psxonpsp, scph1000).
|
||||
BIOS validity check: byte pattern at offset 1 (\x00\x08\x3c\x3f) or string "PS compatible" at 0x12c.
|
||||
Files named "unirom" (case-insensitive) are explicitly skipped.
|
||||
Region fallback: if the matching-region BIOS is missing, any available region BIOS is used over HLE.
|
||||
Three region slots: US (index 0), JP (index 1), EU (index 2) stored in Config.Bios[].
|
||||
All firmware is optional per libretro-core-info; HLE works but real BIOS improves compatibility.
|
||||
|
||||
files:
|
||||
# -- Region: Japan (PSX_REGION_JP = 1) --
|
||||
|
||||
- name: "scph5500.bin"
|
||||
description: "SCPH-5500 (v3.0 09-09-96 J)"
|
||||
region: "NTSC-J"
|
||||
required: false
|
||||
md5: "8dd7d5296a650fac7319bce665a6a53c"
|
||||
source_ref: "frontend/libretro.c:3710 (listed_bios[0])"
|
||||
notes: "Preferred JP BIOS, searched first by exact filename."
|
||||
|
||||
# -- Region: North America (PSX_REGION_US = 0) --
|
||||
|
||||
- name: "scph5501.bin"
|
||||
description: "SCPH-5501 (v3.0 11-18-96 A)"
|
||||
region: "NTSC-U"
|
||||
required: false
|
||||
md5: "490f666e1afb15b7362b406ed1cea246"
|
||||
source_ref: "frontend/libretro.c:3710 (listed_bios[1])"
|
||||
notes: "Preferred US BIOS, searched first by exact filename."
|
||||
|
||||
# -- Region: Europe (PSX_REGION_EU = 2) --
|
||||
|
||||
- name: "scph5502.bin"
|
||||
description: "SCPH-5502 (v3.0 01-06-97 E)"
|
||||
region: "PAL"
|
||||
required: false
|
||||
md5: "32736f17079d0b2b7024407c39bd3050"
|
||||
source_ref: "frontend/libretro.c:3710 (listed_bios[2])"
|
||||
notes: "Preferred EU BIOS, searched first by exact filename."
|
||||
|
||||
# -- Fallback BIOS filenames (searched in order after scph550x) --
|
||||
|
||||
- name: "psxonpsp660.bin"
|
||||
description: "PSP embedded PS1 BIOS (region-free, 512 KB or 4 MB accepted)"
|
||||
region: "Auto"
|
||||
required: false
|
||||
md5: "c53ca5908936d412331790f4426c6c33"
|
||||
source_ref: "frontend/libretro.c:3711 (listed_bios[3])"
|
||||
notes: "Region detected from content at runtime. 4 MB combo image accepted but only first 512 KB read."
|
||||
|
||||
- name: "scph101.bin"
|
||||
description: "SCPH-101 (v4.4 03-24-00 A) - PSone US"
|
||||
region: "NTSC-U"
|
||||
required: false
|
||||
md5: "6e3735ff4c7dc899ee98981c18c3666d"
|
||||
source_ref: "frontend/libretro.c:3711 (listed_bios[4])"
|
||||
notes: "PSone slim model. Searched by filename after scph550x and psxonpsp660."
|
||||
|
||||
- name: "scph7001.bin"
|
||||
description: "SCPH-7001 (v4.1 12-16-97 A)"
|
||||
region: "NTSC-U"
|
||||
required: false
|
||||
md5: "1e68c231d0896b7eadcad1d7d8e76129"
|
||||
source_ref: "frontend/libretro.c:3711 (listed_bios[5])"
|
||||
notes: "Searched by filename after psxonpsp660 and scph101."
|
||||
|
||||
- name: "scph1001.bin"
|
||||
description: "SCPH-1001 (v2.2 12-04-95 A)"
|
||||
region: "NTSC-U"
|
||||
required: false
|
||||
md5: "924e392ed05558ffdb115408c263dccf"
|
||||
source_ref: "frontend/libretro.c:3711 (listed_bios[6])"
|
||||
notes: "Original US model. Last in the explicit filename search list."
|
||||
|
||||
# -- Dynamic scan fallback --
|
||||
# After exhausting listed_bios[], the core calls find_any_bios() which scans
|
||||
# the entire system directory via opendir/readdir. Any 512 KB file passing the
|
||||
# validity check (magic bytes or "PS compatible" string) is accepted and assigned
|
||||
# to the detected region slot. This means scph1000.bin, scph3000.bin, scph7002.bin,
|
||||
# scph7502.bin, etc. all work without being explicitly listed.
|
||||
175
emulators/picodrive.yml
Normal file
175
emulators/picodrive.yml
Normal file
@@ -0,0 +1,175 @@
|
||||
emulator: PicoDrive
|
||||
type: libretro
|
||||
source: "https://github.com/libretro/picodrive"
|
||||
systems:
|
||||
- sega-megadrive
|
||||
- sega-genesis
|
||||
- sega-megacd
|
||||
- sega-segacd
|
||||
- sega-32x
|
||||
- sega-mastersystem
|
||||
- sega-gamegear
|
||||
- sega-sg1000
|
||||
- sega-pico
|
||||
|
||||
notes: |
|
||||
PicoDrive is a fast Mega Drive / Genesis emulator with Mega CD, 32X, Master
|
||||
System, Game Gear, SG-1000 and Sega Pico support.
|
||||
|
||||
Mega CD / Sega CD games require a region-matching BIOS file. The core searches
|
||||
the system directory for each name in order, trying .bin then .zip extension,
|
||||
and uses the first file found. If no BIOS is found, CD games fail to load with
|
||||
PM_BAD_CD_NO_BIOS. MSU-MD games can run without BIOS.
|
||||
|
||||
BIOS filename search order (platform/libretro/libretro.c:1265-1329):
|
||||
US: us_scd2_9306, SegaCDBIOS9303, us_scd1_9210, bios_CD_U
|
||||
EU: eu_mcd2_9306, eu_mcd2_9303, eu_mcd1_9210, bios_CD_E
|
||||
JP: jp_mcd2_921222, jp_mcd1_9112, jp_mcd1_9111, bios_CD_J
|
||||
|
||||
32X BIOS files (m68k, master SH2, slave SH2) are fully optional. The core
|
||||
has built-in HLE that generates replacement code at startup when the external
|
||||
BIOS pointers are NULL (pico/32x/memory.c:2200 get_bios(), pico/32x/32x.c:172).
|
||||
The libretro frontend does not expose any 32X BIOS loading path. Only the
|
||||
standalone platform code references 32X_M_BIOS.BIN / 32X_S_BIOS.BIN, and
|
||||
that code is currently disabled (#if 0 in platform/common/emu.c:1529).
|
||||
|
||||
Master System, Game Gear, SG-1000: no BIOS file loaded. The core initializes
|
||||
VDP registers and RAM to simulate post-BIOS state (pico/sms.c:1080-1096).
|
||||
|
||||
files:
|
||||
# -------------------------------------------------------
|
||||
# Mega CD / Sega CD - US region
|
||||
# -------------------------------------------------------
|
||||
- name: "us_scd2_9306.bin"
|
||||
system: sega-segacd
|
||||
required: true
|
||||
size: 131072 # 128 KB (0x20000)
|
||||
note: "US Sega CD Model 2 BIOS (September 1993). First in US search order."
|
||||
source_ref: "platform/libretro/libretro.c:1266"
|
||||
|
||||
- name: "SegaCDBIOS9303.bin"
|
||||
system: sega-segacd
|
||||
required: false
|
||||
size: 131072
|
||||
note: "US Sega CD BIOS (March 1993). Second in US search order."
|
||||
source_ref: "platform/libretro/libretro.c:1266"
|
||||
|
||||
- name: "us_scd1_9210.bin"
|
||||
system: sega-segacd
|
||||
required: false
|
||||
size: 131072
|
||||
note: "US Sega CD Model 1 BIOS (October 1992). Third in US search order."
|
||||
source_ref: "platform/libretro/libretro.c:1266"
|
||||
|
||||
- name: "bios_CD_U.bin"
|
||||
system: sega-segacd
|
||||
required: false
|
||||
size: 131072
|
||||
note: "US Sega CD BIOS (generic name). Last in US search order."
|
||||
source_ref: "platform/libretro/libretro.c:1266"
|
||||
|
||||
# -------------------------------------------------------
|
||||
# Mega CD / Sega CD - EU region
|
||||
# -------------------------------------------------------
|
||||
- name: "eu_mcd2_9306.bin"
|
||||
system: sega-megacd
|
||||
required: true
|
||||
size: 131072
|
||||
note: "EU Mega CD Model 2 BIOS (June 1993). First in EU search order."
|
||||
source_ref: "platform/libretro/libretro.c:1269"
|
||||
|
||||
- name: "eu_mcd2_9303.bin"
|
||||
system: sega-megacd
|
||||
required: false
|
||||
size: 131072
|
||||
note: "EU Mega CD Model 2 BIOS (March 1993). Second in EU search order."
|
||||
source_ref: "platform/libretro/libretro.c:1269"
|
||||
|
||||
- name: "eu_mcd1_9210.bin"
|
||||
system: sega-megacd
|
||||
required: false
|
||||
size: 131072
|
||||
note: "EU Mega CD Model 1 BIOS (October 1992). Third in EU search order."
|
||||
source_ref: "platform/libretro/libretro.c:1269"
|
||||
|
||||
- name: "bios_CD_E.bin"
|
||||
system: sega-megacd
|
||||
required: false
|
||||
size: 131072
|
||||
note: "EU Mega CD BIOS (generic name). Last in EU search order."
|
||||
source_ref: "platform/libretro/libretro.c:1269"
|
||||
|
||||
# -------------------------------------------------------
|
||||
# Mega CD / Sega CD - JP region
|
||||
# -------------------------------------------------------
|
||||
- name: "jp_mcd2_921222.bin"
|
||||
system: sega-megacd
|
||||
required: true
|
||||
size: 131072
|
||||
note: "JP Mega CD Model 2 BIOS (December 1992). First in JP search order."
|
||||
source_ref: "platform/libretro/libretro.c:1272"
|
||||
|
||||
- name: "jp_mcd1_9112.bin"
|
||||
system: sega-megacd
|
||||
required: false
|
||||
size: 131072
|
||||
note: "JP Mega CD Model 1 BIOS (December 1991). Second in JP search order."
|
||||
source_ref: "platform/libretro/libretro.c:1272"
|
||||
|
||||
- name: "jp_mcd1_9111.bin"
|
||||
system: sega-megacd
|
||||
required: false
|
||||
size: 131072
|
||||
note: "JP Mega CD Model 1 BIOS (November 1991). Third in JP search order."
|
||||
source_ref: "platform/libretro/libretro.c:1272"
|
||||
|
||||
- name: "bios_CD_J.bin"
|
||||
system: sega-megacd
|
||||
required: false
|
||||
size: 131072
|
||||
note: "JP Mega CD BIOS (generic name). Last in JP search order."
|
||||
source_ref: "platform/libretro/libretro.c:1272"
|
||||
|
||||
# -------------------------------------------------------
|
||||
# Sega 32X - HLE available, not loaded by libretro frontend
|
||||
# -------------------------------------------------------
|
||||
- name: "32X_G_BIOS.BIN"
|
||||
system: sega-32x
|
||||
required: false
|
||||
size: 256 # 0x100
|
||||
note: "32X 68K (Genesis-side) BIOS. HLE replacement generated when NULL."
|
||||
source_ref: "pico/32x/memory.c:2207-2243"
|
||||
|
||||
- name: "32X_M_BIOS.BIN"
|
||||
system: sega-32x
|
||||
required: false
|
||||
size: 2048 # 0x800
|
||||
note: "32X Master SH2 BIOS. HLE replacement generated when NULL."
|
||||
source_ref: "pico/32x/memory.c:2250-2277"
|
||||
|
||||
- name: "32X_S_BIOS.BIN"
|
||||
system: sega-32x
|
||||
required: false
|
||||
size: 1024 # 0x400
|
||||
note: "32X Slave SH2 BIOS. HLE replacement generated when NULL."
|
||||
source_ref: "pico/32x/memory.c:2280-2298"
|
||||
|
||||
platform_details:
|
||||
megacd:
|
||||
bios_size: 131072 # 128 KB
|
||||
hle_available: false
|
||||
region_specific: true
|
||||
extensions_tried: [".bin", ".zip"]
|
||||
source_ref: "pico/pico_int.h:559, platform/libretro/libretro.c:1310-1318"
|
||||
|
||||
32x:
|
||||
m68k_bios_size: 256 # 0x100
|
||||
master_sh2_bios_size: 2048 # 0x800
|
||||
slave_sh2_bios_size: 1024 # 0x400
|
||||
hle_available: true
|
||||
source_ref: "pico/pico.h:53-55, pico/pico_int.h:679-693"
|
||||
|
||||
sms:
|
||||
hle_available: true
|
||||
note: "No BIOS file loaded. VDP/RAM initialized to post-BIOS state."
|
||||
source_ref: "pico/sms.c:1080-1096"
|
||||
88
emulators/pokemini.yml
Normal file
88
emulators/pokemini.yml
Normal file
@@ -0,0 +1,88 @@
|
||||
emulator: PokeMini
|
||||
type: libretro
|
||||
source: "https://github.com/libretro/PokeMini"
|
||||
cores:
|
||||
- pokemini
|
||||
systems:
|
||||
- nintendo-pokemon-mini
|
||||
|
||||
notes: |
|
||||
PokeMini is a Pokemon Mini handheld emulator ported to libretro.
|
||||
|
||||
The core has an embedded FreeBIOS (open-source replacement) compiled
|
||||
directly into the binary from freebios/freebios.c. This means the
|
||||
real BIOS is never strictly required -- games will run with FreeBIOS
|
||||
alone, though compatibility may differ from the original firmware.
|
||||
|
||||
BIOS loading sequence in the libretro port:
|
||||
|
||||
1. PokeMini_Create() clears PM_BIOS (4096 bytes at $000000-$000FFF),
|
||||
then loads FreeBIOS into it via memcpy (source/PokeMini.c:116).
|
||||
PokeMini_FreeBIOS is set to 1.
|
||||
|
||||
2. retro_load_game() calls PokeMini_Reset(0) after loading the ROM.
|
||||
|
||||
3. PokeMini_Reset() checks forcefreebios (hardcoded to 0 in the
|
||||
libretro port, libretro.c:499). Since FreeBIOS is currently loaded
|
||||
and forcefreebios is 0, it enters the real-BIOS path
|
||||
(source/PokeMini.c:518-523):
|
||||
- Reloads FreeBIOS as a safety fallback
|
||||
- Checks if CommandLine.bios_file exists on disk
|
||||
- If found, overwrites PM_BIOS with the real BIOS via
|
||||
PokeMini_LoadBIOSFile(), sets PokeMini_FreeBIOS to 0
|
||||
|
||||
4. If bios.min is missing, FreeBIOS stays loaded and emulation
|
||||
proceeds normally.
|
||||
|
||||
File path construction (libretro.c:565):
|
||||
sprintf(CommandLine.bios_file, "%s%cbios.min", g_system_dir, slash)
|
||||
The core looks for bios.min directly in the system directory root,
|
||||
no subdirectory.
|
||||
|
||||
There is no core option to toggle FreeBIOS in the libretro port.
|
||||
The standalone PokeMini has a forcefreebios setting, but the libretro
|
||||
wrapper hardcodes it to 0 (always prefer real BIOS when available).
|
||||
|
||||
FreeBIOS (freebios/freebios.min) is 4096 bytes, a clean-room
|
||||
reimplementation. It is NOT the official Nintendo Pokemon Mini BIOS.
|
||||
|
||||
files:
|
||||
- name: "bios.min"
|
||||
system: nintendo-pokemon-mini
|
||||
description: "Pokemon Mini official BIOS"
|
||||
required: false
|
||||
size: 4096
|
||||
md5: "1e4fb124a3a886865acb574f388c803d"
|
||||
sha1: "daad4113713ed776fbd47727762bca81ba74915f"
|
||||
source_ref: "source/PokeMini.c:189-206 (PokeMini_LoadBIOSFile), libretro/libretro.c:565 (path)"
|
||||
notes: "Mapped at $000000-$000FFF (4 KB). Read via Hardware.c:144-145. Falls back to embedded FreeBIOS if missing."
|
||||
|
||||
platform_details:
|
||||
bios_mapping:
|
||||
target: "$000000-$000FFF in Pokemon Mini address space (4 KB)"
|
||||
source_ref: "source/PokeMini.h:38, source/Hardware.c:144-145"
|
||||
notes: |
|
||||
PM_BIOS is a 4096-byte array. CPU reads from address range
|
||||
$000000-$000FFF are served directly from this buffer. The BIOS
|
||||
handles interrupt vectors, hardware init, and the startup logo.
|
||||
|
||||
freebios_fallback:
|
||||
source_ref: "freebios/freebios.c, source/PokeMini.c:209-214"
|
||||
notes: |
|
||||
FreeBIOS is a 4096-byte open-source replacement embedded in the
|
||||
binary as a C array. It provides basic interrupt vectors and
|
||||
startup code. Loaded by default at PokeMini_Create() and used
|
||||
as fallback when bios.min is not found on disk.
|
||||
freebios_hashes:
|
||||
md5: "d6c3ff5abc88f7c42f1a5edd6889f9cf"
|
||||
sha1: "b40421defb005e836913e4e39dc1a18aa3b8887e"
|
||||
size: 4096
|
||||
|
||||
load_priority:
|
||||
source_ref: "source/PokeMini.c:515-523"
|
||||
notes: |
|
||||
During PokeMini_Reset(), the core first reloads FreeBIOS as a
|
||||
safe baseline, then attempts to load bios.min from disk. If
|
||||
the file exists and is exactly 4096 bytes, it replaces FreeBIOS.
|
||||
The forcefreebios flag (hardcoded 0 in libretro) controls this:
|
||||
when 0, the core always prefers real BIOS over FreeBIOS.
|
||||
137
emulators/ppsspp.yml
Normal file
137
emulators/ppsspp.yml
Normal file
@@ -0,0 +1,137 @@
|
||||
# PPSSPP emulator firmware profile
|
||||
# Generated from source analysis of https://github.com/hrydgard/ppsspp
|
||||
# Commit analyzed: HEAD as of 2026-03-17
|
||||
|
||||
emulator: PPSSPP
|
||||
type: standalone
|
||||
source: "https://github.com/hrydgard/ppsspp"
|
||||
systems: [sony-psp]
|
||||
|
||||
firmware_required: false
|
||||
firmware_detection: "none"
|
||||
bios_directory: "N/A"
|
||||
bios_selection: "N/A"
|
||||
note: >
|
||||
PPSSPP is a full HLE emulator - it does not require PSP firmware or BIOS files.
|
||||
All PSP kernel modules (flash0:/kd/*.prx) are reimplemented in C++.
|
||||
The emulator ships its own flash0/ directory with replacement fonts and assets.
|
||||
|
||||
default_firmware_version: 660 # PSP_DEFAULT_FIRMWARE in ConfigValues.h
|
||||
source_ref_firmware: "Core/ConfigValues.h:40"
|
||||
|
||||
# Bundled assets (shipped with PPSSPP, not from Sony)
|
||||
bundled_assets:
|
||||
ppge_atlas:
|
||||
files:
|
||||
- {name: "ppge_atlas.zim", purpose: "UI texture atlas for dialogs, buttons, icons"}
|
||||
- {name: "ppge_atlas.meta", purpose: "Atlas metadata (glyph positions, UV coords)"}
|
||||
source_ref: "Core/Util/PPGeDraw.cpp:256-266"
|
||||
note: >
|
||||
PPGE (PlayStation Portable Graphics Engine) is PPSSPP's reimplementation of the
|
||||
PSP system dialog renderer. The atlas contains button icons, dialog backgrounds,
|
||||
and a basic font for system dialogs (save/load, network, etc).
|
||||
Without ppge_atlas.zim, system dialogs render without graphics.
|
||||
|
||||
flash0_fonts:
|
||||
path: "assets/flash0/font/"
|
||||
source_ref: "Core/HLE/sceFont.cpp:88-106"
|
||||
note: >
|
||||
Replacement PGF font files shipped with PPSSPP. These are not the original Sony
|
||||
fonts but open-source replacements that satisfy the sceFont API. Located in the
|
||||
assets/flash0/font/ directory, mounted as flash0:/font/ at runtime.
|
||||
files:
|
||||
# Japanese
|
||||
- {name: "jpn0.pgf", type: "FTT-NewRodin Pro DB", language: "Japanese", size: "standard"}
|
||||
# Chinese
|
||||
- {name: "zh_gb.pgf", type: "FTT-NewRodin Pro DB", language: "Chinese GB", note: "Also loaded from disc0: if present"}
|
||||
# Korean
|
||||
- {name: "kr0.pgf", type: "AsiaNHH(512Johab)", language: "Korean", size: "standard"}
|
||||
# Latin - Standard size (0x288 height)
|
||||
- {name: "ltn0.pgf", type: "FTT-NewRodin Pro Latin", style: "regular"}
|
||||
- {name: "ltn1.pgf", type: "FTT-Matisse Pro Latin", style: "regular"}
|
||||
- {name: "ltn2.pgf", type: "FTT-NewRodin Pro Latin", style: "italic"}
|
||||
- {name: "ltn3.pgf", type: "FTT-Matisse Pro Latin", style: "italic"}
|
||||
- {name: "ltn4.pgf", type: "FTT-NewRodin Pro Latin", style: "bold"}
|
||||
- {name: "ltn5.pgf", type: "FTT-Matisse Pro Latin", style: "bold"}
|
||||
- {name: "ltn6.pgf", type: "FTT-NewRodin Pro Latin", style: "bold_italic"}
|
||||
- {name: "ltn7.pgf", type: "FTT-Matisse Pro Latin", style: "bold_italic"}
|
||||
# Latin - Small size (0x1c0 height)
|
||||
- {name: "ltn8.pgf", type: "FTT-NewRodin Pro Latin", style: "regular", size: "small"}
|
||||
- {name: "ltn9.pgf", type: "FTT-Matisse Pro Latin", style: "regular", size: "small"}
|
||||
- {name: "ltn10.pgf", type: "FTT-NewRodin Pro Latin", style: "italic", size: "small"}
|
||||
- {name: "ltn11.pgf", type: "FTT-Matisse Pro Latin", style: "italic", size: "small"}
|
||||
- {name: "ltn12.pgf", type: "FTT-NewRodin Pro Latin", style: "bold", size: "small"}
|
||||
- {name: "ltn13.pgf", type: "FTT-Matisse Pro Latin", style: "bold", size: "small"}
|
||||
- {name: "ltn14.pgf", type: "FTT-NewRodin Pro Latin", style: "bold_italic", size: "small"}
|
||||
- {name: "ltn15.pgf", type: "FTT-Matisse Pro Latin", style: "bold_italic", size: "small"}
|
||||
|
||||
# HLE kernel modules (reimplemented, not loaded from firmware)
|
||||
hle_modules:
|
||||
source_ref: "Core/HLE/sceKernelModule.cpp:100-113"
|
||||
note: >
|
||||
When a PSP game tries to load these flash0:/kd/*.prx modules, PPSSPP intercepts
|
||||
the load call and activates its built-in HLE implementation instead. No actual
|
||||
PRX files are loaded from disk.
|
||||
flash0_kd:
|
||||
- {prx: "audiocodec.prx", hle: "sceAudiocodec_Driver"}
|
||||
- {prx: "audiocodec_260.prx", hle: "sceAudiocodec_Driver"}
|
||||
- {prx: "libatrac3plus.prx", hle: "sceATRAC3plus_Library"}
|
||||
- {prx: "ifhandle.prx", hle: "sceNet_Service"}
|
||||
- {prx: "pspnet.prx", hle: "sceNet_Library"}
|
||||
- {prx: "pspnet_inet.prx", hle: "sceNetInet_Library"}
|
||||
- {prx: "pspnet_apctl.prx", hle: "sceNetApctl_Library"}
|
||||
- {prx: "pspnet_resolver.prx", hle: "sceNetResolver_Library"}
|
||||
- {prx: "pspnet_adhoc.prx", hle: "sceNetAdhoc_Library"}
|
||||
- {prx: "pspnet_adhocctl.prx", hle: "sceNetAdhocctl_Library"}
|
||||
- {prx: "pspnet_adhoc_matching.prx", hle: "sceNetAdhocMatching_Library"}
|
||||
- {prx: "pspnet_adhoc_download.prx", hle: "sceNetAdhocDownload_Library"}
|
||||
- {prx: "pspnet_adhoc_discover.prx", hle: "sceNetAdhocDiscover_Library"}
|
||||
|
||||
# Flash0 filesystem layout
|
||||
flash0_layout:
|
||||
source_ref: "Core/HLE/sceIo.cpp:87,654"
|
||||
note: >
|
||||
flash0: is the PSP system partition. PPSSPP maps it to g_Config.flash0Directory
|
||||
which is typically assets/flash0/ bundled with the emulator. The filesystem is
|
||||
mounted read-only with FLASH flag.
|
||||
directories:
|
||||
font: "PGF/BWFON font files (mounted as flash0:/font/)"
|
||||
kd: "Kernel drivers/modules (intercepted by HLE, not actually loaded)"
|
||||
vsh: "Visual Shell resources"
|
||||
dic: "Dictionary files"
|
||||
data: "System data files"
|
||||
|
||||
# Font override path
|
||||
font_override:
|
||||
path: "ms0:/PSP/flash0/font/"
|
||||
source_ref: "Core/HLE/sceFont.cpp:881"
|
||||
note: >
|
||||
Users can override bundled fonts by placing real PSP PGF files at
|
||||
ms0:/PSP/flash0/font/ (inside the memory stick directory). PPSSPP
|
||||
checks this path before falling back to the bundled flash0:/font/.
|
||||
|
||||
# Registry defaults relevant to fonts
|
||||
registry_defaults:
|
||||
font_path: "flash0:/font"
|
||||
default_jpn_font: "jpn0.pgf"
|
||||
default_latin_font: "ltn0.pgf"
|
||||
source_ref: "Core/HLE/sceReg.cpp:81-281"
|
||||
|
||||
notes: |
|
||||
PPSSPP does NOT require any firmware files, BIOS, or system software from Sony.
|
||||
It is a complete HLE (High Level Emulation) implementation of the PSP operating system.
|
||||
|
||||
All PSP kernel modules (flash0:/kd/*.prx) are reimplemented in C++ within PPSSPP.
|
||||
When games attempt to load these modules via sceKernelLoadModule, PPSSPP intercepts
|
||||
the call and activates its built-in HLE implementation.
|
||||
|
||||
The bundled flash0/font/*.pgf files are open-source replacements for the original
|
||||
Sony PSP fonts. They satisfy the sceFont API but are not identical to real PSP fonts.
|
||||
For pixel-perfect font rendering, users can place original PGF files in the
|
||||
ms0:/PSP/flash0/font/ override directory.
|
||||
|
||||
The ppge_atlas.zim/meta files provide PPSSPP's system dialog rendering (save/load
|
||||
dialogs, on-screen keyboard, etc). These are PPSSPP-specific assets, not Sony firmware.
|
||||
|
||||
PPSSPP also exists as a libretro core (ppsspp_libretro), which uses the same HLE
|
||||
approach and bundled assets.
|
||||
47
emulators/prboom.yml
Normal file
47
emulators/prboom.yml
Normal file
@@ -0,0 +1,47 @@
|
||||
emulator: PrBoom
|
||||
type: libretro
|
||||
source: "https://github.com/libretro/libretro-prboom"
|
||||
systems: [doom]
|
||||
|
||||
notes: |
|
||||
PrBoom is a Doom source port based on MBF (Marine's Best Friend), itself
|
||||
derived from Boom. The libretro port plays Doom, Doom II, Final Doom,
|
||||
FreeDoom, and custom WADs/PWADs.
|
||||
|
||||
The core requires prboom.wad, a small engine data WAD containing internal
|
||||
resources: font glyphs, palette, colormaps, sine/tangent tables, gamma
|
||||
tables, menu graphics, and a null sprite (TNT1A0). It is NOT a game WAD.
|
||||
The file is generated at build time by the rdatawad tool from raw PPM
|
||||
graphics and LMP lumps (see Makefile.prboomdata), but ships pre-built
|
||||
in the repository root.
|
||||
|
||||
Without prboom.wad the core falls back to hardcoded internal defaults
|
||||
(d_main.c:1073-1074), so the file is technically optional but expected
|
||||
for correct rendering of menus, HUD digits, and extended features.
|
||||
|
||||
File search order (libretro.c I_FindFile, line 1743):
|
||||
1. WAD directory (same folder as the loaded game WAD)
|
||||
2. system/prboom/ subdirectory
|
||||
3. system/ directory directly
|
||||
4. Parent folders of WAD directory (recursive, if enabled)
|
||||
|
||||
The core accepts .wad, .iwad, .pwad, and .lmp extensions. Game IWADs
|
||||
it recognizes (d_main.c:133-145): doom2f.wad, doom2.wad, plutonia.wad,
|
||||
tnt.wad, freedoom2.wad, doom.wad, doomu.wad, freedoom1.wad,
|
||||
freedoom.wad, doom1.wad.
|
||||
|
||||
The src/ directory contains a second, larger prboom.wad (228743 bytes,
|
||||
md5 23afd6143cb1ffec99a46755f9209ea6) which is the upstream PrBoom
|
||||
original. The root copy (143312 bytes) is the libretro-specific build.
|
||||
|
||||
files:
|
||||
- name: "prboom.wad"
|
||||
system: doom
|
||||
description: "PrBoom engine data WAD (fonts, palette, colormaps, tables, menu graphics)"
|
||||
required: false
|
||||
size: 143312
|
||||
md5: "72ae1b47820fcc93cc0df9c428d0face"
|
||||
sha1: "5f4aed208301449c2e9514edfd325fe9dead76fa"
|
||||
crc32: "a5751b99"
|
||||
source_ref: "d_main.c:1069-1078 (PACKAGE .wad load), libretro.c:1743-1780 (I_FindFile search), config.h:46 (PACKAGE=prboom)"
|
||||
notes: "Searched in system/prboom/ then system/. Falls back to internal defaults if missing, but menus and HUD may render incorrectly without it."
|
||||
55
emulators/prosystem.yml
Normal file
55
emulators/prosystem.yml
Normal file
@@ -0,0 +1,55 @@
|
||||
emulator: ProSystem
|
||||
type: libretro
|
||||
source: "https://github.com/libretro/prosystem-libretro"
|
||||
cores:
|
||||
- prosystem
|
||||
systems:
|
||||
- atari-7800
|
||||
|
||||
notes: |
|
||||
ProSystem is an Atari 7800 emulator ported to libretro.
|
||||
|
||||
BIOS loading is in core/libretro.c:579-588. Region is read from the
|
||||
cartridge header byte 57 (core/Cartridge.c:214) or overridden by the
|
||||
internal database (core/Database.c). PAL carts get the (E) BIOS,
|
||||
everything else gets (U).
|
||||
|
||||
Both BIOS files are optional. The core runs games without them, but
|
||||
some titles may have compatibility issues without the real BIOS
|
||||
(startup encryption check, etc). bios_Store() maps the BIOS data
|
||||
into the top of the 64K address space (65536 - bios_size).
|
||||
|
||||
No core option controls BIOS loading -- if the file exists in the
|
||||
system directory, it is loaded automatically.
|
||||
|
||||
files:
|
||||
- name: "7800 BIOS (U).rom"
|
||||
system: atari-7800
|
||||
required: false
|
||||
size: 4096 # 4 KB
|
||||
note: "NTSC/US Atari 7800 BIOS. Loaded when cartridge_region != REGION_PAL."
|
||||
source_ref: "core/libretro.c:585"
|
||||
|
||||
- name: "7800 BIOS (E).rom"
|
||||
system: atari-7800
|
||||
required: false
|
||||
size: 16384 # 16 KB (PAL BIOS is larger than NTSC)
|
||||
note: "PAL/EU Atari 7800 BIOS. Loaded when cartridge_region == REGION_PAL."
|
||||
source_ref: "core/libretro.c:583"
|
||||
|
||||
platform_details:
|
||||
bios_mapping:
|
||||
target: "top of 64K memory (65536 - bios_size)"
|
||||
source_ref: "core/Bios.c:88"
|
||||
notes: |
|
||||
bios_Store() writes the BIOS into ROM at address (65536 - bios_size).
|
||||
The BIOS size is read dynamically from the file, not hardcoded.
|
||||
bios_enabled flag is set only if bios_Load() succeeds (file found
|
||||
and read without error).
|
||||
|
||||
region_detection:
|
||||
source_ref: "core/Cartridge.c:214, core/Database.c"
|
||||
notes: |
|
||||
Region byte is at offset 57 in the A7800 cartridge header.
|
||||
The internal database (Database.c) can override the header value.
|
||||
REGION_NTSC = 0, REGION_PAL = 1 (defined in Region.h).
|
||||
255
emulators/puae.yml
Normal file
255
emulators/puae.yml
Normal file
@@ -0,0 +1,255 @@
|
||||
emulator: PUAE (P-UAE)
|
||||
type: libretro
|
||||
cores: [puae, puae2021]
|
||||
source: "https://github.com/libretro/libretro-uae"
|
||||
systems:
|
||||
- commodore-amiga
|
||||
- commodore-amiga-cd32
|
||||
- commodore-cdtv
|
||||
|
||||
notes: |
|
||||
PUAE is a port of UAE (Unix Amiga Emulator) to libretro. It emulates the
|
||||
Amiga 500, 500+, 600, 1200, 2000, 4000, CD32, and CDTV. Kickstart ROMs
|
||||
are loaded from the RetroArch system directory.
|
||||
|
||||
AROS (open-source Kickstart replacement) is available as a built-in fallback
|
||||
when no Kickstart ROM is found. Compatibility is limited compared to real ROMs.
|
||||
|
||||
The core scans the system directory for files starting with "kick", "amiga-os",
|
||||
or "KS ROM". Each filename is matched against a table of known naming
|
||||
conventions: standard (kick*.A*), Amiga Forever (amiga-os-*.rom), and
|
||||
TOSEC (Kickstart v*.rom). The first valid match is used.
|
||||
|
||||
Default kickstart per model (automatic selection):
|
||||
A500, A500OG, A2000OG, CDTV -> kick34005.A500 (KS 1.3)
|
||||
A500+ -> kick37175.A500 (KS 2.04)
|
||||
A600 -> kick40063.A600 (KS 3.1)
|
||||
A1200, A1200OG -> kick40068.A1200 (KS 3.1)
|
||||
A2000 -> kick40063.A600 (KS 3.1)
|
||||
A4030, A4040 -> kick40068.A4000 (KS 3.1)
|
||||
CD32, CD32FR -> kick40060.CD32 (KS 3.1)
|
||||
CDTV (ext) -> kick34005.CDTV
|
||||
CD32 (ext) -> kick40060.CD32.ext
|
||||
|
||||
Extended ROM handling: CD32 and CDTV require an extended ROM in addition
|
||||
to the main kickstart. If the main ROM filesize is <= 512 KB, the extended
|
||||
ROM is loaded separately. Combined ROMs (main + ext in one file) skip the
|
||||
extended ROM search.
|
||||
|
||||
WHDLoad support copies kick33180.A500, kick34005.A500, kick40063.A600,
|
||||
kick40068.A1200 into saves/WHDLoad/Devs/Kickstarts/ for use by WHDLoad
|
||||
slave files.
|
||||
|
||||
ROM search order (libretro-core.c retro_config_kickstart):
|
||||
1. Exact filename in system directory
|
||||
2. Amiga Forever naming (amiga-os-*.rom)
|
||||
3. TOSEC modified naming (with [!] suffix)
|
||||
4. TOSEC naming (without [!] suffix)
|
||||
|
||||
capsimg.so/capsimg.dll is an optional shared library for IPF floppy image
|
||||
support (SPS/CAPS format). Not a BIOS file, loaded dynamically at runtime.
|
||||
|
||||
Source: libretro/libretro-core.h:140-245, libretro/libretro-core.c:5610-5750,
|
||||
libretro/libretro-core.c:6044-6093
|
||||
|
||||
files:
|
||||
# -------------------------------------------------------
|
||||
# Amiga 1000
|
||||
# -------------------------------------------------------
|
||||
- name: "kick31034.A1000"
|
||||
system: commodore-amiga
|
||||
required: false
|
||||
size: 262144 # 256 KB
|
||||
note: "Kickstart 1.1 rev 31.34 (1985) NTSC. A1000 only."
|
||||
aliases:
|
||||
- "amiga-os-110-ntsc.rom"
|
||||
- "Kickstart v1.1 rev 31.34 (1985)(Commodore)(A1000)(NTSC).rom"
|
||||
source_ref: "libretro/libretro-core.h:170-174"
|
||||
|
||||
- name: "kick32034.A1000"
|
||||
system: commodore-amiga
|
||||
required: false
|
||||
size: 262144 # 256 KB
|
||||
note: "Kickstart 1.1 rev 32.34 (1986) PAL. A1000 only."
|
||||
aliases:
|
||||
- "amiga-os-110-pal.rom"
|
||||
- "Kickstart v1.1 rev 32.34 (1986)(Commodore)(A1000)(PAL).rom"
|
||||
source_ref: "libretro/libretro-core.h:176-179"
|
||||
|
||||
# -------------------------------------------------------
|
||||
# Amiga 500 / 2000
|
||||
# -------------------------------------------------------
|
||||
- name: "kick33180.A500"
|
||||
system: commodore-amiga
|
||||
required: false
|
||||
size: 262144 # 256 KB
|
||||
note: "Kickstart 1.2 rev 33.180 (1986). A500/A2000. Also used by WHDLoad."
|
||||
aliases:
|
||||
- "amiga-os-120.rom"
|
||||
- "Kickstart v1.2 rev 33.180 (1986)(Commodore)(A500-A2000)[!].rom"
|
||||
- "Kickstart v1.2 rev 33.180 (1986)(Commodore)(A500-A1000-A2000).rom"
|
||||
source_ref: "libretro/libretro-core.h:182-185"
|
||||
|
||||
- name: "kick34005.A500"
|
||||
system: commodore-amiga
|
||||
required: true
|
||||
size: 262144 # 256 KB
|
||||
note: "Kickstart 1.3 rev 34.5 (1987). Default for A500/A2000OG/CDTV models. Also used by WHDLoad."
|
||||
aliases:
|
||||
- "amiga-os-130.rom"
|
||||
- "Kickstart v1.3 rev 34.5 (1987)(Commodore)(A500-A1000-A2000-CDTV)[!].rom"
|
||||
- "Kickstart v1.3 rev 34.5 (1987)(Commodore)(A500-A1000-A2000-CDTV).rom"
|
||||
source_ref: "libretro/libretro-core.h:187-190"
|
||||
|
||||
- name: "kick37175.A500"
|
||||
system: commodore-amiga
|
||||
required: false
|
||||
size: 262144 # 256 KB
|
||||
note: "Kickstart 2.04 rev 37.175 (1991). Default for A500+ model."
|
||||
aliases:
|
||||
- "amiga-os-204.rom"
|
||||
- "Kickstart v2.04 rev 37.175 (1991)(Commodore)(A500+)[!].rom"
|
||||
- "Kickstart v2.04 rev 37.175 (1991)(Commodore)(A500+).rom"
|
||||
source_ref: "libretro/libretro-core.h:192-195"
|
||||
|
||||
# -------------------------------------------------------
|
||||
# Amiga 600
|
||||
# -------------------------------------------------------
|
||||
- name: "kick37350.A600"
|
||||
system: commodore-amiga
|
||||
required: false
|
||||
size: 262144 # 256 KB
|
||||
note: "Kickstart 2.05 rev 37.350 (1992). A600HD."
|
||||
aliases:
|
||||
- "amiga-os-205-a600.rom"
|
||||
- "Kickstart v2.05 rev 37.350 (1992)(Commodore)(A600HD)[!].rom"
|
||||
source_ref: "libretro/libretro-core.h:198-201"
|
||||
|
||||
- name: "kick40063.A600"
|
||||
system: commodore-amiga
|
||||
required: false
|
||||
size: 524288 # 512 KB
|
||||
note: "Kickstart 3.1 rev 40.63 (1993). Default for A600/A2000 models. Also used by WHDLoad."
|
||||
aliases:
|
||||
- "amiga-os-310-a600.rom"
|
||||
- "Kickstart v3.1 rev 40.63 (1993)(Commodore)(A500-A600-A2000)[!].rom"
|
||||
- "Kickstart v3.1 rev 40.63 (1993)(Commodore)(A500-A600-A2000).rom"
|
||||
source_ref: "libretro/libretro-core.h:203-206"
|
||||
|
||||
# -------------------------------------------------------
|
||||
# Amiga 1200
|
||||
# -------------------------------------------------------
|
||||
- name: "kick39106.A1200"
|
||||
system: commodore-amiga
|
||||
required: false
|
||||
size: 524288 # 512 KB
|
||||
note: "Kickstart 3.0 rev 39.106 (1992). A1200."
|
||||
aliases:
|
||||
- "amiga-os-300-a1200.rom"
|
||||
- "Kickstart v3.0 rev 39.106 (1992)(Commodore)(A1200)[!].rom"
|
||||
source_ref: "libretro/libretro-core.h:209-212"
|
||||
|
||||
- name: "kick40068.A1200"
|
||||
system: commodore-amiga
|
||||
required: true
|
||||
size: 524288 # 512 KB
|
||||
note: "Kickstart 3.1 rev 40.68 (1993). Default for A1200/A1200OG models. Also used by WHDLoad."
|
||||
aliases:
|
||||
- "amiga-os-310-a1200.rom"
|
||||
- "Kickstart v3.1 rev 40.68 (1993)(Commodore)(A1200)[!].rom"
|
||||
- "Kickstart v3.1 rev 40.68 (1993)(Commodore)(A1200).rom"
|
||||
source_ref: "libretro/libretro-core.h:214-217"
|
||||
|
||||
# -------------------------------------------------------
|
||||
# Amiga 4000
|
||||
# -------------------------------------------------------
|
||||
- name: "kick39106.A4000"
|
||||
system: commodore-amiga
|
||||
required: false
|
||||
size: 524288 # 512 KB
|
||||
note: "Kickstart 3.0 rev 39.106 (1992). A4000."
|
||||
aliases:
|
||||
- "amiga-os-300-a4000.rom"
|
||||
- "Kickstart v3.0 rev 39.106 (1992)(Commodore)(A4000)[!].rom"
|
||||
source_ref: "libretro/libretro-core.h:220-223"
|
||||
|
||||
- name: "kick40068.A4000"
|
||||
system: commodore-amiga
|
||||
required: false
|
||||
size: 524288 # 512 KB
|
||||
note: "Kickstart 3.1 rev 40.68 (1993). Default for A4030/A4040 models."
|
||||
aliases:
|
||||
- "amiga-os-310-a4000.rom"
|
||||
- "Kickstart v3.1 rev 40.68 (1993)(Commodore)(A4000).rom"
|
||||
source_ref: "libretro/libretro-core.h:225-228"
|
||||
|
||||
# -------------------------------------------------------
|
||||
# Commodore CDTV
|
||||
# -------------------------------------------------------
|
||||
- name: "kick34005.CDTV"
|
||||
system: commodore-cdtv
|
||||
required: true
|
||||
size: 262144 # 256 KB
|
||||
note: "CDTV Extended ROM v1.0 (1991). Required as extended ROM for CDTV model. Main kickstart is kick34005.A500."
|
||||
aliases:
|
||||
- "amiga-os-130-cdtv-ext.rom"
|
||||
- "CDTV Extended-ROM v1.0 (1991)(Commodore)(CDTV)[!].rom"
|
||||
- "CDTV Extended-ROM v1.0 (1992)(Commodore)(CDTV).rom"
|
||||
source_ref: "libretro/libretro-core.h:231-234"
|
||||
|
||||
# -------------------------------------------------------
|
||||
# Amiga CD32
|
||||
# -------------------------------------------------------
|
||||
- name: "kick40060.CD32"
|
||||
system: commodore-amiga-cd32
|
||||
required: true
|
||||
size: 524288 # 512 KB
|
||||
note: "CD32 Kickstart 3.1 rev 40.60 (1993). Main ROM for CD32 and CD32FR models."
|
||||
aliases:
|
||||
- "amiga-os-310-cd32.rom"
|
||||
- "Kickstart v3.1 rev 40.60 (1993)(Commodore)(CD32).rom"
|
||||
source_ref: "libretro/libretro-core.h:236-239"
|
||||
|
||||
- name: "kick40060.CD32.ext"
|
||||
system: commodore-amiga-cd32
|
||||
required: true
|
||||
size: 524288 # 512 KB
|
||||
note: "CD32 Extended ROM rev 40.60 (1993). Required when main ROM is <= 512 KB (not combined)."
|
||||
aliases:
|
||||
- "amiga-os-310-cd32-ext.rom"
|
||||
- "CD32 Extended-ROM rev 40.60 (1993)(Commodore)(CD32).rom"
|
||||
source_ref: "libretro/libretro-core.h:241-244"
|
||||
|
||||
model_kickstart_map:
|
||||
A500: {kickstart: "kick34005.A500", ext: null}
|
||||
A500OG: {kickstart: "kick34005.A500", ext: null}
|
||||
A500PLUS: {kickstart: "kick37175.A500", ext: null}
|
||||
A600: {kickstart: "kick40063.A600", ext: null}
|
||||
A1200: {kickstart: "kick40068.A1200", ext: null}
|
||||
A1200OG: {kickstart: "kick40068.A1200", ext: null}
|
||||
A2000: {kickstart: "kick40063.A600", ext: null}
|
||||
A2000OG: {kickstart: "kick34005.A500", ext: null}
|
||||
A4030: {kickstart: "kick40068.A4000", ext: null}
|
||||
A4040: {kickstart: "kick40068.A4000", ext: null}
|
||||
CDTV: {kickstart: "kick34005.A500", ext: "kick34005.CDTV"}
|
||||
CD32: {kickstart: "kick40060.CD32", ext: "kick40060.CD32.ext"}
|
||||
CD32FR: {kickstart: "kick40060.CD32", ext: "kick40060.CD32.ext"}
|
||||
|
||||
whdload_kickstarts:
|
||||
- "kick33180.A500" # KS 1.2, 256 KB
|
||||
- "kick34005.A500" # KS 1.3, 256 KB
|
||||
- "kick40063.A600" # KS 3.1, 512 KB
|
||||
- "kick40068.A1200" # KS 3.1, 512 KB
|
||||
|
||||
platform_details:
|
||||
rom_sizes:
|
||||
ROM_SIZE_128: 131072 # 128 KB
|
||||
ROM_SIZE_256: 262144 # 256 KB
|
||||
ROM_SIZE_512: 524288 # 512 KB
|
||||
aros_fallback: true
|
||||
naming_conventions:
|
||||
standard: "kick{rev}.{model}"
|
||||
amiga_forever: "amiga-os-{version}.rom"
|
||||
tosec: "Kickstart v{version} rev {rev} ({year})(Commodore)({model}).rom"
|
||||
scan_prefixes: ["kick", "amiga-os", "KS ROM"]
|
||||
source_ref: "libretro/libretro-core.c:2649-2676"
|
||||
110
emulators/px68k.yml
Normal file
110
emulators/px68k.yml
Normal file
@@ -0,0 +1,110 @@
|
||||
emulator: px68k
|
||||
type: libretro
|
||||
source: "https://github.com/libretro/px68k-libretro"
|
||||
cores:
|
||||
- px68k
|
||||
systems:
|
||||
- sharp-x68000
|
||||
|
||||
# PX68K is a Sharp X68000 emulator (originally Keropi) ported to libretro.
|
||||
# All ROM files are loaded from <system_dir>/keropi/ subdirectory.
|
||||
#
|
||||
# ROM loading (libretro.c:848-893 WinX68k_LoadROMs):
|
||||
# 1. Base path set to <system_dir>/keropi/ via file_setcd(winx68k_dir) at line 969
|
||||
# 2. IPL ROM: iterates BIOSFILE[] = {iplrom.dat, iplrom30.dat, iplromco.dat, iplromxv.dat}
|
||||
# and opens the first file found. Reads 0x20000 bytes (128 KB) into IPL buffer.
|
||||
# Returns 0 (failure) if none found -- core will not start.
|
||||
# 3. SCSI check (WinX68k_SCSICheck): if IPL contains SCSI vectors at offset 0x30600-0x30c00,
|
||||
# patches a fake SCSI BIOS stub at $fc0000 with "Human68k" signature.
|
||||
# 4. Byte-swaps IPL in 16-bit pairs (big-endian ROM on little-endian host).
|
||||
# 5. Font ROM: opens cgrom.dat, falls back to cgrom.tmp if not found.
|
||||
# Reads 0xc0000 bytes (768 KB) into FONT buffer. Returns 0 if neither exists.
|
||||
#
|
||||
# SRAM (x68k/sram.c:50-73):
|
||||
# sram.dat is 16 KB of battery-backed SRAM, loaded on init and saved on cleanup.
|
||||
# Not a BIOS -- runtime state. Created automatically if missing.
|
||||
#
|
||||
# Directory layout expected:
|
||||
# <system_dir>/keropi/iplrom.dat (or iplrom30.dat, iplromco.dat, iplromxv.dat)
|
||||
# <system_dir>/keropi/cgrom.dat (or cgrom.tmp)
|
||||
# <system_dir>/keropi/sram.dat (auto-created)
|
||||
# <system_dir>/keropi/config (auto-created, core settings)
|
||||
|
||||
files:
|
||||
# IPL ROM -- the main system BIOS. The core tries four filenames in order and
|
||||
# uses the first one found. Only one is needed. iplrom.dat is the original X68000,
|
||||
# iplrom30.dat is X68030, iplromco.dat is X68000 Compact, iplromxv.dat is X68000 XVI.
|
||||
|
||||
- name: "iplrom.dat"
|
||||
path: "keropi/iplrom.dat"
|
||||
size: 131072
|
||||
required: true
|
||||
note: >
|
||||
X68000 IPL ROM (original model). 128 KB, loaded at IPL buffer offset 0x20000.
|
||||
The core tries iplrom.dat first, then iplrom30.dat, iplromco.dat, iplromxv.dat
|
||||
in order. At least one must be present or the core fails to start.
|
||||
source_ref: "libretro.c:850-867"
|
||||
|
||||
- name: "iplrom30.dat"
|
||||
path: "keropi/iplrom30.dat"
|
||||
size: 131072
|
||||
required: false
|
||||
note: >
|
||||
X68030 IPL ROM. Alternative to iplrom.dat for X68030 model emulation.
|
||||
Only used if iplrom.dat is not found.
|
||||
source_ref: "libretro.c:851"
|
||||
|
||||
- name: "iplromco.dat"
|
||||
path: "keropi/iplromco.dat"
|
||||
size: 131072
|
||||
required: false
|
||||
note: >
|
||||
X68000 Compact IPL ROM. Alternative to iplrom.dat.
|
||||
Only used if iplrom.dat and iplrom30.dat are not found.
|
||||
source_ref: "libretro.c:851"
|
||||
|
||||
- name: "iplromxv.dat"
|
||||
path: "keropi/iplromxv.dat"
|
||||
size: 131072
|
||||
required: false
|
||||
note: >
|
||||
X68000 XVI IPL ROM. Last fallback in the IPL search order.
|
||||
Only used if the three other IPL variants are not found.
|
||||
source_ref: "libretro.c:851"
|
||||
|
||||
# Font ROM -- character generator ROM for text rendering.
|
||||
|
||||
- name: "cgrom.dat"
|
||||
path: "keropi/cgrom.dat"
|
||||
size: 786432
|
||||
required: true
|
||||
note: >
|
||||
X68000 character generator ROM. 768 KB, provides the font glyphs for text
|
||||
display. If missing, the core falls back to cgrom.tmp (user-generated font
|
||||
cache). Core fails to start if neither file exists.
|
||||
source_ref: "libretro.c:853, libretro.c:881-891"
|
||||
|
||||
- name: "cgrom.tmp"
|
||||
path: "keropi/cgrom.tmp"
|
||||
size: 786432
|
||||
required: false
|
||||
note: >
|
||||
Alternative font file, used as fallback when cgrom.dat is absent.
|
||||
Typically a font cache generated by the emulator itself on other platforms.
|
||||
source_ref: "libretro.c:854, libretro.c:884-888"
|
||||
|
||||
notes:
|
||||
subdirectory: >
|
||||
All files must be placed in <system_dir>/keropi/ subdirectory. The core sets
|
||||
this path at init via sprintf(retro_system_conf, "%s/keropi", system_dir) and
|
||||
then calls file_setcd() to make it the base for all file_open_c() calls.
|
||||
ipl_selection: >
|
||||
The four IPL ROM variants correspond to different X68000 hardware revisions.
|
||||
The core uses whichever it finds first in order: iplrom.dat (original X68000),
|
||||
iplrom30.dat (X68030), iplromco.dat (Compact), iplromxv.dat (XVI). Most users
|
||||
only need iplrom.dat. The IPL also determines SASI vs SCSI disk support based
|
||||
on vectors found at offsets 0x30600-0x30c00.
|
||||
sram: >
|
||||
sram.dat (16 KB) is read/write runtime state, not a BIOS file. The core creates
|
||||
it automatically on first shutdown. It stores X68000 NVRAM settings (boot count,
|
||||
boot device preferences, SRAM-resident programs).
|
||||
155
emulators/quasi88.yml
Normal file
155
emulators/quasi88.yml
Normal file
@@ -0,0 +1,155 @@
|
||||
emulator: QUASI88
|
||||
type: libretro
|
||||
source: "https://github.com/libretro/quasi88-libretro"
|
||||
cores:
|
||||
- quasi88
|
||||
systems:
|
||||
- pc-8801
|
||||
|
||||
# QUASI88 is a NEC PC-8801 emulator. The libretro port includes a pseudo-BIOS
|
||||
# (pbios_n88, pbios_disk) compiled into the core that provides basic compatibility
|
||||
# when real BIOS files are missing. With the pseudo-BIOS, many disk-based games
|
||||
# will boot, but compatibility is lower than with real ROMs.
|
||||
#
|
||||
# ROM file search order (libretro.c:444-491):
|
||||
# 1. <download_dir>/<filename>
|
||||
# 2. <system_dir>/quasi88/<filename>
|
||||
# 3. <system_dir>/<filename>
|
||||
# Each ROM entry has up to 4 alternate filenames tried in order.
|
||||
#
|
||||
# ROM loading (libretro.c:550-594):
|
||||
# N88.ROM and DISK.ROM (SUB_ROM) are the only two checked for failure.
|
||||
# If missing, the core falls back to the built-in pseudo-BIOS.
|
||||
# All other ROMs are loaded silently if present, ignored if absent.
|
||||
#
|
||||
# The original QUASI88 (memory.c:80-95) uses uppercase-first filenames
|
||||
# (N88.ROM, N88EXT0.ROM, etc.) while the libretro .info file standardizes
|
||||
# on lowercase with underscore variants (n88.rom, n88_0.rom, etc.).
|
||||
# The core tries both naming conventions.
|
||||
#
|
||||
# FONT.ROM/FONT2.ROM/FONT3.ROM are not listed in the .info file.
|
||||
# When missing, the core uses built-in fonts or falls back to kanji ROM glyphs.
|
||||
|
||||
notes: |
|
||||
Files go in <system_dir>/quasi88/ or directly in <system_dir>/.
|
||||
The pseudo-BIOS built into the core covers N88-BASIC V2 and the disk
|
||||
subsystem at a basic level. For full compatibility (N-BASIC, V1H/V1S modes,
|
||||
dictionary lookup, kanji display), real ROM files are needed.
|
||||
|
||||
N88_0.ROM (EXT0) is marked required in the .info file because it contains
|
||||
the N88-BASIC V2 extension used by most software. EXT1-EXT3 are version-
|
||||
specific extensions (V1H, V1S, older V2) needed only for specific titles.
|
||||
|
||||
The core option "quasi88_basic_mode" selects N88 V2, N88 V1H, N88 V1S,
|
||||
or N mode. Each mode requires its corresponding ROM to be present.
|
||||
|
||||
files:
|
||||
# -- Required for full operation --
|
||||
|
||||
- name: n88.rom
|
||||
path: "quasi88/n88.rom"
|
||||
size: 32768
|
||||
required: true
|
||||
note: "N88-BASIC main ROM (32 KB). Core falls back to pseudo-BIOS if missing."
|
||||
source_ref: "src/LIBRETRO/libretro.c:550"
|
||||
aliases: ["N88.ROM"]
|
||||
|
||||
- name: n88_0.rom
|
||||
path: "quasi88/n88_0.rom"
|
||||
size: 8192
|
||||
required: true
|
||||
note: "N88-BASIC V2 extension ROM 0 (8 KB). Needed for most PC-8801 software."
|
||||
source_ref: "src/LIBRETRO/libretro.c:555"
|
||||
aliases: ["N88_0.ROM", "N88EXT0.ROM", "n88ext0.rom"]
|
||||
|
||||
# -- Optional extensions --
|
||||
|
||||
- name: n88_1.rom
|
||||
path: "quasi88/n88_1.rom"
|
||||
size: 8192
|
||||
required: false
|
||||
note: "N88-BASIC V1H extension ROM 1 (8 KB). For V1 High-speed mode software."
|
||||
source_ref: "src/LIBRETRO/libretro.c:556"
|
||||
aliases: ["N88_1.ROM", "N88EXT1.ROM", "n88ext1.rom"]
|
||||
|
||||
- name: n88_2.rom
|
||||
path: "quasi88/n88_2.rom"
|
||||
size: 8192
|
||||
required: false
|
||||
note: "N88-BASIC V1S extension ROM 2 (8 KB). For V1 Standard mode software."
|
||||
source_ref: "src/LIBRETRO/libretro.c:557"
|
||||
aliases: ["N88_2.ROM", "N88EXT2.ROM", "n88ext2.rom"]
|
||||
|
||||
- name: n88_3.rom
|
||||
path: "quasi88/n88_3.rom"
|
||||
size: 8192
|
||||
required: false
|
||||
note: "N88-BASIC extension ROM 3 (8 KB). Older V2 extension, rarely needed."
|
||||
source_ref: "src/LIBRETRO/libretro.c:558"
|
||||
aliases: ["N88_3.ROM", "N88EXT3.ROM", "n88ext3.rom"]
|
||||
|
||||
- name: n88n.rom
|
||||
path: "quasi88/n88n.rom"
|
||||
size: 32768
|
||||
required: false
|
||||
note: "N-BASIC ROM (32 KB). For PC-8001 compatible N-BASIC mode."
|
||||
source_ref: "src/LIBRETRO/libretro.c:559"
|
||||
aliases: ["N88N.ROM", "N80.ROM", "n80.rom"]
|
||||
|
||||
- name: disk.rom
|
||||
path: "quasi88/disk.rom"
|
||||
size: 2048
|
||||
required: false
|
||||
note: "Disk subsystem ROM (2 KB, 2D type). Core falls back to pseudo-BIOS if missing. 8 KB variant (2HD type) also accepted."
|
||||
source_ref: "src/LIBRETRO/libretro.c:552"
|
||||
aliases: ["DISK.ROM", "N88SUB.ROM", "n88sub.rom"]
|
||||
|
||||
- name: n88knj1.rom
|
||||
path: "quasi88/n88knj1.rom"
|
||||
size: 131072
|
||||
required: false
|
||||
note: "Kanji ROM level 1 (128 KB). Required for Japanese text display. Also used as font fallback."
|
||||
source_ref: "src/LIBRETRO/libretro.c:560"
|
||||
aliases: ["N88KNJ1.ROM", "KANJI1.ROM", "kanji1.rom"]
|
||||
|
||||
- name: n88knj2.rom
|
||||
path: "quasi88/n88knj2.rom"
|
||||
size: 131072
|
||||
required: false
|
||||
note: "Kanji ROM level 2 (128 KB). Extended kanji character set."
|
||||
source_ref: "src/LIBRETRO/libretro.c:561"
|
||||
aliases: ["N88KNJ2.ROM", "KANJI2.ROM", "kanji2.rom"]
|
||||
|
||||
- name: n88jisho.rom
|
||||
path: "quasi88/n88jisho.rom"
|
||||
size: 524288
|
||||
required: false
|
||||
note: "Dictionary ROM (512 KB). Japanese dictionary lookup, very few titles use it."
|
||||
source_ref: "src/LIBRETRO/libretro.c:562"
|
||||
aliases: ["N88JISHO.ROM", "JISYO.ROM", "jisyo.rom"]
|
||||
|
||||
# -- Font ROMs (not in .info, core has built-in fallback) --
|
||||
|
||||
- name: font.rom
|
||||
path: "quasi88/font.rom"
|
||||
size: 4096
|
||||
required: false
|
||||
note: "ANK font ROM (4 KB). Falls back to built-in font or kanji ROM glyphs."
|
||||
source_ref: "src/LIBRETRO/libretro.c:566"
|
||||
aliases: ["FONT.ROM"]
|
||||
|
||||
- name: font2.rom
|
||||
path: "quasi88/font2.rom"
|
||||
size: 4096
|
||||
required: false
|
||||
note: "Second font ROM (4 KB). Falls back to built-in ANH font."
|
||||
source_ref: "src/LIBRETRO/libretro.c:576"
|
||||
aliases: ["FONT2.ROM"]
|
||||
|
||||
- name: font3.rom
|
||||
path: "quasi88/font3.rom"
|
||||
size: 4096
|
||||
required: false
|
||||
note: "Third font ROM (4 KB). Zeroed out if missing."
|
||||
source_ref: "src/LIBRETRO/libretro.c:588"
|
||||
aliases: ["FONT3.ROM"]
|
||||
57
emulators/retrodream.yml
Normal file
57
emulators/retrodream.yml
Normal file
@@ -0,0 +1,57 @@
|
||||
emulator: RetroDream
|
||||
type: libretro
|
||||
source: "https://github.com/libretro/redream-next"
|
||||
systems:
|
||||
- sega-dreamcast
|
||||
|
||||
notes: |
|
||||
Fork of the final open-source redream release (pre-relicense). Experimental
|
||||
core with no HLE BIOS -- real BIOS files are required to boot games.
|
||||
Flycast is recommended over this core for actual gameplay.
|
||||
|
||||
The libretro core sets appdir to the RetroArch system directory
|
||||
(src/host/retro_host.c:216-217). boot.bin and flash.bin are loaded
|
||||
directly from appdir (src/guest/rom/boot.c:17, src/guest/rom/flash.c:30).
|
||||
|
||||
The .info file declares paths as dc/boot.bin and dc/flash.bin, which means
|
||||
RetroArch resolves them under {system_dir}/dc/.
|
||||
|
||||
boot.bin is validated against four known MD5 hashes at load time
|
||||
(src/guest/rom/boot.c:25-30). If validation fails, the core logs a warning
|
||||
but still attempts to run via HLE syscall hooks (bios.c:440-447).
|
||||
|
||||
flash.bin is read/write -- the core saves modified flash data back to disk
|
||||
on shutdown (src/guest/rom/flash.c:197-199).
|
||||
|
||||
Boot ROM size: 2 MB (0x200000). Flash ROM size: 128 KB (0x20000).
|
||||
|
||||
files:
|
||||
- name: "boot.bin"
|
||||
system: sega-dreamcast
|
||||
path: "dc/boot.bin"
|
||||
required: true
|
||||
size: 2097152 # 2 MB (0x200000)
|
||||
md5:
|
||||
- e10c53c2f8b90bab96ead2d368858623 # original US/EU BIOS
|
||||
- a5c6a00818f97c5e3e91569ee22416dc # Chinese BIOS
|
||||
- 37c921eb47532cae8fb70e5d987ce91c # Japanese BIOS
|
||||
- f2cd29d09f3e29984bcea22ab2e006fe # revised BIOS without MIL-CD
|
||||
note: "Dreamcast boot ROM. Validated against known MD5 hashes at load."
|
||||
source_ref: "src/guest/rom/boot.c:12-80"
|
||||
|
||||
- name: "flash.bin"
|
||||
system: sega-dreamcast
|
||||
path: "dc/flash.bin"
|
||||
required: true
|
||||
size: 131072 # 128 KB (0x20000)
|
||||
md5:
|
||||
- 0a93f7940c455905bea6e392dfde92a4
|
||||
note: "Dreamcast flash memory (date, time, language). Written back on shutdown."
|
||||
source_ref: "src/guest/rom/flash.c:25-35"
|
||||
|
||||
platform_details:
|
||||
dreamcast:
|
||||
bios_size: 2097152 # 2 MB
|
||||
flash_size: 131072 # 128 KB
|
||||
hle_available: false
|
||||
source_ref: "src/guest/rom/boot.c, src/guest/rom/flash.c"
|
||||
318
emulators/rpcs3.yml
Normal file
318
emulators/rpcs3.yml
Normal file
@@ -0,0 +1,318 @@
|
||||
# RPCS3 emulator firmware profile
|
||||
# Generated from source analysis of https://github.com/RPCS3/rpcs3
|
||||
# Commit analyzed: HEAD as of 2026-03-17
|
||||
|
||||
emulator: RPCS3
|
||||
type: standalone
|
||||
source: "https://github.com/RPCS3/rpcs3"
|
||||
systems: [sony-playstation-3]
|
||||
|
||||
firmware_file: "PS3UPDAT.PUP"
|
||||
firmware_source: "https://www.playstation.com/en-us/support/hardware/ps3/system-software/"
|
||||
firmware_detection: "pup_header" # validates PUP magic bytes, HMAC-SHA1 hash per entry
|
||||
firmware_install: "extracts dev_flash_* TAR packages from PUP into dev_flash/"
|
||||
|
||||
validation:
|
||||
method: "pup_object"
|
||||
magic: "SCEUF"
|
||||
hash_algo: "HMAC-SHA1"
|
||||
source_ref: "rpcs3/Loader/PUP.cpp:8-114"
|
||||
note: "PUP file is validated by magic header, file count, HMAC-SHA1 per entry against PUP_KEY"
|
||||
|
||||
firmware_version:
|
||||
path: "dev_flash/vsh/etc/version.txt"
|
||||
source_ref: "rpcs3/util/sysinfo.cpp:686"
|
||||
note: "Read at startup, displayed as 'Firmware version: X.XX'. Missing = 'Missing Firmware'"
|
||||
|
||||
# dev_flash filesystem layout extracted from PUP
|
||||
dev_flash:
|
||||
# -- sys/external/ : LLE firmware SPRX modules --
|
||||
sys_external:
|
||||
path: "dev_flash/sys/external/"
|
||||
source_ref: "rpcs3/Emu/Cell/PPUModule.cpp:2579"
|
||||
note: >
|
||||
Primary firmware module directory. Contains decrypted .sprx modules loaded by
|
||||
liblv2.sprx at boot. RPCS3 can run these via LLE (low-level emulation) or fall
|
||||
back to HLE (high-level emulation) per module. liblv2.sprx is the kernel loader.
|
||||
critical_file: "liblv2.sprx"
|
||||
modules:
|
||||
# Core system
|
||||
- "liblv2.sprx" # LV2 kernel, loads all other modules
|
||||
- "libsysmodule.sprx" # Module loader
|
||||
- "libfs_utility_init.sprx" # FS init (sys/internal)
|
||||
|
||||
# Audio/Video codecs
|
||||
- "libadec.sprx" # Audio decoder
|
||||
- "libatrac3plus.sprx" # ATRAC3+ codec
|
||||
- "libcelp8dec.sprx" # CELP-8 decoder
|
||||
- "libcelpdec.sprx" # CELP decoder
|
||||
- "libcelpenc.sprx" # CELP encoder
|
||||
- "libddpdec.sprx" # Dolby Digital Plus
|
||||
- "libdtslbrdec.sprx" # DTS-LBR decoder
|
||||
- "libdtsdec.sprx" # DTS decoder
|
||||
- "libdtshdcoredec.sprx" # DTS-HD Core decoder
|
||||
- "libdtshddec.sprx" # DTS-HD decoder
|
||||
- "libm2aac.sprx" # MPEG-2 AAC
|
||||
- "libm2bc.sprx" # MPEG-2 BC
|
||||
- "libm4aac.sprx" # MPEG-4 AAC
|
||||
- "libm4aac2ch.sprx" # MPEG-4 AAC 2ch
|
||||
- "libm4aac2chmod.sprx" # MPEG-4 AAC 2ch mod
|
||||
- "libmp3dec.sprx" # MP3 decoder
|
||||
- "libmp3sdec.sprx" # MP3 streaming decoder
|
||||
- "libmpl1dec.sprx" # MPEG Layer 1
|
||||
- "libtrhddec.sprx" # TRHD decoder
|
||||
- "libwmadec.sprx" # WMA decoder
|
||||
- "libwmaprodec.sprx" # WMA Pro decoder
|
||||
- "libwmalslbrdec.sprx" # WMA Lossless LBR
|
||||
- "libac3dec.sprx" # AC3 decoder
|
||||
- "libvdec.sprx" # Video decoder
|
||||
- "libdmux.sprx" # Demuxer
|
||||
- "libdmuxpamf.sprx" # PAMF demuxer
|
||||
- "libpamf.sprx" # PAMF container
|
||||
- "libvpost.sprx" # Video post-processing
|
||||
- "libsail.sprx" # Media framework
|
||||
- "libsailrec.sprx" # Media recording
|
||||
|
||||
# Graphics
|
||||
- "libgcm_sys.sprx" # GCM (RSX graphics)
|
||||
- "libresc.sprx" # Resolution scaler
|
||||
|
||||
# Input/Peripherals
|
||||
- "libio.sprx" # I/O system
|
||||
- "libcamera.sprx" # Camera
|
||||
- "libgem.sprx" # PS Move
|
||||
- "libmic.sprx" # Microphone
|
||||
- "libusbpspcm.sprx" # USB PSP communication
|
||||
- "libusbd.sprx" # USB driver
|
||||
|
||||
# Networking
|
||||
- "libnetctl.sprx" # Network control
|
||||
- "librudp.sprx" # Reliable UDP
|
||||
- "libssl.sprx" # SSL/TLS
|
||||
- "libhttp.sprx" # HTTP
|
||||
- "libhttps.sprx" # HTTPS
|
||||
- "libhttputil.sprx" # HTTP utilities
|
||||
- "libsysnet.sprx" # System networking
|
||||
|
||||
# System utilities
|
||||
- "libsysutil.sprx" # System utilities
|
||||
- "libsysutil_ap.sprx" # Access point
|
||||
- "libsysutil_avc2.sprx" # AV chat
|
||||
- "libsysutil_avc_ext.sprx"
|
||||
- "libsysutil_np_eula.sprx" # NP EULA
|
||||
- "libaudio.sprx" # Audio system
|
||||
- "libvoice.sprx" # Voice chat
|
||||
- "libavconfext.sprx" # AV config
|
||||
- "libsavedata.sprx" # Save data
|
||||
- "libgame.sprx" # Game utilities
|
||||
- "libgameexec.sprx" # Game exec
|
||||
- "libuserinfo.sprx" # User info
|
||||
- "libosklialog.sprx" # On-screen keyboard
|
||||
- "libsysconf.sprx" # System configuration
|
||||
|
||||
# Image codecs
|
||||
- "libgifdec.sprx" # GIF decoder
|
||||
- "libjpgdec.sprx" # JPEG decoder
|
||||
- "libjpgenc.sprx" # JPEG encoder
|
||||
- "libpngdec.sprx" # PNG decoder
|
||||
- "libpngenc.sprx" # PNG encoder
|
||||
|
||||
# NP (PlayStation Network)
|
||||
- "libsceNp.sprx" # NP base
|
||||
- "libsceNp2.sprx" # NP v2
|
||||
- "libsceNpBasicLimited.sprx"
|
||||
- "libsceNpClans.sprx"
|
||||
- "libsceNpCommerce2.sprx"
|
||||
- "libsceNpMatchingInt.sprx"
|
||||
- "libsceNpPlus.sprx"
|
||||
- "libsceNpSns.sprx"
|
||||
- "libsceNpTrophy.sprx"
|
||||
- "libsceNpTus.sprx"
|
||||
- "libsceNpUtil.sprx"
|
||||
|
||||
# Misc
|
||||
- "libfont.sprx" # Font engine
|
||||
- "libfontFT.sprx" # FreeType fonts
|
||||
- "libfreetype2.sprx" # FreeType2 library
|
||||
- "librtc.sprx" # Real-time clock
|
||||
- "librtcalarm.sprx" # RTC alarm
|
||||
- "libl10n.sprx" # Localization
|
||||
- "libkey2char.sprx" # Key-to-char mapping
|
||||
- "libimejp.sprx" # Japanese IME
|
||||
- "libcrosscontroller.sprx" # Cross controller
|
||||
- "libfiber.sprx" # Fiber (coroutines)
|
||||
- "libspurs_jq.sprx" # SPURS job queue
|
||||
- "libspudll.sprx" # SPU DLL
|
||||
- "libmixer.sprx" # Audio mixer
|
||||
- "libsnd3.sprx" # Sound 3
|
||||
- "libsynth2.sprx" # Synthesizer
|
||||
- "libovis.sprx" # OVis
|
||||
- "libprint.sprx" # Print
|
||||
- "librec.sprx" # Recording
|
||||
- "libremoteplay.sprx" # Remote play
|
||||
- "libscreenshot.sprx" # Screenshot
|
||||
- "libsearch.sprx" # Content search
|
||||
- "libmusic.sprx" # Music player
|
||||
- "libmusicdecode.sprx" # Music decode
|
||||
- "libmusicexport.sprx" # Music export
|
||||
- "libphoto.sprx" # Photo decode
|
||||
- "libphotoexport.sprx" # Photo export
|
||||
- "libphotoimportutil.sprx"
|
||||
- "libvideo.sprx" # Video export
|
||||
- "libvideoplayer.sprx" # Video player
|
||||
- "libvideoupload.sprx" # Video upload
|
||||
- "libnetaoi.sprx" # NetAoI
|
||||
- "libpesmutility.sprx" # PESM utility
|
||||
- "libbgdl.sprx" # Background download
|
||||
- "libsubdisplay.sprx" # Sub display
|
||||
- "libdtcpiputility.sprx" # DTCP-IP utility
|
||||
- "libsheap.sprx" # Simple heap
|
||||
- "libsync2.sprx" # Sync 2
|
||||
- "libminisSavedata.sprx" # Minis save data
|
||||
- "libauthdialogutility.sprx" # Auth dialog
|
||||
- "libcrashdump.sprx" # Crash dump
|
||||
- "liblv2dbg.sprx" # LV2 debug
|
||||
|
||||
# -- sys/internal/ : Internal system modules --
|
||||
sys_internal:
|
||||
path: "dev_flash/sys/internal/"
|
||||
source_ref: "rpcs3/Emu/Cell/lv2/sys_prx.cpp:33"
|
||||
note: "Internal system modules, e.g. libfs_utility_init.sprx"
|
||||
|
||||
# -- vsh/ : Visual Shell (XMB) --
|
||||
vsh:
|
||||
path: "dev_flash/vsh/"
|
||||
source_ref: "rpcs3/rpcs3qt/main_window.cpp:272,734"
|
||||
note: "PS3 XMB interface. vsh.self is the main executable, booted via 'Boot VSH' menu."
|
||||
files:
|
||||
- path: "vsh/module/vsh.self"
|
||||
purpose: "XMB main executable"
|
||||
required_for: "Boot VSH / XrossMediaBar"
|
||||
- path: "vsh/etc/version.txt"
|
||||
purpose: "Firmware version string"
|
||||
- path: "vsh/module/eseibrd.sprx"
|
||||
purpose: "System module (precompiled at boot)"
|
||||
- path: "vsh/module/msmw2.sprx"
|
||||
purpose: "Media streaming"
|
||||
- path: "vsh/resource/explore/user/*.png"
|
||||
purpose: "User avatar icons (000.png - 025.png)"
|
||||
- path: "vsh/resource/explore/icon/icon_home.png"
|
||||
purpose: "Home icon for game list"
|
||||
|
||||
# -- data/font/ : System fonts --
|
||||
fonts:
|
||||
path: "dev_flash/data/font/"
|
||||
source_ref: "rpcs3/Emu/Cell/Modules/cellFont.cpp:226-281"
|
||||
note: >
|
||||
PS3 system fonts used by cellFont API. Loaded from dev_flash/data/font/
|
||||
and dev_flash/data/font/SONY-CC/ subdirectory. Games using cellFont will
|
||||
fail to render text without these.
|
||||
files:
|
||||
# Rodin Sans Serif
|
||||
- {name: "SCE-PS3-RD-R-LATIN.TTF", type: "Rodin Sans Serif Regular Latin", required: true}
|
||||
- {name: "SCE-PS3-RD-L-LATIN.TTF", type: "Rodin Sans Serif Light Latin"}
|
||||
- {name: "SCE-PS3-RD-B-LATIN.TTF", type: "Rodin Sans Serif Bold Latin"}
|
||||
- {name: "SCE-PS3-RD-R-LATIN2.TTF", type: "Rodin Sans Serif Regular Latin2"}
|
||||
- {name: "SCE-PS3-RD-L-LATIN2.TTF", type: "Rodin Sans Serif Light Latin2"}
|
||||
- {name: "SCE-PS3-RD-B-LATIN2.TTF", type: "Rodin Sans Serif Bold Latin2"}
|
||||
# Matisse Serif
|
||||
- {name: "SCE-PS3-MT-R-LATIN.TTF", type: "Matisse Serif Regular Latin"}
|
||||
# NewRodin Gothic (Japanese)
|
||||
- {name: "SCE-PS3-NR-R-JPN.TTF", type: "NewRodin Gothic Regular Japanese"}
|
||||
- {name: "SCE-PS3-NR-L-JPN.TTF", type: "NewRodin Gothic Light Japanese"}
|
||||
- {name: "SCE-PS3-NR-B-JPN.TTF", type: "NewRodin Gothic Bold Japanese"}
|
||||
# YD Gothic (Korean)
|
||||
- {name: "SCE-PS3-YG-R-KOR.TTF", type: "YD Gothic Regular Korean"}
|
||||
# Seurat Maru Gothic
|
||||
- {name: "SCE-PS3-SR-R-LATIN.TTF", type: "Seurat Maru Gothic Regular Latin"}
|
||||
- {name: "SCE-PS3-SR-R-LATIN2.TTF", type: "Seurat Maru Gothic Regular Latin2"}
|
||||
- {name: "SCE-PS3-SR-R-JPN.TTF", type: "Seurat Maru Gothic Regular Japanese"}
|
||||
# VAGR Sans Serif Round
|
||||
- {name: "SCE-PS3-VR-R-LATIN.TTF", type: "VAGR Sans Serif Round Latin"}
|
||||
- {name: "SCE-PS3-VR-R-LATIN2.TTF", type: "VAGR Sans Serif Round Latin2"}
|
||||
# Chinese (in SONY-CC subdirectory)
|
||||
- {name: "SCE-PS3-DH-R-CGB.TTF", type: "Chinese GB font", subdir: "SONY-CC/"}
|
||||
|
||||
# -- data/cert/ : SSL certificates --
|
||||
certs:
|
||||
path: "dev_flash/data/cert/"
|
||||
source_ref: "rpcs3/Emu/Cell/Modules/cellSsl.cpp:110"
|
||||
note: "SSL root certificates for PSN and HTTPS connections"
|
||||
|
||||
# -- ps1emu/ : PS1 backward compatibility --
|
||||
ps1emu:
|
||||
path: "dev_flash/ps1emu/"
|
||||
source_ref: "rpcs3/Emu/System.cpp:1954"
|
||||
note: "PS1 Classics emulator. Booted when running PS1 game via ps1_newemu.self"
|
||||
files:
|
||||
- {name: "ps1_newemu.self", purpose: "PS1 emulator binary"}
|
||||
|
||||
# -- ps2emu/ : PS2 backward compatibility --
|
||||
ps2emu:
|
||||
path: "dev_flash/ps2emu/"
|
||||
source_ref: "rpcs3/Crypto/key_vault.h:219"
|
||||
note: >
|
||||
PS2 emulator components. Only present on fat PS3 models (CECHA/B/C/E).
|
||||
Includes me_iso_for_ps2emu.self and sv_iso_for_ps2emu.self (since FW 3.70).
|
||||
|
||||
# -- pspemu/ : PSP backward compatibility --
|
||||
pspemu:
|
||||
path: "dev_flash/pspemu/"
|
||||
source_ref: "rpcs3/Emu/System.cpp:1982, rpcs3/Crypto/key_vault.h:285-290"
|
||||
note: "PSP emulator for PS3. Contains psp_emulator.self, psp_translator.self, and release/*.sprx"
|
||||
files:
|
||||
- {name: "psp_emulator.self", purpose: "PSP emulator main binary"}
|
||||
- {name: "psp_translator.self", purpose: "PSP translator"}
|
||||
- {name: "release/emulator_api.sprx", purpose: "Emulator API"}
|
||||
- {name: "release/emulator_drm.sprx", purpose: "DRM handling"}
|
||||
|
||||
# -- bdplayer/ : Blu-ray player --
|
||||
bdplayer:
|
||||
path: "dev_flash/bdplayer/"
|
||||
source_ref: "rpcs3/Crypto/key_vault.h:257-258"
|
||||
note: "Blu-ray disc player modules"
|
||||
files:
|
||||
- {name: "bdp_bdmv.self", purpose: "BD-MV player"}
|
||||
- {name: "bdj.self", purpose: "BD-J (Java) player"}
|
||||
|
||||
# Additional flash partitions
|
||||
dev_flash2:
|
||||
path: "dev_flash2/"
|
||||
filesystem: "CELL_FS_FAT"
|
||||
device: "CELL_FS_IOS:BUILTIN_FLSH2"
|
||||
source_ref: "rpcs3/Emu/Cell/lv2/sys_fs.cpp:29"
|
||||
note: "Second flash partition, used for additional system data"
|
||||
|
||||
dev_flash3:
|
||||
path: "dev_flash3/"
|
||||
filesystem: "CELL_FS_FAT"
|
||||
device: "CELL_FS_IOS:BUILTIN_FLSH3"
|
||||
source_ref: "rpcs3/Emu/Cell/lv2/sys_fs.cpp:28"
|
||||
note: "Third flash partition"
|
||||
|
||||
notes: |
|
||||
RPCS3 requires the official PS3 firmware (PS3UPDAT.PUP) from Sony. The PUP file is
|
||||
a signed update package containing multiple TAR archives prefixed with "dev_flash_".
|
||||
During installation, RPCS3 extracts these TARs into the dev_flash/ directory structure.
|
||||
|
||||
The most critical component is dev_flash/sys/external/liblv2.sprx - without it, no
|
||||
PS3 game can boot. RPCS3 checks for its presence and shows a firmware install prompt
|
||||
if missing.
|
||||
|
||||
Most sys/external modules can run in either LLE (real firmware code) or HLE (RPCS3
|
||||
reimplementation) mode. By default, liblv2.sprx loads libsysmodule.sprx which chains
|
||||
all other modules. Users can toggle individual modules between LLE/HLE.
|
||||
|
||||
The dev_flash/ structure mirrors the real PS3 NAND layout:
|
||||
- sys/external/ : Loadable firmware PRX modules
|
||||
- sys/internal/ : Internal system modules
|
||||
- vsh/ : Visual Shell (XMB interface)
|
||||
- data/font/ : System TTF fonts (16+ files)
|
||||
- data/cert/ : SSL certificates
|
||||
- ps1emu/ : PS1 backward compat emulator
|
||||
- ps2emu/ : PS2 backward compat emulator (fat models only)
|
||||
- pspemu/ : PSP emulator
|
||||
- bdplayer/ : Blu-ray disc player
|
||||
|
||||
Firmware versions follow the X.XX format (e.g. 4.90). RPCS3 reads the version from
|
||||
dev_flash/vsh/etc/version.txt at startup.
|
||||
232
emulators/same_cdi.yml
Normal file
232
emulators/same_cdi.yml
Normal file
@@ -0,0 +1,232 @@
|
||||
emulator: SAME CDi
|
||||
type: libretro
|
||||
cores: [same_cdi, cdi2015]
|
||||
source: "https://github.com/libretro/same_cdi"
|
||||
systems:
|
||||
- cdi
|
||||
|
||||
notes: |
|
||||
SAME CDi is a Single Arcade Machine Emulator fork of MAME libretro, stripped
|
||||
down to just the Philips CD-i driver. The core hardcodes "cdimono1" as the
|
||||
forced system (retro_init.cpp:86) and searches for MAME ROM ZIPs in:
|
||||
<system_dir>/same_cdi/bios/
|
||||
|
||||
The ROM path (-rp) is built at retro_init.cpp:534 as:
|
||||
<game_path>;<system_dir>/same_cdi/bios/
|
||||
|
||||
MAME expects each romset as a ZIP containing the individual ROM files listed
|
||||
below. The ZIP filenames (cdimono1.zip, cdimono2.zip, cdibios.zip) match
|
||||
the MAME driver names. Only cdimono1.zip is required for consumer CD-i games;
|
||||
cdimono2.zip and cdibios.zip are optional (Mono-II and Quizard arcade).
|
||||
|
||||
cdi2015 is an older MAME 2015-based CD-i core with the same BIOS layout.
|
||||
|
||||
ROM definitions: src/mame/drivers/cdi.cpp lines 574-650.
|
||||
System forced: src/osd/libretro/libretro-internal/retro_init.cpp:86.
|
||||
BIOS path: src/osd/libretro/libretro-internal/retro_init.cpp:534.
|
||||
Firmware list: same_cdi_libretro.info firmware0-2.
|
||||
|
||||
files:
|
||||
# =====================================================
|
||||
# cdimono1.zip - Philips CD-i Mono-I (PAL) - REQUIRED
|
||||
# Contains main CPU BIOS + servo/slave MCU dumps
|
||||
# =====================================================
|
||||
|
||||
# Main CPU BIOS (one of three, selected via MAME BIOS switch)
|
||||
- name: "cdi200.rom"
|
||||
zip: "cdimono1.zip"
|
||||
system: cdi
|
||||
region: [north-america]
|
||||
required: true
|
||||
size: 524288 # 0x80000
|
||||
crc32: "40c4e6b9"
|
||||
sha1: "d961de803c89b3d1902d656ceb9ce7c02dccb40a"
|
||||
note: "Magnavox CD-i 200 BIOS. Default BIOS for cdimono1."
|
||||
source_ref: "src/mame/drivers/cdi.cpp:577"
|
||||
|
||||
- name: "cdi220b.rom"
|
||||
zip: "cdimono1.zip"
|
||||
system: cdi
|
||||
region: [europe]
|
||||
required: true
|
||||
size: 524288 # 0x80000
|
||||
crc32: "279683ca"
|
||||
sha1: "53360a1f21ddac952e95306ced64186a3fc0b93e"
|
||||
note: "Philips CD-i 220 F2 BIOS. Alternate BIOS for cdimono1."
|
||||
source_ref: "src/mame/drivers/cdi.cpp:579"
|
||||
|
||||
- name: "cdi220.rom"
|
||||
zip: "cdimono1.zip"
|
||||
system: cdi
|
||||
region: [europe]
|
||||
required: false
|
||||
size: 524288 # 0x80000
|
||||
crc32: "584c0af8"
|
||||
sha1: "5d757ab46b8c8fc36361555d978d7af768342d47"
|
||||
note: "Philips CD-i 220 BIOS (alternate, does not boot). Marked non-working."
|
||||
source_ref: "src/mame/drivers/cdi.cpp:581"
|
||||
|
||||
# Servo MCU (MC68HC705C8A) - shared with cdi910 dump, BAD_DUMP
|
||||
- name: "zx405037p__cdi_servo_2.1__b43t__llek9215.mc68hc705c8a_withtestrom.7201"
|
||||
zip: "cdimono1.zip"
|
||||
system: cdi
|
||||
required: true
|
||||
size: 8192 # 0x2000
|
||||
crc32: "7a3af407"
|
||||
sha1: "fdf8d78d6a0df4a56b5b963d72eabd39fcec163f"
|
||||
note: "Servo MCU 2.1, taken from cdi910 (BAD_DUMP, no Mono-I specific dump)."
|
||||
source_ref: "src/mame/drivers/cdi.cpp:584"
|
||||
|
||||
# Slave MCU (MC68HC705C8A) - shared with cdi910 dump, BAD_DUMP
|
||||
- name: "zx405042p__cdi_slave_2.0__b43t__zzmk9213.mc68hc705c8a_withtestrom.7206"
|
||||
zip: "cdimono1.zip"
|
||||
system: cdi
|
||||
required: true
|
||||
size: 8192 # 0x2000
|
||||
crc32: "688cda63"
|
||||
sha1: "56d0acd7caad51c7de703247cd6d842b36173079"
|
||||
note: "Slave MCU 2.0, taken from cdi910 (BAD_DUMP, no Mono-I specific dump)."
|
||||
source_ref: "src/mame/drivers/cdi.cpp:587"
|
||||
|
||||
# =====================================================
|
||||
# cdimono2.zip - Philips CD-i Mono-II (NTSC) - OPTIONAL
|
||||
# MACHINE_NOT_WORKING in MAME
|
||||
# =====================================================
|
||||
|
||||
- name: "philips__cdi-220_ph3_r1.2__mb834200b-15__02f_aa__9402_z04.tc574200-le._1.7211"
|
||||
zip: "cdimono2.zip"
|
||||
system: cdi
|
||||
required: false
|
||||
size: 524288 # 0x80000
|
||||
crc32: "17d723e7"
|
||||
sha1: "6c317a82e35d60ca5e7a74fc99f665055693169d"
|
||||
note: "Mono-II main CPU BIOS. Philips CDI-220 PH3 R1.2."
|
||||
source_ref: "src/mame/drivers/cdi.cpp:623"
|
||||
|
||||
- name: "zc405351p__servo_cdi_4.1__0d67p__lluk9404.mc68hc705c8a.7490"
|
||||
zip: "cdimono2.zip"
|
||||
system: cdi
|
||||
required: false
|
||||
size: 8192 # 0x2000
|
||||
crc32: "2bc8e4e9"
|
||||
sha1: "8cd052b532fc052d6b0077261c12f800e8655bb1"
|
||||
note: "Mono-II servo MCU 4.1."
|
||||
source_ref: "src/mame/drivers/cdi.cpp:626"
|
||||
|
||||
- name: "zc405352p__slave_cdi_4.1__0d67p__lltr9403.mc68hc705c8a.7206"
|
||||
zip: "cdimono2.zip"
|
||||
system: cdi
|
||||
required: false
|
||||
size: 8192 # 0x2000
|
||||
crc32: "5b19da07"
|
||||
sha1: "cf02d84977050c71e87a38f1249e83c43a93949b"
|
||||
note: "Mono-II slave MCU 4.1."
|
||||
source_ref: "src/mame/drivers/cdi.cpp:629"
|
||||
|
||||
# =====================================================
|
||||
# cdibios.zip - CD-i BIOS for Quizard arcade - OPTIONAL
|
||||
# Subset of cdimono1 ROMs + slave MCU, used by Quizard games
|
||||
# =====================================================
|
||||
|
||||
# cdibios reuses cdi200.rom and cdi220b.rom (same hashes as cdimono1)
|
||||
# plus the slave MCU. Listed here for completeness of the ZIP contents.
|
||||
|
||||
- name: "cdi200.rom"
|
||||
zip: "cdibios.zip"
|
||||
system: cdi
|
||||
required: false
|
||||
size: 524288 # 0x80000
|
||||
crc32: "40c4e6b9"
|
||||
sha1: "d961de803c89b3d1902d656ceb9ce7c02dccb40a"
|
||||
note: "Magnavox CD-i 200 BIOS (same as cdimono1). For Quizard arcade."
|
||||
source_ref: "src/mame/drivers/cdi.cpp:639"
|
||||
|
||||
- name: "cdi220b.rom"
|
||||
zip: "cdibios.zip"
|
||||
system: cdi
|
||||
required: false
|
||||
size: 524288 # 0x80000
|
||||
crc32: "279683ca"
|
||||
sha1: "53360a1f21ddac952e95306ced64186a3fc0b93e"
|
||||
note: "Philips CD-i 220 F2 BIOS (same as cdimono1). For Quizard arcade."
|
||||
source_ref: "src/mame/drivers/cdi.cpp:641"
|
||||
|
||||
- name: "zx405042p__cdi_slave_2.0__b43t__zzmk9213.mc68hc705c8a_withtestrom.7206"
|
||||
zip: "cdibios.zip"
|
||||
system: cdi
|
||||
required: false
|
||||
size: 8192 # 0x2000
|
||||
crc32: "688cda63"
|
||||
sha1: "56d0acd7caad51c7de703247cd6d842b36173079"
|
||||
note: "Slave MCU 2.0 (BAD_DUMP, same as cdimono1). For Quizard arcade."
|
||||
source_ref: "src/mame/drivers/cdi.cpp:645"
|
||||
|
||||
# =====================================================
|
||||
# Additional MAME romsets (not in libretro .info firmware list)
|
||||
# These are part of the MAME driver but not declared as
|
||||
# required firmware by the libretro core.
|
||||
# =====================================================
|
||||
|
||||
# cdi910 - CD-i 910-17P Mini-MMC (PAL) - MACHINE_NOT_WORKING
|
||||
- name: "philips__cd-i_2.1__mb834200b-15__26b_aa__9224_z01.tc574200.7211"
|
||||
zip: "cdi910.zip"
|
||||
system: cdi
|
||||
required: false
|
||||
size: 524288 # 0x80000
|
||||
crc32: "4ae3bee3"
|
||||
sha1: "9729b4ee3ce0c17172d062339c47b1ab822b222b"
|
||||
note: "CD-i 910-17P Mini-MMC BIOS. Not listed in libretro firmware."
|
||||
source_ref: "src/mame/drivers/cdi.cpp:594"
|
||||
|
||||
- name: "cdi910.rom"
|
||||
zip: "cdi910.zip"
|
||||
system: cdi
|
||||
required: false
|
||||
size: 524288 # 0x80000
|
||||
crc32: "2f3048d2"
|
||||
sha1: "11c4c3e602060518b52e77156345fa01f619e793"
|
||||
note: "CD-i 910 alternate BIOS. Not listed in libretro firmware."
|
||||
source_ref: "src/mame/drivers/cdi.cpp:596"
|
||||
|
||||
# cdi490a - CD-i 490 - MACHINE_NOT_WORKING
|
||||
- name: "cdi490a.rom"
|
||||
zip: "cdi490a.zip"
|
||||
system: cdi
|
||||
required: false
|
||||
size: 524288 # 0x80000
|
||||
crc32: "e2f200f6"
|
||||
sha1: "c9bf3c4c7e4fe5cbec3fe3fc993c77a4522ca547"
|
||||
note: "CD-i 490 BIOS. Not listed in libretro firmware."
|
||||
source_ref: "src/mame/drivers/cdi.cpp:633"
|
||||
|
||||
- name: "impega.rom"
|
||||
zip: "cdi490a.zip"
|
||||
system: cdi
|
||||
required: false
|
||||
size: 262144 # 0x40000
|
||||
crc32: "84d6f6aa"
|
||||
sha1: "02526482a0851ea2a7b582d8afaa8ef14a8bd914"
|
||||
note: "CD-i 490 MPEG audio decoder ROM."
|
||||
source_ref: "src/mame/drivers/cdi.cpp:636"
|
||||
|
||||
- name: "vmpega.rom"
|
||||
zip: "cdi490a.zip"
|
||||
system: cdi
|
||||
required: false
|
||||
size: 262144 # 0x40000
|
||||
crc32: "db264e8b"
|
||||
sha1: "be407fbc102f1731a0862554855e963e5a47c17b"
|
||||
note: "CD-i 490 MPEG video decoder ROM."
|
||||
source_ref: "src/mame/drivers/cdi.cpp:637"
|
||||
|
||||
platform_details:
|
||||
cdi:
|
||||
bios_path: "same_cdi/bios/"
|
||||
forced_system: "cdimono1"
|
||||
primary_zip: "cdimono1.zip"
|
||||
optional_zips: ["cdimono2.zip", "cdibios.zip"]
|
||||
mame_romsets: ["cdimono1", "cdimono2", "cdibios", "cdi910", "cdi490a"]
|
||||
rom_path_flag: "-rp"
|
||||
rom_search_path: "<game_path>;<system_dir>/same_cdi/bios/"
|
||||
supported_extensions: ["chd", "iso", "cue"]
|
||||
source_ref: "retro_init.cpp:86,534 same_cdi_libretro.info"
|
||||
149
emulators/sameboy.yml
Normal file
149
emulators/sameboy.yml
Normal file
@@ -0,0 +1,149 @@
|
||||
emulator: SameBoy
|
||||
type: libretro
|
||||
source: "https://github.com/libretro/SameBoy"
|
||||
cores:
|
||||
- sameboy
|
||||
systems:
|
||||
- nintendo-gb
|
||||
- nintendo-gbc
|
||||
- nintendo-sgb
|
||||
|
||||
notes: |
|
||||
SameBoy is a high-accuracy Game Boy, Game Boy Color and Super Game Boy
|
||||
emulator written by Lior Halphon (LIJI32).
|
||||
|
||||
All boot ROMs are optional. SameBoy ships its own open-source boot ROM
|
||||
replacements compiled from BootROMs/*.asm and embedded directly into
|
||||
the libretro core binary (extern arrays dmg_boot, cgb_boot, agb_boot,
|
||||
sgb_boot, sgb2_boot in libretro.c:129-130). These built-in boot ROMs
|
||||
are SameBoy-authored replacements, not Nintendo originals.
|
||||
|
||||
The libretro port (libretro.c boot_rom_load(), line 513) tries to load
|
||||
an external boot ROM from the system directory first. The filename is
|
||||
constructed as "{model}_boot.bin" where model is one of: dmg0, dmg,
|
||||
mgb, sgb, sgb2, cgb0, cgb, agb. If the file is missing or unreadable,
|
||||
the embedded boot ROM is used as fallback.
|
||||
|
||||
Boot ROM type selection depends on the emulated model configured via
|
||||
the sameboy_model core option (request_boot_rom in Core/gb.c:1588):
|
||||
DMG_B -> GB_BOOT_ROM_DMG -> dmg_boot.bin
|
||||
MGB -> GB_BOOT_ROM_MGB -> mgb_boot.bin
|
||||
SGB/SGB_NTSC -> GB_BOOT_ROM_SGB -> sgb_boot.bin
|
||||
SGB2 -> GB_BOOT_ROM_SGB2 -> sgb2_boot.bin
|
||||
CGB_0 -> GB_BOOT_ROM_CGB_0 -> cgb0_boot.bin
|
||||
CGB_A..CGB_E -> GB_BOOT_ROM_CGB -> cgb_boot.bin
|
||||
AGB_A (GBA) -> GB_BOOT_ROM_AGB -> agb_boot.bin
|
||||
|
||||
Built-in fallback mapping (some models share a boot ROM):
|
||||
DMG_0 and MGB reuse dmg_boot (not yet separately implemented)
|
||||
CGB_0 reuses cgb_boot (not yet separately implemented)
|
||||
|
||||
The boot ROM buffer is 0x900 (2304) bytes. DMG/MGB/SGB/SGB2 boot ROMs
|
||||
are 256 bytes (mapped at 0x0000-0x00FF). CGB/AGB boot ROMs are 2304
|
||||
bytes (mapped at 0x0000-0x00FF and 0x0200-0x08FF).
|
||||
|
||||
SameDuck (MegaDuck emulator) is a separate project, not part of this
|
||||
core.
|
||||
|
||||
files:
|
||||
# --- DMG boot ROM (optional, built-in fallback) ---
|
||||
- name: "dmg_boot.bin"
|
||||
system: nintendo-gb
|
||||
description: "Original Game Boy (DMG) boot ROM"
|
||||
required: false
|
||||
size: 256
|
||||
source_ref: "libretro.c:519,530,556 (boot_rom_load)"
|
||||
notes: "Also used as fallback for DMG_0 and MGB models when dedicated boot ROMs are absent."
|
||||
|
||||
# --- MGB boot ROM (optional, built-in fallback) ---
|
||||
- name: "mgb_boot.bin"
|
||||
system: nintendo-gb
|
||||
description: "Game Boy Pocket (MGB) boot ROM"
|
||||
required: false
|
||||
size: 256
|
||||
source_ref: "libretro.c:520,531,556"
|
||||
notes: "Built-in fallback reuses dmg_boot (mgb not separately implemented yet)."
|
||||
|
||||
# --- SGB boot ROM (optional, built-in fallback) ---
|
||||
- name: "sgb_boot.bin"
|
||||
system: nintendo-sgb
|
||||
description: "Super Game Boy (SGB) boot ROM"
|
||||
required: false
|
||||
size: 256
|
||||
source_ref: "libretro.c:521,532,556"
|
||||
notes: "Used for SGB and SGB_NTSC models. Also loaded temporarily when borrowing SGB border for non-SGB games."
|
||||
|
||||
# --- SGB2 boot ROM (optional, built-in fallback) ---
|
||||
- name: "sgb2_boot.bin"
|
||||
system: nintendo-sgb
|
||||
description: "Super Game Boy 2 (SGB2) boot ROM"
|
||||
required: false
|
||||
size: 256
|
||||
source_ref: "libretro.c:522,533,556"
|
||||
notes: "Separate from sgb_boot.bin, unlike some other cores that merge SGB/SGB2."
|
||||
|
||||
# --- CGB boot ROM (optional, built-in fallback) ---
|
||||
- name: "cgb_boot.bin"
|
||||
system: nintendo-gbc
|
||||
description: "Game Boy Color (CGB) boot ROM"
|
||||
required: false
|
||||
size: 2304
|
||||
source_ref: "libretro.c:524,535,556"
|
||||
notes: "Also used as fallback for CGB_0 model (not separately implemented yet)."
|
||||
|
||||
# --- CGB0 boot ROM (optional, built-in fallback) ---
|
||||
- name: "cgb0_boot.bin"
|
||||
system: nintendo-gbc
|
||||
description: "Game Boy Color early revision (CGB-0) boot ROM"
|
||||
required: false
|
||||
size: 2304
|
||||
source_ref: "libretro.c:523,534,556"
|
||||
notes: "Built-in fallback reuses cgb_boot (cgb0 not separately implemented yet)."
|
||||
|
||||
# --- AGB boot ROM (optional, built-in fallback) ---
|
||||
- name: "agb_boot.bin"
|
||||
system: nintendo-gbc
|
||||
description: "Game Boy Advance in GBC mode (AGB) boot ROM"
|
||||
required: false
|
||||
size: 2304
|
||||
source_ref: "libretro.c:525,536,556"
|
||||
notes: "Used when emulating a GBA running GB/GBC software. Enables GBA-enhanced palettes in compatible GBC games."
|
||||
|
||||
# --- DMG0 boot ROM (optional, built-in fallback) ---
|
||||
- name: "dmg0_boot.bin"
|
||||
system: nintendo-gb
|
||||
description: "Original Game Boy early revision (DMG-0) boot ROM"
|
||||
required: false
|
||||
size: 256
|
||||
source_ref: "SDL/main.c:640 (standalone), libretro.c:518,529"
|
||||
notes: "Only referenced in standalone SDL build filename list. Built-in fallback reuses dmg_boot."
|
||||
|
||||
builtin_boot_roms:
|
||||
description: |
|
||||
SameBoy includes open-source boot ROM replacements compiled from
|
||||
assembly source in BootROMs/ directory. These are NOT Nintendo
|
||||
originals. They reproduce the boot animation and hardware
|
||||
initialization but are clean-room implementations.
|
||||
sources:
|
||||
- "BootROMs/dmg_boot.asm -> dmg_boot (256 bytes)"
|
||||
- "BootROMs/sgb_boot.asm -> sgb_boot (256 bytes)"
|
||||
- "BootROMs/sgb2_boot.asm -> sgb2_boot (256 bytes)"
|
||||
- "BootROMs/cgb_boot.asm -> cgb_boot (2304 bytes)"
|
||||
- "BootROMs/agb_boot.asm -> agb_boot (2304 bytes)"
|
||||
prebuilt_hashes:
|
||||
dmg_boot.bin:
|
||||
md5: "60f1d849a435e9053b8ac0fd5776804a"
|
||||
sha1: "da853c8102acfff6b8e5a973ce0cd181f3dbb709"
|
||||
sgb_boot.bin:
|
||||
md5: "be77bbd03f8675478f6e3d2176f3cb56"
|
||||
sha1: "27267e45c8408857267231ba6c18bfbd052536e2"
|
||||
sgb2_boot.bin:
|
||||
md5: "b4331a9e612b4738867a30af9c96df52"
|
||||
sha1: "576678d0fc3892b80471d7067ce6014e6af77ed5"
|
||||
cgb_boot.bin:
|
||||
md5: "6b68be48dab6a7298a8c07e00c136b4e"
|
||||
sha1: "9884b972110a63c9e86fb3bd241bd2e39ca82bb9"
|
||||
agb_boot.bin:
|
||||
md5: "7e095aa30941da3086fa0e9221335370"
|
||||
sha1: "3b6231bdf840fb889f402d0ae89f21adb077323a"
|
||||
notes: "These are SameBoy's own boot ROMs, not Nintendo originals. The hashes above identify the built-in versions."
|
||||
445
emulators/scummvm.yml
Normal file
445
emulators/scummvm.yml
Normal file
@@ -0,0 +1,445 @@
|
||||
emulator: ScummVM
|
||||
type: libretro
|
||||
source: "https://github.com/libretro/scummvm"
|
||||
systems: [scummvm]
|
||||
|
||||
# ScummVM is a multi-engine point-and-click adventure game interpreter.
|
||||
# The libretro port uses a specific directory layout under the RetroArch
|
||||
# system directory:
|
||||
#
|
||||
# <system>/scummvm/ - main ScummVM subdirectory
|
||||
# <system>/scummvm/extra/ - engine data files, soundfonts, shaders
|
||||
# <system>/scummvm/theme/ - GUI themes and related assets
|
||||
#
|
||||
# These paths are defined in Makefile.common:
|
||||
# SCUMMVM_SYSTEM_SUBDIR = scummvm
|
||||
# SCUMMVM_EXTRA_SUBDIR = extra
|
||||
# SCUMMVM_THEME_SUBDIR = theme
|
||||
#
|
||||
# The bundled scummvm.zip release artifact contains the full directory
|
||||
# tree pre-built. Extracting it into <system>/ is the easiest setup.
|
||||
#
|
||||
# MT-32/CM-32L ROM files go in scummvm/extra/ and are loaded by
|
||||
# audio/softsynth/mt32.cpp. The core tries CM-32L first, then MT-32.
|
||||
# These are NOT bundled (proprietary). Everything else is open-source
|
||||
# data shipped with ScummVM releases.
|
||||
|
||||
# ----- scummvm.ini (config, auto-created) -----
|
||||
# Stored at <system>/scummvm.ini. Created by the core on first run.
|
||||
# Not listed here since it's not a distributable data file.
|
||||
|
||||
files:
|
||||
# ================================================================
|
||||
# MT-32 / CM-32L ROM files (proprietary, not bundled)
|
||||
# Loaded from the extra path by audio/softsynth/mt32.cpp
|
||||
# CM-32L is tried first, falls back to MT-32.
|
||||
# ================================================================
|
||||
|
||||
- name: "MT32_CONTROL.ROM"
|
||||
path: "scummvm/extra/MT32_CONTROL.ROM"
|
||||
required: false
|
||||
size: 65536
|
||||
source_ref: "audio/softsynth/mt32.cpp:298,581"
|
||||
note: >
|
||||
Roland MT-32 control ROM. Required for MT-32 music emulation in games
|
||||
that use MT-32 MIDI (e.g. Monkey Island, Indiana Jones). Not bundled
|
||||
with ScummVM. Must be paired with MT32_PCM.ROM.
|
||||
|
||||
- name: "MT32_PCM.ROM"
|
||||
path: "scummvm/extra/MT32_PCM.ROM"
|
||||
required: false
|
||||
size: 524288
|
||||
source_ref: "audio/softsynth/mt32.cpp:298,581"
|
||||
note: >
|
||||
Roland MT-32 PCM ROM. Contains the sample data for MT-32 emulation.
|
||||
Must be paired with MT32_CONTROL.ROM.
|
||||
|
||||
- name: "CM32L_CONTROL.ROM"
|
||||
path: "scummvm/extra/CM32L_CONTROL.ROM"
|
||||
required: false
|
||||
size: 65536
|
||||
source_ref: "audio/softsynth/mt32.cpp:293,582"
|
||||
note: >
|
||||
Roland CM-32L control ROM. Preferred over MT-32 ROMs when both are
|
||||
present. The CM-32L is a rack-mount version of the MT-32 with extra
|
||||
sound effects used by some LucasArts and Sierra games.
|
||||
|
||||
- name: "CM32L_PCM.ROM"
|
||||
path: "scummvm/extra/CM32L_PCM.ROM"
|
||||
required: false
|
||||
size: 1048576
|
||||
source_ref: "audio/softsynth/mt32.cpp:293,582"
|
||||
note: >
|
||||
Roland CM-32L PCM ROM. Contains sample data for CM-32L emulation.
|
||||
Must be paired with CM32L_CONTROL.ROM.
|
||||
|
||||
# ================================================================
|
||||
# SoundFont (bundled with ScummVM releases)
|
||||
# Default filename defined in libretro-defs.h:32
|
||||
# ================================================================
|
||||
|
||||
- name: "Roland_SC-55.sf2"
|
||||
path: "scummvm/extra/Roland_SC-55.sf2"
|
||||
required: false
|
||||
source_ref: "libretro-defs.h:32, libretro-os-utils.cpp:196"
|
||||
note: >
|
||||
Roland SC-55 SoundFont for General MIDI playback. This is the default
|
||||
soundfont (DEFAULT_SOUNDFONT_FILENAME). Bundled in official ScummVM
|
||||
releases. Used as fallback when no MT-32 ROMs are available.
|
||||
|
||||
# ================================================================
|
||||
# GUI themes - placed in scummvm/theme/
|
||||
# Listed in dists/scummvm.rc
|
||||
# ================================================================
|
||||
|
||||
- name: "scummmodern.zip"
|
||||
path: "scummvm/theme/scummmodern.zip"
|
||||
required: false
|
||||
source_ref: "dists/scummvm.rc:24"
|
||||
note: "Modern GUI theme for ScummVM launcher."
|
||||
|
||||
- name: "scummclassic.zip"
|
||||
path: "scummvm/theme/scummclassic.zip"
|
||||
required: false
|
||||
source_ref: "dists/scummvm.rc:23"
|
||||
note: "Classic GUI theme for ScummVM launcher."
|
||||
|
||||
- name: "scummremastered.zip"
|
||||
path: "scummvm/theme/scummremastered.zip"
|
||||
required: false
|
||||
source_ref: "dists/scummvm.rc:25"
|
||||
note: "Remastered GUI theme for ScummVM launcher."
|
||||
|
||||
- name: "residualvm.zip"
|
||||
path: "scummvm/theme/residualvm.zip"
|
||||
required: false
|
||||
source_ref: "dists/scummvm.rc:26"
|
||||
note: "ResidualVM theme for 3D adventure games (Grim Fandango, Myst III)."
|
||||
|
||||
- name: "gui-icons.dat"
|
||||
path: "scummvm/theme/gui-icons.dat"
|
||||
required: false
|
||||
source_ref: "dists/scummvm.rc:27"
|
||||
note: "GUI icon pack used by the ScummVM launcher interface."
|
||||
|
||||
- name: "shaders.dat"
|
||||
path: "scummvm/theme/shaders.dat"
|
||||
required: false
|
||||
source_ref: "dists/scummvm.rc:28"
|
||||
note: "Compiled shader pack for the GUI rendering pipeline."
|
||||
|
||||
- name: "translations.dat"
|
||||
path: "scummvm/theme/translations.dat"
|
||||
required: false
|
||||
source_ref: "dists/scummvm.rc:43"
|
||||
note: "GUI translation strings for ScummVM launcher localization."
|
||||
|
||||
# ================================================================
|
||||
# Core engine data - placed in scummvm/extra/
|
||||
# Listed in dists/engine-data/engine_data_core.mk (always included)
|
||||
# ================================================================
|
||||
|
||||
- name: "achievements.dat"
|
||||
path: "scummvm/extra/achievements.dat"
|
||||
required: false
|
||||
source_ref: "engine_data_core.mk"
|
||||
note: "Achievement definitions for supported games."
|
||||
|
||||
- name: "classicmacfonts.dat"
|
||||
path: "scummvm/extra/classicmacfonts.dat"
|
||||
required: false
|
||||
source_ref: "engine_data_core.mk"
|
||||
note: "Classic Macintosh bitmap fonts for Mac game rendering."
|
||||
|
||||
- name: "encoding.dat"
|
||||
path: "scummvm/extra/encoding.dat"
|
||||
required: false
|
||||
source_ref: "engine_data_core.mk"
|
||||
note: "Character encoding tables for text rendering across languages."
|
||||
|
||||
- name: "helpdialog.zip"
|
||||
path: "scummvm/extra/helpdialog.zip"
|
||||
required: false
|
||||
source_ref: "engine_data_core.mk"
|
||||
note: "Help dialog assets for the in-game help system."
|
||||
|
||||
- name: "macgui.dat"
|
||||
path: "scummvm/extra/macgui.dat"
|
||||
required: false
|
||||
source_ref: "engine_data_core.mk"
|
||||
note: "Macintosh GUI widget data for Mac-style game interfaces."
|
||||
|
||||
# ================================================================
|
||||
# Per-engine data files - placed in scummvm/extra/
|
||||
# Listed in dists/engine-data/engine_data.mk (conditionally included)
|
||||
# ================================================================
|
||||
|
||||
- name: "access.dat"
|
||||
path: "scummvm/extra/access.dat"
|
||||
required: false
|
||||
source_ref: "engine_data.mk (ENABLE_ACCESS)"
|
||||
note: "Engine data for Access Software games (e.g. Amazon, Martian Memorandum)."
|
||||
|
||||
- name: "bagel.dat"
|
||||
path: "scummvm/extra/bagel.dat"
|
||||
required: false
|
||||
source_ref: "engine_data.mk (ENABLE_BAGEL)"
|
||||
note: "Engine data for Bagel engine games."
|
||||
|
||||
- name: "cryo.dat"
|
||||
path: "scummvm/extra/cryo.dat"
|
||||
required: false
|
||||
source_ref: "engine_data.mk (ENABLE_CRYO)"
|
||||
note: "Engine data for Cryo Interactive games (e.g. Dune, Lost Eden)."
|
||||
|
||||
- name: "cryomni3d.dat"
|
||||
path: "scummvm/extra/cryomni3d.dat"
|
||||
required: false
|
||||
source_ref: "engine_data.mk (ENABLE_CRYOMNI3D)"
|
||||
note: "Engine data for CryOmni3D games (Versailles 1685)."
|
||||
|
||||
- name: "darkseed.dat"
|
||||
path: "scummvm/extra/darkseed.dat"
|
||||
required: false
|
||||
source_ref: "engine_data.mk (ENABLE_DARKSEED)"
|
||||
note: "Engine data for Dark Seed (H.R. Giger adventure game)."
|
||||
|
||||
- name: "drascula.dat"
|
||||
path: "scummvm/extra/drascula.dat"
|
||||
required: false
|
||||
source_ref: "engine_data.mk (ENABLE_DRASCULA)"
|
||||
note: "Engine data for Drascula: The Vampire Strikes Back."
|
||||
|
||||
- name: "freescape.dat"
|
||||
path: "scummvm/extra/freescape.dat"
|
||||
required: false
|
||||
source_ref: "engine_data.mk (ENABLE_FREESCAPE)"
|
||||
note: "Engine data for Freescape games (Driller, Dark Side, Total Eclipse)."
|
||||
|
||||
- name: "got.aud"
|
||||
path: "scummvm/extra/got.aud"
|
||||
required: false
|
||||
source_ref: "engine_data.mk (ENABLE_GOT)"
|
||||
note: "Audio data for Game of Thrones engine."
|
||||
|
||||
- name: "got.gfx"
|
||||
path: "scummvm/extra/got.gfx"
|
||||
required: false
|
||||
source_ref: "engine_data.mk (ENABLE_GOT)"
|
||||
note: "Graphics data for Game of Thrones engine."
|
||||
|
||||
- name: "hadesch_translations.dat"
|
||||
path: "scummvm/extra/hadesch_translations.dat"
|
||||
required: false
|
||||
source_ref: "engine_data.mk (ENABLE_HADESCH)"
|
||||
note: "Translation data for Hades Challenge."
|
||||
|
||||
- name: "hugo.dat"
|
||||
path: "scummvm/extra/hugo.dat"
|
||||
required: false
|
||||
source_ref: "engine_data.mk (ENABLE_HUGO)"
|
||||
note: "Engine data for Hugo's House of Horrors trilogy."
|
||||
|
||||
- name: "kyra.dat"
|
||||
path: "scummvm/extra/kyra.dat"
|
||||
required: false
|
||||
source_ref: "engine_data.mk (ENABLE_KYRA)"
|
||||
note: "Engine data for Kyrandia series (Legend of Kyrandia, Hand of Fate, Malcolm's Revenge)."
|
||||
|
||||
- name: "lure.dat"
|
||||
path: "scummvm/extra/lure.dat"
|
||||
required: false
|
||||
source_ref: "engine_data.mk (ENABLE_LURE)"
|
||||
note: "Engine data for Lure of the Temptress."
|
||||
|
||||
- name: "macventure.dat"
|
||||
path: "scummvm/extra/macventure.dat"
|
||||
required: false
|
||||
source_ref: "engine_data.mk (ENABLE_MACVENTURE)"
|
||||
note: "Engine data for MacVenture games (Shadowgate, Deja Vu, Uninvited)."
|
||||
|
||||
- name: "mm.dat"
|
||||
path: "scummvm/extra/mm.dat"
|
||||
required: false
|
||||
source_ref: "engine_data.mk (ENABLE_MM)"
|
||||
note: "Engine data for Might and Magic engine."
|
||||
|
||||
- name: "mort.dat"
|
||||
path: "scummvm/extra/mort.dat"
|
||||
required: false
|
||||
source_ref: "engine_data.mk (ENABLE_MORTEVIELLE)"
|
||||
note: "Engine data for Mortville Manor."
|
||||
|
||||
- name: "myst3.dat"
|
||||
path: "scummvm/extra/myst3.dat"
|
||||
required: false
|
||||
source_ref: "engine_data.mk (ENABLE_MYST3)"
|
||||
note: "Engine data for Myst III: Exile."
|
||||
|
||||
- name: "nancy.dat"
|
||||
path: "scummvm/extra/nancy.dat"
|
||||
required: false
|
||||
source_ref: "engine_data.mk (ENABLE_NANCY)"
|
||||
note: "Engine data for Nancy Drew adventure games."
|
||||
|
||||
- name: "neverhood.dat"
|
||||
path: "scummvm/extra/neverhood.dat"
|
||||
required: false
|
||||
source_ref: "engine_data.mk (ENABLE_NEVERHOOD)"
|
||||
note: "Engine data for The Neverhood."
|
||||
|
||||
- name: "prince_translation.dat"
|
||||
path: "scummvm/extra/prince_translation.dat"
|
||||
required: false
|
||||
source_ref: "engine_data.mk (ENABLE_PRINCE)"
|
||||
note: "Translation data for The Prince and the Coward."
|
||||
|
||||
- name: "queen.tbl"
|
||||
path: "scummvm/extra/queen.tbl"
|
||||
required: false
|
||||
source_ref: "engine_data.mk (ENABLE_QUEEN)"
|
||||
note: "Resource table for Flight of the Amazon Queen."
|
||||
|
||||
- name: "sky.cpt"
|
||||
path: "scummvm/extra/sky.cpt"
|
||||
required: false
|
||||
source_ref: "engine_data.mk (ENABLE_SKY)"
|
||||
note: "Compact table for Beneath a Steel Sky."
|
||||
|
||||
- name: "supernova.dat"
|
||||
path: "scummvm/extra/supernova.dat"
|
||||
required: false
|
||||
source_ref: "engine_data.mk (ENABLE_SUPERNOVA)"
|
||||
note: "Engine data for Mission Supernova."
|
||||
|
||||
- name: "teenagent.dat"
|
||||
path: "scummvm/extra/teenagent.dat"
|
||||
required: false
|
||||
source_ref: "engine_data.mk (ENABLE_TEENAGENT)"
|
||||
note: "Engine data for Teenagent."
|
||||
|
||||
- name: "titanic.dat"
|
||||
path: "scummvm/extra/titanic.dat"
|
||||
required: false
|
||||
source_ref: "engine_data.mk (ENABLE_TITANIC)"
|
||||
note: "Engine data for Starship Titanic."
|
||||
|
||||
- name: "tony.dat"
|
||||
path: "scummvm/extra/tony.dat"
|
||||
required: false
|
||||
source_ref: "engine_data.mk (ENABLE_TONY)"
|
||||
note: "Engine data for Tony Tough and the Night of Roasted Moths."
|
||||
|
||||
- name: "toon.dat"
|
||||
path: "scummvm/extra/toon.dat"
|
||||
required: false
|
||||
source_ref: "engine_data.mk (ENABLE_TOON)"
|
||||
note: "Engine data for Toonstruck."
|
||||
|
||||
- name: "ultima.dat"
|
||||
path: "scummvm/extra/ultima.dat"
|
||||
required: false
|
||||
source_ref: "engine_data.mk (ENABLE_ULTIMA)"
|
||||
note: "Engine data for Ultima series (Ultima IV-VIII, Savage Empire, Martian Dreams)."
|
||||
|
||||
- name: "ultima8.dat"
|
||||
path: "scummvm/extra/ultima8.dat"
|
||||
required: false
|
||||
source_ref: "engine_data.mk (ENABLE_ULTIMA)"
|
||||
note: "Engine data specific to Ultima VIII: Pagan."
|
||||
|
||||
- name: "wintermute.zip"
|
||||
path: "scummvm/extra/wintermute.zip"
|
||||
required: false
|
||||
source_ref: "engine_data.mk (ENABLE_WINTERMUTE)"
|
||||
note: "Engine data for Wintermute engine games."
|
||||
|
||||
- name: "fonts.dat"
|
||||
path: "scummvm/extra/fonts.dat"
|
||||
required: false
|
||||
source_ref: "engine_data.mk (USE_FREETYPE2)"
|
||||
note: "FreeType2 font data for text rendering."
|
||||
|
||||
- name: "fonts-cjk.dat"
|
||||
path: "scummvm/extra/fonts-cjk.dat"
|
||||
required: false
|
||||
source_ref: "engine_data_big.mk (USE_FREETYPE2)"
|
||||
note: "CJK (Chinese/Japanese/Korean) font data. Large file, only for systems with enough memory."
|
||||
|
||||
- name: "fonts-imgui.dat"
|
||||
path: "scummvm/extra/fonts-imgui.dat"
|
||||
required: false
|
||||
source_ref: "engine_data.mk (USE_IMGUI)"
|
||||
note: "ImGui font data for debug overlay rendering."
|
||||
|
||||
- name: "grim-patch.lab"
|
||||
path: "scummvm/extra/grim-patch.lab"
|
||||
required: false
|
||||
source_ref: "engine_data.mk (ENABLE_GRIM)"
|
||||
note: "Patch data for Grim Fandango."
|
||||
|
||||
- name: "monkey4-patch.m4b"
|
||||
path: "scummvm/extra/monkey4-patch.m4b"
|
||||
required: false
|
||||
source_ref: "engine_data.mk (ENABLE_MONKEY4)"
|
||||
note: "Patch data for Escape from Monkey Island."
|
||||
|
||||
# ================================================================
|
||||
# AGI engine dictionary
|
||||
# ================================================================
|
||||
|
||||
- name: "pred.dic"
|
||||
path: "scummvm/extra/pred.dic"
|
||||
required: false
|
||||
source_ref: "engine_data.mk (ENABLE_AGI)"
|
||||
note: "Predictive text dictionary for AGI engine text input (King's Quest, Space Quest, etc)."
|
||||
|
||||
# ================================================================
|
||||
# Virtual keyboard pack
|
||||
# ================================================================
|
||||
|
||||
- name: "vkeybd_default.zip"
|
||||
path: "scummvm/extra/vkeybd_default.zip"
|
||||
required: false
|
||||
source_ref: "bundle_datafiles.sh (hardcoded addition)"
|
||||
note: "Default virtual keyboard layout. Added to the extra path by the build script."
|
||||
|
||||
# ================================================================
|
||||
# Shaders - placed in scummvm/extra/shaders/
|
||||
# Grim Fandango, Escape from Monkey Island, Myst III, The Longest
|
||||
# Journey (Stark), Wintermute 3D, Freescape, HPL1 (Penumbra),
|
||||
# Playground3D test engine. Listed in dists/scummvm.rc.
|
||||
# Individual shader files are NOT listed here since they are
|
||||
# bundled in shaders.dat for the theme path and as individual
|
||||
# files in the extra/shaders/ directory. The build bundles them
|
||||
# automatically via bundle_datafiles.sh.
|
||||
# ================================================================
|
||||
|
||||
notes:
|
||||
directory_layout: >
|
||||
The libretro core expects: <system>/scummvm/extra/ for engine data and
|
||||
soundfonts, <system>/scummvm/theme/ for GUI themes. The bundled
|
||||
scummvm.zip release contains the full tree and can be extracted
|
||||
directly into the system directory. Individual shader files go in
|
||||
<system>/scummvm/extra/shaders/.
|
||||
mt32_emulation: >
|
||||
MT-32 emulation requires either MT32_CONTROL.ROM + MT32_PCM.ROM or
|
||||
CM32L_CONTROL.ROM + CM32L_PCM.ROM in the extra directory. These are
|
||||
proprietary Roland ROM dumps, not shipped with ScummVM. CM-32L ROMs
|
||||
are preferred when both sets are present. Without these, games that
|
||||
use MT-32 MIDI fall back to General MIDI with the Roland SC-55
|
||||
soundfont.
|
||||
scummvm_zip: >
|
||||
Official ScummVM libretro releases include scummvm.zip which bundles
|
||||
all themes, engine data, shaders, and the SC-55 soundfont. This
|
||||
single file extracted to <system>/ provides a complete setup minus
|
||||
the proprietary MT-32/CM-32L ROMs.
|
||||
config_file: >
|
||||
ScummVM stores its configuration in <system>/scummvm.ini. This file
|
||||
is auto-created on first launch and stores game entries, paths, and
|
||||
user preferences. Not a distributable data file.
|
||||
shaders: >
|
||||
OpenGL shaders for 3D engines (Grim Fandango, Myst III, The Longest
|
||||
Journey, Penumbra, Wintermute 3D, Freescape) are placed as individual
|
||||
.vertex/.fragment files in <system>/scummvm/extra/shaders/. There are
|
||||
roughly 130 shader files across all engines.
|
||||
81
emulators/smsplus.yml
Normal file
81
emulators/smsplus.yml
Normal file
@@ -0,0 +1,81 @@
|
||||
emulator: SMS Plus GX
|
||||
type: libretro
|
||||
source: "https://github.com/libretro/smsplus-gx"
|
||||
cores:
|
||||
- smsplus
|
||||
systems:
|
||||
- sega-master-system
|
||||
- sega-game-gear
|
||||
- colecovision
|
||||
- sega-sg1000
|
||||
|
||||
notes: |
|
||||
SMS Plus GX is a Sega Master System / Game Gear emulator with additional
|
||||
support for ColecoVision, SG-1000 and Sord M5 via TMS9918 VDP emulation.
|
||||
|
||||
BIOS loading happens in bios_init() (smsplus_libretro.c:203-252).
|
||||
Two BIOS files are supported:
|
||||
|
||||
1. bios.sms -- Sega Master System boot ROM. Optional. Loaded for all
|
||||
console types. A core option "smsplus_sms_bios" (default: disabled)
|
||||
controls whether it is used. When set to "auto" and the file exists,
|
||||
bios.enabled is set and the SMS boot sequence plays before games.
|
||||
|
||||
2. BIOS.col -- ColecoVision BIOS. Required for ColecoVision ROMs only.
|
||||
Loaded into coleco.rom (0x2000 bytes = 8 KB). Without it, ColecoVision
|
||||
games will not start and the core logs an error. The filename is
|
||||
case-sensitive (uppercase BIOS, lowercase .col).
|
||||
|
||||
Both files are read from the system directory root (no subdirectory).
|
||||
Path is built as: system_dir + "/" + filename (smsplus_libretro.c:211,234).
|
||||
|
||||
Console type is auto-detected from ROM file extension:
|
||||
.col -> CONSOLE_COLECO
|
||||
.sg -> CONSOLE_SG1000
|
||||
Or forced via the "smsplus_hardware" core option.
|
||||
|
||||
files:
|
||||
- name: "bios.sms"
|
||||
system: sega-master-system
|
||||
description: "Sega Master System boot ROM"
|
||||
required: false
|
||||
source_ref: "smsplus_libretro.c:211-229"
|
||||
notes: |
|
||||
Loaded into bios.rom (up to 1 MB allocated). Only active when the
|
||||
core option smsplus_sms_bios is set to "auto". Displays the Sega
|
||||
Master System startup screen before game execution.
|
||||
|
||||
- name: "BIOS.col"
|
||||
system: colecovision
|
||||
description: "ColecoVision BIOS ROM"
|
||||
required: true
|
||||
size: 8192
|
||||
source_ref: "smsplus_libretro.c:232-248"
|
||||
notes: |
|
||||
Required for ColecoVision games. Read as 0x2000 (8192) raw bytes
|
||||
into coleco.rom. Without this file, retro_load_game() returns false
|
||||
when loading .col files. Filename is case-sensitive on Linux.
|
||||
|
||||
platform_details:
|
||||
bios_mapping:
|
||||
sms:
|
||||
target: "bios.rom buffer, mapped via slot system"
|
||||
source_ref: "smsplus_libretro.c:208-229, source/memz80.c"
|
||||
notes: |
|
||||
When bios.enabled has both bits set (file present + option enabled),
|
||||
the BIOS ROM is paged into the Z80 address space at startup. The
|
||||
BIOS executes the boot animation, then hands off to the cartridge.
|
||||
coleco:
|
||||
target: "coleco.rom, mapped at 0x0000-0x1FFF"
|
||||
source_ref: "smsplus_libretro.c:245, source/memz80.c"
|
||||
notes: |
|
||||
The ColecoVision BIOS provides the interrupt handler, I/O routines
|
||||
and startup code. Mapped into the first 8 KB of Z80 address space.
|
||||
|
||||
console_detection:
|
||||
source_ref: "smsplus_libretro.c:605-609, source/loadrom.c:402"
|
||||
notes: |
|
||||
File extension .col forces CONSOLE_COLECO with MAPPER_NONE.
|
||||
Extension .sg forces CONSOLE_SG1000.
|
||||
The core option smsplus_hardware can override to: master system,
|
||||
master system II, game gear, game gear (sms compatibility), coleco.
|
||||
132
emulators/snes9x.yml
Normal file
132
emulators/snes9x.yml
Normal file
@@ -0,0 +1,132 @@
|
||||
emulator: snes9x
|
||||
type: libretro
|
||||
source: "https://github.com/libretro/snes9x"
|
||||
systems: [nintendo-snes, nintendo-satellaview, nintendo-sufami-turbo]
|
||||
|
||||
# snes9x uses HLE for all coprocessors: DSP1-4, ST010, ST011, ST018, CX4.
|
||||
# No external firmware files are needed for these chips - the emulation
|
||||
# logic and lookup tables are hardcoded in dsp1.cpp, dsp2.cpp, dsp3.cpp,
|
||||
# dsp4.cpp, seta010.cpp, seta011.cpp, seta018.cpp, c4emu.cpp.
|
||||
#
|
||||
# Unlike bsnes, snes9x does NOT support LLE coprocessor firmware.
|
||||
# It also does NOT support Super Game Boy (RETRO_GAME_TYPE_SUPER_GAME_BOY
|
||||
# is defined but never loads a SGB BIOS or boot ROM).
|
||||
#
|
||||
# The only external BIOS files used are for Satellaview (BS-X) and
|
||||
# Sufami Turbo, loaded by LoadBIOS() in libretro/libretro.cpp and
|
||||
# BSX_LoadBIOS() in bsx.cpp.
|
||||
#
|
||||
# BIOS lookup order (LoadBIOS):
|
||||
# 1. ROM directory (same folder as the game)
|
||||
# 2. RETRO_ENVIRONMENT_GET_SYSTEM_DIRECTORY (system dir)
|
||||
|
||||
cores:
|
||||
snes9x:
|
||||
source: "https://github.com/libretro/snes9x"
|
||||
firmware_loading: true
|
||||
hle_only: true
|
||||
notes: |
|
||||
Current snes9x. Loads BS-X.bin (tries BS-X.bios as fallback)
|
||||
and STBIOS.bin via LoadBIOS() in libretro.cpp.
|
||||
Auto-detects Sufami Turbo carts (is_SufamiTurbo_Cart) and
|
||||
BS-X games (is_bsx) when loading via retro_load_game().
|
||||
Also handles retro_load_game_special() for multi-cart and
|
||||
subsystem types (RETRO_GAME_TYPE_BSX, RETRO_GAME_TYPE_SUFAMI_TURBO,
|
||||
RETRO_GAME_TYPE_MULTI_CART).
|
||||
|
||||
snes9x2010:
|
||||
source: "https://github.com/libretro/snes9x2010"
|
||||
firmware_loading: true
|
||||
hle_only: true
|
||||
notes: |
|
||||
Based on snes9x 1.52. Same BIOS loading as snes9x current.
|
||||
BSX_LoadBIOS() in src/bsx.c loads BS-X.bin (fallback BS-X.bios).
|
||||
STBIOS.bin loaded in src/memmap.c for Sufami Turbo.
|
||||
|
||||
snes9x2005:
|
||||
source: "https://github.com/libretro/snes9x2005"
|
||||
firmware_loading: false
|
||||
hle_only: true
|
||||
notes: |
|
||||
Based on snes9x 1.43. Detects BS-X and Sufami Turbo ROM headers
|
||||
in source/memmap.c but has no LoadBIOS function - does not load
|
||||
external BIOS files. No firmware needed.
|
||||
|
||||
snes9x2005_plus:
|
||||
source: "https://github.com/libretro/snes9x2005"
|
||||
firmware_loading: false
|
||||
hle_only: true
|
||||
notes: |
|
||||
Same codebase as snes9x2005 with video enhancements.
|
||||
No external BIOS loading. No firmware needed.
|
||||
|
||||
snes9x2002:
|
||||
source: "https://github.com/libretro/snes9x2002"
|
||||
firmware_loading: false
|
||||
hle_only: true
|
||||
notes: |
|
||||
Based on snes9x 1.39 (PocketSNES). Minimal core for low-end
|
||||
devices. No BS-X, no Sufami Turbo, no external BIOS loading.
|
||||
No firmware needed.
|
||||
|
||||
files:
|
||||
# -- BS-X Satellaview BIOS --
|
||||
# Required by: snes9x, snes9x2010
|
||||
# Loaded by: LoadBIOS() in libretro.cpp (snes9x) / BSX_LoadBIOS() in bsx.c (snes9x2010)
|
||||
# Auto-detected when game ROM header matches BS-X signature at 0x7FC0 or 0xFFC0.
|
||||
# Size validated: must be exactly BIOS_SIZE (0x100000 = 1048576 bytes).
|
||||
# Filename fallback: BS-X.bin -> BS-X.bios (bsx.cpp:1209-1215)
|
||||
|
||||
- name: "BS-X.bin"
|
||||
system: nintendo-satellaview
|
||||
description: "Satellaview BS-X BIOS (Japanese)"
|
||||
required: false
|
||||
size: 1048576
|
||||
md5: "fed4d8242cfbed61343d53d48432aced"
|
||||
sha1: "604556b2e62860af18db5a77f2956ebc75450020"
|
||||
source_ref: "libretro.cpp:1209 (LoadBIOS, 'BS-X.bin'), bsx.cpp:1209-1215 (BSX_LoadBIOS)"
|
||||
notes: "Needed for Satellaview (.bs) game support. Core also accepts BS-X.bios as filename. Without this file, BS-X games will fail to load."
|
||||
|
||||
# -- Sufami Turbo BIOS --
|
||||
# Required by: snes9x, snes9x2010
|
||||
# Loaded by: LoadBIOS() in libretro.cpp (snes9x) / memmap.c (snes9x2010)
|
||||
# Auto-detected when cart has "BANDAI SFC-ADX" at offset 0, without "SFC-ADX BACKUP" at 0x10.
|
||||
# Size: 0x40000 (262144 bytes). Validated by is_SufamiTurbo_BIOS().
|
||||
|
||||
- name: "STBIOS.bin"
|
||||
system: nintendo-sufami-turbo
|
||||
description: "Bandai SuFami Turbo BIOS (Mini Cartridge add-on)"
|
||||
required: false
|
||||
size: 262144
|
||||
md5: "d3a44ba7d42a74d3ac58cb9c14c6a5ca"
|
||||
sha1: "ef86ea192eed03d5c413fdbbfd46043be1d7a127"
|
||||
source_ref: "libretro.cpp:1203,1317,1348 (LoadBIOS, 'STBIOS.bin'), memmap.cpp:1672"
|
||||
notes: "Needed for Sufami Turbo multi-cart games. Validated by is_SufamiTurbo_BIOS() which checks for 'BANDAI SFC-ADX' + 'SFC-ADX BACKUP' headers."
|
||||
|
||||
notes:
|
||||
coprocessor_hle: |
|
||||
All SNES coprocessor chips are emulated in software (HLE) across
|
||||
every snes9x variant. No external firmware files are needed for:
|
||||
- DSP1/DSP1B (dsp1.cpp, static DSP1ROM[1024] lookup table)
|
||||
- DSP2 (dsp2.cpp)
|
||||
- DSP3 (dsp3.cpp)
|
||||
- DSP4 (dsp4.cpp)
|
||||
- ST010 (seta010.cpp, static ST010_SinTable)
|
||||
- ST011 (seta011.cpp)
|
||||
- ST018 (seta018.cpp)
|
||||
- CX4/Cx4 (c4.cpp, c4emu.cpp, math-based HLE)
|
||||
This is the key difference from bsnes, which supports both HLE and
|
||||
LLE (with optional external firmware ROM files).
|
||||
sgb_status: |
|
||||
RETRO_GAME_TYPE_SUPER_GAME_BOY (0x104) is defined in libretro.cpp
|
||||
but no actual SGB emulation exists. No SGB BIOS or boot ROM is
|
||||
loaded or used by any snes9x variant.
|
||||
bsx_detection: |
|
||||
BS-X games are auto-detected by is_bsx() which checks for the
|
||||
"Satellaview BS-X" signature in the ROM header. When detected,
|
||||
the BIOS is loaded automatically without user intervention.
|
||||
sufami_detection: |
|
||||
Sufami Turbo carts are auto-detected by is_SufamiTurbo_Cart()
|
||||
which checks for "BANDAI SFC-ADX" at ROM offset 0 and absence
|
||||
of "SFC-ADX BACKUP" at offset 0x10 (which would indicate BIOS,
|
||||
not cart). Multi-cart support uses retro_load_game_special().
|
||||
54
emulators/stella.yml
Normal file
54
emulators/stella.yml
Normal file
@@ -0,0 +1,54 @@
|
||||
emulator: Stella
|
||||
type: libretro
|
||||
source: "https://github.com/libretro/stella2014-libretro"
|
||||
cores:
|
||||
- stella
|
||||
- stella2014
|
||||
- stella2023
|
||||
systems:
|
||||
- atari-2600
|
||||
|
||||
notes: |
|
||||
Stella is an Atari 2600 (VCS) emulator. The libretro port available is
|
||||
stella2014, which is a fork frozen at the 2014 codebase. The upstream
|
||||
"stella-libretro" repo redirects to stella2014-libretro. There is no
|
||||
separate stella2023 libretro core published at this time.
|
||||
|
||||
The Atari 2600 console has no BIOS ROM. Games run directly on the
|
||||
hardware with no boot firmware.
|
||||
|
||||
The Starpath/Arcadia Supercharger add-on had a 2K BIOS ROM on the
|
||||
physical hardware. Stella does NOT load this BIOS from an external
|
||||
file. Instead, the core contains a built-in dummy BIOS
|
||||
(ourDummyROMCode, 294 bytes in CartAR.cxx) that simulates the
|
||||
Supercharger load sequence. The initializeROM() function copies this
|
||||
dummy code into the ROM bank (bank 3) at reset, sets up the 6502
|
||||
reset vector to 0xF80A, and handles multiload via a hotspot at
|
||||
address 0x1850.
|
||||
|
||||
The "fastscbios" setting (offset 109 in the dummy ROM) controls
|
||||
whether the SC load progress bars are shown (0x00) or skipped
|
||||
(0xFF). This is toggled automatically during ROM format detection
|
||||
(Console.cxx:119-120).
|
||||
|
||||
The real Supercharger BIOS ROM (MD5 4565c1a7abce773e53c75b35414adefd)
|
||||
is recognized in DefProps.hxx as a known cartridge entry but is not
|
||||
required or loaded as a system file.
|
||||
|
||||
The libretro interface (retro_set_environment) does not call
|
||||
RETRO_ENVIRONMENT_GET_SYSTEM_DIRECTORY and declares no firmware
|
||||
requirements. No core option references BIOS loading.
|
||||
|
||||
files: []
|
||||
|
||||
platform_details:
|
||||
supercharger_emulation:
|
||||
source_ref: "stella/src/emucore/CartAR.cxx, CartAR.hxx"
|
||||
notes: |
|
||||
The Supercharger (type AR) uses 4 banks: 3x 2K RAM + 1x 2K ROM.
|
||||
The ROM bank is filled with ourDummyROMCode at reset. SC games
|
||||
are multi-load images (8448 bytes per load: 8192 data + 256 header).
|
||||
loadIntoRAM() handles loading game data when the hotspot at 0x1850
|
||||
is accessed with the ROM bank mapped. The bank switching byte and
|
||||
start address are written to zero-page RAM (0xFE, 0xFF, 0x80) for
|
||||
the dummy BIOS to read.
|
||||
30
emulators/theodore.yml
Normal file
30
emulators/theodore.yml
Normal file
@@ -0,0 +1,30 @@
|
||||
# Theodore - Thomson MO/TO computer emulator
|
||||
# https://github.com/Zlika/theodore
|
||||
# Emulates: TO7, TO7/70, TO8, TO8D, TO9, TO9+, MO5, MO6, PC128 (Olivetti Prodest)
|
||||
# Based on Daniel Coulom's DCTO8D, DCTO9P, and DCMO5 emulators
|
||||
|
||||
core_name: theodore
|
||||
systems:
|
||||
- Thomson MO5
|
||||
- Thomson MO6
|
||||
- Thomson TO7
|
||||
- Thomson TO7/70
|
||||
- Thomson TO8
|
||||
- Thomson TO8D
|
||||
- Thomson TO9
|
||||
- Thomson TO9+
|
||||
- Olivetti Prodest PC128
|
||||
|
||||
bios_files: []
|
||||
# All system ROMs are embedded directly in the source code as C arrays:
|
||||
# rom_to7.inc, rom_to770.inc, rom_to8.inc, rom_to8d.inc,
|
||||
# rom_to9.inc, rom_to9p.inc, rom_mo5.inc, rom_mo6.inc,
|
||||
# rom_pc128.inc, basic-1_memo7.inc, basic-128_memo7.inc
|
||||
# No external BIOS or firmware files are required.
|
||||
|
||||
notes: |
|
||||
Theodore embeds all Thomson monitor ROMs and BASIC ROMs at compile time.
|
||||
The core option "theodore_rom" selects the emulated model (Auto by default).
|
||||
TO7 and TO7/70 auto-load the BASIC 1 cartridge when no cartridge is provided.
|
||||
Supported file formats: fd, sap, k7, m7, m5, rom.
|
||||
The core can run without any game loaded (SET_SUPPORT_NO_GAME = true).
|
||||
24
emulators/tyrquake.yml
Normal file
24
emulators/tyrquake.yml
Normal file
@@ -0,0 +1,24 @@
|
||||
emulator: TyrQuake
|
||||
type: libretro
|
||||
source: "https://github.com/libretro/tyrquake"
|
||||
cores: [tyrquake]
|
||||
systems: [quake]
|
||||
verification: existence
|
||||
notes: >
|
||||
Quake engine source port. Plays Quake (id1), mission packs Scourge of Armagon
|
||||
(hipnotic) and Dissolution of Eternity (rogue), Quoth mod, and custom mods via
|
||||
-game parameter. The core accepts .pak extensions (retro_get_system_info sets
|
||||
valid_extensions = "pak"). Content is loaded directly from the PAK file path -
|
||||
the directory containing the PAK becomes basedir (libretro.c:988,1050).
|
||||
The engine auto-detects game variant by checking the content path for id1,
|
||||
hipnotic, rogue, or quoth substrings (libretro.c:1030-1070) and passes the
|
||||
corresponding command-line flag. For non-standard paths it uses -game with the
|
||||
directory basename. PAK files are game data (maps, textures, models, sounds)
|
||||
shipped with the original retail game, not engine firmware. The engine checks
|
||||
for gfx/pop.lmp inside pak0.pak to distinguish registered vs shareware
|
||||
(common.c:974-991). COM_AddGameDirectory (common.c:1709) loads pak0.pak through
|
||||
pak9.pak sequentially from the game directory, trying both lowercase and
|
||||
uppercase filenames. No engine data files are required in the RetroArch system
|
||||
directory. The core needs no BIOS or firmware.
|
||||
|
||||
files: []
|
||||
42
emulators/uzem.yml
Normal file
42
emulators/uzem.yml
Normal file
@@ -0,0 +1,42 @@
|
||||
emulator: uzem
|
||||
type: libretro
|
||||
source: "https://github.com/libretro/libretro-uzem"
|
||||
cores:
|
||||
- uzem
|
||||
systems:
|
||||
- uzebox
|
||||
|
||||
# Uzem emulates the Uzebox, an open-source 8-bit game console based on an
|
||||
# ATmega644 AVR microcontroller. The console was designed by Alec Bourque (Uze)
|
||||
# and all hardware/software is open-source.
|
||||
#
|
||||
# No BIOS or firmware files are required. The core loads .uze ROM files directly
|
||||
# into progmem (uzem_libretro.cpp:254-286). The .uze format includes a "UZEBOX"
|
||||
# magic header followed by a RomHeader struct (uzerom.h) and raw program data.
|
||||
#
|
||||
# The standalone uzem (oldsrcs/uzem.cpp:90) has a --boot flag that sets PC to
|
||||
# 0xF000 for bootloader mode, but this is NOT exposed in the libretro port.
|
||||
# The libretro core has no retro_environment calls for RETRO_ENVIRONMENT_SET_SYSTEM_DIR
|
||||
# or any firmware loading paths.
|
||||
#
|
||||
# SD card emulation uses RETRO_ENVIRONMENT_GET_CORE_ASSETS_DIRECTORY
|
||||
# (uzem_libretro.cpp:186-192) for virtual FAT16 filesystem access via SDEmulator.cpp,
|
||||
# but this is optional game data, not system firmware.
|
||||
#
|
||||
# The .info file declares no firmware entries.
|
||||
|
||||
files: []
|
||||
|
||||
notes:
|
||||
open_source_console: >
|
||||
The Uzebox is fully open-source hardware and software. There is no proprietary
|
||||
BIOS or bootloader required. Games are self-contained .uze files that include
|
||||
all code needed to run on the ATmega644 MCU emulation.
|
||||
sd_card: >
|
||||
Some games use SD card access for loading assets. The core reads from the
|
||||
libretro core assets directory to emulate a FAT16 SD card, but this is game
|
||||
data, not system firmware.
|
||||
standalone_bootloader: >
|
||||
The original standalone uzem supports a --boot flag for bootloader mode
|
||||
(PC starts at 0xF000 instead of 0x0000). This feature is not available in
|
||||
the libretro port.
|
||||
69
emulators/vba_next.yml
Normal file
69
emulators/vba_next.yml
Normal file
@@ -0,0 +1,69 @@
|
||||
emulator: VBA-Next
|
||||
type: libretro
|
||||
source: "https://github.com/libretro/vba-next"
|
||||
cores:
|
||||
- vba_next
|
||||
systems:
|
||||
- nintendo-gba
|
||||
|
||||
notes: |
|
||||
VBA-Next is a Game Boy Advance emulator forked from VBA-M, optimized for
|
||||
libretro. It includes a built-in HLE BIOS (myROM array in src/gba.cpp:8423)
|
||||
that handles all standard SWI calls, so no external BIOS file is needed for
|
||||
most games.
|
||||
|
||||
BIOS loading is gated behind HAVE_HLE_BIOS (defined in build/Makefile.common)
|
||||
and controlled by core option vbanext_bios (default: enabled). When enabled,
|
||||
the libretro port looks for gba_bios.bin in RetroArch's system directory
|
||||
(libretro/libretro.cpp:198-203). CPUInit() loads the file via utilLoad(),
|
||||
validates it is exactly 0x4000 bytes (16 KB), and sets useBios = true
|
||||
(src/gba.cpp:12413-12443). If loading fails or the option is off, the HLE
|
||||
BIOS (myROM) is memcpy'd into the bios buffer instead.
|
||||
|
||||
CPUIsGBABios() accepts extensions: .gba, .agb, .bin, .bios, .rom
|
||||
(src/gba.cpp:8851-8873).
|
||||
|
||||
When useBios is true and skipBios is false, execution starts at 0x00000000
|
||||
(real BIOS entry). Otherwise it jumps straight to 0x08000000 (ROM entry),
|
||||
skipping the boot animation (src/gba.cpp:12657-12675).
|
||||
|
||||
The HLE BIOS covers: SoftReset, RegisterRamReset, Halt, VBlankIntrWait,
|
||||
Div, Sqrt, ArcTan, ArcTan2, CpuSet, CpuFastSet, GetBiosChecksum,
|
||||
BgAffineSet, ObjAffineSet, BitUnPack, LZ77UnComp (WRAM/VRAM),
|
||||
HuffUnComp, RLUnComp (WRAM/VRAM), Diff8bitUnFilter (WRAM/VRAM),
|
||||
Diff16bitUnFilter, MidiKey2Freq, SndDriverJmpTableCopy
|
||||
(src/gba.cpp:2369-2578).
|
||||
|
||||
Some per-game overrides in gbaover[] (libretro/libretro.cpp:235) have a
|
||||
useBios field, but all entries currently set it to 0 (no game forces BIOS).
|
||||
|
||||
files:
|
||||
# -------------------------------------------------------
|
||||
# Game Boy Advance - BIOS (optional, HLE fallback)
|
||||
# -------------------------------------------------------
|
||||
- name: gba_bios.bin
|
||||
system: nintendo-gba
|
||||
required: false
|
||||
size: 16384 # 16 KB (0x4000)
|
||||
note: "GBA BIOS. Optional -- HLE replacement (myROM) handles all standard SWI calls. Real BIOS adds startup logo and may improve edge-case accuracy."
|
||||
source_ref: "libretro/libretro.cpp:198-203, src/gba.cpp:12413-12443"
|
||||
|
||||
platform_details:
|
||||
gba:
|
||||
bios_size: 16384 # 0x4000
|
||||
hle_bios: true
|
||||
source_ref: "src/gba.cpp:8423 (myROM), src/gba.cpp:2369-2578 (SWI handlers)"
|
||||
notes: |
|
||||
BIOS buffer is always allocated at 0x4000 bytes (src/gba.cpp:8963).
|
||||
If the real BIOS loads successfully (exactly 0x4000 bytes), useBios is
|
||||
set to true and CPUReset starts at address 0x00000000 with IRQ disabled.
|
||||
Otherwise myROM (built-in HLE stub) is copied in and execution starts
|
||||
at 0x08000000 with standard register init.
|
||||
|
||||
The core option vbanext_bios defaults to "enabled", so if gba_bios.bin
|
||||
is present in the system directory it will be loaded automatically.
|
||||
|
||||
BIOS reads at runtime go through the memory map (src/gba.cpp:792-1076).
|
||||
Address range 0x0000-0x3FFF maps to the bios buffer. A biosProtected[4]
|
||||
array at 0x00f029e1 is returned when reading outside the current PC
|
||||
region, matching real GBA BIOS protection behavior.
|
||||
60
emulators/vecx.yml
Normal file
60
emulators/vecx.yml
Normal file
@@ -0,0 +1,60 @@
|
||||
emulator: vecx
|
||||
type: libretro
|
||||
source: "https://github.com/libretro/libretro-vecx"
|
||||
cores:
|
||||
- vecx
|
||||
systems:
|
||||
- gce-vectrex
|
||||
|
||||
notes: |
|
||||
vecx is a GCE Vectrex emulator ported to libretro.
|
||||
|
||||
The Vectrex system ROM (8192 bytes) is fully embedded in the binary.
|
||||
There are three compile-time BIOS variants in bios/:
|
||||
- system.h (STANDARD_BIOS, default) - original Vectrex ROM
|
||||
- fast.h (FAST_BIOS) - modified BIOS with faster boot
|
||||
- skip.h - modified BIOS that skips the intro
|
||||
|
||||
The default build uses STANDARD_BIOS via #define at libretro.c:20.
|
||||
At load time (retro_load_game, libretro.c:736):
|
||||
memcpy(rom, bios_data, bios_data_size);
|
||||
This copies the compiled-in BIOS data into the rom[8192] array
|
||||
(vecx.c:40, mapped at 0xE000-0xFFFF via vecx.c:437-439).
|
||||
|
||||
The core never calls RETRO_ENVIRONMENT_GET_SYSTEM_DIRECTORY and has
|
||||
no code path to load an external BIOS file from disk. No .info file
|
||||
is shipped with the repo declaring firmware requirements.
|
||||
|
||||
rom.dat in the repo root is identical to bios/system.bin (same MD5:
|
||||
ab082fa8c8e632dd68589a8c7741388f), likely kept for standalone builds.
|
||||
|
||||
files: []
|
||||
|
||||
platform_details:
|
||||
bios_mapping:
|
||||
target: "0xE000-0xFFFF in Vectrex address space (8 KB)"
|
||||
source_ref: "vecx.c:40 (unsigned char rom[8192]), vecx.c:437-439 (read handler)"
|
||||
notes: |
|
||||
CPU reads from 0xE000-0xFFFF are served from rom[] via
|
||||
address & 0x1FFF masking. The array is populated from the
|
||||
compiled-in bios_data at retro_load_game() time.
|
||||
|
||||
embedded_bios:
|
||||
source_ref: "libretro.c:20-30, bios/system.h"
|
||||
standard_bios:
|
||||
md5: "ab082fa8c8e632dd68589a8c7741388f"
|
||||
sha1: "65d07426b520ddd3115d40f255511e0fd2e20ae7"
|
||||
size: 8192
|
||||
fast_bios:
|
||||
md5: "a970aed37cffd29ab3740f8e79518858"
|
||||
sha1: "e0900be6d6858b985fd7f0999d864b2fceaf01a1"
|
||||
size: 8192
|
||||
skip_bios:
|
||||
md5: "05f32c2b18b6fb168ab976989e86dfb1"
|
||||
sha1: "6c891bd74acb201d54071b310bd6df6617cdf205"
|
||||
size: 8192
|
||||
notes: |
|
||||
All three variants are 8192 bytes, compiled as C arrays in
|
||||
bios/*.h headers. STANDARD_BIOS is the authentic Vectrex ROM.
|
||||
FAST_BIOS and skip are modified versions for faster startup.
|
||||
Selection is compile-time only (#ifdef chain, libretro.c:20-30).
|
||||
934
emulators/vice.yml
Normal file
934
emulators/vice.yml
Normal file
@@ -0,0 +1,934 @@
|
||||
emulator: VICE
|
||||
type: libretro
|
||||
cores:
|
||||
- vice_x64
|
||||
- vice_x64sc
|
||||
- vice_x64dtv
|
||||
- vice_x128
|
||||
- vice_xvic
|
||||
- vice_xplus4
|
||||
- vice_xpet
|
||||
- vice_xcbm2
|
||||
- vice_xcbm5x0
|
||||
- vice_xscpu64
|
||||
source: "https://github.com/libretro/vice-libretro"
|
||||
systems:
|
||||
- commodore-c64
|
||||
- commodore-c128
|
||||
- commodore-c64dtv
|
||||
- commodore-vic20
|
||||
- commodore-plus4
|
||||
- commodore-pet
|
||||
- commodore-cbm-ii
|
||||
|
||||
notes: |
|
||||
VICE is a multi-machine Commodore emulator covering C64, C128, VIC-20,
|
||||
Plus/4, PET, CBM-II, C64 DTV, and SuperCPU64. Each machine is built as a
|
||||
separate libretro core.
|
||||
|
||||
All standard ROMs (kernal, basic, chargen, drive DOS, editor) are embedded
|
||||
in the core binary via USE_EMBEDDED. External ROM files are NOT required
|
||||
for normal operation. The embedded ROMs are compiled from vice/data/<machine>/
|
||||
and ship with every build.
|
||||
|
||||
The core looks for optional external data in system/vice/<machine>/
|
||||
(e.g. system/vice/C64/, system/vice/C128/). This is used for:
|
||||
- JiffyDOS replacement kernals (proprietary, not included)
|
||||
- SuperCPU external kernals (scpu-dos-1.4.bin, scpu-dos-2.04.bin)
|
||||
- Cartridge images placed in system/vice/<machine>/
|
||||
- Custom keymaps (.vkm files)
|
||||
- Custom vicerc configuration
|
||||
|
||||
JiffyDOS support (C64/C64SC/C128/SCPU64 only):
|
||||
Requires True Drive Emulation enabled and 1541/1571/1581 drive type.
|
||||
ROMs are loaded from system/vice/:
|
||||
- JiffyDOS_C64.bin (C64 kernal replacement)
|
||||
- JiffyDOS_SX-64.bin (SX-64 model kernal replacement)
|
||||
- JiffyDOS_C128.bin (C128 kernal replacement, C128 core only)
|
||||
- JiffyDOS_1541-II.bin (1541-II drive DOS replacement)
|
||||
- JiffyDOS_1571_repl310654.bin (1571 drive DOS replacement)
|
||||
- JiffyDOS_1581.bin (1581 drive DOS replacement)
|
||||
|
||||
SuperCPU kernal (SCPU64 core only):
|
||||
Option "SuperCPU Kernal" selects between Internal (embedded), 1.40, or 2.04.
|
||||
External kernals loaded from system/vice/SCPU64/:
|
||||
- scpu-dos-1.4.bin
|
||||
- scpu-dos-2.04.bin
|
||||
These files are blacklisted from the cartridge scanner to prevent accidental
|
||||
loading as cartridges.
|
||||
|
||||
C128 libretro specifics: the C128 core reuses C64 ROM filenames for C64 mode
|
||||
(basic-901226-01.bin, kernal-901227-03.bin) instead of the standalone VICE
|
||||
names (basic64-901226-01.bin, kernal64-901227-03.bin). This is controlled
|
||||
by #ifdef __LIBRETRO__ in c128rom.h.
|
||||
|
||||
Drive ROM notes: dos2000, dos4000, and CMDHD boot ROM are defined in
|
||||
driverom.h but not shipped in vice/data/DRIVES/. These are for CMD hardware
|
||||
(FD-2000, FD-4000, CMD HD) which are rare peripherals.
|
||||
|
||||
Source: retrodep/embedded/*.c (embedded ROM tables),
|
||||
vice/src/*/rom.h (ROM name defines), vice/src/drive/driverom.h (drive ROMs),
|
||||
retrodep/ui.c:274-315 (JiffyDOS loading), retrodep/ui.c:258-271 (SCPU kernal),
|
||||
libretro/libretro-core.c:2800-2865 (core options for JiffyDOS/SCPU)
|
||||
|
||||
files:
|
||||
# -------------------------------------------------------
|
||||
# C64 ROMs (vice_x64, vice_x64sc)
|
||||
# embedded in binary, listed for reference
|
||||
# -------------------------------------------------------
|
||||
- name: "vice/C64/basic-901226-01.bin"
|
||||
system: commodore-c64
|
||||
required: false
|
||||
embedded: true
|
||||
size: 8192
|
||||
note: "C64 BASIC V2 ROM. Embedded in core."
|
||||
source_ref: "vice/src/c64/c64rom.h:31"
|
||||
|
||||
- name: "vice/C64/kernal-901227-03.bin"
|
||||
system: commodore-c64
|
||||
required: false
|
||||
embedded: true
|
||||
size: 8192
|
||||
note: "C64 Kernal Rev 3 (default). Embedded in core."
|
||||
source_ref: "vice/src/c64/c64rom.h:52"
|
||||
|
||||
- name: "vice/C64/kernal-901227-01.bin"
|
||||
system: commodore-c64
|
||||
required: false
|
||||
embedded: true
|
||||
size: 8192
|
||||
note: "C64 Kernal Rev 1. Embedded in core."
|
||||
source_ref: "vice/src/c64/c64rom.h:50"
|
||||
|
||||
- name: "vice/C64/kernal-901227-02.bin"
|
||||
system: commodore-c64
|
||||
required: false
|
||||
embedded: true
|
||||
size: 8192
|
||||
note: "C64 Kernal Rev 2. Embedded in core."
|
||||
source_ref: "vice/src/c64/c64rom.h:51"
|
||||
|
||||
- name: "vice/C64/kernal-390852-01.bin"
|
||||
system: commodore-c64
|
||||
required: false
|
||||
embedded: true
|
||||
size: 8192
|
||||
note: "C64 GS (Games System) Kernal. Embedded in core."
|
||||
source_ref: "vice/src/c64/c64rom.h:53"
|
||||
|
||||
- name: "vice/C64/kernal-251104-04.bin"
|
||||
system: commodore-c64
|
||||
required: false
|
||||
embedded: true
|
||||
size: 8192
|
||||
note: "SX-64 Kernal. Embedded in core."
|
||||
source_ref: "vice/src/c64/c64rom.h:54"
|
||||
|
||||
- name: "vice/C64/kernal-901246-01.bin"
|
||||
system: commodore-c64
|
||||
required: false
|
||||
embedded: true
|
||||
size: 8192
|
||||
note: "PET64/Educator64 (4064) Kernal. Embedded in core."
|
||||
source_ref: "vice/src/c64/c64rom.h:55"
|
||||
|
||||
- name: "vice/C64/kernal-906145-02.bin"
|
||||
system: commodore-c64
|
||||
required: false
|
||||
embedded: true
|
||||
size: 8192
|
||||
note: "C64 Japanese Kernal. Embedded in core."
|
||||
source_ref: "vice/src/c64/c64rom.h:49"
|
||||
|
||||
- name: "vice/C64/chargen-901225-01.bin"
|
||||
system: commodore-c64
|
||||
required: false
|
||||
embedded: true
|
||||
size: 4096
|
||||
note: "C64 Character Generator ROM (default). Embedded in core."
|
||||
source_ref: "vice/src/c64/c64rom.h:60"
|
||||
|
||||
- name: "vice/C64/chargen-906143-02.bin"
|
||||
system: commodore-c64
|
||||
required: false
|
||||
embedded: true
|
||||
size: 4096
|
||||
note: "C64 Japanese Character Generator ROM. Embedded in core."
|
||||
source_ref: "vice/src/c64/c64rom.h:61"
|
||||
|
||||
# -------------------------------------------------------
|
||||
# C128 ROMs (vice_x128)
|
||||
# embedded in binary, listed for reference
|
||||
# -------------------------------------------------------
|
||||
- name: "vice/C128/kernal-318020-05.bin"
|
||||
system: commodore-c128
|
||||
required: false
|
||||
embedded: true
|
||||
size: 16384
|
||||
note: "C128 Kernal (default international). Embedded in core."
|
||||
source_ref: "vice/src/c128/c128rom.h:103"
|
||||
|
||||
- name: "vice/C128/kernal-315078-03.bin"
|
||||
system: commodore-c128
|
||||
required: false
|
||||
embedded: true
|
||||
size: 16384
|
||||
note: "C128 Kernal German. Embedded in core."
|
||||
source_ref: "vice/src/c128/c128rom.h:105"
|
||||
|
||||
- name: "vice/C128/kernal-325172-01.bin"
|
||||
system: commodore-c128
|
||||
required: false
|
||||
embedded: true
|
||||
size: 16384
|
||||
note: "C128 Kernal Swiss. Embedded in core."
|
||||
source_ref: "vice/src/c128/c128rom.h:104"
|
||||
|
||||
- name: "vice/C128/kernal-318034-01.bin"
|
||||
system: commodore-c128
|
||||
required: false
|
||||
embedded: true
|
||||
size: 16384
|
||||
note: "C128 Kernal Swedish. Embedded in core."
|
||||
source_ref: "vice/src/c128/c128rom.h:110"
|
||||
|
||||
- name: "vice/C128/kernalfi"
|
||||
system: commodore-c128
|
||||
required: false
|
||||
embedded: true
|
||||
size: 16384
|
||||
note: "C128 Kernal Finnish (unidentified part number). Embedded in core."
|
||||
source_ref: "vice/src/c128/c128rom.h:106"
|
||||
|
||||
- name: "vice/C128/kernalfr"
|
||||
system: commodore-c128
|
||||
required: false
|
||||
embedded: true
|
||||
size: 16384
|
||||
note: "C128 Kernal French (unidentified part number). Embedded in core."
|
||||
source_ref: "vice/src/c128/c128rom.h:107"
|
||||
|
||||
- name: "vice/C128/kernalit"
|
||||
system: commodore-c128
|
||||
required: false
|
||||
embedded: true
|
||||
size: 16384
|
||||
note: "C128 Kernal Italian (unidentified part number). Embedded in core."
|
||||
source_ref: "vice/src/c128/c128rom.h:108"
|
||||
|
||||
- name: "vice/C128/kernalno"
|
||||
system: commodore-c128
|
||||
required: false
|
||||
embedded: true
|
||||
size: 16384
|
||||
note: "C128 Kernal Norwegian (unidentified part number). Embedded in core."
|
||||
source_ref: "vice/src/c128/c128rom.h:109"
|
||||
|
||||
- name: "vice/C128/basiclo-318018-04.bin"
|
||||
system: commodore-c128
|
||||
required: false
|
||||
embedded: true
|
||||
size: 16384
|
||||
note: "C128 BASIC low (BASIC part). Embedded in core."
|
||||
source_ref: "vice/src/c128/c128rom.h:115"
|
||||
|
||||
- name: "vice/C128/basichi-318019-04.bin"
|
||||
system: commodore-c128
|
||||
required: false
|
||||
embedded: true
|
||||
size: 16384
|
||||
note: "C128 BASIC high (Editor part). Embedded in core."
|
||||
source_ref: "vice/src/c128/c128rom.h:116"
|
||||
|
||||
- name: "vice/C128/basic-901226-01.bin"
|
||||
system: commodore-c128
|
||||
required: false
|
||||
embedded: true
|
||||
size: 8192
|
||||
note: "C64 BASIC V2 ROM, used by C128 in C64 mode. Libretro build uses C64 filename instead of basic64-901226-01.bin."
|
||||
source_ref: "vice/src/c128/c128rom.h:123-127"
|
||||
|
||||
- name: "vice/C128/kernal-901227-03.bin"
|
||||
system: commodore-c128
|
||||
required: false
|
||||
embedded: true
|
||||
size: 8192
|
||||
note: "C64 Kernal Rev 3, used by C128 in C64 mode. Libretro build uses C64 filename instead of kernal64-901227-03.bin."
|
||||
source_ref: "vice/src/c128/c128rom.h:130-134"
|
||||
|
||||
- name: "vice/C128/kernal64-325179-01.bin"
|
||||
system: commodore-c128
|
||||
required: false
|
||||
embedded: true
|
||||
size: 8192
|
||||
note: "C128 C64-mode Kernal Norwegian. Embedded in core."
|
||||
source_ref: "vice/src/c128/c128rom.h:136"
|
||||
|
||||
- name: "vice/C128/kernal64-325182-01.bin"
|
||||
system: commodore-c128
|
||||
required: false
|
||||
embedded: true
|
||||
size: 8192
|
||||
note: "C128 C64-mode Kernal Swedish. Embedded in core."
|
||||
source_ref: "vice/src/c128/c128rom.h:137"
|
||||
|
||||
- name: "vice/C128/chargen-390059-01.bin"
|
||||
system: commodore-c128
|
||||
required: false
|
||||
embedded: true
|
||||
size: 8192
|
||||
note: "C128 Character Generator (default international). Embedded in core."
|
||||
source_ref: "vice/src/c128/c128rom.h:92"
|
||||
|
||||
- name: "vice/C128/chargen-315079-01.bin"
|
||||
system: commodore-c128
|
||||
required: false
|
||||
embedded: true
|
||||
size: 8192
|
||||
note: "C128 Character Generator German. Embedded in core."
|
||||
source_ref: "vice/src/c128/c128rom.h:95"
|
||||
|
||||
- name: "vice/C128/chargen-325167-02.bin"
|
||||
system: commodore-c128
|
||||
required: false
|
||||
embedded: true
|
||||
size: 8192
|
||||
note: "C128 Character Generator Italian/French/Belgian. Embedded in core."
|
||||
source_ref: "vice/src/c128/c128rom.h:93"
|
||||
|
||||
- name: "vice/C128/chargen-325173-01D.bin"
|
||||
system: commodore-c128
|
||||
required: false
|
||||
embedded: true
|
||||
size: 8192
|
||||
note: "C128 Character Generator Swiss. Embedded in core."
|
||||
source_ref: "vice/src/c128/c128rom.h:94"
|
||||
|
||||
- name: "vice/C128/chargen-325078-02.bin"
|
||||
system: commodore-c128
|
||||
required: false
|
||||
embedded: true
|
||||
size: 8192
|
||||
note: "C128 Character Generator Norwegian. Embedded in core."
|
||||
source_ref: "vice/src/c128/c128rom.h:99"
|
||||
|
||||
- name: "vice/C128/chargen-325181-01.bin"
|
||||
system: commodore-c128
|
||||
required: false
|
||||
embedded: true
|
||||
size: 8192
|
||||
note: "C128 Character Generator Finnish/Swedish. Embedded in core."
|
||||
source_ref: "vice/src/c128/c128rom.h:96"
|
||||
|
||||
# -------------------------------------------------------
|
||||
# C64 DTV ROMs (vice_x64dtv)
|
||||
# embedded in binary, listed for reference
|
||||
# -------------------------------------------------------
|
||||
- name: "vice/C64DTV/dtvrom.bin"
|
||||
system: commodore-c64dtv
|
||||
required: false
|
||||
embedded: true
|
||||
size: 2097152
|
||||
note: "C64 DTV flash ROM (2 MB). Contains kernal, basic, chargen. Embedded in core."
|
||||
source_ref: "vice/src/c64dtv/c64dtvflash.c:59-64"
|
||||
|
||||
- name: "vice/C64DTV/basic-901226-01.bin"
|
||||
system: commodore-c64dtv
|
||||
required: false
|
||||
embedded: true
|
||||
size: 8192
|
||||
note: "C64 BASIC V2 ROM (DTV copy). Embedded in core."
|
||||
source_ref: "vice/data/C64DTV/"
|
||||
|
||||
- name: "vice/C64DTV/chargen-901225-01.bin"
|
||||
system: commodore-c64dtv
|
||||
required: false
|
||||
embedded: true
|
||||
size: 4096
|
||||
note: "C64 Character Generator (DTV copy). Embedded in core."
|
||||
source_ref: "vice/data/C64DTV/"
|
||||
|
||||
- name: "vice/C64DTV/kernal-901227-03.bin"
|
||||
system: commodore-c64dtv
|
||||
required: false
|
||||
embedded: true
|
||||
size: 8192
|
||||
note: "C64 Kernal Rev 3 (DTV copy). Embedded in core."
|
||||
source_ref: "vice/data/C64DTV/"
|
||||
|
||||
# -------------------------------------------------------
|
||||
# VIC-20 ROMs (vice_xvic)
|
||||
# embedded in binary, listed for reference
|
||||
# -------------------------------------------------------
|
||||
- name: "vice/VIC20/basic-901486-01.bin"
|
||||
system: commodore-vic20
|
||||
required: false
|
||||
embedded: true
|
||||
size: 8192
|
||||
note: "VIC-20 BASIC ROM. Embedded in core."
|
||||
source_ref: "vice/src/vic20/vic20rom.h:43"
|
||||
|
||||
- name: "vice/VIC20/kernal.901486-07.bin"
|
||||
system: commodore-vic20
|
||||
required: false
|
||||
embedded: true
|
||||
size: 8192
|
||||
note: "VIC-20 Kernal PAL (default). Embedded in core."
|
||||
source_ref: "vice/src/vic20/vic20rom.h:53"
|
||||
|
||||
- name: "vice/VIC20/kernal.901486-06.bin"
|
||||
system: commodore-vic20
|
||||
required: false
|
||||
embedded: true
|
||||
size: 8192
|
||||
note: "VIC-20 Kernal NTSC. Embedded in core."
|
||||
source_ref: "vice/src/vic20/vic20rom.h:52"
|
||||
|
||||
- name: "vice/VIC20/kernal.901486-02.bin"
|
||||
system: commodore-vic20
|
||||
required: false
|
||||
embedded: true
|
||||
size: 8192
|
||||
note: "VIC-20 Kernal Japanese NTSC Rev 2. Embedded in core."
|
||||
source_ref: "vice/src/vic20/vic20rom.h:51"
|
||||
|
||||
- name: "vice/VIC20/chargen-901460-03.bin"
|
||||
system: commodore-vic20
|
||||
required: false
|
||||
embedded: true
|
||||
size: 4096
|
||||
note: "VIC-20 Character Generator (default). Embedded in core."
|
||||
source_ref: "vice/src/vic20/vic20rom.h:56"
|
||||
|
||||
- name: "vice/VIC20/chargen-901460-02.bin"
|
||||
system: commodore-vic20
|
||||
required: false
|
||||
embedded: true
|
||||
size: 4096
|
||||
note: "VIC-20 Japanese Character Generator. Embedded in core."
|
||||
source_ref: "vice/src/vic20/vic20rom.h:57"
|
||||
|
||||
# -------------------------------------------------------
|
||||
# Plus/4 ROMs (vice_xplus4)
|
||||
# embedded in binary, listed for reference
|
||||
# -------------------------------------------------------
|
||||
- name: "vice/PLUS4/basic-318006-01.bin"
|
||||
system: commodore-plus4
|
||||
required: false
|
||||
embedded: true
|
||||
size: 16384
|
||||
note: "Plus/4 BASIC ROM. Embedded in core."
|
||||
source_ref: "vice/src/plus4/plus4rom.h:33"
|
||||
|
||||
- name: "vice/PLUS4/kernal-318004-05.bin"
|
||||
system: commodore-plus4
|
||||
required: false
|
||||
embedded: true
|
||||
size: 16384
|
||||
note: "Plus/4 Kernal PAL Rev 5 (default PAL). Embedded in core."
|
||||
source_ref: "vice/src/plus4/plus4rom.h:36"
|
||||
|
||||
- name: "vice/PLUS4/kernal-318005-05.bin"
|
||||
system: commodore-plus4
|
||||
required: false
|
||||
embedded: true
|
||||
size: 16384
|
||||
note: "Plus/4 Kernal NTSC Rev 5 (default NTSC). Embedded in core."
|
||||
source_ref: "vice/src/plus4/plus4rom.h:37"
|
||||
|
||||
- name: "vice/PLUS4/kernal-318004-01.bin"
|
||||
system: commodore-plus4
|
||||
required: false
|
||||
embedded: true
|
||||
size: 16384
|
||||
note: "Plus/4 Kernal NTSC Rev 1 (V232 prototype). Embedded in core."
|
||||
source_ref: "vice/src/plus4/plus4rom.h:35"
|
||||
|
||||
- name: "vice/PLUS4/kernal-364.bin"
|
||||
system: commodore-plus4
|
||||
required: false
|
||||
embedded: true
|
||||
size: 16384
|
||||
note: "Commodore 364 prototype Kernal. Embedded in core."
|
||||
source_ref: "vice/src/plus4/plus4rom.h:38"
|
||||
|
||||
- name: "vice/PLUS4/3plus1-317053-01.bin"
|
||||
system: commodore-plus4
|
||||
required: false
|
||||
embedded: true
|
||||
size: 16384
|
||||
note: "3-Plus-1 software ROM low. Embedded in core."
|
||||
source_ref: "vice/src/plus4/plus4rom.h:40"
|
||||
|
||||
- name: "vice/PLUS4/3plus1-317054-01.bin"
|
||||
system: commodore-plus4
|
||||
required: false
|
||||
embedded: true
|
||||
size: 16384
|
||||
note: "3-Plus-1 software ROM high. Embedded in core."
|
||||
source_ref: "vice/src/plus4/plus4rom.h:41"
|
||||
|
||||
- name: "vice/PLUS4/c2lo-364.bin"
|
||||
system: commodore-plus4
|
||||
required: false
|
||||
embedded: true
|
||||
size: 16384
|
||||
note: "Commodore 364 prototype function ROM low. Embedded in core."
|
||||
source_ref: "vice/src/plus4/plus4rom.h:43"
|
||||
|
||||
# -------------------------------------------------------
|
||||
# PET ROMs (vice_xpet)
|
||||
# embedded in binary, listed for reference
|
||||
# -------------------------------------------------------
|
||||
- name: "vice/PET/basic-1.901439-09-05-02-06.bin"
|
||||
system: commodore-pet
|
||||
required: false
|
||||
embedded: true
|
||||
size: 8192
|
||||
note: "PET BASIC 1.0 ROM (PET 2001). Embedded in core."
|
||||
source_ref: "vice/src/pet/petrom.h:55"
|
||||
|
||||
- name: "vice/PET/basic-2.901465-01-02.bin"
|
||||
system: commodore-pet
|
||||
required: false
|
||||
embedded: true
|
||||
size: 8192
|
||||
note: "PET BASIC 2.0 ROM. Embedded in core."
|
||||
source_ref: "vice/src/pet/petrom.h:56"
|
||||
|
||||
- name: "vice/PET/basic-4.901465-23-20-21.bin"
|
||||
system: commodore-pet
|
||||
required: false
|
||||
embedded: true
|
||||
size: 12288
|
||||
note: "PET BASIC 4.0 ROM. Embedded in core."
|
||||
source_ref: "vice/src/pet/petrom.h:57"
|
||||
|
||||
- name: "vice/PET/kernal-1.901439-04-07.bin"
|
||||
system: commodore-pet
|
||||
required: false
|
||||
embedded: true
|
||||
size: 4096
|
||||
note: "PET Kernal 1.0 (PET 2001). Embedded in core."
|
||||
source_ref: "vice/src/pet/petrom.h:51"
|
||||
|
||||
- name: "vice/PET/kernal-2.901465-03.bin"
|
||||
system: commodore-pet
|
||||
required: false
|
||||
embedded: true
|
||||
size: 4096
|
||||
note: "PET Kernal 2.0. Embedded in core."
|
||||
source_ref: "vice/src/pet/petrom.h:52"
|
||||
|
||||
- name: "vice/PET/kernal-4.901465-22.bin"
|
||||
system: commodore-pet
|
||||
required: false
|
||||
embedded: true
|
||||
size: 4096
|
||||
note: "PET Kernal 4.0. Embedded in core."
|
||||
source_ref: "vice/src/pet/petrom.h:53"
|
||||
|
||||
- name: "vice/PET/edit-1-n.901439-03.bin"
|
||||
system: commodore-pet
|
||||
required: false
|
||||
embedded: true
|
||||
size: 2048
|
||||
note: "PET Editor 1.0 Normal (graphics keyboard). Embedded in core."
|
||||
source_ref: "vice/src/pet/petrom.h:59"
|
||||
|
||||
- name: "vice/PET/edit-2-n.901447-24.bin"
|
||||
system: commodore-pet
|
||||
required: false
|
||||
embedded: true
|
||||
size: 2048
|
||||
note: "PET Editor 2.0 Normal (graphics keyboard). Embedded in core."
|
||||
source_ref: "vice/src/pet/petrom.h:60"
|
||||
|
||||
- name: "vice/PET/edit-2-b.901474-01.bin"
|
||||
system: commodore-pet
|
||||
required: false
|
||||
embedded: true
|
||||
size: 2048
|
||||
note: "PET Editor 2.0 Business keyboard. Embedded in core."
|
||||
source_ref: "vice/src/pet/petrom.h:61"
|
||||
|
||||
- name: "vice/PET/edit-4-40-n-50Hz.901498-01.bin"
|
||||
system: commodore-pet
|
||||
required: false
|
||||
embedded: true
|
||||
size: 2048
|
||||
note: "PET Editor 4.0, 40 col, Normal keyboard, 50Hz. Embedded in core."
|
||||
source_ref: "vice/src/pet/petrom.h:62"
|
||||
|
||||
- name: "vice/PET/edit-4-40-b-50Hz.ts.bin"
|
||||
system: commodore-pet
|
||||
required: false
|
||||
embedded: true
|
||||
size: 2048
|
||||
note: "PET Editor 4.0, 40 col, Business keyboard, 50Hz. Embedded in core."
|
||||
source_ref: "vice/src/pet/petrom.h:65"
|
||||
|
||||
- name: "vice/PET/edit-4-80-b-50Hz.901474-04_.bin"
|
||||
system: commodore-pet
|
||||
required: false
|
||||
embedded: true
|
||||
size: 2048
|
||||
note: "PET Editor 4.0, 80 col, Business keyboard, 50Hz. Embedded in core."
|
||||
source_ref: "vice/src/pet/petrom.h:63"
|
||||
|
||||
- name: "vice/PET/characters-1.901447-08.bin"
|
||||
system: commodore-pet
|
||||
required: false
|
||||
embedded: true
|
||||
size: 2048
|
||||
note: "PET Character Generator 1 (original PET 2001). Embedded in core."
|
||||
source_ref: "vice/src/pet/petrom.h:46"
|
||||
|
||||
- name: "vice/PET/characters-2.901447-10.bin"
|
||||
system: commodore-pet
|
||||
required: false
|
||||
embedded: true
|
||||
size: 2048
|
||||
note: "PET Character Generator 2. Embedded in core."
|
||||
source_ref: "vice/src/pet/petrom.h:47"
|
||||
|
||||
- name: "vice/PET/characters.901640-01.bin"
|
||||
system: commodore-pet
|
||||
required: false
|
||||
embedded: true
|
||||
size: 4096
|
||||
note: "SuperPET Character Generator. Embedded in core."
|
||||
source_ref: "vice/src/pet/petrom.h:48"
|
||||
|
||||
- name: "vice/PET/waterloo-a000.901898-01.bin"
|
||||
system: commodore-pet
|
||||
required: false
|
||||
embedded: true
|
||||
size: 4096
|
||||
note: "SuperPET Waterloo microEngine 6809 ROM at $A000. Embedded in core."
|
||||
source_ref: "vice/src/pet/petrom.h:75"
|
||||
|
||||
- name: "vice/PET/waterloo-b000.901898-02.bin"
|
||||
system: commodore-pet
|
||||
required: false
|
||||
embedded: true
|
||||
size: 4096
|
||||
note: "SuperPET Waterloo microEngine 6809 ROM at $B000. Embedded in core."
|
||||
source_ref: "vice/src/pet/petrom.h:76"
|
||||
|
||||
- name: "vice/PET/waterloo-c000.901898-03.bin"
|
||||
system: commodore-pet
|
||||
required: false
|
||||
embedded: true
|
||||
size: 4096
|
||||
note: "SuperPET Waterloo microEngine 6809 ROM at $C000. Embedded in core."
|
||||
source_ref: "vice/src/pet/petrom.h:77"
|
||||
|
||||
- name: "vice/PET/waterloo-d000.901898-04.bin"
|
||||
system: commodore-pet
|
||||
required: false
|
||||
embedded: true
|
||||
size: 4096
|
||||
note: "SuperPET Waterloo microEngine 6809 ROM at $D000. Embedded in core."
|
||||
source_ref: "vice/src/pet/petrom.h:78"
|
||||
|
||||
- name: "vice/PET/waterloo-e000.901897-01.bin"
|
||||
system: commodore-pet
|
||||
required: false
|
||||
embedded: true
|
||||
size: 2048
|
||||
note: "SuperPET Waterloo microEngine 6809 ROM at $E000. Embedded in core."
|
||||
source_ref: "vice/src/pet/petrom.h:79"
|
||||
|
||||
- name: "vice/PET/waterloo-f000.901898-05.bin"
|
||||
system: commodore-pet
|
||||
required: false
|
||||
embedded: true
|
||||
size: 4096
|
||||
note: "SuperPET Waterloo microEngine 6809 ROM at $F000. Embedded in core."
|
||||
source_ref: "vice/src/pet/petrom.h:80"
|
||||
|
||||
# -------------------------------------------------------
|
||||
# CBM-II ROMs (vice_xcbm2, vice_xcbm5x0)
|
||||
# embedded in binary, listed for reference
|
||||
# -------------------------------------------------------
|
||||
- name: "vice/CBM-II/basic-901242+3-04a.bin"
|
||||
system: commodore-cbm-ii
|
||||
required: false
|
||||
embedded: true
|
||||
size: 16384
|
||||
note: "CBM-II BASIC 128 (CBM 610/620/710/720). Embedded in core."
|
||||
source_ref: "vice/src/cbm2/cbm2rom.h:41"
|
||||
|
||||
- name: "vice/CBM-II/basic-901240+1-03.bin"
|
||||
system: commodore-cbm-ii
|
||||
required: false
|
||||
embedded: true
|
||||
size: 16384
|
||||
note: "CBM-II BASIC 256 (CBM 710/720 with 256K). Embedded in core."
|
||||
source_ref: "vice/src/cbm2/cbm2rom.h:42"
|
||||
|
||||
- name: "vice/CBM-II/basic-901235+6-02.bin"
|
||||
system: commodore-cbm-ii
|
||||
required: false
|
||||
embedded: true
|
||||
size: 16384
|
||||
note: "CBM-II BASIC 500 (CBM 510/P500). Embedded in core."
|
||||
source_ref: "vice/src/cbm2/cbm2rom.h:43"
|
||||
|
||||
- name: "vice/CBM-II/kernal-901244-04a.bin"
|
||||
system: commodore-cbm-ii
|
||||
required: false
|
||||
embedded: true
|
||||
size: 8192
|
||||
note: "CBM-II Kernal (CBM 610/620/710/720). Embedded in core."
|
||||
source_ref: "vice/src/cbm2/cbm2rom.h:45"
|
||||
|
||||
- name: "vice/CBM-II/kernal-901234-02.bin"
|
||||
system: commodore-cbm-ii
|
||||
required: false
|
||||
embedded: true
|
||||
size: 8192
|
||||
note: "CBM-II Kernal 500 (CBM 510/P500). Embedded in core."
|
||||
source_ref: "vice/src/cbm2/cbm2rom.h:46"
|
||||
|
||||
- name: "vice/CBM-II/chargen-901225-01.bin"
|
||||
system: commodore-cbm-ii
|
||||
required: false
|
||||
embedded: true
|
||||
size: 4096
|
||||
note: "CBM-II Character Generator 500 (VIC-II based, CBM 510/P500). Embedded in core."
|
||||
source_ref: "vice/src/cbm2/cbm2rom.h:37"
|
||||
|
||||
- name: "vice/CBM-II/chargen-901237-01.bin"
|
||||
system: commodore-cbm-ii
|
||||
required: false
|
||||
embedded: true
|
||||
size: 4096
|
||||
note: "CBM-II Character Generator 600 (CBM 610/620). Embedded in core."
|
||||
source_ref: "vice/src/cbm2/cbm2rom.h:38"
|
||||
|
||||
- name: "vice/CBM-II/chargen-901232-01.bin"
|
||||
system: commodore-cbm-ii
|
||||
required: false
|
||||
embedded: true
|
||||
size: 4096
|
||||
note: "CBM-II Character Generator 700 (CBM 710/720). Embedded in core."
|
||||
source_ref: "vice/src/cbm2/cbm2rom.h:39"
|
||||
|
||||
# -------------------------------------------------------
|
||||
# SCPU64 ROMs (vice_xscpu64)
|
||||
# chargen embedded, SCPU ROM embedded as "scpu64"
|
||||
# -------------------------------------------------------
|
||||
- name: "vice/SCPU64/scpu64"
|
||||
system: commodore-c64
|
||||
required: false
|
||||
embedded: true
|
||||
size: 65536
|
||||
note: "SuperCPU64 internal ROM (default). Embedded in core."
|
||||
source_ref: "retrodep/ui.c:269"
|
||||
|
||||
- name: "vice/SCPU64/chargen-901225-01.bin"
|
||||
system: commodore-c64
|
||||
required: false
|
||||
embedded: true
|
||||
size: 4096
|
||||
note: "C64 Character Generator (used by SCPU64). Embedded in core."
|
||||
source_ref: "vice/src/scpu64/scpu64rom.h:36"
|
||||
|
||||
- name: "vice/SCPU64/chargen-906143-02.bin"
|
||||
system: commodore-c64
|
||||
required: false
|
||||
embedded: true
|
||||
size: 4096
|
||||
note: "C64 Japanese Character Generator (used by SCPU64). Embedded in core."
|
||||
source_ref: "vice/src/scpu64/scpu64rom.h:37"
|
||||
|
||||
- name: "vice/SCPU64/scpu-dos-1.4.bin"
|
||||
system: commodore-c64
|
||||
required: false
|
||||
embedded: false
|
||||
note: "SuperCPU DOS v1.40 external kernal. Optional, selected via core option. Goes in system/vice/SCPU64/."
|
||||
source_ref: "retrodep/ui.c:266, libretro/libretro-core.c:2823"
|
||||
|
||||
- name: "vice/SCPU64/scpu-dos-2.04.bin"
|
||||
system: commodore-c64
|
||||
required: false
|
||||
embedded: false
|
||||
note: "SuperCPU DOS v2.04 external kernal. Optional, selected via core option. Goes in system/vice/SCPU64/."
|
||||
source_ref: "retrodep/ui.c:263, libretro/libretro-core.c:2825"
|
||||
|
||||
# -------------------------------------------------------
|
||||
# Drive ROMs (shared across all cores with True Drive Emulation)
|
||||
# embedded in binary, listed for reference
|
||||
# -------------------------------------------------------
|
||||
- name: "vice/DRIVES/dos1540-325302+3-01.bin"
|
||||
system: commodore-c64
|
||||
required: false
|
||||
embedded: true
|
||||
size: 16384
|
||||
note: "1540 drive DOS ROM. Embedded in core."
|
||||
source_ref: "vice/src/drive/driverom.h:88"
|
||||
|
||||
- name: "vice/DRIVES/dos1541-325302-01+901229-05.bin"
|
||||
system: commodore-c64
|
||||
required: false
|
||||
embedded: true
|
||||
size: 16384
|
||||
note: "1541 drive DOS ROM. Embedded in core."
|
||||
source_ref: "vice/src/drive/driverom.h:89"
|
||||
|
||||
- name: "vice/DRIVES/dos1541ii-251968-03.bin"
|
||||
system: commodore-c64
|
||||
required: false
|
||||
embedded: true
|
||||
size: 16384
|
||||
note: "1541-II drive DOS ROM. Embedded in core."
|
||||
source_ref: "vice/src/drive/driverom.h:90"
|
||||
|
||||
- name: "vice/DRIVES/dos1551-318008-01.bin"
|
||||
system: commodore-plus4
|
||||
required: false
|
||||
embedded: true
|
||||
size: 16384
|
||||
note: "1551 drive DOS ROM (Plus/4 specific). Embedded in core."
|
||||
source_ref: "vice/src/drive/driverom.h:92"
|
||||
|
||||
- name: "vice/DRIVES/dos1570-315090-01.bin"
|
||||
system: commodore-c64
|
||||
required: false
|
||||
embedded: true
|
||||
size: 32768
|
||||
note: "1570 drive DOS ROM. Embedded in core."
|
||||
source_ref: "vice/src/drive/driverom.h:93"
|
||||
|
||||
- name: "vice/DRIVES/dos1571-310654-05.bin"
|
||||
system: commodore-c64
|
||||
required: false
|
||||
embedded: true
|
||||
size: 32768
|
||||
note: "1571 drive DOS ROM. Embedded in core."
|
||||
source_ref: "vice/src/drive/driverom.h:94"
|
||||
|
||||
- name: "vice/DRIVES/dos1571cr-318047-01.bin"
|
||||
system: commodore-c128
|
||||
required: false
|
||||
embedded: true
|
||||
size: 32768
|
||||
note: "1571CR drive DOS ROM (cost-reduced, C128D internal). Embedded in core."
|
||||
source_ref: "vice/src/drive/driverom.h:95"
|
||||
|
||||
- name: "vice/DRIVES/dos1581-318045-02.bin"
|
||||
system: commodore-c64
|
||||
required: false
|
||||
embedded: true
|
||||
size: 32768
|
||||
note: "1581 drive DOS ROM. Embedded in core."
|
||||
source_ref: "vice/src/drive/driverom.h:96"
|
||||
|
||||
- name: "vice/DRIVES/dos1001-901887+8-01.bin"
|
||||
system: commodore-pet
|
||||
required: false
|
||||
embedded: true
|
||||
size: 16384
|
||||
note: "CBM 1001 (SFD-1001) drive DOS ROM. Embedded in core."
|
||||
source_ref: "vice/src/drive/driverom.h:70"
|
||||
|
||||
- name: "vice/DRIVES/dos2031-901484-03+05.bin"
|
||||
system: commodore-pet
|
||||
required: false
|
||||
embedded: true
|
||||
size: 16384
|
||||
note: "CBM 2031 drive DOS ROM. Embedded in core."
|
||||
source_ref: "vice/src/drive/driverom.h:73"
|
||||
|
||||
- name: "vice/DRIVES/dos2040-901468-06+07.bin"
|
||||
system: commodore-pet
|
||||
required: false
|
||||
embedded: true
|
||||
size: 8192
|
||||
note: "CBM 2040 dual drive DOS ROM. Embedded in core."
|
||||
source_ref: "vice/src/drive/driverom.h:76"
|
||||
|
||||
- name: "vice/DRIVES/dos3040-901468-11-13.bin"
|
||||
system: commodore-pet
|
||||
required: false
|
||||
embedded: true
|
||||
size: 12288
|
||||
note: "CBM 3040 dual drive DOS ROM. Embedded in core."
|
||||
source_ref: "vice/src/drive/driverom.h:79"
|
||||
|
||||
- name: "vice/DRIVES/dos4040-901468-14-16.bin"
|
||||
system: commodore-pet
|
||||
required: false
|
||||
embedded: true
|
||||
size: 12288
|
||||
note: "CBM 4040 dual drive DOS ROM. Embedded in core."
|
||||
source_ref: "vice/src/drive/driverom.h:82"
|
||||
|
||||
- name: "vice/DRIVES/dos9000-300516+7-revC.bin"
|
||||
system: commodore-pet
|
||||
required: false
|
||||
embedded: true
|
||||
size: 16384
|
||||
note: "CBM D9090/D9060 hard drive DOS ROM. Embedded in core."
|
||||
source_ref: "vice/src/drive/driverom.h:85"
|
||||
|
||||
# -------------------------------------------------------
|
||||
# JiffyDOS ROMs (optional, proprietary, not included)
|
||||
# C64/C64SC/C128/SCPU64 cores only
|
||||
# -------------------------------------------------------
|
||||
- name: "vice/JiffyDOS_C64.bin"
|
||||
system: commodore-c64
|
||||
required: false
|
||||
embedded: false
|
||||
note: "JiffyDOS C64 kernal replacement. Optional, proprietary. Requires True Drive Emulation + 1541/1571/1581 drive."
|
||||
source_ref: "retrodep/ui.c:302, libretro/libretro-core.c:2853"
|
||||
|
||||
- name: "vice/JiffyDOS_SX-64.bin"
|
||||
system: commodore-c64
|
||||
required: false
|
||||
embedded: false
|
||||
note: "JiffyDOS SX-64 kernal replacement. Used instead of JiffyDOS_C64.bin when SX-64 model is selected."
|
||||
source_ref: "retrodep/ui.c:295"
|
||||
|
||||
- name: "vice/JiffyDOS_C128.bin"
|
||||
system: commodore-c128
|
||||
required: false
|
||||
embedded: false
|
||||
note: "JiffyDOS C128 kernal replacement. Optional, proprietary. C128 core only."
|
||||
source_ref: "retrodep/ui.c:309, libretro/libretro-core.c:2855"
|
||||
|
||||
- name: "vice/JiffyDOS_1541-II.bin"
|
||||
system: commodore-c64
|
||||
required: false
|
||||
embedded: false
|
||||
note: "JiffyDOS 1541-II drive ROM replacement. Optional, proprietary."
|
||||
source_ref: "retrodep/ui.c:283"
|
||||
|
||||
- name: "vice/JiffyDOS_1571_repl310654.bin"
|
||||
system: commodore-c64
|
||||
required: false
|
||||
embedded: false
|
||||
note: "JiffyDOS 1571 drive ROM replacement. Optional, proprietary."
|
||||
source_ref: "retrodep/ui.c:285"
|
||||
|
||||
- name: "vice/JiffyDOS_1581.bin"
|
||||
system: commodore-c64
|
||||
required: false
|
||||
embedded: false
|
||||
note: "JiffyDOS 1581 drive ROM replacement. Optional, proprietary."
|
||||
source_ref: "retrodep/ui.c:287"
|
||||
|
||||
rom_path: "system/vice/"
|
||||
machine_directories:
|
||||
vice_x64: "C64"
|
||||
vice_x64sc: "C64"
|
||||
vice_x64dtv: "C64DTV"
|
||||
vice_x128: "C128"
|
||||
vice_xvic: "VIC20"
|
||||
vice_xplus4: "PLUS4"
|
||||
vice_xpet: "PET"
|
||||
vice_xcbm2: "CBM-II"
|
||||
vice_xcbm5x0: "CBM-II"
|
||||
vice_xscpu64: "SCPU64"
|
||||
80
emulators/vircon32.yml
Normal file
80
emulators/vircon32.yml
Normal file
@@ -0,0 +1,80 @@
|
||||
emulator: Vircon32
|
||||
type: libretro
|
||||
source: "https://github.com/vircon32/vircon32-libretro"
|
||||
cores:
|
||||
- vircon32
|
||||
systems:
|
||||
- vircon32
|
||||
|
||||
notes: |
|
||||
Vircon32 is a libretro core for the Vircon32 fantasy console, a 32-bit
|
||||
virtual game console with fixed hardware specs (60 fps, 640x360, 16
|
||||
sound channels, up to 4 gamepads).
|
||||
|
||||
The Standard BIOS v1.2 is embedded directly into the core binary as a
|
||||
C header (embedded/StandardBios.h), generated from Assets/StandardBios.v32
|
||||
at build time. The core never strictly requires an external BIOS file.
|
||||
|
||||
BIOS loading logic (libretro.cpp:416-429):
|
||||
1. Check if system_dir/Vircon32Bios.v32 exists on disk
|
||||
2. If found, load it via Console.LoadBiosFile() (external override)
|
||||
3. If not found, load the embedded BIOS via LoadEmbeddedBios()
|
||||
|
||||
This runs inside context_reset() (libretro.cpp:473-474), which is called
|
||||
whenever the OpenGL context is (re)created.
|
||||
|
||||
The BIOS file format is a V32 ROM with a specific signature
|
||||
(ROMFileFormat::BiosSignature). It must contain exactly 1 texture and
|
||||
1 sound. The loader validates the signature, file structure, and version
|
||||
compatibility before loading program ROM, video ROM and audio ROM
|
||||
(V32Console.cpp:259-431).
|
||||
|
||||
The external BIOS file allows users to replace the boot animation with
|
||||
a custom one. Game compatibility is not affected by BIOS choice.
|
||||
|
||||
files:
|
||||
- name: "Vircon32Bios.v32"
|
||||
system: vircon32
|
||||
description: "Vircon32 console BIOS (custom override)"
|
||||
required: false
|
||||
size: 1073060
|
||||
md5: "73f04397cbb2dafcf2047b19a856153a"
|
||||
sha1: "67ddbcd018f03ed74b6e013074d92cc5f1f51c80"
|
||||
source_ref: "libretro.cpp:423-426"
|
||||
notes: |
|
||||
Optional external BIOS placed in the system directory root.
|
||||
If present, overrides the embedded Standard BIOS v1.2.
|
||||
The hashes above correspond to the Standard BIOS v1.2 bundled
|
||||
in Assets/StandardBios.v32 of the source repo. Custom BIOSes
|
||||
will have different hashes but must follow the V32 BIOS format.
|
||||
|
||||
platform_details:
|
||||
embedded_bios:
|
||||
version: "Standard BIOS v1.2"
|
||||
source_ref: "libretro.cpp:28, Assets/StandardBios.v32"
|
||||
file_size: 1073060
|
||||
md5: "73f04397cbb2dafcf2047b19a856153a"
|
||||
sha1: "67ddbcd018f03ed74b6e013074d92cc5f1f51c80"
|
||||
notes: |
|
||||
The standard BIOS is compiled into the core binary as
|
||||
embedded_StandardBios[] via a generated header file. It provides
|
||||
the boot animation (Vircon32 logo + startup sound). LoadEmbeddedBios()
|
||||
writes the raw bytes into a stringstream and passes it to
|
||||
Console.LoadBiosData().
|
||||
|
||||
bios_format:
|
||||
source_ref: "VirconDefinitions/FileFormats.hpp, V32Console.cpp:259-431"
|
||||
notes: |
|
||||
A V32 BIOS ROM file must have:
|
||||
- BiosSignature in the header (distinct from CartridgeSignature)
|
||||
- Exactly 1 texture (boot screen graphics)
|
||||
- Exactly 1 sound (boot sound)
|
||||
- Program ROM, Video ROM and Audio ROM in sequential layout
|
||||
The loader validates all of this before accepting the file.
|
||||
|
||||
cartridge_format:
|
||||
extensions: "v32"
|
||||
source_ref: "V32Console.cpp:468-696"
|
||||
notes: |
|
||||
Cartridges use CartridgeSignature with up to 256 textures and
|
||||
1024 sounds. Program ROM can be up to 128M words (512 MB).
|
||||
112
emulators/virtualjaguar.yml
Normal file
112
emulators/virtualjaguar.yml
Normal file
@@ -0,0 +1,112 @@
|
||||
emulator: Virtual Jaguar
|
||||
type: libretro
|
||||
source: "https://github.com/libretro/virtualjaguar-libretro"
|
||||
cores:
|
||||
- virtualjaguar
|
||||
systems:
|
||||
- atari-jaguar
|
||||
|
||||
notes: |
|
||||
Virtual Jaguar embeds all BIOS ROMs directly in the source code as C arrays
|
||||
(bin2c generated). No external BIOS files are loaded at runtime. The core
|
||||
selects between K-series and M-series boot ROMs based on vjs.biosType,
|
||||
then copies 0x20000 bytes to jagMemSpace + 0xE00000 (libretro.c:902-904).
|
||||
|
||||
The "BIOS" core option (virtualjaguar_bios, disabled by default) controls
|
||||
whether the embedded boot ROM is executed at startup. When enabled, the
|
||||
boot ROM entry point is copied to jaguarMainRAM (jaguar.c:644-645).
|
||||
When disabled, jaguarRunAddress is written directly, skipping the boot
|
||||
animation. Either way the embedded ROM data is always present in memory.
|
||||
|
||||
The jagBootPath and CDBootPath fields in VJSettings exist in the struct
|
||||
(settings.h:36-37) but are never populated or used in the libretro port.
|
||||
No call to RETRO_ENVIRONMENT_GET_SYSTEM_DIRECTORY or fopen for BIOS files.
|
||||
|
||||
Jaguar CD emulation: the CD boot ROM (jaguarCDBootROM, 0x40000 bytes) is
|
||||
also embedded but Jaguar CD support is incomplete in this core. The
|
||||
cdrom.c references "CD BIOS" in comments only.
|
||||
|
||||
No external BIOS files are required or loaded by this core.
|
||||
|
||||
files: []
|
||||
|
||||
analysis:
|
||||
embedded_bios:
|
||||
k_series_boot_rom:
|
||||
source_file: src/jagbios.c
|
||||
header: src/jagbios.h
|
||||
symbol: jaguarBootROM
|
||||
size: 131072 # 0x20000, 128 KB
|
||||
description: "Jaguar K-series boot ROM"
|
||||
filedb_crc: "0xFB731AAA"
|
||||
filedb_name: "[BIOS] Atari Jaguar (World)"
|
||||
|
||||
m_series_boot_rom:
|
||||
source_file: src/jagbios2.c
|
||||
header: src/jagbios2.h
|
||||
symbol: jaguarBootROM2
|
||||
size: 131072 # 0x20000, 128 KB
|
||||
description: "Jaguar M-series boot ROM"
|
||||
|
||||
cd_boot_rom:
|
||||
source_file: src/jagcdbios.c
|
||||
header: src/jagcdbios.h
|
||||
symbol: jaguarCDBootROM
|
||||
size: 262144 # 0x40000, 256 KB
|
||||
description: "Jaguar CD boot ROM"
|
||||
filedb_crc: "0x687068D5"
|
||||
filedb_name: "[BIOS] Atari Jaguar CD (World)"
|
||||
|
||||
stubulator_93:
|
||||
source_file: src/jagstub1bios.c
|
||||
header: src/jagstub1bios.h
|
||||
symbol: jaguarDevBootROM1
|
||||
size: 131072 # 0x20000, 128 KB
|
||||
description: "Jaguar Stubulator '93 dev BIOS"
|
||||
filedb_crc: "0xE60277BB"
|
||||
filedb_name: "[BIOS] Atari Jaguar Stubulator '93 (World)"
|
||||
|
||||
stubulator_94:
|
||||
source_file: src/jagstub2bios.c
|
||||
header: src/jagstub2bios.h
|
||||
symbol: jaguarDevBootROM2
|
||||
size: 131072 # 0x20000, 128 KB
|
||||
description: "Jaguar Stubulator '94 dev BIOS"
|
||||
filedb_crc: "0x8D15DBC6"
|
||||
filedb_name: "[BIOS] Atari Jaguar Stubulator '94 (World)"
|
||||
|
||||
dev_cd_boot_rom:
|
||||
source_file: src/jagdevcdbios.c
|
||||
header: src/jagdevcdbios.h
|
||||
symbol: jaguarDevCDBootROM
|
||||
size: 262144 # 0x40000, 256 KB
|
||||
description: "Jaguar Developer CD boot ROM"
|
||||
filedb_crc: "0x55A0669C"
|
||||
filedb_name: "[BIOS] Atari Jaguar Developer CD (World)"
|
||||
|
||||
bios_type_enum:
|
||||
source_ref: "settings.h:46"
|
||||
values:
|
||||
- BT_K_SERIES
|
||||
- BT_M_SERIES
|
||||
- BT_STUBULATOR_1
|
||||
- BT_STUBULATOR_2
|
||||
|
||||
core_option:
|
||||
key: virtualjaguar_bios
|
||||
label: "BIOS"
|
||||
description: "Use the Jaguar BIOS, required for some games."
|
||||
default: disabled
|
||||
source_ref: "libretro_core_options.h:123"
|
||||
|
||||
bios_loading:
|
||||
mechanism: embedded
|
||||
load_address: "0xE00000"
|
||||
load_size: "0x20000"
|
||||
source_ref: "libretro.c:902-904"
|
||||
selection_logic: "biosType == BT_K_SERIES ? jaguarBootROM : jaguarBootROM2"
|
||||
external_loading: false
|
||||
notes: |
|
||||
jagBootPath and CDBootPath struct fields are never set in the libretro
|
||||
port. The standalone Virtual Jaguar GUI uses them but that code path
|
||||
is not compiled into the libretro core.
|
||||
295
emulators/vita3k.yml
Normal file
295
emulators/vita3k.yml
Normal file
@@ -0,0 +1,295 @@
|
||||
# Vita3K emulator firmware profile
|
||||
# Generated from source analysis of https://github.com/Vita3K/Vita3K
|
||||
# Commit analyzed: HEAD as of 2026-03-17
|
||||
|
||||
emulator: Vita3K
|
||||
type: standalone
|
||||
source: "https://github.com/Vita3K/Vita3K"
|
||||
systems: [sony-playstation-vita]
|
||||
|
||||
firmware_file: "PSVUPDAT.PUP"
|
||||
firmware_source: "https://www.playstation.com/en-us/support/hardware/psvita/system-software/"
|
||||
firmware_detection: "pup_decrypt"
|
||||
firmware_install: "decrypts PUP, extracts FAT/exFAT images into os0/, vs0/, sa0/, pd0/"
|
||||
|
||||
validation:
|
||||
method: "pup_decrypt_and_extract"
|
||||
source_ref: "vita3k/packages/src/pup.cpp:260-314"
|
||||
note: >
|
||||
PUP is decrypted using SCE keys (register_keys), then four filesystem images are
|
||||
extracted: os0.img (FAT), pd0.img (exFAT), sa0.img (FAT), vs0.img (FAT).
|
||||
Each image is mounted to its respective partition path.
|
||||
|
||||
firmware_version:
|
||||
path: "PUP_DEC/PUP/version.txt"
|
||||
source_ref: "vita3k/packages/src/pup.cpp:303-309"
|
||||
note: "Read from version.txt inside the decrypted PUP during installation"
|
||||
|
||||
# Firmware partitions extracted from PSVUPDAT.PUP
|
||||
partitions:
|
||||
os0:
|
||||
image: "os0.img"
|
||||
filesystem: "FAT"
|
||||
source_ref: "vita3k/packages/src/pup.cpp:293"
|
||||
note: "Core OS partition. Contains kernel modules and low-level system components."
|
||||
|
||||
vs0:
|
||||
image: "vs0.img"
|
||||
filesystem: "FAT"
|
||||
source_ref: "vita3k/packages/src/pup.cpp:299"
|
||||
note: >
|
||||
Main system partition. Contains firmware modules (sys/external/*.suprx),
|
||||
system apps (app/), LiveArea resources, themes, and system configuration.
|
||||
directories:
|
||||
sys_external:
|
||||
path: "vs0/sys/external/"
|
||||
source_ref: "vita3k/modules/module_parent.cpp:332"
|
||||
note: >
|
||||
Primary firmware module directory. Modules are loaded as .suprx files.
|
||||
RPCS3-style LLE/HLE toggle: Vita3K can load real firmware modules (LLE)
|
||||
or use built-in reimplementations (HLE) per module.
|
||||
|
||||
app:
|
||||
path: "vs0/app/"
|
||||
note: "System applications (settings, browser, store, etc)"
|
||||
|
||||
data_internal:
|
||||
path: "vs0/data/internal/"
|
||||
note: "Internal system data: themes, LiveArea defaults"
|
||||
files:
|
||||
- {path: "theme/", purpose: "Default system themes"}
|
||||
- {path: "livearea/default/sce_sys/icon0.png", purpose: "Default app icon"}
|
||||
|
||||
sa0:
|
||||
image: "sa0.img"
|
||||
filesystem: "FAT"
|
||||
source_ref: "vita3k/packages/src/pup.cpp:297"
|
||||
note: "System assets partition. Contains firmware fonts (PVF files)."
|
||||
directories:
|
||||
fonts:
|
||||
path: "sa0/data/font/pvf/"
|
||||
source_ref: "vita3k/gui/src/gui.cpp:228-267"
|
||||
note: >
|
||||
PS Vita system fonts in PVF format (PlayStation Vita Font). Used for
|
||||
system UI, LiveArea, and games that use the sceFt2/libpvf font API.
|
||||
Without these, Vita3K falls back to bundled open-source fonts.
|
||||
files:
|
||||
- {name: "ltn0.pvf", type: "Latin Regular", required: true, note: "Primary UI font, checked at startup"}
|
||||
- {name: "jpn0.pvf", type: "Japanese", required: false}
|
||||
- {name: "kr0.pvf", type: "Korean", required: false}
|
||||
- {name: "cn0.pvf", type: "Chinese Simplified", required: false}
|
||||
|
||||
pd0:
|
||||
image: "pd0.img"
|
||||
filesystem: "exFAT"
|
||||
source_ref: "vita3k/packages/src/pup.cpp:295"
|
||||
note: "System data partition. Contains system BGM and other data."
|
||||
files:
|
||||
- {path: "data/systembgm/initialsetup.at9", purpose: "Initial setup background music"}
|
||||
|
||||
# Firmware modules (vs0/sys/external/*.suprx)
|
||||
firmware_modules:
|
||||
# Auto-LLE modules (loaded from firmware by default)
|
||||
auto_lle:
|
||||
source_ref: "vita3k/module/src/load_module.cpp:142-161"
|
||||
note: "These modules are automatically loaded via LLE when firmware is present"
|
||||
modules:
|
||||
- {id: "SCE_SYSMODULE_HTTP", libs: ["libhttp"]}
|
||||
- {id: "SCE_SYSMODULE_SSL", libs: ["libssl"]}
|
||||
- {id: "SCE_SYSMODULE_HTTPS", libs: ["libhttp", "libssl"]}
|
||||
- {id: "SCE_SYSMODULE_ULT", libs: ["libult"]}
|
||||
- {id: "SCE_SYSMODULE_SAS", libs: ["libsas"]}
|
||||
- {id: "SCE_SYSMODULE_PGF", libs: ["libpgf"]}
|
||||
- {id: "SCE_SYSMODULE_FIOS2", libs: ["libfios2"]}
|
||||
- {id: "SCE_SYSMODULE_SYSTEM_GESTURE", libs: ["libsystemgesture"]}
|
||||
- {id: "SCE_SYSMODULE_XML", libs: ["libSceXml"]}
|
||||
- {id: "SCE_SYSMODULE_SQLITE", libs: ["libSceSqlite"]}
|
||||
- {id: "SCE_SYSMODULE_RUDP", libs: ["librudp"]}
|
||||
- {id: "SCE_SYSMODULE_NET_ADHOC_MATCHING", libs: ["adhoc_matching"]}
|
||||
- {id: "SCE_SYSMODULE_MP4", libs: ["libscemp4"]}
|
||||
- {id: "SCE_SYSMODULE_ATRAC", libs: ["libatrac"]}
|
||||
- {id: "SCE_SYSMODULE_FACE", libs: ["libface"]}
|
||||
- {id: "SCE_SYSMODULE_SMART", libs: ["libsmart"]}
|
||||
- {id: "SCE_SYSMODULE_AVPLAYER", libs: ["libsceavplayer", "libscemp4"]}
|
||||
- {id: "SCE_SYSMODULE_JSON", libs: ["libSceJson"]}
|
||||
|
||||
# Always-LLE preload modules
|
||||
preload:
|
||||
source_ref: "vita3k/interface.cpp:497-504, vita3k/module/src/load_module.cpp:187"
|
||||
note: "These modules are always loaded from firmware (LLE), never HLE"
|
||||
modules:
|
||||
- {name: "libc", note: "C standard library"}
|
||||
- {name: "libSceFt2", note: "FreeType2 font engine"}
|
||||
- {name: "libpvf", note: "PlayStation Vita Font library"}
|
||||
- {name: "libcdlg", note: "Common dialog library"}
|
||||
|
||||
# All registered sysmodule mappings
|
||||
sysmodule_map:
|
||||
source_ref: "vita3k/module/src/load_module.cpp:25-109"
|
||||
note: "Complete mapping of SCE_SYSMODULE IDs to firmware library filenames"
|
||||
modules:
|
||||
# Networking
|
||||
- {id: "SCE_SYSMODULE_NET", libs: ["libnet", "libnetctl"]}
|
||||
- {id: "SCE_SYSMODULE_HTTP", libs: ["libhttp"]}
|
||||
- {id: "SCE_SYSMODULE_SSL", libs: ["libssl"]}
|
||||
- {id: "SCE_SYSMODULE_HTTPS", libs: ["libhttp", "libssl"]}
|
||||
# Performance / Threading
|
||||
- {id: "SCE_SYSMODULE_PERF", libs: ["libperf"]}
|
||||
- {id: "SCE_SYSMODULE_FIBER", libs: ["libfiber"]}
|
||||
- {id: "SCE_SYSMODULE_ULT", libs: ["libult"]}
|
||||
# Debug
|
||||
- {id: "SCE_SYSMODULE_DBG", libs: ["librazorcapture_es4", "librazorhud_es4"]}
|
||||
- {id: "SCE_SYSMODULE_RAZOR_CAPTURE", libs: ["librazorcapture_es4"]}
|
||||
- {id: "SCE_SYSMODULE_RAZOR_HUD", libs: ["librazorhud_es4"]}
|
||||
# Audio
|
||||
- {id: "SCE_SYSMODULE_NGS", libs: ["libngs"]}
|
||||
- {id: "SCE_SYSMODULE_SULPHA", libs: ["libsulpha"]}
|
||||
- {id: "SCE_SYSMODULE_SAS", libs: ["libsas"]}
|
||||
- {id: "SCE_SYSMODULE_AUDIOCODEC", libs: ["libaudiocodec"]}
|
||||
- {id: "SCE_SYSMODULE_AACENC", libs: ["libnaac"]}
|
||||
- {id: "SCE_SYSMODULE_ATRAC", libs: ["libatrac"]}
|
||||
- {id: "SCE_SYSMODULE_VOICE", libs: ["libvoice"]}
|
||||
- {id: "SCE_SYSMODULE_VOICEQOS", libs: ["libvoiceqos"]}
|
||||
# Font / Text
|
||||
- {id: "SCE_SYSMODULE_PGF", libs: ["libpgf"]}
|
||||
- {id: "SCE_SYSMODULE_IME", libs: ["libime"]}
|
||||
- {id: "SCE_SYSMODULE_HANDWRITING", libs: ["libhandwriting"]}
|
||||
# System
|
||||
- {id: "SCE_SYSMODULE_APPUTIL", libs: ["apputil"]}
|
||||
- {id: "SCE_SYSMODULE_FIOS2", libs: ["libfios2"]}
|
||||
- {id: "SCE_SYSMODULE_SYSTEM_GESTURE", libs: ["libsystemgesture"]}
|
||||
- {id: "SCE_SYSMODULE_LOCATION", libs: ["liblocation"]}
|
||||
- {id: "SCE_SYSMODULE_CLIPBOARD", libs: ["libclipboard"]}
|
||||
- {id: "SCE_SYSMODULE_TRIGGER_UTIL", libs: ["trigger_util"]}
|
||||
- {id: "SCE_SYSMODULE_LIVEAREA", libs: ["livearea_util"]}
|
||||
- {id: "SCE_SYSMODULE_BG_APP_UTIL", libs: ["bgapputil"]}
|
||||
- {id: "SCE_SYSMODULE_INCOMING_DIALOG", libs: ["incoming_dialog"]}
|
||||
- {id: "SCE_SYSMODULE_IPMI", libs: ["libipmi_nongame"]}
|
||||
- {id: "SCE_SYSMODULE_NOTIFICATION_UTIL", libs: ["notification_util"]}
|
||||
- {id: "SCE_SYSMODULE_SHUTTER_SOUND", libs: ["libSceShutterSound"]}
|
||||
- {id: "SCE_SYSMODULE_SCREEN_SHOT", libs: ["libSceScreenShot"]}
|
||||
# PlayStation Network
|
||||
- {id: "SCE_SYSMODULE_NP_BASIC", libs: ["np_basic"]}
|
||||
- {id: "SCE_SYSMODULE_NP", libs: ["np_common", "np_manager", "np_basic"]}
|
||||
- {id: "SCE_SYSMODULE_NP_COMMERCE2", libs: ["np_commerce2"]}
|
||||
- {id: "SCE_SYSMODULE_NP_UTILITY", libs: ["np_utility"]}
|
||||
- {id: "SCE_SYSMODULE_NP_MATCHING2", libs: ["np_matching2"]}
|
||||
- {id: "SCE_SYSMODULE_NP_SCORE_RANKING", libs: ["np_ranking"]}
|
||||
- {id: "SCE_SYSMODULE_NP_ACTIVITY", libs: ["np_activity_sdk"]}
|
||||
- {id: "SCE_SYSMODULE_NP_TROPHY", libs: ["np_trophy"]}
|
||||
- {id: "SCE_SYSMODULE_NP_MESSAGE", libs: ["np_message_padding", "np_message"]}
|
||||
- {id: "SCE_SYSMODULE_NP_PARTY", libs: ["np_party"]}
|
||||
- {id: "SCE_SYSMODULE_NP_TUS", libs: ["np_tus"]}
|
||||
- {id: "SCE_SYSMODULE_NP_SNS_FACEBOOK", libs: ["np_sns_facebook"]}
|
||||
- {id: "SCE_SYSMODULE_NP_SIGNALING", libs: ["np_signaling"]}
|
||||
- {id: "SCE_SYSMODULE_NP_WEBAPI", libs: ["np_webapi"]}
|
||||
# Media
|
||||
- {id: "SCE_SYSMODULE_MP4", libs: ["libscemp4"]}
|
||||
- {id: "SCE_SYSMODULE_AVPLAYER", libs: ["libsceavplayer", "libscemp4"]}
|
||||
- {id: "SCE_SYSMODULE_AVCDEC", libs: ["avcdec_for_player"]}
|
||||
- {id: "SCE_SYSMODULE_MP4_RECORDER", libs: ["libSceMp4Rec"]}
|
||||
- {id: "SCE_SYSMODULE_PHOTO_EXPORT", libs: ["libScePhotoExport"]}
|
||||
- {id: "SCE_SYSMODULE_VIDEO_EXPORT", libs: ["libSceVideoExport"]}
|
||||
- {id: "SCE_SYSMODULE_MUSIC_EXPORT", libs: ["libSceMusicExport"]}
|
||||
# Other
|
||||
- {id: "SCE_SYSMODULE_XML", libs: ["libSceXml"]}
|
||||
- {id: "SCE_SYSMODULE_JSON", libs: ["libSceJson"]}
|
||||
- {id: "SCE_SYSMODULE_SQLITE", libs: ["libSceSqlite"]}
|
||||
- {id: "SCE_SYSMODULE_RUDP", libs: ["librudp"]}
|
||||
- {id: "SCE_SYSMODULE_NET_ADHOC_MATCHING", libs: ["adhoc_matching"]}
|
||||
- {id: "SCE_SYSMODULE_PSPNET_ADHOC", libs: ["pspnet_adhoc"]}
|
||||
- {id: "SCE_SYSMODULE_FACE", libs: ["libface"]}
|
||||
- {id: "SCE_SYSMODULE_SMART", libs: ["libsmart"]}
|
||||
- {id: "SCE_SYSMODULE_MARLIN", libs: ["libmln"]}
|
||||
- {id: "SCE_SYSMODULE_MARLIN_DOWNLOADER", libs: ["libmlndownloader"]}
|
||||
- {id: "SCE_SYSMODULE_MARLIN_APP_LIB", libs: ["libmlnapplib"]}
|
||||
- {id: "SCE_SYSMODULE_TELEPHONY_UTIL", libs: ["libSceTelephonyUtil"]}
|
||||
- {id: "SCE_SYSMODULE_DTCP_IP", libs: ["libSceDtcpIp"]}
|
||||
- {id: "SCE_SYSMODULE_VIDEO_SEARCH_EMPR", libs: ["libSceVideoSearchEmpr"]}
|
||||
- {id: "SCE_SYSMODULE_BEISOBMF", libs: ["libSceBeisobmf"]}
|
||||
- {id: "SCE_SYSMODULE_BEMP2SYS", libs: ["libSceBemp2sys"]}
|
||||
- {id: "SCE_SYSMODULE_NEAR_UTIL", libs: ["libScenNearUtil"]}
|
||||
- {id: "SCE_SYSMODULE_NEAR_DIALOG_UTIL", libs: ["libSceNearDialogUtil"]}
|
||||
- {id: "SCE_SYSMODULE_LOCATION_EXTENSION", libs: ["liblocation_extension"]}
|
||||
- {id: "SCE_SYSMODULE_MAIL_API", libs: ["mail_api_for_local_libc"]}
|
||||
- {id: "SCE_SYSMODULE_TELEPORT_CLIENT", libs: ["libSceTeleportClient"]}
|
||||
- {id: "SCE_SYSMODULE_TELEPORT_SERVER", libs: ["libSceTeleportServer"]}
|
||||
- {id: "SCE_SYSMODULE_APPUTIL_EXT", libs: ["apputil_ext"]}
|
||||
- {id: "SCE_SYSMODULE_CODECENGINE_PERF", libs: ["libcodecengine_perf"]}
|
||||
|
||||
# Internal sysmodule mappings
|
||||
internal_modules:
|
||||
source_ref: "vita3k/module/src/load_module.cpp:114-136"
|
||||
modules:
|
||||
- {id: "SCE_SYSMODULE_INTERNAL_JPEG_ENC_ARM", libs: ["libscejpegencarm"]}
|
||||
- {id: "SCE_SYSMODULE_INTERNAL_AUDIOCODEC", libs: ["audiocodec"]}
|
||||
- {id: "SCE_SYSMODULE_INTERNAL_BXCE", libs: ["bXCe"]}
|
||||
- {id: "SCE_SYSMODULE_INTERNAL_INI_FILE_PROCESSOR", libs: ["ini_file_processor"]}
|
||||
- {id: "SCE_SYSMODULE_INTERNAL_NP_ACTIVITY_NET", libs: ["np_activity"]}
|
||||
- {id: "SCE_SYSMODULE_INTERNAL_PAF", libs: ["libpaf"]}
|
||||
- {id: "SCE_SYSMODULE_INTERNAL_SQLITE_VSH", libs: ["sqlite"]}
|
||||
- {id: "SCE_SYSMODULE_INTERNAL_DBUTIL", libs: ["dbutil"]}
|
||||
- {id: "SCE_SYSMODULE_INTERNAL_ACTIVITY_DB", libs: ["activity_db"]}
|
||||
- {id: "SCE_SYSMODULE_INTERNAL_COMMON_GUI_DIALOG", libs: ["common_gui_dialog"]}
|
||||
- {id: "SCE_SYSMODULE_INTERNAL_MSG_DIALOG", libs: ["libcdlg_msg"]}
|
||||
- {id: "SCE_SYSMODULE_INTERNAL_SAVEDATA_DIALOG", libs: ["libcdlg_savedata"]}
|
||||
- {id: "SCE_SYSMODULE_INTERNAL_IME_DIALOG", libs: ["libcdlg_ime"]}
|
||||
- {id: "SCE_SYSMODULE_INTERNAL_COMMON_DIALOG_MAIN", libs: ["libcdlg_main"]}
|
||||
- {id: "SCE_SYSMODULE_INTERNAL_DB_RECOVERY_UTILITY", libs: ["dbrecovery_utility"]}
|
||||
- {id: "SCE_SYSMODULE_INTERNAL_DRM_PSM_KDC", libs: ["psmkdc"]}
|
||||
- {id: "SCE_SYSMODULE_INTERNAL_LOCATION_INTERNAL", libs: ["liblocation_internal"]}
|
||||
|
||||
# IO device layout (full Vita filesystem)
|
||||
io_devices:
|
||||
source_ref: "vita3k/io/include/io/VitaIoDevice.h:22-50"
|
||||
firmware_partitions:
|
||||
- {device: "os0", purpose: "Core OS kernel modules"}
|
||||
- {device: "vs0", purpose: "System firmware modules and apps"}
|
||||
- {device: "sa0", purpose: "System assets (fonts)"}
|
||||
- {device: "pd0", purpose: "System data (BGM, resources)"}
|
||||
user_partitions:
|
||||
- {device: "ux0", purpose: "Main storage (memory card)"}
|
||||
- {device: "ur0", purpose: "Internal user storage"}
|
||||
- {device: "uma0", purpose: "USB mass storage (PSTV)"}
|
||||
- {device: "imc0", purpose: "Internal memory card (Slim)"}
|
||||
- {device: "grw0", purpose: "Game card (writable area)"}
|
||||
- {device: "gro0", purpose: "Game card (read-only area)"}
|
||||
app_partitions:
|
||||
- {device: "app0", purpose: "Current running application"}
|
||||
- {device: "addcont0", purpose: "Additional content (DLC)"}
|
||||
- {device: "savedata0", purpose: "Save data (slot 0)"}
|
||||
- {device: "savedata1", purpose: "Save data (slot 1)"}
|
||||
|
||||
# Fallback fonts when firmware is not installed
|
||||
fallback_fonts:
|
||||
source_ref: "vita3k/gui/src/gui.cpp:276-318"
|
||||
path: "data/fonts/"
|
||||
files:
|
||||
- {name: "mplus-1mn-bold.ttf", purpose: "Primary fallback monospaced font"}
|
||||
- {name: "SourceHanSansSC-Bold-Min.ttf", purpose: "Chinese fallback font"}
|
||||
- {name: "neodgm.ttf", purpose: "Korean fallback font"}
|
||||
note: "Open-source fonts bundled with Vita3K, used when firmware fonts (sa0) are not installed"
|
||||
|
||||
notes: |
|
||||
Vita3K requires the official PS Vita firmware (PSVUPDAT.PUP) from Sony for full
|
||||
compatibility. The firmware is decrypted using SCE keys and extracted into four
|
||||
partition images: os0 (kernel), vs0 (system), sa0 (assets), pd0 (data).
|
||||
|
||||
The most important firmware components are:
|
||||
1. vs0/sys/external/*.suprx - Firmware modules loaded by games
|
||||
2. sa0/data/font/pvf/*.pvf - System fonts (ltn0.pvf is checked at startup)
|
||||
3. vs0/data/internal/ - LiveArea resources and default themes
|
||||
|
||||
Vita3K uses a hybrid LLE/HLE approach:
|
||||
- Some modules (libc, libSceFt2, libpvf, libcdlg) are always loaded from firmware (LLE)
|
||||
- Others can be toggled between LLE and HLE per module via settings
|
||||
- Without firmware, many games will fail to load required modules
|
||||
|
||||
The module loading path is: first check app0:sce_module/{name}.suprx (game-bundled),
|
||||
then fall back to vs0:sys/external/{name}.suprx (firmware). This allows games to
|
||||
ship their own module versions.
|
||||
|
||||
CLI firmware install: vita3k --firmware /path/to/PSVUPDAT.PUP
|
||||
GUI: File > Install Firmware
|
||||
|
||||
Vita3K does not have a libretro core. It is standalone only.
|
||||
80
emulators/x1.yml
Normal file
80
emulators/x1.yml
Normal file
@@ -0,0 +1,80 @@
|
||||
emulator: "X Millennium"
|
||||
type: libretro
|
||||
source: "https://github.com/libretro/xmil-libretro"
|
||||
cores:
|
||||
- x1
|
||||
systems:
|
||||
- sharp-x1
|
||||
|
||||
# X Millennium (XMIL) is a Sharp X1 series emulator by yui. The libretro port
|
||||
# supports X1, X1 Turbo, and X1 TurboZ models via the "X1_ROMTYPE" core option
|
||||
# (values: X1, TURBO, TURBOZ; default: X1 = ROM_TYPE 1).
|
||||
#
|
||||
# All system files go under: <system_dir>/xmil/
|
||||
# (libretro.c:597 builds the path as "<system_dir>/xmil")
|
||||
#
|
||||
# IPL ROM loading (memio.c:88-116):
|
||||
# ROM_TYPE 0: uses built-in default IPL (575 bytes, basic boot stub from defipl.res)
|
||||
# ROM_TYPE 1 (X1): loads xmil/IPLROM.X1 (32 KB)
|
||||
# ROM_TYPE 2 (Turbo): loads xmil/IPLROM.X1T (32 KB)
|
||||
# ROM_TYPE 3 (TurboZ): loads xmil/IPLROM.X1T (32 KB, same file as Turbo)
|
||||
# If the file is missing, the core falls back to the built-in default IPL.
|
||||
#
|
||||
# Font loading (font.c:90-127, fontx1.c:70-123):
|
||||
# font_load() calls x1fontread() which looks for font files using fontopen().
|
||||
# fontopen() resolves paths relative to the working directory (file_getcd()),
|
||||
# which in libretro context is the xmil subdirectory.
|
||||
# Built-in defaults (defrom_ank, defrom_txt) are used for basic ASCII rendering.
|
||||
# External font ROMs add full Japanese character support.
|
||||
#
|
||||
# The .info file only lists IPLROM.X1 and IPLROM.X1T as required BIOS files.
|
||||
# Font ROMs are optional -- the core renders basic text without them but Japanese
|
||||
# kanji display requires the external font files.
|
||||
|
||||
notes: |
|
||||
Place all files in: <system_dir>/xmil/
|
||||
The core selects between IPLROM.X1 and IPLROM.X1T based on the "X1_ROMTYPE"
|
||||
core option. A built-in fallback IPL exists but lacks full boot functionality.
|
||||
Font files are optional; without them, kanji/JIS characters won't render.
|
||||
|
||||
files:
|
||||
# -- IPL ROMs --
|
||||
|
||||
- name: IPLROM.X1
|
||||
path: xmil/IPLROM.X1
|
||||
size: 32768
|
||||
md5: eeeea1cd29c6e0e8b094790ae969bfa7
|
||||
required: true
|
||||
note: "X1 IPL ROM (32 KB). Loaded when ROM_TYPE=1 (X1 model). Listed in .info."
|
||||
source_ref: "io/memio.c:82,96-103"
|
||||
|
||||
- name: IPLROM.X1T
|
||||
path: xmil/IPLROM.X1T
|
||||
size: 32768
|
||||
md5: 851e4a5936f17d13f8c39a980cf00d77
|
||||
required: true
|
||||
note: "X1 Turbo/TurboZ IPL ROM (32 KB). Loaded when ROM_TYPE=2 or 3. Listed in .info."
|
||||
source_ref: "io/memio.c:83,97-99"
|
||||
|
||||
# -- Font ROMs (optional, for Japanese text rendering) --
|
||||
|
||||
- name: FNT0808.X1
|
||||
path: xmil/FNT0808.X1
|
||||
size: 2048
|
||||
required: false
|
||||
note: "8x8 ANK font ROM (2 KB). Provides half-width ASCII/kana characters."
|
||||
source_ref: "font/fontdata.c:6, font/fontx1.c:79-87"
|
||||
|
||||
- name: FNT0816.X1
|
||||
path: xmil/FNT0816.X1
|
||||
size: 4096
|
||||
required: false
|
||||
note: "8x16 ANK font ROM (4 KB). Provides taller half-width characters for text mode."
|
||||
source_ref: "font/fontdata.c:7, font/fontx1.c:89-103"
|
||||
|
||||
- name: FNT1616.X1
|
||||
path: xmil/FNT1616.X1
|
||||
size: 306176
|
||||
required: false
|
||||
note: "16x16 Kanji font ROM (~299 KB). Full JIS kanji character set for Japanese text."
|
||||
source_ref: "font/fontdata.c:8, font/fontx1.c:105-120"
|
||||
75
emulators/xemu.yml
Normal file
75
emulators/xemu.yml
Normal file
@@ -0,0 +1,75 @@
|
||||
emulator: Xemu
|
||||
type: standalone
|
||||
source: "https://github.com/xemu-project/xemu"
|
||||
systems: [microsoft-xbox]
|
||||
|
||||
notes: |
|
||||
Xemu is a free, open-source Xbox emulator based on QEMU.
|
||||
Three firmware files are required for operation: MCPX boot ROM,
|
||||
flash ROM (BIOS), and EEPROM image. A pre-built HDD image is
|
||||
also needed. The EEPROM can be auto-generated by xemu if not
|
||||
provided. Config stored in xemu.toml under sys.files section.
|
||||
|
||||
files:
|
||||
- name: "mcpx_1.0.bin"
|
||||
description: "MCPX HLE boot ROM (v1.0)"
|
||||
required: true
|
||||
size: 512
|
||||
source_ref: "hw/xbox/xbox.c:151 (bootrom_size != 512 -> error)"
|
||||
config_key: "sys.files.bootrom_path"
|
||||
notes: |
|
||||
Overlaid on the last 512 bytes of the flash ROM region at boot.
|
||||
Mapped to 0xFFFFFE00-0xFFFFFFFF. Disabled after early init
|
||||
via LPC config register write (hw/xbox/xbox_pci.c:362).
|
||||
Machine property: -machine xbox,bootrom=<path>
|
||||
|
||||
- name: "Complex_4627.bin"
|
||||
description: "Xbox flash ROM / BIOS (256 KB, kernel 4627)"
|
||||
required: true
|
||||
size_options: [262144, 524288, 1048576]
|
||||
size_note: "Must be a multiple of 64 KB. Default 256 KB."
|
||||
source_ref: "hw/xbox/xbox.c:70-81 (bios_name, bios_size validation)"
|
||||
config_key: "sys.files.flashrom_path"
|
||||
notes: |
|
||||
Loaded as -bios argument (system/vl.c:3052-3053).
|
||||
Mapped to 0xFF000000-0xFFFFFFFF with mirroring.
|
||||
Common variants: Complex_4627 (1.0), Complex_4034 (debug),
|
||||
Complex_4817 (1.1). Any valid Xbox BIOS dump works.
|
||||
|
||||
- name: "eeprom.bin"
|
||||
description: "Xbox EEPROM dump (256 bytes)"
|
||||
required: false
|
||||
size: 256
|
||||
source_ref: "system/vl.c:2939 (size != 256 -> error)"
|
||||
config_key: "sys.files.eeprom_path"
|
||||
notes: |
|
||||
Loaded via smbus-storage device (hw/xbox/smbus_storage.c:157).
|
||||
Auto-generated as XBOX_EEPROM_VERSION_R1 if missing
|
||||
(system/vl.c:2918-2919). Default path: <config_dir>/eeprom.bin.
|
||||
Contains serial, MAC, HDD key, region, video standard.
|
||||
Structure defined in hw/xbox/eeprom_generation.h.
|
||||
|
||||
- name: "xbox_hdd.qcow2"
|
||||
description: "Xbox HDD image (8 GB, qcow2 format)"
|
||||
required: true
|
||||
source_ref: "system/vl.c:3060-3073 (hdd_path loading)"
|
||||
config_key: "sys.files.hdd_path"
|
||||
notes: |
|
||||
Attached as IDE drive index=0 with locked=on.
|
||||
Must contain Xbox partitions (C, E, X, Y, Z).
|
||||
Pre-built images available from xemu project.
|
||||
Not a BIOS file - excluded from retrobios packs.
|
||||
|
||||
machine_properties:
|
||||
bootrom: "MCPX boot ROM path (string)"
|
||||
avpack: "Video connector type: composite, scart, svideo, vga, rfu, hdtv, none"
|
||||
short-animation: "Skip Xbox boot animation (bool)"
|
||||
smc-version: "SMC version string, 3 chars, default P01"
|
||||
video-encoder: "Video encoder chip: conexant (default), focus, xcalibur"
|
||||
source_ref: "hw/xbox/xbox.c:446-497"
|
||||
|
||||
memory_layout:
|
||||
ram: "64 MB or 128 MB (configurable via sys.mem_limit)"
|
||||
flash_rom: "0xFF000000-0xFFFFFFFF (mirrored per bios_size)"
|
||||
mcpx_overlay: "Last bios_size bytes, overlays flash ROM at reset"
|
||||
source_ref: "hw/xbox/xbox.c:64-173"
|
||||
@@ -15,6 +15,7 @@ platforms:
|
||||
source_format: clrmamepro_dat
|
||||
hash_type: sha1
|
||||
schedule: weekly
|
||||
emulators: [pcsx_rearmed, beetle_psx, genesis_plus_gx, flycast, melonds, mgba, snes9x, mupen64plus, beetle_saturn, dolphin]
|
||||
|
||||
batocera:
|
||||
config: batocera.yml
|
||||
@@ -52,6 +53,7 @@ platforms:
|
||||
source_format: bash_script+csv
|
||||
hash_type: md5
|
||||
schedule: weekly
|
||||
emulators: [duckstation, pcsx2, dolphin, rpcs3, ppsspp, cemu, xemu, vita3k, citra, melonds]
|
||||
# dragoonDorise/EmuDeck = official repo (creator's account, 3.4k stars)
|
||||
# EmuDeck/emudeck.github.io = official wiki (org account)
|
||||
|
||||
|
||||
35
schemas/emulator.schema.json
Normal file
35
schemas/emulator.schema.json
Normal file
@@ -0,0 +1,35 @@
|
||||
{
|
||||
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
||||
"title": "Emulator BIOS Profile",
|
||||
"type": "object",
|
||||
"required": ["emulator", "source", "systems", "files"],
|
||||
"properties": {
|
||||
"emulator": { "type": "string" },
|
||||
"type": {
|
||||
"type": "string",
|
||||
"enum": ["standalone", "libretro", "standalone + libretro"]
|
||||
},
|
||||
"source": { "type": "string", "format": "uri" },
|
||||
"systems": {
|
||||
"type": "array",
|
||||
"items": { "type": "string" }
|
||||
},
|
||||
"files": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"type": "object",
|
||||
"required": ["name"],
|
||||
"properties": {
|
||||
"name": { "type": "string" },
|
||||
"region": { "type": "string" },
|
||||
"required": { "type": "boolean", "default": false },
|
||||
"md5": { "type": "string", "pattern": "^[a-fA-F0-9]{32}$" },
|
||||
"sha1": { "type": "string", "pattern": "^[a-f0-9]{40}$" },
|
||||
"size": { "type": "integer" },
|
||||
"source_ref": { "type": "string" },
|
||||
"note": { "type": "string" }
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user