94 Commits

Author SHA1 Message Date
Abdessamad Derraz
5cbd461a97 docs: update readme and database for ground truth feature 2026-03-27 23:55:30 +01:00
Abdessamad Derraz
6cbdd4c40c test: add integration tests for ground truth full chain 2026-03-27 23:41:06 +01:00
Abdessamad Derraz
37acc8d0fc feat: add --verbose flag and ground truth rendering 2026-03-27 23:38:43 +01:00
Abdessamad Derraz
2cf1398786 feat: attach ground truth to emulator verification results 2026-03-27 23:33:53 +01:00
Abdessamad Derraz
6b14b5e2b1 feat: attach ground truth to platform verification results 2026-03-27 23:30:49 +01:00
Abdessamad Derraz
6d959ff2b0 feat: add per-emulator ground truth to validation index 2026-03-27 23:25:42 +01:00
Abdessamad Derraz
3672912de7 chore: clean up sc3000 variant swap, update database 2026-03-27 22:50:54 +01:00
Abdessamad Derraz
569781c104 fix: rename misleading exclusion label in verify report 2026-03-27 22:44:05 +01:00
Abdessamad Derraz
7f265b3cb2 refactor: split pack check into baseline and cores with clear counts 2026-03-27 20:37:48 +01:00
Abdessamad Derraz
3ea1e09cb0 feat: verify core extras presence in pack alongside baseline 2026-03-27 19:41:47 +01:00
Abdessamad Derraz
89d6dd2eee feat: add platform conformance check to pack verification 2026-03-27 19:21:29 +01:00
Abdessamad Derraz
acd2daf7c1 fix: filter pattern placeholders, skip standalone exclusions for standalone platforms 2026-03-27 18:30:18 +01:00
Abdessamad Derraz
0ad8324d46 refactor: clearer verify report for core files coverage 2026-03-27 18:11:26 +01:00
Abdessamad Derraz
29749898f8 fix: correct sc3000, plus3 and plus3e hashes in platform configs 2026-03-27 17:47:39 +01:00
Abdessamad Derraz
59d7582c0e fix: swap sc3000.zip primary to batocera-compatible dump 2026-03-27 16:50:10 +01:00
Abdessamad Derraz
e94ce6b194 feat: source 10 missing bios variants for romm and retrobat coverage 2026-03-27 16:00:10 +01:00
Abdessamad Derraz
181248b6db fix: case-sensitive packs for linux platforms, remove empty bios placeholder 2026-03-27 12:58:08 +01:00
Abdessamad Derraz
a117b13b49 fix: data directory path construction avoids double slash duplicates 2026-03-27 12:42:21 +01:00
Abdessamad Derraz
8f1c7e47de fix: emudeck scraper outputs cores field, base_scraper uses generate_platform_yaml 2026-03-27 12:27:51 +01:00
Abdessamad Derraz
106130ca52 refactor: extract _norm_system_id, apply to resolve_platform_cores fallback 2026-03-27 12:23:18 +01:00
Abdessamad Derraz
79f2d82072 feat: add batocera standalone overrides for wine-dependent emulators 2026-03-27 12:18:08 +01:00
Abdessamad Derraz
c8cba9d519 fix: add beetle_supergrafx, caprice32, mess2016 aliases 2026-03-27 12:00:27 +01:00
Abdessamad Derraz
6b87c75e11 fix: add upstream buildbot aliases to 18 emulator profiles 2026-03-27 11:57:10 +01:00
Abdessamad Derraz
21fa98c82f fix: add missing buildbot aliases to avoid false target skips 2026-03-27 11:43:29 +01:00
Abdessamad Derraz
1bde69f173 fix: add mednafen_wswan alias to beetle_wswan profile 2026-03-27 11:26:47 +01:00
Abdessamad Derraz
5d6760d120 fix: populate romm target cores, normalize system IDs in filter 2026-03-27 11:15:41 +01:00
Abdessamad Derraz
17631f741c fix: normalize system IDs for target filtering cross-platform matching 2026-03-27 11:14:24 +01:00
Abdessamad Derraz
cdc71525d0 feat: add emulator profiles and update docs 2026-03-27 10:29:38 +01:00
Abdessamad Derraz
74f48b8881 Add emulator profiles and update docs
Add new emulator profiles (ares, BigPEmu, Eden, Model2, PrimeHack, Supermodel, Suyu, Xenia Canary, Yuzu) under emulators/*.yml with metadata, notes, file lists and exclusion/hle details. Update README counts (emulators/systems/files summary and auto-generated timestamp) and bump generated_at in database.json. Adjust mkdocs.yml navigation counts and add Yuzu entry to the Emulators nav.
2026-03-26 13:22:11 +01:00
Abdessamad Derraz
0a1880f606 fix: filter baseline by platform-scoped cores, include retroarch cores in emudeck targets 2026-03-26 10:20:43 +01:00
Abdessamad Derraz
6402b77374 fix: filter baseline systems by target-available cores 2026-03-26 09:54:28 +01:00
Abdessamad Derraz
a3de47dd88 fix: normalize core names in emudeck and retropie scrapers 2026-03-26 09:44:11 +01:00
Abdessamad Derraz
7e8491fdf7 fix: resolve upstream core names to profile keys via reverse index 2026-03-26 09:42:08 +01:00
Abdessamad Derraz
bccea60f8d fix: add vita via recipe, rewrite retropie scraper via github api 2026-03-26 09:32:22 +01:00
Abdessamad Derraz
16b4dcc270 feat: rewrite retropie scraper using scriptmodules 2026-03-26 09:31:37 +01:00
Abdessamad Derraz
15e8c0eccb feat: add Vita target via libretro-super recipes 2026-03-26 09:31:34 +01:00
Abdessamad Derraz
14eaff73f7 feat: add retroarch target aliases to overrides 2026-03-26 09:25:39 +01:00
Abdessamad Derraz
dfb7d9a25a fix: correct scraper paths and patterns, populate target files 2026-03-26 09:18:39 +01:00
Abdessamad Derraz
03a9fa3276 fix: batocera targets scraper es_systems path and condition parser
- Fix es_systems.yml URL (batocera-emulationstation -> batocera-es-system)
- Replace if/endif block parser with select-if condition parser that
  matches the actual Config.in structure (select PACKAGE if CONDITION)
- Add Kconfig boolean condition checker (handles &&, ||, !, parentheses)
- Add meta-flag expansion (X86_64_ANY, GLES3, ROCKCHIP_GLES3, etc.)
  iterated to fixpoint for chained derivations
- Fix es_systems.yml parser for the actual dict format with requireAnyOf
2026-03-26 09:16:06 +01:00
Abdessamad Derraz
2980100fba feat: add static target files for retrobat, retrodeck, romm 2026-03-26 08:56:00 +01:00
Abdessamad Derraz
6b86c543af feat: add emudeck and retropie target scrapers 2026-03-26 08:55:58 +01:00
Abdessamad Derraz
8e91552b16 feat: add batocera per-board emulator target scraper 2026-03-26 08:55:54 +01:00
Abdessamad Derraz
c6ab8e9c3a feat: add target scraper infra and retroarch buildbot scraper 2026-03-26 08:55:50 +01:00
Abdessamad Derraz
ac66f0b73b feat: add target fields to registry, create targets directory 2026-03-26 08:51:54 +01:00
Abdessamad Derraz
de58f3f28e feat: add --platform and --target to cross_reference.py 2026-03-26 08:48:41 +01:00
Abdessamad Derraz
89054084b7 feat: target-aware fingerprint in group_identical_platforms 2026-03-26 08:48:40 +01:00
Abdessamad Derraz
ea9cd93e83 feat: propagate --target through pipeline.py 2026-03-26 08:48:34 +01:00
Abdessamad Derraz
5ac14079d6 feat: add --target and --list-targets to generate_pack.py 2026-03-26 08:48:31 +01:00
Abdessamad Derraz
1e939f1470 feat: add --target and --list-targets to verify.py 2026-03-26 08:48:29 +01:00
Abdessamad Derraz
1c34790737 feat: propagate target_cores through find_undeclared_files, find_exclusion_notes, verify_platform, _collect_emulator_extras 2026-03-26 08:44:44 +01:00
Abdessamad Derraz
e17d771710 feat: add target_cores filter to resolve_platform_cores
Optional target_cores parameter intersects the resolved core set,
enabling per-target filtering without changing existing call sites.
Includes 2 E2E tests covering intersection and None pass-through.
2026-03-26 08:42:08 +01:00
Abdessamad Derraz
0549b8945e feat: add load_target_config and list_available_targets to common.py
Loads per-platform target YAML files from platforms/targets/,
resolves aliases and applies add_cores/remove_cores from _overrides.yml.
Includes 7 E2E tests covering alias resolution, overrides, and error paths.
2026-03-26 08:41:37 +01:00
Abdessamad Derraz
8ac64d6143 docs: add build guide and documentation site section to readme
Quick start commands for generating packs by platform, emulator, or
system. Documentation site section explains what users can find there.
2026-03-26 07:15:01 +01:00
Abdessamad Derraz
bbe4936cf2 feat: add 12 batocera standalone profiles, update 3 existing
New profiles: citron (Switch), clk (multi-system), demul (Hikaru),
eka2l1 (Symbian/N-Gage), gsplus (Apple IIGS), lexaloffle (PICO-8),
openmsx (MSX), ryujinx (Switch), shadps4 (PS4), tsugaru (FM Towns),
x16emu (Commander X16), xroar (Dragon/CoCo), zc210 (Zelda Classic).
Updated: amiberry, fsuae (standalone Amiga), ymir (Saturn standalone).
2026-03-26 07:01:16 +01:00
Abdessamad Derraz
3f676b75e8 feat: standalone emulator support for batocera and multi-platform name mapping
resolve_platform_cores() builds reverse index from profile cores: field,
fixing 17 name mismatches across Batocera, RetroBat, and Recalbox
(genesisplusgx, pce_fast, pcfx, vb, mame078plus, vice cores, etc.).

standalone_path field on file entries + standalone_cores on platform
YAMLs enable mode-aware pack generation. find_undeclared_files() uses
standalone_path for cores the platform runs standalone, filters by
mode: libretro/standalone per file.

batocera.yml gains standalone_cores (92 entries from configgen-defaults).
generate_readme.py dynamically lists platforms from registry.
3 profiles updated for standalone type/path (mame, hatari, mupen64plus_next).
78 E2E tests pass, pipeline verified.
2026-03-26 00:44:21 +01:00
Abdessamad Derraz
44dc946217 docs: add romm to platform references 2026-03-25 23:19:52 +01:00
Abdessamad Derraz
d2cc9b8f29 feat: add doom engine wad files, emulatorjs base config 2026-03-25 23:12:53 +01:00
Roël Couwenberg
32b391ef69 feat: Addition of a RomM package (#37)
* feat: Initial addition of the RomM scraper and package

* docs: Added RomM to the verification modes table

* chore: Clean up scraper by removing workaround code from main() and an unused system translation map
2026-03-25 19:24:59 +01:00
Abdessamad Derraz
1ad10eddb7 feat: include platform version in pack filenames 2026-03-25 18:55:35 +01:00
Abdessamad Derraz
69131f4ad1 fix: emulator validation is informational, not a platform failure 2026-03-25 17:34:56 +01:00
Abdessamad Derraz
c61d40d8ef docs: rewrite readme for clarity and discoverability 2026-03-25 17:18:43 +01:00
Abdessamad Derraz
82ed2c5e62 fix: deploy-pages v5 does not exist, revert to v4 2026-03-25 16:57:01 +01:00
Abdessamad Derraz
38059e0fdf chore: regenerate database, readme, mkdocs nav 2026-03-25 16:49:49 +01:00
Abdessamad Derraz
dfd8f8657c feat: re-profile 4 emulators, add ymir 2026-03-25 16:49:49 +01:00
Abdessamad Derraz
4b09205bc9 fix: zero warnings on mkdocs build, update actions to v4/v5 2026-03-25 16:30:08 +01:00
Abdessamad Derraz
c5b267a6fb fix: anchor mismatches in platform and emulator index pages 2026-03-25 16:23:25 +01:00
Abdessamad Derraz
851f53ba7f refactor: extract wiki to source files, use deploy-pages action 2026-03-25 16:02:11 +01:00
Abdessamad Derraz
6e237e3b6d chore: regenerate database, readme, mkdocs nav 2026-03-25 15:54:17 +01:00
Abdessamad Derraz
9765bbc3da feat: add site deploy workflow, triggers only on content changes 2026-03-25 15:53:20 +01:00
Abdessamad Derraz
5529f8474a chore: regenerate database and readme 2026-03-25 15:41:46 +01:00
Abdessamad Derraz
8a8765c0ee feat: re-profile 9 emulators, add 9 vice machine profiles 2026-03-25 15:41:36 +01:00
Abdessamad Derraz
a6150a43bd feat: group emulators by classification, slim mkdocs nav, add pymdownx extensions 2026-03-25 15:29:58 +01:00
Abdessamad Derraz
0196fff8c7 feat: improve site UX (quick start, system summary, collapsible sections, wiki index, actionable gaps) 2026-03-25 15:24:38 +01:00
Abdessamad Derraz
904edd65e4 docs: document CI workflows, inheritance, MAME clones, tests, scrapers 2026-03-25 15:14:29 +01:00
Abdessamad Derraz
02a7c58fca docs: complete wiki coverage, document all scripts and edge cases 2026-03-25 15:02:23 +01:00
Abdessamad Derraz
f8a325260f feat: add wiki pages (architecture, tools, profiling, data model) 2026-03-25 14:56:37 +01:00
Abdessamad Derraz
313637663a docs: soften tone, explain methodology without dismissing other sources 2026-03-25 14:51:57 +01:00
Abdessamad Derraz
593466b655 feat: add methodology and ground truth narrative to readme and site 2026-03-25 14:50:09 +01:00
Abdessamad Derraz
23d76d54fd fix: correct rendering of complex YAML fields in site pages 2026-03-25 14:38:40 +01:00
Abdessamad Derraz
1cd43c3224 feat: exploit 100% of emulator YAML fields in site generation 2026-03-25 14:32:48 +01:00
Abdessamad Derraz
b3c1462a5e feat: exploit all emulator YAML fields in site generation 2026-03-25 14:28:02 +01:00
Abdessamad Derraz
75bfd04687 feat: full cross-linking web between all site pages 2026-03-25 14:17:10 +01:00
Abdessamad Derraz
3d2762bbc3 feat: cross-reference platform -> core -> systems -> upstream 2026-03-25 14:03:36 +01:00
Abdessamad Derraz
0f4fed2f47 feat: enrich site with full YAML data, cross-references, classification stats 2026-03-25 13:56:28 +01:00
Abdessamad Derraz
dbc26b11c1 refactor: move fetch_large_file to common, auto-download on db rebuild 2026-03-25 13:19:12 +01:00
Abdessamad Derraz
910428c6f1 fix: resolve large files from cache in database paths 2026-03-25 12:52:20 +01:00
Abdessamad Derraz
21465effff feat: add readme and site generation to pipeline 2026-03-25 12:34:03 +01:00
Abdessamad Derraz
3cba6b5c01 chore: disable build workflow until validated 2026-03-25 12:27:29 +01:00
Abdessamad Derraz
cfec0c614f Revert "chore: disable auto-trigger on push, manual release only"
This reverts commit d4e5af2c74.
2026-03-25 12:26:39 +01:00
Abdessamad Derraz
d4e5af2c74 chore: disable auto-trigger on push, manual release only 2026-03-25 12:25:44 +01:00
Abdessamad Derraz
f27b3b6caf refactor: simplify build workflow, remove auto-commit 2026-03-25 12:25:13 +01:00
Abdessamad Derraz
47e6174ed4 fix: pack naming, large file preservation, discrepancy reporting 2026-03-25 12:23:40 +01:00
Abdessamad Derraz
a7bcd9b252 feat: re-profile 20 emulators, add trident and vice_x128 2026-03-25 12:23:32 +01:00
Abdessamad Derraz
93b071730a fix: fallback to system tempdir for zip normalization 2026-03-25 08:38:06 +01:00
169 changed files with 25451 additions and 1668 deletions

View File

@@ -18,13 +18,11 @@ concurrency:
cancel-in-progress: true
jobs:
regenerate:
release:
if: false # disabled until pack generation is validated in production
runs-on: ubuntu-latest
permissions:
contents: write
pages: write
outputs:
changed: ${{ steps.commit.outputs.changed }}
steps:
- uses: actions/checkout@v6
@@ -34,57 +32,9 @@ jobs:
- run: pip install pyyaml
- name: Restore large files from release
run: |
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: Run tests
run: python -m unittest tests.test_e2e -v
- name: Deploy site to GitHub Pages
if: github.ref == 'refs/heads/main'
run: mkdocs gh-deploy --force --clean
- name: Commit if changed
id: commit
run: |
git diff --quiet database.json README.md CONTRIBUTING.md && echo "changed=false" >> "$GITHUB_OUTPUT" && exit 0
git config user.name "github-actions[bot]"
git config user.email "github-actions[bot]@users.noreply.github.com"
git add database.json README.md CONTRIBUTING.md
git commit -m "regenerate database and docs"
git push
echo "changed=true" >> "$GITHUB_OUTPUT"
release:
needs: regenerate
if: (needs.regenerate.outputs.changed == 'true' || github.event.inputs.force_release == 'true')
runs-on: ubuntu-latest
permissions:
contents: write
steps:
- name: Rate limit
if: github.event.inputs.force_release != 'true'
id: rate
@@ -103,20 +53,6 @@ jobs:
env:
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- uses: actions/checkout@v6
if: steps.rate.outputs.skip != 'true'
with:
ref: main
- uses: actions/setup-python@v6
if: steps.rate.outputs.skip != 'true'
with:
python-version: "3.12"
- name: Install dependencies
if: steps.rate.outputs.skip != 'true'
run: pip install pyyaml
- name: Restore large files from release
if: steps.rate.outputs.skip != 'true'
run: |
@@ -142,9 +78,7 @@ jobs:
- name: Build packs
if: steps.rate.outputs.skip != 'true'
run: |
python scripts/generate_db.py --bios-dir bios --output database.json
python scripts/generate_pack.py --all --output-dir dist/
run: python scripts/generate_pack.py --all --output-dir dist/
- name: Release
if: steps.rate.outputs.skip != 'true'
@@ -168,14 +102,17 @@ jobs:
${PACKS}
### Install
Download, extract to your emulator's BIOS directory.
Download the pack matching your frontend, extract to the BIOS directory.
| Platform | Path |
|----------|------|
| RetroArch / Lakka | system/ |
| Batocera | /userdata/bios/ |
| Recalbox | /recalbox/share/bios/ |
| RetroBat | bios/ |
| Platform | Pack | Path |
|----------|------|------|
| RetroArch / Lakka | RetroArch_Lakka_BIOS_Pack.zip | system/ |
| Batocera | Batocera_BIOS_Pack.zip | /userdata/bios/ |
| Recalbox | Recalbox_BIOS_Pack.zip | /recalbox/share/bios/ |
| RetroBat | RetroBat_BIOS_Pack.zip | bios/ |
| RetroDECK | RetroDECK_BIOS_Pack.zip | ~/retrodeck/bios/ |
| EmuDeck | EmuDeck_BIOS_Pack.zip | Emulation/bios/ |
| RomM | RomM_BIOS_Pack.zip | bios/{platform_slug}/ |
### Changes
${CHANGES}

59
.github/workflows/deploy-site.yml vendored Normal file
View File

@@ -0,0 +1,59 @@
name: Deploy Site
on:
push:
branches: [main]
paths:
- "platforms/**"
- "emulators/**"
- "wiki/**"
- "scripts/generate_site.py"
- "scripts/generate_readme.py"
- "scripts/verify.py"
- "scripts/common.py"
- "database.json"
- "mkdocs.yml"
workflow_dispatch:
permissions:
contents: read
pages: write
id-token: write
concurrency:
group: deploy-site
cancel-in-progress: true
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v6
- uses: actions/setup-python@v6
with:
python-version: "3.12"
- run: pip install pyyaml mkdocs-material pymdown-extensions
- name: Generate site
run: |
python scripts/generate_site.py
python scripts/generate_readme.py --db database.json --platforms-dir platforms
mkdocs build
- name: Upload artifact
uses: actions/upload-pages-artifact@v4
with:
path: site/
deploy:
needs: build
runs-on: ubuntu-latest
environment:
name: github-pages
url: ${{ steps.deployment.outputs.page_url }}
steps:
- name: Deploy to GitHub Pages
id: deployment
uses: actions/deploy-pages@v4

9
.gitignore vendored
View File

@@ -11,13 +11,8 @@ site/
*.log
node_modules/
# Generated site pages (built in CI)
docs/index.md
docs/platforms/
docs/systems/
docs/emulators/
docs/contributing.md
docs/gaps.md
# Generated site pages (built by generate_site.py, deployed in CI)
docs/
# Large files stored as GitHub Release assets (> 50MB)
bios/Arcade/Arcade/Firmware.19.0.0.zip

102
README.md
View File

@@ -1,41 +1,105 @@
# Retrogaming BIOS & Firmware Collection
# RetroBIOS
Complete, verified collection of BIOS, firmware, and system files for retrogaming emulators.
Complete BIOS and firmware packs for Batocera, EmuDeck, Lakka, Recalbox, RetroArch, RetroBat, RetroDECK, RetroPie, and RomM.
> **6724** files | **5013.3 MB** | **8** platforms | **275** emulator profiles
**6,756** verified files across **352** systems, ready to extract into your emulator's BIOS directory.
## Download
## Download BIOS packs
| Platform | Files | Verification | Pack |
|----------|-------|-------------|------|
| Batocera | 359 | md5 | [Download](../../releases/latest) |
| EmuDeck | 161 | md5 | [Download](../../releases/latest) |
| Lakka | 448 | existence | [Download](../../releases/latest) |
| Recalbox | 346 | md5 | [Download](../../releases/latest) |
| RetroArch | 448 | existence | [Download](../../releases/latest) |
| RetroBat | 331 | md5 | [Download](../../releases/latest) |
| RetroDECK | 2007 | md5 | [Download](../../releases/latest) |
| RetroPie | 448 | existence | [Download](../../releases/latest) |
Pick your platform, download the ZIP, extract to the BIOS path.
| Platform | BIOS files | Extract to | Download |
|----------|-----------|-----------|----------|
| Batocera | 359 | `/userdata/bios/` | [Download](../../releases/latest) |
| EmuDeck | 161 | `Emulation/bios/` | [Download](../../releases/latest) |
| Lakka | 448 | `system/` | [Download](../../releases/latest) |
| Recalbox | 346 | `/recalbox/share/bios/` | [Download](../../releases/latest) |
| RetroArch | 448 | `system/` | [Download](../../releases/latest) |
| RetroBat | 331 | `bios/` | [Download](../../releases/latest) |
| RetroDECK | 2007 | `~/retrodeck/bios/` | [Download](../../releases/latest) |
| RetroPie | 448 | `BIOS/` | [Download](../../releases/latest) |
| RomM | 374 | `bios/{platform_slug}/` | [Download](../../releases/latest) |
## What's included
BIOS, firmware, and system files for consoles from Atari to PlayStation 3.
Each file is checked against the emulator's source code to match what the code actually loads at runtime.
- **9 platforms** supported with platform-specific verification
- **328 emulators** profiled from source (RetroArch cores + standalone)
- **352 systems** covered (NES, SNES, PlayStation, Saturn, Dreamcast, ...)
- **6,756 files** verified with MD5, SHA1, CRC32 checksums
- **5331 MB** total collection size
## Supported systems
NES, SNES, Nintendo 64, GameCube, Wii, Game Boy, Game Boy Advance, Nintendo DS, Nintendo 3DS, Switch, PlayStation, PlayStation 2, PlayStation 3, PSP, PS Vita, Mega Drive, Saturn, Dreamcast, Game Gear, Master System, Neo Geo, Atari 2600, Atari 7800, Atari Lynx, Atari ST, MSX, PC Engine, TurboGrafx-16, ColecoVision, Intellivision, Commodore 64, Amiga, ZX Spectrum, Arcade (MAME), and 318+ more.
Full list with per-file details: **[https://abdess.github.io/retrobios/](https://abdess.github.io/retrobios/)**
## Coverage
| Platform | Coverage | Verified | Untested | Missing |
|----------|----------|----------|----------|---------|
| Batocera | 359/359 (100.0%) | 358 | 1 | 0 |
| Batocera | 359/359 (100.0%) | 359 | 0 | 0 |
| EmuDeck | 161/161 (100.0%) | 161 | 0 | 0 |
| Lakka | 448/448 (100.0%) | 448 | 0 | 0 |
| Recalbox | 346/346 (100.0%) | 346 | 0 | 0 |
| RetroArch | 448/448 (100.0%) | 448 | 0 | 0 |
| RetroBat | 331/331 (100.0%) | 331 | 0 | 0 |
| RetroDECK | 2007/2007 (100.0%) | 1698 | 309 | 0 |
| RetroDECK | 2007/2007 (100.0%) | 2007 | 0 | 0 |
| RetroPie | 448/448 (100.0%) | 448 | 0 | 0 |
| RomM | 374/374 (100.0%) | 374 | 0 | 0 |
## Documentation
## Build your own pack
Full file listings, platform coverage, emulator profiles, and gap analysis: **[https://abdess.github.io/retrobios/](https://abdess.github.io/retrobios/)**
Clone the repo and generate packs for any platform, emulator, or system:
```bash
# Full platform pack
python scripts/generate_pack.py --platform retroarch --output-dir dist/
python scripts/generate_pack.py --platform batocera --output-dir dist/
# Single emulator or system
python scripts/generate_pack.py --emulator dolphin
python scripts/generate_pack.py --system sony-playstation-2
# List available emulators and systems
python scripts/generate_pack.py --list-emulators
python scripts/generate_pack.py --list-systems
# Verify your BIOS collection
python scripts/verify.py --all
python scripts/verify.py --platform batocera
python scripts/verify.py --emulator flycast
python scripts/verify.py --platform retroarch --verbose # emulator ground truth
```
Only dependency: Python 3 + `pyyaml`.
## Documentation site
The [documentation site](https://abdess.github.io/retrobios/) provides:
- **Per-platform pages** with file-by-file verification status and hashes
- **Per-emulator profiles** with source code references for every file
- **Per-system pages** showing which emulators and platforms cover each console
- **Gap analysis** identifying missing files and undeclared core requirements
- **Cross-reference** mapping files across 9 platforms and 328 emulators
## How it works
Documentation and metadata can drift from what emulators actually load.
To keep packs accurate, each file is checked against the emulator's source code.
1. **Read emulator source code** - trace every file the code loads, its expected hash and size
2. **Cross-reference with platforms** - match against what each platform declares
3. **Build packs** - include baseline files plus what each platform's cores need
4. **Verify** - run platform-native checks and emulator-level validation
## Contributors
<a href="https://github.com/PixNyb"><img src="https://avatars.githubusercontent.com/u/40770831?v=4" width="50" title="PixNyb"></a>
<a href="https://github.com/monster-penguin"><img src="https://avatars.githubusercontent.com/u/266009589?v=4" width="50" title="monster-penguin"></a>
@@ -47,4 +111,4 @@ See [CONTRIBUTING.md](CONTRIBUTING.md) for guidelines.
This repository provides BIOS files for personal backup and archival purposes.
*Auto-generated on 2026-03-20T19:10:25Z*
*Auto-generated on 2026-03-27T22:52:26Z*

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.

File diff suppressed because it is too large Load Diff

View File

@@ -1,9 +1,10 @@
emulator: Amiberry
type: standalone + libretro
core_classification: official_port
source: "https://github.com/BlitterStudio/amiberry"
upstream: "https://github.com/tonioni/WinUAE"
profiled_date: "2026-03-18"
core_version: "v6.3.4"
profiled_date: "2026-03-26"
core_version: "v8.1.2"
display_name: "Commodore - Amiga (Amiberry)"
cores: [amiberry]
systems:
@@ -12,111 +13,236 @@ systems:
- commodore-cdtv
notes: |
Amiberry is an Amiga emulator based on WinUAE, available as both
standalone and libretro core. No built-in kickstart fallback — a real
Kickstart ROM is required.
Amiberry is an Amiga emulator based on WinUAE, available as both standalone
and libretro core. No built-in kickstart — requires a real Kickstart ROM or
external AROS replacement files (aros-ext.bin + aros-rom.bin).
Core option "amiberry_kickstart" selects the ROM file:
auto, kick.rom, kick13.rom, kick20.rom, kick31.rom, kick205.rom,
kick40068.A1200, kick40068.A4000, cd32.rom, cdtv.rom.
"auto" selects based on the model option.
ref: BlitterStudio/amiberry/libretro/libretro.cpp:558,621-634
Libretro core option "amiberry_kickstart" overrides ROM selection: auto,
kick.rom, kick13.rom, kick20.rom, kick31.rom, kick205.rom, kick40068.A1200,
kick40068.A4000, cd32.rom, cdtv.rom. "auto" selects per model.
ref: libretro/libretro.cpp:558,621-640
Standalone mode ships with data/ directory (UI icons, virtual keyboards,
floppy sounds, AmigaTopaz.ttf font, gamecontrollerdb.txt). These are
compiled into the standalone binary but the libretro core may look for
them in the system directory.
Libretro ROM search directories (in order): save_dir/Kickstarts,
system_dir/Kickstarts, system_dir/save-data/Kickstarts, system_dir.
ref: libretro/libretro.cpp:2722-2742
Standalone ROM path: configurable via amiberry.conf "rom_path" setting.
Batocera sets this to /userdata/bios/amiga/. Fallback search order:
{home_dir}/roms/kick.rom, {home_dir}/kick.rom, ../shared/rom/kick.rom,
../System/rom/kick.rom, then ROM database guess.
ref: src/memory.cpp:2030-2072
ROM identification uses SHA1 against WinUAE database (340+ entries) but does
not reject unknown ROMs. Cloanto encrypted ROMs supported with rom.key.
ref: src/rommgr.cpp:111-1100,1731-1787
Munt MT-32/CM-32L emulation compiled in (WITH_MIDIEMU). ROMs loaded from
mt32-roms/ subdirectory of the ROM path. Split ROM pairs supported
(e.g. pcm_mt32_l.rom + pcm_mt32_h.rom).
ref: src/midiemu.cpp:82-157
Keyboard MCU emulation (keyboard_mode setting) loads MCU ROMs via ROM
database scanning. Three MCU types supported: 6570-036 (A500/A600/A1000),
68HC05 (A1200), D8039HLC (A2000).
ref: src/kbmcu/keyboard_mcu_6500_1.cpp:385, keyboard_mcu_6805.cpp:544,
keyboard_mcu_d8039hlc.cpp:235
WHDLoad autoboot requires whdboot/ directory with boot-data.zip, WHDLoad,
AmiQuit, JST, whdload_db.xml. These ship with the standalone build but must
be obtained separately for the libretro core.
ref: src/osdep/amiberry_whdbooter.cpp:1380-1565
files:
# --- Required Kickstart ROMs (from .info) ---
# ref: BlitterStudio/amiberry/libretro/libretro.cpp:558
# ref: WinUAE rommgr.cpp for ROM identification
# --- Kickstart ROMs ---
# Libretro: find_kickstart_in_system_dir() with per-model candidate lists
# Standalone: get_kickstart_filehandle() with ROM database + config
# ref: libretro/libretro.cpp:1503-1566, src/memory.cpp:2030-2072
- name: kick34005.A500
- name: kick13.rom
system: commodore-amiga
required: true
size: 262144
crc32: c4f0f55f
note: "A500 Kickstart v1.3 rev 34.5"
source_ref: "libretro-super/dist/info/amiberry_libretro.info firmware0"
note: "A500 Kickstart v1.3 rev 34.005, default for A500 model"
source_ref: "libretro/libretro.cpp:1517 candidates_a500"
- name: kick37350.A600
system: commodore-amiga
required: true
size: 524288
crc32: 43b0df7b
note: "A600 Kickstart v2.05 rev 37.350"
source_ref: "amiberry_libretro.info firmware1"
- name: kick40068.A1200
system: commodore-amiga
required: true
size: 524288
crc32: 1483a091
note: "A1200 Kickstart v3.1 rev 40.68"
source_ref: "amiberry_libretro.info firmware2"
# --- Optional Kickstart ROMs ---
- name: kick33180.A500
- name: kick12.rom
system: commodore-amiga
required: false
size: 262144
crc32: a6ce1636
note: "A500 Kickstart v1.2 rev 33.180"
source_ref: "amiberry_libretro.info firmware3"
note: "A500 Kickstart v1.2 rev 33.180, for A500OG model"
source_ref: "libretro/libretro.cpp:1516 candidates_a500og"
- name: kick20.rom
system: commodore-amiga
required: false
size: 524288
aliases: [kick204.rom]
note: "A500+ Kickstart v2.04 rev 37.175"
source_ref: "libretro/libretro.cpp:1518 candidates_a500p"
- name: kick205.rom
system: commodore-amiga
required: false
size: 524288
note: "A600 Kickstart v2.05 rev 37.350, also used for WHDLoad"
source_ref: "libretro/libretro.cpp:1519 candidates_a600"
- name: kick31.rom
system: commodore-amiga
required: false
size: 524288
note: "Kickstart v3.1 (generic), first candidate for A1200 and A4000"
source_ref: "libretro/libretro.cpp:1520-1521 candidates_a1200/a4000"
- name: kick40068.A1200
system: commodore-amiga
required: false
size: 524288
note: "A1200 Kickstart v3.1 rev 40.68, fallback after kick31.rom"
source_ref: "libretro/libretro.cpp:1520 candidates_a1200"
- name: kick40068.A4000
system: commodore-amiga
required: false
size: 524288
crc32: d6bae334
note: "A4000 Kickstart v3.1 rev 40.68"
source_ref: "amiberry_libretro.info firmware4"
note: "A4000 Kickstart v3.1 rev 40.68, fallback after kick31.rom"
source_ref: "libretro/libretro.cpp:1521 candidates_a4000"
- name: kick40060.CD32
system: commodore-cd32
required: false
size: 524288
crc32: 1e62d4a5
note: "CD32 Kickstart v3.1 rev 40.60"
source_ref: "amiberry_libretro.info firmware5"
- name: kick40060.CD32.ext
system: commodore-cd32
required: false
size: 524288
crc32: 87746be2
note: "CD32 Extended ROM rev 40.60"
source_ref: "amiberry_libretro.info firmware6"
# --- Alternative names accepted by core option ---
# these are common user-facing names, same ROMs as above
- name: kick13.rom
- name: kick.rom
system: commodore-amiga
required: false
note: "alias for kick34005.A500 (v1.3)"
source_ref: "libretro.cpp:630"
note: "Generic name, any Kickstart ROM. Last resort fallback for all models."
source_ref: "libretro/libretro.cpp:1510-1522 last in all candidate lists"
- name: kick34005.CDTV
# --- CD32 ROMs ---
- name: cd32.rom
system: commodore-cd32
required: false
size: 524288
aliases: [amiga-os-310-cd32.rom, kick40060.CD32]
note: "CD32 Kickstart v3.1 rev 40.60"
source_ref: "libretro/libretro.cpp:1522 candidates_cd32"
- name: cd32ext.rom
system: commodore-cd32
required: false
size: 524288
aliases: [amiga-ext-310-cd32.rom, "CD32 Extended.ROM"]
note: "CD32 extended ROM rev 40.60. Not needed if using a combined 1MB ROM."
source_ref: "libretro/libretro.cpp:1580 candidates_cd32 (find_ext_rom_in_system_dir)"
# --- CDTV ROMs ---
- name: cdtv.rom
system: commodore-cdtv
required: false
note: "CDTV extended ROM"
source_ref: "libretro.cpp:558 cdtv.rom option"
aliases: [kick34005.CDTV]
note: "CDTV extended ROM v1.00, used as kickstart candidate"
source_ref: "libretro/libretro.cpp:1523 candidates_cdtv"
# --- Standalone data files ---
- name: cdtvext.rom
system: commodore-cdtv
required: false
aliases: ["CDTV Extended.ROM"]
note: "CDTV extended ROM file"
source_ref: "libretro/libretro.cpp:1582 candidates_cdtv (find_ext_rom_in_system_dir)"
- name: AmigaTopaz.ttf
# --- AROS replacement ROMs ---
# ref: src/memory.cpp:1871-1954 load_kickstart_replacement
- name: aros-ext.bin
system: commodore-amiga
required: false
mode: standalone
note: "Amiga Topaz font for UI rendering"
source_ref: "BlitterStudio/amiberry/data/AmigaTopaz.ttf"
hle_fallback: true
note: "AROS extended ROM replacement. Used when no Kickstart ROM is found."
source_ref: "src/memory.cpp:1877 load_kickstart_replacement"
- name: gamecontrollerdb.txt
- name: aros-rom.bin
system: commodore-amiga
required: false
mode: standalone
note: "SDL gamepad mapping database"
source_ref: "BlitterStudio/amiberry/controllers/gamecontrollerdb.txt"
hle_fallback: true
note: "AROS main ROM replacement. Used with aros-ext.bin as Kickstart fallback."
source_ref: "src/memory.cpp:1910 load_kickstart_replacement"
# --- Cloanto key ---
- name: rom.key
system: commodore-amiga
required: false
note: "Decryption key for Cloanto Amiga Forever encrypted ROMs"
source_ref: "src/rommgr.cpp:1444-1525 load_keyring"
# --- Keyboard MCU ROMs ---
# Loaded when keyboard_mode is set to MCU emulation.
# Found via ROM database scanning (SHA1/CRC32 identification).
# ref: src/kbmcu/keyboard_mcu_*.cpp
- name: "6570-036.rom"
system: commodore-amiga
required: false
size: 2048
note: "6500-1/6570-036 keyboard MCU ROM for A500/A600/A1000 models"
source_ref: "src/kbmcu/keyboard_mcu_6500_1.cpp:385-408 keymcu_reset, src/rommgr.cpp:126 ROM ID 321"
- name: "68HC05.rom"
system: commodore-amiga
required: false
size: 8192
note: "68HC05 keyboard MCU ROM for A1200"
source_ref: "src/kbmcu/keyboard_mcu_6805.cpp:544-567 keymcu2_reset, src/rommgr.cpp:128 ROM ID 322"
- name: "D8039HLC.rom"
system: commodore-amiga
required: false
size: 2048
note: "D8039HLC keyboard MCU ROM for A2000"
source_ref: "src/kbmcu/keyboard_mcu_d8039hlc.cpp:235-258 keymcu3_reset, src/rommgr.cpp:130 ROM ID 323"
# --- Munt MT-32/CM-32L MIDI ROMs ---
# Located in mt32-roms/ subdirectory of the ROM path.
# Code appends .rom extension and tries uppercase .ROM as fallback.
# Split ROM pairs (e.g. pcm_mt32_l.rom + pcm_mt32_h.rom) also supported.
# ref: src/midiemu.cpp:82-157 midi_emu_add_roms
- name: mt32-roms/mt32_control.rom
system: commodore-amiga
required: false
aliases:
- mt32-roms/ctrl_mt32.rom
- mt32-roms/ctrl_mt32_1_07.rom
- mt32-roms/ctrl_mt32_1_06.rom
- mt32-roms/ctrl_mt32_1_05.rom
- mt32-roms/ctrl_mt32_1_04.rom
- mt32-roms/ctrl_mt32_bluer.rom
- mt32-roms/ctrl_mt32_2_04.rom
- mt32-roms/ctrl_mt32_2_07.rom
- mt32-roms/ctrl_mt32_2_06.rom
- mt32-roms/ctrl_mt32_2_03.rom
note: "Roland MT-32 control ROM for Munt MIDI emulation"
source_ref: "src/midiemu.cpp:38-62 mt32ctl candidates, 151-156 load loop"
- name: mt32-roms/pcm_mt32.rom
system: commodore-amiga
required: false
aliases: [mt32-roms/mt32_pcm.rom]
note: "Roland MT-32 PCM ROM for Munt MIDI emulation"
source_ref: "src/midiemu.cpp:133-140 MT-32 PCM loading"
- name: mt32-roms/cm32l_control.rom
system: commodore-amiga
required: false
aliases:
- mt32-roms/ctrl_cm32l.rom
- mt32-roms/ctrl_cm32ln_1_00.rom
- mt32-roms/ctrl_cm32l_1_02.rom
- mt32-roms/ctrl_cm32l_1_00.rom
note: "Roland CM-32L control ROM for Munt MIDI emulation"
source_ref: "src/midiemu.cpp:25-37 cm32lctl candidates, 151-156 load loop"
- name: mt32-roms/pcm_cm32l.rom
system: commodore-amiga
required: false
aliases: [mt32-roms/cm32l_pcm.rom]
note: "Roland CM-32L PCM ROM for Munt MIDI emulation"
source_ref: "src/midiemu.cpp:142-149 CM-32L PCM loading"

441
emulators/ares.yml Normal file
View File

@@ -0,0 +1,441 @@
emulator: ares
type: standalone
source: "https://github.com/ares-emulator/ares"
upstream: "https://github.com/ares-emulator/ares"
profiled_date: "2026-03-26"
core_version: "v147"
display_name: "ares"
cores: [ares]
mode: standalone
systems:
- arcade
- atari-2600
- colecovision
- myvision
- famicom
- famicom-disk-system
- game-boy
- game-boy-color
- game-boy-advance
- master-system
- game-gear
- sg-1000
- sc-3000
- mega-drive
- sega-32x
- mega-cd
- mega-cd-32x
- mega-ld
- msx
- msx2
- neo-geo
- neo-geo-pocket
- neo-geo-pocket-color
- nintendo-64
- nintendo-64dd
- pc-engine
- pc-engine-cd
- pc-engine-ld
- supergrafx
- supergrafx-cd
- sony-playstation
- saturn
- super-famicom
- wonderswan
- wonderswan-color
- pocket-challenge-v2
- zx-spectrum
- zx-spectrum-128
notes: |
Multi-system emulator by Near (byuu), successor to higan/bsnes. Focuses on
accuracy and preservation. 38 systems emulated.
Firmware identification uses SHA256 hashes. Filenames are user-defined; ares
scans a configured directory and matches by hash. EmuDeck installs ares as
Flatpak (dev.ares.ares), configures biosPath in settings.bml.
ref: desktop-ui/settings/firmware.cpp:116-136
Firmware path resolution: settings.paths.firmware (user override) or
{userData}/ares/Firmware/ (default). Per-system firmware assigned in
Settings > Firmware dialog or via scan-by-hash.
ref: desktop-ui/settings/settings.hpp:90-102, desktop-ui/desktop-ui.cpp:68-75
Systems with fully embedded firmware (no user files needed):
Game Boy (boot.rom), Game Boy Color (boot.rom), Mega Drive (TMSS),
Sega 32X (TMSS + vector + SH2 boot M/S), Nintendo 64 (PIF NTSC/PAL/SM5 +
CIC 6101/6102/6105/7101), Super Famicom (IPL + all coprocessor firmware:
DSP1-4, CX4, ST010, ST011, ST018, SGB1/2 boot ROMs), WonderSwan (boot.rom),
WonderSwan Color (boot.rom), Pocket Challenge V2 (boot.rom),
ZX Spectrum (BIOS), ZX Spectrum 128 (BIOS + sub ROM).
ref: mia/resource/resource.bml, mia/Firmware/
SFC coprocessor firmware auto-injected if missing from ROM image.
ref: mia/medium/super-famicom.cpp:42-62
Neo Geo BIOS: accepts ZIP archive (neogeo.zip) or direct binary. AES looks
for "neo-epo.bin" inside ZIP, MVS looks for "sp-45.sp1". Both apply byte-swap
after loading.
ref: mia/system/neo-geo-aes.cpp:12-30, mia/system/neo-geo-mvs.cpp:12-30
SFC subsystem ROMs (SuFami Turbo, Satellaview, Super Game Boy): loaded as
game cartridges via CLI args, not through the firmware system. EmuDeck creates
launcher shortcuts that pass these alongside game ROMs.
ref: emuDeckares.sh (EmuDeck repo)
Systems with no firmware: Arcade, Atari 2600, Famicom, MyVision, PC Engine,
SuperGrafx, SG-1000, SC-3000.
files:
# --- ColecoVision ---
- name: colecovision.rom
system: colecovision
required: true
mode: standalone
sha256: "990bf1956f10207d8781b619eb74f89b00d921c8d45c95c334c16c8cceca09ad"
validation: [sha256]
description: "ColecoVision BIOS"
source_ref: "desktop-ui/emulator/colecovision.cpp:12"
# --- Famicom Disk System ---
- name: disksys.rom
system: famicom-disk-system
required: true
mode: standalone
sha256: "fdc1a76e654feea993fcb38366e05ee5f4eb641f86fe6bebaeefd412e112dd72"
validation: [sha256]
description: "Famicom Disk System BIOS"
source_ref: "desktop-ui/emulator/famicom-disk-system.cpp:19"
# --- Game Boy Advance ---
- name: gba_bios.bin
system: game-boy-advance
required: true
mode: standalone
sha256: "fd2547724b505f487e6dcb29ec2ecff3af35a841a77ab2e85fd87350abd36570"
validation: [sha256]
description: "GBA BIOS"
source_ref: "desktop-ui/emulator/game-boy-advance.cpp:14"
# --- Game Gear ---
- name: bios.gg
system: game-gear
required: false
mode: standalone
sha256: "8c8a21335038285cfa03dc076100c1f0bfadf3e4ff70796f11f3dfaaab60eee2"
validation: [sha256]
description: "Game Gear BIOS"
source_ref: "desktop-ui/emulator/game-gear.cpp:12, mia/system/game-gear.cpp:8 (//optional)"
# --- Master System ---
- name: bios_U.sms
system: master-system
required: false
mode: standalone
sha256: "477617917a12a30f9f43844909dc2de6e6a617430f5c9a36306c86414a670d50"
validation: [sha256]
description: "Master System BIOS (US)"
source_ref: "desktop-ui/emulator/master-system.cpp:14, mia/system/master-system.cpp:8 (//optional)"
- name: bios_J.sms
system: master-system
required: false
mode: standalone
sha256: "67846e26764bd862f19179294347f7353a4166b62ac4198a5ec32933b7da486e"
validation: [sha256]
description: "Master System BIOS (Japan)"
source_ref: "desktop-ui/emulator/master-system.cpp:15"
- name: bios_E.sms
system: master-system
required: false
mode: standalone
sha256: "477617917a12a30f9f43844909dc2de6e6a617430f5c9a36306c86414a670d50"
validation: [sha256]
description: "Master System BIOS (Europe), same binary as US"
source_ref: "desktop-ui/emulator/master-system.cpp:16"
# --- Mega CD ---
# Also used by Mega CD 32X (desktop-ui/emulator/mega-cd-32x.cpp)
- name: bios_CD_U.bin
system: mega-cd
required: true
mode: standalone
sha256: "fb477cdbf94c84424c2feca4fe40656d85393fe7b7b401911b45ad2eb991258c"
validation: [sha256]
description: "Mega CD / Sega CD BIOS (US)"
source_ref: "desktop-ui/emulator/mega-cd.cpp:17"
- name: bios_CD_J.bin
system: mega-cd
required: true
mode: standalone
sha256: "7133fc2dd2fe5b7d0acd53a5f10f3d00b5d31270239ad20d74ef32393e24af88"
validation: [sha256]
description: "Mega CD BIOS (Japan)"
source_ref: "desktop-ui/emulator/mega-cd.cpp:18"
- name: bios_CD_E.bin
system: mega-cd
required: true
mode: standalone
sha256: "fe608a2a07676a23ab5fd5eee2f53c9e2526d69a28aa16ccd85c0ec42e6933cb"
validation: [sha256]
description: "Mega CD BIOS (Europe)"
source_ref: "desktop-ui/emulator/mega-cd.cpp:19"
# --- Mega LD (LaserActive SEGA PAC) ---
- name: mega_ld_bios_U.bin
system: mega-ld
required: true
mode: standalone
description: "LaserActive SEGA PAC BIOS (US)"
source_ref: "desktop-ui/emulator/mega-ld.cpp:18"
- name: mega_ld_bios_J.bin
system: mega-ld
required: true
mode: standalone
description: "LaserActive SEGA PAC BIOS (Japan)"
source_ref: "desktop-ui/emulator/mega-ld.cpp:19"
# --- MSX ---
- name: MSX.ROM
system: msx
required: true
mode: standalone
sha256: "413a2b601a94b3792e054be2439cc77a1819cceadbfa9542f88d51c7480f2ef0"
validation: [sha256]
description: "MSX BIOS ROM (Japan)"
source_ref: "desktop-ui/emulator/msx.cpp:15"
# --- MSX2 ---
- name: MSX2.ROM
system: msx2
required: true
mode: standalone
sha256: "0c672d86ead61a97f49a583b88b7c1905da120645cd44f0c9f2baf4f4631e0b1"
validation: [sha256]
description: "MSX2 main BIOS ROM (Japan)"
source_ref: "desktop-ui/emulator/msx2.cpp:15"
- name: MSX2EXT.ROM
system: msx2
required: true
mode: standalone
sha256: "6c6f421a10c428d960b7ecc990f99af1c638147f747bddca7b0bf0e2ab738300"
validation: [sha256]
description: "MSX2 sub ROM (Japan)"
source_ref: "desktop-ui/emulator/msx2.cpp:16"
# --- Neo Geo AES ---
- name: neo-epo.bin
system: neo-geo
required: true
mode: standalone
description: "Neo Geo AES BIOS. Accepts neogeo.zip (extracts neo-epo.bin) or direct file. Byte-swapped on load."
source_ref: "desktop-ui/emulator/neo-geo-aes.cpp:14, mia/system/neo-geo-aes.cpp:16"
# --- Neo Geo MVS ---
- name: sp-45.sp1
system: neo-geo
required: true
mode: standalone
description: "Neo Geo MVS BIOS. Accepts neogeo.zip (extracts sp-45.sp1) or direct file. Byte-swapped on load."
source_ref: "desktop-ui/emulator/neo-geo-mvs.cpp:15, mia/system/neo-geo-mvs.cpp:16"
# --- Neo Geo Pocket ---
- name: ngp_bios.rom
system: neo-geo-pocket
required: true
mode: standalone
sha256: "0293555b21c4fac516d25199df7809b26beeae150e1d4504a050db32264a6ad7"
validation: [sha256]
description: "Neo Geo Pocket BIOS"
source_ref: "desktop-ui/emulator/neo-geo-pocket.cpp:12"
# --- Neo Geo Pocket Color ---
- name: ngpc_bios.rom
system: neo-geo-pocket-color
required: true
mode: standalone
sha256: "8fb845a2f71514cec20728e2f0fecfade69444f8d50898b92c2259f1ba63e10d"
validation: [sha256]
description: "Neo Geo Pocket Color BIOS"
source_ref: "desktop-ui/emulator/neo-geo-pocket-color.cpp:12"
# --- Nintendo 64DD ---
- name: 64dd_ipl_J.bin
system: nintendo-64dd
required: true
mode: standalone
sha256: "806400ec0df94b0755de6c5b8249d6b6a9866124c5ddbdac198bde22499bfb8b"
validation: [sha256]
description: "Nintendo 64DD IPL ROM (Japan retail)"
source_ref: "desktop-ui/emulator/nintendo-64dd.cpp:17"
- name: 64dd_ipl_U.bin
system: nintendo-64dd
required: true
mode: standalone
sha256: "e9fec87a45fba02399e88064b9e2f8cf0f2106e351c58279a87f05da5bc984ad"
validation: [sha256]
description: "Nintendo 64DD IPL ROM (US dev kit)"
source_ref: "desktop-ui/emulator/nintendo-64dd.cpp:18"
- name: 64dd_ipl_DEV.bin
system: nintendo-64dd
required: true
mode: standalone
sha256: "9c2962a8b994a29e4cd04b3a6e4ed730a751414655ab6a9799ebf5fc08b79d44"
validation: [sha256]
description: "Nintendo 64DD IPL ROM (development)"
source_ref: "desktop-ui/emulator/nintendo-64dd.cpp:19"
# --- PC Engine CD ---
- name: syscard1.pce
system: pc-engine-cd
required: true
mode: standalone
sha256: "afe9f27f91ac918348555b86298b4f984643eafa2773196f2c5441ea84f0c3bb"
validation: [sha256]
description: "PC Engine CD-ROM2 System Card v1.0 (Japan). Also used by PC Engine LD."
source_ref: "desktop-ui/emulator/pc-engine-cd.cpp:15"
- name: syscard3.pce
system: pc-engine-cd
required: true
mode: standalone
sha256: "e11527b3b96ce112a037138988ca72fd117a6b0779c2480d9e03eaebece3d9ce"
validation: [sha256]
description: "Super CD-ROM2 System Card v3.0 (Japan). Also used by SuperGrafx CD as Arcade Card."
source_ref: "desktop-ui/emulator/pc-engine-cd.cpp:16, desktop-ui/emulator/supergrafx-cd.cpp:15"
- name: syscard3u.pce
system: pc-engine-cd
required: true
mode: standalone
sha256: "cadac2725711b3c442bcf237b02f5a5210c96f17625c35fa58f009e0ed39e4db"
validation: [sha256]
description: "TurboGrafx-CD Super System Card v3.0 (US)"
source_ref: "desktop-ui/emulator/pc-engine-cd.cpp:17"
- name: games_express.pce
system: pc-engine-cd
required: true
mode: standalone
sha256: "4b86bb96a48a4ca8375fc0109631d0b1d64f255a03b01de70594d40788ba6c3d"
validation: [sha256]
description: "Games Express CD Card (Japan). Also used by PC Engine LD."
source_ref: "desktop-ui/emulator/pc-engine-cd.cpp:18"
# --- PC Engine LD (LaserActive NEC PAC) ---
- name: pac-n10.pce
system: pc-engine-ld
required: true
mode: standalone
sha256: "0e87a3385a27b3a4cac51934819b7eefa5b3d690768d2495633838488cd0e2e4"
validation: [sha256]
description: "NEC PAC-N10 LaserActive module (US)"
source_ref: "desktop-ui/emulator/pc-engine-ld.cpp:20"
- name: pac-n1.pce
system: pc-engine-ld
required: true
mode: standalone
sha256: "459325690a458baebd77495c91e37c4dddfdd542ba13a821ce954e5bb245627f"
validation: [sha256]
description: "NEC PAC-N1 LaserActive module (Japan)"
source_ref: "desktop-ui/emulator/pc-engine-ld.cpp:21"
- name: pce-lp1.pce
system: pc-engine-ld
required: true
mode: standalone
sha256: "3f43b3b577117d84002e99cb0baeb97b0d65b1d70b4adadc68817185c6a687f0"
validation: [sha256]
description: "NEC PCE-LP1 LaserActive module (Japan)"
source_ref: "desktop-ui/emulator/pc-engine-ld.cpp:22"
# --- PlayStation ---
- name: scph5501.bin
system: sony-playstation
required: true
mode: standalone
sha256: "11052b6499e466bbf0a709b1f9cb6834a9418e66680387912451e971cf8a1fef"
validation: [sha256]
description: "PlayStation BIOS (US)"
source_ref: "desktop-ui/emulator/playstation.cpp:18"
- name: scph5500.bin
system: sony-playstation
required: true
mode: standalone
sha256: "9c0421858e217805f4abe18698afea8d5aa36ff0727eb8484944e00eb5e7eadb"
validation: [sha256]
description: "PlayStation BIOS (Japan)"
source_ref: "desktop-ui/emulator/playstation.cpp:19"
- name: scph5502.bin
system: sony-playstation
required: true
mode: standalone
sha256: "1faaa18fa820a0225e488d9f086296b8e6c46df739666093987ff7d8fd352c09"
validation: [sha256]
description: "PlayStation BIOS (Europe)"
source_ref: "desktop-ui/emulator/playstation.cpp:20"
# --- Saturn ---
- name: saturn_bios_U.bin
system: saturn
required: true
mode: standalone
description: "Sega Saturn BIOS (US)"
source_ref: "desktop-ui/emulator/saturn.cpp:14"
- name: saturn_bios_J.bin
system: saturn
required: true
mode: standalone
description: "Sega Saturn BIOS (Japan)"
source_ref: "desktop-ui/emulator/saturn.cpp:15"
- name: saturn_bios_E.bin
system: saturn
required: true
mode: standalone
description: "Sega Saturn BIOS (Europe)"
source_ref: "desktop-ui/emulator/saturn.cpp:16"
# --- SFC subsystem ROMs (loaded as game cartridges, not firmware) ---
- name: SGB1.sfc
system: super-famicom
required: false
mode: standalone
category: game_data
description: "Super Game Boy cartridge ROM. Loaded via CLI as SFC cartridge alongside GB game."
source_ref: "EmuDeck emuDeckares.sh (launcher)"
- name: SGB2.sfc
system: super-famicom
required: false
mode: standalone
category: game_data
description: "Super Game Boy 2 cartridge ROM. Loaded via CLI as SFC cartridge alongside GB game."
source_ref: "EmuDeck emuDeckares.sh (launcher)"
- name: STBIOS.bin
system: super-famicom
required: false
mode: standalone
category: game_data
description: "SuFami Turbo adapter BIOS. Loaded via CLI as SFC cartridge alongside SuFami games."
source_ref: "EmuDeck emuDeckares.sh (launcher)"
- name: BS-X.bin
system: super-famicom
required: false
mode: standalone
category: game_data
description: "Satellaview BS-X Town cartridge ROM. Loaded via CLI as SFC cartridge for BS games."
source_ref: "EmuDeck emuDeckares.sh (launcher)"

View File

@@ -1,7 +1,7 @@
emulator: Beetle PC-FX (Mednafen)
type: libretro
core_classification: community_fork
cores: [mednafen_pcfx]
cores: [mednafen_pcfx, pcfx]
source: "https://github.com/libretro/beetle-pcfx-libretro"
upstream: "https://mednafen.github.io/"
profiled_date: "2026-03-24"

View File

@@ -9,6 +9,7 @@ core_version: "v0.9.45.1"
display_name: "Sega - Saturn (Beetle Saturn)"
cores:
- mednafen_saturn
- beetle-saturn
systems:
- sega-saturn

View File

@@ -6,7 +6,7 @@ upstream: "https://mednafen.github.io/"
profiled_date: "2026-03-24"
core_version: "v0.9.36.1"
display_name: "Nintendo - Virtual Boy (Beetle VB)"
cores: [mednafen_vb]
cores: [mednafen_vb, vb]
systems: [nintendo-virtualboy]
notes: |

View File

@@ -6,7 +6,7 @@ upstream: "https://mednafen.github.io/"
profiled_date: "2026-03-24"
core_version: "v0.9.35.1"
display_name: "Bandai - WonderSwan/Color (Beetle Wonderswan)"
cores: [beetle_wswan]
cores: [beetle_wswan, mednafen_wswan]
systems: [bandai-wswan, bandai-wswanc]
notes: |

23
emulators/bigpemu.yml Normal file
View File

@@ -0,0 +1,23 @@
emulator: BigPEmu
type: standalone
source: "https://www.richwhitehouse.com/jaguar/"
upstream: "https://www.richwhitehouse.com/jaguar/"
profiled_date: "2026-03-26"
core_version: "1.12"
display_name: "BigPEmu (Atari Jaguar)"
cores:
- bigpemu
systems:
- atari-jaguar
- atari-jaguarcd
mode: standalone
notes: |
Closed-source Atari Jaguar and Jaguar CD emulator by Rich Whitehouse.
Built-in boot ROM emulation for both cartridge and CD. No external
BIOS or firmware files required. The emulator supports optional
"custom boot ROM images" via the UI (loading mode for specific
homebrew demos), but no fixed file path or file name is expected.
EmuDeck confirms: "No BIOS are required to play BigPEmu."
files: []

View File

@@ -3,7 +3,7 @@ type: libretro
core_classification: frozen_snapshot
source: "https://github.com/libretro/bsnes2014"
upstream: "https://github.com/bsnes-emu/bsnes"
profiled_date: "2026-03-23"
profiled_date: "2026-03-25"
core_version: "v094"
display_name: "Nintendo - SNES / SFC (bsnes 2014)"
cores: [bsnes2014_accuracy, bsnes2014_balanced, bsnes2014_performance]
@@ -15,30 +15,23 @@ systems:
notes: |
Frozen at bsnes v094. Three build profiles: accuracy (dot-based PPU),
balanced, performance (scanline PPU). All 3 share the same 18 firmware
balanced, performance (scanline PPU). All 3 share the same 16 firmware
files. Profiles only differ in PPU (sfc/profile-*.hpp), not coprocessors.
Performance .info is wrong (firmware_count=17, missing cx4.data.rom).
SPC700 IPL ROM (64 bytes) embedded in target-libretro/libretro.cpp:31.
No HLE fallback for any coprocessor in v094.
Firmware loaded from system_dir via file::exists() + mmapstream.
DSP1 (non-b) names used via embedded database for specific SHA256-matched
games; DSP1B names used via heuristic fallback for all DSP1/DSP1B games.
No hash or size validation on any firmware file.
Libretro build uses heuristics only (ananke/heuristics/), not the SHA256
database (ananke/database/). All DSP1 games use DSP1B filenames via
heuristic fallback. The database dsp1.program.rom / dsp1.data.rom names
are only in the standalone build (target-ethos via ananke).
.info accuracy/balanced: firmware_count=18 (overcounts by 2, includes
phantom dsp1.* from unused database). Performance .info: firmware_count=17
(also missing cx4.data.rom).
Upstream v094 source is contained within the libretro repo (sfc/, ananke/).
bsnes-emu/bsnes is the modern rewrite (v115+).
files:
- name: dsp1.program.rom
system: nintendo-snes
required: false
size: 6144
source_ref: "ananke/database/super-famicom.hpp:5658"
- name: dsp1.data.rom
system: nintendo-snes
required: false
size: 2048
source_ref: "ananke/database/super-famicom.hpp:5659"
- name: dsp1b.program.rom
system: nintendo-snes
required: false

View File

@@ -6,7 +6,7 @@ upstream: "https://github.com/bsnes-emu/bsnes"
profiled_date: "2026-03-23"
core_version: "v10.6"
display_name: "Nintendo - SNES / SFC (bsnes-hd beta)"
cores: [bsnes_hd_beta]
cores: [bsnes_hd_beta, bsneshd, bsnes_hd]
systems:
- nintendo-snes
- nintendo-sgb

View File

@@ -3,7 +3,7 @@ type: libretro
core_classification: enhanced_fork
source: "https://github.com/libretro/bsnes-mercury"
upstream: "https://byuu.org/higan"
profiled_date: "2026-03-23"
profiled_date: "2026-03-25"
core_version: "v094 (Mercury)"
display_name: "Nintendo - SNES / SFC (bsnes-mercury)"
cores: [bsnes_mercury_accuracy, bsnes_mercury_balanced, bsnes_mercury_performance]
@@ -22,7 +22,7 @@ notes: |
Firmware loaded from system_dir via file::exists + mmapstream.
No hash or size validation on any firmware file.
ref: target-libretro/libretro.cpp:241-263
ref: target-libretro/libretro.cpp:242-264
firmware_appended: firmware can be appended to end of ROM file.
ref: ananke/heuristics/super-famicom.hpp:83

View File

@@ -8,6 +8,7 @@ core_version: "v4.2.0"
display_name: "Amstrad - CPC/GX4000 (Caprice32)"
cores:
- cap32
- caprice32
systems:
- amstrad-cpc

55
emulators/citron.yml Normal file
View File

@@ -0,0 +1,55 @@
emulator: Citron
type: standalone
core_classification: community_fork
source: "https://git.citron-emu.org/citron-emu/Citron"
upstream: "https://git.citron-emu.org/citron-emu/Citron"
profiled_date: "2026-03-26"
core_version: "2026.03.12"
display_name: "Citron (Nintendo Switch)"
systems: [nintendo-switch]
analysis_date: "2026-03-26"
analysis_commit: "79dee42 (depth=1)"
mode: standalone
# Citron is a community fork of yuzu, continued by Zephyron after yuzu's takedown.
# Key files loaded from <data_dir>/keys/ (fs_paths.h:18, path_util.cpp:124).
# On Linux: $XDG_DATA_HOME/citron/keys/
# On Batocera: XDG_DATA_HOME=/userdata/saves/switch → /userdata/saves/switch/citron/keys/
# Firmware NCAs are installed into NAND via UI (main.cpp:1808), not placed as files.
# HLE fallbacks exist for fonts, timezone, system version, mii model, ng word lists.
files:
- name: "prod.keys"
required: true
path: "switch/"
mode: standalone
note: "Production keys for NCA decryption (master, key area, header, titlekek)"
source_ref: "src/core/crypto/key_manager.cpp:655-656"
- name: "title.keys"
required: false
path: "switch/"
mode: standalone
note: "Per-title encryption keys (rights_id to titlekey mappings)"
source_ref: "src/core/crypto/key_manager.cpp:659-660"
- name: "console.keys"
required: false
path: "switch/"
mode: standalone
note: "Console-specific keys (BIS, SD seed)"
source_ref: "src/core/crypto/key_manager.cpp:661-662"
- name: "key_retail.bin"
required: false
path: "switch/"
size: 160
mode: standalone
note: "Amiibo decryption keys (two InternalKey structs, 0x50 bytes each)"
source_ref: "src/core/hle/service/nfc/common/amiibo_crypto.cpp:274-292"
notes: |
Citron is a standalone Nintendo Switch emulator, community fork of yuzu by Zephyron.
dev.keys can be used instead of prod.keys when use_dev_keys is enabled (for Switch dev units).
Firmware (system NCAs) must be installed through Citron's UI from a firmware ZIP or NCA files.
Required for commercial games. Homebrew (.nro, .nso) can run without keys or firmware.

1248
emulators/clk.yml Normal file

File diff suppressed because it is too large Load Diff

157
emulators/demul.yml Normal file
View File

@@ -0,0 +1,157 @@
emulator: Demul
type: standalone
upstream: "https://demul.emulation64.com"
profiled_date: "2026-03-26"
core_version: "0.7"
display_name: "Sega - Dreamcast/NAOMI/Hikaru (Demul)"
cores:
- demul
systems:
- sega-dreamcast
- sega-naomi
- sega-naomi2
- sega-hikaru
- sammy-atomiswave
- sega-system-sp
- gaelco-powervr
- cave-cv1000
notes: |
Closed-source Windows emulator for Sega Dreamcast and related arcade hardware.
Run via Wine (32-bit, win32 prefix) on Linux platforms (Batocera, RetroBat).
Uses MAME ROM naming conventions for arcade BIOS archives.
Batocera configgen (demulGenerator.py) maps roms0 to the BIOS directory.
All BIOS ZIPs are placed directly in bios/ (no subdirectory prefix).
Demul searches configured ROM paths for both game ROMs and BIOS archives.
Gaelco PowerVR and Cave CV1000 (3rd gen) games are self-contained ROM sets
and do not require separate BIOS archives.
HLE MIE emulation available (changelog: "full HLE MIE" mode). LLE mode
requires mie.zip with the 315-6146 MCU firmware.
Supported launch modes via -run= parameter:
dc, naomi, naomi2, hikaru, atomiswave, gaelco, cave3rd, segasp.
BIOS requirements verified against Batocera configgen, batocera-systems
declarations, MAME ROM set conventions, and community documentation.
No source code available for direct verification.
files:
# -------------------------------------------------------
# Sega Dreamcast
# -------------------------------------------------------
- name: dc_boot.bin
system: sega-dreamcast
required: true
size: 2097152
note: "Dreamcast boot ROM (2 MB). No HLE fallback in Demul."
- name: dc_flash.bin
system: sega-dreamcast
required: false
size: 131072
note: "Dreamcast flash memory (128 KB). Created by emulator if missing."
# -------------------------------------------------------
# Sega NAOMI
# -------------------------------------------------------
- name: naomi.zip
system: sega-naomi
required: true
category: bios_zip
note: >
NAOMI system BIOS archive (MAME format). Contains region-specific
BIOS ROMs (EPR-21576 Japan, EPR-21577 USA, EPR-21578 Export,
EPR-21579 Korea) plus development and special BIOS variants.
- name: naomigd.zip
system: sega-naomi
required: false
category: bios_zip
note: "NAOMI GD-ROM BIOS. Shares ROMs with naomi.zip (subset of region BIOS variants)."
- name: hod2bios.zip
system: sega-naomi
required: false
category: bios_zip
note: "House of the Dead 2 game-specific BIOS. Japan/USA/Export variants."
- name: f355bios.zip
system: sega-naomi
required: false
category: bios_zip
note: "Ferrari F355 Challenge game-specific BIOS. Japan/USA/Export variants."
- name: f355dlx.zip
system: sega-naomi
required: false
category: bios_zip
note: "Ferrari F355 Challenge Deluxe game-specific BIOS. Japan/USA/Export variants."
- name: airlbios.zip
system: sega-naomi
required: false
category: bios_zip
note: "Airline Pilots Deluxe game-specific BIOS. USA/Export variants."
# -------------------------------------------------------
# Sega NAOMI 2
# -------------------------------------------------------
- name: naomi2.zip
system: sega-naomi2
required: true
category: bios_zip
note: >
NAOMI 2 system BIOS archive (MAME format). Contains region-specific
BIOS ROMs (EPR-23605 Japan, EPR-23607 USA, EPR-23608 Export,
EPR-23609 Korea, EPR-23610 Australia).
# -------------------------------------------------------
# Sega Hikaru
# -------------------------------------------------------
- name: hikaru.zip
system: sega-hikaru
required: true
category: bios_zip
note: >
Hikaru system BIOS archive (MAME format). Contains EPR-23400a (latest),
EPR-23400, EPR-21904 (early), prot_bot (dev/prototype). All 2 MB at IC94.
# -------------------------------------------------------
# Sammy Atomiswave
# -------------------------------------------------------
- name: awbios.zip
system: sammy-atomiswave
required: true
category: bios_zip
note: "Atomiswave system BIOS archive (MAME format). Contains bios0.ic23 and bios1.ic23 (128 KB each)."
# -------------------------------------------------------
# Sega System SP
# -------------------------------------------------------
- name: segasp.zip
system: sega-system-sp
required: true
category: bios_zip
note: >
System SP (Aurora/Spider) BIOS archive (MAME format). Contains
EPR-24236a, EPR-24328/a BIOS ROMs, serial EEPROM, and network
firmware variants.
# -------------------------------------------------------
# Device ROMs (NAOMI / NAOMI 2 / Hikaru)
# -------------------------------------------------------
- name: mie.zip
required: false
hle_fallback: true
category: bios_zip
note: "MIE (Maple-JVS bridge) Z80 MCU firmware (315-6146.bin). HLE mode available; LLE mode requires this archive."
- name: jvs13551.zip
required: true
category: bios_zip
note: >
Sega 837-13551 JVS I/O board firmware. Contains sp5001.bin,
sp5001-a.bin, sp5001-b.bin, sp5002-a.bin, 315-6215.bin.

55
emulators/eden.yml Normal file
View File

@@ -0,0 +1,55 @@
emulator: Eden
type: standalone
core_classification: community_fork
source: "https://git.eden-emu.dev/eden-emu/eden"
upstream: "https://git.eden-emu.dev/eden-emu/eden"
profiled_date: "2026-03-26"
core_version: "0.1.1"
display_name: "Eden (Nintendo Switch)"
systems: [nintendo-switch]
analysis_date: "2026-03-26"
analysis_commit: "9347202 (depth=1)"
mode: standalone
# Eden is a community fork of yuzu, started by Camille LaVey.
# Key files loaded from <data_dir>/keys/ (fs_paths.h:20, path_util.cpp:158).
# On Linux: $XDG_DATA_HOME/eden/keys/
# On Windows: %APPDATA%/eden/keys/
# Firmware NCAs are installed via UI (Tools > Install Firmware), not placed as files.
# HLE fallbacks exist for fonts, timezone, system version, mii model, ng word lists.
files:
- name: "prod.keys"
required: true
path: "switch/"
mode: standalone
note: "Production keys for NCA decryption (master, key area, header, titlekek)"
source_ref: "src/core/crypto/key_manager.cpp:652-653"
- name: "title.keys"
required: false
path: "switch/"
mode: standalone
note: "Per-title encryption keys (rights_id to titlekey mappings)"
source_ref: "src/core/crypto/key_manager.cpp:655-656"
- name: "console.keys"
required: false
path: "switch/"
mode: standalone
note: "Console-specific keys (BIS, SD seed)"
source_ref: "src/core/crypto/key_manager.cpp:657-658"
- name: "key_retail.bin"
required: false
path: "switch/"
size: 160
mode: standalone
note: "Amiibo decryption keys (two InternalKey structs, 0x50 bytes each)"
source_ref: "src/core/hle/service/nfc/common/amiibo_crypto.cpp:281-302"
notes: |
Eden is a standalone Nintendo Switch emulator, community fork of yuzu by Camille LaVey.
dev.keys can be used instead of prod.keys when use_dev_keys is enabled (for Switch dev units).
Firmware (system NCAs) must be installed through Eden's UI from a firmware ZIP or NCA folder.
Required for commercial games. Homebrew (.nro, .nso) can run without keys or firmware.

53
emulators/eka2l1.yml Normal file
View File

@@ -0,0 +1,53 @@
emulator: eka2l1
type: standalone
source: "https://github.com/EKA2L1/EKA2L1"
upstream: "https://github.com/EKA2L1/EKA2L1"
profiled_date: "2026-03-26"
core_version: "continuous"
display_name: "EKA2L1 (Symbian OS / N-Gage)"
cores:
- eka2l1
systems:
- ngage
analysis_date: "2026-03-26"
analysis_commit: "e67f84d (depth=1)"
mode: standalone
# EKA2L1 emulates Symbian OS kernel and reimplements critical app servers and
# libraries. Supports S60v1 through Symbian Belle, including N-Gage 1.0/2.0.
#
# Each phone model requires its own ROM dump identified by firmware code.
# ROM path at runtime: {storage}/roms/{firmware_code_lowercase}/SYM.ROM
# Storage defaults to data/ relative to executable.
#
# Device installation (GUI or CLI) processes ROM dumps:
# - Raw .rom files → copied to roms/{firmcode}/SYM.ROM
# - RPKG files → extracted to drives/z/{firmcode}/ (system partition)
# - VPL firmware packages → extracted to roms/ and drives/
#
# drives/z/{firmcode}/ content is generated during installation, not
# user-placed. drives/c/, drives/d/, drives/e/ are runtime storage.
#
# Firmware codes for N-Gage systems:
# NEM-4 = Nokia N-Gage (original, S60v1)
# RH-29 = Nokia N-Gage QD (S60v1)
# For N-Gage 2.0 games, a S60v3 phone ROM is needed (e.g., RM-409 = 5320 XpressMusic).
#
# No libretro core exists. No .info file.
# resources/ files (shaders, soundfonts, gamecontrollerdb.txt) ship with the
# emulator distribution, not user-supplied.
notes: |
Pure standalone Symbian OS / N-Gage emulator. No libretro core.
Requires phone ROM dumps (SYM.ROM) obtained from real Nokia devices.
The emulator supports 100+ Nokia phone models (NEM-4, RH-29, RM-409, etc.).
No hash or size validation on the ROM file; the loader parses the ROM structure.
Batocera maps the ngage system to eka2l1 in configgen-defaults.yml.
No dedicated Batocera configgen generator exists.
files:
- name: "SYM.ROM"
required: true
mode: standalone
description: "Symbian OS phone ROM dump. One per device, placed in roms/{firmware_code}/ subdirectory."
source_ref: "src/emu/system/src/epoc.cpp:1225,754-759, src/emu/system/include/system/consts.h:23-25"

View File

@@ -9,6 +9,7 @@ core_version: "1.2.10"
cores:
- ep128emu_core
- ep128emu-core
systems:
- enterprise-64

View File

@@ -8,6 +8,7 @@ core_version: "v0.2.97.29"
display_name: "Arcade (FB Alpha 2012)"
cores:
- fbalpha2012
- fbalpha
systems:
- arcade
- neogeo

View File

@@ -9,6 +9,8 @@ core_version: "0.1"
display_name: "Sega - Dreamcast/Naomi (Flycast)"
cores:
- flycast
- flycast_dev
- flycastvl
systems:
- sega-dreamcast
- sega-naomi

View File

@@ -1,10 +1,10 @@
emulator: FS-UAE
type: libretro
type: standalone + libretro
core_classification: community_fork
source: "https://github.com/libretro/libretro-fsuae"
upstream: "https://github.com/FrodeSolheim/fs-uae"
profiled_date: "2026-03-23"
core_version: "v2.7.15"
profiled_date: "2026-03-26"
core_version: "v5.0.7"
display_name: "Commodore - Amiga (FS-UAE)"
cores:
- fsuae
@@ -14,122 +14,143 @@ systems:
notes: |
FS-UAE is an Amiga emulator by Frode Solheim, based on UAE/WinUAE.
ROMs loaded from save_dir/fsuae/Kickstarts/ (not system_dir).
base_dir = RETRO_ENVIRONMENT_GET_SAVE_DIRECTORY/fsuae (paths.c:197).
Also scans base_dir/AmigaForever/Amiga Files/Shared/rom/ (config.c:129-135).
Scans for .rom and .bin files. Identification by SHA-1 checksum, not filename.
AROS kickstart (512 KB) bundled in fs-uae.dat as fallback for all models.
rom.key enables decryption of Cloanto Amiga Forever encrypted ROMs.
Standalone: scans --kickstarts_dir for .rom/.bin files (default: Documents/FS-UAE/Kickstarts/).
Batocera overrides to bios/amiga/ via --kickstarts_dir (fsuaePaths.py:8, fsuaeGenerator.py:68).
Libretro port: scans save_dir/fsuae/Kickstarts/ (frozen at v2.7.15).
Identification by SHA-1 checksum, not filename (rommgr.cpp:92-151, romservice.py:78-91).
AROS kickstart (1 MB) compiled into binary as fallback for all models (rommgr.cpp:112).
rom.key searched in kickstart dir and multiple fallback paths (rommgr.cpp:1397-1498).
Supported models: A1000, A500, A500+, A600, A1200, A3000, A4000, CD32, CDTV.
Default model is A500 (config.c:42). Each model auto-selects its kickstart
via quickstart mechanism (cfgfile.c:7111-7154, config.c:140).
Supported models: A1000, A500, A500+, A600, A1200, A3000, A4000, A4000T, CD32, CDTV.
Default model is A500. Each model auto-selects its kickstart via quickstart
mechanism (cfgfile.cpp:9468-9517 for A500, cfgfile.cpp:9732-9791 for dispatch).
The .info declares firmware_count=0. All ROMs are auto-discovered by
directory scan, not by explicit filename lookup.
Libretro port is frozen at v2.7.15. Upstream ROM database is larger (3030
vs 1980 lines in rommgr). Core functionality equivalent for standard models.
ROM database shared between standalone and libretro (same WinUAE-derived rommgr.cpp).
Upstream v5.0.7 has a larger database (332 vs ~200 ROM IDs in libretro port).
Also supports Arcadia, ALG, freezer cartridges, SCSI/CPU board ROMs when configured.
files:
- name: "amiga-os-130.rom"
system: amiga
required: false
hle_fallback: true
size: 262144
sha1: "891e9a547772fe0c6c19b610baf8bc4ea7fcb785"
validation: [sha1]
mode: both
note: "Amiga 500 Kickstart 1.3 r34.5. Default model ROM."
source_ref: "sources/src/rommgr.c:141-142 (id=6, ROMTYPE_KICK)"
source_ref: "rommgr.cpp:150-151 (id=6, ROMTYPE_KICK)"
- name: "amiga-os-204.rom"
system: amiga
required: false
hle_fallback: true
size: 524288
sha1: "c5839f5cb98a7a8947065c3ed2f14f5f42e334a1"
validation: [sha1]
mode: both
note: "Amiga 500+ Kickstart 2.04 r37.175."
source_ref: "sources/src/rommgr.c:149-150 (id=7, ROMTYPE_KICK)"
source_ref: "rommgr.cpp:158-159 (id=7, ROMTYPE_KICK)"
- name: "amiga-os-205.rom"
system: amiga
required: false
hle_fallback: true
size: 524288
sha1: "02843c4253bbd29aba535b0aa3bd9a85034ecde4"
validation: [sha1]
mode: both
note: "Amiga 600 Kickstart 2.05 r37.350."
source_ref: "sources/src/rommgr.c:155-156 (id=10, ROMTYPE_KICK)"
source_ref: "rommgr.cpp:164-165 (id=10, ROMTYPE_KICK)"
- name: "amiga-os-120.rom"
system: amiga
required: false
hle_fallback: true
size: 262144
sha1: "11f9e62cf299f72184835b7b2a70a16333fc0d88"
validation: [sha1]
mode: both
note: "Amiga 1000 Kickstart 1.2 r33.180."
source_ref: "sources/src/rommgr.c:139-140 (id=5, ROMTYPE_KICK)"
source_ref: "rommgr.cpp:148-149 (id=5, ROMTYPE_KICK)"
- name: "amiga-os-310-a1200.rom"
system: amiga
required: false
hle_fallback: true
size: 524288
sha1: "e21545723fe8374e91342617604f1b3d703094f1"
validation: [sha1]
mode: both
note: "Amiga 1200 Kickstart 3.1 r40.68."
source_ref: "sources/src/rommgr.c:176-177 (id=15, ROMTYPE_KICK)"
source_ref: "rommgr.cpp:185-186 (id=15, ROMTYPE_KICK)"
- name: "amiga-os-310-a3000.rom"
system: amiga
required: false
hle_fallback: true
size: 524288
sha1: "f8e210d72b4c4853e0c9b85d223ba20e3d1b36ee"
validation: [sha1]
mode: both
note: "Amiga 3000 Kickstart 3.1 r40.68."
source_ref: "sources/src/rommgr.c:180-181 (id=61, ROMTYPE_KICK)"
source_ref: "rommgr.cpp:189-190 (id=61, ROMTYPE_KICK)"
- name: "amiga-os-310-a4000.rom"
system: amiga
required: false
hle_fallback: true
size: 524288
sha1: "5fe04842d04a489720f0f4bb0e46948199406f49"
validation: [sha1]
mode: both
note: "Amiga 4000 Kickstart 3.1 r40.68."
source_ref: "sources/src/rommgr.c:186-187 (id=16, ROMTYPE_KICK)"
source_ref: "rommgr.cpp:195-196 (id=16, ROMTYPE_KICK)"
- name: "amiga-os-310-cd32.rom"
system: amiga
required: false
hle_fallback: true
size: 524288
sha1: "3525be8887f79b5929e017b42380a79edfee542d"
validation: [sha1]
mode: both
note: "Amiga CD32 Kickstart 3.1 r40.60."
source_ref: "sources/src/rommgr.c:197-198 (id=18, ROMTYPE_KICKCD32)"
source_ref: "rommgr.cpp:312-313 (id=18, ROMTYPE_KICKCD32)"
- name: "amiga-ext-310-cd32.rom"
system: amiga
required: false
size: 524288
sha1: "5bef3d628ce59cc02a66e6e4ae0da48f60e78f7f"
validation: [sha1]
mode: both
note: "CD32 extended ROM r40.60. Required for CD32 mode."
source_ref: "sources/src/rommgr.c:199-200 (id=19, ROMTYPE_EXTCD32)"
source_ref: "rommgr.cpp:314-315 (id=19, ROMTYPE_EXTCD32)"
- name: "cd32fmv.rom"
system: amiga
required: false
size: 262144
sha1: "03ca81c7a7b259cf64bc9582863eca0f6529f435"
validation: [sha1]
note: "CD32 Full Motion Video cartridge ROM. For CD32/FMV model."
source_ref: "sources/src/rommgr.c:208-209 (id=23, ROMTYPE_CD32CART)"
mode: both
note: "CD32 Full Motion Video cartridge ROM v40.30. Also accepts v40.22 (391777-01)."
source_ref: "rommgr.cpp:323-326 (id=23/74, ROMTYPE_CD32CART)"
- name: "amiga-ext-130-cdtv.rom"
system: amiga
required: false
size: 262144
sha1: "7ba40ffa17e500ed9fed041f3424bd81d9c907be"
validation: [sha1]
note: "CDTV extended ROM v1.0. Required for CDTV mode."
source_ref: "sources/src/rommgr.c:213-214 (id=20, ROMTYPE_EXTCDTV)"
mode: both
note: "CDTV extended ROM v1.0. Required for CDTV mode. Also accepts v2.30 and v2.7."
source_ref: "rommgr.cpp:328-329 (id=20, ROMTYPE_EXTCDTV)"
- name: "rom.key"
system: amiga
required: false
mode: both
note: "Cloanto Amiga Forever decryption key. Enables encrypted ROM loading."
source_ref: "libretro/libretro.c:206-222 (addkeyfile via amiga_add_key_dir)"
source_ref: "rommgr.cpp:119-124 (ROMTYPE_KEY), rommgr.cpp:1397-1412 (addkeydir)"

View File

@@ -8,6 +8,8 @@ core_version: "v1.7.4"
display_name: "Sega - MS/GG/MD/CD (Genesis Plus GX)"
cores:
- genesis_plus_gx
- genesisplusgx
- genesisplusgx-expanded
systems:
- sega-megadrive
- sega-megacd

View File

@@ -8,6 +8,8 @@ core_version: "v1.7.4"
display_name: "Sega - MS/GG/MD/CD (Genesis Plus GX Wide)"
cores:
- genesis_plus_gx_wide
- genesisplusgxwide
- genesisplusgx-wide
systems:
- sega-megadrive
- sega-megacd

43
emulators/gsplus.yml Normal file
View File

@@ -0,0 +1,43 @@
emulator: GSplus
type: standalone
source: "https://github.com/digarok/gsplus"
upstream: "https://github.com/digarok/gsplus"
profiled_date: "2026-03-26"
core_version: "KEGS 1.38"
display_name: "Apple - Apple IIGS (GSplus)"
cores:
- gsplus
systems:
- apple-iigs
notes: |
Fork of KEGS (Kent's Emulated GS) by digarok. Cross-platform Apple IIGS
emulator supporting ROM 01 (128K), ROM 03 (256K), and Apple //e (32K) ROMs.
ROM version determined by file size at load time.
Batocera configgen (gsplusGenerator.py) sets g_cfg_rom_path to bios/ROM.03
by default (configurable via gsplus_bios_filename system setting).
Built-in Disk II controller PROM derived via XOR diffs from main ROM.
Built-in HD SmartPort PROM (slot 7) hardcoded in source.
Built-in character font (kegsfont.h), optional ROMX-compatible charrom
loadable via config UI.
files:
- name: ROM
aliases: [ROM.01, ROM.03, APPLE2GS.ROM, APPLE2GS.ROM2, xgs.rom, XGS.ROM, Rom03gd, 342-0077-b]
required: true
description: "Apple IIGS system ROM"
source_ref: "config.c:131,403-407,1092-1149"
note: "Accepted sizes: 32768 (Apple //e), 131072 (ROM 01), 262144 (ROM 03)"
validation: [size]
- name: c600.rom
aliases: [controller.rom, disk.rom, DISK.ROM, diskII.prom]
required: false
hle_fallback: true
size: 256
description: "Disk II controller PROM (slot 6)"
validation: [size]
source_ref: "config.c:414-415,1188-1220"
note: "Built-in PROM generated from XOR diffs against main ROM"

View File

@@ -2,7 +2,8 @@ emulator: "Game & Watch"
type: libretro
core_classification: pure_libretro
source: "https://github.com/libretro/gw-libretro"
profiled_date: "2026-03-21"
upstream: "http://www.madrigaldesign.it/sim/"
profiled_date: "2026-03-25"
core_version: "Git"
display_name: "Handheld Electronic (GW)"
cores:

View File

@@ -1,5 +1,5 @@
emulator: Hatari
type: libretro
type: standalone + libretro
core_classification: frozen_snapshot
source: "https://github.com/libretro/hatari"
upstream: "https://github.com/hatari/hatari"
@@ -9,6 +9,7 @@ core_version: "1.8"
display_name: "Atari - ST/STE/TT/Falcon (Hatari)"
cores:
- hatari
- hatarib
systems: [atari-st, atari-ste, atari-tt, atari-falcon]
# Hatari requires a TOS ROM image to boot. The default filename is tos.img,

88
emulators/lexaloffle.yml Normal file
View File

@@ -0,0 +1,88 @@
emulator: Lexaloffle
type: standalone
upstream: "https://www.lexaloffle.com/"
profiled_date: "2026-03-26"
display_name: "Lexaloffle - PICO-8 / Voxatron"
cores:
- lexaloffle
systems:
- pico8
- voxatron
notes: |
Commercial fantasy consoles by Lexaloffle Games LLP. Closed-source binaries
distributed as ZIP archives from lexaloffle.com (requires purchase).
Batocera configgen (lexaloffleGenerator.py) handles both systems via a single
generator. PICO-8: binary at bios/pico-8/pico8. Voxatron: binary at
bios/voxatron/vox. Generator checks binary existence and executable permission,
raises BatoceraException if missing. LD_LIBRARY_PATH set to the BIOS directory
for shared library resolution.
Each distribution ships a statically linked binary (pico8/vox) and a dynamically
linked variant (pico8_dyn/vox_dyn). Batocera uses the static binary. The .dat
file is loaded at startup and contains boot sequence, themes, and internal data.
PICO-8 supports x86_64 and ARM (Raspberry Pi). Voxatron x86_64 only.
Voxatron depends on libHoloPlayCore.so (Looking Glass SDK), compile-time linked.
files:
# -------------------------------------------------------
# PICO-8
# -------------------------------------------------------
- name: pico8
path: pico-8/pico8
system: pico8
required: true
description: "PICO-8 main executable (statically linked)"
source_ref: "lexaloffleGenerator.py:17,36,48-49"
note: "Configgen checks existence and executable permission"
- name: pico8_dyn
path: pico-8/pico8_dyn
system: pico8
required: false
description: "PICO-8 dynamically linked executable"
source_ref: "lexaloffleGenerator.py:17,36"
note: "Alternative to pico8. Requires system SDL2. Some platforms prefer this variant."
- name: pico8.dat
path: pico-8/pico8.dat
system: pico8
required: true
description: "PICO-8 data file (boot sequence, themes, demo carts)"
note: "POD format. Loaded by pico8/pico8_dyn from same directory at startup."
# -------------------------------------------------------
# Voxatron
# -------------------------------------------------------
- name: vox
path: voxatron/vox
system: voxatron
required: true
description: "Voxatron main executable"
source_ref: "lexaloffleGenerator.py:20,42,48-49"
note: "Configgen checks existence and executable permission. x86_64 only."
- name: vox_dyn
path: voxatron/vox_dyn
system: voxatron
required: false
description: "Voxatron dynamically linked executable"
source_ref: "lexaloffleGenerator.py:20,42"
note: "Alternative to vox. Requires system SDL2."
- name: vox.dat
path: voxatron/vox.dat
system: voxatron
required: true
description: "Voxatron data file"
note: "Loaded by vox/vox_dyn from same directory at startup."
- name: libHoloPlayCore.so
path: voxatron/libHoloPlayCore.so
system: voxatron
required: true
description: "Looking Glass holographic display support library"
source_ref: "lexaloffleGenerator.py:89"
note: "Compile-time linked dependency. LD_LIBRARY_PATH set to bios/voxatron/ by configgen."

View File

@@ -3,7 +3,7 @@ type: libretro
core_classification: official_port
source: "https://github.com/timoinutilis/lowres-nx"
upstream: "https://github.com/timoinutilis/lowres-nx"
profiled_date: "2026-03-22"
profiled_date: "2026-03-25"
core_version: "v1.2"
display_name: "LowRes NX"
cores:
@@ -18,9 +18,10 @@ notes: |
the same repository.
retro_load_game() copies the .nx source code into memory
(libretro_main.c:490) and compiles it with the built-in interpreter.
The boot intro is a string constant embedded in boot_intro.c. The core
never accesses the system directory. No BIOS, firmware, or external
(libretro_main.c:490-493) and compiles it with the built-in interpreter.
The boot intro is a string constant embedded in boot_intro.c:26. Default
characters and charsets are compiled-in C arrays. The core never calls
RETRO_ENVIRONMENT_GET_SYSTEM_DIRECTORY. No BIOS, firmware, or external
files required.
files: []

View File

@@ -7,7 +7,7 @@ type: libretro
core_classification: community_fork
source: "https://github.com/libretro/ps2"
upstream: "https://github.com/PCSX2/pcsx2"
profiled_date: "2026-03-24"
profiled_date: "2026-03-25"
core_version: "Git"
display_name: "Sony - PlayStation 2 (LRPS2)"
cores: [lrps2]
@@ -17,12 +17,14 @@ bios_directory: "pcsx2/bios/"
resources_directory: "pcsx2/resources/"
notes: |
Hard fork of PCSX2 ported to libretro. BIOS detection is filename-agnostic: the core
scans pcsx2/bios/ for any file between 4-8 MB with a valid romdir structure containing
RESET and ROMVER entries. The ROMVER entry determines region and version.
Companion files (.rom1, .rom2, .nvm, .mec) derive their paths from the selected BIOS.
DEV9 (network adapter) and USB are stubbed in the libretro port.
GameIndex.yaml in pcsx2/resources/ provides per-game patches for compatibility.
Hard fork of PCSX2 (pre-Qt, 1.7-dev era) ported to libretro. x86_64 only.
BIOS detection is filename-agnostic: scans pcsx2/bios/ for any file between 4-8 MB
with a valid romdir structure (RESET + ROMVER entries). No hash validation.
Companion files (.rom1, .rom2, .nvm, .mec) derive paths from the selected BIOS.
DEV9 (network/HDD) and USB are stubbed in the libretro port.
Widescreen patches are largely compiled into the core (libretro/patches.cpp).
.info firmware_count=2 counts the bios folder and GameIndex.yaml.
.info description mentions EROM.BIN but no EROM loading path exists in the code.
files:
- name: "<bios>.bin"
@@ -32,7 +34,7 @@ files:
min_size: 4194304
max_size: 8388608
validation: [size]
source_ref: "pcsx2/ps2/BiosTools.cpp:230-254,266-322"
source_ref: "pcsx2/ps2/BiosTools.cpp:231-254,267-322"
note: >
Scans pcsx2/bios/ for any file between 4 MB and 8 MB. Validates via romdir
structure parsing (RESET + ROMVER entries). User selects BIOS via core option
@@ -43,7 +45,7 @@ files:
required: false
max_size: 4194304
description: "DVD player ROM"
source_ref: "pcsx2/ps2/BiosTools.cpp:189-210,313"
source_ref: "pcsx2/ps2/BiosTools.cpp:190-211,314"
note: >
DVD player ROM. Tries <biospath>.rom1 (appended) then <biosbase>.rom1
(extension replaced). Silently skipped if not found.
@@ -51,9 +53,9 @@ files:
- name: "<bios>.rom2"
path: "pcsx2/bios/"
required: false
max_size: 4194304
max_size: 524288
description: "Chinese ROM extension"
source_ref: "pcsx2/ps2/BiosTools.cpp:189-210,314"
source_ref: "pcsx2/ps2/BiosTools.cpp:190-211,315"
note: >
Chinese region ROM extension. Same naming convention as rom1.
Only present on Chinese region consoles.

View File

@@ -1,5 +1,5 @@
emulator: MAME
type: libretro
type: standalone + libretro
core_classification: official_port
source: "https://github.com/libretro/mame"
upstream: "https://github.com/mamedev/mame"
@@ -10,6 +10,7 @@ display_name: "Arcade (MAME)"
cores:
- mame
- imame4all
systems:
- snk-neogeo-mvs
- snk-neogeo-aes

View File

@@ -11,6 +11,7 @@ mame_version: "0.78 (plus backports)"
cores:
- mame2003_plus
- mame078plus
systems:
- snk-neogeo-mvs

View File

@@ -9,6 +9,7 @@ core_version: "0.174"
cores:
- mame2016
- mess2016
display_name: "Arcade (MAME 2016)"
mame_version: "0.174"

View File

@@ -6,7 +6,7 @@ upstream: "https://mednafen.github.io/"
profiled_date: "2026-03-24"
core_version: "v0.9.38.7"
display_name: "NEC - PC Engine / SuperGrafx / CD (Beetle PCE)"
cores: [mednafen_pce]
cores: [mednafen_pce, pce]
systems: [nec-pc-engine]
verification: existence
notes: >

View File

@@ -6,7 +6,7 @@ upstream: "https://mednafen.github.io/"
profiled_date: "2026-03-24"
core_version: "v1.31.0.0"
display_name: "NEC - PC Engine / CD (Beetle PCE FAST)"
cores: [mednafen_pce_fast]
cores: [mednafen_pce_fast, pce_fast, beetle_pce_fast]
systems: [nec-pc-engine]
verification: existence
notes: >

View File

@@ -6,7 +6,7 @@ upstream: "https://mednafen.github.io/"
profiled_date: "2026-03-24"
core_version: "v1.23.0"
display_name: "NEC - PC Engine SuperGrafx (Beetle SuperGrafx)"
cores: [mednafen_supergrafx]
cores: [mednafen_supergrafx, beetle_supergrafx]
systems: [nec-pc-engine]
verification: existence
notes: >

View File

@@ -1,7 +1,7 @@
emulator: melonDS DS
type: libretro
core_classification: community_fork
cores: [melonds_ds]
cores: [melonds_ds, melondsds]
source: "https://github.com/JesseTG/melonds-ds"
upstream: "https://github.com/melonDS-emu/melonDS"
profiled_date: "2026-03-24"

View File

@@ -9,7 +9,7 @@ source: "https://github.com/libretro/Mesen-S"
upstream: "https://github.com/SourMesen/Mesen-S"
profiled_date: "2026-03-24"
core_version: "0.4.0"
cores: [mesen-s]
cores: [mesen-s, mesen_s]
systems: [nintendo-snes, nintendo-gb, nintendo-gbc, nintendo-super-game-boy, nintendo-satellaview]
notes: >

View File

@@ -7,7 +7,7 @@ logo: "https://raw.githubusercontent.com/SourMesen/Mesen2/master/UI/Assets/Mesen
profiled_date: "2026-03-24"
core_version: "0.9.9"
display_name: "Nintendo - NES / Famicom (Mesen)"
cores: [mesen]
cores: [mesen, mesens]
systems: [nintendo-nes, nintendo-fds]
notes: |

View File

@@ -10,6 +10,7 @@ mame_version: "0.159"
cores:
- mess2015
- mess
systems: []
notes: |

38
emulators/model2.yml Normal file
View File

@@ -0,0 +1,38 @@
emulator: Model 2 Emulator
type: standalone
source: closed-source
upstream: closed-source
profiled_date: "2026-03-26"
core_version: "1.1a"
display_name: "Model 2 Emulator (Sega Model 2)"
cores:
- model2
- model2emu
systems:
- sega-model2
mode: standalone
notes: |
Closed-source Sega Model 2 arcade emulator by ElSemi, formerly Nebula Model 2.
Emulates Model 2, 2A, 2B, and 2C hardware. Windows-only, runs via Proton on
Linux (EmuDeck setup). Last official release 1.1a (2014-01-02).
Uses MAME-format merged ROM sets. Each game ZIP contains all required ROMs
(program, geometry, texture, sound, protection chips). No shared parent BIOS
set exists for Sega Model 2 hardware; each game board has its own ROM chips.
EmuDeck packages version 1.1c from SeongGino/edc-repo0004. Installs to
romsPath/model2/ with emulator_multicpu.exe as main binary. Ships with
Lua scripts for game-specific patches (widescreen, fixes). No checkBIOS
entry in EmuDeck; EMULATOR.INI references only a roms/ subdirectory.
Source code never published. Original distribution via nebula.emulatronia.com
(archived). PhilrocWP/Model2 GitHub repo no longer exists.
files: []
exclusion_note: >
Uses MAME-format merged ROM sets where all required ROMs are contained within
each game's ZIP file. No standalone BIOS or firmware files are loaded by the
emulator. The Sega Model 2 hardware has no shared system BIOS; each game board
has its own set of program, geometry, texture, and sound ROMs.

View File

@@ -7,15 +7,16 @@ profiled_date: "2026-03-24"
core_version: "2.6.0"
display_name: "Nintendo - Nintendo 64 (Mupen64Plus-Next)"
systems: [nintendo-64, nintendo-64dd]
cores: [mupen64plus_next, mupen64plus_next_develop, mupen64plus_next_gles3, mupen64plus_next_gles2]
cores: [mupen64plus_next, mupen64plus_next_develop, mupen64plus_next_gles3, mupen64plus_next_gles2, mupen64plus, mupen64plus-next]
files:
- name: "IPL.n64"
path: "Mupen64plus/IPL.n64"
standalone_path: "64DD_IPL.bin"
aliases: ["64DD_IPL.bin"]
size: 4194304
required: false
description: "64DD IPL ROM"
note: "Only needed for N64 Disk Drive games (.ndd) via subsystem API. Accepts Z64, N64, and V64 byte-swap formats."
source_ref: "mupen64plus-core/src/main/main.c:940-1024"
- name: "font.ttf"

192
emulators/openmsx.yml Normal file
View File

@@ -0,0 +1,192 @@
emulator: openMSX
type: standalone
source: "https://github.com/openMSX/openMSX"
upstream: "https://github.com/openMSX/openMSX"
profiled_date: "2026-03-26"
core_version: "21.0"
display_name: "MSX / ColecoVision / Spectravideo (openMSX)"
cores:
- openmsx
systems:
- msx
- msx1
- msx2
- msx2+
- msxturbor
- colecovision
- spectravideo
notes: |
Standalone MSX emulator supporting MSX1 through turboR, ColecoVision,
Spectravideo, and Pioneer LaserDisc hardware. Uses XML machine definitions
(share/machines/) that describe complete hardware configurations and
reference system ROMs by filename and SHA1 hash.
ROM resolution via FilePool (src/file/FilePool.cc, FilePoolCore.cc):
searches configured directories for files matching SHA1 checksums.
Filenames are secondary hints; SHA1 is the primary lookup key.
Files may be gzipped or individually zipped.
Batocera configgen (openmsxGenerator.py) configures filepool paths
(/userdata/bios/Machines position 1, /userdata/bios/openmsx position 2)
and selects machines per system type:
msx1, msx2 -> Boosted_MSX2_EN (enhanced Philips NMS 8245)
msx2+ -> Boosted_MSX2+_JP (enhanced Panasonic FS-A1WSX)
msxturbor -> Boosted_MSXturboR_with_IDE (enhanced Panasonic FS-A1GT)
colecovision -> ColecoVision_SGM
spectravideo -> Spectravideo_SVI-328
laserdisc (.ogv) -> Pioneer_PX-7
C-BIOS (open source MSX BIOS replacement) is shipped with openMSX in
Contrib/cbios/ and supports cartridge-only games. Not used by Batocera.
237 machine definitions exist in total. Each machine has its own ROM
requirements. Only ROMs for Batocera-selected machines are listed here.
Users selecting other machines via openMSX GUI need additional ROMs.
files:
# -------------------------------------------------------
# Boosted_MSX2_EN (msx1, msx2)
# Based on Philips NMS 8245 with extra hardware
# -------------------------------------------------------
- name: NMS8245SystemROM1.08.bin
sha1: cc57c1dcd7249ea9f8e2547244592e7d97308ed0
required: true
size: 65536
description: "NMS 8245 combined system ROM (BIOS+BASIC 0x0000-0x7FFF, Sub ROM 0x8000-0xBFFF, FDC 0xC000-0xFFFF)"
validation: [sha1]
source_ref: "share/machines/Boosted_MSX2_EN.xml:24,65,111"
- name: fmpac.rom
sha1: fec451b9256570a0e4869355a40329c57f40705f
required: true
description: "Panasonic SW-M004 FMPAC (FM-PAC) sound cartridge ROM"
validation: [sha1]
source_ref: "share/machines/Boosted_MSX2_EN.xml:83"
- name: phc-70fd2_basickun.rom
sha1: 22b3191d865010264001b9d896186a9818478a6b
required: true
description: "Sanyo PHC-70FD2 MSX-BASIC Kun compiler ROM"
validation: [sha1]
source_ref: "share/machines/Boosted_MSX2_EN.xml:89, Boosted_MSX2+_JP.xml:167, Boosted_MSXturboR_with_IDE.xml:79"
- name: yrw801.rom
sha1: 32760893ce06dbe3930627755ba065cc3d8ec6ca
required: true
description: "Yamaha YRW801 MoonSound wavetable ROM"
validation: [sha1]
source_ref: "share/machines/Boosted_MSX2_EN.xml:186, Boosted_MSX2+_JP.xml:120, Boosted_MSXturboR_with_IDE.xml:202"
# -------------------------------------------------------
# Boosted_MSX2+_JP (msx2+)
# Based on Panasonic FS-A1WSX with extra hardware
# -------------------------------------------------------
- name: fs-a1wsx_basic-bios2p.rom
sha1: f4433752d3bf876bfefb363c749d4d2e08a218b6
required: true
description: "FS-A1WSX MSX2+ BIOS and BASIC ROM"
validation: [sha1]
source_ref: "share/machines/Boosted_MSX2+_JP.xml:143"
- name: fs-a1wsx_fmbasic.rom
sha1: aad42ba4289b33d8eed225d42cea930b7fc5c228
required: true
description: "FS-A1WSX MSX-MUSIC (OPLL) ROM"
validation: [sha1]
source_ref: "share/machines/Boosted_MSX2+_JP.xml:155"
- name: fs-a1wsx_msx2psub.rom
sha1: fe0254cbfc11405b79e7c86c7769bd6322b04995
required: true
description: "FS-A1WSX MSX2+ Sub ROM"
validation: [sha1]
source_ref: "share/machines/Boosted_MSX2+_JP.xml:218"
- name: fs-a1wsx_kanjibasic.rom
sha1: dcc3a67732aa01c4f2ee8d1ad886444a4dbafe06
required: true
description: "FS-A1WSX Kanji Driver with BASIC ROM"
validation: [sha1]
source_ref: "share/machines/Boosted_MSX2+_JP.xml:225"
- name: fs-a1wsx_disk.rom
sha1: 7ed7c55e0359737ac5e68d38cb6903f9e5d7c2b6
required: true
description: "FS-A1WSX FDC (TC8566AF) disk controller ROM"
validation: [sha1]
source_ref: "share/machines/Boosted_MSX2+_JP.xml:237"
- name: fs-a1wsx_firmware.rom
sha1: 3330d9b6b76e3c4ccb7cf252496ed15d08b95d3f
required: true
description: "FS-A1WSX Panasonic firmware ROM"
validation: [sha1]
source_ref: "share/machines/Boosted_MSX2+_JP.xml:251"
- name: fs-a1wsx_kanjifont.rom
sha1: 5aff2d9b6efc723bc395b0f96f0adfa83cc54a49
aliases: [fs-a1gt_kanjifont.rom]
required: true
description: "Kanji font ROM (shared by FS-A1WSX and FS-A1GT machines)"
validation: [sha1]
source_ref: "share/machines/Boosted_MSX2+_JP.xml:28, Boosted_MSXturboR_with_IDE.xml:215"
# -------------------------------------------------------
# Boosted_MSXturboR_with_IDE (msxturbor)
# Based on Panasonic FS-A1GT with IDE interface
# -------------------------------------------------------
- name: fs-a1gt_firmware.rom
sha1:
- e779c338eb91a7dea3ff75f3fde76b8af22c4a3a
- 5fa3aa79aeba2c0441f349e78e9a16d9d64422ea
required: true
description: "FS-A1GT turboR combined firmware (512KB, contains BIOS, Sub ROM, Kanji, FDC, MSX-MUSIC, Opening ROM)"
validation: [sha1]
source_ref: "share/machines/Boosted_MSXturboR_with_IDE.xml:23"
- name: ide250.dat
sha1: 93e41c7d479bc90c1d1f6d081af20fd9924b8ada
required: true
description: "Sunrise IDE 2.50 interface ROM"
validation: [sha1]
source_ref: "share/machines/Boosted_MSXturboR_with_IDE.xml:49"
# -------------------------------------------------------
# ColecoVision_SGM (colecovision)
# ColecoVision with built-in Super Game Module
# -------------------------------------------------------
- name: COLECO.ROM
sha1: 45bedc4cbdeac66c7df59e9e599195c778d86a92
required: true
description: "ColecoVision system BIOS ROM"
validation: [sha1]
source_ref: "share/machines/ColecoVision_SGM.xml:57"
# -------------------------------------------------------
# Spectravideo_SVI-328 (spectravideo)
# -------------------------------------------------------
- name: svi-3x8_v111.rom
sha1: 10349ce675f6d6d47f0976e39cb7188eba858d89
required: true
description: "SVI-328 BASIC v1.11 ROM"
validation: [sha1]
source_ref: "share/machines/Spectravideo_SVI-328.xml:52"
# -------------------------------------------------------
# Pioneer_PX-7 (laserdisc)
# MSX1 with LaserDisc controller
# -------------------------------------------------------
- name: px-7_basic-bios1.rom
sha1: 302afb5d8be26c758309ca3df611ae69cced2821
required: true
description: "Pioneer PX-7 MSX1 BIOS and BASIC ROM"
validation: [sha1]
source_ref: "share/machines/Pioneer_PX-7.xml:67"
- name: px-7_pbasic.rom
sha1: 665d805f96616e1037f1823050657b7849899283
required: true
description: "Pioneer PX-7 LaserDisc PBASIC controller ROM"
validation: [sha1]
source_ref: "share/machines/Pioneer_PX-7.xml:82"

View File

@@ -6,7 +6,7 @@ upstream: "https://github.com/opentyrian/opentyrian"
profiled_date: "2026-03-24"
core_version: "1.0.0.6"
display_name: "Tyrian (OpenTyrian)"
cores: [opentyrian]
cores: [opentyrian, tyrian]
systems: [tyrian]
verification: existence

View File

@@ -3,7 +3,7 @@ type: libretro
core_classification: embedded_hle
source: "https://github.com/libretro/pcsx_rearmed"
upstream: "https://github.com/notaz/pcsx_rearmed"
profiled_date: "2026-03-24"
profiled_date: "2026-03-25"
core_version: "r25"
display_name: "Sony - PlayStation (PCSX ReARMed)"
cores: [pcsx_rearmed, pcsx_rearmed_neon, pcsx_rearmed_interpreter]

329
emulators/primehack.yml Normal file
View File

@@ -0,0 +1,329 @@
emulator: PrimeHack
type: standalone
core_classification: enhanced_fork
source: "https://github.com/shiiion/dolphin"
upstream: "https://github.com/dolphin-emu/dolphin"
profiled_date: "2026-03-26"
core_version: "1.0.8"
display_name: "PrimeHack (Dolphin fork for Metroid Prime)"
systems: [nintendo-gamecube, nintendo-wii]
analysis_date: "2026-03-26"
analysis_commit: "b10f147 (depth=1)"
mode: standalone
# PrimeHack is a Dolphin fork by shiiion adding mouselook controls for Metroid Prime Trilogy.
# BIOS loading code is identical to upstream Dolphin.
# File paths relative to Dolphin User directory:
# Standalone: User/GC/ and User/Wii/
# Sys/ is checked as fallback when not found in User/.
pack_structure:
standalone: ""
data_directories:
- ref: dolphin-sys
destination: "Sys"
source_ref: "Source/Core/Common/CommonPaths.h:128-141"
files:
# -- GameCube IPL (Boot ROM) --
# Region-specific, placed in GC/<region>/IPL.bin
# Checked in User/GC/<region>/ then Sys/GC/<region>/
- name: "IPL.bin"
path: "GC/USA/IPL.bin"
size: 2097152
required: false
mode: standalone
hle_fallback: true
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:138, Source/Core/Core/HW/EXI/EXI_DeviceIPL.cpp:109-110"
- name: "IPL.bin"
path: "GC/EUR/IPL.bin"
size: 2097152
required: false
mode: standalone
hle_fallback: true
note: "GameCube PAL boot ROM"
source_ref: "Source/Core/Core/HW/EXI/EXI_DeviceIPL.cpp:184"
- name: "IPL.bin"
path: "GC/JAP/IPL.bin"
size: 2097152
required: false
mode: standalone
hle_fallback: true
note: "GameCube NTSC-J boot ROM. JAP is the legacy directory name"
source_ref: "Source/Core/Core/HW/EXI/EXI_DeviceIPL.cpp:186"
# -- DSP ROMs --
# Used by DSP LLE for accurate audio.
# PrimeHack ships free replacement ROMs, but real dumps improve accuracy.
# Searched in: User/GC/ then Sys/GC/
- name: "dsp_rom.bin"
path: "GC/dsp_rom.bin"
size: 8192
required: false
mode: standalone
hle_fallback: true
validation: [size]
known_hash_adler32: "0x66f334fe"
note: "DSP instruction ROM for LLE audio. Free replacement (v0.4) included"
source_ref: "Source/Core/Common/CommonPaths.h:135, Source/Core/Core/HW/DSPLLE/DSPLLE.cpp:87-117"
- name: "dsp_coef.bin"
path: "GC/dsp_coef.bin"
size: 4096
required: false
mode: standalone
hle_fallback: true
validation: [size]
known_hash_adler32: "0xf3b93527"
note: "DSP coefficient ROM for LLE audio. Free replacement included"
source_ref: "Source/Core/Common/CommonPaths.h:136, Source/Core/Core/DSP/DSPCore.cpp:32-38"
# -- GameCube Fonts --
# Bundled free alternatives exist but have padding differences causing misplaced text.
# If IPL dump is present, fonts are extracted from it instead (preferred).
# Searched in: Sys/GC/
- name: "font_western.bin"
path: "GC/font_western.bin"
size: 9589
required: false
mode: standalone
hle_fallback: true
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:132, Source/Core/Core/HW/EXI/EXI_DeviceIPL.cpp:131,203-218"
- name: "font_japanese.bin"
path: "GC/font_japanese.bin"
size: 303693
required: false
mode: standalone
hle_fallback: true
note: "Shift-JIS font for Japanese text. 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"
# -- GBA BIOS (for GC-GBA link) --
# Used by integrated mGBA core for GameCube-GBA connectivity.
# Loaded from User/GBA/gba_bios.bin.
- name: "gba_bios.bin"
path: "GBA/gba_bios.bin"
required: false
mode: standalone
hle_fallback: true
note: "GBA BIOS for GC-GBA link feature (uses integrated mGBA). Path configurable in settings"
source_ref: "Source/Core/Common/CommonPaths.h:144, Source/Core/Core/HW/GBACore.cpp:344-361"
# -- Wii System Files --
- name: "SYSCONF"
path: "Wii/shared2/sys/SYSCONF"
required: false
mode: standalone
hle_fallback: true
note: "Wii system configuration. Auto-generated by PrimeHack, can be imported from NAND backup"
source_ref: "Source/Core/Common/CommonPaths.h:117, Source/Core/Core/WiiRoot.cpp:266"
- name: "setting.txt"
path: "Wii/title/00000001/00000002/data/setting.txt"
size: 256
required: false
mode: standalone
hle_fallback: true
note: "Wii region/language settings. Auto-generated during Wii boot emulation"
source_ref: "Source/Core/Common/CommonPaths.h:152, Source/Core/Core/Boot/Boot_BS2Emu.cpp:377-454"
# -- Wii NAND Backup (BootMii) --
- name: "nand.bin"
path: null
required: false
mode: standalone
hle_fallback: true
note: "BootMii NAND backup. Can be imported to populate Wii NAND with channels, saves, system menu"
source_ref: "Source/Core/DiscIO/NANDImporter.cpp:26-89"
- name: "keys.bin"
path: null
size: 1024
required: false
mode: standalone
hle_fallback: true
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"
# -- Wii SD Card Image --
- name: "WiiSD.raw"
path: "Load/WiiSD.raw"
required: false
mode: standalone
hle_fallback: true
note: "Virtual SD card image for Wii homebrew. Auto-created, supports SD/SDHC up to 4GB"
source_ref: "Source/Core/Common/CommonPaths.h:149"
# -- Gecko Code Handler --
- name: "codehandler.bin"
path: null
required: false
mode: standalone
hle_fallback: true
note: "Gecko/Ocarina cheat code handler. Shipped with PrimeHack in Sys/"
source_ref: "Source/Core/Common/CommonPaths.h:154, Source/Core/Core/GeckoCode.cpp:121"
# -- Wii System Menu (WAD) --
- name: "Wii System Menu"
path: null
required: false
mode: standalone
hle_fallback: true
note: "Wii System Menu WAD. Installed to NAND via Tools > Install WAD, needed for Wii Menu boot"
source_ref: "Source/Core/DolphinQt/MenuBar.cpp:323,1219-1227"
# -- NAND Certificates (auto-extracted) --
- name: "clientca.pem"
path: "Wii/clientca.pem"
required: false
mode: standalone
hle_fallback: true
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
mode: standalone
hle_fallback: true
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
mode: standalone
hle_fallback: true
note: "SSL root CA certificate. Auto-extracted from IOS13 content during NAND import"
source_ref: "Source/Core/DiscIO/NANDImporter.cpp:238"
# -- Realtek Bluetooth firmware (Wiimote passthrough) --
# Required for real Wiimote connectivity via USB Bluetooth adapters with Realtek chipsets.
# PrimeHack can auto-download these from gitlab.com/kernel-firmware/linux-firmware.
# Placed in Load/Firmware/rtl_bt/.
# ref: Source/Core/Core/IOS/USB/Bluetooth/RealtekFirmwareLoader.cpp:373-416
- name: "rtl8723a_fw.bin"
path: "Load/Firmware/rtl_bt/rtl8723a_fw.bin"
required: false
mode: standalone
note: "Realtek 8723A BT firmware for Wiimote passthrough"
source_ref: "RealtekFirmwareLoader.cpp:379"
- name: "rtl8723b_fw.bin"
path: "Load/Firmware/rtl_bt/rtl8723b_fw.bin"
required: false
mode: standalone
note: "Realtek 8723B BT firmware for Wiimote passthrough"
source_ref: "RealtekFirmwareLoader.cpp:381"
- name: "rtl8723d_fw.bin"
path: "Load/Firmware/rtl_bt/rtl8723d_fw.bin"
required: false
mode: standalone
note: "Realtek 8723D BT firmware for Wiimote passthrough"
source_ref: "RealtekFirmwareLoader.cpp:383"
- name: "rtl8761a_fw.bin"
path: "Load/Firmware/rtl_bt/rtl8761a_fw.bin"
required: false
mode: standalone
note: "Realtek 8761A BT firmware for Wiimote passthrough"
source_ref: "RealtekFirmwareLoader.cpp:385"
- name: "rtl8761bu_fw.bin"
path: "Load/Firmware/rtl_bt/rtl8761bu_fw.bin"
required: false
mode: standalone
note: "Realtek 8761BU BT firmware for Wiimote passthrough"
source_ref: "RealtekFirmwareLoader.cpp:387"
- name: "rtl8821a_fw.bin"
path: "Load/Firmware/rtl_bt/rtl8821a_fw.bin"
required: false
mode: standalone
note: "Realtek 8821A BT firmware for Wiimote passthrough"
source_ref: "RealtekFirmwareLoader.cpp:389"
- name: "rtl8821c_fw.bin"
path: "Load/Firmware/rtl_bt/rtl8821c_fw.bin"
required: false
mode: standalone
note: "Realtek 8821C BT firmware for Wiimote passthrough"
source_ref: "RealtekFirmwareLoader.cpp:391"
- name: "rtl8822b_fw.bin"
path: "Load/Firmware/rtl_bt/rtl8822b_fw.bin"
required: false
mode: standalone
note: "Realtek 8822B BT firmware for Wiimote passthrough"
source_ref: "RealtekFirmwareLoader.cpp:395"
- name: "rtl8822cu_fw.bin"
path: "Load/Firmware/rtl_bt/rtl8822cu_fw.bin"
required: false
mode: standalone
note: "Realtek 8822CU BT firmware for Wiimote passthrough"
source_ref: "RealtekFirmwareLoader.cpp:393"
- name: "rtl8851bu_fw.bin"
path: "Load/Firmware/rtl_bt/rtl8851bu_fw.bin"
required: false
mode: standalone
note: "Realtek 8851BU BT firmware for Wiimote passthrough"
source_ref: "RealtekFirmwareLoader.cpp:397"
- name: "rtl8852au_fw.bin"
path: "Load/Firmware/rtl_bt/rtl8852au_fw.bin"
required: false
mode: standalone
note: "Realtek 8852AU BT firmware for Wiimote passthrough"
source_ref: "RealtekFirmwareLoader.cpp:399"
- name: "rtl8852bu_fw.bin"
path: "Load/Firmware/rtl_bt/rtl8852bu_fw.bin"
required: false
mode: standalone
note: "Realtek 8852BU BT firmware for Wiimote passthrough"
source_ref: "RealtekFirmwareLoader.cpp:401"
- name: "rtl8852cu_fw.bin"
path: "Load/Firmware/rtl_bt/rtl8852cu_fw.bin"
required: false
mode: standalone
note: "Realtek 8852CU BT firmware for Wiimote passthrough"
source_ref: "RealtekFirmwareLoader.cpp:403"
- name: "rtl8852btu_fw.bin"
path: "Load/Firmware/rtl_bt/rtl8852btu_fw.bin"
required: false
mode: standalone
note: "Realtek 8852BT/8852BE-VT BT firmware for Wiimote passthrough"
source_ref: "RealtekFirmwareLoader.cpp:405"
- name: "rtl8922au_fw.bin"
path: "Load/Firmware/rtl_bt/rtl8922au_fw.bin"
required: false
mode: standalone
note: "Realtek 8922AU BT firmware for Wiimote passthrough"
source_ref: "RealtekFirmwareLoader.cpp:407"
notes:
hle_available: true
hle_note: >
PrimeHack provides HLE for GameCube IPL (boot ROM), DSP, and Wii system functions
(same as Dolphin). No BIOS files are strictly required for most games.
ipl_regions: ["USA", "EUR", "JAP", "JPN", "DEV"]
dsp_rom_note: >
DSP ROMs are verified at load time via Adler32 hash.
Official Nintendo hashes: irom=0x66f334fe, drom=0xf3b93527.
bt_passthrough_note: >
Bluetooth passthrough allows connecting real Wiimotes via USB Bluetooth adapters.
Realtek chipsets require firmware files in Load/Firmware/rtl_bt/.
PrimeHack can auto-download these from kernel-firmware/linux-firmware on GitLab.

45
emulators/ryujinx.yml Normal file
View File

@@ -0,0 +1,45 @@
emulator: Ryujinx
type: standalone
source: "https://git.ngram.ca/mirrors/Ryujinx"
upstream: "https://github.com/Ryujinx/Ryujinx"
profiled_date: "2026-03-26"
core_version: "1.1.1403"
display_name: "Ryujinx (Nintendo Switch)"
systems: [nintendo-switch]
analysis_date: "2026-03-26"
analysis_commit: "HEAD (depth=1, ngram.ca mirror)"
mode: standalone
# Key files are read from {BaseDirPath}/system/ (AppDataManager.cs:229)
# Also searched in ~/.switch/ (AppDataManager.cs:47)
# Batocera copies bios/switch/prod.keys to Ryujinx/system/prod.keys (ryujinxGenerator.py:108)
# Firmware NCAs are installed via UI (ContentManager.cs:429), not placed as files
files:
- name: "prod.keys"
required: true
path: "switch/"
mode: standalone
note: "Switch production keys for NCA decryption"
source_ref: "src/Ryujinx.HLE/FileSystem/VirtualFileSystem.cs:239"
- name: "title.keys"
required: false
path: "switch/"
mode: standalone
note: "Per-title decryption keys, needed for specific game content"
source_ref: "src/Ryujinx.HLE/FileSystem/VirtualFileSystem.cs:240"
- name: "console.keys"
required: false
path: "switch/"
mode: standalone
note: "Console-specific keys for encrypted content"
source_ref: "src/Ryujinx.HLE/FileSystem/VirtualFileSystem.cs:241"
notes: |
Ryujinx is a standalone Nintendo Switch emulator written in C#, created by gdkchan.
Original repo discontinued October 2024 after Nintendo takedown.
Firmware (system NCAs) must be installed through Ryujinx's UI from a ZIP or XCI.
Required for commercial games (.nsp, .xci). Homebrew (.nro, .nso) runs without firmware.
Firmware provides shared fonts, timezone data, SSL certificates, system version info.

135
emulators/shadps4.yml Normal file
View File

@@ -0,0 +1,135 @@
emulator: shadps4
type: standalone
source: "https://github.com/shadps4-emu/shadPS4"
upstream: "https://github.com/shadps4-emu/shadPS4"
profiled_date: "2026-03-26"
core_version: "pre-release 2026-03-25"
display_name: "shadPS4 (PlayStation 4)"
cores:
- shadps4
systems:
- ps4
mode: standalone
analysis_date: "2026-03-26"
analysis_commit: "31b2d9c (depth=1)"
notes: |
shadPS4 is a standalone PlayStation 4 emulator. Most PS4 system libraries
are reimplemented in HLE. For better game compatibility, real firmware
modules (.sprx) can be loaded in LLE mode from the sys_modules/ directory.
Modules are loaded by sysmodule_internal.cpp via loadModuleInternal().
If a module exists in sys_modules/, it is loaded as LLE. If absent and
an HLE implementation exists, the emulator falls back to HLE. If neither,
the module is stubbed and games needing it may fail.
Game-specific overrides are supported: sys_modules/{CUSA_ID}/ takes
priority over the global sys_modules/ directory.
System fonts are mounted from fonts/font/ (/preinst/common/font on real
PS4) and fonts/font2/ (/system/common/font2 on real PS4). These are SST
(Sony Standard Text) typeface files in OTF format. The emulator mounts
the directories wholesale; games load individual fonts by name. Without
fonts, the emulator warns "No dumped system fonts, expect missing text
or instability."
All firmware files are extracted from a real PS4 via FTP:
- .sprx modules from /system/common/lib/
- font/ from /preinst/common/font/
- font2/ from /system/common/font2/
Batocera configgen (shadps4Generator.py) configures display, input, and
saves but does not map BIOS/firmware paths. The emulator uses its own
user directory for sys_modules/ and fonts/.
files:
- name: "libSceLibcInternal.sprx"
required: false
hle_fallback: true
path: "shadps4/sys_modules/"
description: "PS4 C standard library"
source_ref: "src/core/libraries/sysmodule/sysmodule_internal.cpp:221"
- name: "libSceNgs2.sprx"
required: false
hle_fallback: true
path: "shadps4/sys_modules/"
description: "PS4 next-generation audio system"
source_ref: "src/core/libraries/sysmodule/sysmodule_internal.cpp:213"
- name: "libSceRtc.sprx"
required: false
hle_fallback: true
path: "shadps4/sys_modules/"
description: "PS4 real-time clock library"
source_ref: "src/core/libraries/sysmodule/sysmodule_internal.cpp:215"
- name: "libSceJpegEnc.sprx"
required: false
hle_fallback: true
path: "shadps4/sys_modules/"
description: "PS4 JPEG encoder"
source_ref: "src/core/libraries/sysmodule/sysmodule_internal.cpp:217"
- name: "libScePngEnc.sprx"
required: false
hle_fallback: true
path: "shadps4/sys_modules/"
description: "PS4 PNG encoder"
source_ref: "src/core/libraries/sysmodule/sysmodule_internal.cpp:218"
- name: "libSceFont.sprx"
required: false
hle_fallback: true
path: "shadps4/sys_modules/"
description: "PS4 font rendering library"
source_ref: "src/core/libraries/sysmodule/sysmodule_internal.cpp:224"
- name: "libSceFontFt.sprx"
required: false
hle_fallback: true
path: "shadps4/sys_modules/"
description: "PS4 FreeType font library"
source_ref: "src/core/libraries/sysmodule/sysmodule_internal.cpp:225"
- name: "libSceUlt.sprx"
required: false
path: "shadps4/sys_modules/"
description: "PS4 user-level threading library"
source_ref: "src/core/libraries/sysmodule/sysmodule_internal.cpp:214"
- name: "libSceJpegDec.sprx"
required: false
path: "shadps4/sys_modules/"
description: "PS4 JPEG decoder"
source_ref: "src/core/libraries/sysmodule/sysmodule_internal.cpp:216"
- name: "libSceJson.sprx"
required: false
path: "shadps4/sys_modules/"
description: "PS4 JSON parser"
source_ref: "src/core/libraries/sysmodule/sysmodule_internal.cpp:219"
- name: "libSceJson2.sprx"
required: false
path: "shadps4/sys_modules/"
description: "PS4 JSON v2 parser"
source_ref: "src/core/libraries/sysmodule/sysmodule_internal.cpp:220"
- name: "libSceCesCs.sprx"
required: false
path: "shadps4/sys_modules/"
description: "PS4 character encoding conversion"
source_ref: "src/core/libraries/sysmodule/sysmodule_internal.cpp:222"
- name: "libSceAudiodec.sprx"
required: false
path: "shadps4/sys_modules/"
description: "PS4 audio decoder"
source_ref: "src/core/libraries/sysmodule/sysmodule_internal.cpp:223"
- name: "libSceFreeTypeOt.sprx"
required: false
path: "shadps4/sys_modules/"
description: "PS4 FreeType OpenType library"
source_ref: "src/core/libraries/sysmodule/sysmodule_internal.cpp:226"

View File

@@ -8,6 +8,7 @@ core_version: "1.8"
display_name: "Sega - MS/GG (SMS Plus GX)"
cores:
- smsplus
- smsplus_gx
systems:
- sega-master-system
- sega-game-gear

View File

@@ -11,6 +11,8 @@ systems: [nintendo-snes, nintendo-satellaview, nintendo-sufami-turbo]
cores:
snes9x:
snes9x_next:
pocketsnes:
source: "https://github.com/libretro/snes9x"
firmware_loading: true
hle_only: true

View File

@@ -8,6 +8,7 @@ core_version: "7.0_pre"
display_name: "Atari - 2600 (Stella 2023)"
cores:
- stella2023
- stella
systems:
- atari_2600

36
emulators/supermodel.yml Normal file
View File

@@ -0,0 +1,36 @@
emulator: Supermodel
type: standalone
source: https://github.com/trzy/Supermodel
upstream: https://github.com/trzy/Supermodel
profiled_date: "2026-03-26"
core_version: "0.3a"
display_name: "Supermodel (Sega Model 3)"
cores:
- supermodel
systems:
- sega-model3
mode: standalone
notes: |
Open-source Sega Model 3 arcade emulator by Bart Trzynadlowski (trzy) and
contributors, under GPL-3.0. Emulates all three Model 3 steppings (1.0, 1.5,
2.0/2.1) including Real3D graphics, SCSP sound, DSB1/DSB2 MPEG music boards,
drive boards, and net board. Cross-platform (Windows, Linux, macOS).
Uses MAME-compatible ROM sets loaded from ZIP archives. GameLoader identifies
games by CRC32 checksums defined in Config/Games.xml. Parent/child ROM set
relationships exist between regional variants of the same game, not as shared
BIOS sets. No standalone BIOS or firmware files are loaded outside of game ZIPs.
EmuDeck installs the Flatpak package (com.supermodel3.Supermodel). Config
stored in ~/.supermodel/Config/. No checkBIOS entry in EmuDeck.
files: []
exclusion_note: >
The Sega Model 3 arcade hardware has no shared system BIOS. Each game board
contains its own program ROMs (CROM), video ROMs (VROM), sound program, sound
samples, and optional DSB/drive board ROMs, all contained within per-game
MAME-format ZIP archives. Supermodel loads all required data from these game
ZIPs via CRC32-based identification defined in Games.xml. No standalone BIOS
or firmware files are referenced by the emulator source code.

57
emulators/suyu.yml Normal file
View File

@@ -0,0 +1,57 @@
emulator: Suyu
type: standalone
core_classification: community_fork
source: "https://github.com/suyu-emu/suyu"
upstream: "https://github.com/suyu-emu/suyu"
profiled_date: "2026-03-26"
core_version: "Yuzu EA 4176 based"
display_name: "Suyu (Nintendo Switch)"
systems: [nintendo-switch]
analysis_date: "2026-03-26"
analysis_commit: "c096d16 (Hengle/suyu-emu mirror, depth=1)"
mode: standalone
# Suyu is a community fork of yuzu, started after yuzu's legal takedown.
# Key files loaded from <data_dir>/keys/ (fs_paths.h:20, path_util.cpp:124).
# On Linux: $XDG_DATA_HOME/suyu/keys/
# On Windows: %APPDATA%/suyu/keys/
# Firmware NCAs are installed via UI, not placed as files.
# HLE fallbacks exist for fonts, timezone, system version, mii model, ng word lists.
# Original repos (GitHub + GitLab) are DMCA'd. Analysis from community mirror.
files:
- name: "prod.keys"
required: true
path: "switch/"
mode: standalone
note: "Production keys for NCA decryption (master, key area, header, titlekek)"
source_ref: "src/core/crypto/key_manager.cpp:654"
- name: "title.keys"
required: false
path: "switch/"
mode: standalone
note: "Per-title encryption keys (rights_id to titlekey mappings)"
source_ref: "src/core/crypto/key_manager.cpp:657"
- name: "console.keys"
required: false
path: "switch/"
mode: standalone
note: "Console-specific keys (BIS, SD seed)"
source_ref: "src/core/crypto/key_manager.cpp:658"
- name: "key_retail.bin"
required: false
path: "switch/"
size: 160
mode: standalone
note: "Amiibo decryption keys (two InternalKey structs, 0x50 bytes each)"
source_ref: "src/core/hle/service/nfc/common/amiibo_crypto.cpp:273-294"
notes: |
Suyu is a standalone Nintendo Switch emulator, community fork of yuzu after legal takedown.
dev.keys can be used instead of prod.keys when use_dev_keys is enabled (for Switch dev units).
Firmware (system NCAs) must be installed through Suyu's UI from a firmware ZIP or NCA folder.
Required for commercial games. Homebrew (.nro, .nso) can run without keys or firmware.
Original repos DMCA'd by Nintendo. Analysis performed from community mirror (Hengle/suyu-emu).

39
emulators/trident.yml Normal file
View File

@@ -0,0 +1,39 @@
emulator: trident
display_name: "Nintendo - 3DS (Trident)"
type: libretro
core_classification: community_fork
source: https://github.com/DanAlexMorton/3dsTrident
upstream: https://github.com/wheremyfoodat/Panda3DS
profiled_date: 2026-03-25
core_version: git
cores:
- trident
systems:
- 3ds
notes: >-
Libretro core wrapping Panda3DS, an HLE Nintendo 3DS emulator.
Shared font, Mii data, country list and bad word list are embedded in
the binary via CMRC and compiled-in headers. DSP firmware is loaded from
the game ROM at runtime, not from an external file.
DSP modes: HLE (default), LLE (Teakra), Null.
Files are resolved from the RetroArch save directory
(<save_dir>/Emulator Files/sysdata/), not the system directory.
files:
- name: aes_keys.txt
description: AES encryption keys for decrypting encrypted 3DS ROMs
required: false
source_ref: >-
src/emulator.cpp:234,242-244 (path construction and existence check);
src/core/crypto/aes_engine.cpp:13-92 (loadKeys, parses key=value text);
src/core/loader/ncch.cpp:151-164 (panic if encrypted ROM loaded without keys)
- name: seeddb.bin
description: seed database for seed-encrypted 3DS games
required: false
source_ref: >-
src/emulator.cpp:235,246-248 (path construction and existence check);
src/core/crypto/aes_engine.cpp:94-153 (setSeedPath, loadSeeds, getSeedFromDB)

91
emulators/tsugaru.yml Normal file
View File

@@ -0,0 +1,91 @@
emulator: tsugaru
display_name: Tsugaru
type: standalone
source: "https://github.com/captainys/TOWNSEMU"
upstream: "https://github.com/captainys/TOWNSEMU"
profiled_date: "2026-03-26"
cores:
- tsugaru
systems:
- fmtowns
notes: |
FM Towns / Marty emulator by CaptainYS. Takes a ROM directory as first
argument. ROM format compatible with UNZ emulator. Free compatible ROMs
available at ysflight.com/FM/towns/FreeTOWNS/. FMT_ALL.ROM is an
alternative combined format that bundles all individual ROM files.
files:
- name: FMT_SYS.ROM
description: system ROM
required: true
size: 262144
validation:
- size
source_ref: "physmem.cpp:392,503-507"
- name: FMT_DOS.ROM
description: DOS ROM
required: true
size: 524288
validation:
- size
source_ref: "physmem.cpp:395,508-512"
- name: FMT_FNT.ROM
description: font ROM
required: true
size: 262144
validation:
- size
source_ref: "physmem.cpp:398,513-517"
- name: FMT_F20.ROM
description: 20-dot font ROM, filled with 0xFF if missing
required: false
size: 524288
hle_fallback: true
validation:
- size
source_ref: "physmem.cpp:401,518-527"
- name: FMT_DIC.ROM
description: dictionary ROM
required: true
size: 524288
validation:
- size
source_ref: "physmem.cpp:404,528-532"
- name: MYTOWNS.ROM
description: serial ROM for machine identity, uses defaults if absent
required: false
min_size: 32
source_ref: "physmem.cpp:407,533-539"
- name: FMT_ALL.ROM
description: combined ROM file, alternative to individual ROM files
required: false
source_ref: "physmem.cpp:420-500"
- name: MAR_EX0.ROM
description: Marty extra ROM 0, all 4 MAR_EX ROMs needed for Marty mode
required: false
size: 524288
validation:
- size
source_ref: "physmem.cpp:410,541-564"
- name: MAR_EX1.ROM
description: Marty extra ROM 1
required: false
size: 524288
validation:
- size
source_ref: "physmem.cpp:412,541-564"
- name: MAR_EX2.ROM
description: Marty extra ROM 2
required: false
size: 524288
validation:
- size
source_ref: "physmem.cpp:414,541-564"
- name: MAR_EX3.ROM
description: Marty extra ROM 3
required: false
size: 524288
validation:
- size
source_ref: "physmem.cpp:416,541-564"

View File

@@ -1,27 +1,25 @@
emulator: TyrQuake
type: libretro
core_classification: game_engine
source: "https://github.com/libretro/tyrquake"
profiled_date: "2026-03-18"
upstream: "http://disenchant.net/tyrquake/"
profiled_date: "2026-03-25"
core_version: "v0.62"
display_name: "Quake (TyrQuake)"
cores: [tyrquake]
systems: [quake]
verification: existence
notes: >
Quake engine source port. Plays Quake (id1), mission packs Scourge of Armagon
(hipnotic) and Dissolution of Eternity (rogue), Quoth mod, and custom mods via
-game parameter. The core accepts .pak extensions (retro_get_system_info sets
valid_extensions = "pak"). Content is loaded directly from the PAK file path -
the directory containing the PAK becomes basedir (libretro.c:988,1050).
The engine auto-detects game variant by checking the content path for id1,
hipnotic, rogue, or quoth substrings (libretro.c:1030-1070) and passes the
corresponding command-line flag. For non-standard paths it uses -game with the
directory basename. PAK files are game data (maps, textures, models, sounds)
shipped with the original retail game, not engine firmware. The engine checks
for gfx/pop.lmp inside pak0.pak to distinguish registered vs shareware
(common.c:974-991). COM_AddGameDirectory (common.c:1709) loads pak0.pak through
pak9.pak sequentially from the game directory, trying both lowercase and
uppercase filenames. No engine data files are required in the RetroArch system
directory. The core needs no BIOS or firmware.
Quake engine source port by Kevin Shanahan (Tyrann). Plays Quake (id1), mission
packs Scourge of Armagon (hipnotic) and Dissolution of Eternity (rogue), Quoth
mod, and custom mods via -game parameter. Content is loaded directly from the
PAK file path — the directory containing the PAK becomes basedir
(libretro.c:988,1050). The engine auto-detects game variant by checking the
content path for id1, hipnotic, rogue, or quoth substrings
(libretro.c:1030-1070). All engine assets (gfx/palette.lmp, gfx/colormap.lmp,
gfx.wad, textures, models, sounds) are loaded from within PAK files via
COM_AddGameDirectory (common.c:1709), which tries pak0.pak through pak9.pak in
both lowercase and uppercase. The core never calls
RETRO_ENVIRONMENT_GET_SYSTEM_DIRECTORY. BGM as OGG tracks in music/ subfolder
of each game directory.
files: []

View File

@@ -1,8 +1,64 @@
emulator: "uae4arm"
type: alias
alias_of: "puae"
profiled_date: "2026-03-18"
emulator: uae4arm
type: libretro
core_classification: community_fork
cores: [uae4arm]
source: "https://github.com/libretro/uae4arm-libretro"
upstream: "https://github.com/PandTomB/uae4arm"
profiled_date: "2026-03-25"
core_version: "v0.5"
display_name: "Commodore - Amiga (UAE4ARM)"
note: "This core uses the same BIOS/firmware as puae. See emulators/puae.yml for details."
files: []
systems:
- commodore-amiga
notes: |
ARM-optimized Amiga emulator by TomB, ported to libretro by Chips-fr.
Based on an older uae4arm version, intended for low-powered ARM hardware
where PUAE cannot maintain full speed.
Core options expose three models: A500, A600, A1200. Each selects its
Kickstart ROM automatically. Extended ROMs (CDTV/CD32) can be set via
.uae config files but CD32/CDTV hardware emulation is absent from
this port (no akiko chip, CD support listed as missing).
Built-in AROS Kickstart replacement used as fallback when no ROM is found.
Cloanto-encrypted ROMs require rom.key in the system directory.
files:
- name: "kick34005.A500"
description: "Amiga 500 Kickstart v1.3 rev 34.005"
required: false
hle_fallback: true
source_ref: "libretro/core/libretro-core.cpp:73,420 src/memory.cpp:2080-2180"
- name: "kick40063.A600"
description: "Amiga 600 Kickstart v3.1 rev 40.063"
required: false
hle_fallback: true
source_ref: "libretro/core/libretro-core.cpp:74,391 src/memory.cpp:2080-2180"
- name: "kick40068.A1200"
description: "Amiga 1200 Kickstart v3.1 rev 40.068"
required: false
hle_fallback: true
source_ref: "libretro/core/libretro-core.cpp:75,405 src/memory.cpp:2080-2180"
- name: "kick34005.CDTV"
description: "CDTV extended ROM v1.00 rev 34.005"
required: false
source_ref: "src/memory.cpp:1931-1971 (EXTENDED_ROM_CDTV via romextfile)"
- name: "kick40060.CD32"
description: "CD32 Kickstart v3.1 rev 40.060"
required: false
source_ref: "src/memory.cpp:2080-2180 (loaded via romfile from .uae config)"
- name: "kick40060.CD32.ext"
description: "CD32 extended ROM rev 40.060"
required: false
source_ref: "src/memory.cpp:1931-1971 (EXTENDED_ROM_CD32 via romextfile)"
- name: "rom.key"
description: "Cloanto Amiga Forever decryption key"
required: false
source_ref: "src/memory.cpp:598-613,625-700 (addkeydir, load_keyring)"

View File

@@ -1,8 +1,477 @@
emulator: "ume2015"
type: alias
alias_of: "mame2016"
profiled_date: "2026-03-18"
core_version: "0.160"
emulator: UME 2015
type: libretro
core_classification: frozen_snapshot
source: "https://github.com/libretro/mame2015-libretro"
upstream: "https://github.com/mamedev/mame/tree/mame0159"
logo: "https://raw.githubusercontent.com/mamedev/mame/master/docs/source/images/MAMElogo.svg"
profiled_date: "2026-03-25"
core_version: "0.159"
display_name: "Multi (UME 2015)"
note: "This core uses the same BIOS/firmware as mame2016. See emulators/mame2016.yml for details."
files: []
mame_version: "0.159"
cores:
- ume2015
systems:
- snk-neogeo-mvs
- snk-neogeo-aes
- igs-pgm
- sega-naomi
- sega-naomi2
- sega-naomigd
- sammy-atomiswave
- sega-stv
- sega-lindbergh
- sega-hikaru
- sega-chihiro
- sega-triforce
- deco-cassette
- nintendo-playch10
- sega-megaplay
- sega-megatech
- nintendo-sfcbox
- nintendo-nss
- philips-cdi
- commodore-cubo
- namco-system246
- namco-system256
- namco-system573
- konami-viper
- taito-gnet
- super-kaneko-nova
- capcom-zn1
- capcom-zn2
- konami-gv
- panasonic-3do
- hyper-neogeo64
- konami-twinkle
notes: |
Universal Machine Emulator — combined MAME + MESS before the official
merge at MAME 0.162. Same repo as mame2015 (mame2015-libretro), built
with -DWANT_UME including both mame.mak and mess.mak. 69 arcade BIOS
root sets (identical to mame2015), plus 619 MESS computer/console
drivers. Source version.c says 0.159, .info claims 0.160.
Paths under system_dir/ume2015/ (samples, artwork, cheat, hash, ini).
Software list hash XMLs in system_dir/ume2015/hash/ (375 files from
repo hash/ directory, required for MESS software list support).
Per-game XML cheats in system_dir/ume2015/cheat/.
hiscore.dat loaded via f.open("hiscore", ".dat") without explicit
search path (libretro-specific path code disabled via #if 0).
ROM naming follows MAME 0.159 conventions.
files:
# Data files (system_dir/ume2015/)
- name: hiscore.dat
required: false
category: game_data
source_ref: "src/emu/hiscore.c:335-337"
note: "high score definitions, external file, not embedded"
# SNK Neo Geo MVS/AES
- name: neogeo.zip
required: true
category: bios_zip
system: snk-neogeo-mvs
source_ref: "src/mame/drivers/neogeo.c:1529"
# IGS PGM
- name: pgm.zip
required: true
category: bios_zip
system: igs-pgm
source_ref: "src/mame/drivers/pgm.c:4147"
# Sega Naomi / Naomi 2 / Naomi GD-ROM / Atomiswave
- name: naomi.zip
required: true
category: bios_zip
system: sega-naomi
source_ref: "src/mame/drivers/naomi.c:8960"
- name: naomi2.zip
required: true
category: bios_zip
system: sega-naomi2
source_ref: "src/mame/drivers/naomi.c:8965"
- name: naomigd.zip
required: true
category: bios_zip
system: sega-naomigd
source_ref: "src/mame/drivers/naomi.c:8966"
- name: awbios.zip
required: true
category: bios_zip
system: sammy-atomiswave
source_ref: "src/mame/drivers/naomi.c:9275"
- name: hod2bios.zip
required: false
category: bios_zip
source_ref: "src/mame/drivers/naomi.c:8961"
note: "game-specific BIOS for House of the Dead 2"
- name: f355dlx.zip
required: false
category: bios_zip
source_ref: "src/mame/drivers/naomi.c:8962"
note: "game-specific BIOS for Ferrari F355 Challenge deluxe"
- name: f355bios.zip
required: false
category: bios_zip
source_ref: "src/mame/drivers/naomi.c:8963"
note: "game-specific BIOS for Ferrari F355 Challenge twin"
- name: airlbios.zip
required: false
category: bios_zip
source_ref: "src/mame/drivers/naomi.c:8964"
note: "game-specific BIOS for Airline Pilots deluxe"
# Sega ST-V
- name: stvbios.zip
required: true
category: bios_zip
system: sega-stv
source_ref: "src/mame/drivers/stv.c:3042"
# Sega Hikaru / Chihiro / Triforce / Lindbergh
- name: hikaru.zip
required: true
category: bios_zip
system: sega-hikaru
source_ref: "src/mame/drivers/hikaru.c:744"
- name: chihiro.zip
required: true
category: bios_zip
system: sega-chihiro
source_ref: "src/mame/drivers/chihiro.c:2192"
- name: triforce.zip
required: true
category: bios_zip
system: sega-triforce
source_ref: "src/mame/drivers/triforce.c:1021"
- name: lindbios.zip
required: true
category: bios_zip
system: sega-lindbergh
source_ref: "src/mame/drivers/lindbergh.c:569"
# DECO Cassette
- name: decocass.zip
required: true
category: bios_zip
system: deco-cassette
source_ref: "src/mame/drivers/decocass.c:1647"
# Nintendo arcade
- name: playch10.zip
required: true
category: bios_zip
system: nintendo-playch10
source_ref: "src/mame/drivers/playch10.c:1639"
- name: nss.zip
required: true
category: bios_zip
system: nintendo-nss
source_ref: "src/mame/drivers/nss.c:1058"
- name: sfcbox.zip
required: true
category: bios_zip
system: nintendo-sfcbox
source_ref: "src/mame/drivers/sfcbox.c:572"
# Sega Mega Drive arcade
- name: megaplay.zip
required: true
category: bios_zip
system: sega-megaplay
source_ref: "src/mame/drivers/megaplay.c:942"
- name: megatech.zip
required: true
category: bios_zip
system: sega-megatech
source_ref: "src/mame/drivers/megatech.c:1393"
# Philips CD-i
- name: cdibios.zip
required: true
category: bios_zip
system: philips-cdi
source_ref: "src/mame/drivers/cdi.c:611"
# Commodore Cubo (CD32-based)
- name: cubo.zip
required: true
category: bios_zip
system: commodore-cubo
source_ref: "src/mame/drivers/cubo.c:1362"
# Namco boards
- name: sys246.zip
required: true
category: bios_zip
system: namco-system246
source_ref: "src/mame/drivers/namcops2.c:672"
- name: sys256.zip
required: true
category: bios_zip
system: namco-system256
source_ref: "src/mame/drivers/namcops2.c:705"
- name: sys573.zip
required: true
category: bios_zip
system: namco-system573
source_ref: "src/mame/drivers/ksys573.c:4678"
# Konami
- name: kviper.zip
required: true
category: bios_zip
system: konami-viper
source_ref: "src/mame/drivers/viper.c:2609"
- name: konamigv.zip
required: true
category: bios_zip
system: konami-gv
source_ref: "src/mame/drivers/konamigv.c:822"
- name: konamigx.zip
required: true
category: bios_zip
source_ref: "src/mame/drivers/konamigx.c:3775"
- name: gq863.zip
required: true
category: bios_zip
system: konami-twinkle
source_ref: "src/mame/drivers/twinkle.c:1330"
# Taito
- name: taitogn.zip
required: true
category: bios_zip
system: taito-gnet
source_ref: "src/mame/drivers/taitogn.c:1081"
- name: taitotz.zip
required: true
category: bios_zip
source_ref: "src/mame/drivers/taitotz.c:2951"
- name: taitofx1.zip
required: true
category: bios_zip
source_ref: "src/mame/drivers/zn.c:4906"
# PSX-based arcade boards (ZN)
- name: cpzn1.zip
required: true
category: bios_zip
system: capcom-zn1
source_ref: "src/mame/drivers/zn.c:4800"
- name: cpzn2.zip
required: true
category: bios_zip
system: capcom-zn2
source_ref: "src/mame/drivers/zn.c:4823"
- name: atpsx.zip
required: true
category: bios_zip
source_ref: "src/mame/drivers/zn.c:4853"
- name: acpsx.zip
required: true
category: bios_zip
source_ref: "src/mame/drivers/zn.c:4862"
- name: tps.zip
required: true
category: bios_zip
source_ref: "src/mame/drivers/zn.c:4873"
- name: vspsx.zip
required: true
category: bios_zip
source_ref: "src/mame/drivers/zn.c:4896"
- name: psarc95.zip
required: true
category: bios_zip
source_ref: "src/mame/drivers/zn.c:4935"
- name: atluspsx.zip
required: true
category: bios_zip
source_ref: "src/mame/drivers/zn.c:4961"
# Super Kaneko Nova System
- name: skns.zip
required: true
category: bios_zip
system: super-kaneko-nova
source_ref: "src/mame/drivers/suprnova.c:1734"
- name: mac2bios.zip
required: true
category: bios_zip
source_ref: "src/mame/drivers/macs.c:747"
- name: macsbios.zip
required: true
category: bios_zip
source_ref: "src/mame/drivers/macs.c:746"
# Panasonic 3DO
- name: 3dobios.zip
required: true
category: bios_zip
system: panasonic-3do
source_ref: "src/mame/drivers/3do.c:253"
# Hyper Neo-Geo 64
- name: hng64.zip
required: true
category: bios_zip
system: hyper-neogeo64
source_ref: "src/mame/drivers/hng64.c:1991"
# Arcadia Systems
- name: ar_bios.zip
required: true
category: bios_zip
source_ref: "src/mame/drivers/arcadia.c:963"
# American Laser Games
- name: alg_bios.zip
required: true
category: bios_zip
source_ref: "src/mame/drivers/alg.c:772"
# Aleck64 (N64-based)
- name: aleck64.zip
required: true
category: bios_zip
source_ref: "src/mame/drivers/aleck64.c:1161"
# Atari System 1
- name: atarisy1.zip
required: true
category: bios_zip
source_ref: "src/mame/drivers/atarisy1.c:2368"
# Exidy Max-A-Flex
- name: maxaflex.zip
required: true
category: bios_zip
source_ref: "src/mame/drivers/maxaflex.c:536"
# Crystal System
- name: crysbios.zip
required: true
category: bios_zip
source_ref: "src/mame/drivers/crystal.c:1134"
# Galaxy Games
- name: galgbios.zip
required: true
category: bios_zip
source_ref: "src/mame/drivers/tmaster.c:1850"
# Aristocrat MK5/MK6
- name: aristmk5.zip
required: true
category: bios_zip
source_ref: "src/mame/drivers/aristmk5.c:739"
- name: aristmk6.zip
required: true
category: bios_zip
source_ref: "src/mame/drivers/aristmk6.c:224"
- name: mk6nsw11.zip
required: true
category: bios_zip
source_ref: "src/mame/drivers/aristmk6.c:225"
# Pinball
- name: allied.zip
required: true
category: bios_zip
source_ref: "src/mame/drivers/allied.c:711"
- name: gp_110.zip
required: true
category: bios_zip
source_ref: "src/mame/drivers/gp_1.c:531"
- name: gts1.zip
required: true
category: bios_zip
source_ref: "src/mame/drivers/gts1.c:978"
- name: gts1s.zip
required: true
category: bios_zip
source_ref: "src/mame/drivers/gts1.c:981"
# Other BIOS root sets
- name: bubsys.zip
required: true
category: bios_zip
source_ref: "src/mame/drivers/nemesis.c:2707"
- name: isgsm.zip
required: true
category: bios_zip
source_ref: "src/mame/drivers/segas16b.c:7501"
- name: iteagle.zip
required: true
category: bios_zip
source_ref: "src/mame/drivers/iteagle.c:315"
- name: pyson.zip
required: true
category: bios_zip
source_ref: "src/mame/drivers/pyson.c:251"
- name: sammymdl.zip
required: true
category: bios_zip
source_ref: "src/mame/drivers/sigmab98.c:2277"
- name: shtzone.zip
required: true
category: bios_zip
source_ref: "src/mame/drivers/shtzone.c:121"
- name: su2000.zip
required: true
category: bios_zip
source_ref: "src/mame/drivers/su2000.c:296"
- name: tourvis.zip
required: true
category: bios_zip
source_ref: "src/mame/drivers/tourvis.c:612"
- name: v4bios.zip
required: true
category: bios_zip
source_ref: "src/mame/drivers/mpu4vid.c:3655"

View File

@@ -1,13 +1,16 @@
emulator: MicroW8
profiled_date: "2026-03-18"
profiled_date: "2026-03-25"
core_version: "0.2.2"
display_name: "MicroW8"
type: game
core_classification: pure_libretro
source: https://github.com/libretro/uw8-libretro
upstream: https://github.com/exoticorn/microw8
cores: [uw8]
systems: []
files: []
notes: >
MicroW8 is a WebAssembly-based fantasy console with a 320x240 screen,
32-color palette, and a 256KB memory limit. Programs are compiled to
compact WASM modules (.uw8 format). The runtime is fully self-contained
with no external dependencies. No BIOS or system directory files required.
WebAssembly-based fantasy console. 320x240 screen, 32-color palette,
256KB memory. The WASM runtime (platform + loader modules) is compiled
to C via wasm2c and embedded in the binary. No external files required.
firmware_count=0 in .info is correct.

View File

@@ -1,15 +1,19 @@
emulator: UXN
type: game
source: "https://github.com/libretro/uxn"
profiled_date: "2026-03-18"
core_version: "0.0.0"
type: libretro
core_classification: community_fork
source: "https://codeberg.org/iyzsong/uxn-libretro"
upstream: "https://github.com/chmod222/zuxn"
profiled_date: "2026-03-25"
core_version: "0.0.1"
display_name: "Uxn / Varvara (zuxn)"
cores: [uxn]
systems: []
files: []
exclusion_note: >
Uxn/Varvara is a software-defined stack machine with 64KB of memory.
The VM has no firmware or BIOS. ROMs compiled from Uxntal assembly are
loaded directly via libretro game_info. The .info declares no firmware.
notes: >
Libretro port of the Varvara/UXN stack machine designed by Hundred Rabbits.
UXN is a portable 8-bit virtual computer with 64KB of memory and a
minimal instruction set. Loads .rom files compiled from Uxntal assembly.
The VM is entirely software-defined with no firmware or BIOS dependencies.
No system directory files required.
Libretro wrapper around the zuxn library (Zig implementation of the
Uxn/Varvara spec by Hundred Rabbits). The file device in Varvara handles
ROM-initiated I/O but does not load system files from the system directory.

View File

@@ -1,46 +1,38 @@
emulator: uzem
type: libretro
core_classification: pure_libretro
source: "https://github.com/libretro/libretro-uzem"
profiled_date: "2026-03-18"
core_version: "3.1"
display_name: "Uzem (Uzebox)"
upstream: "https://github.com/Uzebox/uzebox"
profiled_date: "2026-03-25"
core_version: "v2.0"
display_name: "Uzebox (Uzem)"
cores:
- uzem
systems:
- uzebox
# Uzem emulates the Uzebox, an open-source 8-bit game console based on an
# ATmega644 AVR microcontroller. The console was designed by Alec Bourque (Uze)
# and all hardware/software is open-source.
# No BIOS or firmware files required. The Uzebox is an open-source 8-bit game
# console (ATmega644 AVR MCU) with no proprietary firmware. Games are
# self-contained .uze files loaded directly into progmem
# (uzem_libretro.cpp:254-286, "UZEBOX" magic header + RomHeader + program data).
#
# No BIOS or firmware files are required. The core loads .uze ROM files directly
# into progmem (uzem_libretro.cpp:254-286). The .uze format includes a "UZEBOX"
# magic header followed by a RomHeader struct (uzerom.h) and raw program data.
# The libretro core does not call RETRO_ENVIRONMENT_GET_SYSTEM_DIRECTORY.
# SD card emulation uses GET_CORE_ASSETS_DIRECTORY (uzem_libretro.cpp:186-192)
# for optional game data via virtual FAT16 filesystem (SDEmulator.cpp).
# EEPROM is handled via RETRO_MEMORY_SAVE_RAM (uzem_libretro.cpp:407-408).
#
# The standalone uzem (oldsrcs/uzem.cpp:90) has a --boot flag that sets PC to
# 0xF000 for bootloader mode, but this is NOT exposed in the libretro port.
# The libretro core has no retro_environment calls for RETRO_ENVIRONMENT_SET_SYSTEM_DIR
# or any firmware loading paths.
# The standalone uzem supports --boot (PC=0xF000) for bootloader mode
# (uzem.cpp:206) and .hex format loading, neither exposed in the libretro port.
#
# SD card emulation uses RETRO_ENVIRONMENT_GET_CORE_ASSETS_DIRECTORY
# (uzem_libretro.cpp:186-192) for virtual FAT16 filesystem access via SDEmulator.cpp,
# but this is optional game data, not system firmware.
#
# The .info file declares no firmware entries.
# The .info file declares no firmware entries (firmware_count absent).
files: []
notes:
open_source_console: >
The Uzebox is fully open-source hardware and software. There is no proprietary
BIOS or bootloader required. Games are self-contained .uze files that include
all code needed to run on the ATmega644 MCU emulation.
Fully open-source hardware and software designed by Alec Bourque.
No proprietary BIOS or bootloader. Games are self-contained .uze files.
sd_card: >
Some games use SD card access for loading assets. The core reads from the
libretro core assets directory to emulate a FAT16 SD card, but this is game
data, not system firmware.
standalone_bootloader: >
The original standalone uzem supports a --boot flag for bootloader mode
(PC starts at 0xF000 instead of 0x0000). This feature is not available in
the libretro port.
libretro core assets directory to emulate a FAT16 SD card (game data, not
system firmware).

View File

@@ -1,14 +1,17 @@
emulator: VaporSpec
type: game
source: "https://github.com/libretro/libretro-vaporspec"
profiled_date: "2026-03-18"
type: libretro
core_classification: official_port
source: "https://github.com/minkcv/vm"
upstream: "https://github.com/minkcv/vm"
profiled_date: "2026-03-25"
core_version: "GIT"
display_name: "VaporSpec"
cores: [vaporspec]
systems: []
systems: [vaporspec]
files: []
notes: >
Fantasy console for libretro inspired by retro hardware aesthetics.
Provides a virtual machine with fixed specs (256x192 display, 4-channel
audio) for running homebrew .vaporbin cartridge files.
No BIOS, firmware, or system directory files required.
Fantasy console with fixed specs (256x192 display, 4-channel audio,
256-color palette). Runs .vaporbin cartridge bundles containing code
and optional ROM data. All content is self-contained in the bundle
passed by the frontend; no system directory files loaded.
firmware_count=0 confirmed by code analysis.

View File

@@ -7,7 +7,7 @@
# for GB/GBC mode (not listed in mgba profile).
emulator: VBA-M
type: libretro
cores: [vbam]
cores: [vbam, vba-m]
source: "https://github.com/visualboyadvance-m/visualboyadvance-m"
systems:
- nintendo-gb

View File

@@ -1,7 +1,9 @@
emulator: VBA-Next
type: libretro
core_classification: frozen_snapshot
source: "https://github.com/libretro/vba-next"
profiled_date: "2026-03-18"
upstream: "https://github.com/visualboyadvance-m/visualboyadvance-m"
profiled_date: "2026-03-25"
core_version: "SVN"
display_name: "Nintendo - Game Boy Advance (VBA Next)"
cores:
@@ -10,64 +12,34 @@ systems:
- nintendo-gba
notes: |
VBA-Next is a Game Boy Advance emulator forked from VBA-M, optimized for
libretro. It includes a built-in HLE BIOS (myROM array in src/gba.cpp:8423)
that handles all standard SWI calls, so no external BIOS file is needed for
most games.
Frozen snapshot of VBA-M circa 2011, optimized for libretro by Squarepusher.
BIOS loading is gated behind HAVE_HLE_BIOS (defined in build/Makefile.common)
and controlled by core option vbanext_bios (default: enabled). When enabled,
the libretro port looks for gba_bios.bin in RetroArch's system directory
(libretro/libretro.cpp:198-203). CPUInit() loads the file via utilLoad(),
validates it is exactly 0x4000 bytes (16 KB), and sets useBios = true
(src/gba.cpp:12413-12443). If loading fails or the option is off, the HLE
BIOS (myROM) is memcpy'd into the bios buffer instead.
Built-in HLE BIOS (myROM array, src/gba.cpp:8423) handles all standard SWI
calls. No external BIOS file needed for most games.
CPUIsGBABios() accepts extensions: .gba, .agb, .bin, .bios, .rom
BIOS loading gated by HAVE_HLE_BIOS (build/Makefile.common:3) and core option
vbanext_bios (default: enabled). When enabled, retro_init resolves gba_bios.bin
in system_dir (libretro/libretro.cpp:198-202). CPUInit loads via utilLoad(),
validates size == 0x4000, sets useBios = true (src/gba.cpp:12430-12438). On
failure, myROM is memcpy'd as HLE fallback (src/gba.cpp:12443).
With real BIOS, execution starts at 0x00000000 (BIOS entry point). Without,
jumps to 0x08000000 (ROM entry), skipping boot animation
(src/gba.cpp:12657-12675).
CPUIsGBABios accepts extensions: .gba, .agb, .bin, .bios, .rom
(src/gba.cpp:8851-8873).
When useBios is true and skipBios is false, execution starts at 0x00000000
(real BIOS entry). Otherwise it jumps straight to 0x08000000 (ROM entry),
skipping the boot animation (src/gba.cpp:12657-12675).
The HLE BIOS covers: SoftReset, RegisterRamReset, Halt, VBlankIntrWait,
Div, Sqrt, ArcTan, ArcTan2, CpuSet, CpuFastSet, GetBiosChecksum,
BgAffineSet, ObjAffineSet, BitUnPack, LZ77UnComp (WRAM/VRAM),
HuffUnComp, RLUnComp (WRAM/VRAM), Diff8bitUnFilter (WRAM/VRAM),
Diff16bitUnFilter, MidiKey2Freq, SndDriverJmpTableCopy
(src/gba.cpp:2369-2578).
Some per-game overrides in gbaover[] (libretro/libretro.cpp:235) have a
useBios field, but all entries currently set it to 0 (no game forces BIOS).
Upstream VBA-M CPUInit (src/core/gba/gba.cpp:3674-3702) is functionally
identical. No divergences in BIOS handling.
files:
# -------------------------------------------------------
# Game Boy Advance - BIOS (optional, HLE fallback)
# -------------------------------------------------------
- name: gba_bios.bin
system: nintendo-gba
required: false
hle_fallback: true
size: 16384 # 16 KB (0x4000)
note: "GBA BIOS. Optional -- HLE replacement (myROM) handles all standard SWI calls. Real BIOS adds startup logo and may improve edge-case accuracy."
source_ref: "libretro/libretro.cpp:198-203, src/gba.cpp:12413-12443"
platform_details:
gba:
bios_size: 16384 # 0x4000
hle_bios: true
source_ref: "src/gba.cpp:8423 (myROM), src/gba.cpp:2369-2578 (SWI handlers)"
notes: |
BIOS buffer is always allocated at 0x4000 bytes (src/gba.cpp:8963).
If the real BIOS loads successfully (exactly 0x4000 bytes), useBios is
set to true and CPUReset starts at address 0x00000000 with IRQ disabled.
Otherwise myROM (built-in HLE stub) is copied in and execution starts
at 0x08000000 with standard register init.
The core option vbanext_bios defaults to "enabled", so if gba_bios.bin
is present in the system directory it will be loaded automatically.
BIOS reads at runtime go through the memory map (src/gba.cpp:792-1076).
Address range 0x0000-0x3FFF maps to the bios buffer. A biosProtected[4]
array at 0x00f029e1 is returned when reading outside the current PC
region, matching real GBA BIOS protection behavior.
size: 16384
validation: [size]
description: "GBA BIOS"
note: "Optional. HLE replacement handles all standard SWI calls. Real BIOS adds startup logo and may improve edge-case accuracy."
source_ref: "libretro/libretro.cpp:198-202, src/gba.cpp:12430-12438"

View File

@@ -1,8 +1,49 @@
emulator: "vbam"
type: alias
alias_of: "vba_next"
profiled_date: "2026-03-18"
emulator: VBA-M
type: "standalone + libretro"
core_classification: official_port
source: "https://github.com/libretro/vbam-libretro"
upstream: "https://github.com/visualboyadvance-m/visualboyadvance-m"
profiled_date: "2026-03-25"
core_version: "2.1.4"
display_name: "Nintendo - Game Boy Advance (VBA-M)"
note: "This core uses the same BIOS/firmware as vba_next. See emulators/vba_next.yml for details."
files: []
cores:
- vbam
systems:
- nintendo-gba
- nintendo-gb
- nintendo-gbc
notes: |
Supports GB, GBC, GBA, and SGB (borders/palette only).
BIOS usage controlled by vbam_usebios core option (default: disabled).
Built-in HLE BIOS (myROM array) handles GBA SWI calls without external file.
GB/GBC boot sequence skipped when BIOS absent.
Upstream repo includes the libretro port in src/libretro/.
files:
- name: gba_bios.bin
system: nintendo-gba
required: false
hle_fallback: true
size: 16384
validation: [size]
description: "GBA BIOS"
source_ref: "src/gba/GBA.cpp:3262-3272 (CPUInit size check), src/libretro/libretro.cpp:846-851 (gba_init)"
- name: gb_bios.bin
system: nintendo-gb
required: false
hle_fallback: true
size: 256
validation: [size]
description: "Game Boy boot ROM"
source_ref: "src/gb/GB.cpp:2172-2192 (gbCPUInit size check), src/libretro/libretro.cpp:861-879 (gb_init)"
- name: gbc_bios.bin
system: nintendo-gbc
required: false
hle_fallback: true
size: 2304
validation: [size]
description: "Game Boy Color boot ROM"
source_ref: "src/gb/GB.cpp:2172-2192 (gbCPUInit size check), src/libretro/libretro.cpp:861-879 (gb_init)"

View File

@@ -1,7 +1,9 @@
emulator: vecx
type: libretro
core_classification: community_fork
source: "https://github.com/libretro/libretro-vecx"
profiled_date: "2026-03-18"
upstream: "https://github.com/jhawthorn/vecx"
profiled_date: "2026-03-25"
core_version: "SVN"
display_name: "GCE - Vectrex (vecx)"
cores:

View File

@@ -1,7 +1,9 @@
emulator: VeMUlator
type: libretro
core_classification: official_port
source: "https://github.com/libretro/vemulator-libretro"
profiled_date: "2026-03-18"
upstream: "closed-source Android app (removed from Google Play ~2020)"
profiled_date: "2026-03-25"
core_version: "0.1"
display_name: "VeMUlator"
cores:
@@ -10,32 +12,18 @@ systems:
- sega-vmu
notes: |
VeMUlator is a Sega Dreamcast Visual Memory Unit (VMU/VMS) emulator ported
from Android (Java) to C++ for libretro. It emulates the Sanyo LC8670
"Potato" CPU, 128 KB flash memory, 48x32 monochrome LCD, piezo buzzer,
and basic timer subsystems.
Sega Dreamcast VMU/VMS emulator. Same author (Mahmoud Jaoune) ported
the original Android Java app to C++ for libretro. Emulates the Sanyo
LC8670 CPU, 128 KB flash, 48x32 LCD, piezo buzzer, and timers.
No BIOS files are required. The core uses High Level Emulation (HLE) to
bypass the VMU firmware entirely:
No BIOS files required. The core uses HLE exclusively: startCPU()
checks BIOSExists (always false), then initializeHLE() sets SFR
registers and system RAM directly (vmu.cpp:193-222).
- At startup, startCPU() checks the BIOSExists flag (vmu.cpp:195). When
false (always, in the libretro port), it calls initializeHLE() which
sets up SFR registers (SP=0x7F, PSW=0x02, IE=0x80, MCR=0x08, P7=0x02,
OCR=0xA3, BTCR=0x41) and system RAM variables directly (vmu.cpp:206-222).
- A loadBIOS() function exists in the VMU class (vmu.cpp:82-137) and can
handle both encrypted (XOR 0x37, 4-byte header stripped) and unencrypted
BIOS images (first byte must be 0x2A = JMPF opcode). Maximum accepted
size is 0xF004 (61444) bytes, loaded into 0xF000 (61440) bytes of ROM.
However, this function is never called by the libretro frontend code.
retro_load_game() in main.cpp only loads game flash data, with no BIOS
path resolution or RETRO_ENVIRONMENT_GET_SYSTEM_DIRECTORY call.
- The README lists "BIOS support" as a planned future feature.
The .info file declares no firmware entries (firmware_count absent).
Supported ROM formats: VMS (.vms), DCI (.dci), raw flash dump (.bin).
The core option "enable_flash_write" allows persistent saves for .bin files.
A loadBIOS() function exists (vmu.cpp:82-137) handling encrypted and
unencrypted BIOS images, but is never called from the libretro
interface. retro_load_game() only loads game flash data, with no
system directory query. README lists BIOS support as planned.
files: []

52
emulators/vice_x128.yml Normal file
View File

@@ -0,0 +1,52 @@
emulator: "VICE x128"
type: libretro
core_classification: community_fork
source: "https://github.com/libretro/vice-libretro"
upstream: "https://sourceforge.net/projects/vice-emu/"
profiled_date: "2026-03-25"
core_version: "3.10"
display_name: "Commodore - C128 (VICE x128)"
cores: [vice_x128, x128]
systems: [commodore-c128]
notes: >
System ROMs embedded in binary: C128 kernal (318020-05), chargen (390059-01),
BASIC lo (318018-04), BASIC hi (318019-04), C64 kernal (901227-03), C64 BASIC (901226-01),
plus all drive ROMs (1540, 1541, 1541-II, 1551, 1570, 1571, 1571CR, 1581, 1001, 2031,
2040, 3040, 4040, 9000). Embedded ROM check in sysfile_load takes priority over filesystem.
Localized kernal/chargen variants (DE, FI, FR, IT, NO, SE, CH) are in the embedded list
with NULL data pointers; selecting a non-international model produces uninitialized ROM data.
JiffyDOS requires True Drive Emulation enabled and a 1541/1571/1581 drive type.
C64 BASIC/kernal use shared names (basic-901226-01.bin, kernal-901227-03.bin) instead of
upstream c128-specific names (basic64-901226-01.bin, kernal64-901227-03.bin) to share
files with the C64 core in RetroArch's shared system directory.
files:
- name: "JiffyDOS_C128.bin"
description: "JiffyDOS C128 kernal replacement"
required: false
source_ref: "retrodep/ui.c:309-310"
notes: "Loaded into KernalIntName when vice_jiffydos option is enabled."
- name: "JiffyDOS_C64.bin"
description: "JiffyDOS C64 kernal replacement (GO64 mode)"
required: false
source_ref: "retrodep/ui.c:307-308"
notes: "Loaded into Kernal64Name when vice_jiffydos option is enabled."
- name: "JiffyDOS_1541-II.bin"
description: "JiffyDOS 1541-II drive DOS replacement"
required: false
source_ref: "retrodep/ui.c:283-284"
notes: "Loaded into DosName1541ii when vice_jiffydos option is enabled."
- name: "JiffyDOS_1571_repl310654.bin"
description: "JiffyDOS 1571 drive DOS replacement"
required: false
source_ref: "retrodep/ui.c:285-286"
notes: "Loaded into DosName1571 when vice_jiffydos option is enabled."
- name: "JiffyDOS_1581.bin"
description: "JiffyDOS 1581 drive DOS replacement"
required: false
source_ref: "retrodep/ui.c:287-288"
notes: "Loaded into DosName1581 when vice_jiffydos option is enabled."

68
emulators/vice_x64.yml Normal file
View File

@@ -0,0 +1,68 @@
emulator: "VICE x64"
type: libretro
core_classification: community_fork
source: "https://github.com/libretro/vice-libretro"
upstream: "https://sourceforge.net/projects/vice-emu/"
profiled_date: "2026-03-25"
core_version: "3.10"
display_name: "Commodore - C64 (VICE x64, fast)"
cores: [vice_x64, x64]
systems: [commodore-c64]
notes: >
System ROMs embedded in binary: C64 BASIC (901226-01), chargen (901225-01),
chargen Japanese (906143-02), kernal Rev 3 (901227-03), kernal GS (390852-01),
kernal SX-64 (251104-04), kernal 4064 (901246-01), kernal Japanese (906145-02),
plus all drive ROMs (1540, 1541, 1541-II, 1551, 1570, 1571, 1571CR, 1581, 1001,
2031, 2040, 3040, 4040, 9000) and VIC-II palettes. Embedded ROM check in
sysfile_load takes priority over filesystem. Kernal Rev 1 (901227-01) and
Rev 2 (901227-02) are NOT embedded; selecting C64 OLD NTSC or C64 OLD PAL model
requires them on the filesystem in system/vice/C64/. JiffyDOS requires True Drive
Emulation enabled and a 1541/1571/1581 drive type. SX-64 models use a separate
JiffyDOS kernal (JiffyDOS_SX-64.bin) not declared in the .info.
files:
- name: "JiffyDOS_C64.bin"
description: "JiffyDOS C64 kernal replacement"
required: false
source_ref: "retrodep/ui.c:302-303"
notes: "Loaded into KernalName when vice_jiffydos option is enabled (non-SX64 models)."
- name: "JiffyDOS_SX-64.bin"
description: "JiffyDOS SX-64 kernal replacement"
required: false
source_ref: "retrodep/ui.c:295-296"
notes: "Loaded into KernalName when vice_jiffydos option is enabled and SX-64 model selected."
- name: "JiffyDOS_1541-II.bin"
description: "JiffyDOS 1541-II drive DOS replacement"
required: false
source_ref: "retrodep/ui.c:283-284"
notes: "Loaded into DosName1541ii when vice_jiffydos option is enabled."
- name: "JiffyDOS_1571_repl310654.bin"
description: "JiffyDOS 1571 drive DOS replacement"
required: false
source_ref: "retrodep/ui.c:285-286"
notes: "Loaded into DosName1571 when vice_jiffydos option is enabled."
- name: "JiffyDOS_1581.bin"
description: "JiffyDOS 1581 drive DOS replacement"
required: false
source_ref: "retrodep/ui.c:287-288"
notes: "Loaded into DosName1581 when vice_jiffydos option is enabled."
- name: "kernal-901227-01.bin"
description: "C64 Kernal Rev 1"
required: false
size: 8192
validation: [size]
source_ref: "vice/src/c64/c64-resources.c:253, vice/src/c64/c64model.c:131"
notes: "Not embedded. Loaded via sysfile from system/vice/C64/ when C64 OLD NTSC model selected."
- name: "kernal-901227-02.bin"
description: "C64 Kernal Rev 2"
required: false
size: 8192
validation: [size]
source_ref: "vice/src/c64/c64-resources.c:254, vice/src/c64/c64model.c:117"
notes: "Not embedded. Loaded via sysfile from system/vice/C64/ when C64 OLD PAL model selected."

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