mirror of
https://github.com/Abdess/retroarch_system.git
synced 2026-04-13 12:22:33 -05:00
Compare commits
21 Commits
v2026.03.1
...
58f3006d20
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
58f3006d20 | ||
|
|
d929424988 | ||
|
|
62262db6ac | ||
|
|
b43d71e113 | ||
|
|
a5553def94 | ||
|
|
31501211de | ||
|
|
6a778a09a3 | ||
|
|
ebc8e4413f | ||
|
|
a77477cbe8 | ||
|
|
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",
|
||||
|
||||
18
emulators/00_example.yml
Normal file
18
emulators/00_example.yml
Normal file
@@ -0,0 +1,18 @@
|
||||
emulator: "00_example"
|
||||
type: test
|
||||
source: "https://github.com/libretro/libretro-samples"
|
||||
profiled_date: "2026-03-18"
|
||||
core_version: "1.0"
|
||||
display_name: "Example Core"
|
||||
cores:
|
||||
- 00_example
|
||||
systems: []
|
||||
|
||||
notes: |
|
||||
Test/example core from libretro-samples. Minimal "hello world" libretro
|
||||
implementation demonstrating the core API contract (retro_init, retro_run,
|
||||
retro_load_game, etc.). Renders a simple color pattern to the framebuffer.
|
||||
|
||||
No system files, BIOS, or firmware required. Not an emulator.
|
||||
|
||||
files: []
|
||||
13
emulators/2048.yml
Normal file
13
emulators/2048.yml
Normal file
@@ -0,0 +1,13 @@
|
||||
emulator: "2048"
|
||||
type: game
|
||||
source: "https://github.com/libretro/libretro-2048"
|
||||
profiled_date: "2026-03-18"
|
||||
core_version: "1.0"
|
||||
display_name: "2048"
|
||||
cores: [2048]
|
||||
systems: []
|
||||
files: []
|
||||
notes: >
|
||||
Libretro port of the 2048 sliding puzzle game by Gabriele Cirulli.
|
||||
Self-contained core with all assets compiled into the binary.
|
||||
No content file, BIOS, or system directory files required.
|
||||
14
emulators/3dengine.yml
Normal file
14
emulators/3dengine.yml
Normal file
@@ -0,0 +1,14 @@
|
||||
emulator: 3DEngine
|
||||
type: utility
|
||||
source: "https://github.com/libretro/libretro-3dengine"
|
||||
profiled_date: "2026-03-18"
|
||||
core_version: "v1"
|
||||
display_name: "Test Core - 3D Engine"
|
||||
cores: [3dengine]
|
||||
systems: []
|
||||
files: []
|
||||
notes: >
|
||||
Tech demo rendering a 3D scene using software rasterization.
|
||||
Demonstrates libretro hardware-accelerated rendering capabilities.
|
||||
Self-contained core with all geometry and textures built in.
|
||||
No content file, BIOS, or system directory files required.
|
||||
52
emulators/81.yml
Normal file
52
emulators/81.yml
Normal file
@@ -0,0 +1,52 @@
|
||||
emulator: EightyOne
|
||||
type: libretro
|
||||
source: "https://github.com/libretro/81-libretro"
|
||||
profiled_date: "2026-03-18"
|
||||
core_version: "1.0a"
|
||||
display_name: "Sinclair - ZX 81 (EightyOne)"
|
||||
cores:
|
||||
- 81
|
||||
systems:
|
||||
- sinclair-zx81
|
||||
|
||||
notes: |
|
||||
EightyOne is a Sinclair ZX81 emulator ported to libretro. Also supports
|
||||
ZX80, Jupiter ACE, TS1500, Lambda, R470, TK85, and ZX97LE machines, but
|
||||
the libretro port hardcodes MACHINEZX81 in retro_load_game (libretro.cpp:393).
|
||||
|
||||
ROM loading is in snap.c:487-512. The memory_load() function matches the
|
||||
requested ROM filename against a compiled-in table and copies from embedded
|
||||
byte arrays generated by xxd -i at build time (Makefile.libretro:519-522).
|
||||
Only two ROMs are embedded: zx81.rom (the ZX81 8K BASIC ROM) and dkchr.rom
|
||||
(dK'tronics character ROM). Any other ROM name logs an error and returns 0.
|
||||
|
||||
The core never calls RETRO_ENVIRONMENT_GET_SYSTEM_DIRECTORY, never opens
|
||||
files from the filesystem for ROM data, and need_fullpath is set to false
|
||||
(libretro.cpp:308). All ROM data is baked into the compiled .so/.dll.
|
||||
|
||||
No external BIOS or firmware files are needed.
|
||||
|
||||
files: []
|
||||
|
||||
analysis:
|
||||
embedded_roms:
|
||||
zx81_rom:
|
||||
variable: bin_ROM_zx81_rom
|
||||
source_file: "bin/ROM/zx81.rom"
|
||||
build_step: "xxd -i -> C array"
|
||||
source_ref: "snap.c:489-498"
|
||||
dkchr_rom:
|
||||
variable: bin_ROM_dkchr_rom
|
||||
source_file: "bin/ROM/dkchr.rom"
|
||||
build_step: "xxd -i -> C array"
|
||||
source_ref: "snap.c:499-508"
|
||||
machine_roms:
|
||||
notes: |
|
||||
eo.c sets CurRom based on machine type. The libretro port forces
|
||||
MACHINEZX81 (eo.c:39-41), so CurRom is always zx81.ROM81 which
|
||||
defaults to "zx81.rom". Other machine ROMs (zx80, ace, ts1500,
|
||||
lambda, zx97le, ringo470, tk85) are referenced but only zx81.rom
|
||||
and dkchr.rom are embedded. Selecting other machines would log
|
||||
"ROM not found" and load nothing.
|
||||
filesystem_access: false
|
||||
system_directory_used: false
|
||||
50
emulators/a5200.yml
Normal file
50
emulators/a5200.yml
Normal file
@@ -0,0 +1,50 @@
|
||||
emulator: a5200
|
||||
type: libretro
|
||||
source: "https://github.com/libretro/a5200"
|
||||
profiled_date: "2026-03-18"
|
||||
core_version: "2.0.2"
|
||||
display_name: "Atari - 5200 (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.
|
||||
19
emulators/advanced_tests.yml
Normal file
19
emulators/advanced_tests.yml
Normal file
@@ -0,0 +1,19 @@
|
||||
emulator: advanced_tests
|
||||
type: test
|
||||
source: "https://github.com/libretro/libretro-samples"
|
||||
profiled_date: "2026-03-18"
|
||||
core_version: "v1"
|
||||
display_name: "Test Core - Advanced Test"
|
||||
cores:
|
||||
- advanced_tests
|
||||
systems: []
|
||||
|
||||
notes: |
|
||||
Advanced test core from libretro-samples. Exercises extended libretro API
|
||||
features: subsystems, memory descriptors, serialization, multi-disk control,
|
||||
and other optional environment callbacks. Used by frontend developers to
|
||||
validate their implementations.
|
||||
|
||||
No system files, BIOS, or firmware required. Not an emulator.
|
||||
|
||||
files: []
|
||||
38
emulators/amiarcadia.yml
Normal file
38
emulators/amiarcadia.yml
Normal file
@@ -0,0 +1,38 @@
|
||||
emulator: amiarcadia
|
||||
type: libretro
|
||||
source: "https://amigan.yatho.com/"
|
||||
profiled_date: "2026-03-18"
|
||||
core_version: "4.42"
|
||||
display_name: "Arcadia 2001 / Interton VC 4000 (AmiArcadia)"
|
||||
cores:
|
||||
- amiarcadia
|
||||
systems:
|
||||
- emerson-arcadia-2001
|
||||
- interton-vc4000
|
||||
- elektor-tv-games-computer
|
||||
|
||||
# AmiArcadia is a libretro port of James Jacobs' emulator for Signetics
|
||||
# 2636 PVI / 2637 UVI + 2650 CPU-based systems: Emerson Arcadia 2001 and
|
||||
# clones (Bandai, Grandstand, Schmid, Hanimex, Leisurevision, etc.),
|
||||
# Interton VC 4000 family (Voltmace, Rowtron, Fountain, etc.), Elektor
|
||||
# TV Games Computer, and Zaccaria/Malzak coin-op arcade machines.
|
||||
#
|
||||
# The core does NOT require any BIOS or system ROM files.
|
||||
# firmware_count = 0 in amiarcadia_libretro.info confirms this.
|
||||
#
|
||||
# ROM identification:
|
||||
# The core auto-identifies known game ROMs by CRC32 and configures the
|
||||
# correct machine type, memory map, and game-specific settings. For
|
||||
# unknown ROMs, the user selects machine type via the "Machine" core
|
||||
# option (Arcadia / Interton).
|
||||
#
|
||||
# Supported extensions: .bin, .tvc
|
||||
#
|
||||
# Source ref: libretro-core-info/amiarcadia_libretro.info (firmware_count = 0)
|
||||
# Docs: https://docs.libretro.com/library/amiarcadia/
|
||||
|
||||
notes: |
|
||||
No BIOS files required. The emulator has no external firmware dependencies.
|
||||
Game ROMs are identified by CRC32 for automatic machine configuration.
|
||||
|
||||
bios_files: []
|
||||
14
emulators/anarch.yml
Normal file
14
emulators/anarch.yml
Normal file
@@ -0,0 +1,14 @@
|
||||
emulator: Anarch
|
||||
type: game
|
||||
source: "https://github.com/libretro/anern"
|
||||
profiled_date: "2026-03-18"
|
||||
core_version: "1.1d"
|
||||
display_name: "Anarch"
|
||||
cores: [anarch]
|
||||
systems: []
|
||||
files: []
|
||||
notes: >
|
||||
Libretro port of Anarch, a public domain suckless FPS game by Miloslav Ciz.
|
||||
Entirely self-contained with all levels, textures, and sounds compiled
|
||||
into the binary using procedural generation and hardcoded data tables.
|
||||
No content file, BIOS, or system directory files required.
|
||||
223
emulators/applewin.yml
Normal file
223
emulators/applewin.yml
Normal file
@@ -0,0 +1,223 @@
|
||||
emulator: AppleWin
|
||||
type: libretro
|
||||
source: "https://github.com/audetto/AppleWin"
|
||||
profiled_date: "2026-03-18"
|
||||
core_version: "1.30.21.0"
|
||||
display_name: "Apple II (AppleWin)"
|
||||
cores:
|
||||
- applewin
|
||||
systems:
|
||||
- apple-ii
|
||||
|
||||
notes: |
|
||||
AppleWin is an Apple II/IIe/II+ emulator. The libretro port embeds all
|
||||
ROM images directly into the compiled binary via a CMake resource system
|
||||
(resource/CMakeLists.txt -> apple2roms static library -> apple2roms_data.h).
|
||||
The GNUFrame::GetResourceData() function serves ROMs from this compiled-in
|
||||
map. No external BIOS/firmware files are needed.
|
||||
|
||||
The core never calls RETRO_ENVIRONMENT_GET_SYSTEM_DIRECTORY and the official
|
||||
applewin_libretro.info has zero firmware entries.
|
||||
|
||||
Supported machine types (via core option applewin_machine):
|
||||
Enhanced Apple //e, Apple ][ (Original), Apple ][+, Apple ][ J-Plus,
|
||||
Apple //e, Pravets 82, Pravets 8M, Pravets 8A, Base64A, TK3000 //e
|
||||
|
||||
Supported extensions: bin, do, dsk, nib, po, gz, woz, zip, 2mg, 2img,
|
||||
iie, apl, hdv, yaml, m3u
|
||||
|
||||
supports_no_game: true (can boot without content)
|
||||
|
||||
files: []
|
||||
|
||||
analysis:
|
||||
embedded_roms:
|
||||
build_system: "CMake add_resources() in resource/CMakeLists.txt"
|
||||
storage: "apple2roms static library linked into core binary"
|
||||
accessor: "GNUFrame::GetResourceData() -> apple2roms::data map"
|
||||
source_ref: "source/frontends/common2/gnuframe.cpp:83"
|
||||
|
||||
system_roms:
|
||||
- id: IDR_APPLE2_ROM
|
||||
filename: Apple2.rom
|
||||
size: 12288
|
||||
md5: 3c406514b9806a7c57ee65fb0b0c39b4
|
||||
sha1: 09288be705464b608ff190519ab008d3dfcd1b05
|
||||
note: "Apple ][ original ROM (12 KB)"
|
||||
|
||||
- id: IDR_APPLE2_PLUS_ROM
|
||||
filename: Apple2_Plus.rom
|
||||
size: 12288
|
||||
md5: 572b3005a4fa49bc54917b069b82c1ab
|
||||
sha1: 33a24f5489ba9195b44be77d9afb2252594cb5c7
|
||||
note: "Apple ][+ ROM (12 KB)"
|
||||
|
||||
- id: IDR_APPLE2_JPLUS_ROM
|
||||
filename: Apple2_JPlus.rom
|
||||
size: 12288
|
||||
md5: f3e8237eca3809bec2a42b984a1332a8
|
||||
sha1: ad200b3263d08e7235d0871c8595963a07adc905
|
||||
note: "Apple ][ J-Plus ROM (12 KB)"
|
||||
|
||||
- id: IDR_APPLE2E_ROM
|
||||
filename: Apple2e.rom
|
||||
size: 16384
|
||||
md5: 346bc782c6a08a531c460e33bc03daf4
|
||||
sha1: 61fa9254628e5bb7236fb474006116d67684d747
|
||||
note: "Apple //e ROM (16 KB)"
|
||||
|
||||
- id: IDR_APPLE2E_ENHANCED_ROM
|
||||
filename: Apple2e_Enhanced.rom
|
||||
size: 16384
|
||||
md5: 38063e08c778503fc03ecebb979769e9
|
||||
sha1: b8ea90abe135a0031065e01697c4a3a20d51198b
|
||||
note: "Enhanced Apple //e ROM (16 KB, default machine type)"
|
||||
|
||||
- id: IDR_PRAVETS_82_ROM
|
||||
filename: PRAVETS82.ROM
|
||||
size: 12288
|
||||
md5: c619b7edfcf021f3b8fd20d9386676ba
|
||||
sha1: 8bd7ced83e209a15e9b19a05a5ef4b8e996dc1a5
|
||||
note: "Pravets 82 ROM (12 KB)"
|
||||
|
||||
- id: IDR_PRAVETS_8M_ROM
|
||||
filename: PRAVETS8M.ROM
|
||||
size: 12288
|
||||
md5: 76c79535f7cf77973e2c711aa977a124
|
||||
sha1: f1b4ff018acf95f3355f0d575b66a188d728b687
|
||||
note: "Pravets 8M ROM (12 KB)"
|
||||
|
||||
- id: IDR_PRAVETS_8C_ROM
|
||||
filename: PRAVETS8C.ROM
|
||||
size: 16384
|
||||
md5: 1896d7b98dd940c89f7c8ea899b71006
|
||||
sha1: c976fe56e57706c161f513a82ba3e0d8cda83904
|
||||
note: "Pravets 8A/8C ROM (16 KB)"
|
||||
|
||||
- id: IDR_TK3000_2E_ROM
|
||||
filename: TK3000e.rom
|
||||
size: 16384
|
||||
md5: 8d84b614b545d4eec8799d3f325332cb
|
||||
sha1: f163e5753c18ff0e812a448e8da406f102600edf
|
||||
note: "TK3000 //e ROM (16 KB)"
|
||||
|
||||
- id: IDR_BASE_64A_ROM
|
||||
filename: Base64A.rom
|
||||
size: 49152
|
||||
md5: 352fdbcae14c6a8c0398822c7a273309
|
||||
sha1: f1c779af480b5bda2bdd03950c1201a5c5143bea
|
||||
note: "Base64A ROM (48 KB)"
|
||||
|
||||
- id: IDR_FREEZES_F8_ROM
|
||||
filename: Freezes_Non-autostart_F8_Rom.rom
|
||||
size: 2048
|
||||
md5: d0a61e95ed1e1dc37c8e4801326aa79e
|
||||
sha1: 3180be6b555ee9ef1f59c4fc3f25c5aab8c39c81
|
||||
note: "Freezes non-autostart F8 ROM (2 KB)"
|
||||
|
||||
video_roms:
|
||||
- id: IDR_APPLE2_VIDEO_ROM
|
||||
filename: Apple2_Video.rom
|
||||
size: 2048
|
||||
md5: 9ac0dc8c4d0002eb45b0b84be0bde5ec
|
||||
sha1: f9d312f128c9557d9d6ac03bfad6c3ddf83e5659
|
||||
note: "Apple II character generator ROM (2 KB)"
|
||||
|
||||
- id: IDR_APPLE2_JPLUS_VIDEO_ROM
|
||||
filename: Apple2_JPlus_Video.rom
|
||||
size: 2048
|
||||
md5: 271e2c9bf928b95e7baeff391db45495
|
||||
sha1: 0a382be58db5215c4a3de53b19a72fab660d5da2
|
||||
note: "Apple ][ J-Plus character generator ROM (2 KB)"
|
||||
|
||||
- id: IDR_APPLE2E_ENHANCED_VIDEO_ROM
|
||||
filename: Apple2e_Enhanced_Video.rom
|
||||
size: 4096
|
||||
md5: 9123fff3442c0e688cc6816be88dd4ab
|
||||
sha1: b2b5d87f52693817fc747df087a4aa1ddcdb1f10
|
||||
note: "Enhanced Apple //e character generator ROM (4 KB)"
|
||||
|
||||
- id: IDR_BASE64A_VIDEO_ROM
|
||||
filename: Base64A_German_Video.rom
|
||||
size: 4096
|
||||
md5: 4b45852b369e2afd864a02d0d91f70dc
|
||||
sha1: 87ca8135f7526ddf829f9c2c4f7dbe4d568818fc
|
||||
note: "Base64A German character generator ROM (4 KB)"
|
||||
|
||||
peripheral_firmware:
|
||||
- id: IDR_DISK2_13SECTOR_FW
|
||||
filename: DISK2-13sector.rom
|
||||
size: 256
|
||||
md5: 4f80448507cf43ab40c17ac08d89e278
|
||||
sha1: afd060e6f35faf3bb0146fa889fc787adf56330a
|
||||
note: "Disk II 13-sector controller ROM (256 B)"
|
||||
|
||||
- id: IDR_DISK2_16SECTOR_FW
|
||||
filename: DISK2.rom
|
||||
size: 256
|
||||
md5: 2020aa1413ff77fe29353f3ee72dc295
|
||||
sha1: d4181c9f046aafc3fb326b381baac809d9e38d16
|
||||
note: "Disk II 16-sector controller ROM (256 B)"
|
||||
|
||||
- id: IDR_SSC_FW
|
||||
filename: SSC.rom
|
||||
size: 2048
|
||||
md5: 67c0d61ab0911183faf05270f881a97e
|
||||
sha1: 6dab633470c6bc4cb3e81d09fda46597caf8ee57
|
||||
note: "Super Serial Card firmware (2 KB)"
|
||||
|
||||
- id: IDR_HDDRVR_FW
|
||||
filename: Hddrvr.bin
|
||||
size: 256
|
||||
md5: e0a40e9166af27b16f60beb83c9233f0
|
||||
sha1: 69667800c54da1d4466e7b2168c0e418a4cf586c
|
||||
note: "Hard disk controller firmware v1 (256 B)"
|
||||
|
||||
- id: IDR_HDDRVR_V2_FW
|
||||
filename: Hddrvr-v2.bin
|
||||
size: 256
|
||||
md5: a49e45e7a6d4de23e0845a59c7e31e0c
|
||||
sha1: 06115eebb4d58221b5c062a42bf3e41e137447ed
|
||||
note: "Hard disk controller firmware v2 (256 B)"
|
||||
|
||||
- id: IDR_HDC_SMARTPORT_FW
|
||||
filename: HDC-SmartPort.bin
|
||||
size: 256
|
||||
md5: 2592efa1d34ade55d490a1b39911c9b2
|
||||
sha1: fd557998fd5823ad69a42ad1282e4fe47db02dca
|
||||
note: "SmartPort hard disk controller firmware (256 B)"
|
||||
|
||||
- id: IDR_PRINTDRVR_FW
|
||||
filename: Parallel.rom
|
||||
size: 256
|
||||
md5: 5902996f16dc78fc013f6e1db14805b3
|
||||
sha1: c75c751589cbcc1ad4ab4f63676af7abadd86f5b
|
||||
note: "Parallel printer card firmware (256 B)"
|
||||
|
||||
- id: IDR_MOCKINGBOARD_D_FW
|
||||
filename: Mockingboard-D.rom
|
||||
size: 2048
|
||||
md5: ab53170c5ec66b63e6356f637f4388ed
|
||||
sha1: e8d20f4b59fe867ff76434d35a14d2cbdc8533e3
|
||||
note: "Mockingboard-D sound card firmware (2 KB)"
|
||||
|
||||
- id: IDR_MOUSEINTERFACE_FW
|
||||
filename: MouseInterface.rom
|
||||
size: 2048
|
||||
md5: 22563ab338024dac7b03510371d49c57
|
||||
sha1: 3a9d881a8a8d30f55b9719aceebbcf717f829d6f
|
||||
note: "Mouse interface card firmware (2 KB)"
|
||||
|
||||
- id: IDR_THUNDERCLOCKPLUS_FW
|
||||
filename: ThunderClockPlus.rom
|
||||
size: 2048
|
||||
md5: 138b1f7e30953fcaa58fcbf562c15001
|
||||
sha1: 60f434f5325899d7ea257a6e56e6f53eae65146a
|
||||
note: "ThunderClock Plus firmware (2 KB)"
|
||||
|
||||
- id: IDR_TKCLOCK_FW
|
||||
filename: TKClock.rom
|
||||
size: 2304
|
||||
md5: 7076083b9d748b7637b020636543971b
|
||||
sha1: 3740516cc9050465f8b884dbeb0ecdd2c1354620
|
||||
note: "TK Clock firmware (2.25 KB)"
|
||||
87
emulators/ardens.yml
Normal file
87
emulators/ardens.yml
Normal file
@@ -0,0 +1,87 @@
|
||||
emulator: Ardens
|
||||
type: libretro
|
||||
source: "https://github.com/tiberiusbrown/ardens"
|
||||
profiled_date: "2026-03-18"
|
||||
core_version: "Git"
|
||||
display_name: "Arduboy (Ardens)"
|
||||
cores:
|
||||
- ardens
|
||||
systems:
|
||||
- arduboy
|
||||
|
||||
notes: |
|
||||
Ardens is an Arduboy FX simulator designed for profiling and debugging,
|
||||
ported to libretro. It emulates the ATmega32U4 MCU, SSD1306 OLED display,
|
||||
and W25Q128 external flash used by the Arduboy hardware.
|
||||
|
||||
No BIOS or bootloader files are required. The core has all boot code
|
||||
compiled directly into the binary:
|
||||
|
||||
- Caterina/Arduboy3K bootloaders for multiple hardware revisions (D1, D2,
|
||||
E2) are embedded as C arrays generated from .hex files via bin2c.py.
|
||||
Located in src/boot/boot_game_*.c and src/boot/boot_menu_*.c.
|
||||
The appropriate variant is selected at reset based on the configured
|
||||
device type (absim_arduboy.cpp:115-161).
|
||||
|
||||
- Flashcart header (1536 bytes) is embedded in src/boot/boot_flashcart.c
|
||||
and written to the start of the W25Q128 flash image at init
|
||||
(absim_w25q128.hpp:14).
|
||||
|
||||
- EEPROM (1024 bytes) and external flash (W25Q128, 16 MB) state are
|
||||
handled as save RAM through the libretro RETRO_MEMORY_SAVE_RAM
|
||||
interface, not as system files.
|
||||
|
||||
The libretro port does not call RETRO_ENVIRONMENT_GET_SYSTEM_DIRECTORY
|
||||
and never attempts to load any file from the system directory.
|
||||
The .info file declares firmware_count = 0.
|
||||
|
||||
Supported ROM formats: Intel HEX (.hex) and Arduboy package (.arduboy).
|
||||
block_extract is set to true (the core reads archives directly).
|
||||
|
||||
files: []
|
||||
|
||||
platform_details:
|
||||
embedded_bootloaders:
|
||||
source_ref: "src/boot/_make.bat, src/absim_arduboy.cpp:115-161"
|
||||
variants:
|
||||
- name: "arduboy3k-bootloader-game-sda"
|
||||
array: "ARDENS_BOOT_GAME_D1"
|
||||
size: 8422
|
||||
device: "Arduboy FX (SDA)"
|
||||
- name: "arduboy3k-bootloader-menu-sda"
|
||||
array: "ARDENS_BOOT_MENU_D1"
|
||||
size: 8422
|
||||
device: "Arduboy FX (SDA)"
|
||||
- name: "arduboy3k-bootloader-game-devkit"
|
||||
array: "ARDENS_BOOT_GAME_D2"
|
||||
size: 8446
|
||||
device: "Arduboy FX DevKit"
|
||||
- name: "arduboy3k-bootloader-menu-devkit"
|
||||
array: "ARDENS_BOOT_MENU_D2"
|
||||
size: 8446
|
||||
device: "Arduboy FX DevKit"
|
||||
- name: "arduboymini-bootloader-game"
|
||||
array: "ARDENS_BOOT_GAME_E2"
|
||||
size: 8548
|
||||
device: "Arduboy Mini"
|
||||
- name: "arduboymini-bootloader-menu"
|
||||
array: "ARDENS_BOOT_MENU_E2"
|
||||
size: 8548
|
||||
device: "Arduboy Mini"
|
||||
notes: |
|
||||
All bootloaders are compiled from Intel HEX into C arrays at build
|
||||
time. The core selects the game or menu variant at reset depending
|
||||
on whether a flashcart image was loaded and the boot_to_menu config
|
||||
flag (absim_arduboy.cpp:142-158). The bootloader is written to the
|
||||
top of the ATmega32U4 program memory at the address defined by the
|
||||
BOOTSZ fuse bits (absim.hpp:811).
|
||||
|
||||
embedded_flashcart_header:
|
||||
source_ref: "src/boot/boot_flashcart.c, src/absim_w25q128.hpp:14"
|
||||
array: "ARDENS_BOOT_FLASHCART"
|
||||
size: 1536
|
||||
notes: |
|
||||
Empty flashcart header written to the first 1536 bytes of the
|
||||
W25Q128 flash image during initialization. This is not a BIOS
|
||||
file -- it is the default flash content the Arduboy FX expects
|
||||
at the start of external storage.
|
||||
46
emulators/arduous.yml
Normal file
46
emulators/arduous.yml
Normal file
@@ -0,0 +1,46 @@
|
||||
emulator: Arduous
|
||||
type: libretro
|
||||
source: "https://github.com/libretro/arduous"
|
||||
profiled_date: "2026-03-18"
|
||||
core_version: "0.1.0"
|
||||
display_name: "Arduboy (Arduous)"
|
||||
cores:
|
||||
- arduous
|
||||
systems:
|
||||
- arduboy
|
||||
|
||||
notes: |
|
||||
Arduous is an Arduboy emulator built on simavr (ATmega32U4 AVR simulator)
|
||||
with SSD1306 OLED display emulation, ported to libretro. It is distinct
|
||||
from the Ardens core, which is a separate Arduboy emulator.
|
||||
|
||||
No BIOS, bootloader, or system files are required. The core operates as a
|
||||
pure AVR simulator:
|
||||
|
||||
- The game content (.hex Intel HEX format) is parsed at load time via an
|
||||
in-tree ihex reader (arduous.cpp:60-166) and written directly into the
|
||||
simavr flash memory at the address specified in the hex file
|
||||
(arduous.cpp:189). No separate bootloader is loaded.
|
||||
|
||||
- The MCU is hardcoded to atmega32u4 at 16 MHz (arduous.h:70-71).
|
||||
simavr handles CPU initialization internally via avr_make_mcu_by_name().
|
||||
|
||||
- A commented-out loadFirmware() function (arduous.cpp:22-29) suggests
|
||||
ELF firmware loading was considered but never implemented.
|
||||
|
||||
- EEPROM (1024 bytes), system RAM, and VRAM are exposed via the libretro
|
||||
memory interface (RETRO_MEMORY_SAVE_RAM, RETRO_MEMORY_SYSTEM_RAM,
|
||||
RETRO_MEMORY_VIDEO_RAM) but are not loaded from external files.
|
||||
|
||||
- The core never calls RETRO_ENVIRONMENT_GET_SYSTEM_DIRECTORY. The
|
||||
retro_load_game() function only reads the content data buffer passed
|
||||
by the frontend (libretro.cpp:108-110).
|
||||
|
||||
- RETRO_ENVIRONMENT_SET_SUPPORT_NO_GAME is set to false (libretro.cpp:123),
|
||||
meaning a game ROM is always required.
|
||||
|
||||
Supported ROM format: Intel HEX (.hex) only. The valid_extensions field
|
||||
lists "hex". A TODO comment mentions .arduboy ZIP support but it is not
|
||||
implemented.
|
||||
|
||||
files: []
|
||||
181
emulators/atari800.yml
Normal file
181
emulators/atari800.yml
Normal file
@@ -0,0 +1,181 @@
|
||||
emulator: Atari800
|
||||
type: libretro
|
||||
source: "https://github.com/libretro/libretro-atari800"
|
||||
profiled_date: "2026-03-18"
|
||||
core_version: "3.1.0"
|
||||
display_name: "Atari - 400/800/600XL/800XL/130XE/5200 (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.
|
||||
8
emulators/azahar.yml
Normal file
8
emulators/azahar.yml
Normal file
@@ -0,0 +1,8 @@
|
||||
emulator: "azahar"
|
||||
type: alias
|
||||
alias_of: "citra"
|
||||
profiled_date: "2026-03-18"
|
||||
core_version: "Git"
|
||||
display_name: "Nintendo - 3DS (Azahar)"
|
||||
note: "This core uses the same BIOS/firmware as citra. See emulators/citra.yml for details."
|
||||
files: []
|
||||
106
emulators/b2.yml
Normal file
106
emulators/b2.yml
Normal file
@@ -0,0 +1,106 @@
|
||||
emulator: b2
|
||||
type: standalone
|
||||
source: "https://github.com/tom-seddon/b2"
|
||||
profiled_date: "2026-03-18"
|
||||
core_version: "v0.1"
|
||||
display_name: "Acorn - BBC Micro (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: []
|
||||
35
emulators/beetle_lynx.yml
Normal file
35
emulators/beetle_lynx.yml
Normal file
@@ -0,0 +1,35 @@
|
||||
emulator: Beetle Lynx (Mednafen Lynx)
|
||||
type: libretro
|
||||
source: "https://github.com/libretro/beetle-lynx-libretro"
|
||||
profiled_date: "2026-03-18"
|
||||
core_version: "v1.24.0"
|
||||
display_name: "Atari - Lynx (Beetle Lynx)"
|
||||
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."
|
||||
36
emulators/beetle_ngp.yml
Normal file
36
emulators/beetle_ngp.yml
Normal file
@@ -0,0 +1,36 @@
|
||||
emulator: Beetle NGP (Mednafen Neo Geo Pocket)
|
||||
type: libretro
|
||||
source: "https://github.com/libretro/beetle-ngp-libretro"
|
||||
profiled_date: "2026-03-18"
|
||||
core_version: "v0.9.36.1"
|
||||
display_name: "SNK - Neo Geo Pocket / Color (Beetle NeoPop)"
|
||||
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: []
|
||||
91
emulators/beetle_pce.yml
Normal file
91
emulators/beetle_pce.yml
Normal file
@@ -0,0 +1,91 @@
|
||||
emulator: Beetle PCE (Mednafen PCE)
|
||||
type: libretro
|
||||
source: "https://github.com/libretro/beetle-pce-libretro"
|
||||
profiled_date: "2026-03-18"
|
||||
core_version: "v0.9.38.7"
|
||||
display_name: "NEC - PC Engine / SuperGrafx / CD (Beetle PCE)"
|
||||
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).
|
||||
52
emulators/beetle_pcfx.yml
Normal file
52
emulators/beetle_pcfx.yml
Normal file
@@ -0,0 +1,52 @@
|
||||
emulator: Beetle PC-FX (Mednafen)
|
||||
type: libretro
|
||||
cores: [mednafen_pcfx]
|
||||
source: "https://github.com/libretro/beetle-pcfx-libretro"
|
||||
profiled_date: "2026-03-18"
|
||||
core_version: "v0.9.33.3"
|
||||
display_name: "NEC - PC-FX (Beetle PC-FX)"
|
||||
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"
|
||||
86
emulators/beetle_psx.yml
Normal file
86
emulators/beetle_psx.yml
Normal file
@@ -0,0 +1,86 @@
|
||||
emulator: Beetle PSX (Mednafen PSX)
|
||||
type: libretro
|
||||
source: "https://github.com/libretro/beetle-psx-libretro"
|
||||
profiled_date: "2026-03-18"
|
||||
core_version: "v0.9.44.1"
|
||||
display_name: "Sony - PlayStation (Beetle PSX)"
|
||||
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."
|
||||
96
emulators/beetle_saturn.yml
Normal file
96
emulators/beetle_saturn.yml
Normal file
@@ -0,0 +1,96 @@
|
||||
emulator: Beetle Saturn (Mednafen)
|
||||
type: libretro
|
||||
core: mednafen_saturn_libretro
|
||||
source: "https://github.com/libretro/beetle-saturn-libretro"
|
||||
profiled_date: "2026-03-18"
|
||||
core_version: "v0.9.45.1"
|
||||
display_name: "Sega - Saturn (Beetle Saturn)"
|
||||
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"
|
||||
29
emulators/beetle_vb.yml
Normal file
29
emulators/beetle_vb.yml
Normal file
@@ -0,0 +1,29 @@
|
||||
emulator: Beetle VB (Mednafen Virtual Boy)
|
||||
type: libretro
|
||||
source: "https://github.com/libretro/beetle-vb-libretro"
|
||||
profiled_date: "2026-03-18"
|
||||
core_version: "v0.9.36.1"
|
||||
display_name: "Nintendo - Virtual Boy (Beetle VB)"
|
||||
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: []
|
||||
34
emulators/beetle_wswan.yml
Normal file
34
emulators/beetle_wswan.yml
Normal file
@@ -0,0 +1,34 @@
|
||||
emulator: Beetle WonderSwan (Mednafen WonderSwan)
|
||||
type: libretro
|
||||
source: "https://github.com/libretro/beetle-wswan-libretro"
|
||||
profiled_date: "2026-03-18"
|
||||
core_version: "v0.9.35.1"
|
||||
display_name: "Bandai - WonderSwan/Color (Beetle Wonderswan)"
|
||||
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: []
|
||||
34
emulators/bennugd.yml
Normal file
34
emulators/bennugd.yml
Normal file
@@ -0,0 +1,34 @@
|
||||
emulator: BennuGD
|
||||
type: libretro
|
||||
source: "https://github.com/diekleinekuh/BennuGD_libretro"
|
||||
profiled_date: "2026-03-18"
|
||||
core_version: "git"
|
||||
display_name: "Bennu Game Development"
|
||||
cores:
|
||||
- bennugd
|
||||
systems:
|
||||
- bennugd
|
||||
|
||||
# BennuGD is an open-source interpreter for BennuGD (.dcb/.dat) game files,
|
||||
# running as a libretro core. It is a successor to DIV Games Studio / Fenix.
|
||||
# Notable game: Streets of Rage Remake.
|
||||
#
|
||||
# The official libretro .info file (bennugd_libretro.info) declares zero
|
||||
# firmware entries. The core loads content directly via bgdi_main() and does
|
||||
# not reference any files from the system directory.
|
||||
#
|
||||
# retro_load_game() in libretro.c:888-911 only reads the content path and
|
||||
# the save directory. RETRO_ENVIRONMENT_GET_SYSTEM_DIRECTORY is called once
|
||||
# (libretro.c:899) solely as a fallback for the save directory, never to
|
||||
# load BIOS or firmware.
|
||||
#
|
||||
# Supported extensions: dcb, dat, exe (Windows BennuGD executables)
|
||||
# Valid extensions in libretro.c: dat, dcb
|
||||
# Valid extensions in .info: dcb, dat, exe
|
||||
|
||||
notes: |
|
||||
No BIOS or firmware required. BennuGD is a self-contained game interpreter.
|
||||
Games are loaded as .dcb or .dat bytecode files compiled by the BennuGD
|
||||
toolchain. All game assets are bundled with the content.
|
||||
|
||||
files: []
|
||||
152
emulators/bk.yml
Normal file
152
emulators/bk.yml
Normal file
@@ -0,0 +1,152 @@
|
||||
emulator: bk-emulator
|
||||
type: libretro
|
||||
source: "https://github.com/libretro/bk-emulator"
|
||||
profiled_date: "2026-03-18"
|
||||
core_version: "1.00"
|
||||
display_name: "Elektronika - BK-0010/BK-0011(M)"
|
||||
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.
|
||||
58
emulators/blastem.yml
Normal file
58
emulators/blastem.yml
Normal file
@@ -0,0 +1,58 @@
|
||||
emulator: BlastEm
|
||||
type: libretro
|
||||
source: "https://github.com/libretro/blastem"
|
||||
profiled_date: "2026-03-18"
|
||||
core_version: "v0.6.3-pre"
|
||||
display_name: "Sega - Mega Drive - Genesis (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.
|
||||
647
emulators/bluemsx.yml
Normal file
647
emulators/bluemsx.yml
Normal file
@@ -0,0 +1,647 @@
|
||||
emulator: blueMSX
|
||||
type: libretro
|
||||
source: "https://github.com/libretro/blueMSX-libretro"
|
||||
profiled_date: "2026-03-18"
|
||||
core_version: "SVN"
|
||||
display_name: "MSX/SVI/ColecoVision/SG-1000 (blueMSX)"
|
||||
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.
|
||||
62
emulators/bnes.yml
Normal file
62
emulators/bnes.yml
Normal file
@@ -0,0 +1,62 @@
|
||||
emulator: bnes
|
||||
type: libretro
|
||||
source: "https://github.com/libretro/bnes-libretro"
|
||||
profiled_date: "2026-03-18"
|
||||
core_version: "v083"
|
||||
display_name: "Nintendo - NES / Famicom (bnes)"
|
||||
cores:
|
||||
- bnes
|
||||
systems:
|
||||
- nes
|
||||
|
||||
notes: |
|
||||
bnes is a NES emulator based on byuu's bNES/higan v083 NES module, ported
|
||||
to libretro by Ryphecha. It is a lightweight, accuracy-focused NES core.
|
||||
|
||||
The core loads cartridge data entirely through retro_load_game with
|
||||
need_fullpath=false (libretro.cpp:129). ROM data is passed as a memory
|
||||
buffer and parsed by Cartridge::load (cartridge.cpp:18-31), which detects
|
||||
iNES headers (16-byte offset) and delegates to Board::load for mapper setup.
|
||||
|
||||
The PPU generates its palette from a hardcoded color table in libretro.cpp
|
||||
(lines 20-37) with emphasis factor tables. No external palette file is loaded.
|
||||
|
||||
System::init (system.cpp:62-66) only sets up the interface pointer and
|
||||
default input devices. No system ROM, BIOS, or firmware is loaded at any
|
||||
stage of initialization or cartridge loading.
|
||||
|
||||
The core does not call RETRO_ENVIRONMENT_GET_SYSTEM_DIRECTORY and has no
|
||||
file I/O for BIOS or firmware. FDS (Famicom Disk System) is not supported,
|
||||
so disksys.rom is not needed.
|
||||
|
||||
No external BIOS or firmware files are needed.
|
||||
|
||||
files: []
|
||||
|
||||
analysis:
|
||||
bios_search:
|
||||
retro_load_game: "libretro.cpp:181-211 - loads cartridge data only, no BIOS"
|
||||
cartridge_load: "cartridge.cpp:18-31 - parses iNES header + ROM data"
|
||||
system_init: "system.cpp:62-66 - sets interface pointer, no ROM loading"
|
||||
system_power: "system.cpp:43-50 - powers subsystems, no file I/O"
|
||||
interface_init: "interface.cpp:17-20 - stores derived pointer, calls system.init"
|
||||
supported_mappers:
|
||||
- NROM
|
||||
- SxROM (MMC1)
|
||||
- UxROM
|
||||
- CNROM
|
||||
- TxROM (MMC3)
|
||||
- ExROM (MMC5)
|
||||
- AxROM
|
||||
- BnROM
|
||||
- GxROM
|
||||
- PxROM (MMC4)
|
||||
- FxROM (MMC4)
|
||||
- Bandai FCG
|
||||
- Konami VRC4
|
||||
- Konami VRC6
|
||||
- Konami VRC7
|
||||
- Sunsoft 5B
|
||||
fds_support: false
|
||||
filesystem_access: false
|
||||
system_directory_used: false
|
||||
27
emulators/boom3.yml
Normal file
27
emulators/boom3.yml
Normal file
@@ -0,0 +1,27 @@
|
||||
emulator: boom3
|
||||
type: libretro
|
||||
source: "https://github.com/libretro/boom3"
|
||||
profiled_date: "2026-03-18"
|
||||
core_version: "git"
|
||||
display_name: "Doom 3 (boom3)"
|
||||
cores: [boom3, boom3_xp]
|
||||
systems: [doom3]
|
||||
verification: existence
|
||||
notes: >
|
||||
Doom 3 source port based on dhewm3 (GPL Doom 3 engine). The core accepts
|
||||
.pk4 extensions (retro_get_system_info sets valid_extensions = "pk4").
|
||||
Content is loaded directly from the .pk4 file path - the engine extracts
|
||||
the grandparent directory as fs_basepath (libretro.cpp:1097,1135-1136
|
||||
via extract_directory called twice on info->path) and expects the standard
|
||||
Doom 3 directory layout with base/ containing pak000.pk4 through pak008.pk4.
|
||||
BASE_GAMEDIR is hardcoded to "base" (Licensee.h:58). The boom3_xp variant
|
||||
compiles with _D3XP defined, which passes "+set fs_game d3xp" at startup
|
||||
(libretro.cpp:538-544) to load the Resurrection of Evil expansion from a
|
||||
d3xp/ subdirectory alongside base/. The filesystem code (FileSystem.cpp:2125)
|
||||
scans for .pk4 files in the game directory and loads them in order, with
|
||||
higher-numbered paks overriding lower ones. The core requires OpenGL
|
||||
(RETRO_ENVIRONMENT_SET_HW_RENDER) and XRGB8888 pixel format. All required
|
||||
files are commercial Doom 3 game data, not engine firmware. No BIOS or
|
||||
system files are needed in the RetroArch system directory.
|
||||
|
||||
files: []
|
||||
75
emulators/boytacean.yml
Normal file
75
emulators/boytacean.yml
Normal file
@@ -0,0 +1,75 @@
|
||||
emulator: Boytacean
|
||||
type: libretro
|
||||
source: "https://github.com/joamag/boytacean"
|
||||
profiled_date: "2026-03-18"
|
||||
core_version: "0.10.13"
|
||||
display_name: "Nintendo - Game Boy / Color (Boytacean)"
|
||||
cores:
|
||||
- boytacean
|
||||
systems:
|
||||
- nintendo-gb
|
||||
- nintendo-gbc
|
||||
|
||||
notes: |
|
||||
Boytacean is a Game Boy / Game Boy Color emulator written in Rust by Joao Magalhaes.
|
||||
No external BIOS or boot ROM files are needed.
|
||||
|
||||
The core ships with multiple boot ROMs compiled directly into the binary as static
|
||||
byte arrays in src/data.rs. For DMG mode the default is "DMG Bootix" (an open-source
|
||||
boot ROM forked from SameBoy's Bootix project, 256 bytes). For CGB mode the default
|
||||
is "CGB Boytacean" (a custom open-source CGB boot ROM, 2304 bytes). The original
|
||||
Nintendo DMG, SGB, and CGB boot ROMs are also embedded as static arrays (DMG_BOOT,
|
||||
SGB_BOOT, CGB_BOOT) but the defaults use the open-source replacements.
|
||||
|
||||
The libretro frontend (frontends/libretro/src/core.rs) calls instance.load(true) in
|
||||
retro_load_game(), which routes through load_dmg() or load_cgb() depending on the
|
||||
cartridge header. These call load_boot_static() which copies one of the embedded byte
|
||||
arrays into MMU memory. There is no RETRO_ENVIRONMENT_GET_SYSTEM_DIRECTORY call, no
|
||||
filesystem access for boot ROMs, and no core option to load external boot ROM files.
|
||||
|
||||
The .info file (boytacean_libretro.info) lists no firmware entries.
|
||||
|
||||
Boot ROM selection defaults:
|
||||
- DMG: BootRom::DmgBootix (gb.rs:1389) - open-source, 256 bytes
|
||||
- CGB: BootRom::CgbBoytacean (gb.rs:1398) - open-source, 2304 bytes
|
||||
|
||||
All boot ROM source code lives in src/boot/, forked from SameBoy and assembled
|
||||
with rgbds. The compiled binaries are then converted to Rust const arrays in data.rs.
|
||||
|
||||
files: []
|
||||
|
||||
analysis:
|
||||
embedded_boot_roms:
|
||||
dmg_boot:
|
||||
constant: DMG_BOOT
|
||||
size: 256
|
||||
description: "Original Nintendo DMG boot ROM (embedded, not default)"
|
||||
source_ref: "data.rs:14-27"
|
||||
sgb_boot:
|
||||
constant: SGB_BOOT
|
||||
size: 256
|
||||
description: "Super Game Boy boot ROM (embedded, not default)"
|
||||
source_ref: "data.rs:29-42"
|
||||
dmg_bootix:
|
||||
constant: DMG_BOOTIX
|
||||
size: 256
|
||||
description: "Open-source DMG boot ROM from Bootix project (default for DMG)"
|
||||
source_ref: "data.rs:44-57"
|
||||
mgb_bootix:
|
||||
constant: MGB_BOOTIX
|
||||
size: 256
|
||||
description: "Open-source MGB (Game Boy Pocket) boot ROM from Bootix project"
|
||||
source_ref: "data.rs:59-72"
|
||||
cgb_boot:
|
||||
constant: CGB_BOOT
|
||||
size: 2304
|
||||
description: "Original Nintendo CGB boot ROM (embedded, not default)"
|
||||
source_ref: "data.rs:74-175"
|
||||
cgb_boytacean:
|
||||
constant: CGB_BOYTACEAN
|
||||
size: 2304
|
||||
description: "Custom open-source CGB boot ROM (default for CGB)"
|
||||
source_ref: "data.rs:177-275"
|
||||
filesystem_access: false
|
||||
system_directory_used: false
|
||||
boot_rom_source: "src/boot/ (assembly, forked from SameBoy)"
|
||||
192
emulators/bsnes.yml
Normal file
192
emulators/bsnes.yml
Normal file
@@ -0,0 +1,192 @@
|
||||
emulator: bsnes
|
||||
type: libretro
|
||||
source: "https://github.com/libretro/bsnes-libretro"
|
||||
profiled_date: "2026-03-18"
|
||||
core_version: "115"
|
||||
display_name: "Nintendo - SNES / SFC (bsnes)"
|
||||
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.
|
||||
388
emulators/cannonball.yml
Normal file
388
emulators/cannonball.yml
Normal file
@@ -0,0 +1,388 @@
|
||||
emulator: Cannonball
|
||||
type: libretro
|
||||
source: "https://github.com/libretro/cannonball"
|
||||
profiled_date: "2026-03-18"
|
||||
core_version: "1.0"
|
||||
display_name: "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"
|
||||
73
emulators/cap32.yml
Normal file
73
emulators/cap32.yml
Normal file
@@ -0,0 +1,73 @@
|
||||
emulator: Caprice32
|
||||
type: libretro
|
||||
source: "https://github.com/libretro/libretro-cap32"
|
||||
profiled_date: "2026-03-18"
|
||||
core_version: "v4.2.0"
|
||||
display_name: "Amstrad - CPC/GX4000 (Caprice32)"
|
||||
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)
|
||||
8
emulators/cdi2015.yml
Normal file
8
emulators/cdi2015.yml
Normal file
@@ -0,0 +1,8 @@
|
||||
emulator: "cdi2015"
|
||||
type: alias
|
||||
alias_of: "same_cdi"
|
||||
profiled_date: "2026-03-18"
|
||||
core_version: "0.160"
|
||||
display_name: "Philips CDi (CDi 2015)"
|
||||
note: "This core uses the same BIOS/firmware as same_cdi. See emulators/same_cdi.yml for details."
|
||||
files: []
|
||||
402
emulators/cemu.yml
Normal file
402
emulators/cemu.yml
Normal file
@@ -0,0 +1,402 @@
|
||||
emulator: Cemu
|
||||
type: standalone
|
||||
source: "https://github.com/cemu-project/Cemu"
|
||||
profiled_date: "2026-03-18"
|
||||
core_version: "2.6"
|
||||
display_name: "Cemu (Wii U)"
|
||||
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.
|
||||
14
emulators/chailove.yml
Normal file
14
emulators/chailove.yml
Normal file
@@ -0,0 +1,14 @@
|
||||
emulator: ChaiLove
|
||||
type: game
|
||||
source: "https://github.com/libretro/libretro-chailove"
|
||||
profiled_date: "2026-03-18"
|
||||
core_version: "2.0.0"
|
||||
display_name: "ChaiLove"
|
||||
cores: [chailove]
|
||||
systems: []
|
||||
files: []
|
||||
notes: >
|
||||
2D game framework for libretro inspired by LOVE2D, using ChaiScript.
|
||||
Loads .chai or .chailove game files as content. The core itself is a
|
||||
game engine runtime with no system directory dependencies.
|
||||
No BIOS, firmware, or system directory files required.
|
||||
9
emulators/chimerasnes.yml
Normal file
9
emulators/chimerasnes.yml
Normal file
@@ -0,0 +1,9 @@
|
||||
emulator: "chimerasnes"
|
||||
type: alias
|
||||
alias_of: "snes9x"
|
||||
core_version: ""
|
||||
display_name: "Nintendo - SNES / SFC (ChimeraSNES)"
|
||||
profiled_date: "2026-03-18"
|
||||
display_name: "Nintendo - SNES / SFC (ChimeraSNES)"
|
||||
note: "This core uses the same BIOS/firmware as snes9x. See emulators/snes9x.yml for details."
|
||||
files: []
|
||||
89
emulators/citra.yml
Normal file
89
emulators/citra.yml
Normal file
@@ -0,0 +1,89 @@
|
||||
emulator: Citra / Lime3DS / Azahar
|
||||
type: standalone + libretro
|
||||
source: "https://github.com/azahar-emu/azahar"
|
||||
profiled_date: "2026-03-18"
|
||||
core_version: "Git"
|
||||
display_name: "Nintendo - 3DS (Citra)"
|
||||
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"
|
||||
64
emulators/clownmdemu.yml
Normal file
64
emulators/clownmdemu.yml
Normal file
@@ -0,0 +1,64 @@
|
||||
emulator: ClownMDEmu
|
||||
type: libretro
|
||||
source: "https://github.com/libretro/clownmdemu-libretro"
|
||||
profiled_date: "2026-03-18"
|
||||
core_version: "Git"
|
||||
display_name: "Sega - MD/CD (ClownMDEmu)"
|
||||
cores:
|
||||
- clownmdemu
|
||||
systems:
|
||||
- sega-megadrive
|
||||
- sega-megacd
|
||||
|
||||
notes: |
|
||||
ClownMDEmu is a Sega Mega Drive/Genesis and Mega CD emulator by Clownacy.
|
||||
Supports cartridge (bin/md/gen) and CD (cue/iso/chd) formats, plus a
|
||||
subsystem for cartridge+CD combo (Mega CD Mode 1).
|
||||
|
||||
The core has NO external BIOS file requirements. firmware_count = 0 in the
|
||||
libretro .info file confirms this.
|
||||
|
||||
Mega CD boot ROM: a custom open-source replacement boot ROM is compiled
|
||||
directly into the binary as a 16384-entry uint16 array
|
||||
(mega-cd-boot-rom.c included into bus-main-m68k.c:19-21). Source at
|
||||
https://github.com/Clownacy/clownmdemu-mcd-boot. No external CD BIOS
|
||||
files (bios_CD_E.bin, bios_CD_U.bin, bios_CD_J.bin) are needed or loaded.
|
||||
|
||||
TMSS (Trademark Security System): not implemented at all. No TMSS ROM is
|
||||
loaded or checked. The core boots games directly without the "Produced by
|
||||
or under license from Sega" screen.
|
||||
|
||||
The system directory (RETRO_ENVIRONMENT_GET_SYSTEM_DIRECTORY) is only used
|
||||
as a fallback path for Backup RAM (BuRAM) save files, not for BIOS loading.
|
||||
|
||||
CD add-on can be enabled for cartridge games via the "clownmdemu_cd_addon"
|
||||
core option to allow CD music features, but this uses the built-in boot
|
||||
ROM, not an external BIOS.
|
||||
|
||||
The core implements its own Mega CD BIOS call handler (MegaCDBIOSCall in
|
||||
bus-sub-m68k.c) via HLE (high-level emulation) of Sub-CPU BIOS functions
|
||||
including CDBIOS, CDCTRN, FDRSET, FDRCHG, DRVINIT, CDCSTOP, CDCSTAT,
|
||||
CDCREAD, and others.
|
||||
|
||||
files: []
|
||||
|
||||
analysis:
|
||||
tmss:
|
||||
supported: false
|
||||
notes: |
|
||||
TMSS is not implemented. No ROM loaded, no "Produced by Sega" check.
|
||||
No references to TMSS exist anywhere in the codebase.
|
||||
|
||||
megacd_bios:
|
||||
external_required: false
|
||||
builtin_boot_rom: true
|
||||
boot_rom_source: "https://github.com/Clownacy/clownmdemu-mcd-boot"
|
||||
boot_rom_location: "source/mega-cd-boot-rom.c (16384 uint16 entries = 32 KB)"
|
||||
bus_mapping: "0x400000-0x41FFFF (address & 0x20000 == 0)"
|
||||
source_ref: "bus-main-m68k.c:19-21, bus-main-m68k.c:484-494"
|
||||
bios_hle: true
|
||||
hle_source_ref: "bus-sub-m68k.c:64 (MegaCDBIOSCall)"
|
||||
notes: |
|
||||
The Mega CD boot ROM is an open-source replacement compiled into the
|
||||
binary. Sub-CPU BIOS calls are handled via HLE. No external Sega CD
|
||||
BIOS files (bios_CD_E/U/J.bin) are needed.
|
||||
14
emulators/craft.yml
Normal file
14
emulators/craft.yml
Normal file
@@ -0,0 +1,14 @@
|
||||
emulator: Craft
|
||||
type: game
|
||||
source: "https://github.com/libretro/Craft"
|
||||
profiled_date: "2026-03-18"
|
||||
core_version: "v1"
|
||||
display_name: "Minecraft (Craft)"
|
||||
cores: [craft]
|
||||
systems: []
|
||||
files: []
|
||||
notes: >
|
||||
Libretro port of Craft, a simple Minecraft clone by Michael Fogleman.
|
||||
Procedurally generates a voxel world with basic block placement and removal.
|
||||
All textures and shaders are compiled into the binary.
|
||||
No content file, BIOS, or system directory files required.
|
||||
62
emulators/crocods.yml
Normal file
62
emulators/crocods.yml
Normal file
@@ -0,0 +1,62 @@
|
||||
emulator: CrocoDS
|
||||
type: libretro
|
||||
source: "https://github.com/libretro/libretro-crocods"
|
||||
profiled_date: "2026-03-18"
|
||||
core_version: "v1"
|
||||
display_name: "Amstrad - CPC (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
|
||||
39
emulators/cruzes.yml
Normal file
39
emulators/cruzes.yml
Normal file
@@ -0,0 +1,39 @@
|
||||
emulator: Cruzes
|
||||
type: libretro
|
||||
source: "https://github.com/libretro/libretro-samples/tree/master/tests/cruzes"
|
||||
profiled_date: "2026-03-18"
|
||||
core_version: "v1.0"
|
||||
display_name: "Cruzes"
|
||||
cores:
|
||||
- cruzes
|
||||
systems:
|
||||
- game
|
||||
|
||||
notes: |
|
||||
Cruzes is an unfinished Picross puzzle game implemented as a libretro core,
|
||||
part of the libretro-samples repository. It is not an emulator -- it is a
|
||||
standalone game that runs directly within RetroArch.
|
||||
|
||||
The core sets supports_no_game to true (cruzes.c:772) and valid_extensions
|
||||
to an empty string (cruzes.c:749). The puzzle grid is hardcoded in
|
||||
retro_init (cruzes.c:706-717) via a string literal passed to load_challenge.
|
||||
|
||||
retro_load_game (cruzes.c:728-732) only sets the pixel format to RGB565
|
||||
and returns true. It never reads from the game_info pointer, never calls
|
||||
RETRO_ENVIRONMENT_GET_SYSTEM_DIRECTORY, and never opens any file from disk.
|
||||
|
||||
The font data (Carlito-Regular.ttf) is converted to C header files at build
|
||||
time by the ttf2c tool (font10.h, font16.h, font24.h) and compiled in.
|
||||
|
||||
No external BIOS, firmware, or system files are needed.
|
||||
|
||||
files: []
|
||||
|
||||
analysis:
|
||||
file_loading: none
|
||||
system_directory_used: false
|
||||
supports_no_game: true
|
||||
need_fullpath: false
|
||||
is_experimental: true
|
||||
license: 2-clause BSD
|
||||
author: Higor Euripedes
|
||||
59
emulators/daphne.yml
Normal file
59
emulators/daphne.yml
Normal file
@@ -0,0 +1,59 @@
|
||||
emulator: Daphne
|
||||
type: libretro
|
||||
source: "https://github.com/libretro/daphne"
|
||||
profiled_date: "2026-03-18"
|
||||
core_version: "Git"
|
||||
display_name: "Arcade (Daphne)"
|
||||
systems:
|
||||
- arcade-laserdisc
|
||||
|
||||
notes: |
|
||||
Daphne is a LaserDisc arcade game emulator ported to libretro. It emulates
|
||||
classic full-motion video arcade games like Dragon's Lair, Space Ace,
|
||||
Cliff Hanger, and others that used LaserDisc players for video output.
|
||||
|
||||
The core does NOT require any shared system BIOS or firmware files.
|
||||
The libretro-core-info file (daphne_libretro.info) declares no firmware.
|
||||
|
||||
Each game loads its own arcade ROM set from a ZIP file named after the game
|
||||
short name (e.g. lair.zip, cliff.zip, bega.zip). ROM files are individual
|
||||
arcade chip dumps loaded via the rom_def struct in each game class
|
||||
(daphne-1.0-src/game/*.cpp). CRC32 verification is performed at load time
|
||||
(game.cpp:769-778).
|
||||
|
||||
Content loading path (libretro.cpp:546-637):
|
||||
1. User points RetroArch to a .zip file (e.g. /Daphne/roms/lair.zip)
|
||||
2. The core strips the path to derive:
|
||||
- rom_name: game short name (e.g. "lair"), lowercased
|
||||
- rom_path: parent directory
|
||||
3. A home_dir is set to rom_path/.. (one level up from roms/)
|
||||
4. Additional data is expected relative to home_dir:
|
||||
- roms/ -> game ROM ZIPs
|
||||
- framefile/ -> frame description files (.txt)
|
||||
- sound/ -> sound samples
|
||||
- ram/ -> SRAM saves
|
||||
- pics/ -> overlay graphics
|
||||
|
||||
Expected directory layout:
|
||||
Daphne/
|
||||
roms/lair.zip
|
||||
roms/cliff.zip
|
||||
framefile/lair.txt
|
||||
framefile/cliff.txt
|
||||
sound/lair/ (optional, game-specific samples)
|
||||
|
||||
Supported games include (from README.md and libretro.cpp):
|
||||
lair (Dragon's Lair), ace (Space Ace), cliff (Cliff Hanger),
|
||||
bega (Bega's Battle), badlands (Badlands), esh (Esh's Aurunmilla),
|
||||
interstellar, mach3, sdq (Super Don Quix-ote), tq (Thayer's Quest),
|
||||
astron, galaxy, cobra, roadblaster, gpworld, lair2 (Dragon's Lair II),
|
||||
and many ROM revision variants.
|
||||
|
||||
The core is marked experimental. Savestates, cheats, and disk control are
|
||||
not supported. Requires full file path (retro_load_game uses path, not
|
||||
data buffer).
|
||||
|
||||
files: []
|
||||
# No shared BIOS or firmware files. All ROMs are per-game arcade chip
|
||||
# dumps distributed inside game-named ZIP archives. These are game content,
|
||||
# not system files managed by retroarch_system.
|
||||
44
emulators/desmume.yml
Normal file
44
emulators/desmume.yml
Normal file
@@ -0,0 +1,44 @@
|
||||
emulator: DeSmuME
|
||||
type: libretro
|
||||
source: "https://github.com/libretro/desmume"
|
||||
profiled_date: "2026-03-18"
|
||||
core_version: "SVN"
|
||||
display_name: "Nintendo - DS (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"
|
||||
70
emulators/dice.yml
Normal file
70
emulators/dice.yml
Normal file
@@ -0,0 +1,70 @@
|
||||
emulator: DICE
|
||||
type: libretro
|
||||
source: "https://github.com/mittonk/dice-libretro"
|
||||
profiled_date: "2026-03-18"
|
||||
core_version: "v0.4.2"
|
||||
display_name: "Arcade (DICE)"
|
||||
cores:
|
||||
- dice
|
||||
systems:
|
||||
- discrete-arcade
|
||||
|
||||
notes: |
|
||||
DICE (Discrete Integrated Circuit Emulator) emulates early arcade hardware
|
||||
built entirely from discrete logic components, with no CPU. dice-libretro is
|
||||
a libretro port by Ken Mitton, based on upstream DICE by Adam B.
|
||||
|
||||
No BIOS or firmware files required. The .info file declares firmware_count = 0.
|
||||
|
||||
Games fall into two categories:
|
||||
- ROM-based: shipped as MAME-style ZIP archives (filename matters).
|
||||
The core loads the ZIP passed by the frontend and matches individual ROM
|
||||
chips by CRC32 (chips/rom.cpp:41-218, RomDesc::get_data). If a chip's
|
||||
CRC does not match, the core walks all entries in the archive looking for
|
||||
a CRC match or alt_crc match.
|
||||
- ROM-less: games like Pong, Breakout, Rebound whose original PCBs had no
|
||||
ROM at all. These use .dmy dummy launcher files (empty placeholders) to
|
||||
tell RetroArch which game to start.
|
||||
|
||||
retro_get_system_info (libretro.cpp:122-137) sets need_fullpath = true,
|
||||
block_extract = true, valid_extensions = "zip|dmy|k1|a1|6c|c6|d2|s1|f4|a4|
|
||||
1da|da1|C4|4c|4d|d7|d4". The unusual extensions are raw ROM chip dumps for
|
||||
individual games (e.g. .k1 for antiaircraft, .a1 for attack).
|
||||
|
||||
dice.cpp:42-66 strips any "#inner.rom" suffix from the path (for ROM
|
||||
managers that expose zip contents) and passes the zip path to
|
||||
RomDesc::set_zip_filename.
|
||||
|
||||
retro_init (libretro.cpp:50-63) retrieves RETRO_ENVIRONMENT_GET_SYSTEM_DIRECTORY
|
||||
but uses it only for the retro_base_directory variable, not for loading any
|
||||
system files.
|
||||
|
||||
Games with ROMs (10 titles):
|
||||
antiaircraft.zip - 1 ROM chip (k1)
|
||||
attack.zip - 6 ROM chips (a1, b1, c1, d1, j6, k6), each with alt_crc
|
||||
cleansweep.zip - 3 ROM chips (6c, d7, k3)
|
||||
crashnscore.zip - 6 ROM chips (d2, e2, f6, f7, p6, p7)
|
||||
indy4.zip - 4 ROM chips (s1, s2, c1, c2)
|
||||
jetfighter.zip - 6 ROM chips (a4, j1, j5, k5, m1, r5)
|
||||
sharkjaws.zip - 2 ROM chips (1da/da1, 1db/db1)
|
||||
steeplechase.zip - 2 ROM chips (C4, D4); bugle ROM c8 dump missing
|
||||
stuntcycle.zip - 2 ROM chips (4d, 1fh)
|
||||
wipeout.zip - 2 ROM chips (d4, g7)
|
||||
|
||||
ROM-less games (11 titles, use .dmy dummy files):
|
||||
breakout, crossfire, gotcha, hiway, pinpong, pong, pongdoubles,
|
||||
quadrapong, rebound, spacerace, tvbasketball
|
||||
|
||||
files: []
|
||||
|
||||
analysis:
|
||||
rom_loading:
|
||||
method: "MAME-style ZIP, matched by CRC32 per RomDesc"
|
||||
source_ref: "chips/rom.cpp:41-218"
|
||||
zip_handling: "unzip library (unzip/), opened via libretro_zip_filename"
|
||||
game_count: 21
|
||||
rom_games: 10
|
||||
romless_games: 11
|
||||
filesystem_access: false
|
||||
system_directory_used: false
|
||||
bios_required: false
|
||||
14
emulators/dinothawr.yml
Normal file
14
emulators/dinothawr.yml
Normal file
@@ -0,0 +1,14 @@
|
||||
emulator: Dinothawr
|
||||
type: game
|
||||
source: "https://github.com/libretro/Dinothawr"
|
||||
profiled_date: "2026-03-18"
|
||||
core_version: "v1.0"
|
||||
display_name: "Dinothawr"
|
||||
cores: [dinothawr]
|
||||
systems: []
|
||||
files: []
|
||||
notes: >
|
||||
Puzzle game developed by the libretro team as a reference libretro core.
|
||||
Push blocks on ice to solve puzzles. Game data (maps, sprites, music)
|
||||
ships in the libretro repo and is loaded as content.
|
||||
No BIOS, firmware, or system directory files required.
|
||||
76
emulators/directxbox.yml
Normal file
76
emulators/directxbox.yml
Normal file
@@ -0,0 +1,76 @@
|
||||
emulator: DirectXBox
|
||||
type: libretro
|
||||
source: "https://github.com/libretro/libretro-directxbox"
|
||||
profiled_date: "2026-03-18"
|
||||
core_version: "alpha"
|
||||
display_name: "Microsoft - Xbox (DirectXbox)"
|
||||
cores:
|
||||
- directxbox
|
||||
systems:
|
||||
- xbox
|
||||
|
||||
# DirectXBox is an experimental original Xbox emulator written from scratch for
|
||||
# libretro. Status: alpha. Cromwell BIOS boots but cannot run games. Microsoft
|
||||
# BIOS does not boot yet (ATA/OHCI unimplemented). No audio, no HW acceleration.
|
||||
#
|
||||
# BIOS loading (libretro.cpp:199-210):
|
||||
# Paths are hardcoded relative to the system directory:
|
||||
# mcpx_rom_str = <system_dir>/mcpx_1.0.bin
|
||||
# bios_rom_str = <system_dir>/cromwell_1024.bin
|
||||
# Both are passed to Xbox::LoadBootRoms(flash, mcpx).
|
||||
# A commented-out alternative exists: xbox-3944.bin (Microsoft retail BIOS).
|
||||
#
|
||||
# LoadBootRoms (xbox.cpp:143-210):
|
||||
# 1. Opens flash ROM, validates size is a multiple of 0x10000
|
||||
# 2. Maps flash ROM to 0xFF000000-0xFFFFFFFF (mirrored to fill 16 MB)
|
||||
# 3. Opens MCPX ROM, validates size is exactly 512 bytes
|
||||
# 4. Overlays MCPX at the last 512 bytes of flash region
|
||||
# If MCPX path is empty, step 3-4 are skipped (Debug/Chihiro machines).
|
||||
# retro_load_game returns false if either file fails to load.
|
||||
#
|
||||
# Machine type (libretro_core_options.h:67-81):
|
||||
# Core option "libretro-xbox_machine-type" selects hardware revision.
|
||||
# Default "auto" detects from BIOS. Retail v1.0 uses McpxRomVersion::Mcpx1_0,
|
||||
# all other retail revisions use Mcpx1_1. Debug and Chihiro use McpxRomVersion::None
|
||||
# (no MCPX ROM needed).
|
||||
#
|
||||
# The .info file declares no firmware_count. Both files are mandatory for retail
|
||||
# machine types. The core has no fallback or built-in replacement.
|
||||
|
||||
files:
|
||||
- name: "mcpx_1.0.bin"
|
||||
path: "mcpx_1.0.bin"
|
||||
size: 512
|
||||
required: true
|
||||
note: >
|
||||
Xbox MCPX ROM (secret boot ROM on the southbridge). Contains the initial
|
||||
boot vector that loads the flash BIOS. Overlaid at the last 512 bytes of
|
||||
the 16 MB flash region (0xFFFFFE00-0xFFFFFFFF). Only needed for retail
|
||||
machine types; Debug and Chihiro skip this file.
|
||||
source_ref: "src/xbox.cpp:186-206, src/libretro/libretro.cpp:202"
|
||||
|
||||
- name: "cromwell_1024.bin"
|
||||
path: "cromwell_1024.bin"
|
||||
required: true
|
||||
note: >
|
||||
Cromwell open-source Xbox BIOS (1024 KB variant). Loaded as the flash ROM
|
||||
and mirrored across the 16 MB flash region at 0xFF000000. Size must be a
|
||||
multiple of 0x10000. This is the only BIOS that currently boots in the
|
||||
emulator. The Microsoft retail BIOS (xbox-3944.bin) is referenced in
|
||||
commented-out code but does not work yet.
|
||||
source_ref: "src/xbox.cpp:143-178, src/libretro/libretro.cpp:203-204"
|
||||
|
||||
notes:
|
||||
status: >
|
||||
Alpha stage. Only Cromwell BIOS boots. No commercial game compatibility.
|
||||
Missing ATA (hard drive), OHCI (USB/controllers), audio, and GPU HW
|
||||
acceleration. The core requires libvirt86 for x86 virtualization.
|
||||
microsoft_bios: >
|
||||
The source references xbox-3944.bin as an alternative flash ROM (Microsoft
|
||||
retail BIOS, typically 256 KB). It is commented out in libretro.cpp:204
|
||||
because ATA and OHCI hardware are not yet implemented, preventing the
|
||||
Microsoft BIOS from completing boot.
|
||||
machine_types: >
|
||||
xbox_database.cpp defines retail v1.0 through v1.6, debug, and chihiro
|
||||
variants. Each has different TV encoder (Conexant/Focus/XCalibur) and MCPX
|
||||
revision (X2/X3) settings. The core option auto-detects from the loaded BIOS.
|
||||
8
emulators/dirksimple.yml
Normal file
8
emulators/dirksimple.yml
Normal file
@@ -0,0 +1,8 @@
|
||||
emulator: "dirksimple"
|
||||
type: alias
|
||||
alias_of: "daphne"
|
||||
profiled_date: "2026-03-18"
|
||||
core_version: "0.2"
|
||||
display_name: "Laserdisc arcade game (DirkSimple)"
|
||||
note: "This core uses the same BIOS/firmware as daphne. See emulators/daphne.yml for details."
|
||||
files: []
|
||||
185
emulators/dolphin.yml
Normal file
185
emulators/dolphin.yml
Normal file
@@ -0,0 +1,185 @@
|
||||
emulator: Dolphin
|
||||
type: standalone + libretro
|
||||
source: "https://github.com/dolphin-emu/dolphin"
|
||||
profiled_date: "2026-03-18"
|
||||
core_version: "Git"
|
||||
display_name: "Nintendo - GameCube / Wii (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.
|
||||
23
emulators/dolphin_launcher.yml
Normal file
23
emulators/dolphin_launcher.yml
Normal file
@@ -0,0 +1,23 @@
|
||||
emulator: "Dolphin Launcher"
|
||||
type: launcher
|
||||
source: "https://github.com/RobLoach/libretro-dolphin-launcher"
|
||||
profiled_date: "2026-03-18"
|
||||
core_version: "1.2.0"
|
||||
display_name: "Nintendo - GameCube / Wii (Dolphin Launcher)"
|
||||
cores:
|
||||
- dolphin_launcher
|
||||
systems: [nintendo-gamecube, nintendo-wii]
|
||||
|
||||
notes: |
|
||||
Launcher stub that passes games to standalone Dolphin (dolphin-emu-nogui,
|
||||
dolphin-emu, or Flatpak org.DolphinEmu.dolphin-emu). The core itself does
|
||||
no emulation - it calls system() with the game path, waits for Dolphin to
|
||||
exit, then signals RETRO_ENVIRONMENT_SHUTDOWN.
|
||||
|
||||
Requires Dolphin installed separately on the host. All BIOS/firmware files
|
||||
(IPL.bin, DSP ROMs, fonts, Wii NAND) are managed by the standalone Dolphin
|
||||
install, not by RetroArch system/. See dolphin.yml for those files.
|
||||
|
||||
No system files, BIOS, or firmware required by this core.
|
||||
|
||||
files: []
|
||||
174
emulators/dosbox_core.yml
Normal file
174
emulators/dosbox_core.yml
Normal file
@@ -0,0 +1,174 @@
|
||||
emulator: DOSBox-core
|
||||
type: libretro
|
||||
source: "https://github.com/libretro/dosbox-core"
|
||||
profiled_date: "2026-03-18"
|
||||
core_version: "SVN"
|
||||
display_name: "DOS (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.
|
||||
142
emulators/dosbox_pure.yml
Normal file
142
emulators/dosbox_pure.yml
Normal file
@@ -0,0 +1,142 @@
|
||||
emulator: DOSBox Pure
|
||||
type: libretro
|
||||
source: "https://github.com/libretro/dosbox-pure"
|
||||
profiled_date: "2026-03-18"
|
||||
core_version: "0.9.9"
|
||||
display_name: "DOS (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.
|
||||
8
emulators/dosbox_svn.yml
Normal file
8
emulators/dosbox_svn.yml
Normal file
@@ -0,0 +1,8 @@
|
||||
emulator: "dosbox_svn"
|
||||
type: alias
|
||||
alias_of: "dosbox_core"
|
||||
profiled_date: "2026-03-18"
|
||||
core_version: "SVN"
|
||||
display_name: "DOS (DOSBox-SVN)"
|
||||
note: "This core uses the same BIOS/firmware as dosbox_core. See emulators/dosbox_core.yml for details."
|
||||
files: []
|
||||
8
emulators/dosbox_svn_ce.yml
Normal file
8
emulators/dosbox_svn_ce.yml
Normal file
@@ -0,0 +1,8 @@
|
||||
emulator: "dosbox_svn_ce"
|
||||
type: alias
|
||||
alias_of: "dosbox_core"
|
||||
profiled_date: "2026-03-18"
|
||||
core_version: "SVN CE"
|
||||
display_name: "DOS (DOSBox-SVN CE)"
|
||||
note: "This core uses the same BIOS/firmware as dosbox_core. See emulators/dosbox_core.yml for details."
|
||||
files: []
|
||||
33
emulators/doublecherrygb.yml
Normal file
33
emulators/doublecherrygb.yml
Normal file
@@ -0,0 +1,33 @@
|
||||
emulator: DoubleCherryGB
|
||||
type: libretro
|
||||
source: "https://github.com/TimOelrichs/doublecherryGB-libretro"
|
||||
profiled_date: "2026-03-18"
|
||||
core_version: "v0.17.0"
|
||||
display_name: "Nintendo - Game Boy / Color (DoubleCherryGB)"
|
||||
cores:
|
||||
- DoubleCherryGB
|
||||
systems:
|
||||
- nintendo-gb
|
||||
- nintendo-gbc
|
||||
|
||||
notes: |
|
||||
DoubleCherryGB is a Game Boy / Game Boy Color emulator forked from TGB Dual
|
||||
by GIGO and Hii. It adds multi-Game Boy emulation with virtual link cable
|
||||
support for up to 16 players, DMG-07 4-Player Adapter emulation, and
|
||||
built-in Pokemon distribution events.
|
||||
|
||||
No BIOS or boot ROM files are required or supported. The core does not
|
||||
call RETRO_ENVIRONMENT_GET_SYSTEM_DIRECTORY for firmware loading and does
|
||||
not attempt to open any files from the system directory.
|
||||
|
||||
In cpu.cpp:82, the program counter is initialized to 0x100 (post-boot ROM
|
||||
entry point), and cpu::reset() sets all registers to their post-boot
|
||||
values directly (AF=0x01B0 for DMG, 0x11B0 for CGB). This means the
|
||||
core completely bypasses the boot ROM sequence via HLE register setup.
|
||||
|
||||
The .info file at libretro-core-info confirms no firmware entries.
|
||||
|
||||
Supported extensions: gb, dmg, gbc, cgb, sgb.
|
||||
Library version: v0.18.0.
|
||||
|
||||
files: []
|
||||
57
emulators/doukutsu_rs.yml
Normal file
57
emulators/doukutsu_rs.yml
Normal file
@@ -0,0 +1,57 @@
|
||||
emulator: "doukutsu-rs"
|
||||
type: libretro
|
||||
source: "https://github.com/DrGlaucous/doukutsu-rs-libretro"
|
||||
profiled_date: "2026-03-18"
|
||||
core_version: "1.2.0 - 0.101.0"
|
||||
display_name: "Cave Story (drs)"
|
||||
cores:
|
||||
- doukutsu_rs
|
||||
systems:
|
||||
- cavestory
|
||||
|
||||
# doukutsu-rs (d-rs) is an open-source reimplementation of the Cave Story
|
||||
# (Doukutsu Monogatari) engine in Rust, ported to libretro by Dr. Glaucous.
|
||||
# It plays the original freeware Cave Story and Cave Story+ (Steam/Switch).
|
||||
#
|
||||
# The core does NOT use RetroArch's system directory for any BIOS or firmware.
|
||||
# get_system_directory() is defined in libretro.rs:1255 but never called by
|
||||
# the core (the import is commented out in core.rs:28).
|
||||
#
|
||||
# Instead, the core loads game data relative to the content path provided by
|
||||
# the frontend. The target is either a Doukutsu.exe (freeware) or a directory
|
||||
# containing a data/ subfolder (core.rs:226-233):
|
||||
#
|
||||
# content_path = "/path/to/Doukutsu.exe" (or directory for CS Switch)
|
||||
# resource_dir = parent_of(content_path) + "/data/"
|
||||
#
|
||||
# The data/ directory must contain the freeware Cave Story game assets:
|
||||
# npc.tbl, mrmap.bin, *.png, Stage/, Npc/, org/ (music), *.tsc (scripts)
|
||||
#
|
||||
# These are the original Pixel game files from Doukutsu.exe, extracted by
|
||||
# the doukutsu-rs/game-data repo (CSE2E-converted freeware data). They are
|
||||
# copyrighted by Daisuke "Pixel" Amaya but freely redistributable for
|
||||
# non-commercial use.
|
||||
#
|
||||
# Internal engine data (fonts, organya wavetables, gamecontrollerdb.txt,
|
||||
# touch overlay, lightmap) is compiled into the core binary via
|
||||
# include_bytes! in builtin_fs.rs, so nothing extra is needed in system/.
|
||||
#
|
||||
# The .info file (doukutsu_rs_libretro.info) declares:
|
||||
# supported_extensions = "exe|dll|so"
|
||||
# needs_fullpath = true
|
||||
# supports_no_game = true
|
||||
# notes = "(!) drs requires data ROM 'Cave Story (en).zip'."
|
||||
# "|(!) Load Content 'Doukutsu.exe', Also works with all other ports of CS"
|
||||
#
|
||||
# No firmware entries are declared in the .info file.
|
||||
# Valid extensions: exe, dll, so (loads the original game binary as content path)
|
||||
|
||||
notes: |
|
||||
No BIOS or firmware files required in the system directory.
|
||||
The core reads game data from a data/ subfolder next to the loaded content.
|
||||
Users must provide the Cave Story freeware game files (Doukutsu.exe and its
|
||||
data/ directory) or a Cave Story+ installation as the content to load.
|
||||
All engine-internal resources (fonts, wavetables, controller mappings) are
|
||||
built into the core binary.
|
||||
|
||||
files: []
|
||||
1077
emulators/duckstation.yml
Normal file
1077
emulators/duckstation.yml
Normal file
File diff suppressed because it is too large
Load Diff
122
emulators/easyrpg.yml
Normal file
122
emulators/easyrpg.yml
Normal file
@@ -0,0 +1,122 @@
|
||||
emulator: EasyRPG Player
|
||||
type: libretro
|
||||
source: "https://github.com/libretro/easyrpg-libretro"
|
||||
profiled_date: "2026-03-18"
|
||||
core_version: "0.8.1.0"
|
||||
display_name: "RPG Maker 2000/2003 (EasyRPG)"
|
||||
cores:
|
||||
- easyrpg
|
||||
systems:
|
||||
- rpgmaker
|
||||
|
||||
# EasyRPG Player is an open-source interpreter for RPG Maker 2000 and 2003
|
||||
# games. It does not require any BIOS or firmware files. All system data
|
||||
# files are optional and improve the experience (MIDI music, RTP assets).
|
||||
#
|
||||
# The official libretro .info file declares zero firmware entries.
|
||||
#
|
||||
# Directory layout under <system_dir>:
|
||||
# rtp/2000/ - RPG Maker 2000 Run-Time Package assets
|
||||
# rtp/2003/ - RPG Maker 2003 Run-Time Package assets
|
||||
# easyrpg-player/ - global config dir (auto-created)
|
||||
# easyrpg-player/Soundfont/ - user-provided .sf2 files
|
||||
# easyrpg-player/Font/ - user-provided font files
|
||||
#
|
||||
# RTP path resolution (filefinder_rtp.cpp:68-75, libretro build):
|
||||
# 1. <core_assets_dir>/rtp/<version>
|
||||
# 2. <system_dir>/rtp/<version>
|
||||
# where <version> is "2000" or "2003" depending on the game
|
||||
#
|
||||
# MIDI playback uses FluidSynth (fluidlite) with this soundfont search
|
||||
# order (decoder_fluidsynth.cpp:118-163):
|
||||
# 1. User-configured soundfont from settings
|
||||
# 2. "easyrpg.soundfont" (looked up via VFS, placed in game dir or system dir)
|
||||
# 3. FluidSynth default soundfont setting
|
||||
# 4. SDL_SOUNDFONTS environment variable
|
||||
# 5. /usr/share/soundfonts/FluidR3_GM.sf2 (Linux desktop)
|
||||
# 6. /usr/share/sounds/sf2/FluidR3_GM.sf2 (Linux desktop)
|
||||
#
|
||||
# WildMidi alternative MIDI (decoder_wildmidi.cpp:99-114, libretro build):
|
||||
# 1. <system_dir>/wildmidi.cfg
|
||||
# 2. <core_assets_dir>/wildmidi/wildmidi.cfg
|
||||
#
|
||||
# Games that include all their assets (FullPackageFlag) need nothing extra.
|
||||
# Games relying on RPG Maker RTP need the matching RTP installed.
|
||||
|
||||
notes: |
|
||||
No BIOS or firmware required. All files listed below are optional runtime
|
||||
data that improve compatibility and audio quality.
|
||||
|
||||
RTP (Run-Time Package) contains default assets (sprites, music, sound effects)
|
||||
shared by many RPG Maker games. Games that ship all their own assets do not
|
||||
need it. The RPG Maker 2000 and 2003 RTPs are separate packages. EasyRPG
|
||||
also supports translated/third-party RTP variants (Don Miguel, Kadokawa,
|
||||
Enterbrain, RPG Advocate, etc.) and auto-detects which one a game uses.
|
||||
|
||||
For MIDI music, a General MIDI soundfont in SF2 format is needed. Place it
|
||||
as easyrpg.soundfont in the system directory, or put any .sf2 file in
|
||||
easyrpg-player/Soundfont/ and select it from the core settings menu.
|
||||
|
||||
files:
|
||||
# ================================================================
|
||||
# Soundfont for MIDI playback (optional)
|
||||
# decoder_fluidsynth.cpp:125 - first custom path checked
|
||||
# ================================================================
|
||||
|
||||
- name: "easyrpg.soundfont"
|
||||
path: "easyrpg.soundfont"
|
||||
required: false
|
||||
source_ref: "decoder_fluidsynth.cpp:125, scene_logo.cpp:261"
|
||||
note: >
|
||||
General MIDI soundfont (SF2 format) for MIDI music playback. Many RPG
|
||||
Maker games use MIDI for background music. Without a soundfont, MIDI
|
||||
tracks are silent. Any GM-compatible .sf2 works. Can also be placed in
|
||||
easyrpg-player/Soundfont/ with any filename.
|
||||
|
||||
# ================================================================
|
||||
# WildMidi configuration (optional, alternative MIDI backend)
|
||||
# decoder_wildmidi.cpp:99-114
|
||||
# ================================================================
|
||||
|
||||
- name: "wildmidi.cfg"
|
||||
path: "wildmidi.cfg"
|
||||
required: false
|
||||
source_ref: "decoder_wildmidi.cpp:103-104"
|
||||
note: >
|
||||
WildMidi configuration file pointing to GUS patch sets for MIDI
|
||||
playback. Alternative to FluidSynth/SF2. Only used if WildMidi
|
||||
support is compiled in and FluidSynth is not available or disabled.
|
||||
|
||||
# ================================================================
|
||||
# RPG Maker 2000 RTP (optional, game-dependent)
|
||||
# filefinder_rtp.cpp:73-74 - <system_dir>/rtp/2000
|
||||
# ================================================================
|
||||
|
||||
- name: "RPG Maker 2000 RTP"
|
||||
path: "rtp/2000/"
|
||||
required: false
|
||||
type: directory
|
||||
source_ref: "filefinder_rtp.cpp:73-74"
|
||||
note: >
|
||||
Run-Time Package for RPG Maker 2000 games. Contains default tilesets,
|
||||
character sprites, battle animations, music, and sound effects. Only
|
||||
needed by games that reference RTP assets instead of bundling them.
|
||||
Multiple RTP variants exist (Japanese official, English official,
|
||||
Don Miguel English translation). EasyRPG auto-detects which variant
|
||||
a game expects.
|
||||
|
||||
# ================================================================
|
||||
# RPG Maker 2003 RTP (optional, game-dependent)
|
||||
# filefinder_rtp.cpp:73-74 - <system_dir>/rtp/2003
|
||||
# ================================================================
|
||||
|
||||
- name: "RPG Maker 2003 RTP"
|
||||
path: "rtp/2003/"
|
||||
required: false
|
||||
type: directory
|
||||
source_ref: "filefinder_rtp.cpp:73-74"
|
||||
note: >
|
||||
Run-Time Package for RPG Maker 2003 games. Same concept as the 2000
|
||||
RTP but with additional battle system assets for the side-view ATB
|
||||
combat. Multiple variants exist (Japanese official, English official,
|
||||
RPG Advocate English, Vlad Russian, Korean, Traditional Chinese).
|
||||
36
emulators/ecwolf.yml
Normal file
36
emulators/ecwolf.yml
Normal file
@@ -0,0 +1,36 @@
|
||||
emulator: ECWolf
|
||||
type: libretro
|
||||
source: "https://github.com/libretro/ecwolf"
|
||||
profiled_date: "2026-03-18"
|
||||
core_version: ""
|
||||
display_name: "Wolfenstein 3D (ECWolf)"
|
||||
display_name: "Wolfenstein 3D (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.
|
||||
70
emulators/emuscv.yml
Normal file
70
emulators/emuscv.yml
Normal file
@@ -0,0 +1,70 @@
|
||||
emulator: EmuSCV
|
||||
type: libretro
|
||||
source: "https://github.com/wzcwzc/emuscv"
|
||||
profiled_date: "2026-03-18"
|
||||
core_version: ""
|
||||
display_name: "EPOCH/YENO Super Cassette Vision"
|
||||
display_name: "EPOCH/YENO Super Cassette Vision"
|
||||
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"
|
||||
46
emulators/emux_chip8.yml
Normal file
46
emulators/emux_chip8.yml
Normal file
@@ -0,0 +1,46 @@
|
||||
emulator: "emux (CHIP-8)"
|
||||
type: libretro
|
||||
source: "https://github.com/libretro/emux"
|
||||
profiled_date: "2026-03-18"
|
||||
core_version: "0.1"
|
||||
display_name: "CHIP-8 (Emux CHIP-8)"
|
||||
cores:
|
||||
- emux_chip8
|
||||
systems:
|
||||
- chip8
|
||||
|
||||
notes: |
|
||||
emux is a multi-system emulator supporting CHIP-8, Game Boy, NES, and
|
||||
Sega Master System as separate libretro cores. The CHIP-8 core
|
||||
(emux_chip8) does not require any external BIOS or firmware files.
|
||||
|
||||
The CHIP-8 architecture has no real BIOS. The standard font/character
|
||||
set (hex digits 0-F, 5 bytes each = 80 bytes) is hardcoded in
|
||||
mach/chip8.c:40-57 as the char_mem[] array. On reset, this font data
|
||||
is copied into the beginning of the 4 KB RAM (address 0x000-0x04F)
|
||||
via memcpy in chip8_reset() at mach/chip8.c:105.
|
||||
|
||||
ROM loading: the game ROM is loaded via file_open(PATH_DATA, ...) in
|
||||
chip8_init() at mach/chip8.c:68-74. On reset, ROM contents are copied
|
||||
into RAM starting at address 0x200 (mach/chip8.c:113). The core
|
||||
accepts .ch8, .bin, and .rom extensions (libretro/Makefile.rules:20).
|
||||
|
||||
Memory map from mach/chip8.c:17-20:
|
||||
0x000-0x04F font/character data (hardcoded)
|
||||
0x050-0x1FF unused
|
||||
0x200-0xFFF program ROM + working RAM
|
||||
|
||||
The libretro frontend retrieves the system directory via
|
||||
RETRO_ENVIRONMENT_GET_SYSTEM_DIRECTORY (libretro/libretro.c:34) but
|
||||
only uses it as a general config path, not for BIOS loading.
|
||||
|
||||
files: []
|
||||
|
||||
platform_details:
|
||||
bios_mapping:
|
||||
target: "none"
|
||||
source_ref: "mach/chip8.c:40-57, mach/chip8.c:98-115"
|
||||
notes: |
|
||||
No external BIOS. The 80-byte character font is compiled into the
|
||||
binary as char_mem[] and memcpy'd into RAM[0x000] on every reset.
|
||||
This is standard CHIP-8 behavior -- all interpreters embed the font.
|
||||
8
emulators/emux_gb.yml
Normal file
8
emulators/emux_gb.yml
Normal file
@@ -0,0 +1,8 @@
|
||||
emulator: "emux_gb"
|
||||
type: alias
|
||||
alias_of: "gambatte"
|
||||
profiled_date: "2026-03-18"
|
||||
core_version: "0.1"
|
||||
display_name: "Nintendo - Game Boy / Color (Emux GB)"
|
||||
note: "This core uses the same BIOS/firmware as gambatte. See emulators/gambatte.yml for details."
|
||||
files: []
|
||||
8
emulators/emux_nes.yml
Normal file
8
emulators/emux_nes.yml
Normal file
@@ -0,0 +1,8 @@
|
||||
emulator: "emux_nes"
|
||||
type: alias
|
||||
alias_of: "fceumm"
|
||||
profiled_date: "2026-03-18"
|
||||
core_version: "0.1"
|
||||
display_name: "Nintendo - NES / Famicom (Emux NES)"
|
||||
note: "This core uses the same BIOS/firmware as fceumm. See emulators/fceumm.yml for details."
|
||||
files: []
|
||||
8
emulators/emux_sms.yml
Normal file
8
emulators/emux_sms.yml
Normal file
@@ -0,0 +1,8 @@
|
||||
emulator: "emux_sms"
|
||||
type: alias
|
||||
alias_of: "gearsystem"
|
||||
profiled_date: "2026-03-18"
|
||||
core_version: "0.1"
|
||||
display_name: "Sega - Master System (Emux SMS)"
|
||||
note: "This core uses the same BIOS/firmware as gearsystem. See emulators/gearsystem.yml for details."
|
||||
files: []
|
||||
312
emulators/ep128emu.yml
Normal file
312
emulators/ep128emu.yml
Normal file
@@ -0,0 +1,312 @@
|
||||
emulator: ep128emu-core
|
||||
type: libretro
|
||||
source: "https://github.com/libretro/ep128emu-core"
|
||||
profiled_date: "2026-03-18"
|
||||
core_version: "v1.2.10"
|
||||
display_name: "Enterprise - 64/128 (ep128emu)"
|
||||
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"
|
||||
48
emulators/fake08.yml
Normal file
48
emulators/fake08.yml
Normal file
@@ -0,0 +1,48 @@
|
||||
emulator: FAKE-08
|
||||
type: libretro
|
||||
source: "https://github.com/jtothebell/fake-08"
|
||||
profiled_date: "2026-03-18"
|
||||
core_version: "v0.0.2.19"
|
||||
display_name: "PICO-8 (FAKE-08)"
|
||||
cores:
|
||||
- fake08
|
||||
systems:
|
||||
- pico8
|
||||
|
||||
notes: |
|
||||
FAKE-08 is an open-source PICO-8 compatible runtime for running .p8 and
|
||||
.p8.png cartridges on platforms where the official PICO-8 binary is not
|
||||
available (3DS, Vita, Switch, Wii U, various handhelds).
|
||||
|
||||
The core retrieves RETRO_ENVIRONMENT_GET_SYSTEM_DIRECTORY in
|
||||
retro_set_environment() (libretro.cpp:162-163) but never uses the value.
|
||||
No file is loaded from the system directory. The PICO-8 boot sequence,
|
||||
global Lua functions, and default cart menu are compiled directly into the
|
||||
binary as string constants (p8GlobalLuaFunctions.h, DefaultCart.h).
|
||||
|
||||
When no ROM is passed (supports_no_game = true), the core queues its
|
||||
built-in BIOS cart "__FAKE08-BIOS.p8" (libretro.cpp:751). This is not
|
||||
an external file -- it is generated internally by the VM.
|
||||
|
||||
The core accepts .p8 (text) and .png (cartridge-as-image) formats
|
||||
(libretro.cpp:258). Content is loaded either via the libretro data buffer
|
||||
or full path depending on the _NEED_FULL_PATH_ compile flag.
|
||||
|
||||
files: []
|
||||
|
||||
platform_details:
|
||||
cartridge_format:
|
||||
extensions: "p8, png"
|
||||
source_ref: "platform/libretro/libretro.cpp:258"
|
||||
notes: |
|
||||
.p8 is the PICO-8 text cartridge format containing Lua code, gfx,
|
||||
gff, map, sfx, and music sections. .png is the cartridge-as-image
|
||||
format where cart data is steganographically encoded in the image.
|
||||
|
||||
runtime:
|
||||
source_ref: "source/vm.h, source/p8GlobalLuaFunctions.h"
|
||||
notes: |
|
||||
The FAKE-08 VM reimplements the PICO-8 API (128x128 screen, 16 colors,
|
||||
4-channel audio, Lua scripting) entirely in C++. The built-in BIOS
|
||||
provides a cart browser and error display. Audio runs at 22050 Hz
|
||||
with save state support via custom serialization (libretro.cpp:517-736).
|
||||
8
emulators/fbalpha2012.yml
Normal file
8
emulators/fbalpha2012.yml
Normal file
@@ -0,0 +1,8 @@
|
||||
emulator: "fbalpha2012"
|
||||
type: alias
|
||||
alias_of: "fbneo"
|
||||
profiled_date: "2026-03-18"
|
||||
core_version: "v0.2.97.29"
|
||||
display_name: "Arcade (FB Alpha 2012)"
|
||||
note: "This core uses the same BIOS/firmware as fbneo. See emulators/fbneo.yml for details."
|
||||
files: []
|
||||
8
emulators/fbalpha2012_cps1.yml
Normal file
8
emulators/fbalpha2012_cps1.yml
Normal file
@@ -0,0 +1,8 @@
|
||||
emulator: "fbalpha2012_cps1"
|
||||
type: alias
|
||||
alias_of: "fbneo"
|
||||
profiled_date: "2026-03-18"
|
||||
core_version: "v0.2.97.28"
|
||||
display_name: "Arcade (FB Alpha 2012 CPS-1)"
|
||||
note: "This core uses the same BIOS/firmware as fbneo. See emulators/fbneo.yml for details."
|
||||
files: []
|
||||
8
emulators/fbalpha2012_cps2.yml
Normal file
8
emulators/fbalpha2012_cps2.yml
Normal file
@@ -0,0 +1,8 @@
|
||||
emulator: "fbalpha2012_cps2"
|
||||
type: alias
|
||||
alias_of: "fbneo"
|
||||
profiled_date: "2026-03-18"
|
||||
core_version: "v0.2.97.28"
|
||||
display_name: "Arcade (FB Alpha 2012 CPS-2)"
|
||||
note: "This core uses the same BIOS/firmware as fbneo. See emulators/fbneo.yml for details."
|
||||
files: []
|
||||
8
emulators/fbalpha2012_cps3.yml
Normal file
8
emulators/fbalpha2012_cps3.yml
Normal file
@@ -0,0 +1,8 @@
|
||||
emulator: "fbalpha2012_cps3"
|
||||
type: alias
|
||||
alias_of: "fbneo"
|
||||
profiled_date: "2026-03-18"
|
||||
core_version: "v0.2.97.29"
|
||||
display_name: "Arcade (FB Alpha 2012 CPS-3)"
|
||||
note: "This core uses the same BIOS/firmware as fbneo. See emulators/fbneo.yml for details."
|
||||
files: []
|
||||
8
emulators/fbalpha2012_neogeo.yml
Normal file
8
emulators/fbalpha2012_neogeo.yml
Normal file
@@ -0,0 +1,8 @@
|
||||
emulator: "fbalpha2012_neogeo"
|
||||
type: alias
|
||||
alias_of: "fbneo"
|
||||
profiled_date: "2026-03-18"
|
||||
core_version: "v0.2.97.29"
|
||||
display_name: "Arcade (FB Alpha 2012 Neo Geo)"
|
||||
note: "This core uses the same BIOS/firmware as fbneo. See emulators/fbneo.yml for details."
|
||||
files: []
|
||||
1346
emulators/fbneo.yml
Normal file
1346
emulators/fbneo.yml
Normal file
File diff suppressed because it is too large
Load Diff
55
emulators/fceumm.yml
Normal file
55
emulators/fceumm.yml
Normal file
@@ -0,0 +1,55 @@
|
||||
emulator: FCEUmm
|
||||
type: libretro
|
||||
source: "https://github.com/libretro/libretro-fceumm"
|
||||
profiled_date: "2026-03-18"
|
||||
core_version: "SVN"
|
||||
display_name: "Nintendo - NES / Famicom (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."
|
||||
19
emulators/ffmpeg.yml
Normal file
19
emulators/ffmpeg.yml
Normal file
@@ -0,0 +1,19 @@
|
||||
emulator: FFmpeg
|
||||
type: utility
|
||||
source: "https://github.com/libretro/RetroArch"
|
||||
profiled_date: "2026-03-18"
|
||||
core_version: "Git"
|
||||
display_name: "FFmpeg"
|
||||
cores:
|
||||
- ffmpeg
|
||||
systems: []
|
||||
|
||||
notes: |
|
||||
FFmpeg core is a media player built into RetroArch using libavcodec,
|
||||
libavformat, and libswscale. Plays video and audio files directly
|
||||
within the RetroArch interface.
|
||||
|
||||
No BIOS or system files required. Codec support depends on the
|
||||
FFmpeg libraries linked at build time.
|
||||
|
||||
files: []
|
||||
45
emulators/fixgb.yml
Normal file
45
emulators/fixgb.yml
Normal file
@@ -0,0 +1,45 @@
|
||||
emulator: fixGB
|
||||
type: libretro
|
||||
source: "https://github.com/libretro/fixGB"
|
||||
profiled_date: "2026-03-18"
|
||||
core_version: "Alpha v0.8.2"
|
||||
display_name: "Nintendo - Game Boy / Color (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."
|
||||
8
emulators/fixnes.yml
Normal file
8
emulators/fixnes.yml
Normal file
@@ -0,0 +1,8 @@
|
||||
emulator: "fixnes"
|
||||
type: alias
|
||||
alias_of: "fceumm"
|
||||
profiled_date: "2026-03-18"
|
||||
core_version: "Alpha v1.3.1"
|
||||
display_name: "Nintendo - NES / Famicom (fixNES)"
|
||||
note: "This core uses the same BIOS/firmware as fceumm. See emulators/fceumm.yml for details."
|
||||
files: []
|
||||
188
emulators/flycast.yml
Normal file
188
emulators/flycast.yml
Normal file
@@ -0,0 +1,188 @@
|
||||
emulator: Flycast
|
||||
type: standalone + libretro
|
||||
source: "https://github.com/flyinghead/flycast"
|
||||
profiled_date: "2026-03-18"
|
||||
core_version: "Git"
|
||||
display_name: "Sega - Dreamcast/Naomi (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"
|
||||
188
emulators/fmsx.yml
Normal file
188
emulators/fmsx.yml
Normal file
@@ -0,0 +1,188 @@
|
||||
emulator: fMSX
|
||||
type: libretro
|
||||
source: "https://github.com/libretro/fmsx-libretro"
|
||||
profiled_date: "2026-03-18"
|
||||
core_version: "6.0"
|
||||
display_name: "Microsoft - MSX (fMSX)"
|
||||
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)."
|
||||
84
emulators/freechaf.yml
Normal file
84
emulators/freechaf.yml
Normal file
@@ -0,0 +1,84 @@
|
||||
emulator: FreeChaF
|
||||
type: libretro
|
||||
source: "https://github.com/libretro/FreeChaF"
|
||||
profiled_date: "2026-03-18"
|
||||
core_version: "GIT"
|
||||
display_name: "Fairchild - ChannelF (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.
|
||||
74
emulators/freeintv.yml
Normal file
74
emulators/freeintv.yml
Normal file
@@ -0,0 +1,74 @@
|
||||
emulator: FreeIntv
|
||||
type: libretro
|
||||
source: "https://github.com/libretro/FreeIntv"
|
||||
profiled_date: "2026-03-18"
|
||||
core_version: "2018.1.5"
|
||||
display_name: "Mattel - Intellivision (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.
|
||||
52
emulators/freeintv_ts_overlay.yml
Normal file
52
emulators/freeintv_ts_overlay.yml
Normal file
@@ -0,0 +1,52 @@
|
||||
emulator: "FreeIntv (Touchscreen Overlay)"
|
||||
type: libretro
|
||||
source: "https://github.com/libretro/FreeIntv"
|
||||
profiled_date: "2026-03-18"
|
||||
core_version: "v2025.11.1"
|
||||
display_name: "Mattel Intellivision (FreeIntvTSOverlay)"
|
||||
cores:
|
||||
- freeintv
|
||||
systems:
|
||||
- intellivision
|
||||
|
||||
notes: |
|
||||
Same repo and core as FreeIntv. The touchscreen overlay feature is a
|
||||
compile-time option within the same codebase, not a separate core. The
|
||||
library_name is "freeintv" (src/libretro.c:1413), identical to the
|
||||
non-overlay build.
|
||||
|
||||
The overlay system adds an onscreen interactive keypad for touchscreen
|
||||
and mouse input. It is toggled via core option freeintv_multiscreen_overlay
|
||||
(src/libretro_core_options.h:82-85). When enabled, the display splits into
|
||||
game + keypad side-by-side (multi-screen mode).
|
||||
|
||||
Visual assets (controller base frame, banner, default keypad image) are
|
||||
compiled into the binary from C headers: banner.h, keypad_frame_graphic.h,
|
||||
default_keypad_image.h. These are NOT files the user needs to provide.
|
||||
|
||||
ROM-specific overlays are optional 370x600 PNG files placed by the user in
|
||||
system/freeintv_overlays/<rom_name>.png. These are cosmetic per-game keypad
|
||||
images and are not BIOS files.
|
||||
|
||||
BIOS loading is unchanged from the base FreeIntv core. retro_load_game()
|
||||
(src/libretro.c:1169-1174) loads exec.bin and grom.bin from the system
|
||||
directory with no variation based on overlay mode.
|
||||
|
||||
bios_identical_to: freeintv
|
||||
|
||||
files:
|
||||
- name: "exec.bin"
|
||||
system: intellivision
|
||||
required: true
|
||||
size: 8192
|
||||
md5: 62e761035cb657903761800f4437b8af
|
||||
note: "Executive ROM. Same file as base FreeIntv."
|
||||
source_ref: "src/intv.c:47-71, src/libretro.c:1169"
|
||||
|
||||
- name: "grom.bin"
|
||||
system: intellivision
|
||||
required: true
|
||||
size: 2048
|
||||
md5: 0cd5946c6473e42e8e4c2137785e427f
|
||||
note: "Graphics ROM. Same file as base FreeIntv."
|
||||
source_ref: "src/intv.c:73-98, src/libretro.c:1173"
|
||||
42
emulators/freej2me.yml
Normal file
42
emulators/freej2me.yml
Normal file
@@ -0,0 +1,42 @@
|
||||
emulator: FreeJ2ME
|
||||
type: libretro
|
||||
source: "https://github.com/hex007/freej2me"
|
||||
profiled_date: "2026-03-18"
|
||||
core_version: "GIT"
|
||||
display_name: "Mobile - J2ME (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."
|
||||
90
emulators/frodo.yml
Normal file
90
emulators/frodo.yml
Normal file
@@ -0,0 +1,90 @@
|
||||
emulator: Frodo
|
||||
type: libretro
|
||||
cores: [frodo]
|
||||
source: "https://github.com/libretro/frodo-libretro"
|
||||
profiled_date: "2026-03-18"
|
||||
core_version: "v4.2"
|
||||
display_name: "Commodore - C64 (Frodo)"
|
||||
systems: [commodore-c64]
|
||||
|
||||
notes: |
|
||||
Frodo is a Commodore 64 emulator by Christian Bauer (Frodo V4.2), ported
|
||||
to libretro. It emulates the C64 (MOS 6510, VIC-II, SID, CIA x2) and an
|
||||
optional 1541 floppy drive.
|
||||
|
||||
All four ROMs are embedded directly in the core binary as compiled-in
|
||||
byte arrays (Basic_ROM.h, Kernal_ROM.h, Char_ROM.h, 1541_ROM.h). No
|
||||
external BIOS files are required for normal operation.
|
||||
|
||||
The core attempts to load external ROM files from the current working
|
||||
directory (DATADIR is empty in the libretro build) at startup via
|
||||
load_rom_files() in main.cpp. If any file fails to open or has the wrong
|
||||
size, the embedded ROM is used as fallback via memcpy(). The filenames
|
||||
are hardcoded with spaces, no subdirectory prefix.
|
||||
|
||||
ROM loading order in load_rom_files():
|
||||
1. "Basic ROM" (8192 bytes, BASIC_ROM_SIZE 0x2000) -> TheC64->Basic
|
||||
2. "Kernal ROM" (8192 bytes, KERNAL_ROM_SIZE 0x2000) -> TheC64->Kernal
|
||||
3. "Char ROM" (4096 bytes, CHAR_ROM_SIZE 0x1000) -> TheC64->Char
|
||||
4. "1541 ROM" (16384 bytes, DRIVE_ROM_SIZE 0x4000) -> TheC64->ROM1541
|
||||
|
||||
The core does NOT construct paths relative to retro_system_directory for
|
||||
ROM loading. The system directory variable is fetched in retro_init() but
|
||||
only used for the save directory fallback, not for ROM path construction.
|
||||
DATADIR defaults to "" (empty string) when not defined by the build
|
||||
system, so the filenames resolve to bare names in the cwd. In practice,
|
||||
the external ROM loading path is effectively unused in the libretro build
|
||||
since the cwd is unpredictable and the filenames contain spaces.
|
||||
|
||||
The Kernal ROM is patched at runtime by PatchKernal() in C64.cpp for
|
||||
fast reset (addresses 0x1D84-0x1D85) and IEC bus replacement when 1541
|
||||
processor emulation is enabled (multiple addresses in the 0x0D00-0x0E00
|
||||
range are patched with 0xF2 trap opcodes).
|
||||
|
||||
The 1541 drive ROM is also patched at Reset() in C64.cpp: ROM checksum
|
||||
verification is disabled (0x2AE4-0x2AE9 NOPed), DOS idle loop is
|
||||
trapped (0x2C9B), and write sector / format track operations are
|
||||
intercepted (0x3594-0x3598, 0x3B0C-0x3B0D).
|
||||
|
||||
Source: Src/main.cpp:67-115 (ROM defines, load_rom, load_rom_files),
|
||||
Src/C64.h:33-37 (ROM size constants), Src/C64.cpp:221-284 (PatchKernal),
|
||||
Src/C64.cpp:738-746 (Reset ROM patching),
|
||||
Src/Basic_ROM.h, Src/Kernal_ROM.h, Src/Char_ROM.h, Src/1541_ROM.h
|
||||
(embedded ROM arrays)
|
||||
|
||||
files:
|
||||
- name: "Basic ROM"
|
||||
system: commodore-c64
|
||||
description: "C64 BASIC V2 ROM"
|
||||
required: false
|
||||
embedded: true
|
||||
size: 8192
|
||||
note: "Embedded as builtin_basic_rom[] in Basic_ROM.h. External file never loaded in practice (DATADIR is empty, path is bare filename in cwd)."
|
||||
source_ref: "Src/main.cpp:71,77,100-102"
|
||||
|
||||
- name: "Kernal ROM"
|
||||
system: commodore-c64
|
||||
description: "C64 Kernal ROM"
|
||||
required: false
|
||||
embedded: true
|
||||
size: 8192
|
||||
note: "Embedded as builtin_kernal_rom[] in Kernal_ROM.h. Patched at runtime for fast reset and 1541 IEC traps."
|
||||
source_ref: "Src/main.cpp:72,78,104-106"
|
||||
|
||||
- name: "Char ROM"
|
||||
system: commodore-c64
|
||||
description: "C64 Character Generator ROM"
|
||||
required: false
|
||||
embedded: true
|
||||
size: 4096
|
||||
note: "Embedded as builtin_char_rom[] in Char_ROM.h. Used by VIC-II for text/bitmap rendering."
|
||||
source_ref: "Src/main.cpp:73,79,108-110"
|
||||
|
||||
- name: "1541 ROM"
|
||||
system: commodore-c64
|
||||
description: "Commodore 1541 floppy drive ROM"
|
||||
required: false
|
||||
embedded: true
|
||||
size: 16384
|
||||
note: "Embedded as builtin_drive_rom[] in 1541_ROM.h. Patched at runtime to disable checksum and trap disk I/O."
|
||||
source_ref: "Src/main.cpp:74,80,112-114"
|
||||
8
emulators/fsuae.yml
Normal file
8
emulators/fsuae.yml
Normal file
@@ -0,0 +1,8 @@
|
||||
emulator: "fsuae"
|
||||
type: alias
|
||||
alias_of: "puae"
|
||||
profiled_date: "2026-03-18"
|
||||
core_version: "v2.7.15"
|
||||
display_name: "Commodore - Amiga (FS-UAE)"
|
||||
note: "This core uses the same BIOS/firmware as puae. See emulators/puae.yml for details."
|
||||
files: []
|
||||
399
emulators/fuse.yml
Normal file
399
emulators/fuse.yml
Normal file
@@ -0,0 +1,399 @@
|
||||
emulator: Fuse
|
||||
type: libretro
|
||||
source: "https://github.com/libretro/fuse-libretro"
|
||||
profiled_date: "2026-03-18"
|
||||
core_version: "1.6.0"
|
||||
display_name: "Sinclair - ZX Spectrum (Fuse)"
|
||||
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.
|
||||
97
emulators/galaksija.yml
Normal file
97
emulators/galaksija.yml
Normal file
@@ -0,0 +1,97 @@
|
||||
emulator: galaksija
|
||||
type: libretro
|
||||
source: "https://github.com/libretro/galaxy-libretro"
|
||||
profiled_date: "2026-03-18"
|
||||
core_version: "v0.1"
|
||||
display_name: "Elektronika Inženjering - Galaksija (Galaksija)"
|
||||
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.
|
||||
81
emulators/gam4980.yml
Normal file
81
emulators/gam4980.yml
Normal file
@@ -0,0 +1,81 @@
|
||||
emulator: GAM4980
|
||||
type: libretro
|
||||
source: "https://github.com/ThisBoringWorld/gam4980"
|
||||
profiled_date: "2026-03-18"
|
||||
core_version: "0.2"
|
||||
display_name: "GAM4980"
|
||||
cores:
|
||||
- gam4980
|
||||
systems:
|
||||
- bbk-longman-4980
|
||||
|
||||
# GAM4980 is a BBK Longman 4980 electronic dictionary game emulator for
|
||||
# libretro. Original code from https://codeberg.org/iyzsong/gam4980, based
|
||||
# on the BA4988 BBK simulator by Wuyun.
|
||||
#
|
||||
# The device uses a 6502-based CPU with banked ROM access.
|
||||
#
|
||||
# ROM loading (src/libretro.c:1171-1177, retro_init):
|
||||
# The core gets the RetroArch system directory via RETRO_ENVIRONMENT_GET_SYSTEM_DIRECTORY,
|
||||
# appends "/gam4980" to build the ROM directory path, then calls sys_init(romdir).
|
||||
#
|
||||
# sys_init (src/libretro.c:693-723):
|
||||
# Opens romdir/8.BIN and reads 0x200000 bytes (2 MB) into sys.rom_8 (font ROM).
|
||||
# Opens romdir/E.BIN and reads 0x200000 bytes (2 MB) into sys.rom_e (OS ROM).
|
||||
# Both files are mandatory -- no fallback, no error handling. The core will
|
||||
# crash if either file is missing.
|
||||
#
|
||||
# Memory map (src/libretro.c:109-110, 300-305):
|
||||
# 0x800000-0x9FFFFF rom_8 (font ROM, 8.BIN)
|
||||
# 0xE00000-0xFFFFFF rom_e (OS ROM, E.BIN)
|
||||
# These ROMs must be dumped from a physical BBK Longman 4980 dictionary.
|
||||
#
|
||||
# The .info file does not declare firmware entries. The core is marked
|
||||
# is_experimental = true.
|
||||
|
||||
notes: |
|
||||
Place 8.BIN and E.BIN in the RetroArch system/gam4980/ subdirectory.
|
||||
Both files must be 2 MB dumps from a BBK Longman 4980 dictionary:
|
||||
8.BIN - font ROM, dumped from address range 0x800000-0x9FFFFF
|
||||
E.BIN - OS ROM, dumped from address range 0xE00000-0xFFFFFF
|
||||
The core will crash without these files (no error handling in sys_init).
|
||||
Game files use the .gam extension.
|
||||
|
||||
files:
|
||||
- name: "gam4980/8.BIN"
|
||||
size: 2097152
|
||||
md5: ddfc001a6859d63ed46368ea7fe9f20c
|
||||
sha1: 062067e6d661c3d3e10d910435be4a59db1bee9f
|
||||
required: true
|
||||
system: bbk-longman-4980
|
||||
bundled: false
|
||||
note: "Font ROM (2 MB). Loaded at 0x800000. Dumped from physical device (src/libretro.c:716-718)."
|
||||
source_ref: "src/libretro.c:716"
|
||||
|
||||
- name: "gam4980/E.BIN"
|
||||
size: 2097152
|
||||
md5: 72a16fd0d2453108321edc65cd347c77
|
||||
sha1: b486b6eda5cd7e79bb5605d1fbe36eb88bfc6724
|
||||
required: true
|
||||
system: bbk-longman-4980
|
||||
bundled: false
|
||||
note: "OS ROM (2 MB). Loaded at 0xE00000. Dumped from physical device (src/libretro.c:720-722)."
|
||||
source_ref: "src/libretro.c:720"
|
||||
|
||||
platform_details:
|
||||
bios_mapping:
|
||||
target: "0x800000-0x9FFFFF (font), 0xE00000-0xFFFFFF (OS) in banked address space"
|
||||
source_ref: "src/libretro.c:109-110, 300-305"
|
||||
notes: |
|
||||
sys.rom_8 and sys.rom_e are flat 2 MB arrays. The CPU accesses them
|
||||
through bank-switched memory (PA() macro resolves virtual to physical
|
||||
address). rom_8_vread and rom_e_vread handle indirect reads via
|
||||
the banking system.
|
||||
|
||||
load_path:
|
||||
source_ref: "src/libretro.c:1173-1177"
|
||||
notes: |
|
||||
retro_init() builds the path as {system_directory}/gam4980/ and
|
||||
passes it to sys_init(). Files must be named exactly 8.BIN and
|
||||
E.BIN (case sensitive on Linux). No .info firmware declarations
|
||||
exist, so RetroArch won't warn about missing files at scan time.
|
||||
56
emulators/gambatte.yml
Normal file
56
emulators/gambatte.yml
Normal file
@@ -0,0 +1,56 @@
|
||||
emulator: Gambatte
|
||||
type: libretro
|
||||
source: "https://github.com/libretro/gambatte-libretro"
|
||||
profiled_date: "2026-03-18"
|
||||
core_version: "v0.5.0"
|
||||
display_name: "Nintendo - Game Boy / Color (Gambatte)"
|
||||
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."
|
||||
8
emulators/gearboy.yml
Normal file
8
emulators/gearboy.yml
Normal file
@@ -0,0 +1,8 @@
|
||||
emulator: "gearboy"
|
||||
type: alias
|
||||
alias_of: "gambatte"
|
||||
profiled_date: "2026-03-18"
|
||||
core_version: "3.4.1"
|
||||
display_name: "Nintendo - Game Boy / Color (Gearboy)"
|
||||
note: "This core uses the same BIOS/firmware as gambatte. See emulators/gambatte.yml for details."
|
||||
files: []
|
||||
59
emulators/gearcoleco.yml
Normal file
59
emulators/gearcoleco.yml
Normal file
@@ -0,0 +1,59 @@
|
||||
emulator: Gearcoleco
|
||||
type: libretro
|
||||
source: "https://github.com/drhelius/Gearcoleco"
|
||||
profiled_date: "2026-03-18"
|
||||
core_version: "1.0.0"
|
||||
display_name: "Coleco - ColecoVision (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.
|
||||
131
emulators/geargrafx.yml
Normal file
131
emulators/geargrafx.yml
Normal file
@@ -0,0 +1,131 @@
|
||||
emulator: Geargrafx
|
||||
type: libretro
|
||||
source: "https://github.com/drhelius/Geargrafx"
|
||||
profiled_date: "2026-03-18"
|
||||
core_version: "1.6.0"
|
||||
display_name: "NEC - PC Engine / SuperGrafx / CD (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)" }
|
||||
46
emulators/gearlynx.yml
Normal file
46
emulators/gearlynx.yml
Normal file
@@ -0,0 +1,46 @@
|
||||
emulator: Gearlynx
|
||||
type: libretro
|
||||
source: "https://github.com/drhelius/Gearlynx"
|
||||
profiled_date: "2026-03-18"
|
||||
core_version: "1.0.0"
|
||||
display_name: "Atari - Lynx (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)."
|
||||
71
emulators/gearsystem.yml
Normal file
71
emulators/gearsystem.yml
Normal file
@@ -0,0 +1,71 @@
|
||||
emulator: Gearsystem
|
||||
type: libretro
|
||||
source: "https://github.com/drhelius/Gearsystem"
|
||||
profiled_date: "2026-03-18"
|
||||
core_version: "3.2.0"
|
||||
display_name: "Sega - MS/GG/SG-1000 (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.
|
||||
157
emulators/genesis_plus_gx.yml
Normal file
157
emulators/genesis_plus_gx.yml
Normal file
@@ -0,0 +1,157 @@
|
||||
emulator: Genesis Plus GX
|
||||
type: libretro
|
||||
source: "https://github.com/libretro/Genesis-Plus-GX"
|
||||
profiled_date: "2026-03-18"
|
||||
core_version: "v1.7.4"
|
||||
display_name: "Sega - MS/GG/MD/CD (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.
|
||||
148
emulators/geolith.yml
Normal file
148
emulators/geolith.yml
Normal file
@@ -0,0 +1,148 @@
|
||||
emulator: Geolith
|
||||
type: libretro
|
||||
source: "https://github.com/libretro/geolith-libretro"
|
||||
profiled_date: "2026-03-18"
|
||||
core_version: "0.3.0"
|
||||
display_name: "SNK - Neo Geo AES/MVS (Geolith)"
|
||||
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"
|
||||
15
emulators/gme.yml
Normal file
15
emulators/gme.yml
Normal file
@@ -0,0 +1,15 @@
|
||||
emulator: Game Music Emu
|
||||
type: utility
|
||||
source: "https://github.com/libretro/libretro-gme"
|
||||
profiled_date: "2026-03-18"
|
||||
core_version: "Git"
|
||||
display_name: "Game Music Emu"
|
||||
cores: [gme]
|
||||
systems: []
|
||||
files: []
|
||||
notes: >
|
||||
Libretro wrapper around Blargg's Game Music Emu library.
|
||||
Plays chiptune music files from various consoles: NSF (NES), SPC (SNES),
|
||||
GBS (Game Boy), VGM/VGZ (Sega), HES (PC Engine), AY (ZX Spectrum),
|
||||
SAP (Atari), KSS (MSX). Loads music files as content.
|
||||
No BIOS, firmware, or system directory files required.
|
||||
13
emulators/gong.yml
Normal file
13
emulators/gong.yml
Normal file
@@ -0,0 +1,13 @@
|
||||
emulator: Gong
|
||||
type: game
|
||||
source: "https://github.com/libretro/gong"
|
||||
profiled_date: "2026-03-18"
|
||||
core_version: "1.0"
|
||||
display_name: "Gong"
|
||||
cores: [gong]
|
||||
systems: []
|
||||
files: []
|
||||
notes: >
|
||||
Simple Pong clone written as a minimal libretro core example.
|
||||
Self-contained with all rendering done programmatically.
|
||||
No content file, BIOS, or system directory files required.
|
||||
68
emulators/gpsp.yml
Normal file
68
emulators/gpsp.yml
Normal file
@@ -0,0 +1,68 @@
|
||||
emulator: gpSP
|
||||
type: libretro
|
||||
source: "https://github.com/libretro/gpsp"
|
||||
profiled_date: "2026-03-18"
|
||||
core_version: "Git"
|
||||
display_name: "Nintendo - Game Boy Advance (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
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user