54 Commits

Author SHA1 Message Date
github-actions[bot] 61ca8efc57 regenerate database and docs 2026-03-18 11:54:27 +00:00
Abdessamad Derraz 7653d5d108 feat: add 19 BIOS files, fix cross_reference resolution
New files: OpenTyrian data (11), Cave Story (2), SeaBIOS,
VGA BIOS, OpenSBI, Cromwell, xbox_hdd, Sega CD Model 2 (3),
NGP Color BIOS, Pentagon 128p-1.rom, X1 font, BK TERAK.
cross_reference.py: basename + case-insensitive lookup.
2026-03-18 12:50:55 +01:00
Abdessamad Derraz 76064605c0 fix: move zip_contents resolution after name-based lookup 2026-03-18 12:12:42 +01:00
Abdessamad Derraz 08f68e792d refactor: centralize hash logic, fix circular imports and perf bottlenecks 2026-03-18 11:51:12 +01:00
Abdessamad Derraz becd0efb33 fix: relative links in readme, commit pending changes 2026-03-18 11:28:58 +01:00
Abdessamad Derraz 09ebaa9316 fix: retropie logo from github avatar, remove *.png gitignore 2026-03-18 11:26:46 +01:00
Abdessamad Derraz 81278bd2e4 fix: system icons (systematic theme), retropie logo 2026-03-18 11:25:14 +01:00
Abdessamad Derraz a52ab19cf8 fix: full hashes, list format for system files 2026-03-18 11:15:11 +01:00
Abdessamad Derraz 300e5d7439 fix: redesign home page UX, fix broken retropie logo 2026-03-18 11:09:36 +01:00
Abdessamad Derraz 54c0f1d27e refactor: review fixes, DRY coverage, filter test nav
- Extract compute_coverage to common.py (was duplicated)
- Filter test cores from nav and emulator index
- Use absolute URL for README download links
- Consistent page titles with site name suffix
- Safer mkdocs.yml nav rewrite with regex
- Build all_platform_names once in gap analysis
2026-03-18 11:05:13 +01:00
Abdessamad Derraz e218763500 feat: add emulator logos to profiles and site 2026-03-18 10:57:00 +01:00
Abdessamad Derraz 6885681c65 feat: add platform logos to registry and site 2026-03-18 10:55:47 +01:00
Abdessamad Derraz 21a50c992f feat: slim readme + ci site deployment
README: 11141 -> 43 lines. Details on the MkDocs site.
generate_readme.py: 444 -> 164 lines. Slim coverage table only.
build.yml: adds mkdocs-material install, generate_site.py, gh-deploy.
Adds pages: write permission for GitHub Pages deployment.
2026-03-18 10:44:13 +01:00
Abdessamad Derraz 32e4f6e580 fix: review fixes for generate_site.py 2026-03-18 10:39:23 +01:00
Abdessamad Derraz 0b1ed3cb1a feat: add gap analysis page + platform tracking 2026-03-18 10:31:02 +01:00
Abdessamad Derraz 883e153a62 fix: clean platform/emulator page layout 2026-03-18 10:27:08 +01:00
Abdessamad Derraz b15b062782 feat: add mkdocs site generator, 332 pages
generate_site.py reads database.json + platforms/*.yml + emulators/*.yml
and produces a complete MkDocs Material documentation site:
- Home: stats, downloads, coverage dashboard
- 7 platform pages with per-file verification status
- 60 system pages grouped by manufacturer with cross-references
- 260 emulator pages with source code analysis
- Contributing guide

mkdocs.yml with Material theme, system fonts, auto dark mode.
Generated docs/ in .gitignore (built in CI only).
2026-03-18 10:22:00 +01:00
Abdessamad Derraz dd9e59c8e3 chore: remove nested bios/Philips/CD-i/bios/ duplicate + empty TOS ghosts
Nested bios/ directory inside CD-i was an agent artifact.
tos100uk.img and tos206us.img were 0-byte ghost files from failed git show.
2026-03-18 08:25:56 +01:00
Abdessamad Derraz 3de4bf8190 refactor: extract _fetch_raw to BaseScraper (DRY)
Identical _fetch_raw() implementation (URL fetch + cache + error handling)
was duplicated in 4 scrapers. Moved to BaseScraper.__init__ with url param.

Each scraper now passes url to super().__init__() and inherits _fetch_raw().
Eliminates ~48 lines of duplicated code.

DRY audit now clean: resolve logic in common.py, scraper CLI in base_scraper,
_fetch_raw in BaseScraper. Remaining duplications are justified (different
list_platforms semantics, context-specific hash computation).
2026-03-18 08:22:21 +01:00
Abdessamad Derraz 2466fc4a97 refactor: extract scraper_cli() to base_scraper.py (DRY)
Shared CLI boilerplate for all scrapers: argparse, dry-run, json, yaml output.
4 scrapers (libretro, batocera, retrobat, emudeck) reduced from ~58 lines
main() each to 3 lines calling scraper_cli().

~220 lines of duplicated boilerplate eliminated.
recalbox + coreinfo keep custom main() (extra flags: --full, --compare-db).
2026-03-18 08:17:14 +01:00
Abdessamad Derraz 00700609d8 refactor: extract resolve_local_file to common.py (DRY)
Single source of truth for file resolution logic:
- common.py:resolve_local_file() = 80 lines (core resolution)
- verify.py:resolve_to_local_path() = 3 lines (thin wrapper)
- generate_pack.py:resolve_file() = 20 lines (adds storage tiers + release assets)

Before: 103 + 73 = 176 lines of duplicated logic with subtle divergences
After: 80 lines shared + 23 lines wrappers = 103 lines total (-41%)

Resolution chain: SHA1 -> MD5 multi-hash -> truncated MD5 ->
zipped_file index -> name existence -> name composite -> name fallback
-> (pack only) release assets
2026-03-18 08:11:10 +01:00
Abdessamad Derraz 0c367ca7c6 feat: restore deleted TOS UK images, regenerate database
tos102uk.img, tos104uk.img, tos106uk.img were accidentally deleted
by a background agent. Restored from git history.
2026-03-18 07:47:25 +01:00
Abdessamad Derraz 8c18638cd2 regenerate database after merge 2026-03-18 07:31:46 +01:00
Abdessamad Derraz 7b1c6a723e refactor: review fixes - resolve coherence + cleanup
1. fetch_large_file moved to last resort (avoids HTTP before name lookup)
2. fetch_large_file receives first MD5 only (not comma-separated string)
3. verify.py MD5 lookup now splits comma-separated + lowercases (matches generate_pack)
4. seen_destinations simplified to set (stored hash was dead data)
5. Variable suffix shadowing renamed to file_ext
2026-03-18 07:18:40 +01:00
Abdessamad Derraz 7ae995fb32 fix: resolve_file multi-MD5 + md5_composite for Recalbox packs
Three fixes in resolve_file():
- Split comma-separated MD5 lists (Recalbox uses multi-hash)
- Add md5_composite check in name fallback (matches verify.py logic)
- Use ".zip" in basename instead of endswith for variant files

Recalbox pack: 346/346 verified (was 332/346 with 14 wrong hash)
Batocera pack: 359/359 verified (was 304/359 with 55 inner missing)
All 5 platforms now produce 0 untested, 0 missing packs.
2026-03-18 07:18:40 +01:00
Abdessamad Derraz a1dc6fa4ef fix: resolve_file prefers primary over variants for name fallback
When resolving by name with no MD5 (existence check), prefer files
NOT in .variants/ directory. Fixes naomi2.zip resolving to the
Recalbox variant (15 files) instead of the primary (21 files).

Also applies to hash_mismatch fallback path.
2026-03-18 07:18:40 +01:00
github-actions[bot] b0dad7dcf3 regenerate database and docs 2026-03-18 05:29:59 +00:00
Abdessamad Derraz 046fb276b0 fix: case-insensitive MD5 lookup in resolve_file
Recalbox uses uppercase MD5 hashes (6E3735FF...) but database index
is lowercase. Added .lower() to MD5 lookups in resolve_file().

Fixes scph101.bin wrong variant in Recalbox pack (was picking
.variants/ copy instead of primary due to MD5 case mismatch).
2026-03-18 06:27:35 +01:00
Abdessamad Derraz 040ea9f217 fix: resolve_file skips MD5 lookup for zipped_file entries
Same guard as verify.py: when zipped_file is set, the md5 is for the
inner ROM, not the container ZIP. Direct MD5 lookup resolved to the
standalone ROM file instead of the ZIP parent.

Fixes: ep64.zip/ep128.zip (Enterprise) written as raw ROM data instead
of ZIP archives in Batocera pack. Also fixes any other zipped_file entry
where the inner ROM MD5 matched a standalone file in the database.

Also: update Dinothawr.zip SHA1 in retroarch.yml to match actual file.
2026-03-18 06:27:35 +01:00
Abdessamad Derraz 84ab0ea6d3 fix: revert verify dedup (breaks counts), optimize pack generation
verify.py: removed destination dedup - verify counts ALL platform
entries (398 for RetroArch). Pack deduplicates at generation (395).
The delta (3 files: c52/g7400/jopac.bin) is correct behavior.

generate_pack.py: skip build_zip_contents_index() when no zipped_file
entries exist. RetroArch pack: 20s -> 11s (no ZIP scan needed).
2026-03-18 06:27:35 +01:00
github-actions[bot] 06ea19ee20 regenerate database and docs 2026-03-18 04:48:32 +00:00
Abdessamad Derraz 97a25b17ff fix: CI restores large files before DB regen, fix coverage numbers
build.yml now downloads large-files release assets and copies them
to their bios/ paths (matched via .gitignore) before regenerating
the database. This fixes Batocera showing 675/680 instead of 679/680
on the remote (PS3UPDAT.PUP, dsi_nand.bin, PSVUPDAT.PUP were missing).

Local: Batocera 679/680, all others 100%.
2026-03-18 05:46:16 +01:00
Abdessamad Derraz 4faae161b4 feat: implement --include-extras with hybrid core detection
generate_pack.py now merges Tier 2 emulator files into platform packs:
- Auto-detects cores from platform YAML "core:" fields (31 for RetroArch)
- Also reads manual "emulators:" list from _registry.yml (for Batocera etc)
- Union of both sources = complete emulator coverage per platform
- Files already in platform pack are skipped (Tier 1 wins)

Results with --include-extras:
  RetroArch: 395 -> 654 files (+259 emulator extras)
  Batocera:  359 -> 632 files (+273 emulator extras)

Pack naming: BIOS_Pack.zip (normal) vs Complete_Pack.zip (with extras)
2026-03-18 05:39:13 +01:00
Abdessamad Derraz 58f3006d20 docs: add core_version, display_name to all 260 emulator profiles
Every profile now has:
- profiled_date: date of source code analysis
- core_version: version from libretro-core-info .info files
- display_name: human-readable name from .info files

260/260 profiles complete. 294/294 libretro cores covered.
Standalone emulators (cemu, rpcs3, xemu, vita3k) versioned manually.
2026-03-18 05:20:05 +01:00
Abdessamad Derraz d929424988 feat: add profiled_date to all YAMLs, create 56 alias profiles
- Added profiled_date field to all 204 existing profiles for update tracking
- Created 56 alias profiles for cores that share BIOS with a parent
  (e.g., mednafen_psx -> beetle_psx, fbalpha2012 -> fbneo)

260 total profiles covering all 294 libretro cores (204 unique + 56 alias).
2026-03-18 05:20:05 +01:00
Abdessamad Derraz 62262db6ac feat: complete 294/294 libretro core profiling
Final batch: stonesoup, vitaquake3+vitavoyager, uw8, uxn, wasm4,
tempgba, retro8, moonlight, ffmpeg, imageviewer, mpv, remotejoy,
puzzlescript, lutro, mojozork, simcp (SAM Coupe, ROM built-in),
romcleaner, redbook, onsyuri, mcsoftserve, x64sdl (VICE alias)

204 total emulator/core profiles covering ALL 294 libretro cores.
Every core analyzed from source code. Complete museum documentation.
2026-03-18 05:20:05 +01:00
Abdessamad Derraz b43d71e113 feat: add emulator profiles (119-series batch 6 partial)
dolphin_launcher (stub launcher), oberon (RISC, bootloader embedded),
17 test cores (00_example through vidtest), 17 game/utility cores
(2048 through vaporspec), bennugd, boytacean, emux_chip8, fake08,
jaxe, lowresnx, opentyrian, openlara, squirreljme, vitaquake2, xrick

182 total profiles. 6 agents failed (API 500), will retry.
2026-03-18 05:20:05 +01:00
Abdessamad Derraz a5553def94 feat: add 10 emulator profiles (119-series batch 5)
boytacean (GB Rust, 6 boot ROMs embedded), emux_chip8 (no BIOS),
fake08 (PICO-8, Lua runtime compiled in), jaxe (CHIP-8, fonts hardcoded),
lowresnx (fantasy console), opentyrian (Tyrian freeware data),
openlara (Tomb Raider engine, game data), squirreljme (J2ME, 8 JARs),
vitaquake2 (Quake 2, 4 variants), xrick (data.zip sound pack)

145 total profiles.
2026-03-18 05:20:05 +01:00
Abdessamad Derraz 31501211de feat: add 10 emulator profiles (119-series batch 4)
bennugd (game engine, no BIOS), cruzes (puzzle game, no BIOS),
dice (discrete arcade, no BIOS), ishiiruka (Dolphin fork, same BIOS),
mkxp_z (RPG Maker, 3 RTP dirs), onscripter (VN engine, no BIOS),
qemu (55 firmware files! SeaBIOS/VGA/iPXE/OpenBIOS/OpenSBI),
rustation (PS1 Rust, 22 BIOS by SHA-256), rvvm (RISC-V, OpenSBI),
reminiscence (Flashback engine, game data only)

135 total profiles.
2026-03-18 05:20:05 +01:00
Abdessamad Derraz 6a778a09a3 feat: add 10 emulator profiles (119-series batch 3)
arduous (Arduboy AVR sim, no BIOS), boom3 (Doom 3, game data only),
directxbox (Xbox, mcpx + cromwell), doukutsu_rs (Cave Story, no BIOS),
meteor (GBA, full HLE), nxengine (Cave Story, Doukutsu.exe + data/),
tgbdual (Game Boy link, HLE), tic80 (fantasy console),
virtualxt (IBM XT, open BIOS embedded), sdlpal (Sword & Fairy, 13 .mkf)

125 total profiles.
2026-03-18 05:20:05 +01:00
Abdessamad Derraz ebc8e4413f feat: add 10 emulator profiles (119-series batch 2)
freeintv_ts_overlay (same BIOS as FreeIntv), bnes (NES, no BIOS),
clownmdemu (Mega Drive, open-source MCD boot ROM embedded),
m2000 (Philips P2000T, all embedded), mesen (NES, FDS + StudyBox BIOS),
race (NGP, HLE with disabled BIOS loader), vemulator (VMU, HLE only),
gw (Game & Watch, Lua simulator), pd777 (Cassette Vision, no BIOS),
play (PS2, full HLE, LoadBIOS commented out)

115 total profiles.
2026-03-18 05:20:05 +01:00
Abdessamad Derraz a77477cbe8 feat: add 10 emulator profiles (119-series batch 1)
81 (ZX81, embedded), DoubleCherryGB (GB dual, no BIOS),
amiarcadia (Arcadia 2001, no BIOS), applewin (Apple II, 26 embedded),
ardens (Arduboy, 6 bootloaders embedded), daphne (LaserDisc, no BIOS),
pcem (IBM PC, 75+ machine/video/sound ROMs), panda3ds (3DS, optional keys),
easyrpg (RPG Maker, soundfont + RTP), frodo (C64, 4 ROMs embedded)

105 total profiles.
2026-03-18 05:20:05 +01:00
github-actions[bot] 9a69b49eac regenerate database and docs 2026-03-17 19:10:52 +00:00
Abdessamad Derraz ff82f64cb6 feat: complete all emulator profiles, 95 engines total
Final batch: scummvm (55 files, MT-32/engine data/themes/shaders),
gearcoleco (colecovision.rom), geargrafx (4 syscard variants),
gearlynx (lynxboot.img), dosbox_core (MT-32 + BASS libs),
geolith (Neo Geo FPGA, aes.zip/neogeo.zip), retrodream (DC boot+flash),
noods (NDS, full HLE), freej2me (JAR), jollycv (coleco+creativision),
fixgb (gbc_bios), numero (TI-83), smsplus (SMS/GG/CV), vircon32

95 profiles covering every libretro core with firmware requirements.
Cross-reference: 803 undeclared files, 249 in repo, 554 to source.
2026-03-17 20:08:27 +01:00
Abdessamad Derraz 60d9d38d69 feat: complete emulator profiling, 81 engines (final batch)
mame2003_plus (16 BIOS ZIPs, MAME 0.78 naming), mame2010 (51 ZIPs),
mame2016 (37 ZIPs incl Lindbergh), hbmame (MAME 0.220, no custom BIOS),
tyrquake (no BIOS), cannonball (29 OutRun ROMs with CRC32),
uzem (open source, no BIOS), vecx (ROM embedded), emuscv (UPD7801G),
b2 (BBC Micro standalone, ROMs bundled)

81 total emulator profiles covering all libretro cores with firmware.
Cross-reference: 731 undeclared files, 186 already in repo.
2026-03-17 20:08:27 +01:00
Abdessamad Derraz 99581d8aba feat: add 10 emulator profiles (batch 6)
gpsp (GBA, open BIOS fallback), ecwolf (ecwolf.pk3),
prboom (prboom.wad), x1 (Sharp X1, 5 files in xmil/),
minivmac (MacII.ROM/MacIIx.ROM), theodore (Thomson, all embedded),
crocods (CPC 6128, all embedded), vba_next (GBA, HLE fallback),
same_cdi (CD-i, 3 MAME ZIPs + 2 undeclared), beetle_lynx (lynxboot.img)

71 total profiles. Cross-reference: 690 undeclared, 186 in repo.
2026-03-17 20:08:27 +01:00
Abdessamad Derraz 4bc7085c1c feat: add 10 emulator profiles (batch 5)
snes9x (BS-X + STBIOS, HLE coprocessors), mupen64plus (64DD IPL),
pcsx_rearmed (7 BIOS + dynamic scan fallback), stella (no BIOS),
fmsx (12 MSX ROMs), virtualjaguar (6 BIOS embedded),
sameboy (8 boot ROM types, all built-in), beetle_vb (no BIOS),
handy (lynxboot.img 512B), pokemini (bios.min + FreeBIOS fallback)

61 total profiles. Cross-reference: 667 undeclared, 182 in repo.
2026-03-17 20:08:27 +01:00
Abdessamad Derraz 9eede1c957 feat: add 10 emulator profiles (batch 4)
blastem (MD, no BIOS needed), dosbox_pure (14 MT-32 ROMs + SF2),
desmume (NDS, 3 files all HLE), cap32 (CPC, all embedded),
mu (Palm OS, 5 ROMs), bk (Elektronika BK, 9 Soviet ROMs),
gearsystem (SMS/GG, 2 optional boot ROMs),
beetle_ngp (Neo Geo Pocket, pure HLE), beetle_wswan (WonderSwan, pure HLE),
galaksija (Yugoslav computer, all embedded)

51 total profiles. Cross-reference: 658 undeclared, 177 in repo.
2026-03-17 20:08:27 +01:00
Abdessamad Derraz 8768aed7aa feat: add 10 emulator profiles (batch 3)
freechaf (Channel F, 3 ROMs), freeintv (Intellivision, exec+grom),
ep128emu (Enterprise/TVC/CPC/ZX, 22 ROMs all built-in),
kronos (Saturn + 14 ST-V blobs), gambatte (GB/GBC boot ROMs),
mgba (GBA/GB/GBC/SGB, 10 CRC32 revisions), nestopia (FDS + NstDatabase),
px68k (X68000, 6 ROMs in keropi/), fuse (ZX Spectrum, 17 machines),
o2em (Odyssey2/Videopac, 4 BIOS by CRC32)

41 total profiles. Cross-reference: 644 undeclared, 167 in repo.
2026-03-17 20:08:27 +01:00
Abdessamad Derraz 639ff69d6c feat: add 10 emulator profiles (batch 2)
a5200, prosystem (Atari 7800), atari800 (400/800/XL/XE),
vice (C64/C128/VIC-20/Plus4/PET - 10 cores, all ROMs embedded),
neocd (Neo Geo CD, 12 BIOS variants), beetle_pce (PC Engine, 6 files),
beetle_pcfx (PC-FX), np2kai (PC-9801, 14 files + YM2608 samples),
quasi88 (PC-8801, 13 ROMs + 3 hidden fonts), opera (3DO, 10 BIOS + 3 kanji)

31 total profiles. Cross-reference: 572 undeclared, 148 in repo.
2026-03-17 20:08:27 +01:00
Abdessamad Derraz f6a44c9409 feat: add 10 emulator profiles (batch 1 P1)
genesis_plus_gx (12 files), picodrive (18 files), fbneo (19 systems),
hatari (TOS ROMs), bluemsx (60+ MSX/ColecoVision/SG-1000),
fceumm (FDS/Game Genie), bsnes (20 coprocessor ROMs),
beetle_psx (5 BIOS + aliases), beetle_saturn (5 files),
puae (14 Kickstart ROMs, 3 naming conventions)

21 total emulator profiles. Cross-reference: 436 undeclared files,
120 already in repo, 316 to source.
2026-03-17 20:08:27 +01:00
Abdessamad Derraz 9052a6b750 feat: add emulator profiles and cross-reference engine (tier 2)
New two-tier architecture:
- Tier 1: Platform configs (what the UI checks) - unchanged
- Tier 2: Emulator profiles (what the code actually loads)

11 emulator profiles from source code analysis:
  cemu, citra, dolphin, duckstation, flycast,
  melonds, pcsx2, ppsspp, rpcs3, vita3k, xemu

Each profile documents every file the emulator loads with
source code references (file:line), hashes, and notes.

New scripts/cross_reference.py computes gaps between what
platforms declare and what emulators need.

Current gap: 200 undeclared files, 24 already in repo.
DuckStation alone recognizes 105 PS1/PS2 BIOS variants.

generate_pack.py gains --include-extras flag (future use).
_registry.yml maps platforms to their emulators.
2026-03-17 20:08:27 +01:00
github-actions[bot] a38c86cf1e regenerate database and docs 2026-03-17 16:53:26 +00:00
Abdessamad Derraz e82a498124 feat: update sc3000 to basic iii v1.1, regenerate db and readme
Replace sc3000.rom with BASIC Level III v1.1 (Japan) from MAME 0.270+
software list (SHA1 737a06b3, closer to Batocera target).

Batocera 679/680, Recalbox 346/346, all others 100%.
2026-03-17 17:51:11 +01:00
313 changed files with 24577 additions and 12053 deletions
+28 -2
View File
@@ -13,6 +13,7 @@ on:
permissions:
contents: write
pages: write
concurrency:
group: build
@@ -30,10 +31,35 @@ jobs:
- run: pip install pyyaml
- name: Regenerate database and docs
- name: Restore large files from release
run: |
python scripts/generate_db.py --bios-dir bios --output database.json
mkdir -p .cache/large
gh release download large-files -D .cache/large/ 2>/dev/null || true
# Copy large files to their bios/ paths so generate_db sees them
for f in .cache/large/*; do
[ -f "$f" ] || continue
name=$(basename "$f")
# Match against .gitignore entries to find target path
target=$(grep "$name" .gitignore | head -1)
if [ -n "$target" ] && [ ! -f "$target" ]; then
mkdir -p "$(dirname "$target")"
cp "$f" "$target"
echo "Restored: $target"
fi
done
env:
GH_TOKEN: ${{ github.token }}
- name: Regenerate database, readme, and site
run: |
pip install mkdocs-material
python scripts/generate_db.py --force --bios-dir bios --output database.json
python scripts/generate_readme.py --db database.json --platforms-dir platforms
python scripts/generate_site.py
- name: Deploy site to GitHub Pages
if: github.ref == 'refs/heads/main'
run: mkdocs gh-deploy --force --clean
- name: Commit if changed
id: commit
+9
View File
@@ -6,10 +6,19 @@ __pycache__/
*.pyc
.cache/
dist/
site/
*.tmp
*.log
node_modules/
# Generated site pages (built in CI)
docs/index.md
docs/platforms/
docs/systems/
docs/emulators/
docs/contributing.md
docs/gaps.md
# Large files stored as GitHub Release assets (> 50MB)
bios/Arcade/Arcade/Firmware.19.0.0.zip
bios/Arcade/Arcade/maclc3.zip
+10 -47
View File
@@ -1,51 +1,14 @@
# Contributing BIOS Files
# Contributing to RetroBIOS
Thank you for helping expand the BIOS collection!
## Add a BIOS file
## How to Contribute
1. Fork this repository
2. Place the file in `bios/Manufacturer/Console/filename`
3. Variants (alternate hashes): `bios/Manufacturer/Console/.variants/`
4. Create a Pull Request - checksums are verified automatically
1. **Fork** this repository
2. **Add** your BIOS file to the correct directory under `bios/Manufacturer/Console/`
3. **Create a Pull Request**
## File conventions
## File Placement
Place files in the correct manufacturer/console directory:
```
bios/
├── Sony/
│ └── PlayStation/
│ └── scph5501.bin
├── Nintendo/
│ └── Game Boy Advance/
│ └── gba_bios.bin
└── Sega/
└── Dreamcast/
└── dc_boot.bin
```
## Verification
All submitted BIOS files are automatically verified against known checksums:
1. **Hash verification** - SHA1/MD5 checked against known databases
2. **Size verification** - File size matches expected value
3. **Platform reference** - File must be referenced in at least one platform config
4. **Duplicate detection** - Existing files are flagged to avoid duplication
## What We Accept
- **Verified BIOS dumps** with matching checksums from known databases
- **System firmware** required by emulators
- **New variants** of existing BIOS files (different regions, versions)
## What We Don't Accept
- Game ROMs or ISOs
- Modified/patched BIOS files
- Files without verifiable checksums
- Executable files (.exe, .bat, .sh)
## Questions?
Open an [Issue](../../issues) if you're unsure about a file.
- Files >50 MB go in GitHub release assets (`large-files` release)
- RPG Maker and ScummVM directories are excluded from deduplication
- See the [documentation site](https://abdess.github.io/retrobios/) for full details
+26 -11090
View File
File diff suppressed because it is too large Load Diff
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
+421 -71
View File
@@ -1,7 +1,7 @@
{
"generated_at": "2026-03-17T16:25:33Z",
"total_files": 5352,
"total_size": 3712114662,
"generated_at": "2026-03-18T11:53:21Z",
"total_files": 5376,
"total_size": 4896113929,
"files": {
"520d3d1b5897800af47f92efd2444a26b7a7dead": {
"path": "bios/3DO Company/3DO/3do_arcade_saot.bin",
@@ -1092,6 +1092,15 @@
"sha256": "90dc3258512e46ecf4ea8dfd0a8ebdb805bb001f2edfd6b882a1924da8ac305a",
"crc32": "b28f7112"
},
"ac4b78d53c7a97da2451ca35498395d8dd1e3024": {
"path": "bios/Arcade/Arcade/Firmware.19.0.0.zip",
"name": "Firmware.19.0.0.zip",
"size": 338076508,
"sha1": "ac4b78d53c7a97da2451ca35498395d8dd1e3024",
"md5": "72d6c73306c7f0b76723f989e7e1bdd1",
"sha256": "2f3791655e6c1b56f07a309b69ce8ea35d8412695599bbb6d4b0e29d1b044b66",
"crc32": "77228c84"
},
"5426d52e17e0ff9195fabbb42f704342e556d08e": {
"path": "bios/Arcade/Arcade/acpsx.zip",
"name": "acpsx.zip",
@@ -1515,14 +1524,14 @@
"sha256": "58e88cedb31918e2b9deeaddb80df45b8484cc1c4f10792520360a2585ad5014",
"crc32": "23ac17be"
},
"682f0d2475a3d30333c01d34ecf90b8b81d31997": {
"70c980f94d8d204cad3c18281cfb180592b6a6ee": {
"path": "bios/Arcade/Arcade/fdsbios.zip",
"name": "fdsbios.zip",
"size": 5724,
"sha1": "682f0d2475a3d30333c01d34ecf90b8b81d31997",
"md5": "e865dd6c266acb5e34a9012aac0d2862",
"sha256": "348746eaa86d1ec47f3cc59fe272bdae5ff5d6c6e29e8b2bd50a4a7fba7bbeb3",
"crc32": "32413056"
"size": 5788,
"sha1": "70c980f94d8d204cad3c18281cfb180592b6a6ee",
"md5": "7f780042388d83e7113556756d044d77",
"sha256": "1a49b157e41f1cf589e0e267d8f931f4793109cf76f162bedf85db9267e7acf1",
"crc32": "8ff1b99d"
},
"9ec50f79c5fd6eaddd88542aa18b6c5bb81a9ed4": {
"path": "bios/Arcade/Arcade/galgbios.zip",
@@ -1641,6 +1650,15 @@
"sha256": "9d057f11a2c4cfa7c637016fbca20c125c86a137ab4ca1957079f5cf0e73000c",
"crc32": "065d69d0"
},
"add40c002084e8e25768671877b2aa603aaf5cb1": {
"path": "bios/Arcade/Arcade/maclc3.zip",
"name": "maclc3.zip",
"size": 189428461,
"sha1": "add40c002084e8e25768671877b2aa603aaf5cb1",
"md5": "aff722788800df5b22d5a07cf8e558ee",
"sha256": "e663e456e88f475b3cacc06e75f50605e700789aa327b6648c627a560762a5d6",
"crc32": "81f21918"
},
"4e0202f8430cb4842184df7b5418e32620156c7b": {
"path": "bios/Arcade/Arcade/macsbios.zip",
"name": "macsbios.zip",
@@ -13269,6 +13287,15 @@
"sha256": "c93f3e7d3342f747f6c55a3b5ebb8c1840d3d118e80dc5d274f645dc2b393688",
"crc32": "26c6e8a0"
},
"273a9933b68a290c5aedcd6d69faa7b1d22c0344": {
"path": "bios/Elektronika/BK/TERAK.ROM",
"name": "TERAK.ROM",
"size": 128,
"sha1": "273a9933b68a290c5aedcd6d69faa7b1d22c0344",
"md5": "8cd30d86b57f9236ab749165b240a2cc",
"sha256": "a8cf685bd1c60ed722b956ae0d203da546c4249fe89639c44f2f294a4651ab34",
"crc32": "fd654b8e"
},
"61d0987b906146e21b94f265d5b51b4938c986a9": {
"path": "bios/Enterprise/64-128/basic20.rom",
"name": "basic20.rom",
@@ -16851,6 +16878,15 @@
"sha256": "3d5fae186cb31b5a6331155e532ef63e493afd85d7af8576fb52c95d0ce0362c",
"crc32": "1dbb7b59"
},
"4e1c2c2ee308ca4591542b3ca48653f65fae6e0f": {
"path": "bios/Microsoft/Xbox/cromwell_1024.bin",
"name": "cromwell_1024.bin",
"size": 1048576,
"sha1": "4e1c2c2ee308ca4591542b3ca48653f65fae6e0f",
"md5": "04e9565c5eb34c71c8f5f8b9f6524406",
"sha256": "b5c2cbdf297cd66ada8ef6fe4224c7c437cabc83d7c40c8e44af4941a72339c5",
"crc32": "5ae5278a"
},
"5d270675b54eb8071b480e42d22a3015ac211cef": {
"path": "bios/Microsoft/Xbox/mcpx_1.0.bin",
"name": "mcpx_1.0.bin",
@@ -16860,6 +16896,15 @@
"sha256": "e99e3a772bf5f5d262786aee895664eb96136196e37732fe66e14ae062f20335",
"crc32": "0b07d1f1"
},
"9da5f9ecfb1c9c32efa616f0300d02e8f702244d": {
"path": "bios/Microsoft/Xbox/xbox_hdd.qcow2",
"name": "xbox_hdd.qcow2",
"size": 1638400,
"sha1": "9da5f9ecfb1c9c32efa616f0300d02e8f702244d",
"md5": "cf15087fd5fd7593e293faaa7281cff8",
"sha256": "c5ec3e0fbc4f31d36c13211ded7f070f3b5f04e99a367fbe5d8c2d8c6e4f925d",
"crc32": "150b160b"
},
"ff3e7eaf715fe5612e46fc984d686ed3b115baef": {
"path": "bios/Microsoft/Xbox/xemu_eeprom.bin",
"name": "xemu_eeprom.bin",
@@ -18552,6 +18597,15 @@
"sha256": "1d7c771de535e6e07182fc9820ac32e76c6f0b5bcefd256a861fdfab144761ec",
"crc32": "df558b58"
},
"b48f44194fe918aaaec5298861479512b581d661": {
"path": "bios/Nintendo/Nintendo DS/dsi_nand.bin",
"name": "dsi_nand.bin",
"size": 251658304,
"sha1": "b48f44194fe918aaaec5298861479512b581d661",
"md5": "dfafb1908da8f527df7a372e649b50be",
"sha256": "f57d9bf00529bec35d58404faff029a193fd2ccda0a83403ec4e6cc32626721b",
"crc32": "416bf51a"
},
"3b71f43ff30f4b15b5cd85dd9e95ebc7e84eb5a3": {
"path": "bios/Nintendo/Nintendo DS/dsi_sd_card.bin",
"name": "dsi_sd_card.bin",
@@ -19101,6 +19155,150 @@
"sha256": "0ed991887342fba9e4b71668ff4c14ed93c2b3a19b4874dd0282404a1c442094",
"crc32": "aa727c5d"
},
"91d75a87872cbb88964bead92e0cbf8b72e836b6": {
"path": "bios/Other/NXEngine/Doukutsu.exe",
"name": "Doukutsu.exe",
"size": 1478656,
"sha1": "91d75a87872cbb88964bead92e0cbf8b72e836b6",
"md5": "f20bb7bc1b97453161e63964f24a2785",
"sha256": "8a7a63b24bb21557fb597697bdf09248c1ab7e3298cacfa1166d764dd81e7fc3",
"crc32": "0c0644ba"
},
"19555d2f5f72a66d6beddb4acc5ca00d634ac9c4": {
"path": "bios/Other/NXEngine/data/npc.tbl",
"name": "npc.tbl",
"size": 8664,
"sha1": "19555d2f5f72a66d6beddb4acc5ca00d634ac9c4",
"md5": "2c8dff849954bbca9c4a54087a5c06a9",
"sha256": "75b38bb4ab57b50bfc6c3ba77fe670a2eb67301f425aefe96bb1ed87c2b9e2db",
"crc32": "16b45e6c"
},
"58807f32c413a0c9db6deb0365f2fac9518e7c86": {
"path": "bios/Other/OpenTyrian/cubetxt1.dat",
"name": "cubetxt1.dat",
"size": 36169,
"sha1": "58807f32c413a0c9db6deb0365f2fac9518e7c86",
"md5": "3f2476d9ff29a06cf9fb85d52302222a",
"sha256": "2a0bc26ac4a8cdcbe7a145c9b1868a87ecb4335e9787f2f1e5713c965372df2b",
"crc32": "84e948df"
},
"e2b158dbf0c1a547e05f6e087f0ecc573a6c4f9a": {
"path": "bios/Other/OpenTyrian/levels1.dat",
"name": "levels1.dat",
"size": 9359,
"sha1": "e2b158dbf0c1a547e05f6e087f0ecc573a6c4f9a",
"md5": "013776dd1c00c1718906fac14493b69f",
"sha256": "e82164c96abb994450d416a3ab0e5fe6479fd4db831cd0f203a60dfe4aa78dcb",
"crc32": "67112fd6"
},
"b77313a9f92bc67f5c577699dcb95ca613e6948f": {
"path": "bios/Other/OpenTyrian/music.mus",
"name": "music.mus",
"size": 153482,
"sha1": "b77313a9f92bc67f5c577699dcb95ca613e6948f",
"md5": "bdb982d1ee185f1f713eadcd80931a66",
"sha256": "b06a509bd8576f63c61859e3a2c59482c4035d79f21725f9ec10479377044a74",
"crc32": "53e70005"
},
"29af4cd642e0b29dc8120b5d92f130eaf4e860c9": {
"path": "bios/Other/OpenTyrian/palette.dat",
"name": "palette.dat",
"size": 17664,
"sha1": "29af4cd642e0b29dc8120b5d92f130eaf4e860c9",
"md5": "847d6c6bf3d856422b7b27067049ed85",
"sha256": "6f0be74cb1b0026e46029d98d9ade41b8283bad849208543330b717fe5c365fc",
"crc32": "6c014b30"
},
"bd63566da5c24d1f50ffdcba99c654463f129d5c": {
"path": "bios/Other/OpenTyrian/tyrian.cdt",
"name": "tyrian.cdt",
"size": 1125,
"sha1": "bd63566da5c24d1f50ffdcba99c654463f129d5c",
"md5": "4490010ccebf217b86bb4337ac494773",
"sha256": "deb2c35297d89a1b2801ae21132d242121d9dee2a794a84b58dbd212f11f04fe",
"crc32": "6f6e39ce"
},
"f935e494b090b8bd2e86be06624a84946a5a947d": {
"path": "bios/Other/OpenTyrian/tyrian.hdt",
"name": "tyrian.hdt",
"size": 153657,
"sha1": "f935e494b090b8bd2e86be06624a84946a5a947d",
"md5": "0547aa08a6cfcdefa16f5b9813664ec6",
"sha256": "c816055863eb91d28ac10b4acc1e312f433deff553f08926e698c9a9ba68daa7",
"crc32": "c655ae91"
},
"0b216d9712f23e8faec041880b81773d93f646a2": {
"path": "bios/Other/OpenTyrian/tyrian.pic",
"name": "tyrian.pic",
"size": 365969,
"sha1": "0b216d9712f23e8faec041880b81773d93f646a2",
"md5": "a16de4ee30a67e2727c162dcd97ba25f",
"sha256": "5bda2ba46511f835e402188f1608b4398ae36303edfaef14304ad08b55bb5684",
"crc32": "278cba37"
},
"9978439cd9a52fde3d65c3b223dfe96ca437fef8": {
"path": "bios/Other/OpenTyrian/tyrian.shp",
"name": "tyrian.shp",
"size": 443871,
"sha1": "9978439cd9a52fde3d65c3b223dfe96ca437fef8",
"md5": "b79281a3c801b48af96cc57f510e2d83",
"sha256": "b9602b6dd42c1bf4716bdccbe5ab40495fcd064fcc55fd0f8d4436d640c4b450",
"crc32": "65906b5f"
},
"af896c25e6efeeb6dfd4cc7345362b4b29a85324": {
"path": "bios/Other/OpenTyrian/tyrian.snd",
"name": "tyrian.snd",
"size": 264512,
"sha1": "af896c25e6efeeb6dfd4cc7345362b4b29a85324",
"md5": "07fe095d8cc120b8293e7f776dfee90e",
"sha256": "0f5c37f97f0992026f1736f178bccc64746bc931daf23adbdc82553c140c80b8",
"crc32": "60dd487f"
},
"39825b5d69a07232d91886da68d217465a74695c": {
"path": "bios/Other/OpenTyrian/tyrian1.lvl",
"name": "tyrian1.lvl",
"size": 538262,
"sha1": "39825b5d69a07232d91886da68d217465a74695c",
"md5": "a1e73e0586ce715ab7daaedfe9b98595",
"sha256": "b41e532214fa8cea36e37fed6512b357c6ac9c8c3267899ceb4a258fcb1bf0b9",
"crc32": "06ce2efe"
},
"63ff6b55caeda529f69983a342618c84cba5addf": {
"path": "bios/Other/OpenTyrian/voices.snd",
"name": "voices.snd",
"size": 132767,
"sha1": "63ff6b55caeda529f69983a342618c84cba5addf",
"md5": "bdfeb89707fac1dd319a17e43328de2b",
"sha256": "c709ca1e74be6bd4b7917d258d81824d33c38a1a9a0287ec693b6459f58fc27a",
"crc32": "d23be573"
},
"cb1bd2cf5f89741900061955ac1a3b7cbd7a1ce9": {
"path": "bios/Other/QEMU/bios.bin",
"name": "bios.bin",
"size": 131072,
"sha1": "cb1bd2cf5f89741900061955ac1a3b7cbd7a1ce9",
"md5": "8bef06d1aa74c9ff45b268a18efcc954",
"sha256": "3dfd946d0c03ab0e022f84f10c3eb5f1dd507761f73e7d8067511ba35a10f776",
"crc32": "e7e3ac4c"
},
"214f09a25012e8702783d3ab9a22796071de5374": {
"path": "bios/Other/QEMU/vgabios.bin",
"name": "vgabios.bin",
"size": 38912,
"sha1": "214f09a25012e8702783d3ab9a22796071de5374",
"md5": "eb49484ba96ce09cdf4e60da747eceb1",
"sha256": "a7ea86bb06a58ff969fd0942e73b8eae00cb58e4c90bccbd900f6a3a01f54fbb",
"crc32": "e8256af7"
},
"d459d59b4d603d4cf733dd0fe34b7951f7c8165b": {
"path": "bios/Other/RVVM/fw_payload.bin",
"name": "fw_payload.bin",
"size": 2105672,
"sha1": "d459d59b4d603d4cf733dd0fe34b7951f7c8165b",
"md5": "14ee98e77ec06638bfef782a2ab8a063",
"sha256": "94468fe79c4fc51980c645cc964e00bdf21b4b68fd2306cfa13c4cd1ac9af9f4",
"crc32": "c068031c"
},
"cea669f6d740f29ca248d2e8837a4b4f86fbe75a": {
"path": "bios/Palm/Palm/bootloader-dbvz.rom",
"name": "bootloader-dbvz.rom",
@@ -19164,15 +19362,6 @@
"sha256": "c68f56d7cbcd4b621dd39804aa6bd50950df2946b970f81fd8bd87dae21c0813",
"crc32": "7bad9043"
},
"55068f5253956601a2eddd9c68efb6659ea27ac7": {
"path": "bios/Philips/CD-i/bios/cdibios.zip",
"name": "cdibios.zip",
"size": 468682,
"sha1": "55068f5253956601a2eddd9c68efb6659ea27ac7",
"md5": "80efc8294a76783c92e9f7b5a6b6c11b",
"sha256": "038fecfcca4fbb6ec17b59dded2322f2dd8d4564b88d2ccdc8d2400eb32164dd",
"crc32": "58926027"
},
"5d0b1b55b0d0958a5c9069c3219d4da5a87a6b93": {
"path": "bios/Philips/CD-i/cdimono1.zip",
"name": "cdimono1.zip",
@@ -44913,14 +45102,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",
@@ -45129,6 +45318,15 @@
"sha256": "ad1b2eb9300efd3d9476dad742c72e7436d9a9f67c951d537868553fa0c80843",
"crc32": "a61ca7c7"
},
"1c1a0d8c9f4c446ccd7470516b215ddca5052fb2": {
"path": "bios/Sharp/X1/FNT0808.X1",
"name": "FNT0808.X1",
"size": 2048,
"sha1": "1c1a0d8c9f4c446ccd7470516b215ddca5052fb2",
"md5": "851e4a5936f17d13f8c39a980cf00d77",
"sha256": "42139ed610747190c8ca9046c799907b52582c0d642b5f52f1548d9c1d4a86f8",
"crc32": "e3995a57"
},
"c4db9a6e99873808c8022afd1c50fef556a8b44d": {
"path": "bios/Sharp/X1/IPLROM.X1",
"name": "IPLROM.X1",
@@ -45156,15 +45354,6 @@
"sha256": "e6295a523008688421991b651ab61de392b28c67bec9efbf040b0004e4b70a2a",
"crc32": "e70011d3"
},
"1c1a0d8c9f4c446ccd7470516b215ddca5052fb2": {
"path": "bios/Sharp/X1/iplrom.x1t",
"name": "iplrom.x1t",
"size": 2048,
"sha1": "1c1a0d8c9f4c446ccd7470516b215ddca5052fb2",
"md5": "851e4a5936f17d13f8c39a980cf00d77",
"sha256": "42139ed610747190c8ca9046c799907b52582c0d642b5f52f1548d9c1d4a86f8",
"crc32": "e3995a57"
},
"76c18deb168ad0ffd7886a130a9e74e915070782": {
"path": "bios/Sharp/X68000/.variants/config",
"name": "config",
@@ -46695,6 +46884,15 @@
"sha256": "41de2047af8382988bfd568035ff26eec5f1cabc3efe773680546aa00a82857d",
"crc32": "2c3bcd32"
},
"093f8698b54b78dcb701de2043f82639de51d63b": {
"path": "bios/Sony/PlayStation 3/PS3UPDAT.PUP",
"name": "PS3UPDAT.PUP",
"size": 206126236,
"sha1": "093f8698b54b78dcb701de2043f82639de51d63b",
"md5": "05fe32f5dc8c78acbcd84d36ee7fdc5b",
"sha256": "69070a95780f59fc9e0d82bcf53eb9b28fd4ed4a7d54d0a40045f80422fd98d6",
"crc32": "24bdb2db"
},
"6bf1ae9fb01915966b715836253592cbf588b406": {
"path": "bios/Sony/PlayStation Portable/Roboto-Condensed.ttf",
"name": "Roboto-Condensed.ttf",
@@ -47586,6 +47784,24 @@
"sha256": "f372d306a7f2711125bea29aa75cbcb1eb19724e9648478fba07b8d655b37344",
"crc32": "c0c3a1fe"
},
"ed3a4cb264fff283209f10ae58c96c6090fed187": {
"path": "bios/Sony/PlayStation Vita/PSP2UPDAT.PUP",
"name": "PSP2UPDAT.PUP",
"size": 56778752,
"sha1": "ed3a4cb264fff283209f10ae58c96c6090fed187",
"md5": "59dcf059d3328fb67be7e51f8aa33418",
"sha256": "c3c03fc7363dd573d90e5157629bf11551f434b283cc898d9ffc71dd716b791c",
"crc32": "082ecf86"
},
"cc72dfcc964577cc29112ef368c28f55277c237c": {
"path": "bios/Sony/PlayStation Vita/PSVUPDAT.PUP",
"name": "PSVUPDAT.PUP",
"size": 133834240,
"sha1": "cc72dfcc964577cc29112ef368c28f55277c237c",
"md5": "f2c7b12fe85496ec88a0391b514d6e3b",
"sha256": "6ef6dc8da6db026f28647713e473486d770087a605c52a8d751bfca7478386cf",
"crc32": "39075d41"
},
"b184f1c1febf66c8168fcae0b8aa37a5754f79db": {
"path": "bios/Synertek/SYM-1/SYM.ROM",
"name": "SYM.ROM",
@@ -48295,6 +48511,7 @@
"fcb298d97792b9e9bdd3296cc6be10b6": "eb2a867578a05bbf8741e9fe7204301062df0cb8",
"ddb8aacffffffa608ddbb4a6d6dda5ec": "0b6519209766ed883e3fca4c61bf866804c89004",
"6c6c0c726cbf15e81785eb7592fdb51c": "de463b0577dfd1027bf7de523ff67a0fff861cdb",
"72d6c73306c7f0b76723f989e7e1bdd1": "ac4b78d53c7a97da2451ca35498395d8dd1e3024",
"fcb631bf18a56f2d5b077fa846bab4a6": "5426d52e17e0ff9195fabbb42f704342e556d08e",
"3f348c88af99a40fbd11fa435f28c69d": "e18c5e9ca21654dfd724aa54e625b386e6ffb2c5",
"c266fc58905af1e246dffadc84301042": "beaf97c4a0e0792b8db65648f9dabb6a54ae0549",
@@ -48342,7 +48559,7 @@
"d32987cdfcbd9f82abbfa93a297aa13f": "17d45f259fec8ef784526fe205c1b0722c5a9a00",
"547f3d12aed389058ca06148f1cca0ed": "b6ff66dcb5547bd91760d239ddf428a655631c53",
"1028615bcac4c31634a3364ce5c04044": "48d1712d1b1cdfeeeb43c6287c17b0b6309cfaab",
"e865dd6c266acb5e34a9012aac0d2862": "682f0d2475a3d30333c01d34ecf90b8b81d31997",
"7f780042388d83e7113556756d044d77": "70c980f94d8d204cad3c18281cfb180592b6a6ee",
"a832488251f892f961a9afe125320adf": "9ec50f79c5fd6eaddd88542aa18b6c5bb81a9ed4",
"c45fdc9ceb6908110656940a86b72c56": "6fdec00172233095cebb085b26214648d1093ecb",
"af5512431a3c23d8bb93057d17cff470": "975fbbbec0b578a495a8da9e1a5965d94d6d52e1",
@@ -48356,6 +48573,7 @@
"7b51d463324b6bf26e86c4afb7316a3a": "8cf0aa7f9dca4d77485e605fb0e2173a734633bf",
"7a14456d6e8afaf540f2368fead25f26": "78c8e1c3c033b65758b7e53a9346b44d037fea7f",
"d048a9ff941041de45c26474a0da40aa": "65a2f2cee74c316d5f40b68deda66787609df353",
"aff722788800df5b22d5a07cf8e558ee": "add40c002084e8e25768671877b2aa603aaf5cb1",
"34530e248d96e7171af19155af315378": "4e0202f8430cb4842184df7b5418e32620156c7b",
"b48fb4fb35dc348f4904a318dbf9a712": "697551fcf9557ae33e31096b118a0c6769700a2e",
"6bb005f55ba39bc5f6b330b663da1a58": "c9ee16e26e03496195a7bff151efbdd89da01204",
@@ -49648,6 +49866,7 @@
"5015228eeeb238e65da8edcd1b6dfac7": "28eefbb63047b26e4aec104aeeca74e2f9d0276c",
"5737f972e8638831ab71e9139abae052": "6386e58bc1bba5e76baec9e8a1ca4b99dc3c573f",
"95f8c41c6abf7640e35a6a03cecebd01": "4e83a94ae5155bbea14d7331a5a8db82457bd5ae",
"8cd30d86b57f9236ab749165b240a2cc": "273a9933b68a290c5aedcd6d69faa7b1d22c0344",
"8e18edce4a7acb2c33cc0ab18f988482": "61d0987b906146e21b94f265d5b51b4938c986a9",
"e972fe42b398c9ff1d93ff014786aec6": "03bbb386cf530e804363acdfc1d13e64cf28af2e",
"6af0402906944fd134004b85097c8524": "f34f0c330b44dbf2548329bea954d5991dec30ca",
@@ -50046,7 +50265,9 @@
"248514aba82a0ec7fe2a9106862b05cd": "e7905d16d2ccd57a013c122dc432106cd59ef52c",
"a0452dbf5ace7d2e49d0a8029efed09a": "829c00c3114f25b3dae5157c0a238b52a3ac37db",
"39cee882148a87f93cb440b99dde3ceb": "3944392c954cfb176d4210544e88353b3c5d36b1",
"04e9565c5eb34c71c8f5f8b9f6524406": "4e1c2c2ee308ca4591542b3ca48653f65fae6e0f",
"d49c52a4102f6df7bcf8d0617ac475ed": "5d270675b54eb8071b480e42d22a3015ac211cef",
"cf15087fd5fd7593e293faaa7281cff8": "9da5f9ecfb1c9c32efa616f0300d02e8f702244d",
"3e647719d47e4a3992fc8bc5a7e56fce": "ff3e7eaf715fe5612e46fc984d686ed3b115baef",
"9f770275393b8627cf9d24e5c56d2ab9": "008cf0f5cd5e2000b9f2ebf5e4ee84097e6aef74",
"424f1d6bf93259bf255afa7d1dc9f721": "3ca4a3b8d8a7f08492e684064c6fa362e914c1af",
@@ -50235,6 +50456,7 @@
"bfd8292fbf0a251647a23c5cb310a97a": "f1ad917e0affaeb8d2114c7ecd02b9f938c3cbd9",
"94bc5094607c5e6598d50472c52f27f2": "1cf9e67c2c703bb9961bbcdd39cd2c7e319a803b",
"8daa89fd280b3e5ec79fbab73ad6684e": "d2a5af338f09c5cbdd5d7628db5b9c075c69b616",
"dfafb1908da8f527df7a372e649b50be": "b48f44194fe918aaaec5298861479512b581d661",
"b6d81b360a5672d80c27430f39153e2c": "3b71f43ff30f4b15b5cd85dd9e95ebc7e84eb5a3",
"74f23348012d7b3e1cc216c47192ffeb": "3773f52559d5ac4fc6d8aefe35bce58730ae8181",
"e45033d9b0fa6b0de071292bba7c9d13": "cfe072921ee3fb93f688743f8beef89043c3e9ad",
@@ -50296,6 +50518,22 @@
"0a814078410353744e2947a8e9342e4e": "35f92a0477a88f5cf564971125047ffcfa02ec10",
"82a22231d402cd3284c698ba16a51d1d": "d8ce5b1405b6428969493efeb6f3aa2027c41bdc",
"9a432244d9ee4a49e8ddcde64af94e05": "86fc8dc0932f983efa199e31ae05a4424772f959",
"f20bb7bc1b97453161e63964f24a2785": "91d75a87872cbb88964bead92e0cbf8b72e836b6",
"2c8dff849954bbca9c4a54087a5c06a9": "19555d2f5f72a66d6beddb4acc5ca00d634ac9c4",
"3f2476d9ff29a06cf9fb85d52302222a": "58807f32c413a0c9db6deb0365f2fac9518e7c86",
"013776dd1c00c1718906fac14493b69f": "e2b158dbf0c1a547e05f6e087f0ecc573a6c4f9a",
"bdb982d1ee185f1f713eadcd80931a66": "b77313a9f92bc67f5c577699dcb95ca613e6948f",
"847d6c6bf3d856422b7b27067049ed85": "29af4cd642e0b29dc8120b5d92f130eaf4e860c9",
"4490010ccebf217b86bb4337ac494773": "bd63566da5c24d1f50ffdcba99c654463f129d5c",
"0547aa08a6cfcdefa16f5b9813664ec6": "f935e494b090b8bd2e86be06624a84946a5a947d",
"a16de4ee30a67e2727c162dcd97ba25f": "0b216d9712f23e8faec041880b81773d93f646a2",
"b79281a3c801b48af96cc57f510e2d83": "9978439cd9a52fde3d65c3b223dfe96ca437fef8",
"07fe095d8cc120b8293e7f776dfee90e": "af896c25e6efeeb6dfd4cc7345362b4b29a85324",
"a1e73e0586ce715ab7daaedfe9b98595": "39825b5d69a07232d91886da68d217465a74695c",
"bdfeb89707fac1dd319a17e43328de2b": "63ff6b55caeda529f69983a342618c84cba5addf",
"8bef06d1aa74c9ff45b268a18efcc954": "cb1bd2cf5f89741900061955ac1a3b7cbd7a1ce9",
"eb49484ba96ce09cdf4e60da747eceb1": "214f09a25012e8702783d3ab9a22796071de5374",
"14ee98e77ec06638bfef782a2ab8a063": "d459d59b4d603d4cf733dd0fe34b7951f7c8165b",
"9da101cd2317830649a31f8fa46debec": "cea669f6d740f29ca248d2e8837a4b4f86fbe75a",
"abed11421f47bbf3f654af618e0c6a8a": "a368b40751dd017163c9c1a615d6f3506b7dcbdf",
"83cb1d1c76e568b916dc2e7c0bf669f6": "cc4898ee8cae4669fc19e184c5b560c770e731b3",
@@ -50303,7 +50541,6 @@
"c2fae3ff41cc4f94be0fdaed1523ea99": "858c62e21d3a42d2e70641d001a46ad44e923614",
"4d8f5238df9a374ce3640262773ba885": "e6714b3d5fdc7023348435a77a016b763e0992b1",
"56683e58930b2b554e6594fe04eda238": "e1d30b1d6a23aaaa765102590dc3ffff19c0b09f",
"80efc8294a76783c92e9f7b5a6b6c11b": "55068f5253956601a2eddd9c68efb6659ea27ac7",
"c59f92647701428bc453976740eb75cf": "5d0b1b55b0d0958a5c9069c3219d4da5a87a6b93",
"97aa5f47030cd9fdb679d4fafbb0e332": "9492247203b71c12d88fad0a5437376941c7870a",
"f1071cdb0b6b10dde94d3bc8a6146387": "a6120aed50831c9c0d95dbdf707820f601d9452e",
@@ -53164,7 +53401,7 @@
"ff4a3572475236e859e3e9ac5c87d1f1": "02c287d10da6de579af7a4ce73b134bbdf23c970",
"4ea493ea4e9f6c9ebfccbdb15110367e": "88d6499d874dcb5721ff58d76fe1b9af811192e3",
"b4e76e416b887f4e7413ba76fa735f16": "70429f1d80503a0632f603bf762fe0bbaa881d22",
"b5d6782fb57775bf2a5e06889cfae58d": "ac7ac52c22f22bf499ecc5ead6afeddfb1fc9ffd",
"48e8821fb9087ab60a2a3b1465ee5124": "12de390be2595ad17015310085eaec57ad2b953f",
"0306c0e408d6682dd2d86324bd4ac661": "8c031bf9908fd0142fdd10a9cdd79389f8a3f2fc",
"9992f2761b0f6e83b3e923451ab8057b": "999ed28cfbf18103a4963b0d3797af3dcf67db05",
"37e9746f4491aa2df9a83729d1a93620": "fefb403a7e91bdaf75ffd8a94c2a1f0ef4ece740",
@@ -53188,10 +53425,10 @@
"3602382c1a370fb3064fcadeeea809e4": "1ec11e6639ab20b1bf1a69a5e5222909284c042b",
"1474da2b8fbbb37abce8e7ab5cf9024c": "fec7527ecbf79b1ac697137f770bb8715fe8a652",
"e634c906c23e62d5d3cd63581e5748ff": "2ca428b70ed1746834d129c11fb8e60a56317cff",
"851e4a5936f17d13f8c39a980cf00d77": "1c1a0d8c9f4c446ccd7470516b215ddca5052fb2",
"59074727a953fe965109b7dbe3298e30": "c4db9a6e99873808c8022afd1c50fef556a8b44d",
"56c28adcf1f3a2f87cf3d57c378013f5": "44620f57a25f0bcac2b57ca2b0f1ebad3bf305d3",
"eeeea1cd29c6e0e8b094790ae969bfa7": "d3395e9aeb5b8bbba7654dd471bcd8af228ee69a",
"851e4a5936f17d13f8c39a980cf00d77": "1c1a0d8c9f4c446ccd7470516b215ddca5052fb2",
"51b55ee3807901c015fdb93616858b8b": "76c18deb168ad0ffd7886a130a9e74e915070782",
"d407317a52f8425a6753232064d14700": "77be2f6f28897f99b73d4c47bf7cd47e999fd7cd",
"cb0a5cfcf7247a7eab74bb2716260269": "8d72c5b4d63bb14c5dbdac495244d659aa1498b6",
@@ -53362,6 +53599,7 @@
"5dea62f70439682a6cee16ba3823d11e": "6eddec30056cde7c664a0cf508dcad29353a12bb",
"de6da198a7359d1200c3eeb6df9c7eda": "40ecf6138c99a0aba775ef93240b295025a45500",
"44552702b05697a14ccbe2ca22ee7139": "47d2ec4b342649e4c391043ab915d4435f9d180d",
"05fe32f5dc8c78acbcd84d36ee7fdc5b": "093f8698b54b78dcb701de2043f82639de51d63b",
"55caa30ec34ef081ded15615db54eafe": "6bf1ae9fb01915966b715836253592cbf588b406",
"a062688b08c70a42ff2a0acff6c46d93": "08325554623568bb9babadc10213bfc0b1151766",
"ad0542e2956a8dddf52357f28a8a7d9c": "9d6c9874c1d6a0c57a1345f211154fe1e494b55a",
@@ -53461,6 +53699,8 @@
"331d6806a56d7370515d94a66616eca6": "78632d0fe9dd77bf9a2264f192fae6f0af03a71c",
"c96bb62586bf81dd6237c417f8cf3bb8": "18985a2079c7570c13cf39e0d001eef87538cd15",
"8b5f60b56c3da8365b973dba570c53a5": "3ae832c9800fcaa007eccfc48f24242967c111f8",
"59dcf059d3328fb67be7e51f8aa33418": "ed3a4cb264fff283209f10ae58c96c6090fed187",
"f2c7b12fe85496ec88a0391b514d6e3b": "cc72dfcc964577cc29112ef368c28f55277c237c",
"e59fdf56762c480ba4dfe1b3ec5fb86d": "b184f1c1febf66c8168fcae0b8aa37a5754f79db",
"1d33d70f35b33873fc75941d95ad1ffa": "567c5b5054552a2771eafa7966844a146f0dde96",
"b81dc552536796d234c08587bac7be43": "f2fa8d8e940f1d91a1b1624013df5dca0bb1ee44",
@@ -53743,7 +53983,8 @@
"1365b42d35d80feac9050caea8d6bd9d374fd1d2"
],
"maclc3.zip": [
"f454095619834dbfb9e8de0111bb3ee5fc21622d"
"f454095619834dbfb9e8de0111bb3ee5fc21622d",
"add40c002084e8e25768671877b2aa603aaf5cb1"
],
"macos3.img": [
"0546dd0fa34f4e6d913e4254ddb5350e1e42800c"
@@ -53802,8 +54043,7 @@
],
"cdibios.zip": [
"e7d2a0dad62d6f75bc10f48a376da0a99b764571",
"16072afaa65d1b059346616ac5b5a600c63ff1d1",
"55068f5253956601a2eddd9c68efb6659ea27ac7"
"16072afaa65d1b059346616ac5b5a600c63ff1d1"
],
"coh1000a.zip": [
"f8526dcec63402d2533d8180e217fa03a6322c34",
@@ -53817,7 +54057,7 @@
],
"fdsbios.zip": [
"c25686d24c7205473741f948f8a9df9906823145",
"682f0d2475a3d30333c01d34ecf90b8b81d31997"
"70c980f94d8d204cad3c18281cfb180592b6a6ee"
],
"hng64.zip": [
"fb0c36d69f66f4b10a895aa708ae37f826755257",
@@ -53888,6 +54128,9 @@
"de463b0577dfd1027bf7de523ff67a0fff861cdb",
"12516c82f52a8abb252fba754f95b7952c295e6f"
],
"Firmware.19.0.0.zip": [
"ac4b78d53c7a97da2451ca35498395d8dd1e3024"
],
"acpsx.zip": [
"5426d52e17e0ff9195fabbb42f704342e556d08e"
],
@@ -57681,6 +57924,9 @@
"MONIT10.ROM": [
"4e83a94ae5155bbea14d7331a5a8db82457bd5ae"
],
"TERAK.ROM": [
"273a9933b68a290c5aedcd6d69faa7b1d22c0344"
],
"basic20.rom": [
"61d0987b906146e21b94f265d5b51b4938c986a9"
],
@@ -58448,9 +58694,15 @@
"Complex_4627.bin": [
"3944392c954cfb176d4210544e88353b3c5d36b1"
],
"cromwell_1024.bin": [
"4e1c2c2ee308ca4591542b3ca48653f65fae6e0f"
],
"mcpx_1.0.bin": [
"5d270675b54eb8071b480e42d22a3015ac211cef"
],
"xbox_hdd.qcow2": [
"9da5f9ecfb1c9c32efa616f0300d02e8f702244d"
],
"xemu_eeprom.bin": [
"ff3e7eaf715fe5612e46fc984d686ed3b115baef"
],
@@ -58971,6 +59223,9 @@
"dsi_firmware.bin": [
"d2a5af338f09c5cbdd5d7628db5b9c075c69b616"
],
"dsi_nand.bin": [
"b48f44194fe918aaaec5298861479512b581d661"
],
"dsi_sd_card.bin": [
"3b71f43ff30f4b15b5cd85dd9e95ebc7e84eb5a3"
],
@@ -59150,6 +59405,54 @@
"telmon24.rom": [
"86fc8dc0932f983efa199e31ae05a4424772f959"
],
"Doukutsu.exe": [
"91d75a87872cbb88964bead92e0cbf8b72e836b6"
],
"npc.tbl": [
"19555d2f5f72a66d6beddb4acc5ca00d634ac9c4"
],
"cubetxt1.dat": [
"58807f32c413a0c9db6deb0365f2fac9518e7c86"
],
"levels1.dat": [
"e2b158dbf0c1a547e05f6e087f0ecc573a6c4f9a"
],
"music.mus": [
"b77313a9f92bc67f5c577699dcb95ca613e6948f"
],
"palette.dat": [
"29af4cd642e0b29dc8120b5d92f130eaf4e860c9"
],
"tyrian.cdt": [
"bd63566da5c24d1f50ffdcba99c654463f129d5c"
],
"tyrian.hdt": [
"f935e494b090b8bd2e86be06624a84946a5a947d"
],
"tyrian.pic": [
"0b216d9712f23e8faec041880b81773d93f646a2"
],
"tyrian.shp": [
"9978439cd9a52fde3d65c3b223dfe96ca437fef8"
],
"tyrian.snd": [
"af896c25e6efeeb6dfd4cc7345362b4b29a85324"
],
"tyrian1.lvl": [
"39825b5d69a07232d91886da68d217465a74695c"
],
"voices.snd": [
"63ff6b55caeda529f69983a342618c84cba5addf"
],
"bios.bin": [
"cb1bd2cf5f89741900061955ac1a3b7cbd7a1ce9"
],
"vgabios.bin": [
"214f09a25012e8702783d3ab9a22796071de5374"
],
"fw_payload.bin": [
"d459d59b4d603d4cf733dd0fe34b7951f7c8165b"
],
"bootloader-dbvz.rom": [
"cea669f6d740f29ca248d2e8837a4b4f86fbe75a"
],
@@ -66949,7 +67252,7 @@
"70429f1d80503a0632f603bf762fe0bbaa881d22"
],
"sc3000.zip": [
"ac7ac52c22f22bf499ecc5ead6afeddfb1fc9ffd"
"12de390be2595ad17015310085eaec57ad2b953f"
],
"hisaturn_v103.bin": [
"8c031bf9908fd0142fdd10a9cdd79389f8a3f2fc"
@@ -67006,6 +67309,9 @@
"mz80kj.zip": [
"2ca428b70ed1746834d129c11fb8e60a56317cff"
],
"FNT0808.X1": [
"1c1a0d8c9f4c446ccd7470516b215ddca5052fb2"
],
"IPLROM.X1": [
"c4db9a6e99873808c8022afd1c50fef556a8b44d"
],
@@ -67015,9 +67321,6 @@
"iplrom.x1": [
"d3395e9aeb5b8bbba7654dd471bcd8af228ee69a"
],
"iplrom.x1t": [
"1c1a0d8c9f4c446ccd7470516b215ddca5052fb2"
],
"cgrom.dat": [
"8d72c5b4d63bb14c5dbdac495244d659aa1498b6"
],
@@ -67507,6 +67810,9 @@
"rom1.bin": [
"47d2ec4b342649e4c391043ab915d4435f9d180d"
],
"PS3UPDAT.PUP": [
"093f8698b54b78dcb701de2043f82639de51d63b"
],
"Roboto-Condensed.ttf": [
"6bf1ae9fb01915966b715836253592cbf588b406"
],
@@ -67799,7 +68105,11 @@
"18985a2079c7570c13cf39e0d001eef87538cd15"
],
"PSP2UPDAT.PUP": [
"3ae832c9800fcaa007eccfc48f24242967c111f8"
"3ae832c9800fcaa007eccfc48f24242967c111f8",
"ed3a4cb264fff283209f10ae58c96c6090fed187"
],
"PSVUPDAT.PUP": [
"cc72dfcc964577cc29112ef368c28f55277c237c"
],
"coco.zip": [
"567c5b5054552a2771eafa7966844a146f0dde96",
@@ -67981,6 +68291,15 @@
"disk2-16boot.rom": [
"d4181c9f046aafc3fb326b381baac809d9e38d16"
],
"tos102uk.img": [
"87900a40a890fdf03bd08be6c60cc645855cbce5"
],
"tos104uk.img": [
"9526ef63b9cb1d2a7109e278547ae78a5c1db6c6"
],
"tos106uk.img": [
"06f9ea322e74b682df0396acfaee8cb4d9c90cad"
],
"Complex_4627v1.03.bin": [
"3944392c954cfb176d4210544e88353b3c5d36b1"
],
@@ -68395,6 +68714,9 @@
"007-Ocean01.jpg": [
"e5741010ac7f941cdb3c01865a1eda016a479dfd"
],
"[BIOS] SNK Neo Geo Pocket Color (Japan) (En,Ja).ngc": [
"edc13192054a59be49c6d55f83b70e2510968e86"
],
"emi_actorlights.fragment": [
"41a739a72a43ee22d7d696d3b8a077af029a3ede"
],
@@ -68452,6 +68774,31 @@
"bios_J.sms": [
"a8c1b39a2e41137835eda6a5de6d46dd9fadbaf2"
],
"eu_mcd2_9306.bin": [
"7063192ae9f6b696c5b81bc8f0a9fe6f0c400e58"
],
"sega-mega-cd:9b562ebf2d095bf1dabadbc1881f519a": [
"7063192ae9f6b696c5b81bc8f0a9fe6f0c400e58"
],
"jp_mcd2_921222.bin": [
"d203cfe22c03ae479dd8ca33840cf8d9776eb3ff"
],
"sega-mega-cd:683a8a9e273662561172468dfa2858eb": [
"d203cfe22c03ae479dd8ca33840cf8d9776eb3ff"
],
"us_scd2_9306.bin": [
"5a8c4b91d3034c1448aac4b5dc9a6484fce51636"
],
"sega-mega-cd:310a9081d2edf2d316ab38813136725e": [
"5a8c4b91d3034c1448aac4b5dc9a6484fce51636"
],
"iplrom.x1t": [
"1c1a0d8c9f4c446ccd7470516b215ddca5052fb2",
"44620f57a25f0bcac2b57ca2b0f1ebad3bf305d3"
],
"128p-1.rom": [
"80080644289ed93d71a1103992a154cc9802b2fa"
],
"SCPH-70004_BIOS_V12_EUR_200.BIN": [
"434bc0b4eb4827da0773ec0795aadc5162569a07"
],
@@ -68473,18 +68820,9 @@
"tos100uk.img": [
"9a6e4c88533a9eaa4d55cdc040e47443e0226eb2"
],
"tos102uk.img": [
"87900a40a890fdf03bd08be6c60cc645855cbce5"
],
"tos104uk.img": [
"9526ef63b9cb1d2a7109e278547ae78a5c1db6c6"
],
"tos106de.img": [
"3b8cf5ffa41b252eb67f8824f94608fa4005d6dd"
],
"tos106uk.img": [
"06f9ea322e74b682df0396acfaee8cb4d9c90cad"
],
"tos206us.img": [
"ee58768bdfc602c9b14942ce5481e97dd24e7c83"
],
@@ -68968,15 +69306,6 @@
"sega-mega-cd:e66fa1dc5820d254611fdcdba0662372": [
"f891e0ea651e2232af0c5c4cb46a0cae2ee8f356"
],
"sega-mega-cd:683a8a9e273662561172468dfa2858eb": [
"d203cfe22c03ae479dd8ca33840cf8d9776eb3ff"
],
"sega-mega-cd:310a9081d2edf2d316ab38813136725e": [
"5a8c4b91d3034c1448aac4b5dc9a6484fce51636"
],
"sega-mega-cd:9b562ebf2d095bf1dabadbc1881f519a": [
"7063192ae9f6b696c5b81bc8f0a9fe6f0c400e58"
],
"sega-mega-cd:854b9150240a198070150e4566ae1290": [
"5adb6c3af218c60868e6b723ec47e36bbdf5e6f0"
],
@@ -69026,9 +69355,6 @@
"flash.bin": [
"94d44d7f9529ec1642ba3771ed3c5f756d5bc872"
],
"128p-1.rom": [
"80080644289ed93d71a1103992a154cc9802b2fa"
],
"plus3e-3.rom": [
"65f031caa8148a5493afe42c41f4929deab26b4e"
],
@@ -69264,6 +69590,7 @@
"ad37f2de": "eb2a867578a05bbf8741e9fe7204301062df0cb8",
"b0e03aa6": "0b6519209766ed883e3fca4c61bf866804c89004",
"b28f7112": "de463b0577dfd1027bf7de523ff67a0fff861cdb",
"77228c84": "ac4b78d53c7a97da2451ca35498395d8dd1e3024",
"9c9601ca": "5426d52e17e0ff9195fabbb42f704342e556d08e",
"2c87c283": "e18c5e9ca21654dfd724aa54e625b386e6ffb2c5",
"da9beacc": "beaf97c4a0e0792b8db65648f9dabb6a54ae0549",
@@ -69311,7 +69638,7 @@
"d2ea94b0": "17d45f259fec8ef784526fe205c1b0722c5a9a00",
"17516536": "b6ff66dcb5547bd91760d239ddf428a655631c53",
"23ac17be": "48d1712d1b1cdfeeeb43c6287c17b0b6309cfaab",
"32413056": "682f0d2475a3d30333c01d34ecf90b8b81d31997",
"8ff1b99d": "70c980f94d8d204cad3c18281cfb180592b6a6ee",
"3890ead5": "9ec50f79c5fd6eaddd88542aa18b6c5bb81a9ed4",
"e6264ee1": "6fdec00172233095cebb085b26214648d1093ecb",
"5be16858": "975fbbbec0b578a495a8da9e1a5965d94d6d52e1",
@@ -69325,6 +69652,7 @@
"ce2a2c77": "8cf0aa7f9dca4d77485e605fb0e2173a734633bf",
"7325a518": "78c8e1c3c033b65758b7e53a9346b44d037fea7f",
"065d69d0": "65a2f2cee74c316d5f40b68deda66787609df353",
"81f21918": "add40c002084e8e25768671877b2aa603aaf5cb1",
"946c6bb8": "4e0202f8430cb4842184df7b5418e32620156c7b",
"bfce92a3": "697551fcf9557ae33e31096b118a0c6769700a2e",
"7c57bff1": "c9ee16e26e03496195a7bff151efbdd89da01204",
@@ -70617,6 +70945,7 @@
"ed8a43ae": "28eefbb63047b26e4aec104aeeca74e2f9d0276c",
"b90a52e8": "6386e58bc1bba5e76baec9e8a1ca4b99dc3c573f",
"26c6e8a0": "4e83a94ae5155bbea14d7331a5a8db82457bd5ae",
"fd654b8e": "273a9933b68a290c5aedcd6d69faa7b1d22c0344",
"1228de34": "61d0987b906146e21b94f265d5b51b4938c986a9",
"55f96251": "03bbb386cf530e804363acdfc1d13e64cf28af2e",
"6999d6a3": "f34f0c330b44dbf2548329bea954d5991dec30ca",
@@ -71015,7 +71344,9 @@
"95db2959": "e7905d16d2ccd57a013c122dc432106cd59ef52c",
"8205795e": "829c00c3114f25b3dae5157c0a238b52a3ac37db",
"1dbb7b59": "3944392c954cfb176d4210544e88353b3c5d36b1",
"5ae5278a": "4e1c2c2ee308ca4591542b3ca48653f65fae6e0f",
"0b07d1f1": "5d270675b54eb8071b480e42d22a3015ac211cef",
"150b160b": "9da5f9ecfb1c9c32efa616f0300d02e8f702244d",
"151aca4c": "ff3e7eaf715fe5612e46fc984d686ed3b115baef",
"31cc5649": "008cf0f5cd5e2000b9f2ebf5e4ee84097e6aef74",
"5c01c82b": "3ca4a3b8d8a7f08492e684064c6fa362e914c1af",
@@ -71204,6 +71535,7 @@
"7389b815": "f1ad917e0affaeb8d2114c7ecd02b9f938c3cbd9",
"62efc03d": "1cf9e67c2c703bb9961bbcdd39cd2c7e319a803b",
"df558b58": "d2a5af338f09c5cbdd5d7628db5b9c075c69b616",
"416bf51a": "b48f44194fe918aaaec5298861479512b581d661",
"a738ea1c": "3b71f43ff30f4b15b5cd85dd9e95ebc7e84eb5a3",
"6f6d289b": "3773f52559d5ac4fc6d8aefe35bce58730ae8181",
"945f9dc9": "cfe072921ee3fb93f688743f8beef89043c3e9ad",
@@ -71265,6 +71597,22 @@
"94358dc6": "35f92a0477a88f5cf564971125047ffcfa02ec10",
"29e86dbc": "d8ce5b1405b6428969493efeb6f3aa2027c41bdc",
"aa727c5d": "86fc8dc0932f983efa199e31ae05a4424772f959",
"0c0644ba": "91d75a87872cbb88964bead92e0cbf8b72e836b6",
"16b45e6c": "19555d2f5f72a66d6beddb4acc5ca00d634ac9c4",
"84e948df": "58807f32c413a0c9db6deb0365f2fac9518e7c86",
"67112fd6": "e2b158dbf0c1a547e05f6e087f0ecc573a6c4f9a",
"53e70005": "b77313a9f92bc67f5c577699dcb95ca613e6948f",
"6c014b30": "29af4cd642e0b29dc8120b5d92f130eaf4e860c9",
"6f6e39ce": "bd63566da5c24d1f50ffdcba99c654463f129d5c",
"c655ae91": "f935e494b090b8bd2e86be06624a84946a5a947d",
"278cba37": "0b216d9712f23e8faec041880b81773d93f646a2",
"65906b5f": "9978439cd9a52fde3d65c3b223dfe96ca437fef8",
"60dd487f": "af896c25e6efeeb6dfd4cc7345362b4b29a85324",
"06ce2efe": "39825b5d69a07232d91886da68d217465a74695c",
"d23be573": "63ff6b55caeda529f69983a342618c84cba5addf",
"e7e3ac4c": "cb1bd2cf5f89741900061955ac1a3b7cbd7a1ce9",
"e8256af7": "214f09a25012e8702783d3ab9a22796071de5374",
"c068031c": "d459d59b4d603d4cf733dd0fe34b7951f7c8165b",
"a975efe4": "cea669f6d740f29ca248d2e8837a4b4f86fbe75a",
"9261a5aa": "a368b40751dd017163c9c1a615d6f3506b7dcbdf",
"6481a088": "cc4898ee8cae4669fc19e184c5b560c770e731b3",
@@ -71272,7 +71620,6 @@
"25314c62": "858c62e21d3a42d2e70641d001a46ad44e923614",
"59205298": "e6714b3d5fdc7023348435a77a016b763e0992b1",
"7bad9043": "e1d30b1d6a23aaaa765102590dc3ffff19c0b09f",
"58926027": "55068f5253956601a2eddd9c68efb6659ea27ac7",
"0a67ff2c": "5d0b1b55b0d0958a5c9069c3219d4da5a87a6b93",
"4eab5eda": "9492247203b71c12d88fad0a5437376941c7870a",
"a318e8d6": "a6120aed50831c9c0d95dbdf707820f601d9452e",
@@ -74133,7 +74480,7 @@
"c94e8c8b": "02c287d10da6de579af7a4ce73b134bbdf23c970",
"0658f691": "88d6499d874dcb5721ff58d76fe1b9af811192e3",
"4dcfd55c": "70429f1d80503a0632f603bf762fe0bbaa881d22",
"7a1b9d80": "ac7ac52c22f22bf499ecc5ead6afeddfb1fc9ffd",
"62fb7d82": "12de390be2595ad17015310085eaec57ad2b953f",
"6abfefea": "8c031bf9908fd0142fdd10a9cdd79389f8a3f2fc",
"0ab1c9ec": "999ed28cfbf18103a4963b0d3797af3dcf67db05",
"94c90a92": "fefb403a7e91bdaf75ffd8a94c2a1f0ef4ece740",
@@ -74157,10 +74504,10 @@
"8a887ad3": "1ec11e6639ab20b1bf1a69a5e5222909284c042b",
"17878e56": "fec7527ecbf79b1ac697137f770bb8715fe8a652",
"a61ca7c7": "2ca428b70ed1746834d129c11fb8e60a56317cff",
"e3995a57": "1c1a0d8c9f4c446ccd7470516b215ddca5052fb2",
"7b28d9de": "c4db9a6e99873808c8022afd1c50fef556a8b44d",
"2e8b767c": "44620f57a25f0bcac2b57ca2b0f1ebad3bf305d3",
"e70011d3": "d3395e9aeb5b8bbba7654dd471bcd8af228ee69a",
"e3995a57": "1c1a0d8c9f4c446ccd7470516b215ddca5052fb2",
"72628c06": "76c18deb168ad0ffd7886a130a9e74e915070782",
"5dd9a0c5": "77be2f6f28897f99b73d4c47bf7cd47e999fd7cd",
"9f3195f1": "8d72c5b4d63bb14c5dbdac495244d659aa1498b6",
@@ -74331,6 +74678,7 @@
"0b805686": "6eddec30056cde7c664a0cf508dcad29353a12bb",
"a3e573a0": "40ecf6138c99a0aba775ef93240b295025a45500",
"2c3bcd32": "47d2ec4b342649e4c391043ab915d4435f9d180d",
"24bdb2db": "093f8698b54b78dcb701de2043f82639de51d63b",
"72d2fd97": "6bf1ae9fb01915966b715836253592cbf588b406",
"c48bf84b": "08325554623568bb9babadc10213bfc0b1151766",
"2b629346": "9d6c9874c1d6a0c57a1345f211154fe1e494b55a",
@@ -74430,6 +74778,8 @@
"616f5e40": "78632d0fe9dd77bf9a2264f192fae6f0af03a71c",
"92ddefae": "18985a2079c7570c13cf39e0d001eef87538cd15",
"c0c3a1fe": "3ae832c9800fcaa007eccfc48f24242967c111f8",
"082ecf86": "ed3a4cb264fff283209f10ae58c96c6090fed187",
"39075d41": "cc72dfcc964577cc29112ef368c28f55277c237c",
"44295096": "b184f1c1febf66c8168fcae0b8aa37a5754f79db",
"31c53421": "567c5b5054552a2771eafa7966844a146f0dde96",
"d13aefe2": "f2fa8d8e940f1d91a1b1624013df5dca0bb1ee44",
+18
View 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
View 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
View 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
View 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
View 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
View 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
View 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
View 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
View 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
View 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
View 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
View 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
View 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
View 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
View 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
View 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
View 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
View 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
View 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
View 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
View 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
View 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
View 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
View 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
View 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
View 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
View 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
View 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
View 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)"
+193
View File
@@ -0,0 +1,193 @@
emulator: bsnes
type: libretro
source: "https://github.com/libretro/bsnes-libretro"
logo: "https://raw.githubusercontent.com/bsnes-emu/bsnes/master/bsnes/target-bsnes/resource/bsnes.svg"
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
View 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
View 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
View 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: []
+403
View File
@@ -0,0 +1,403 @@
emulator: Cemu
type: standalone
source: "https://github.com/cemu-project/Cemu"
logo: "https://raw.githubusercontent.com/cemu-project/Cemu/main/dist/linux/info.cemu.Cemu.png"
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
View 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
View 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: []
+90
View File
@@ -0,0 +1,90 @@
emulator: Citra / Lime3DS / Azahar
type: standalone + libretro
source: "https://github.com/azahar-emu/azahar"
logo: "https://raw.githubusercontent.com/wheremyfoodat/citra/master/dist/citra.svg"
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
View 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
View 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
View 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
View 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
View 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
View 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
View 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
View 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
View 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
View 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: []
+186
View File
@@ -0,0 +1,186 @@
emulator: Dolphin
type: standalone + libretro
source: "https://github.com/dolphin-emu/dolphin"
logo: "https://raw.githubusercontent.com/dolphin-emu/dolphin/master/Data/dolphin-emu.svg"
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
View 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
View 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.
+143
View File
@@ -0,0 +1,143 @@
emulator: DOSBox Pure
type: libretro
source: "https://github.com/libretro/dosbox-pure"
logo: "https://raw.githubusercontent.com/schellingb/dosbox-pure/main/images/logo.png"
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
View 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
View 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
View 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
View 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: []
File diff suppressed because it is too large Load Diff
+122
View 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
View 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
View 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
View 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
View 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
View 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
View 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
View 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"

Some files were not shown because too many files have changed in this diff Show More