1 Commits

Author SHA1 Message Date
github-actions[bot] ac666d3011 regenerate database and docs 2026-03-24 21:44:50 +00:00
70 changed files with 1869 additions and 2680 deletions
+5 -34
View File
@@ -11,7 +11,9 @@ on:
type: boolean type: boolean
default: false default: false
permissions: {} permissions:
contents: write
pages: write
concurrency: concurrency:
group: build group: build
@@ -20,11 +22,6 @@ concurrency:
jobs: jobs:
regenerate: regenerate:
runs-on: ubuntu-latest runs-on: ubuntu-latest
permissions:
contents: write
pages: write
outputs:
changed: ${{ steps.commit.outputs.changed }}
steps: steps:
- uses: actions/checkout@v6 - uses: actions/checkout@v6
@@ -60,9 +57,6 @@ jobs:
python scripts/generate_readme.py --db database.json --platforms-dir platforms python scripts/generate_readme.py --db database.json --platforms-dir platforms
python scripts/generate_site.py python scripts/generate_site.py
- name: Run tests
run: python -m unittest tests.test_e2e -v
- name: Deploy site to GitHub Pages - name: Deploy site to GitHub Pages
if: github.ref == 'refs/heads/main' if: github.ref == 'refs/heads/main'
run: mkdocs gh-deploy --force --clean run: mkdocs gh-deploy --force --clean
@@ -80,10 +74,8 @@ jobs:
release: release:
needs: regenerate needs: regenerate
if: (needs.regenerate.outputs.changed == 'true' || github.event.inputs.force_release == 'true') if: needs.regenerate.result == 'success' || github.event.inputs.force_release == 'true'
runs-on: ubuntu-latest runs-on: ubuntu-latest
permissions:
contents: write
steps: steps:
- name: Rate limit - name: Rate limit
if: github.event.inputs.force_release != 'true' if: github.event.inputs.force_release != 'true'
@@ -113,28 +105,6 @@ jobs:
with: with:
python-version: "3.12" 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: |
mkdir -p .cache/large
gh release download large-files -D .cache/large/ 2>/dev/null || true
for f in .cache/large/*; do
[ -f "$f" ] || continue
name=$(basename "$f")
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: ${{ secrets.GITHUB_TOKEN }}
- name: Refresh data directories - name: Refresh data directories
if: steps.rate.outputs.skip != 'true' if: steps.rate.outputs.skip != 'true'
run: python scripts/refresh_data_dirs.py run: python scripts/refresh_data_dirs.py
@@ -143,6 +113,7 @@ jobs:
- name: Build packs - name: Build packs
if: steps.rate.outputs.skip != 'true' if: steps.rate.outputs.skip != 'true'
run: | run: |
pip install pyyaml
python scripts/generate_db.py --bios-dir bios --output database.json python scripts/generate_db.py --bios-dir bios --output database.json
python scripts/generate_pack.py --all --output-dir dist/ python scripts/generate_pack.py --all --output-dir dist/
+53 -47
View File
@@ -31,11 +31,8 @@ jobs:
- name: Get changed BIOS files - name: Get changed BIOS files
id: changed id: changed
env:
BASE_SHA: ${{ github.event.pull_request.base.sha }}
HEAD_SHA: ${{ github.event.pull_request.head.sha }}
run: | run: |
files=$(git diff --name-only "$BASE_SHA"..."$HEAD_SHA" | grep '^bios/' || true) files=$(git diff --name-only ${{ github.event.pull_request.base.sha }}...${{ github.event.pull_request.head.sha }} | grep '^bios/' || true)
echo "files=$files" >> "$GITHUB_OUTPUT" echo "files=$files" >> "$GITHUB_OUTPUT"
echo "$files" > /tmp/changed_files.txt echo "$files" > /tmp/changed_files.txt
@@ -49,11 +46,17 @@ jobs:
fi fi
- name: Post validation report - name: Post validation report
if: always() uses: actions/github-script@v8
run: | with:
gh pr comment "${{ github.event.pull_request.number }}" --body-file /tmp/report.md script: |
env: const fs = require('fs');
GH_TOKEN: ${{ github.token }} const report = fs.readFileSync('/tmp/report.md', 'utf8');
await github.rest.issues.createComment({
owner: context.repo.owner,
repo: context.repo.repo,
issue_number: context.issue.number,
body: report
});
validate-configs: validate-configs:
runs-on: ubuntu-latest runs-on: ubuntu-latest
@@ -65,7 +68,7 @@ jobs:
python-version: "3.12" python-version: "3.12"
- name: Install dependencies - name: Install dependencies
run: pip install pyyaml jsonschema==4.23.0 run: pip install pyyaml jsonschema
- name: Validate platform configs - name: Validate platform configs
run: | run: |
@@ -85,30 +88,15 @@ jobs:
config = yaml.safe_load(f) config = yaml.safe_load(f)
try: try:
validate(config, schema) validate(config, schema)
print(f'OK {yml_file.name}') print(f' {yml_file.name}')
except ValidationError as e: except ValidationError as e:
errors.append(f'{yml_file.name}: {e.message}') errors.append(f'{yml_file.name}: {e.message}')
print(f'FAIL {yml_file.name}: {e.message}') print(f' {yml_file.name}: {e.message}')
if errors: if errors:
sys.exit(1) sys.exit(1)
" "
run-tests:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v6
- uses: actions/setup-python@v6
with:
python-version: "3.12"
- name: Install dependencies
run: pip install pyyaml
- name: Run test suite
run: python -m unittest tests.test_e2e -v
label-pr: label-pr:
runs-on: ubuntu-latest runs-on: ubuntu-latest
permissions: permissions:
@@ -119,25 +107,43 @@ jobs:
fetch-depth: 0 fetch-depth: 0
- name: Auto-label PR - name: Auto-label PR
run: | uses: actions/github-script@v8
labels="" with:
files=$(gh pr diff "${{ github.event.pull_request.number }}" --name-only) script: |
const { data: files } = await github.rest.pulls.listFiles({
owner: context.repo.owner,
repo: context.repo.repo,
pull_number: context.issue.number,
});
if echo "$files" | grep -q '^bios/'; then const labels = new Set();
labels="$labels bios"
for sys in $(echo "$files" | grep '^bios/' | cut -d/ -f2 | sort -u); do
labels="$labels system:$(echo "$sys" | tr '[:upper:]' '[:lower:]')"
done
fi
if echo "$files" | grep -q '^platforms/'; then
labels="$labels platform-config"
fi
if echo "$files" | grep -q '^scripts/'; then
labels="$labels automation"
fi
for label in $labels; do for (const file of files) {
gh pr edit "${{ github.event.pull_request.number }}" --add-label "$label" 2>/dev/null || true if (file.filename.startsWith('bios/')) {
done labels.add('bios');
env: // Extract system from path
GH_TOKEN: ${{ github.token }} const parts = file.filename.split('/');
if (parts.length >= 3) {
labels.add(`system:${parts[1].toLowerCase()}`);
}
}
if (file.filename.startsWith('platforms/')) {
labels.add('platform-config');
}
if (file.filename.startsWith('scripts/')) {
labels.add('automation');
}
}
if (labels.size > 0) {
try {
await github.rest.issues.addLabels({
owner: context.repo.owner,
repo: context.repo.repo,
issue_number: context.issue.number,
labels: [...labels],
});
} catch (e) {
console.log('Could not add labels:', e.message);
}
}
+8 -8
View File
@@ -2,7 +2,7 @@
Complete, verified collection of BIOS, firmware, and system files for retrogaming emulators. Complete, verified collection of BIOS, firmware, and system files for retrogaming emulators.
> **6724** files | **5013.3 MB** | **8** platforms | **275** emulator profiles > **6733** files | **5043.6 MB** | **8** platforms | **287** emulator profiles
## Download ## Download
@@ -23,12 +23,12 @@ Complete, verified collection of BIOS, firmware, and system files for retrogamin
|----------|----------|----------|----------|---------| |----------|----------|----------|----------|---------|
| Batocera | 359/359 (100.0%) | 358 | 1 | 0 | | Batocera | 359/359 (100.0%) | 358 | 1 | 0 |
| EmuDeck | 161/161 (100.0%) | 161 | 0 | 0 | | EmuDeck | 161/161 (100.0%) | 161 | 0 | 0 |
| Lakka | 448/448 (100.0%) | 448 | 0 | 0 | | Lakka | 448/448 (100.0%) | 445 | 3 | 0 |
| Recalbox | 346/346 (100.0%) | 346 | 0 | 0 | | Recalbox | 346/346 (100.0%) | 342 | 4 | 0 |
| RetroArch | 448/448 (100.0%) | 448 | 0 | 0 | | RetroArch | 448/448 (100.0%) | 445 | 3 | 0 |
| RetroBat | 331/331 (100.0%) | 331 | 0 | 0 | | RetroBat | 331/331 (100.0%) | 330 | 1 | 0 |
| RetroDECK | 2007/2007 (100.0%) | 1698 | 309 | 0 | | RetroDECK | 2007/2007 (100.0%) | 2006 | 1 | 0 |
| RetroPie | 448/448 (100.0%) | 448 | 0 | 0 | | RetroPie | 448/448 (100.0%) | 445 | 3 | 0 |
## Documentation ## Documentation
@@ -47,4 +47,4 @@ See [CONTRIBUTING.md](CONTRIBUTING.md) for guidelines.
This repository provides BIOS files for personal backup and archival purposes. This repository provides BIOS files for personal backup and archival purposes.
*Auto-generated on 2026-03-20T19:10:25Z* *Auto-generated on 2026-03-24T21:43:44Z*
+331 -335
View File
@@ -1,5 +1,5 @@
{ {
"generated_at": "2026-03-25T05:56:02Z", "generated_at": "2026-03-24T21:43:44Z",
"total_files": 6733, "total_files": 6733,
"total_size": 5288644732, "total_size": 5288644732,
"files": { "files": {
@@ -93221,6 +93221,202 @@
"SCPH-70004_BIOS_V12_EUR_200.ROM2": [ "SCPH-70004_BIOS_V12_EUR_200.ROM2": [
"1bae895fbdd658cfb56c53cc2139282cc1e778de" "1bae895fbdd658cfb56c53cc2139282cc1e778de"
], ],
"tos100uk.img": [
"9a6e4c88533a9eaa4d55cdc040e47443e0226eb2"
],
"tos106de.img": [
"3b8cf5ffa41b252eb67f8824f94608fa4005d6dd"
],
"tos206us.img": [
"ee58768bdfc602c9b14942ce5481e97dd24e7c83"
],
"saturn_bios.bin": [
"2b8cb4f87580683eb4d760e4ed210813d667f0a2"
],
"sega-saturn:af5828fdff51384f99b3c4926be27762": [
"2b8cb4f87580683eb4d760e4ed210813d667f0a2"
],
"bios7.bin": [
"24f67bdea115a2c847c8813a262502ee1607b7df"
],
"bios9.bin": [
"bfaac75f101c135e32e2aaf541de6b1be4c8c62d"
],
"dsi_bios7.bin": [
"a3aa751eb6bdaaf8a827ba9e03576a6f1ab0f547"
],
"dsi_bios9.bin": [
"7bf549b8be9e48ab0cdc9b0fdadd49a5131f97eb"
],
"gb_bios.bin": [
"4ed31ec6b0b175bb109c0eb5fd3d193da823339f",
"1db57a1e8b6e4096f811587f9eab0c6675fd9755"
],
"sgb_bios.bin": [
"aa2f50a77dfb4823da96ba99309085a3c6278515",
"369e6eb5e0c975eaa52a4a3f6ee07b2a3c3c16de",
"f282b3aaf98f8423dab7d77f1aa0192be630f2fb"
],
"sgb1.boot.rom": [
"aa2f50a77dfb4823da96ba99309085a3c6278515"
],
"SGB1.sfc": [
"973e10840db683cf3faf61bd443090786b3a9f04"
],
"SGB1.sfc/program.rom": [
"973e10840db683cf3faf61bd443090786b3a9f04"
],
"SGB2.sfc": [
"e5b2922ca137051059e4269b236d07a22c07bc84"
],
"SGB2.sfc/program.rom": [
"e5b2922ca137051059e4269b236d07a22c07bc84"
],
"fs-a1gt_kanjifont.rom": [
"5aff2d9b6efc723bc395b0f96f0adfa83cc54a49"
],
"fs-a1wsx_kanjifont.rom": [
"5aff2d9b6efc723bc395b0f96f0adfa83cc54a49"
],
"yrw801.rom": [
"32760893ce06dbe3930627755ba065cc3d8ec6ca"
],
"fs-a1wsx_msx2psub.rom": [
"fe0254cbfc11405b79e7c86c7769bd6322b04995"
],
"MSX2PEXT.rom": [
"fe0254cbfc11405b79e7c86c7769bd6322b04995"
],
"fs-a1wsx_kanjibasic.rom": [
"dcc3a67732aa01c4f2ee8d1ad886444a4dbafe06"
],
"fs-a1wsx_disk.rom": [
"7ed7c55e0359737ac5e68d38cb6903f9e5d7c2b6"
],
"kick37350.A600": [
"02843c4253bbd29aba535b0aa3bd9a85034ecde4"
],
"amiga-os-120.rom": [
"11f9e62cf299f72184835b7b2a70a16333fc0d88"
],
"Kickstart v1.2 rev 33.180 (1986)(Commodore)(A500-A2000)[!].rom": [
"11f9e62cf299f72184835b7b2a70a16333fc0d88"
],
"Kickstart v1.2 rev 33.180 (1986)(Commodore)(A500-A1000-A2000).rom": [
"11f9e62cf299f72184835b7b2a70a16333fc0d88"
],
"amiga-os-130.rom": [
"891e9a547772fe0c6c19b610baf8bc4ea7fcb785"
],
"Kickstart v1.3 rev 34.5 (1987)(Commodore)(A500-A1000-A2000-CDTV)[!].rom": [
"891e9a547772fe0c6c19b610baf8bc4ea7fcb785"
],
"Kickstart v1.3 rev 34.5 (1987)(Commodore)(A500-A1000-A2000-CDTV).rom": [
"891e9a547772fe0c6c19b610baf8bc4ea7fcb785"
],
"amiga-os-204.rom": [
"c5839f5cb98a7a8947065c3ed2f14f5f42e334a1"
],
"Kickstart v2.04 rev 37.175 (1991)(Commodore)(A500+)[!].rom": [
"c5839f5cb98a7a8947065c3ed2f14f5f42e334a1"
],
"Kickstart v2.04 rev 37.175 (1991)(Commodore)(A500+).rom": [
"c5839f5cb98a7a8947065c3ed2f14f5f42e334a1"
],
"amiga-os-310-a600.rom": [
"3b7f1493b27e212830f989f26ca76c02049f09ca"
],
"Kickstart v3.1 rev 40.63 (1993)(Commodore)(A500-A600-A2000)[!].rom": [
"3b7f1493b27e212830f989f26ca76c02049f09ca"
],
"Kickstart v3.1 rev 40.63 (1993)(Commodore)(A500-A600-A2000).rom": [
"3b7f1493b27e212830f989f26ca76c02049f09ca"
],
"amiga-ext-130-cdtv.rom": [
"7ba40ffa17e500ed9fed041f3424bd81d9c907be"
],
"amiga-os-130-cdtv-ext.rom": [
"7ba40ffa17e500ed9fed041f3424bd81d9c907be"
],
"CDTV Extended-ROM v1.0 (1991)(Commodore)(CDTV)[!].rom": [
"7ba40ffa17e500ed9fed041f3424bd81d9c907be"
],
"CDTV Extended-ROM v1.0 (1992)(Commodore)(CDTV).rom": [
"7ba40ffa17e500ed9fed041f3424bd81d9c907be"
],
"amiga-os-300-a1200.rom": [
"70033828182fffc7ed106e5373a8b89dda76faa5"
],
"Kickstart v3.0 rev 39.106 (1992)(Commodore)(A1200)[!].rom": [
"70033828182fffc7ed106e5373a8b89dda76faa5"
],
"amiga-os-310-a1200.rom": [
"e21545723fe8374e91342617604f1b3d703094f1"
],
"AmigaVision.rom": [
"e21545723fe8374e91342617604f1b3d703094f1"
],
"Kickstart v3.1 rev 40.68 (1993)(Commodore)(A1200)[!].rom": [
"e21545723fe8374e91342617604f1b3d703094f1"
],
"Kickstart v3.1 rev 40.68 (1993)(Commodore)(A1200).rom": [
"e21545723fe8374e91342617604f1b3d703094f1"
],
"amiga-os-310-a4000.rom": [
"5fe04842d04a489720f0f4bb0e46948199406f49"
],
"Kickstart v3.1 rev 40.68 (1993)(Commodore)(A4000).rom": [
"5fe04842d04a489720f0f4bb0e46948199406f49"
],
"amiga-os-310-cd32.rom": [
"3525be8887f79b5929e017b42380a79edfee542d"
],
"Kickstart v3.1 rev 40.60 (1993)(Commodore)(CD32).rom": [
"3525be8887f79b5929e017b42380a79edfee542d"
],
"amiga-ext-310-cd32.rom": [
"5bef3d628ce59cc02a66e6e4ae0da48f60e78f7f"
],
"amiga-os-310-cd32-ext.rom": [
"5bef3d628ce59cc02a66e6e4ae0da48f60e78f7f"
],
"CD32 Extended-ROM rev 40.60 (1993)(Commodore)(CD32).rom": [
"5bef3d628ce59cc02a66e6e4ae0da48f60e78f7f"
],
"custom0.sf2": [
"286b2e1fb21cc79851da01666db6c0b0e88f25e3"
],
"colecovision.rom": [
"45bedc4cbdeac66c7df59e9e599195c778d86a92"
],
"coleco.rom": [
"45bedc4cbdeac66c7df59e9e599195c778d86a92"
],
"boot.rom": [
"45bedc4cbdeac66c7df59e9e599195c778d86a92"
],
"d2fdc.zip": [
"bc39fbd5b9a8d2287ac5d0a42e639fc4d3c2f9d4",
"af56c948598291b284a528f3fce06b961dba55e3"
],
"basic11.rom": [
"9451a1a09d8f75944dbd6f91193fc360f1de80ac"
],
"basic21.bin": [
"03bbb386cf530e804363acdfc1d13e64cf28af2e"
],
"exos21.bin": [
"55315b20fecb4441a07ee4bc5dc7153f396e0a2e"
],
"EXOS21.ROM": [
"55315b20fecb4441a07ee4bc5dc7153f396e0a2e"
],
"zx48.rom": [
"5ea7c2b824672e914525d1d5c419d71b84a426a2"
],
"zxs:48.rom": [
"5ea7c2b824672e914525d1d5c419d71b84a426a2"
],
"sony-playstation:239665b1a3dade1b5a52c06338011044": [ "sony-playstation:239665b1a3dade1b5a52c06338011044": [
"343883a7b555646da8cee54aadd2795b6e7dd070" "343883a7b555646da8cee54aadd2795b6e7dd070"
], ],
@@ -93632,12 +93828,6 @@
"sega-mega-cd:baca1df271d7c11fe50087c0358f4eb5": [ "sega-mega-cd:baca1df271d7c11fe50087c0358f4eb5": [
"2b125c0545afa089b617f2558e686ea723bdc06e" "2b125c0545afa089b617f2558e686ea723bdc06e"
], ],
"sega-saturn:af5828fdff51384f99b3c4926be27762": [
"2b8cb4f87580683eb4d760e4ed210813d667f0a2"
],
"saturn_bios.bin": [
"2b8cb4f87580683eb4d760e4ed210813d667f0a2"
],
"sega-saturn:85ec9ca47d8f6807718151cbcca8b964": [ "sega-saturn:85ec9ca47d8f6807718151cbcca8b964": [
"df94c5b4d47eb3cc404d88b33a8fda237eaf4720" "df94c5b4d47eb3cc404d88b33a8fda237eaf4720"
], ],
@@ -93659,199 +93849,21 @@
"sega-saturn:0306c0e408d6682dd2d86324bd4ac661": [ "sega-saturn:0306c0e408d6682dd2d86324bd4ac661": [
"8c031bf9908fd0142fdd10a9cdd79389f8a3f2fc" "8c031bf9908fd0142fdd10a9cdd79389f8a3f2fc"
], ],
"tos100uk.img": [ "gexpress.pce": [
"9a6e4c88533a9eaa4d55cdc040e47443e0226eb2" "014881a959e045e00f4db8f52955200865d40280"
], ],
"tos106de.img": [ "pcfxbios.bin": [
"3b8cf5ffa41b252eb67f8824f94608fa4005d6dd" "1a77fd83e337f906aecab27a1604db064cf10074"
], ],
"tos206us.img": [ "sgb2_bios.bin": [
"ee58768bdfc602c9b14942ce5481e97dd24e7c83" "93407ea10d2f30ab96a314d8eca44fe160aea734",
],
"bios7.bin": [
"24f67bdea115a2c847c8813a262502ee1607b7df"
],
"bios9.bin": [
"bfaac75f101c135e32e2aaf541de6b1be4c8c62d"
],
"dsi_bios7.bin": [
"a3aa751eb6bdaaf8a827ba9e03576a6f1ab0f547"
],
"dsi_bios9.bin": [
"7bf549b8be9e48ab0cdc9b0fdadd49a5131f97eb"
],
"gb_bios.bin": [
"4ed31ec6b0b175bb109c0eb5fd3d193da823339f",
"1db57a1e8b6e4096f811587f9eab0c6675fd9755"
],
"dmg0_rom.bin": [
"4ed31ec6b0b175bb109c0eb5fd3d193da823339f",
"1db57a1e8b6e4096f811587f9eab0c6675fd9755"
],
"sgb_bios.bin": [
"aa2f50a77dfb4823da96ba99309085a3c6278515",
"369e6eb5e0c975eaa52a4a3f6ee07b2a3c3c16de",
"f282b3aaf98f8423dab7d77f1aa0192be630f2fb" "f282b3aaf98f8423dab7d77f1aa0192be630f2fb"
], ],
"sgb1.boot.rom": [ "flash.bin": [
"aa2f50a77dfb4823da96ba99309085a3c6278515" "94d44d7f9529ec1642ba3771ed3c5f756d5bc872"
], ],
"SGB1.sfc": [ "plus3e-3.rom": [
"973e10840db683cf3faf61bd443090786b3a9f04" "65f031caa8148a5493afe42c41f4929deab26b4e"
],
"SGB1.sfc/program.rom": [
"973e10840db683cf3faf61bd443090786b3a9f04"
],
"SGB2.sfc": [
"e5b2922ca137051059e4269b236d07a22c07bc84"
],
"SGB2.sfc/program.rom": [
"e5b2922ca137051059e4269b236d07a22c07bc84"
],
"fs-a1gt_kanjifont.rom": [
"5aff2d9b6efc723bc395b0f96f0adfa83cc54a49"
],
"fs-a1wsx_kanjifont.rom": [
"5aff2d9b6efc723bc395b0f96f0adfa83cc54a49"
],
"yrw801.rom": [
"32760893ce06dbe3930627755ba065cc3d8ec6ca"
],
"fs-a1wsx_msx2psub.rom": [
"fe0254cbfc11405b79e7c86c7769bd6322b04995"
],
"MSX2PEXT.rom": [
"fe0254cbfc11405b79e7c86c7769bd6322b04995"
],
"fs-a1wsx_kanjibasic.rom": [
"dcc3a67732aa01c4f2ee8d1ad886444a4dbafe06"
],
"fs-a1wsx_disk.rom": [
"7ed7c55e0359737ac5e68d38cb6903f9e5d7c2b6"
],
"kick37350.A600": [
"02843c4253bbd29aba535b0aa3bd9a85034ecde4"
],
"amiga-os-120.rom": [
"11f9e62cf299f72184835b7b2a70a16333fc0d88"
],
"Kickstart v1.2 rev 33.180 (1986)(Commodore)(A500-A2000)[!].rom": [
"11f9e62cf299f72184835b7b2a70a16333fc0d88"
],
"Kickstart v1.2 rev 33.180 (1986)(Commodore)(A500-A1000-A2000).rom": [
"11f9e62cf299f72184835b7b2a70a16333fc0d88"
],
"amiga-os-130.rom": [
"891e9a547772fe0c6c19b610baf8bc4ea7fcb785"
],
"Kickstart v1.3 rev 34.5 (1987)(Commodore)(A500-A1000-A2000-CDTV)[!].rom": [
"891e9a547772fe0c6c19b610baf8bc4ea7fcb785"
],
"Kickstart v1.3 rev 34.5 (1987)(Commodore)(A500-A1000-A2000-CDTV).rom": [
"891e9a547772fe0c6c19b610baf8bc4ea7fcb785"
],
"amiga-os-204.rom": [
"c5839f5cb98a7a8947065c3ed2f14f5f42e334a1"
],
"Kickstart v2.04 rev 37.175 (1991)(Commodore)(A500+)[!].rom": [
"c5839f5cb98a7a8947065c3ed2f14f5f42e334a1"
],
"Kickstart v2.04 rev 37.175 (1991)(Commodore)(A500+).rom": [
"c5839f5cb98a7a8947065c3ed2f14f5f42e334a1"
],
"amiga-os-310-a600.rom": [
"3b7f1493b27e212830f989f26ca76c02049f09ca"
],
"Kickstart v3.1 rev 40.63 (1993)(Commodore)(A500-A600-A2000)[!].rom": [
"3b7f1493b27e212830f989f26ca76c02049f09ca"
],
"Kickstart v3.1 rev 40.63 (1993)(Commodore)(A500-A600-A2000).rom": [
"3b7f1493b27e212830f989f26ca76c02049f09ca"
],
"amiga-ext-130-cdtv.rom": [
"7ba40ffa17e500ed9fed041f3424bd81d9c907be"
],
"amiga-os-130-cdtv-ext.rom": [
"7ba40ffa17e500ed9fed041f3424bd81d9c907be"
],
"CDTV Extended-ROM v1.0 (1991)(Commodore)(CDTV)[!].rom": [
"7ba40ffa17e500ed9fed041f3424bd81d9c907be"
],
"CDTV Extended-ROM v1.0 (1992)(Commodore)(CDTV).rom": [
"7ba40ffa17e500ed9fed041f3424bd81d9c907be"
],
"amiga-os-300-a1200.rom": [
"70033828182fffc7ed106e5373a8b89dda76faa5"
],
"Kickstart v3.0 rev 39.106 (1992)(Commodore)(A1200)[!].rom": [
"70033828182fffc7ed106e5373a8b89dda76faa5"
],
"amiga-os-310-a1200.rom": [
"e21545723fe8374e91342617604f1b3d703094f1"
],
"AmigaVision.rom": [
"e21545723fe8374e91342617604f1b3d703094f1"
],
"Kickstart v3.1 rev 40.68 (1993)(Commodore)(A1200)[!].rom": [
"e21545723fe8374e91342617604f1b3d703094f1"
],
"Kickstart v3.1 rev 40.68 (1993)(Commodore)(A1200).rom": [
"e21545723fe8374e91342617604f1b3d703094f1"
],
"amiga-os-310-a4000.rom": [
"5fe04842d04a489720f0f4bb0e46948199406f49"
],
"Kickstart v3.1 rev 40.68 (1993)(Commodore)(A4000).rom": [
"5fe04842d04a489720f0f4bb0e46948199406f49"
],
"amiga-os-310-cd32.rom": [
"3525be8887f79b5929e017b42380a79edfee542d"
],
"Kickstart v3.1 rev 40.60 (1993)(Commodore)(CD32).rom": [
"3525be8887f79b5929e017b42380a79edfee542d"
],
"amiga-ext-310-cd32.rom": [
"5bef3d628ce59cc02a66e6e4ae0da48f60e78f7f"
],
"amiga-os-310-cd32-ext.rom": [
"5bef3d628ce59cc02a66e6e4ae0da48f60e78f7f"
],
"CD32 Extended-ROM rev 40.60 (1993)(Commodore)(CD32).rom": [
"5bef3d628ce59cc02a66e6e4ae0da48f60e78f7f"
],
"custom0.sf2": [
"286b2e1fb21cc79851da01666db6c0b0e88f25e3"
],
"colecovision.rom": [
"45bedc4cbdeac66c7df59e9e599195c778d86a92"
],
"coleco.rom": [
"45bedc4cbdeac66c7df59e9e599195c778d86a92"
],
"boot.rom": [
"45bedc4cbdeac66c7df59e9e599195c778d86a92"
],
"d2fdc.zip": [
"bc39fbd5b9a8d2287ac5d0a42e639fc4d3c2f9d4",
"af56c948598291b284a528f3fce06b961dba55e3"
],
"basic11.rom": [
"9451a1a09d8f75944dbd6f91193fc360f1de80ac"
],
"basic21.bin": [
"03bbb386cf530e804363acdfc1d13e64cf28af2e"
],
"exos21.bin": [
"55315b20fecb4441a07ee4bc5dc7153f396e0a2e"
],
"EXOS21.ROM": [
"55315b20fecb4441a07ee4bc5dc7153f396e0a2e"
],
"zx48.rom": [
"5ea7c2b824672e914525d1d5c419d71b84a426a2"
],
"zxs:48.rom": [
"5ea7c2b824672e914525d1d5c419d71b84a426a2"
], ],
"apple2gs1.rom": [ "apple2gs1.rom": [
"e4fc7560b69d062cb2da5b1ffbe11cd1ca03cc37" "e4fc7560b69d062cb2da5b1ffbe11cd1ca03cc37"
@@ -93868,9 +93880,6 @@
"ROM.ROM": [ "ROM.ROM": [
"bc32bc0e8902946663998f56aea52be597d9e361" "bc32bc0e8902946663998f56aea52be597d9e361"
], ],
"gexpress.pce": [
"014881a959e045e00f4db8f52955200865d40280"
],
"FMPAC.rom": [ "FMPAC.rom": [
"9d789166e3caf28e4742fe933d962e99618c633d" "9d789166e3caf28e4742fe933d962e99618c633d"
], ],
@@ -93899,25 +93908,6 @@
"d64tano.rom": [ "d64tano.rom": [
"1983b4fb398e3dd9668d424c666c5a0b3f1e2b69" "1983b4fb398e3dd9668d424c666c5a0b3f1e2b69"
], ],
"d64_1.rom": [
"f119506eaa3b4b70b9aa0dd83761e8cbe043d042"
],
"fs-5500_disk.rom": [
"78cd7f847e77fd8cd51a647efb2725ba93f4c471"
],
"pcfxbios.bin": [
"1a77fd83e337f906aecab27a1604db064cf10074"
],
"sgb2_bios.bin": [
"93407ea10d2f30ab96a314d8eca44fe160aea734",
"f282b3aaf98f8423dab7d77f1aa0192be630f2fb"
],
"flash.bin": [
"94d44d7f9529ec1642ba3771ed3c5f756d5bc872"
],
"plus3e-3.rom": [
"65f031caa8148a5493afe42c41f4929deab26b4e"
],
"a1000kbd_fr.zip": [ "a1000kbd_fr.zip": [
"93d36de4d5d376c521a9ca99722f659e60d177f2" "93d36de4d5d376c521a9ca99722f659e60d177f2"
], ],
@@ -95179,51 +95169,21 @@
"DBPATCH.wav": [ "DBPATCH.wav": [
"e0c98d00fe3004942c4a2842f06e2702dd2bd7c7" "e0c98d00fe3004942c4a2842f06e2702dd2bd7c7"
], ],
"DMG_ROM.bin": [ "d64_1.rom": [
"1db57a1e8b6e4096f811587f9eab0c6675fd9755" "f119506eaa3b4b70b9aa0dd83761e8cbe043d042"
], ],
"amiga-os-300-a4000.rom": [ "fs-5500_disk.rom": [
"f0b4e9e29e12218c2d5bd7020e4e785297d91fd7" "78cd7f847e77fd8cd51a647efb2725ba93f4c471"
], ],
"Kickstart v3.0 rev 39.106 (1992)(Commodore)(A4000)[!].rom": [ "FONT.BMP": [
"f0b4e9e29e12218c2d5bd7020e4e785297d91fd7" "b4f14e58030ed40fff2dc312b58ea4440bdf8cc5"
], ],
"monit10.rom": [ "2608_RYM.WAV": [
"4e83a94ae5155bbea14d7331a5a8db82457bd5ae" "c65592330c9dd84011151daed52f9aec926b7e56"
],
"focal10.rom": [
"6386e58bc1bba5e76baec9e8a1ca4b99dc3c573f"
],
"disk_327.rom": [
"28eefbb63047b26e4aec104aeeca74e2f9d0276c"
],
"b11m_bos.rom": [
"7e9a30e38d7b78981999821640a68a201bb6df01"
],
"b11m_ext.rom": [
"f087af69044432a1ef2431a72ac06946e32f2dd3"
],
"bas11m_0.rom": [
"9d76f3eefd64e032c763fa1ebf9cd3d9bd22317a"
],
"bas11m_1.rom": [
"34fa37599f2f9eb607390ef2458a3c22d87f09a9"
],
"terak.rom": [
"273a9933b68a290c5aedcd6d69faa7b1d22c0344"
], ],
"BS-X.bios": [ "BS-X.bios": [
"604556b2e62860af18db5a77f2956ebc75450020" "604556b2e62860af18db5a77f2956ebc75450020"
], ],
"upd7801g.bin": [
"6e89d1227581c76441a53d605f9e324185f1da33"
],
"upd7801g.bios": [
"6e89d1227581c76441a53d605f9e324185f1da33"
],
"FdsBios.bin": [
"57fe1bdee955bb48d357e463ccbf129496930b62"
],
"N88_0.ROM": [ "N88_0.ROM": [
"d1ae642aed4f0584eeb81ff50180db694e5101d4" "d1ae642aed4f0584eeb81ff50180db694e5101d4"
], ],
@@ -95260,8 +95220,11 @@
"kanji2.rom": [ "kanji2.rom": [
"b86b932cb4ce34472e0fe0f01a4a4350e15dcb53" "b86b932cb4ce34472e0fe0f01a4a4350e15dcb53"
], ],
"arm6.program.rom": [ "atari_osb.rom": [
"388e3721b94cd074d6ba0eca8616523d2118a6c3" "db1031585968cfc6ec2ecda5c9a5a52f61444a3b"
],
"atari_os_b.rom": [
"db1031585968cfc6ec2ecda5c9a5a52f61444a3b"
], ],
"EXOS20.ROM": [ "EXOS20.ROM": [
"6033a0535136c40c47137e4d1cd9273c06d5fdff" "6033a0535136c40c47137e4d1cd9273c06d5fdff"
@@ -95281,25 +95244,53 @@
"AMSDOS_0.5.ROM": [ "AMSDOS_0.5.ROM": [
"39102c8e9cb55fcc0b9b62098780ed4a3cb6a4bb" "39102c8e9cb55fcc0b9b62098780ed4a3cb6a4bb"
], ],
"atari_osb.rom": [ "FdsBios.bin": [
"db1031585968cfc6ec2ecda5c9a5a52f61444a3b" "57fe1bdee955bb48d357e463ccbf129496930b62"
], ],
"atari_os_b.rom": [ "DMG_ROM.bin": [
"db1031585968cfc6ec2ecda5c9a5a52f61444a3b" "1db57a1e8b6e4096f811587f9eab0c6675fd9755"
], ],
"FONT.BMP": [ "dmg0_rom.bin": [
"b4f14e58030ed40fff2dc312b58ea4440bdf8cc5" "1db57a1e8b6e4096f811587f9eab0c6675fd9755"
], ],
"2608_RYM.WAV": [ "upd7801g.bin": [
"c65592330c9dd84011151daed52f9aec926b7e56" "6e89d1227581c76441a53d605f9e324185f1da33"
], ],
"cgb0_boot.bin": [ "upd7801g.bios": [
"80e3ee82416c1a74827a5459fde32f04bf51a1f6", "6e89d1227581c76441a53d605f9e324185f1da33"
"1293d68bf9643bc4f36954c1e80e38f39864528d"
], ],
"cgb_agb_boot.bin": [ "amiga-os-300-a4000.rom": [
"80e3ee82416c1a74827a5459fde32f04bf51a1f6", "f0b4e9e29e12218c2d5bd7020e4e785297d91fd7"
"1293d68bf9643bc4f36954c1e80e38f39864528d" ],
"Kickstart v3.0 rev 39.106 (1992)(Commodore)(A4000)[!].rom": [
"f0b4e9e29e12218c2d5bd7020e4e785297d91fd7"
],
"arm6.program.rom": [
"388e3721b94cd074d6ba0eca8616523d2118a6c3"
],
"monit10.rom": [
"4e83a94ae5155bbea14d7331a5a8db82457bd5ae"
],
"focal10.rom": [
"6386e58bc1bba5e76baec9e8a1ca4b99dc3c573f"
],
"disk_327.rom": [
"28eefbb63047b26e4aec104aeeca74e2f9d0276c"
],
"b11m_bos.rom": [
"7e9a30e38d7b78981999821640a68a201bb6df01"
],
"b11m_ext.rom": [
"f087af69044432a1ef2431a72ac06946e32f2dd3"
],
"bas11m_0.rom": [
"9d76f3eefd64e032c763fa1ebf9cd3d9bd22317a"
],
"bas11m_1.rom": [
"34fa37599f2f9eb607390ef2458a3c22d87f09a9"
],
"terak.rom": [
"273a9933b68a290c5aedcd6d69faa7b1d22c0344"
], ],
"dc_flash_wb.bin": [ "dc_flash_wb.bin": [
"72c65f2a11ee7b72b77b9945187b7a332632e14a" "72c65f2a11ee7b72b77b9945187b7a332632e14a"
@@ -95319,6 +95310,12 @@
"epr-21576d.bin": [ "epr-21576d.bin": [
"6d27d71aec4dfba98f66316ae74a1426d567698a" "6d27d71aec4dfba98f66316ae74a1426d567698a"
], ],
"cgb0_boot.bin": [
"1293d68bf9643bc4f36954c1e80e38f39864528d"
],
"cgb_agb_boot.bin": [
"1293d68bf9643bc4f36954c1e80e38f39864528d"
],
"nds_sd_card.bin": [ "nds_sd_card.bin": [
"3b71f43ff30f4b15b5cd85dd9e95ebc7e84eb5a3" "3b71f43ff30f4b15b5cd85dd9e95ebc7e84eb5a3"
], ],
@@ -115311,6 +115308,42 @@
"1c1a0d8c9f4c446ccd7470516b215ddca5052fb2", "1c1a0d8c9f4c446ccd7470516b215ddca5052fb2",
"80080644289ed93d71a1103992a154cc9802b2fa", "80080644289ed93d71a1103992a154cc9802b2fa",
"434bc0b4eb4827da0773ec0795aadc5162569a07", "434bc0b4eb4827da0773ec0795aadc5162569a07",
"9a6e4c88533a9eaa4d55cdc040e47443e0226eb2",
"3b8cf5ffa41b252eb67f8824f94608fa4005d6dd",
"ee58768bdfc602c9b14942ce5481e97dd24e7c83",
"2b8cb4f87580683eb4d760e4ed210813d667f0a2",
"24f67bdea115a2c847c8813a262502ee1607b7df",
"bfaac75f101c135e32e2aaf541de6b1be4c8c62d",
"a3aa751eb6bdaaf8a827ba9e03576a6f1ab0f547",
"7bf549b8be9e48ab0cdc9b0fdadd49a5131f97eb",
"4ed31ec6b0b175bb109c0eb5fd3d193da823339f",
"aa2f50a77dfb4823da96ba99309085a3c6278515",
"973e10840db683cf3faf61bd443090786b3a9f04",
"e5b2922ca137051059e4269b236d07a22c07bc84",
"5aff2d9b6efc723bc395b0f96f0adfa83cc54a49",
"32760893ce06dbe3930627755ba065cc3d8ec6ca",
"fe0254cbfc11405b79e7c86c7769bd6322b04995",
"dcc3a67732aa01c4f2ee8d1ad886444a4dbafe06",
"7ed7c55e0359737ac5e68d38cb6903f9e5d7c2b6",
"02843c4253bbd29aba535b0aa3bd9a85034ecde4",
"11f9e62cf299f72184835b7b2a70a16333fc0d88",
"891e9a547772fe0c6c19b610baf8bc4ea7fcb785",
"c5839f5cb98a7a8947065c3ed2f14f5f42e334a1",
"3b7f1493b27e212830f989f26ca76c02049f09ca",
"7ba40ffa17e500ed9fed041f3424bd81d9c907be",
"70033828182fffc7ed106e5373a8b89dda76faa5",
"e21545723fe8374e91342617604f1b3d703094f1",
"5fe04842d04a489720f0f4bb0e46948199406f49",
"3525be8887f79b5929e017b42380a79edfee542d",
"5bef3d628ce59cc02a66e6e4ae0da48f60e78f7f",
"44620f57a25f0bcac2b57ca2b0f1ebad3bf305d3",
"286b2e1fb21cc79851da01666db6c0b0e88f25e3",
"45bedc4cbdeac66c7df59e9e599195c778d86a92",
"bc39fbd5b9a8d2287ac5d0a42e639fc4d3c2f9d4",
"9451a1a09d8f75944dbd6f91193fc360f1de80ac",
"03bbb386cf530e804363acdfc1d13e64cf28af2e",
"55315b20fecb4441a07ee4bc5dc7153f396e0a2e",
"5ea7c2b824672e914525d1d5c419d71b84a426a2",
"343883a7b555646da8cee54aadd2795b6e7dd070", "343883a7b555646da8cee54aadd2795b6e7dd070",
"1a8d6f9453111b1d317bb7dae300495fbf54600c", "1a8d6f9453111b1d317bb7dae300495fbf54600c",
"b06f4a861f74270be819aa2a07db8d0563a7cc4e", "b06f4a861f74270be819aa2a07db8d0563a7cc4e",
@@ -115426,7 +115459,6 @@
"f5f60f03501908962446ee02fc27d98694dd157d", "f5f60f03501908962446ee02fc27d98694dd157d",
"328a3228c29fba244b9db2055adc1ec4f7a87e6b", "328a3228c29fba244b9db2055adc1ec4f7a87e6b",
"2b125c0545afa089b617f2558e686ea723bdc06e", "2b125c0545afa089b617f2558e686ea723bdc06e",
"2b8cb4f87580683eb4d760e4ed210813d667f0a2",
"df94c5b4d47eb3cc404d88b33a8fda237eaf4720", "df94c5b4d47eb3cc404d88b33a8fda237eaf4720",
"3bb41feb82838ab9a35601ac666de5aacfd17a58", "3bb41feb82838ab9a35601ac666de5aacfd17a58",
"faa8ea183a6d7bbe5d4e03bb1332519800d3fbc3", "faa8ea183a6d7bbe5d4e03bb1332519800d3fbc3",
@@ -115434,56 +115466,19 @@
"49d8493008fa715ca0c94d99817a5439d6f2c796", "49d8493008fa715ca0c94d99817a5439d6f2c796",
"8a22710e09ce75f39625894366cafe503ed1942d", "8a22710e09ce75f39625894366cafe503ed1942d",
"8c031bf9908fd0142fdd10a9cdd79389f8a3f2fc", "8c031bf9908fd0142fdd10a9cdd79389f8a3f2fc",
"9a6e4c88533a9eaa4d55cdc040e47443e0226eb2", "014881a959e045e00f4db8f52955200865d40280",
"3b8cf5ffa41b252eb67f8824f94608fa4005d6dd", "1a77fd83e337f906aecab27a1604db064cf10074",
"ee58768bdfc602c9b14942ce5481e97dd24e7c83", "93407ea10d2f30ab96a314d8eca44fe160aea734",
"24f67bdea115a2c847c8813a262502ee1607b7df", "94d44d7f9529ec1642ba3771ed3c5f756d5bc872",
"bfaac75f101c135e32e2aaf541de6b1be4c8c62d", "65f031caa8148a5493afe42c41f4929deab26b4e",
"a3aa751eb6bdaaf8a827ba9e03576a6f1ab0f547",
"7bf549b8be9e48ab0cdc9b0fdadd49a5131f97eb",
"4ed31ec6b0b175bb109c0eb5fd3d193da823339f",
"aa2f50a77dfb4823da96ba99309085a3c6278515",
"973e10840db683cf3faf61bd443090786b3a9f04",
"e5b2922ca137051059e4269b236d07a22c07bc84",
"5aff2d9b6efc723bc395b0f96f0adfa83cc54a49",
"32760893ce06dbe3930627755ba065cc3d8ec6ca",
"fe0254cbfc11405b79e7c86c7769bd6322b04995",
"dcc3a67732aa01c4f2ee8d1ad886444a4dbafe06",
"7ed7c55e0359737ac5e68d38cb6903f9e5d7c2b6",
"02843c4253bbd29aba535b0aa3bd9a85034ecde4",
"11f9e62cf299f72184835b7b2a70a16333fc0d88",
"891e9a547772fe0c6c19b610baf8bc4ea7fcb785",
"c5839f5cb98a7a8947065c3ed2f14f5f42e334a1",
"3b7f1493b27e212830f989f26ca76c02049f09ca",
"7ba40ffa17e500ed9fed041f3424bd81d9c907be",
"70033828182fffc7ed106e5373a8b89dda76faa5",
"e21545723fe8374e91342617604f1b3d703094f1",
"5fe04842d04a489720f0f4bb0e46948199406f49",
"3525be8887f79b5929e017b42380a79edfee542d",
"5bef3d628ce59cc02a66e6e4ae0da48f60e78f7f",
"44620f57a25f0bcac2b57ca2b0f1ebad3bf305d3",
"286b2e1fb21cc79851da01666db6c0b0e88f25e3",
"45bedc4cbdeac66c7df59e9e599195c778d86a92",
"bc39fbd5b9a8d2287ac5d0a42e639fc4d3c2f9d4",
"9451a1a09d8f75944dbd6f91193fc360f1de80ac",
"03bbb386cf530e804363acdfc1d13e64cf28af2e",
"55315b20fecb4441a07ee4bc5dc7153f396e0a2e",
"5ea7c2b824672e914525d1d5c419d71b84a426a2",
"e4fc7560b69d062cb2da5b1ffbe11cd1ca03cc37", "e4fc7560b69d062cb2da5b1ffbe11cd1ca03cc37",
"bc32bc0e8902946663998f56aea52be597d9e361", "bc32bc0e8902946663998f56aea52be597d9e361",
"014881a959e045e00f4db8f52955200865d40280",
"9d789166e3caf28e4742fe933d962e99618c633d", "9d789166e3caf28e4742fe933d962e99618c633d",
"e998f0c441f4f1800ef44e42cd1659150206cf79", "e998f0c441f4f1800ef44e42cd1659150206cf79",
"e90f80a61d94c617850c415e12ad70ac41e66bb7", "e90f80a61d94c617850c415e12ad70ac41e66bb7",
"04990aa1c3a3fc7294ec884b81deaa89832df614", "04990aa1c3a3fc7294ec884b81deaa89832df614",
"e3c8986bb1d44269c4587b04f1ca27a70b0aaa2e", "e3c8986bb1d44269c4587b04f1ca27a70b0aaa2e",
"1983b4fb398e3dd9668d424c666c5a0b3f1e2b69", "1983b4fb398e3dd9668d424c666c5a0b3f1e2b69",
"f119506eaa3b4b70b9aa0dd83761e8cbe043d042",
"78cd7f847e77fd8cd51a647efb2725ba93f4c471",
"1a77fd83e337f906aecab27a1604db064cf10074",
"93407ea10d2f30ab96a314d8eca44fe160aea734",
"94d44d7f9529ec1642ba3771ed3c5f756d5bc872",
"65f031caa8148a5493afe42c41f4929deab26b4e",
"93d36de4d5d376c521a9ca99722f659e60d177f2", "93d36de4d5d376c521a9ca99722f659e60d177f2",
"b22847ad1d8c5ee0fff41b3bd31aab6cbf8778ea", "b22847ad1d8c5ee0fff41b3bd31aab6cbf8778ea",
"e35eda0cc2c11da92c0a6c222f314d84e623b29e", "e35eda0cc2c11da92c0a6c222f314d84e623b29e",
@@ -115607,10 +115602,32 @@
"c0a04b87ad138e6754a6688ad757004467950c08", "c0a04b87ad138e6754a6688ad757004467950c08",
"35e101f63194d75e234ef843ae6af893423b7f64", "35e101f63194d75e234ef843ae6af893423b7f64",
"e0c98d00fe3004942c4a2842f06e2702dd2bd7c7", "e0c98d00fe3004942c4a2842f06e2702dd2bd7c7",
"f119506eaa3b4b70b9aa0dd83761e8cbe043d042",
"78cd7f847e77fd8cd51a647efb2725ba93f4c471",
"b4f14e58030ed40fff2dc312b58ea4440bdf8cc5",
"c65592330c9dd84011151daed52f9aec926b7e56",
"604556b2e62860af18db5a77f2956ebc75450020",
"d1ae642aed4f0584eeb81ff50180db694e5101d4",
"4ae4d37409ff99411a623da9f6a44192170a854e",
"e94278682ef9e9bbb82201f72c50382748dcea2a",
"af452aed79b072c4d17985830b7c5dca64d4b412",
"063609dd518c124a4fc9ba35d1bae35771666a34",
"8063185d4dd653dd75a68855148c9ee15b71164c",
"b86b932cb4ce34472e0fe0f01a4a4350e15dcb53",
"db1031585968cfc6ec2ecda5c9a5a52f61444a3b",
"6033a0535136c40c47137e4d1cd9273c06d5fdff",
"cb43ab3676b93c279f1ed8ffcb0d4dcd4b34e631",
"f2572ee83d09fc08f4de4a62f101c8bb301a9505",
"abf119cf947ea32defd08b29a8a25d75f6bd4987",
"072c6160d4e7d406f5d8f5b1b66066c797d35561",
"39102c8e9cb55fcc0b9b62098780ed4a3cb6a4bb",
"57fe1bdee955bb48d357e463ccbf129496930b62",
"1db57a1e8b6e4096f811587f9eab0c6675fd9755", "1db57a1e8b6e4096f811587f9eab0c6675fd9755",
"369e6eb5e0c975eaa52a4a3f6ee07b2a3c3c16de", "369e6eb5e0c975eaa52a4a3f6ee07b2a3c3c16de",
"f282b3aaf98f8423dab7d77f1aa0192be630f2fb", "f282b3aaf98f8423dab7d77f1aa0192be630f2fb",
"6e89d1227581c76441a53d605f9e324185f1da33",
"f0b4e9e29e12218c2d5bd7020e4e785297d91fd7", "f0b4e9e29e12218c2d5bd7020e4e785297d91fd7",
"388e3721b94cd074d6ba0eca8616523d2118a6c3",
"4e83a94ae5155bbea14d7331a5a8db82457bd5ae", "4e83a94ae5155bbea14d7331a5a8db82457bd5ae",
"6386e58bc1bba5e76baec9e8a1ca4b99dc3c573f", "6386e58bc1bba5e76baec9e8a1ca4b99dc3c573f",
"28eefbb63047b26e4aec104aeeca74e2f9d0276c", "28eefbb63047b26e4aec104aeeca74e2f9d0276c",
@@ -115619,27 +115636,6 @@
"9d76f3eefd64e032c763fa1ebf9cd3d9bd22317a", "9d76f3eefd64e032c763fa1ebf9cd3d9bd22317a",
"34fa37599f2f9eb607390ef2458a3c22d87f09a9", "34fa37599f2f9eb607390ef2458a3c22d87f09a9",
"273a9933b68a290c5aedcd6d69faa7b1d22c0344", "273a9933b68a290c5aedcd6d69faa7b1d22c0344",
"604556b2e62860af18db5a77f2956ebc75450020",
"6e89d1227581c76441a53d605f9e324185f1da33",
"57fe1bdee955bb48d357e463ccbf129496930b62",
"d1ae642aed4f0584eeb81ff50180db694e5101d4",
"4ae4d37409ff99411a623da9f6a44192170a854e",
"e94278682ef9e9bbb82201f72c50382748dcea2a",
"af452aed79b072c4d17985830b7c5dca64d4b412",
"063609dd518c124a4fc9ba35d1bae35771666a34",
"8063185d4dd653dd75a68855148c9ee15b71164c",
"b86b932cb4ce34472e0fe0f01a4a4350e15dcb53",
"388e3721b94cd074d6ba0eca8616523d2118a6c3",
"6033a0535136c40c47137e4d1cd9273c06d5fdff",
"cb43ab3676b93c279f1ed8ffcb0d4dcd4b34e631",
"f2572ee83d09fc08f4de4a62f101c8bb301a9505",
"abf119cf947ea32defd08b29a8a25d75f6bd4987",
"072c6160d4e7d406f5d8f5b1b66066c797d35561",
"39102c8e9cb55fcc0b9b62098780ed4a3cb6a4bb",
"db1031585968cfc6ec2ecda5c9a5a52f61444a3b",
"b4f14e58030ed40fff2dc312b58ea4440bdf8cc5",
"c65592330c9dd84011151daed52f9aec926b7e56",
"80e3ee82416c1a74827a5459fde32f04bf51a1f6",
"72c65f2a11ee7b72b77b9945187b7a332632e14a", "72c65f2a11ee7b72b77b9945187b7a332632e14a",
"6d27d71aec4dfba98f66316ae74a1426d567698a", "6d27d71aec4dfba98f66316ae74a1426d567698a",
"1293d68bf9643bc4f36954c1e80e38f39864528d", "1293d68bf9643bc4f36954c1e80e38f39864528d",
+5 -7
View File
@@ -1,9 +1,7 @@
emulator: PD777 emulator: PD777
type: libretro type: libretro
core_classification: community_fork source: "https://github.com/W88DodPECuThLOl/PD777"
source: "https://github.com/mittonk/PD777" profiled_date: "2026-03-18"
upstream: "https://github.com/W88DodPECuThLOl/PD777"
profiled_date: "2026-03-24"
core_version: "v1.0.0" core_version: "v1.0.0"
display_name: "Epoch - Cassette Vision (PD777)" display_name: "Epoch - Cassette Vision (PD777)"
cores: cores:
@@ -12,12 +10,12 @@ systems:
- epochcv - epochcv
notes: | notes: |
PD777 is an Epoch Cassette Vision emulator (NEC uPD777C CPU), by PD777 is an Epoch Cassette Vision emulator (NEC uPD777C CPU) with a libretro
W88DodPECuThLOl. Libretro port by Ken Mitton (mittonk). interface, by W88DodPECuThLOl.
No BIOS or firmware files required. The .info file declares firmware_count = 0. No BIOS or firmware files required. The .info file declares firmware_count = 0.
Game loading in source/libretro/libretro.cpp:retro_load_game() (line 404-532). Game loading in source/libretro/libretro.cpp:retro_load_game() (line 386-474).
The core loads a code ROM file (.bin777) directly from the content path, then The core loads a code ROM file (.bin777) directly from the content path, then
attempts to load a pattern ROM file (.ptn777) by replacing the extension. attempts to load a pattern ROM file (.ptn777) by replacing the extension.
+55 -26
View File
@@ -1,34 +1,63 @@
emulator: play # Play! emulator BIOS profile
# Generated from source analysis of https://github.com/jpd002/Play-
# Commit analyzed: HEAD as of 2026-03-17
emulator: "Play!"
type: libretro type: libretro
core_classification: official_port core_name: play_libretro
source: "https://github.com/jpd002/Play-" source: "https://github.com/jpd002/Play-"
upstream: "https://github.com/jpd002/Play-" profiled_date: "2026-03-18"
profiled_date: "2026-03-24"
core_version: "Git" core_version: "Git"
display_name: "Sony - PlayStation 2 (Play!)" display_name: "Sony - PlayStation 2 (Play!)"
cores: systems: [sony-playstation-2]
- play
systems:
- sony-playstation-2
# Full HLE PS2 emulator by Jean-Philip Desjardins. bios_directory: null
# All PS2 subsystems are reimplemented in C++: EE kernel (PS2OS.cpp), bios_detection: "hle"
# IOP BIOS modules (IopBios.cpp), GS, SPU2, VU units. bios_selection: "not_applicable"
# The libretro core never calls RETRO_ENVIRONMENT_GET_SYSTEM_DIRECTORY.
#
# LoadBIOS() exists in Ee_SubSystem.cpp:832 but is commented out at line 232.
# IOP modules (SIO2MAN, PADMAN, MCMAN, MCSERV, CDVDMAN, CDVDFSV, etc.)
# are all HLE-replaced via m_hleModules in IopBios.cpp:279-290.
# _IOP_EMULATE_MODULES=1 is unconditionally defined in CMakeLists.txt:24.
#
# source_ref: Source/ee/Ee_SubSystem.cpp:232 (LoadBIOS commented out)
# source_ref: Source/iop/IopBios.cpp:279-290 (HLE module table)
# source_ref: Source/PS2VM.cpp:483-537 (ResetVM — no BIOS loading)
# source_ref: Source/ui_libretro/main_libretro.cpp:546-568 (retro_init — no file I/O)
# source_ref: README.md:4 ("Using an external BIOS file is not necessary or possible.")
# source_ref: play_libretro.info (firmware_count absent = 0)
notes: | validation:
Full HLE emulator. No BIOS or firmware files required. firmware_count=0 confirmed by source. method: "none"
note: >
Play! is a full HLE (High-Level Emulation) PS2 emulator. It does not load or
require any real PS2 BIOS dump. The LoadBIOS() function in Ee_SubSystem.cpp
(which would read ./vfs/rom0/scph10000.bin) is commented out in PS2VM.cpp:ResetVM().
files: [] files: []
# No BIOS files required.
# IOP modules (rom0:SIO2MAN, rom0:PADMAN, rom0:MCMAN, rom0:MCSERV, etc.)
# are all replaced by HLE implementations in Source/iop/IopBios.cpp.
# The EE kernel/OS is reimplemented in Source/ee/PS2OS.cpp.
virtual_filesystem:
# Play! uses a virtual filesystem for memory cards and disc access,
# but these are runtime directories, not BIOS files.
mc0: {default: "vfs/mc0", purpose: "Memory card slot 0 (save data)"}
mc1: {default: "vfs/mc1", purpose: "Memory card slot 1 (save data)"}
host: {default: "vfs/host", purpose: "Host filesystem access"}
cdrom0: {default: null, purpose: "Disc image (set per-game)"}
memory_layout:
EE_RAM: {size: "32 MB (0x02000000)"}
EE_BIOS: {size: "4 MB (0x00400000)", note: "Allocated but unused, HLE replaces real BIOS"}
IOP_RAM: {size: "2 MB (0x00200000)"}
SPU_RAM: {size: "2 MB (0x00200000)"}
notes: |
Play! does not require any PS2 BIOS files. Unlike PCSX2, it uses High-Level
Emulation to reimplement the PS2 kernel, IOP BIOS modules, and system services
entirely in C++.
Key HLE components:
- EE kernel: Source/ee/PS2OS.cpp (handles BootFromCDROM, BootFromFile, syscalls)
- IOP BIOS: Source/iop/IopBios.cpp (HLE modules for rom0:PADMAN, MCMAN, MCSERV, etc.)
- No rom0/rom1/erom files are loaded at runtime
The legacy LoadBIOS() function in Source/ee/Ee_SubSystem.cpp references
"./vfs/rom0/scph10000.bin" but this call is commented out in PS2VM::ResetVM()
and has no effect on emulation.
mc2_ings.ico is not referenced anywhere in Play! source code. That file is
specific to PCSX2's memory card icon handling, not Play!.
The libretro core supports: .elf, .iso, .cso, .isz, .bin disc images.
Extensions handled in main_libretro.cpp:retro_get_system_info().
+5 -6
View File
@@ -1,15 +1,14 @@
emulator: PocketCDG emulator: PocketCDG
type: utility type: utility
core_classification: pure_libretro
source: "https://github.com/libretro/libretro-pocketcdg" source: "https://github.com/libretro/libretro-pocketcdg"
upstream: "https://github.com/redbug26/libretro-pocketcdg" profiled_date: "2026-03-18"
profiled_date: "2026-03-24"
core_version: "Git" core_version: "Git"
display_name: "PocketCDG" display_name: "PocketCDG"
cores: [pocketcdg] cores: [pocketcdg]
systems: [] systems: []
files: [] files: []
notes: > notes: >
CD+G (CD+Graphics) karaoke player. Renders subcode graphics from .cdg CD+G (CD+Graphics) karaoke player for libretro. Renders the subcode
files synchronized with MP3 audio. Font and MP3 decoder (libmad) graphics channel from .cdg files synchronized with audio.
embedded in the binary. Loads .cdg content files directly.
No BIOS, firmware, or system directory files required.
+2 -4
View File
@@ -1,9 +1,8 @@
emulator: Potator emulator: Potator
type: libretro type: libretro
core_classification: community_fork core_classification: community_fork
source: "https://github.com/libretro/potator" source: "https://github.com/libretro/potern"
upstream: "https://github.com/alekmaul/potator" profiled_date: "2026-03-21"
profiled_date: "2026-03-24"
core_version: "1.0.5" core_version: "1.0.5"
display_name: "Watara - Supervision (Potator)" display_name: "Watara - Supervision (Potator)"
cores: cores:
@@ -13,6 +12,5 @@ systems:
notes: | notes: |
Watara Supervision emulator. No BIOS required. Watara Supervision emulator. No BIOS required.
The Supervision has no BIOS ROM; games execute directly from cartridge.
files: [] files: []
+131 -34
View File
@@ -1,44 +1,141 @@
# PPSSPP emulator firmware profile
# Generated from source analysis of https://github.com/hrydgard/ppsspp
# Commit analyzed: HEAD as of 2026-03-17
emulator: PPSSPP emulator: PPSSPP
type: standalone + libretro type: standalone
core_classification: official_port source: "https://github.com/hrydgard/ppsspp"
source: "https://github.com/libretro/ppsspp" logo: "https://raw.githubusercontent.com/hrydgard/ppsspp/master/icons/icon-512.svg"
upstream: "https://github.com/hrydgard/ppsspp" profiled_date: "2026-03-18"
profiled_date: "2026-03-24"
core_version: "Git" core_version: "Git"
display_name: "Sony - PlayStation Portable (PPSSPP)" display_name: "Sony - PlayStation Portable (PPSSPP)"
cores:
- ppsspp
systems: [sony-psp] systems: [sony-psp]
pack_structure: firmware_required: false
libretro: "PPSSPP" firmware_detection: "none"
bios_directory: "N/A"
bios_selection: "N/A"
note: >
PPSSPP is a full HLE emulator - it does not require PSP firmware or BIOS files.
All PSP kernel modules (flash0:/kd/*.prx) are reimplemented in C++.
The emulator ships its own flash0/ directory with replacement fonts and assets.
data_directories: default_firmware_version: 660 # PSP_DEFAULT_FIRMWARE in ConfigValues.h
- ref: ppsspp-assets source_ref_firmware: "Core/ConfigValues.h:40"
destination: ""
source_ref: "libretro/libretro.cpp:537,549" # Bundled assets (shipped with PPSSPP, not from Sony)
bundled_assets:
ppge_atlas:
files:
- {name: "ppge_atlas.zim", purpose: "UI texture atlas for dialogs, buttons, icons"}
- {name: "ppge_atlas.meta", purpose: "Atlas metadata (glyph positions, UV coords)"}
source_ref: "Core/Util/PPGeDraw.cpp:256-266"
note: >
PPGE (PlayStation Portable Graphics Engine) is PPSSPP's reimplementation of the
PSP system dialog renderer. The atlas contains button icons, dialog backgrounds,
and a basic font for system dialogs (save/load, network, etc).
Without ppge_atlas.zim, system dialogs render without graphics.
flash0_fonts:
path: "assets/flash0/font/"
source_ref: "Core/HLE/sceFont.cpp:88-106"
note: >
Replacement PGF font files shipped with PPSSPP. These are not the original Sony
fonts but open-source replacements that satisfy the sceFont API. Located in the
assets/flash0/font/ directory, mounted as flash0:/font/ at runtime.
files:
# Japanese
- {name: "jpn0.pgf", type: "FTT-NewRodin Pro DB", language: "Japanese", size: "standard"}
# Chinese
- {name: "zh_gb.pgf", type: "FTT-NewRodin Pro DB", language: "Chinese GB", note: "Also loaded from disc0: if present"}
# Korean
- {name: "kr0.pgf", type: "AsiaNHH(512Johab)", language: "Korean", size: "standard"}
# Latin - Standard size (0x288 height)
- {name: "ltn0.pgf", type: "FTT-NewRodin Pro Latin", style: "regular"}
- {name: "ltn1.pgf", type: "FTT-Matisse Pro Latin", style: "regular"}
- {name: "ltn2.pgf", type: "FTT-NewRodin Pro Latin", style: "italic"}
- {name: "ltn3.pgf", type: "FTT-Matisse Pro Latin", style: "italic"}
- {name: "ltn4.pgf", type: "FTT-NewRodin Pro Latin", style: "bold"}
- {name: "ltn5.pgf", type: "FTT-Matisse Pro Latin", style: "bold"}
- {name: "ltn6.pgf", type: "FTT-NewRodin Pro Latin", style: "bold_italic"}
- {name: "ltn7.pgf", type: "FTT-Matisse Pro Latin", style: "bold_italic"}
# Latin - Small size (0x1c0 height)
- {name: "ltn8.pgf", type: "FTT-NewRodin Pro Latin", style: "regular", size: "small"}
- {name: "ltn9.pgf", type: "FTT-Matisse Pro Latin", style: "regular", size: "small"}
- {name: "ltn10.pgf", type: "FTT-NewRodin Pro Latin", style: "italic", size: "small"}
- {name: "ltn11.pgf", type: "FTT-Matisse Pro Latin", style: "italic", size: "small"}
- {name: "ltn12.pgf", type: "FTT-NewRodin Pro Latin", style: "bold", size: "small"}
- {name: "ltn13.pgf", type: "FTT-Matisse Pro Latin", style: "bold", size: "small"}
- {name: "ltn14.pgf", type: "FTT-NewRodin Pro Latin", style: "bold_italic", size: "small"}
- {name: "ltn15.pgf", type: "FTT-Matisse Pro Latin", style: "bold_italic", size: "small"}
# HLE kernel modules (reimplemented, not loaded from firmware)
hle_modules:
source_ref: "Core/HLE/sceKernelModule.cpp:100-113"
note: >
When a PSP game tries to load these flash0:/kd/*.prx modules, PPSSPP intercepts
the load call and activates its built-in HLE implementation instead. No actual
PRX files are loaded from disk.
flash0_kd:
- {prx: "audiocodec.prx", hle: "sceAudiocodec_Driver"}
- {prx: "audiocodec_260.prx", hle: "sceAudiocodec_Driver"}
- {prx: "libatrac3plus.prx", hle: "sceATRAC3plus_Library"}
- {prx: "ifhandle.prx", hle: "sceNet_Service"}
- {prx: "pspnet.prx", hle: "sceNet_Library"}
- {prx: "pspnet_inet.prx", hle: "sceNetInet_Library"}
- {prx: "pspnet_apctl.prx", hle: "sceNetApctl_Library"}
- {prx: "pspnet_resolver.prx", hle: "sceNetResolver_Library"}
- {prx: "pspnet_adhoc.prx", hle: "sceNetAdhoc_Library"}
- {prx: "pspnet_adhocctl.prx", hle: "sceNetAdhocctl_Library"}
- {prx: "pspnet_adhoc_matching.prx", hle: "sceNetAdhocMatching_Library"}
- {prx: "pspnet_adhoc_download.prx", hle: "sceNetAdhocDownload_Library"}
- {prx: "pspnet_adhoc_discover.prx", hle: "sceNetAdhocDiscover_Library"}
# Flash0 filesystem layout
flash0_layout:
source_ref: "Core/HLE/sceIo.cpp:87,654"
note: >
flash0: is the PSP system partition. PPSSPP maps it to g_Config.flash0Directory
which is typically assets/flash0/ bundled with the emulator. The filesystem is
mounted read-only with FLASH flag.
directories:
font: "PGF/BWFON font files (mounted as flash0:/font/)"
kd: "Kernel drivers/modules (intercepted by HLE, not actually loaded)"
vsh: "Visual Shell resources"
dic: "Dictionary files"
data: "System data files"
# Font override path
font_override:
path: "ms0:/PSP/flash0/font/"
source_ref: "Core/HLE/sceFont.cpp:881"
note: >
Users can override bundled fonts by placing real PSP PGF files at
ms0:/PSP/flash0/font/ (inside the memory stick directory). PPSSPP
checks this path before falling back to the bundled flash0:/font/.
# Registry defaults relevant to fonts
registry_defaults:
font_path: "flash0:/font"
default_jpn_font: "jpn0.pgf"
default_latin_font: "ltn0.pgf"
source_ref: "Core/HLE/sceReg.cpp:81-281"
notes: | notes: |
Full HLE emulator. No Sony firmware or BIOS required. PPSSPP does NOT require any firmware files, BIOS, or system software from Sony.
All PSP kernel modules (flash0:/kd/*.prx) are reimplemented in C++. It is a complete HLE (High Level Emulation) implementation of the PSP operating system.
Libretro core loads assets from system/PPSSPP/ via VFS.
Assets include replacement PGF fonts (18 files in flash0/font/),
game compatibility database (compat.ini), language mapping (langregion.ini),
and post-processing shaders (shaders/).
Libretro fork (2020-03-18) behind upstream.
PSP_DEFAULT_FIRMWARE = 660 (Core/ConfigValues.h:40).
files: All PSP kernel modules (flash0:/kd/*.prx) are reimplemented in C++ within PPSSPP.
- name: "ppge_atlas.zim" When games attempt to load these modules via sceKernelLoadModule, PPSSPP intercepts
path: "PPSSPP/ppge_atlas.zim" the call and activates its built-in HLE implementation.
description: "PPGe dialog texture atlas for save/load dialogs, on-screen keyboard, system UI"
required: false
source_ref: "Core/Util/PPGeDraw.cpp:227-228"
note: "PanicAlert if missing. System dialogs render without graphics but core continues running."
- name: "ppge_atlas.meta" The bundled flash0/font/*.pgf files are open-source replacements for the original
path: "PPSSPP/ppge_atlas.meta" Sony PSP fonts. They satisfy the sceFont API but are not identical to real PSP fonts.
description: "PPGe atlas metadata (glyph positions, UV coords)" For pixel-perfect font rendering, users can place original PGF files in the
required: false ms0:/PSP/flash0/font/ override directory.
source_ref: "Core/Util/PPGeDraw.cpp:235-237"
note: "Loaded after ppge_atlas.zim. Without it, dialog UI has no glyph layout." The ppge_atlas.zim/meta files provide PPSSPP's system dialog rendering (save/load
dialogs, on-screen keyboard, etc). These are PPSSPP-specific assets, not Sony firmware.
PPSSPP also exists as a libretro core (ppsspp_libretro), which uses the same HLE
approach and bundled assets.
+3 -6
View File
@@ -1,12 +1,9 @@
emulator: PrBoom emulator: PrBoom
type: libretro type: libretro
core_classification: game_engine
source: "https://github.com/libretro/libretro-prboom" source: "https://github.com/libretro/libretro-prboom"
upstream: "http://prboom.sourceforge.net/" profiled_date: "2026-03-18"
profiled_date: "2026-03-24"
core_version: "v2.5.0" core_version: "v2.5.0"
display_name: "Doom (PrBoom)" display_name: "Doom (PrBoom)"
cores: [prboom]
systems: [doom] systems: [doom]
notes: | notes: |
@@ -25,7 +22,7 @@ notes: |
(d_main.c:1073-1074), so the file is technically optional but expected (d_main.c:1073-1074), so the file is technically optional but expected
for correct rendering of menus, HUD digits, and extended features. for correct rendering of menus, HUD digits, and extended features.
File search order (libretro.c I_FindFile, line 1742): File search order (libretro.c I_FindFile, line 1743):
1. WAD directory (same folder as the loaded game WAD) 1. WAD directory (same folder as the loaded game WAD)
2. system/prboom/ subdirectory 2. system/prboom/ subdirectory
3. system/ directory directly 3. system/ directory directly
@@ -50,5 +47,5 @@ files:
md5: "72ae1b47820fcc93cc0df9c428d0face" md5: "72ae1b47820fcc93cc0df9c428d0face"
sha1: "5f4aed208301449c2e9514edfd325fe9dead76fa" sha1: "5f4aed208301449c2e9514edfd325fe9dead76fa"
crc32: "a5751b99" crc32: "a5751b99"
source_ref: "d_main.c:1069-1078 (PACKAGE .wad load), libretro.c:1742-1784 (I_FindFile search), config.h:46 (PACKAGE=prboom)" source_ref: "d_main.c:1069-1078 (PACKAGE .wad load), libretro.c:1743-1780 (I_FindFile search), config.h:46 (PACKAGE=prboom)"
notes: "Searched in system/prboom/ then system/. Falls back to internal defaults if missing, but menus and HUD may render incorrectly without it." notes: "Searched in system/prboom/ then system/. Falls back to internal defaults if missing, but menus and HUD may render incorrectly without it."
+33 -21
View File
@@ -1,9 +1,7 @@
emulator: ProSystem emulator: ProSystem
type: libretro type: libretro
core_classification: community_fork
source: "https://github.com/libretro/prosystem-libretro" source: "https://github.com/libretro/prosystem-libretro"
upstream: "https://github.com/gstanton/ProSystem1_3" profiled_date: "2026-03-18"
profiled_date: "2026-03-24"
core_version: "1.3e" core_version: "1.3e"
display_name: "Atari - 7800 (ProSystem)" display_name: "Atari - 7800 (ProSystem)"
cores: cores:
@@ -12,37 +10,51 @@ systems:
- atari-7800 - atari-7800
notes: | notes: |
Atari 7800 emulator by Greg Stanton, ported to libretro by community ProSystem is an Atari 7800 emulator ported to libretro.
contributors. The upstream is a Windows-only application with a single
user-configured BIOS path. The libretro port adds automatic region-based
BIOS selection: PAL carts get (E), everything else gets (U).
Region is read from cartridge header byte 57 (core/Cartridge.c:214) or BIOS loading is in core/libretro.c:579-588. Region is read from the
overridden by the internal database (core/Database.c:1739-1757). cartridge header byte 57 (core/Cartridge.c:214) or overridden by the
internal database (core/Database.c). PAL carts get the (E) BIOS,
everything else gets (U).
Both BIOS files are optional. The core runs without them but some titles Both BIOS files are optional. The core runs games without them, but
have compatibility issues (startup encryption check). bios_Store() maps some titles may have compatibility issues without the real BIOS
the BIOS into ROM at address (65536 - bios_size). (startup encryption check, etc). bios_Store() maps the BIOS data
into the top of the 64K address space (65536 - bios_size).
No core option controls BIOS loading. If the file exists in the system No core option controls BIOS loading -- if the file exists in the
directory, it is loaded automatically. No hash or size validation is system directory, it is loaded automatically.
performed on the BIOS file.
The .info declares firmware_count=1 (U only), missing the PAL BIOS.
files: files:
- name: "7800 BIOS (U).rom" - name: "7800 BIOS (U).rom"
system: atari-7800 system: atari-7800
required: false required: false
hle_fallback: true hle_fallback: true
size: 4096 size: 4096 # 4 KB
description: "NTSC/US BIOS, loaded when cartridge_region != REGION_PAL" note: "NTSC/US Atari 7800 BIOS. Loaded when cartridge_region != REGION_PAL."
source_ref: "core/libretro.c:585" source_ref: "core/libretro.c:585"
- name: "7800 BIOS (E).rom" - name: "7800 BIOS (E).rom"
system: atari-7800 system: atari-7800
required: false required: false
hle_fallback: true hle_fallback: true
size: 16384 size: 16384 # 16 KB (PAL BIOS is larger than NTSC)
description: "PAL/EU BIOS, loaded when cartridge_region == REGION_PAL" note: "PAL/EU Atari 7800 BIOS. Loaded when cartridge_region == REGION_PAL."
source_ref: "core/libretro.c:583" source_ref: "core/libretro.c:583"
platform_details:
bios_mapping:
target: "top of 64K memory (65536 - bios_size)"
source_ref: "core/Bios.c:88"
notes: |
bios_Store() writes the BIOS into ROM at address (65536 - bios_size).
The BIOS size is read dynamically from the file, not hardcoded.
bios_enabled flag is set only if bios_Load() succeeds (file found
and read without error).
region_detection:
source_ref: "core/Cartridge.c:214, core/Database.c"
notes: |
Region byte is at offset 57 in the A7800 cartridge header.
The internal database (Database.c) can override the header value.
REGION_NTSC = 0, REGION_PAL = 1 (defined in Region.h).
+4 -28
View File
@@ -1,11 +1,9 @@
emulator: PUAE (P-UAE) emulator: PUAE (P-UAE)
type: libretro type: libretro
core_classification: community_fork cores: [puae, puae2021]
cores: [puae]
source: "https://github.com/libretro/libretro-uae" source: "https://github.com/libretro/libretro-uae"
upstream: "https://github.com/GnoStiC/PUAE" profiled_date: "2026-03-18"
profiled_date: "2026-03-24" core_version: "5.3.0"
core_version: "5.3.1"
display_name: "Commodore - Amiga (PUAE)" display_name: "Commodore - Amiga (PUAE)"
systems: systems:
- commodore-amiga - commodore-amiga
@@ -43,8 +41,7 @@ notes: |
WHDLoad support copies kick33180.A500, kick34005.A500, kick40063.A600, WHDLoad support copies kick33180.A500, kick34005.A500, kick40063.A600,
kick40068.A1200 into saves/WHDLoad/Devs/Kickstarts/ for use by WHDLoad kick40068.A1200 into saves/WHDLoad/Devs/Kickstarts/ for use by WHDLoad
slave files. Also copies rom.key (Amiga Forever decryption) and WHDLoad.key slave files.
(license) from the system directory.
ROM search order (libretro-core.c retro_config_kickstart): ROM search order (libretro-core.c retro_config_kickstart):
1. Exact filename in system directory 1. Exact filename in system directory
@@ -235,27 +232,6 @@ files:
- "CD32 Extended-ROM rev 40.60 (1993)(Commodore)(CD32).rom" - "CD32 Extended-ROM rev 40.60 (1993)(Commodore)(CD32).rom"
source_ref: "libretro/libretro-core.h:241-244" source_ref: "libretro/libretro-core.h:241-244"
# -------------------------------------------------------
# WHDLoad support files
# -------------------------------------------------------
- name: "rom.key"
system: commodore-amiga
required: false
note: "Amiga Forever ROM decryption key. Copied to saves/WHDLoad/Devs/Kickstarts/ for WHDLoad."
source_ref: "libretro/libretro-core.c:5969-5980"
- name: "WHDLoad.key"
system: commodore-amiga
required: false
note: "WHDLoad license key. Copied to saves/WHDLoad/L/ for registered WHDLoad use."
source_ref: "libretro/libretro-core.c:5985-5998"
- name: "WHDLoad.prefs"
system: commodore-amiga
required: false
note: "WHDLoad preferences. Copied to saves/WHDLoad/S/ when present."
source_ref: "libretro/libretro-core.c:6002-6025"
model_kickstart_map: model_kickstart_map:
A500: {kickstart: "kick34005.A500", ext: null} A500: {kickstart: "kick34005.A500", ext: null}
A500OG: {kickstart: "kick34005.A500", ext: null} A500OG: {kickstart: "kick34005.A500", ext: null}
-295
View File
@@ -1,295 +0,0 @@
emulator: PUAE 2021
type: libretro
core_classification: frozen_snapshot
cores: [puae2021]
source: "https://github.com/libretro/libretro-uae/tree/2.6.1"
upstream: "https://github.com/GnoStiC/PUAE"
profiled_date: "2026-03-24"
core_version: "2.6.1"
display_name: "Commodore - Amiga (PUAE 2021)"
systems:
- commodore-amiga
- commodore-amiga-cd32
- commodore-cdtv
notes: |
Frozen snapshot of PUAE at WinUAE 2.6.1 era. Less accurate than current PUAE
(5.x), intended for weaker devices. BIOS handling is identical to the current
version.
PUAE is a port of UAE (Unix Amiga Emulator) to libretro, continuing E-UAE.
Emulates A500, 500+, 600, 1200, 2000, 4000, CD32, and CDTV. Kickstart ROMs
are loaded from the RetroArch system directory.
AROS (open-source Kickstart replacement) is available as a built-in fallback
when no Kickstart ROM is found. Compatibility is limited compared to real ROMs.
The core scans the system directory for files starting with "kick", "amiga-os",
or "KS ROM". Each filename is matched against a table of known naming
conventions: standard (kick*.A*), Amiga Forever (amiga-os-*.rom), and
TOSEC (Kickstart v*.rom). The first valid match is used.
Default kickstart per model (automatic selection):
A500, A500OG, A2000OG, CDTV -> kick34005.A500 (KS 1.3)
A500+ -> kick37175.A500 (KS 2.04)
A600 -> kick40063.A600 (KS 3.1)
A1200, A1200OG -> kick40068.A1200 (KS 3.1)
A2000 -> kick40063.A600 (KS 3.1)
A4030, A4040 -> kick40068.A4000 (KS 3.1)
CD32, CD32FR -> kick40060.CD32 (KS 3.1)
CDTV (ext) -> kick34005.CDTV
CD32 (ext) -> kick40060.CD32.ext
Extended ROM handling: CD32 and CDTV require an extended ROM in addition
to the main kickstart. If the main ROM filesize is <= 512 KB, the extended
ROM is loaded separately. Combined ROMs (main + ext in one file) skip the
extended ROM search.
WHDLoad support copies kick33180.A500, kick34005.A500, kick40063.A600,
kick40068.A1200 into saves/WHDLoad/Devs/Kickstarts/ for use by WHDLoad
slave files. Also copies rom.key (Amiga Forever decryption) and WHDLoad.key
(license) from the system directory.
ROM search order (libretro-core.c retro_config_kickstart):
1. Exact filename in system directory
2. Amiga Forever naming (amiga-os-*.rom)
3. TOSEC modified naming (with [!] suffix)
4. TOSEC naming (without [!] suffix)
capsimg.so/capsimg.dll is an optional shared library for IPF floppy image
support (SPS/CAPS format). Not a BIOS file, loaded dynamically at runtime.
Source: libretro/libretro-core.h:140-245, libretro/libretro-core.c:5534-5700,
libretro/libretro-core.c:5786-5945
files:
# -------------------------------------------------------
# Amiga 1000
# -------------------------------------------------------
- name: "kick31034.A1000"
system: commodore-amiga
required: false
hle_fallback: true
size: 262144 # 256 KB
note: "Kickstart 1.1 rev 31.34 (1985) NTSC. A1000 only."
aliases:
- "amiga-os-110-ntsc.rom"
- "Kickstart v1.1 rev 31.34 (1985)(Commodore)(A1000)(NTSC).rom"
source_ref: "libretro/libretro-core.h:170-174"
- name: "kick32034.A1000"
system: commodore-amiga
required: false
hle_fallback: true
size: 262144 # 256 KB
note: "Kickstart 1.1 rev 32.34 (1986) PAL. A1000 only."
aliases:
- "amiga-os-110-pal.rom"
- "Kickstart v1.1 rev 32.34 (1986)(Commodore)(A1000)(PAL).rom"
source_ref: "libretro/libretro-core.h:176-179"
# -------------------------------------------------------
# Amiga 500 / 2000
# -------------------------------------------------------
- name: "kick33180.A500"
system: commodore-amiga
required: false
hle_fallback: true
size: 262144 # 256 KB
note: "Kickstart 1.2 rev 33.180 (1986). A500/A2000. Also used by WHDLoad."
aliases:
- "amiga-os-120.rom"
- "Kickstart v1.2 rev 33.180 (1986)(Commodore)(A500-A2000)[!].rom"
- "Kickstart v1.2 rev 33.180 (1986)(Commodore)(A500-A1000-A2000).rom"
source_ref: "libretro/libretro-core.h:182-185"
- name: "kick34005.A500"
system: commodore-amiga
required: true
size: 262144 # 256 KB
note: "Kickstart 1.3 rev 34.5 (1987). Default for A500/A2000OG/CDTV models. Also used by WHDLoad."
aliases:
- "amiga-os-130.rom"
- "Kickstart v1.3 rev 34.5 (1987)(Commodore)(A500-A1000-A2000-CDTV)[!].rom"
- "Kickstart v1.3 rev 34.5 (1987)(Commodore)(A500-A1000-A2000-CDTV).rom"
source_ref: "libretro/libretro-core.h:187-190"
- name: "kick37175.A500"
system: commodore-amiga
required: false
hle_fallback: true
size: 262144 # 256 KB
note: "Kickstart 2.04 rev 37.175 (1991). Default for A500+ model."
aliases:
- "amiga-os-204.rom"
- "Kickstart v2.04 rev 37.175 (1991)(Commodore)(A500+)[!].rom"
- "Kickstart v2.04 rev 37.175 (1991)(Commodore)(A500+).rom"
source_ref: "libretro/libretro-core.h:192-195"
# -------------------------------------------------------
# Amiga 600
# -------------------------------------------------------
- name: "kick37350.A600"
system: commodore-amiga
required: false
hle_fallback: true
size: 262144 # 256 KB
note: "Kickstart 2.05 rev 37.350 (1992). A600HD."
aliases:
- "amiga-os-205-a600.rom"
- "Kickstart v2.05 rev 37.350 (1992)(Commodore)(A600HD)[!].rom"
source_ref: "libretro/libretro-core.h:198-201"
- name: "kick40063.A600"
system: commodore-amiga
required: false
hle_fallback: true
size: 524288 # 512 KB
note: "Kickstart 3.1 rev 40.63 (1993). Default for A600/A2000 models. Also used by WHDLoad."
aliases:
- "amiga-os-310-a600.rom"
- "Kickstart v3.1 rev 40.63 (1993)(Commodore)(A500-A600-A2000)[!].rom"
- "Kickstart v3.1 rev 40.63 (1993)(Commodore)(A500-A600-A2000).rom"
source_ref: "libretro/libretro-core.h:203-206"
# -------------------------------------------------------
# Amiga 1200
# -------------------------------------------------------
- name: "kick39106.A1200"
system: commodore-amiga
required: false
hle_fallback: true
size: 524288 # 512 KB
note: "Kickstart 3.0 rev 39.106 (1992). A1200."
aliases:
- "amiga-os-300-a1200.rom"
- "Kickstart v3.0 rev 39.106 (1992)(Commodore)(A1200)[!].rom"
source_ref: "libretro/libretro-core.h:209-212"
- name: "kick40068.A1200"
system: commodore-amiga
required: true
size: 524288 # 512 KB
note: "Kickstart 3.1 rev 40.68 (1993). Default for A1200/A1200OG models. Also used by WHDLoad."
aliases:
- "amiga-os-310-a1200.rom"
- "Kickstart v3.1 rev 40.68 (1993)(Commodore)(A1200)[!].rom"
- "Kickstart v3.1 rev 40.68 (1993)(Commodore)(A1200).rom"
source_ref: "libretro/libretro-core.h:214-217"
# -------------------------------------------------------
# Amiga 4000
# -------------------------------------------------------
- name: "kick39106.A4000"
system: commodore-amiga
required: false
hle_fallback: true
size: 524288 # 512 KB
note: "Kickstart 3.0 rev 39.106 (1992). A4000."
aliases:
- "amiga-os-300-a4000.rom"
- "Kickstart v3.0 rev 39.106 (1992)(Commodore)(A4000)[!].rom"
source_ref: "libretro/libretro-core.h:220-223"
- name: "kick40068.A4000"
system: commodore-amiga
required: false
hle_fallback: true
size: 524288 # 512 KB
note: "Kickstart 3.1 rev 40.68 (1993). Default for A4030/A4040 models."
aliases:
- "amiga-os-310-a4000.rom"
- "Kickstart v3.1 rev 40.68 (1993)(Commodore)(A4000).rom"
source_ref: "libretro/libretro-core.h:225-228"
# -------------------------------------------------------
# Commodore CDTV
# -------------------------------------------------------
- name: "kick34005.CDTV"
system: commodore-cdtv
required: true
size: 262144 # 256 KB
note: "CDTV Extended ROM v1.0 (1991). Required as extended ROM for CDTV model. Main kickstart is kick34005.A500."
aliases:
- "amiga-os-130-cdtv-ext.rom"
- "CDTV Extended-ROM v1.0 (1991)(Commodore)(CDTV)[!].rom"
- "CDTV Extended-ROM v1.0 (1992)(Commodore)(CDTV).rom"
source_ref: "libretro/libretro-core.h:231-234"
# -------------------------------------------------------
# Amiga CD32
# -------------------------------------------------------
- name: "kick40060.CD32"
system: commodore-amiga-cd32
required: true
size: 524288 # 512 KB
note: "CD32 Kickstart 3.1 rev 40.60 (1993). Main ROM for CD32 and CD32FR models."
aliases:
- "amiga-os-310-cd32.rom"
- "Kickstart v3.1 rev 40.60 (1993)(Commodore)(CD32).rom"
source_ref: "libretro/libretro-core.h:236-239"
- name: "kick40060.CD32.ext"
system: commodore-amiga-cd32
required: true
size: 524288 # 512 KB
note: "CD32 Extended ROM rev 40.60 (1993). Required when main ROM is <= 512 KB (not combined)."
aliases:
- "amiga-os-310-cd32-ext.rom"
- "CD32 Extended-ROM rev 40.60 (1993)(Commodore)(CD32).rom"
source_ref: "libretro/libretro-core.h:241-244"
# -------------------------------------------------------
# WHDLoad support files
# -------------------------------------------------------
- name: "rom.key"
system: commodore-amiga
required: false
note: "Amiga Forever ROM decryption key. Copied to saves/WHDLoad/Devs/Kickstarts/ for WHDLoad."
source_ref: "libretro/libretro-core.c:5887-5898"
- name: "WHDLoad.key"
system: commodore-amiga
required: false
note: "WHDLoad license key. Copied to saves/WHDLoad/L/ for registered WHDLoad use."
source_ref: "libretro/libretro-core.c:5903-5916"
- name: "WHDLoad.prefs"
system: commodore-amiga
required: false
note: "WHDLoad preferences. Copied to saves/WHDLoad/S/ when present."
source_ref: "libretro/libretro-core.c:5920-5943"
model_kickstart_map:
A500: {kickstart: "kick34005.A500", ext: null}
A500OG: {kickstart: "kick34005.A500", ext: null}
A500PLUS: {kickstart: "kick37175.A500", ext: null}
A600: {kickstart: "kick40063.A600", ext: null}
A1200: {kickstart: "kick40068.A1200", ext: null}
A1200OG: {kickstart: "kick40068.A1200", ext: null}
A2000: {kickstart: "kick40063.A600", ext: null}
A2000OG: {kickstart: "kick34005.A500", ext: null}
A4030: {kickstart: "kick40068.A4000", ext: null}
A4040: {kickstart: "kick40068.A4000", ext: null}
CDTV: {kickstart: "kick34005.A500", ext: "kick34005.CDTV"}
CD32: {kickstart: "kick40060.CD32", ext: "kick40060.CD32.ext"}
CD32FR: {kickstart: "kick40060.CD32", ext: "kick40060.CD32.ext"}
whdload_kickstarts:
- "kick33180.A500" # KS 1.2, 256 KB
- "kick34005.A500" # KS 1.3, 256 KB
- "kick40063.A600" # KS 3.1, 512 KB
- "kick40068.A1200" # KS 3.1, 512 KB
platform_details:
rom_sizes:
ROM_SIZE_128: 131072 # 128 KB
ROM_SIZE_256: 262144 # 256 KB
ROM_SIZE_512: 524288 # 512 KB
aros_fallback: true
naming_conventions:
standard: "kick{rev}.{model}"
amiga_forever: "amiga-os-{version}.rom"
tosec: "Kickstart v{version} rev {rev} ({year})(Commodore)({model}).rom"
scan_prefixes: ["kick", "amiga-os", "KS ROM"]
source_ref: "libretro/libretro-core.c:2617-2656"
+9 -10
View File
@@ -1,21 +1,20 @@
emulator: PuzzleScript emulator: PuzzleScript
type: game type: game
core_classification: game_engine source: "https://github.com/libretro/puzzlescript-libretro"
source: "https://github.com/nwhitehead/pzretro" profiled_date: "2026-03-18"
upstream: "https://github.com/increpare/PuzzleScript" core_version: ""
profiled_date: "2026-03-25" display_name: "PuzzleScript (pzretro)"
core_version: "0.2.1"
display_name: "PuzzleScript (pzretro)" display_name: "PuzzleScript (pzretro)"
cores: cores:
- puzzlescript - puzzlescript
systems: [] systems: []
notes: | notes: |
Libretro port of PuzzleScript, an open-source HTML5 puzzle game engine Libretro port of PuzzleScript, an open-source HTML5 puzzle game
by Stephen Lavelle (increpare). Runs .pz and .pzp puzzle definition files. engine by Stephen Lavelle (increpare). Runs .puz puzzle definition
Also supports PuzzleScript Plus (Auroriax fork) for .pzp files. files within RetroArch.
The PuzzleScript and PuzzleScript Plus JavaScript engines are compiled into No BIOS or system files required. The puzzle engine and renderer
the binary via QuickJS. No external files required. are self-contained.
files: [] files: []
+1 -3
View File
@@ -1,9 +1,7 @@
emulator: px68k emulator: px68k
type: libretro type: libretro
core_classification: community_fork
source: "https://github.com/libretro/px68k-libretro" source: "https://github.com/libretro/px68k-libretro"
upstream: "https://github.com/hissorii/px68k" profiled_date: "2026-03-18"
profiled_date: "2026-03-25"
core_version: "0.15+" core_version: "0.15+"
display_name: "Sharp - X68000 (PX68k)" display_name: "Sharp - X68000 (PX68k)"
cores: cores:
+118 -232
View File
@@ -1,27 +1,19 @@
emulator: QEMU emulator: QEMU
type: libretro type: libretro
core_classification: community_fork
source: "https://github.com/io12/qemu-libretro" source: "https://github.com/io12/qemu-libretro"
upstream: "https://github.com/qemu/qemu" profiled_date: "2026-03-18"
profiled_date: "2026-03-25"
core_version: "0.1.0" core_version: "0.1.0"
display_name: "QEMU" display_name: "QEMU"
cores: [qemu] systems: [ibm-pc, x86, x86-64, ppc, sparc, sparc64, arm, aarch64, mips, riscv, s390x, m68k, alpha, hppa]
systems: [ibm-pc, x86, x86-64, ppc, ppc64, sparc, sparc64, arm, aarch64, mips, mips64, riscv32, riscv64, s390x, m68k, alpha, hppa]
# QEMU (Quick Emulator) libretro core, based on QEMU 9.0.50. # QEMU (Quick Emulator) libretro core, based on QEMU 9.0.50.
# Builds 17 targets: aarch64, alpha, arm, i386, m68k, mips(el), mips64(el), # Supports x86_64, i386, PPC, Sparc, ARM, AArch64, MIPS, RISC-V, S390x, M68K, Alpha, HPPA.
# ppc, ppc64, riscv32, riscv64, s390x, sparc, sparc64, x86_64. # Opens .iso, .img, .qcow, .qcow2 files or custom .qemu_cmd_line for any architecture.
# Opens .iso, .img, .qcow, .qcow2 or custom .qemu_cmd_line for any architecture.
# Default architecture is x86_64 when loading .iso/.img/.qcow directly. # Default architecture is x86_64 when loading .iso/.img/.qcow directly.
# #
# All BIOS/firmware files are loaded from {retroarch_system_dir}/qemu/ # All BIOS/firmware files are loaded from {retroarch_system_dir}/qemu/
# via qemu_add_data_dir(system_dir + "/qemu") in ui/libretro.c:659-660. # via qemu_add_data_dir(system_dir + "/qemu") in ui/libretro.c:659-660.
# QEMU resolves firmware by name through its data directory search path. # QEMU resolves firmware by name through its data directory search path.
# No hash/size validation is performed on any firmware file.
#
# .info declares firmware_count=0. All firmware is loaded by QEMU's internal
# machine/device code, not declared in the .info.
files: files:
# ======================================================== # ========================================================
@@ -66,7 +58,9 @@ files:
md5: "387c48aef9497c6c2b914b1e6b9bc7aa" md5: "387c48aef9497c6c2b914b1e6b9bc7aa"
size: 16384 size: 16384
required: false required: false
note: "Minimal x86 firmware for fast Linux kernel booting." note: >
Minimal x86 firmware for fast Linux kernel booting.
Alternative to SeaBIOS for Linux-only workloads.
source_ref: "pc-bios/meson.build:32" source_ref: "pc-bios/meson.build:32"
# ======================================================== # ========================================================
@@ -89,7 +83,9 @@ files:
md5: "fcd3d3c0b07a9096693d69425cd940f6" md5: "fcd3d3c0b07a9096693d69425cd940f6"
size: 38912 size: 38912
required: false required: false
note: "Cirrus Logic GD5446 VGA BIOS." note: >
Cirrus Logic GD5446 VGA BIOS. Used by the cirrus-vga PCI
device and cirrus-vga-isa ISA device.
source_ref: "hw/display/cirrus_vga.c:3001, hw/display/cirrus_vga_isa.c:67" source_ref: "hw/display/cirrus_vga.c:3001, hw/display/cirrus_vga_isa.c:67"
- name: "VGA BIOS stdvga" - name: "VGA BIOS stdvga"
@@ -98,7 +94,9 @@ files:
md5: "8117c3fd986fbbe327badfe38e77db1d" md5: "8117c3fd986fbbe327badfe38e77db1d"
size: 39424 size: 39424
required: false required: false
note: "Standard VGA PCI BIOS (Bochs VBE extensions)." note: >
Standard VGA PCI BIOS (Bochs VBE extensions). Used by the
VGA PCI device, the most common display adapter for x86.
source_ref: "hw/display/vga-pci.c:387" source_ref: "hw/display/vga-pci.c:387"
- name: "VGA BIOS bochs-display" - name: "VGA BIOS bochs-display"
@@ -107,7 +105,7 @@ files:
md5: "83e39bd3e056291ee50d2b5d937bab3e" md5: "83e39bd3e056291ee50d2b5d937bab3e"
size: 28672 size: 28672
required: false required: false
note: "Bochs display device VGA BIOS." note: "Bochs display device VGA BIOS. Simpler non-VGA display adapter."
source_ref: "hw/display/bochs-display.c:365" source_ref: "hw/display/bochs-display.c:365"
- name: "VGA BIOS ramfb" - name: "VGA BIOS ramfb"
@@ -116,7 +114,7 @@ files:
md5: "c55512e313c4cb08ec5a36198fdfef33" md5: "c55512e313c4cb08ec5a36198fdfef33"
size: 28672 size: 28672
required: false required: false
note: "RAM framebuffer VGA BIOS." note: "RAM framebuffer VGA BIOS for simple display output."
source_ref: "hw/display/ramfb.c:150" source_ref: "hw/display/ramfb.c:150"
- name: "VGA BIOS ATI" - name: "VGA BIOS ATI"
@@ -156,7 +154,7 @@ files:
source_ref: "hw/display/vmware_vga.c:1349" source_ref: "hw/display/vmware_vga.c:1349"
# ======================================================== # ========================================================
# x86 OPTION ROMs # x86 OPTION ROMs (loaded on demand)
# ======================================================== # ========================================================
- name: "KVM VAPIC" - name: "KVM VAPIC"
path: "qemu/kvmvapic.bin" path: "qemu/kvmvapic.bin"
@@ -164,7 +162,9 @@ files:
md5: "b8cec9572e408a3259914f9aba8664cb" md5: "b8cec9572e408a3259914f9aba8664cb"
size: 9216 size: 9216
required: false required: false
note: "KVM virtual APIC option ROM for APIC acceleration on x86." note: >
KVM virtual APIC option ROM. Loaded as option ROM for
APIC acceleration on x86.
source_ref: "hw/i386/vapic.c:733" source_ref: "hw/i386/vapic.c:733"
- name: "Linux boot ROM" - name: "Linux boot ROM"
@@ -200,7 +200,7 @@ files:
md5: "e942cc4f612050c7331d33a34b0d5192" md5: "e942cc4f612050c7331d33a34b0d5192"
size: 1024 size: 1024
required: false required: false
note: "DMA-capable Multiboot option ROM." note: "DMA-capable option ROM for Multiboot kernel loading."
source_ref: "hw/i386/multiboot.c:406" source_ref: "hw/i386/multiboot.c:406"
- name: "PVH boot ROM" - name: "PVH boot ROM"
@@ -213,7 +213,7 @@ files:
source_ref: "hw/i386/x86-common.c:735" source_ref: "hw/i386/x86-common.c:735"
# ======================================================== # ========================================================
# PXE NETWORK BOOT ROMs (iPXE legacy BIOS) # PXE NETWORK BOOT ROMs (iPXE)
# ======================================================== # ========================================================
- name: "PXE e1000" - name: "PXE e1000"
path: "qemu/pxe-e1000.rom" path: "qemu/pxe-e1000.rom"
@@ -222,7 +222,7 @@ files:
size: 67072 size: 67072
required: false required: false
note: "iPXE PXE boot ROM for Intel e1000 NIC (8086:100e)." note: "iPXE PXE boot ROM for Intel e1000 NIC (8086:100e)."
source_ref: "pc-bios/meson.build:47" source_ref: "pc-bios/README"
- name: "PXE eepro100" - name: "PXE eepro100"
path: "qemu/pxe-eepro100.rom" path: "qemu/pxe-eepro100.rom"
@@ -230,8 +230,8 @@ files:
md5: "2f8279177fdc2ce5abc47d9f1e303db1" md5: "2f8279177fdc2ce5abc47d9f1e303db1"
size: 61440 size: 61440
required: false required: false
note: "iPXE PXE boot ROM for Intel eepro100 NIC (8086:1209). Device default romfile." note: "iPXE PXE boot ROM for Intel eepro100 NIC (8086:1209)."
source_ref: "hw/net/eepro100.c:2077" source_ref: "pc-bios/README"
- name: "PXE ne2k_pci" - name: "PXE ne2k_pci"
path: "qemu/pxe-ne2k_pci.rom" path: "qemu/pxe-ne2k_pci.rom"
@@ -240,7 +240,7 @@ files:
size: 61440 size: 61440
required: false required: false
note: "iPXE PXE boot ROM for NE2000 PCI NIC (1050:0940)." note: "iPXE PXE boot ROM for NE2000 PCI NIC (1050:0940)."
source_ref: "pc-bios/meson.build:49" source_ref: "pc-bios/README"
- name: "PXE pcnet" - name: "PXE pcnet"
path: "qemu/pxe-pcnet.rom" path: "qemu/pxe-pcnet.rom"
@@ -249,7 +249,7 @@ files:
size: 61440 size: 61440
required: false required: false
note: "iPXE PXE boot ROM for AMD PCnet NIC (1022:2000)." note: "iPXE PXE boot ROM for AMD PCnet NIC (1022:2000)."
source_ref: "pc-bios/meson.build:50" source_ref: "pc-bios/README"
- name: "PXE rtl8139" - name: "PXE rtl8139"
path: "qemu/pxe-rtl8139.rom" path: "qemu/pxe-rtl8139.rom"
@@ -258,7 +258,7 @@ files:
size: 61440 size: 61440
required: false required: false
note: "iPXE PXE boot ROM for Realtek RTL8139 NIC (10ec:8139)." note: "iPXE PXE boot ROM for Realtek RTL8139 NIC (10ec:8139)."
source_ref: "pc-bios/meson.build:51" source_ref: "pc-bios/README"
- name: "PXE virtio" - name: "PXE virtio"
path: "qemu/pxe-virtio.rom" path: "qemu/pxe-virtio.rom"
@@ -267,7 +267,7 @@ files:
size: 60416 size: 60416
required: false required: false
note: "iPXE PXE boot ROM for VirtIO NIC (1af4:1000)." note: "iPXE PXE boot ROM for VirtIO NIC (1af4:1000)."
source_ref: "pc-bios/meson.build:52" source_ref: "pc-bios/README"
# ======================================================== # ========================================================
# EFI NETWORK BOOT ROMs (iPXE UEFI) # EFI NETWORK BOOT ROMs (iPXE UEFI)
@@ -278,7 +278,7 @@ files:
md5: "d8330b99643e31b51e7710fa26c7e859" md5: "d8330b99643e31b51e7710fa26c7e859"
size: 159232 size: 159232
required: false required: false
note: "iPXE EFI boot ROM for Intel e1000 NIC. Device default romfile." note: "iPXE EFI boot ROM for Intel e1000 NIC."
source_ref: "hw/net/e1000.c:1708" source_ref: "hw/net/e1000.c:1708"
- name: "EFI e1000e" - name: "EFI e1000e"
@@ -287,7 +287,7 @@ files:
md5: "a55bf3f4988d4a736c71a1300636cd69" md5: "a55bf3f4988d4a736c71a1300636cd69"
size: 159232 size: 159232
required: false required: false
note: "iPXE EFI boot ROM for Intel e1000e NIC. Device default romfile." note: "iPXE EFI boot ROM for Intel e1000e NIC."
source_ref: "hw/net/e1000e.c:689" source_ref: "hw/net/e1000e.c:689"
- name: "EFI eepro100" - name: "EFI eepro100"
@@ -297,7 +297,7 @@ files:
size: 159232 size: 159232
required: false required: false
note: "iPXE EFI boot ROM for Intel eepro100 NIC." note: "iPXE EFI boot ROM for Intel eepro100 NIC."
source_ref: "pc-bios/meson.build:54" source_ref: "hw/net/eepro100.c:2077"
- name: "EFI ne2k_pci" - name: "EFI ne2k_pci"
path: "qemu/efi-ne2k_pci.rom" path: "qemu/efi-ne2k_pci.rom"
@@ -305,7 +305,7 @@ files:
md5: "10b66275b3644af301c64a3c545c3daf" md5: "10b66275b3644af301c64a3c545c3daf"
size: 157696 size: 157696
required: false required: false
note: "iPXE EFI boot ROM for NE2000 PCI NIC. Device default romfile." note: "iPXE EFI boot ROM for NE2000 PCI NIC."
source_ref: "hw/net/ne2000-pci.c:111" source_ref: "hw/net/ne2000-pci.c:111"
- name: "EFI pcnet" - name: "EFI pcnet"
@@ -314,7 +314,7 @@ files:
md5: "374696f4fffa83c9cf18272212c21d83" md5: "374696f4fffa83c9cf18272212c21d83"
size: 157696 size: 157696
required: false required: false
note: "iPXE EFI boot ROM for AMD PCnet NIC. Device default romfile." note: "iPXE EFI boot ROM for AMD PCnet NIC."
source_ref: "hw/net/pcnet-pci.c:267" source_ref: "hw/net/pcnet-pci.c:267"
- name: "EFI rtl8139" - name: "EFI rtl8139"
@@ -323,7 +323,7 @@ files:
md5: "f81dbbd7001a8db631f2a548b7d08c4e" md5: "f81dbbd7001a8db631f2a548b7d08c4e"
size: 160768 size: 160768
required: false required: false
note: "iPXE EFI boot ROM for Realtek RTL8139 NIC. Device default romfile." note: "iPXE EFI boot ROM for Realtek RTL8139 NIC."
source_ref: "hw/net/rtl8139.c:3423" source_ref: "hw/net/rtl8139.c:3423"
- name: "EFI virtio" - name: "EFI virtio"
@@ -332,8 +332,8 @@ files:
md5: "d3887f04c23035cae3f0e1075deea459" md5: "d3887f04c23035cae3f0e1075deea459"
size: 160768 size: 160768
required: false required: false
note: "iPXE EFI boot ROM for VirtIO NIC. Device default romfile." note: "iPXE EFI boot ROM for VirtIO NIC."
source_ref: "hw/virtio/virtio-net-pci.c:73" source_ref: "pc-bios/meson.build:58"
- name: "EFI vmxnet3" - name: "EFI vmxnet3"
path: "qemu/efi-vmxnet3.rom" path: "qemu/efi-vmxnet3.rom"
@@ -341,132 +341,57 @@ files:
md5: "ea1ba222dbd5aa356ea1f29393ae55e1" md5: "ea1ba222dbd5aa356ea1f29393ae55e1"
size: 156672 size: 156672
required: false required: false
note: "iPXE EFI boot ROM for VMware vmxnet3 NIC. Device default romfile." note: "iPXE EFI boot ROM for VMware vmxnet3 NIC."
source_ref: "hw/net/vmxnet3.c:2508" source_ref: "hw/net/vmxnet3.c:2508"
# ========================================================
# EDK2 UEFI FIRMWARE
# ========================================================
- name: "EDK2 x86_64 UEFI"
path: "qemu/edk2-x86_64-code.fd"
sha1: "eac1a94b8e0d7c53fd5df001c36794ec34c7c724"
size: 3653632
required: false
note: "TianoCore UEFI firmware for x86_64. Built from edk2-stable202302."
source_ref: "pc-bios/meson.build:12"
- name: "EDK2 x86_64 Secure Boot UEFI"
path: "qemu/edk2-x86_64-secure-code.fd"
sha1: "617abe2746696bb4a309d72cecb446dc76a2a61e"
size: 3653632
required: false
note: "TianoCore UEFI firmware for x86_64 with Secure Boot support."
source_ref: "pc-bios/meson.build:13"
- name: "EDK2 i386 UEFI"
path: "qemu/edk2-i386-code.fd"
sha1: "45b8faebdfaaf19d16e3a7c5f60d69214685071c"
size: 3653632
required: false
note: "TianoCore UEFI firmware for i386."
source_ref: "pc-bios/meson.build:9"
- name: "EDK2 i386 Secure Boot UEFI"
path: "qemu/edk2-i386-secure-code.fd"
sha1: "6982abec8ef2ed7c8293163d5a0bd69a01a2126f"
size: 3653632
required: false
note: "TianoCore UEFI firmware for i386 with Secure Boot support."
source_ref: "pc-bios/meson.build:10"
- name: "EDK2 i386 UEFI vars template"
path: "qemu/edk2-i386-vars.fd"
sha1: "b62e676c9317a32aaa9ee1d76268d8c55663bd6e"
size: 540672
required: false
note: "UEFI variable store template for i386/x86_64 EDK2 firmware."
source_ref: "pc-bios/meson.build:11"
- name: "EDK2 AArch64 UEFI"
path: "qemu/edk2-aarch64-code.fd"
sha1: "514edbce58bfa877170673c1799351a7dab3b6df"
size: 67108864
required: false
note: "TianoCore UEFI firmware for AArch64 (ARM 64-bit)."
source_ref: "pc-bios/meson.build:4"
- name: "EDK2 ARM UEFI"
path: "qemu/edk2-arm-code.fd"
sha1: "c20f01c28b59b388abb9d0febeec45d801a632f0"
size: 67108864
required: false
note: "TianoCore UEFI firmware for ARM (32-bit)."
source_ref: "pc-bios/meson.build:5"
- name: "EDK2 ARM UEFI vars template"
path: "qemu/edk2-arm-vars.fd"
sha1: "b051167e0e57bd13d77ed92ef7b474872f44ec6d"
size: 67108864
required: false
note: "UEFI variable store template for ARM/AArch64 EDK2 firmware."
source_ref: "pc-bios/meson.build:6"
- name: "EDK2 RISC-V UEFI"
path: "qemu/edk2-riscv-code.fd"
sha1: "2c8633d881ece0c4794d740138a318f7e9af480c"
size: 33554432
required: false
note: "TianoCore UEFI firmware for RISC-V 64-bit."
source_ref: "pc-bios/meson.build:7"
- name: "EDK2 RISC-V UEFI vars template"
path: "qemu/edk2-riscv-vars.fd"
sha1: "c4e6cce4247ba8f32f528c1c69f49228f616677f"
size: 33554432
required: false
note: "UEFI variable store template for RISC-V EDK2 firmware."
source_ref: "pc-bios/meson.build:8"
# ======================================================== # ========================================================
# POWERPC FIRMWARE # POWERPC FIRMWARE
# ======================================================== # ========================================================
- name: "OpenBIOS PowerPC" - name: "OpenBIOS PowerPC"
path: "qemu/openbios-ppc" path: "qemu/openbios-ppc"
sha1: "0ef5051dcb318c0bc45d1908f8318d6eece8686a" sha1: "0ef5051dcb318c0bc45d1908f8318d6eece8686a"
md5: ""
size: 677196 size: 677196
required: false required: false
note: > note: >
OpenBIOS (IEEE 1275 Open Firmware) for PowerPC emulation. OpenBIOS (IEEE 1275 Open Firmware) for PowerPC emulation.
Default for -M mac99, -M g3beige and other PPC machines. Required for -M mac99, -M g3beige and other PPC machines.
source_ref: "hw/ppc/mac_oldworld.c:60, hw/ppc/mac_newworld.c:86" source_ref: "pc-bios/README"
- name: "SLOF (Slimline Open Firmware)" - name: "SLOF (Slimline Open Firmware)"
path: "qemu/slof.bin" path: "qemu/slof.bin"
sha1: "a03a94acfe555804d66cc6c74760ae1375a71a64" sha1: "a03a94acfe555804d66cc6c74760ae1375a71a64"
md5: ""
size: 995000 size: 995000
required: false required: false
note: "IBM SLOF firmware for pSeries (POWER) machine type. Built from qemu-slof-20230918." note: >
source_ref: "hw/ppc/spapr.c:106" IBM SLOF firmware for pSeries (POWER) machine type.
Built from qemu-slof-20230918 tag.
source_ref: "pc-bios/README"
- name: "skiboot" - name: "skiboot"
path: "qemu/skiboot.lid" path: "qemu/skiboot.lid"
sha1: "8052069aa9714c23be05b4e62fb245a3d572cb0f" sha1: "8052069aa9714c23be05b4e62fb245a3d572cb0f"
md5: ""
size: 2527328 size: 2527328
required: false required: false
note: "OPAL firmware for OpenPOWER PowerNV (non-virtualized) machine type." note: >
source_ref: "hw/ppc/pnv.c:63" OPAL firmware for OpenPOWER PowerNV (non-virtualized) machine type.
source_ref: "pc-bios/README"
- name: "VOF (Virtual Open Firmware)" - name: "VOF (Virtual Open Firmware)"
path: "qemu/vof.bin" path: "qemu/vof.bin"
sha1: "fc737b34a390f5752cb7e35b33d71f4f438ab607" sha1: "fc737b34a390f5752cb7e35b33d71f4f438ab607"
md5: ""
size: 3456 size: 3456
required: false required: false
note: "Minimal Open Firmware shim for -machine pseries,x-vof=on. Also default for Pegasos II." note: "Minimal Open Firmware shim for -machine pseries,x-vof=on."
source_ref: "hw/ppc/spapr.c:107, hw/ppc/pegasos2.c:43" source_ref: "pc-bios/README"
- name: "VOF NVRAM" - name: "VOF NVRAM"
path: "qemu/vof-nvram.bin" path: "qemu/vof-nvram.bin"
sha1: "5d1184609b87f78635f0575467a1c3f440900ff0" sha1: "5d1184609b87f78635f0575467a1c3f440900ff0"
md5: ""
size: 16384 size: 16384
required: false required: false
note: "NVRAM template for VOF (Virtual Open Firmware)." note: "NVRAM template for VOF (Virtual Open Firmware)."
@@ -475,14 +400,18 @@ files:
- name: "U-Boot e500" - name: "U-Boot e500"
path: "qemu/u-boot.e500" path: "qemu/u-boot.e500"
sha1: "9ea03f249f856cdcb4399cc1f5a5031729379911" sha1: "9ea03f249f856cdcb4399cc1f5a5031729379911"
md5: ""
size: 421720 size: 421720
required: false required: false
note: "U-Boot for PowerPC e500 (qemu-ppce500 target). Built from upstream denx u-boot, commit 2072e72." note: >
source_ref: "hw/ppc/e500.c:1184" U-Boot for PowerPC e500 (qemu-ppce500 target).
Built from upstream denx u-boot, commit 2072e72.
source_ref: "pc-bios/README"
- name: "U-Boot SAM460" - name: "U-Boot SAM460"
path: "qemu/u-boot-sam460-20100605.bin" path: "qemu/u-boot-sam460-20100605.bin"
sha1: "0399a79ac0cf77f0da70af9baec7548a3b368f0a" sha1: "0399a79ac0cf77f0da70af9baec7548a3b368f0a"
md5: ""
size: 524288 size: 524288
required: false required: false
note: "U-Boot for Sam460ex (AmigaOne) PowerPC board." note: "U-Boot for Sam460ex (AmigaOne) PowerPC board."
@@ -491,10 +420,11 @@ files:
- name: "QEMU VGA Mac driver" - name: "QEMU VGA Mac driver"
path: "qemu/qemu_vga.ndrv" path: "qemu/qemu_vga.ndrv"
sha1: "638c6262a6eb579ec3d1c9292566ac94c942dc15" sha1: "638c6262a6eb579ec3d1c9292566ac94c942dc15"
md5: ""
size: 18752 size: 18752
required: false required: false
note: "QemuMacDrivers VGA driver for PPC MacOS guests." note: "QemuMacDrivers VGA driver for PPC MacOS guests."
source_ref: "hw/ppc/mac_oldworld.c:58, hw/ppc/mac_newworld.c:84" source_ref: "pc-bios/README"
# ======================================================== # ========================================================
# SPARC FIRMWARE # SPARC FIRMWARE
@@ -502,41 +432,38 @@ files:
- name: "OpenBIOS Sparc32" - name: "OpenBIOS Sparc32"
path: "qemu/openbios-sparc32" path: "qemu/openbios-sparc32"
sha1: "5a4f2124c8f093f8aee99fbcebcf5d17d789ff26" sha1: "5a4f2124c8f093f8aee99fbcebcf5d17d789ff26"
md5: ""
size: 382080 size: 382080
required: false required: false
note: "OpenBIOS for Sparc32 emulation (sun4m)." note: >
source_ref: "hw/sparc/sun4m.c:79" OpenBIOS for Sparc32 emulation. Includes QEMU,tcx.bin
and QEMU,cgthree.bin display drivers.
source_ref: "pc-bios/README"
- name: "OpenBIOS Sparc64" - name: "OpenBIOS Sparc64"
path: "qemu/openbios-sparc64" path: "qemu/openbios-sparc64"
sha1: "c6e215fe460629d35688ab8e51faf6f765827cd6" sha1: "c6e215fe460629d35688ab8e51faf6f765827cd6"
md5: ""
size: 1593408 size: 1593408
required: false required: false
note: "OpenBIOS for Sparc64 (UltraSPARC) emulation (sun4u)." note: "OpenBIOS for Sparc64 (UltraSPARC) emulation."
source_ref: "hw/sparc64/sun4u.c:67" source_ref: "pc-bios/README"
- name: "QEMU TCX display" - name: "QEMU TCX display"
path: "qemu/QEMU,tcx.bin" path: "qemu/QEMU,tcx.bin"
sha1: "5f1792a73ee47d78b2160191ecb2c92f353f93ad" sha1: ""
size: 1402 md5: ""
required: false required: false
note: "TCX framebuffer FCode driver for Sparc32 OpenBIOS." note: "TCX framebuffer FCode driver for Sparc32 OpenBIOS."
source_ref: "hw/display/tcx.c:38,827" source_ref: "pc-bios/meson.build:45"
- name: "QEMU cgthree display" - name: "QEMU cgthree display"
path: "qemu/QEMU,cgthree.bin" path: "qemu/QEMU,cgthree.bin"
sha1: "619b86fb02faf8f682474be3f0653b58015008ba" sha1: ""
size: 850 md5: ""
required: false required: false
note: "CG3 framebuffer FCode driver for Sparc32 OpenBIOS." note: "CG3 framebuffer FCode driver for Sparc32 OpenBIOS."
source_ref: "hw/display/cg3.c:44,303" source_ref: "pc-bios/meson.build:46"
- name: "U-Boot LEON3"
path: "qemu/u-boot.bin"
sha1: ""
required: false
note: "U-Boot for LEON3 SPARC board. Not shipped with QEMU, user-supplied."
source_ref: "hw/sparc/leon3.c:53"
# ======================================================== # ========================================================
# ALPHA FIRMWARE # ALPHA FIRMWARE
@@ -544,10 +471,11 @@ files:
- name: "Alpha PALcode" - name: "Alpha PALcode"
path: "qemu/palcode-clipper" path: "qemu/palcode-clipper"
sha1: "47b0870aaa45a7aa0d48847fd905908fb06f3e9f" sha1: "47b0870aaa45a7aa0d48847fd905908fb06f3e9f"
md5: ""
size: 153728 size: 153728
required: false required: false
note: "PALcode firmware for Alpha (Clipper/DP264) machine emulation." note: "PALcode firmware for Alpha (Clipper/DP264) machine emulation."
source_ref: "hw/alpha/dp264.c:139" source_ref: "pc-bios/README"
# ======================================================== # ========================================================
# RISC-V FIRMWARE # RISC-V FIRMWARE
@@ -555,18 +483,24 @@ files:
- name: "OpenSBI RISC-V 32" - name: "OpenSBI RISC-V 32"
path: "qemu/opensbi-riscv32-generic-fw_dynamic.bin" path: "qemu/opensbi-riscv32-generic-fw_dynamic.bin"
sha1: "7a23dfdeef3d78ffc89d86e89fc06a36f1e4386f" sha1: "7a23dfdeef3d78ffc89d86e89fc06a36f1e4386f"
md5: ""
size: 268312 size: 268312
required: false required: false
note: "OpenSBI (Supervisor Binary Interface) firmware for RISC-V 32-bit." note: >
source_ref: "hw/riscv/boot.c:92" OpenSBI (Supervisor Binary Interface) firmware for RISC-V 32-bit.
Required for riscv32-softmmu machine types.
source_ref: "pc-bios/README"
- name: "OpenSBI RISC-V 64" - name: "OpenSBI RISC-V 64"
path: "qemu/opensbi-riscv64-generic-fw_dynamic.bin" path: "qemu/opensbi-riscv64-generic-fw_dynamic.bin"
sha1: "6883bfd1991c0ef0d67b0967e7dcbd60420dd480" sha1: "6883bfd1991c0ef0d67b0967e7dcbd60420dd480"
md5: ""
size: 272504 size: 272504
required: false required: false
note: "OpenSBI firmware for RISC-V 64-bit." note: >
source_ref: "hw/riscv/boot.c:92" OpenSBI firmware for RISC-V 64-bit.
Required for riscv64-softmmu machine types.
source_ref: "pc-bios/README"
# ======================================================== # ========================================================
# S390X FIRMWARE # S390X FIRMWARE
@@ -574,18 +508,20 @@ files:
- name: "S390 CCW firmware" - name: "S390 CCW firmware"
path: "qemu/s390-ccw.img" path: "qemu/s390-ccw.img"
sha1: "7b4fa888d32ca8ddbc752f7442e4d055cee1871a" sha1: "7b4fa888d32ca8ddbc752f7442e4d055cee1871a"
md5: ""
size: 42608 size: 42608
required: false required: false
note: "Channel Command Word boot firmware for s390x emulation." note: "Channel Command Word boot firmware for s390x emulation."
source_ref: "hw/s390x/ipl.c:149" source_ref: "pc-bios/meson.build:68"
- name: "S390 network boot" - name: "S390 network boot"
path: "qemu/s390-netboot.img" path: "qemu/s390-netboot.img"
sha1: "f6cec671408117bd9a31e982682662f27ef4fb2c" sha1: "f6cec671408117bd9a31e982682662f27ef4fb2c"
md5: ""
size: 67232 size: 67232
required: false required: false
note: "Network boot firmware for s390x emulation." note: "Network boot firmware for s390x emulation."
source_ref: "hw/s390x/ipl.c:497" source_ref: "pc-bios/meson.build:69"
# ======================================================== # ========================================================
# HP-PA FIRMWARE # HP-PA FIRMWARE
@@ -593,77 +529,20 @@ files:
- name: "HP-PA firmware (32-bit)" - name: "HP-PA firmware (32-bit)"
path: "qemu/hppa-firmware.img" path: "qemu/hppa-firmware.img"
sha1: "605c36ede6c120c6cc7efe147a75a3dc4b7e4fb0" sha1: "605c36ede6c120c6cc7efe147a75a3dc4b7e4fb0"
md5: ""
size: 167820 size: 167820
required: false required: false
note: "SeaBIOS-hppa firmware for 32-bit HP-PARISC emulation." note: "SeaBIOS-hppa firmware for 32-bit HP-PARISC emulation."
source_ref: "hw/hppa/machine.c:424" source_ref: "pc-bios/README"
- name: "HP-PA firmware (64-bit)" - name: "HP-PA firmware (64-bit)"
path: "qemu/hppa-firmware64.img" path: "qemu/hppa-firmware64.img"
sha1: "b42f6d4ca74073de6c038579b4a9323ad0a6b398" sha1: "b42f6d4ca74073de6c038579b4a9323ad0a6b398"
md5: ""
size: 206024 size: 206024
required: false required: false
note: "SeaBIOS-hppa firmware for 64-bit HP-PARISC emulation." note: "SeaBIOS-hppa firmware for 64-bit HP-PARISC emulation."
source_ref: "hw/hppa/machine.c:424" source_ref: "pc-bios/README"
# ========================================================
# MIPS FIRMWARE (not shipped, user-supplied)
# ========================================================
- name: "MIPS BIOS (big-endian)"
path: "qemu/mips_bios.bin"
sha1: ""
required: false
note: "Default BIOS for big-endian MIPS machines (Malta, MIPSsim, Jazz). Not shipped with QEMU."
source_ref: "hw/mips/malta.c:97"
- name: "MIPS BIOS (little-endian)"
path: "qemu/mipsel_bios.bin"
sha1: ""
required: false
note: "Default BIOS for little-endian MIPS machines (Malta, MIPSsim, Jazz). Not shipped with QEMU."
source_ref: "hw/mips/malta.c:99"
- name: "Loongson3 BIOS"
path: "qemu/bios_loongson3.bin"
sha1: ""
required: false
note: "Default BIOS for Loongson3 virtual MIPS machine. Not shipped with QEMU."
source_ref: "hw/mips/loongson3_virt.c:63"
- name: "PMON Fuloong2e"
path: "qemu/pmon_2e.bin"
sha1: ""
required: false
note: "PMON monitor for Fuloong2e MIPS board. Not shipped with QEMU."
source_ref: "hw/mips/fuloong2e.c:58"
# ========================================================
# M68K FIRMWARE (not shipped, user-supplied)
# ========================================================
- name: "Macintosh ROM"
path: "qemu/MacROM.bin"
sha1: ""
required: false
note: "Apple Macintosh ROM for Quadra 800 emulation. Not shipped with QEMU."
source_ref: "hw/m68k/q800.c:62"
# ========================================================
# ARM FIRMWARE (non-NPCM7xx, not shipped)
# ========================================================
- name: "Canon A1100 ROM"
path: "qemu/canon-a1100-rom1.bin"
sha1: ""
required: false
note: "Canon PowerShot A1100 IS DIGIC camera ROM. Not shipped with QEMU."
source_ref: "hw/arm/digic_boards.c:131"
- name: "NPCM7xx boot ROM"
path: "qemu/npcm7xx_bootrom.bin"
sha1: "22a75d26a0591d2c7763765b6381fa2f73de43e1"
size: 768
required: false
note: "Boot ROM for Nuvoton NPCM7xx BMC (ARM Cortex-A9)."
source_ref: "hw/arm/npcm7xx_boards.c:56"
# ======================================================== # ========================================================
# DEVICE TREE BLOBS # DEVICE TREE BLOBS
@@ -671,41 +550,50 @@ files:
- name: "Bamboo DTB (PPC)" - name: "Bamboo DTB (PPC)"
path: "qemu/bamboo.dtb" path: "qemu/bamboo.dtb"
sha1: "ebdf1745479f4ec88459bbd9ef16ee1114018508" sha1: "ebdf1745479f4ec88459bbd9ef16ee1114018508"
md5: ""
size: 3211 size: 3211
required: false required: false
note: "Device tree blob for PowerPC Bamboo (440EP) board." note: "Device tree blob for PowerPC Bamboo (440EP) board."
source_ref: "hw/ppc/ppc440_bamboo.c:38" source_ref: "pc-bios/meson.build:88"
- name: "Canyonlands DTB (PPC)" - name: "Canyonlands DTB (PPC)"
path: "qemu/canyonlands.dtb" path: "qemu/canyonlands.dtb"
sha1: "8a2fda0b4f23a92eb44776b5d7ffe951987062da" sha1: "8a2fda0b4f23a92eb44776b5d7ffe951987062da"
md5: ""
size: 9779 size: 9779
required: false required: false
note: "Device tree blob for PowerPC Canyonlands (460EX) / Sam460ex board." note: "Device tree blob for PowerPC Canyonlands (460EX) board."
source_ref: "hw/ppc/sam460ex.c:45" source_ref: "pc-bios/meson.build:89"
- name: "Petalogix ML605 DTB (MicroBlaze)" - name: "Petalogix ML605 DTB (MicroBlaze)"
path: "qemu/petalogix-ml605.dtb" path: "qemu/petalogix-ml605.dtb"
sha1: "892d265838866869b8a8ef104252ff5b2fda156f" sha1: "892d265838866869b8a8ef104252ff5b2fda156f"
md5: ""
size: 9882 size: 9882
required: false required: false
note: "Device tree blob for Xilinx Petalogix ML605 MicroBlaze board. MicroBlaze target not built in libretro core." note: "Device tree blob for Xilinx Petalogix ML605 MicroBlaze board."
source_ref: "pc-bios/meson.build:91" source_ref: "pc-bios/meson.build:91"
- name: "Petalogix S3ADSP1800 DTB (MicroBlaze)" - name: "Petalogix S3ADSP1800 DTB (MicroBlaze)"
path: "qemu/petalogix-s3adsp1800.dtb" path: "qemu/petalogix-s3adsp1800.dtb"
sha1: "976600e3f89ecc1f3564b7077f53c58e0b565280" sha1: "976600e3f89ecc1f3564b7077f53c58e0b565280"
md5: ""
size: 8161 size: 8161
required: false required: false
note: "Device tree blob for Xilinx Petalogix S3ADSP1800 MicroBlaze board. MicroBlaze target not built in libretro core." note: "Device tree blob for Xilinx Petalogix S3ADSP1800 MicroBlaze board."
source_ref: "pc-bios/meson.build:90" source_ref: "pc-bios/meson.build:90"
- name: "Virtex ML507 DTB (PPC)" # ========================================================
path: "qemu/virtex-ml507.dtb" # OTHER
sha1: "" # ========================================================
- name: "NPCM7xx boot ROM"
path: "qemu/npcm7xx_bootrom.bin"
sha1: "22a75d26a0591d2c7763765b6381fa2f73de43e1"
md5: ""
size: 768
required: false required: false
note: "Device tree blob for Xilinx Virtex ML507 PowerPC board. Not shipped with QEMU." note: "Boot ROM for Nuvoton NPCM7xx BMC (ARM Cortex-A9)."
source_ref: "hw/ppc/virtex_ml507.c:148" source_ref: "pc-bios/README"
notes: notes:
bios_directory: > bios_directory: >
@@ -717,12 +605,10 @@ notes:
Other VGA BIOS variants are loaded depending on the emulated GPU. Other VGA BIOS variants are loaded depending on the emulated GPU.
PXE/EFI ROMs are only needed for network booting. PXE/EFI ROMs are only needed for network booting.
multi_arch: > multi_arch: >
The libretro build targets 17 architectures. Non-x86 firmware The libretro build supports 16 target architectures. Non-x86 firmware
is only needed when using .qemu_cmd_line files that invoke a different is only needed when using .qemu_cmd_line files that invoke a different
qemu-system-* binary (e.g. qemu-system-ppc for MacOS 9). qemu-system-* binary (e.g. qemu-system-ppc for MacOS 9).
edk2: > experimental: >
EDK2 UEFI firmware is shipped as bz2-compressed blobs in pc-bios/. These This core is marked is_experimental=true in its .info file.
provide UEFI boot for x86, ARM, and RISC-V machine types. Users specify Savestates are not supported.
them via -bios or pflash in .qemu_cmd_line files.
experimental: "This core is marked is_experimental=true in its .info file."
version: "Based on QEMU 9.0.50 (io12/qemu-libretro)" version: "Based on QEMU 9.0.50 (io12/qemu-libretro)"
+40 -36
View File
@@ -1,9 +1,7 @@
emulator: QUASI88 emulator: QUASI88
type: libretro type: libretro
core_classification: community_fork
source: "https://github.com/libretro/quasi88-libretro" source: "https://github.com/libretro/quasi88-libretro"
upstream: "https://www.retropc.net/showzoh/quasi88/" profiled_date: "2026-03-18"
profiled_date: "2026-03-25"
core_version: "0.6.4" core_version: "0.6.4"
display_name: "NEC - PC-8000 / PC-8800 series (QUASI88)" display_name: "NEC - PC-8000 / PC-8800 series (QUASI88)"
cores: cores:
@@ -11,63 +9,69 @@ cores:
systems: systems:
- pc-8801 - pc-8801
# QUASI88 by Showzoh Fukunaga, libretro port by Celerizer. # QUASI88 is a NEC PC-8801 emulator. The libretro port includes a pseudo-BIOS
# Includes pseudo-BIOS (pbios_n88, pbios_disk) by cisc compiled into the core. # (pbios_n88, pbios_disk) compiled into the core that provides basic compatibility
# With pseudo-BIOS, some disk-based games boot but compatibility is limited. # when real BIOS files are missing. With the pseudo-BIOS, many disk-based games
# will boot, but compatibility is lower than with real ROMs.
# #
# ROM search order (libretro.c:444-491): # ROM file search order (libretro.c:444-491):
# 1. <download_dir>/<filename> # 1. <download_dir>/<filename>
# 2. <system_dir>/quasi88/<filename> # 2. <system_dir>/quasi88/<filename>
# 3. <system_dir>/<filename> # 3. <system_dir>/<filename>
# Each ROM entry has up to 4 alternate filenames tried in order. # Each ROM entry has up to 4 alternate filenames tried in order.
# #
# ROM loading (libretro.c:550-594): # ROM loading (libretro.c:550-594):
# N88.ROM and DISK.ROM have pseudo-BIOS fallback if missing. # N88.ROM and DISK.ROM (SUB_ROM) are the only two checked for failure.
# If missing, the core falls back to the built-in pseudo-BIOS.
# All other ROMs are loaded silently if present, ignored if absent. # All other ROMs are loaded silently if present, ignored if absent.
# #
# The original QUASI88 (memory.c:80-95) uses uppercase-first filenames # The original QUASI88 (memory.c:80-95) uses uppercase-first filenames
# (N88.ROM, N88EXT0.ROM, etc.) while the libretro .info file uses # (N88.ROM, N88EXT0.ROM, etc.) while the libretro .info file standardizes
# lowercase with underscore variants (n88.rom, n88_0.rom, etc.). # on lowercase with underscore variants (n88.rom, n88_0.rom, etc.).
# The core tries both naming conventions. # The core tries both naming conventions.
# #
# FONT.ROM/FONT2.ROM/FONT3.ROM are not in the .info file. # FONT.ROM/FONT2.ROM/FONT3.ROM are not listed in the .info file.
# When missing, the core uses built-in fonts (font.h) or kanji ROM glyphs. # When missing, the core uses built-in fonts or falls back to kanji ROM glyphs.
#
# Upstream supports 2HD disk ROM (8 KB) via memory.c:356-368.
# The libretro port reads only 2 KB (2D type) at libretro.c:552.
notes: | notes: |
Files go in <system_dir>/quasi88/ or directly in <system_dir>/. Files go in <system_dir>/quasi88/ or directly in <system_dir>/.
The pseudo-BIOS covers N88-BASIC V2 and the disk subsystem at a basic The pseudo-BIOS built into the core covers N88-BASIC V2 and the disk
level. For full compatibility (N-BASIC, V1H/V1S modes, dictionary lookup, subsystem at a basic level. For full compatibility (N-BASIC, V1H/V1S modes,
kanji display), real ROM files are needed. dictionary lookup, kanji display), real ROM files are needed.
Core option "quasi88_basic_mode" selects N88 V2, N88 V1H, N88 V1S, N88_0.ROM (EXT0) is marked required in the .info file because it contains
or N mode. Each mode requires its corresponding ROM. the N88-BASIC V2 extension used by most software. EXT1-EXT3 are version-
specific extensions (V1H, V1S, older V2) needed only for specific titles.
The core option "quasi88_basic_mode" selects N88 V2, N88 V1H, N88 V1S,
or N mode. Each mode requires its corresponding ROM to be present.
files: files:
# -- Required for full operation --
- name: n88.rom - name: n88.rom
path: "quasi88/n88.rom" path: "quasi88/n88.rom"
size: 32768 size: 32768
required: true required: true
hle_fallback: true note: "N88-BASIC main ROM (32 KB). Core falls back to pseudo-BIOS if missing."
note: "N88-BASIC main ROM (32 KB). Falls back to pseudo-BIOS if missing." source_ref: "src/LIBRETRO/libretro.c:550"
source_ref: "src/LIBRETRO/libretro.c:550-551"
aliases: ["N88.ROM"] aliases: ["N88.ROM"]
- name: n88_0.rom - name: n88_0.rom
path: "quasi88/n88_0.rom" path: "quasi88/n88_0.rom"
size: 8192 size: 8192
required: true required: true
note: "N88-BASIC V2 extension ROM 0 (8 KB). Needed by most software." note: "N88-BASIC V2 extension ROM 0 (8 KB). Needed for most PC-8801 software."
source_ref: "src/LIBRETRO/libretro.c:555" source_ref: "src/LIBRETRO/libretro.c:555"
aliases: ["N88_0.ROM", "N88EXT0.ROM", "n88ext0.rom"] aliases: ["N88_0.ROM", "N88EXT0.ROM", "n88ext0.rom"]
# -- Optional extensions --
- name: n88_1.rom - name: n88_1.rom
path: "quasi88/n88_1.rom" path: "quasi88/n88_1.rom"
size: 8192 size: 8192
required: false required: false
note: "N88-BASIC V1H extension ROM 1 (8 KB). For V1 High-speed mode." note: "N88-BASIC V1H extension ROM 1 (8 KB). For V1 High-speed mode software."
source_ref: "src/LIBRETRO/libretro.c:556" source_ref: "src/LIBRETRO/libretro.c:556"
aliases: ["N88_1.ROM", "N88EXT1.ROM", "n88ext1.rom"] aliases: ["N88_1.ROM", "N88EXT1.ROM", "n88ext1.rom"]
@@ -75,7 +79,7 @@ files:
path: "quasi88/n88_2.rom" path: "quasi88/n88_2.rom"
size: 8192 size: 8192
required: false required: false
note: "N88-BASIC V1S extension ROM 2 (8 KB). For V1 Standard mode." note: "N88-BASIC V1S extension ROM 2 (8 KB). For V1 Standard mode software."
source_ref: "src/LIBRETRO/libretro.c:557" source_ref: "src/LIBRETRO/libretro.c:557"
aliases: ["N88_2.ROM", "N88EXT2.ROM", "n88ext2.rom"] aliases: ["N88_2.ROM", "N88EXT2.ROM", "n88ext2.rom"]
@@ -83,7 +87,7 @@ files:
path: "quasi88/n88_3.rom" path: "quasi88/n88_3.rom"
size: 8192 size: 8192
required: false required: false
note: "N88-BASIC extension ROM 3 (8 KB). Older V2 extension." note: "N88-BASIC extension ROM 3 (8 KB). Older V2 extension, rarely needed."
source_ref: "src/LIBRETRO/libretro.c:558" source_ref: "src/LIBRETRO/libretro.c:558"
aliases: ["N88_3.ROM", "N88EXT3.ROM", "n88ext3.rom"] aliases: ["N88_3.ROM", "N88EXT3.ROM", "n88ext3.rom"]
@@ -100,15 +104,15 @@ files:
size: 2048 size: 2048
required: false required: false
hle_fallback: true hle_fallback: true
note: "Disk subsystem ROM (2 KB, 2D type). Falls back to pseudo-BIOS if missing." note: "Disk subsystem ROM (2 KB, 2D type). Core falls back to pseudo-BIOS if missing. 8 KB variant (2HD type) also accepted."
source_ref: "src/LIBRETRO/libretro.c:552-553" source_ref: "src/LIBRETRO/libretro.c:552"
aliases: ["DISK.ROM", "N88SUB.ROM", "n88sub.rom"] aliases: ["DISK.ROM", "N88SUB.ROM", "n88sub.rom"]
- name: n88knj1.rom - name: n88knj1.rom
path: "quasi88/n88knj1.rom" path: "quasi88/n88knj1.rom"
size: 131072 size: 131072
required: false required: false
note: "Kanji ROM level 1 (128 KB). Required for Japanese text display." note: "Kanji ROM level 1 (128 KB). Required for Japanese text display. Also used as font fallback."
source_ref: "src/LIBRETRO/libretro.c:560" source_ref: "src/LIBRETRO/libretro.c:560"
aliases: ["N88KNJ1.ROM", "KANJI1.ROM", "kanji1.rom"] aliases: ["N88KNJ1.ROM", "KANJI1.ROM", "kanji1.rom"]
@@ -124,18 +128,18 @@ files:
path: "quasi88/n88jisho.rom" path: "quasi88/n88jisho.rom"
size: 524288 size: 524288
required: false required: false
note: "Dictionary ROM (512 KB). Japanese dictionary lookup." note: "Dictionary ROM (512 KB). Japanese dictionary lookup, very few titles use it."
source_ref: "src/LIBRETRO/libretro.c:562" source_ref: "src/LIBRETRO/libretro.c:562"
aliases: ["N88JISHO.ROM", "JISYO.ROM", "jisyo.rom"] aliases: ["N88JISHO.ROM", "JISYO.ROM", "jisyo.rom"]
# Font ROMs (not in .info, core has built-in fallback via font.h) # -- Font ROMs (not in .info, core has built-in fallback) --
- name: font.rom - name: font.rom
path: "quasi88/font.rom" path: "quasi88/font.rom"
size: 2048 size: 4096
required: false required: false
hle_fallback: true hle_fallback: true
note: "ANK font ROM (2 KB). Falls back to built-in font or kanji ROM glyphs." note: "ANK font ROM (4 KB). Falls back to built-in font or kanji ROM glyphs."
source_ref: "src/LIBRETRO/libretro.c:566" source_ref: "src/LIBRETRO/libretro.c:566"
aliases: ["FONT.ROM"] aliases: ["FONT.ROM"]
@@ -144,7 +148,7 @@ files:
size: 4096 size: 4096
required: false required: false
hle_fallback: true hle_fallback: true
note: "Second font ROM (up to 4 KB). Falls back to built-in ANH font." note: "Second font ROM (4 KB). Falls back to built-in ANH font."
source_ref: "src/LIBRETRO/libretro.c:576" source_ref: "src/LIBRETRO/libretro.c:576"
aliases: ["FONT2.ROM"] aliases: ["FONT2.ROM"]
@@ -153,6 +157,6 @@ files:
size: 4096 size: 4096
required: false required: false
hle_fallback: true hle_fallback: true
note: "Third font ROM (up to 4 KB). Zeroed out if missing." note: "Third font ROM (4 KB). Zeroed out if missing."
source_ref: "src/LIBRETRO/libretro.c:588" source_ref: "src/LIBRETRO/libretro.c:588"
aliases: ["FONT3.ROM"] aliases: ["FONT3.ROM"]
+3 -4
View File
@@ -2,8 +2,7 @@ emulator: QuickNES
type: libretro type: libretro
core_classification: community_fork core_classification: community_fork
source: "https://github.com/libretro/QuickNES_Core" source: "https://github.com/libretro/QuickNES_Core"
upstream: "https://github.com/kode54/QuickNES" profiled_date: "2026-03-21"
profiled_date: "2026-03-25"
core_version: "1.0-WIP" core_version: "1.0-WIP"
display_name: "Nintendo - NES / Famicom (QuickNES)" display_name: "Nintendo - NES / Famicom (QuickNES)"
cores: cores:
@@ -12,7 +11,7 @@ systems:
- nintendo-nes - nintendo-nes
notes: | notes: |
NES emulator by blargg (Shay Green), maintained by kode54. NES emulator by blargg (Shay Green). No BIOS required.
NES has no BIOS. All palettes compiled in. NES cartridge games are self-contained.
files: [] files: []
+34 -20
View File
@@ -1,28 +1,43 @@
emulator: RACE (Neo Geo Pocket) emulator: RACE (Neo Geo Pocket)
type: libretro type: libretro
core_classification: community_fork
source: "https://github.com/libretro/RACE" source: "https://github.com/libretro/RACE"
upstream: "https://github.com/8bitpsp/race" profiled_date: "2026-03-18"
profiled_date: "2026-03-25"
core_version: "v2.16" core_version: "v2.16"
display_name: "SNK - Neo Geo Pocket / Color (RACE)" display_name: "SNK - Neo Geo Pocket / Color (RACE)"
cores: [race]
systems: [snk-ngp, snk-ngpc] systems: [snk-ngp, snk-ngpc]
notes: | notes: |
RACE is a Neo Geo Pocket and Neo Geo Pocket Color emulator originally by RACE is a Neo Geo Pocket and Neo Geo Pocket Color emulator, originally
Judge_ (MHE), ported to GP2X by Flavor, to PSP by Akop Karapetyan, modified developed for PSP (forked from Akop Karapetyan's port), adapted for
by theelf, then adapted for libretro. libretro.
No external BIOS files are required. The upstream versions (GP2X, PSP) support No external BIOS files are required. The core contains dead code in
optional loading of NPBIOS.BIN, but the libretro port disabled it entirely race-memory.c that would load "NPBIOS.BIN" (64KB, loaded into cpurom
with #if 0 in race-memory.c:loadBIOS(). The comment explains: "Using a real via filestream_open), but it is compiled out with #if 0 and loadBIOS()
bios file causes nothing but issues." unconditionally returns 0. The comment explains: "Using a real bios
file causes nothing but issues" and references Card Fighters' Clash
Test Mode as a known failure.
The core uses a software HLE approach: a compiled-in koyote_bin RAM dump Instead, the core uses a software HLE approach:
(post-boot console state) is copied into mainram at startup, a fake SWI jump - A built-in koyote_bin memory dump (RAM state from a real console
table is built at cpurom[0xE000], and doBios() in tlcs900h.c handles 33 BIOS post-boot) is copied into mainram at startup
functions in software. The Z80 sound CPU is emulated via cz80 or DrZ80. - A fake SWI jump table is constructed at cpurom[0xE000] using the
TLCS-900H 0x1A (reg) dummy opcode to trap BIOS calls
- doBios() in tlcs900h.c handles 33 BIOS functions in software:
shutdown, clock speed, RTC, screen mode, font rendering, flash
read/write, communication, and sound control
- Interrupt vectors are set up at cpurom[0xFF00] and interrupt
handler code at cpurom[0xF800]
- CPU RAM defaults (interrupt priorities, timers) are loaded from
the ngpcpuram[256] table
The Z80 sound CPU is emulated in software (cz80 or DrZ80 backend).
Flash memory for game saves is handled internally by flash.c.
The only core option affecting system behavior is ngp_language
(english/japanese), which sets a RAM flag at 0x6F87.
ROM extensions: .ngp, .ngc, .ngpc, .npc
files: [] files: []
@@ -33,9 +48,8 @@ analysis:
loaded_by: "race-memory.c:loadBIOS()" loaded_by: "race-memory.c:loadBIOS()"
status: disabled status: disabled
source_ref: "race-memory.c:337-361" source_ref: "race-memory.c:337-361"
upstream_status: optional
upstream_ref: "memory.cpp:346-365 (8bitpsp/race)"
notes: | notes: |
loadBIOS() is wrapped in #if 0 and always returns 0 in the libretro port. loadBIOS() is wrapped in #if 0 and always returns 0.
In upstream (8bitpsp/race, alekmaul/race), the function is live and loads Even if re-enabled, the realBIOSloaded=1 path has known
NPBIOS.BIN optionally, falling back to HLE if not found. compatibility issues (e.g. Puzzle Bobble fails to boot).
The HLE path is the only functional code path.
+7 -5
View File
@@ -1,8 +1,7 @@
emulator: Redbook emulator: Redbook
type: utility type: utility
core_classification: pure_libretro source: "https://github.com/libretro/RetroArch"
source: "https://github.com/libretro/redbook" profiled_date: "2026-03-18"
profiled_date: "2026-03-25"
core_version: "1.0" core_version: "1.0"
display_name: "Redbook Audio Player" display_name: "Redbook Audio Player"
cores: cores:
@@ -10,7 +9,10 @@ cores:
systems: [] systems: []
notes: | notes: |
Audio CD player core. Plays Red Book audio CDs and CUE/BIN images. Redbook is an audio CD player core for RetroArch. Plays standard
Original libretro creation by Brad Parker, no upstream emulator. Red Book audio CDs and CD image files (CUE/BIN) containing audio
tracks.
No BIOS or system files required.
files: [] files: []
+22 -34
View File
@@ -1,9 +1,7 @@
emulator: REminiscence emulator: REminiscence
type: libretro type: libretro
core_classification: community_fork
source: "https://github.com/libretro/REminiscence" source: "https://github.com/libretro/REminiscence"
upstream: "https://github.com/cyxx/REminiscence" profiled_date: "2026-03-18"
profiled_date: "2026-03-25"
core_version: "0.3.6" core_version: "0.3.6"
display_name: "Flashback (REminiscence)" display_name: "Flashback (REminiscence)"
cores: cores:
@@ -12,22 +10,23 @@ systems:
- flashback - flashback
notes: | notes: |
Game engine re-implementation of Flashback (Delphine Software, 1992) by Gregory Montoir, REminiscence is a re-implementation of the Flashback (Delphine Software, 1992) game engine,
ported to libretro by Stuart Carnie. Version 0.3.6 (upstream is at 0.5.5). ported to libretro. Version 0.3.6. It is not a general-purpose emulator; it only runs the
original Flashback game data files.
The core sets need_fullpath = true and valid_extensions = "map" (libretro.cpp:66). The core sets need_fullpath = true and valid_extensions = "map" (libretro.cpp:67-68).
Content loading (retro_load_game) extracts the parent directory from the provided .MAP Content loading (retro_load_game) extracts the parent directory from the provided .MAP
file path and uses it as the data root via FileSystem (libretro.cpp:194-196). file path and uses it as the data root via FileSystem (libretro.cpp:194-196).
Version detection (libretro.cpp:125-148) probes for these files in order: Version detection (libretro.cpp:126-149) probes for these files in order:
DEMO_UK.ABA -> DOS Demo DEMO_UK.ABA -> DOS Demo
INTRO.SEQ -> DOS CD INTRO.SEQ -> DOS CD
LEVEL1.MAP -> DOS LEVEL1.MAP -> DOS
LEVEL1.LEV -> Amiga LEVEL1.LEV -> Amiga
DEMO.LEV -> Amiga Demo DEMO.LEV -> Amiga Demo
Only kResourceTypeDOS is accepted (line 199); Amiga data is rejected. Only kResourceTypeDOS is accepted by retro_load_game (line 199); Amiga data is rejected.
Language detection (libretro.cpp:150-174) probes for: Language detection (libretro.cpp:151-175) probes for:
ENGCINE.TXT -> English ENGCINE.TXT -> English
FR_CINE.TXT -> French FR_CINE.TXT -> French
GERCINE.TXT -> German GERCINE.TXT -> German
@@ -36,38 +35,27 @@ notes: |
FRCINE.TXT -> French (Amiga) FRCINE.TXT -> French (Amiga)
Falls back to English if none found. Falls back to English if none found.
All game data files are loaded from the content directory via FileSystem (fs.cpp), All game data files are loaded from the content directory at runtime via FileSystem
which scans the directory and matches filenames case-insensitively (strcasecmp at (fs.cpp), which recursively scans the directory and matches filenames case-insensitively
fs.cpp:52). The resource system (resource.cpp) loads files by constructing names (strcasecmp at fs.cpp:52). The resource system (resource.cpp) loads files by constructing
like "LEVEL1.MAP", "GLOBAL.ICN", "PERSO.SPR", "FB_TXT.FNT", etc. names like "LEVEL1.MAP", "GLOBAL.ICN", "PERSO.SPR", "FB_TXT.FNT", etc.
The core never calls RETRO_ENVIRONMENT_GET_SYSTEM_DIRECTORY. All data files must live The core never calls RETRO_ENVIRONMENT_GET_SYSTEM_DIRECTORY. All data files must live
alongside the loaded .MAP content file. No BIOS or firmware files; the required files alongside the loaded .MAP content file (or in subdirectories of its parent). There are
are the original Flashback DOS game data. no BIOS or firmware files; the required files are the original Flashback game data.
Music loaded from .mod files (mod_player.cpp, staticres.cpp:3198-3225). Optional; Music is loaded from .mod files or Amiga-format module files (mod_player.cpp, staticres.cpp
the core has a built-in SFX player for in-game action music (sfx_player.cpp with lines 3198-3225). These are optional; the core has a built-in SFX player for in-game
embedded music data in staticres.cpp). action music (sfx_player.cpp with embedded music data in staticres.cpp).
VOICE.VCE from the SegaCD version can be placed in the data directory for in-game VOICE.VCE from the SegaCD version can optionally be placed in the data directory for
voice playback (resource.cpp:900-941). Optional. in-game voice playback (resource.cpp:910).
SEQ cutscene playback is disabled in the libretro build: g_options is zero-initialized INTRO.SEQ and other .SEQ files from the DOS CD version provide FMV cutscenes
(game.cpp:30) and rs.cfg is never parsed, so use_seq_cutscenes defaults to false. (seq_player.cpp). Without them, the core falls back to polygon-based cutscenes.
The core always uses polygon-based cutscenes (cutscene.cpp).
Upstream (0.5.5) additionally supports Amiga, Macintosh, PC98 data, MIDI music,
OGG playback, SEQ cutscenes, and widescreen modes. None of these are in the
libretro port.
files: [] files: []
exclusion_note: >
Game engine core. All data files (game data, music, voice) are loaded from the content
directory alongside the .MAP file via FileSystem. The core never accesses the system
directory (RETRO_ENVIRONMENT_GET_SYSTEM_DIRECTORY is never called). The .info declares
firmware_count=0, consistent with the code.
analysis: analysis:
content_type: game_data content_type: game_data
content_extensions: ["map"] content_extensions: ["map"]
@@ -89,7 +77,7 @@ analysis:
- "VOICE.VCE (SegaCD voice data)" - "VOICE.VCE (SegaCD voice data)"
dos_cd: dos_cd:
additional: additional:
- "INTRO.SEQ, CREDITS.SEQ, and other .SEQ cutscene videos (SEQ playback disabled in libretro build)" - "INTRO.SEQ, CREDITS.SEQ, and other .SEQ cutscene videos"
demo: demo:
archive: "DEMO_UK.ABA (contains all demo data in a single archive)" archive: "DEMO_UK.ABA (contains all demo data in a single archive)"
detection_order: detection_order:
+7 -7
View File
@@ -1,9 +1,7 @@
emulator: RemoteJoy emulator: RemoteJoy
type: utility type: utility
core_classification: pure_libretro
source: "https://github.com/libretro/libretro-remotejoy" source: "https://github.com/libretro/libretro-remotejoy"
upstream: "https://github.com/akiraink/RemoteJoyLite" profiled_date: "2026-03-18"
profiled_date: "2026-03-25"
core_version: "v1" core_version: "v1"
display_name: "PSP RemotePlay (RemoteJoy)" display_name: "PSP RemotePlay (RemoteJoy)"
cores: cores:
@@ -11,9 +9,11 @@ cores:
systems: [] systems: []
notes: | notes: |
USB streaming receiver for PSP. Connects via libusb to a PSP running the RemoteJoy is a PSP remote display utility for libretro. It receives
RemoteJoy plugin (Sony VID 0x054C, PIDs 0x01C9/0x02D2) and displays video output from a PSP running the RemoteJoy plugin over USB or
video frames at 480x272. No file I/O. Protocol reimplemented from network, displaying it within RetroArch.
RemoteJoyLite Win32 client constants, not a port.
No BIOS or system files required. Requires a PSP with the RemoteJoy
plugin installed on the device side.
files: [] files: []
+9 -14
View File
@@ -1,23 +1,18 @@
emulator: Retro8 emulator: Retro8
type: libretro type: game
core_classification: game_engine
source: "https://github.com/libretro/retro8" source: "https://github.com/libretro/retro8"
upstream: "https://github.com/Jakz/retro8" profiled_date: "2026-03-18"
profiled_date: "2026-03-25" core_version: "Git"
core_version: "0.1b"
display_name: "PICO-8 (Retro8)" display_name: "PICO-8 (Retro8)"
cores: cores:
- retro8 - retro8
systems: systems: []
- pico8
notes: | notes: |
Open-source PICO-8 fantasy console reimplementation by Jacopo Santoni. Retro8 is a PICO-8 compatible runtime for libretro. It can run .p8
Runs .p8 and .p8.png cartridge files. The PICO-8 font is compiled into the and .p8.png cartridge files created for the PICO-8 fantasy console.
binary as a byte array (gen/pico_font.h, loaded in gfx.cpp:9). The Lua API
shim is compiled as a string constant (gen/lua_api.h, loaded in No BIOS, firmware, or system files required. The virtual machine and
lua_bridge.cpp:1126). The core never calls GET_SYSTEM_DIRECTORY and performs Lua interpreter are self-contained in the core binary.
no file I/O from the system directory.
exclusion_note: "all engine resources (font, Lua API, color palette, audio synth) compiled into the binary"
files: [] files: []
+39 -33
View File
@@ -1,54 +1,60 @@
emulator: RetroDream emulator: RetroDream
type: libretro type: libretro
core_classification: community_fork
source: "https://github.com/libretro/redream-next" source: "https://github.com/libretro/redream-next"
upstream: "https://github.com/inolen/redream" profiled_date: "2026-03-18"
profiled_date: "2026-03-25"
core_version: "Git" core_version: "Git"
display_name: "Sega - Dreamcast (RetroDream)" display_name: "Sega - Dreamcast (RetroDream)"
cores:
- retrodream
systems: systems:
- sega-dreamcast - sega-dreamcast
notes: | notes: |
Fork of the last GPLv3 release of redream (inolen) before it went closed-source. Fork of the final open-source redream release (pre-relicense). Experimental
The core has HLE bootstrap -- when boot.bin is missing, bios_invalid_instr() core with no HLE BIOS -- real BIOS files are required to boot games.
traps at PC=0x0 and calls bios_boot(), which loads IP.BIN and 1ST_READ.BIN Flycast is recommended over this core for actual gameplay.
directly from disc, sets up syscall vectors, and starts execution at 0xac008300.
The fork sets appdir to the RetroArch system directory root The libretro core sets appdir to the RetroArch system directory
(retro_host.c:216-217), unlike the upstream which appends /dc (src/host/retro_host.c:216-217). boot.bin and flash.bin are loaded
(upstream retro_host.c:196-198). The .info still declares dc/ prefix paths directly from appdir (src/guest/rom/boot.c:17, src/guest/rom/flash.c:30).
matching the upstream, not this fork.
boot.bin is validated against four known MD5 hashes (boot.c:25-30). The .info file declares paths as dc/boot.bin and dc/flash.bin, which means
Validation failure logs a warning but the core continues via HLE. RetroArch resolves them under {system_dir}/dc/.
flash.bin is read/write. If missing, bios_validate_flash() resets all boot.bin is validated against four known MD5 hashes at load time
partitions to defaults. Saved back to disk on shutdown (flash.c:197-199). (src/guest/rom/boot.c:25-30). If validation fails, the core logs a warning
but still attempts to run via HLE syscall hooks (bios.c:440-447).
flash.bin is read/write -- the core saves modified flash data back to disk
on shutdown (src/guest/rom/flash.c:197-199).
Boot ROM size: 2 MB (0x200000). Flash ROM size: 128 KB (0x20000).
files: files:
- name: "boot.bin" - name: "boot.bin"
system: sega-dreamcast system: sega-dreamcast
path: "boot.bin" path: "dc/boot.bin"
required: false required: true
hle_fallback: true size: 2097152 # 2 MB (0x200000)
size: 2097152
validation: [size, md5]
md5: md5:
- a5c6a00818f97c5e3e91569ee22416dc - e10c53c2f8b90bab96ead2d368858623 # original US/EU BIOS
- 37c921eb47532cae8fb70e5d987ce91c - a5c6a00818f97c5e3e91569ee22416dc # Chinese BIOS
- f2cd29d09f3e29984bcea22ab2e006fe - 37c921eb47532cae8fb70e5d987ce91c # Japanese BIOS
- e10c53c2f8b90bab96ead2d368858623 - f2cd29d09f3e29984bcea22ab2e006fe # revised BIOS without MIL-CD
note: "Dreamcast boot ROM. Four known variants accepted." note: "Dreamcast boot ROM. Validated against known MD5 hashes at load."
source_ref: "src/guest/rom/boot.c:12-80" source_ref: "src/guest/rom/boot.c:12-80"
- name: "flash.bin" - name: "flash.bin"
system: sega-dreamcast system: sega-dreamcast
path: "flash.bin" path: "dc/flash.bin"
required: false required: true
size: 131072 size: 131072 # 128 KB (0x20000)
validation: [size] md5:
note: "Dreamcast flash memory. Written back on shutdown." - 0a93f7940c455905bea6e392dfde92a4
source_ref: "src/guest/rom/flash.c:25-71" note: "Dreamcast flash memory (date, time, language). Written back on shutdown."
source_ref: "src/guest/rom/flash.c:25-35"
platform_details:
dreamcast:
bios_size: 2097152 # 2 MB
flash_size: 131072 # 128 KB
hle_available: false
source_ref: "src/guest/rom/boot.c, src/guest/rom/flash.c"
+7 -7
View File
@@ -1,9 +1,7 @@
emulator: ROM Cleaner emulator: ROM Cleaner
type: utility type: utility
core_classification: pure_libretro source: "https://github.com/libretro/libretro-database"
source: "https://github.com/JesseTG/rom-cleaner" profiled_date: "2026-03-18"
upstream: "https://github.com/JesseTG/rom-cleaner"
profiled_date: "2026-03-25"
core_version: "1.0.0" core_version: "1.0.0"
display_name: "ROM Cleaner" display_name: "ROM Cleaner"
cores: cores:
@@ -11,8 +9,10 @@ cores:
systems: [] systems: []
notes: | notes: |
Utility core that simulates blowing dust off a cartridge via microphone ROM Cleaner is a utility core for identifying and cleaning ROM
input. All visual and audio assets are compiled into the binary. headers. Uses the libretro database for ROM identification via
No external files required. CRC32/SHA1 matching.
No BIOS or system files required.
files: [] files: []
+39 -80
View File
@@ -1,24 +1,21 @@
emulator: Rustation emulator: Rustation
type: libretro type: libretro
core_classification: official_port
source: "https://github.com/libretro/rustation-libretro" source: "https://github.com/libretro/rustation-libretro"
upstream: "https://github.com/simias/rustation" profiled_date: "2026-03-18"
profiled_date: "2026-03-25"
core_version: "v1" core_version: "v1"
display_name: "Sony - PlayStation (Rustation)" display_name: "Sony - PlayStation (Rustation)"
cores: [rustation] cores: [rustation]
systems: [sony-playstation] systems: [sony-playstation]
bios_size: 524288 # 512 KB, enforced before SHA-256 check
verification: sha256
notes: > notes: >
Scans every file in the system directory, filters by exact 512 KB size, No filename requirement: the core scans every file in the system directory,
then validates the full binary against an internal SHA-256 database filters by exact 512 KB size, then validates the full binary against an internal
(lifted from Mednafen). Region must match the loaded disc. Known-bad SHA-256 database (lifted from Mednafen). Region must match the loaded disc
dumps are rejected. No filename requirement. No HLE fallback. (Japan, NorthAmerica, Europe). Known-bad dumps are rejected even if hash matches.
"Boot to BIOS menu" core option allows booting without a disc. "Boot to BIOS menu" option allows booting without a disc.
Database contains 24 entries (22 good, 2 known-bad rejected) No HLE fallback: a real, database-matched BIOS is mandatory.
covering BIOS versions 1.0 through 4.5. Database contains 24 entries (22 good, 2 known_bad) covering BIOS versions 1.0 through 4.5.
.info declares firmware_count=0; incorrect.
Project abandoned, superseded by rustation-ng.
files: files:
# -- Region: Japan -- # -- Region: Japan --
@@ -27,11 +24,10 @@ files:
description: "SCPH-5500 (v3.0 J)" description: "SCPH-5500 (v3.0 J)"
region: "NTSC-J" region: "NTSC-J"
required: true required: true
size: 524288
validation: [size, sha256]
md5: "8dd7d5296a650fac7319bce665a6a53c" md5: "8dd7d5296a650fac7319bce665a6a53c"
sha256: "9c0421858e217805f4abe18698afea8d5aa36ff0727eb8484944e00eb5e7eadb" sha256: "9c0421858e217805f4abe18698afea8d5aa36ff0727eb8484944e00eb5e7eadb"
source_ref: "rustation/src/bios/db.rs:158-167 (v3.0 Japan)" source_ref: "rustation/src/bios/db.rs:226-232 (v3.0 Japan)"
notes: "Any filename works. Core matches by SHA-256, not name. v3.0 is the standard JP BIOS."
# -- Region: North America -- # -- Region: North America --
@@ -39,11 +35,10 @@ files:
description: "SCPH-5501 (v3.0 A)" description: "SCPH-5501 (v3.0 A)"
region: "NTSC-U" region: "NTSC-U"
required: true required: true
size: 524288
validation: [size, sha256]
md5: "490f666e1afb15b7362b406ed1cea246" md5: "490f666e1afb15b7362b406ed1cea246"
sha256: "11052b6499e466bbf0a709b1f9cb6834a9418e66680387912451e971cf8a1fef" sha256: "11052b6499e466bbf0a709b1f9cb6834a9418e66680387912451e971cf8a1fef"
source_ref: "rustation/src/bios/db.rs:168-177 (v3.0 NorthAmerica)" source_ref: "rustation/src/bios/db.rs:234-244 (v3.0 NorthAmerica)"
notes: "Any filename works. Only NA BIOS with animation_jump_hook and debug UART patch support."
# -- Region: Europe -- # -- Region: Europe --
@@ -51,185 +46,149 @@ files:
description: "SCPH-5502 (v3.0 E)" description: "SCPH-5502 (v3.0 E)"
region: "PAL" region: "PAL"
required: true required: true
size: 524288
validation: [size, sha256]
md5: "32736f17079d0b2b7024407c39bd3050" md5: "32736f17079d0b2b7024407c39bd3050"
sha256: "1faaa18fa820a0225e488d9f086296b8e6c46df739666093987ff7d8fd352c09" sha256: "1faaa18fa820a0225e488d9f086296b8e6c46df739666093987ff7d8fd352c09"
source_ref: "rustation/src/bios/db.rs:178-187 (v3.0 Europe)" source_ref: "rustation/src/bios/db.rs:246-256 (v3.0 Europe)"
notes: "Any filename works. Core matches by SHA-256, not name."
# -- Alternatives: any of the 22 good entries is accepted. One per region needed. -- # -- Additional accepted BIOS versions (all validated by SHA-256 scan) --
# The core accepts any of the 22 good entries below. Only one per region is needed.
# Listed here for completeness; scph5500/5501/5502 above are the standard choices.
# Japan alternatives # Japan alternatives
- name: "scph1000.bin" - name: "scph1000.bin"
description: "SCPH-1000 (v1.0 J)" description: "SCPH-1000 (v1.0 J)"
region: "NTSC-J" region: "NTSC-J"
required: false required: false
size: 524288
validation: [size, sha256]
sha256: "cfc1fc38eb442f6f80781452119e931bcae28100c1c97e7e6c5f2725bbb0f8bb" sha256: "cfc1fc38eb442f6f80781452119e931bcae28100c1c97e7e6c5f2725bbb0f8bb"
source_ref: "rustation/src/bios/db.rs:38-47 (v1.0 Japan)" source_ref: "rustation/src/bios/db.rs:77-88 (v1.0 Japan)"
- name: "scph_v11j.bin" - name: "scph_v11j.bin"
description: "v1.1 J" description: "v1.1 J"
region: "NTSC-J" region: "NTSC-J"
required: false required: false
size: 524288
validation: [size, sha256]
sha256: "5eb3aee495937558312b83b54323d76a4a015190decd4051214f1b6df06ac34b" sha256: "5eb3aee495937558312b83b54323d76a4a015190decd4051214f1b6df06ac34b"
source_ref: "rustation/src/bios/db.rs:48-57 (v1.1 Japan)" source_ref: "rustation/src/bios/db.rs:89-100 (v1.1 Japan)"
- name: "scph3000.bin" - name: "scph3000.bin"
description: "SCPH-3000 (v2.1 J)" description: "SCPH-3000 (v2.1 J)"
region: "NTSC-J" region: "NTSC-J"
required: false required: false
size: 524288
validation: [size, sha256]
sha256: "6f71ca1e716da761dc53187bd39e00c213f566e55090708fd3e2b4b425c8c989" sha256: "6f71ca1e716da761dc53187bd39e00c213f566e55090708fd3e2b4b425c8c989"
source_ref: "rustation/src/bios/db.rs:78-87 (v2.1 Japan)" source_ref: "rustation/src/bios/db.rs:126-136 (v2.1 Japan)"
- name: "scph3500.bin" - name: "scph3500.bin"
description: "SCPH-3500 (v2.2 J)" description: "SCPH-3500 (v2.2 J)"
region: "NTSC-J" region: "NTSC-J"
required: false required: false
size: 524288
validation: [size, sha256]
sha256: "0c8359870cbac0ea091f1c87f188cd332dcc709753b91cafd9fd44a4a6188197" sha256: "0c8359870cbac0ea091f1c87f188cd332dcc709753b91cafd9fd44a4a6188197"
source_ref: "rustation/src/bios/db.rs:108-117 (v2.2 Japan)" source_ref: "rustation/src/bios/db.rs:162-172 (v2.2 Japan, good)"
notes: "A known-bad v2.2 J dump also exists in the DB but is rejected." notes: "A known-bad v2.2 J dump also exists in the DB but is rejected."
- name: "scph5000.bin" - name: "scph5000.bin"
description: "v2.2 J (alt)" description: "v2.2 J (alt)"
region: "NTSC-J" region: "NTSC-J"
required: false required: false
size: 524288
validation: [size, sha256]
sha256: "4018749b3698b8694387beebcbabfb48470513066840f9441459ee4c9f0f39bc" sha256: "4018749b3698b8694387beebcbabfb48470513066840f9441459ee4c9f0f39bc"
source_ref: "rustation/src/bios/db.rs:148-157 (v2.2 Japan alt)" source_ref: "rustation/src/bios/db.rs:209-220 (v2.2 Japan, alt)"
- name: "scph7000.bin" - name: "scph7000.bin"
description: "SCPH-7000 (v4.0 J)" description: "SCPH-7000 (v4.0 J)"
region: "NTSC-J" region: "NTSC-J"
required: false required: false
size: 524288
validation: [size, sha256]
sha256: "e900504d1755f021f861b82c8258c5e6658c7b592f800cccd91f5d32ea380d28" sha256: "e900504d1755f021f861b82c8258c5e6658c7b592f800cccd91f5d32ea380d28"
source_ref: "rustation/src/bios/db.rs:198-207 (v4.0 Japan)" source_ref: "rustation/src/bios/db.rs:269-281 (v4.0 Japan)"
notes: "Shares animation_jump_hook patch with NA v3.0."
- name: "scph7500.bin" - name: "scph7500.bin"
description: "SCPH-7500 (v4.1 J)" description: "SCPH-7500 (v4.1 J)"
region: "NTSC-J" region: "NTSC-J"
required: false required: false
size: 524288
validation: [size, sha256]
sha256: "b3aa63cf30c81e0a40641740f4a43e25fda0b21b792fa9aaef60ce1675761479" sha256: "b3aa63cf30c81e0a40641740f4a43e25fda0b21b792fa9aaef60ce1675761479"
source_ref: "rustation/src/bios/db.rs:208-217 (v4.1 Japan)" source_ref: "rustation/src/bios/db.rs:283-293 (v4.1 Japan)"
- name: "scph9000.bin" - name: "scph9000.bin"
description: "SCPH-9000 (v4.3 J)" description: "SCPH-9000 (v4.3 J)"
region: "NTSC-J" region: "NTSC-J"
required: false required: false
size: 524288
validation: [size, sha256]
sha256: "b29b4b5fcddef369bd6640acacda0865e0366fcf7ea54e40b2f1a8178004f89a" sha256: "b29b4b5fcddef369bd6640acacda0865e0366fcf7ea54e40b2f1a8178004f89a"
source_ref: "rustation/src/bios/db.rs:238-247 (v4.3 Japan)" source_ref: "rustation/src/bios/db.rs:318-329 (v4.3 Japan)"
# North America alternatives # North America alternatives
- name: "scph1001.bin" - name: "scph1001.bin"
description: "SCPH-1001 (v2.0 A)" description: "SCPH-1001 (v2.0 A)"
region: "NTSC-U" region: "NTSC-U"
required: false required: false
size: 524288
validation: [size, sha256]
sha256: "42e4124be7623e2e28b1db0d8d426539646faee49d74b71166d8ba5bd7c472ed" sha256: "42e4124be7623e2e28b1db0d8d426539646faee49d74b71166d8ba5bd7c472ed"
source_ref: "rustation/src/bios/db.rs:58-67 (v2.0 NorthAmerica)" source_ref: "rustation/src/bios/db.rs:101-112 (v2.0 NorthAmerica)"
- name: "scph5001.bin" - name: "scph5001.bin"
description: "SCPH-5001 (v2.1 A)" description: "SCPH-5001 (v2.1 A)"
region: "NTSC-U" region: "NTSC-U"
required: false required: false
size: 524288
validation: [size, sha256]
sha256: "6ad5521d105a6b86741f1af8da2e6ea1c732d34459940618c70305a105e8ec10" sha256: "6ad5521d105a6b86741f1af8da2e6ea1c732d34459940618c70305a105e8ec10"
source_ref: "rustation/src/bios/db.rs:88-97 (v2.1 NorthAmerica)" source_ref: "rustation/src/bios/db.rs:138-148 (v2.1 NorthAmerica)"
- name: "scph_v22a.bin" - name: "scph_v22a.bin"
description: "v2.2 A" description: "v2.2 A"
region: "NTSC-U" region: "NTSC-U"
required: false required: false
size: 524288
validation: [size, sha256]
sha256: "71af94d1e47a68c11e8fdb9f8368040601514a42a5a399cda48c7d3bff1e99d3" sha256: "71af94d1e47a68c11e8fdb9f8368040601514a42a5a399cda48c7d3bff1e99d3"
source_ref: "rustation/src/bios/db.rs:128-137 (v2.2 NorthAmerica)" source_ref: "rustation/src/bios/db.rs:186-196 (v2.2 NorthAmerica)"
- name: "scph7001.bin" - name: "scph7001.bin"
description: "SCPH-7001 (v4.1 A)" description: "SCPH-7001 (v4.1 A)"
region: "NTSC-U" region: "NTSC-U"
required: false required: false
size: 524288
validation: [size, sha256]
sha256: "39dcc1a0717036c9b6ac52fefd1ee7a57d3808e8cfbc755879fa685a0a738278" sha256: "39dcc1a0717036c9b6ac52fefd1ee7a57d3808e8cfbc755879fa685a0a738278"
source_ref: "rustation/src/bios/db.rs:218-227 (v4.1 NorthAmerica)" source_ref: "rustation/src/bios/db.rs:294-305 (v4.1 NorthAmerica)"
- name: "scph101.bin" - name: "scph101.bin"
description: "SCPH-101 (v4.5 A)" description: "SCPH-101 (v4.5 A)"
region: "NTSC-U" region: "NTSC-U"
required: false required: false
size: 524288
validation: [size, sha256]
sha256: "aca9cbfa974b933646baad6556a867eca9b81ce65d8af343a7843f7775b9ffc8" sha256: "aca9cbfa974b933646baad6556a867eca9b81ce65d8af343a7843f7775b9ffc8"
source_ref: "rustation/src/bios/db.rs:258-267 (v4.5 NorthAmerica)" source_ref: "rustation/src/bios/db.rs:342-353 (v4.5 NorthAmerica)"
# Europe alternatives # Europe alternatives
- name: "scph1002.bin" - name: "scph1002.bin"
description: "SCPH-1002 (v2.0 E)" description: "SCPH-1002 (v2.0 E)"
region: "PAL" region: "PAL"
required: false required: false
size: 524288
validation: [size, sha256]
sha256: "0af2be3468d30b6018b3c3b0d98b8b64347e255e16d874d55f0363648973dbf0" sha256: "0af2be3468d30b6018b3c3b0d98b8b64347e255e16d874d55f0363648973dbf0"
source_ref: "rustation/src/bios/db.rs:68-77 (v2.0 Europe)" source_ref: "rustation/src/bios/db.rs:113-124 (v2.0 Europe)"
- name: "scph_v21e.bin" - name: "scph_v21e.bin"
description: "v2.1 E" description: "v2.1 E"
region: "PAL" region: "PAL"
required: false required: false
size: 524288
validation: [size, sha256]
sha256: "1efb0cfc5db8a8751a884c5312e9c6265ca1bc580dc0c2663eb2dea3bde9fcf7" sha256: "1efb0cfc5db8a8751a884c5312e9c6265ca1bc580dc0c2663eb2dea3bde9fcf7"
source_ref: "rustation/src/bios/db.rs:98-107 (v2.1 Europe)" source_ref: "rustation/src/bios/db.rs:149-160 (v2.1 Europe)"
- name: "scph_v22e.bin" - name: "scph_v22e.bin"
description: "v2.2 E" description: "v2.2 E"
region: "PAL" region: "PAL"
required: false required: false
size: 524288
validation: [size, sha256]
sha256: "3d06d2c469313c2a2128d24fe2e0c71ff99bc2032be89a829a62337187f500b7" sha256: "3d06d2c469313c2a2128d24fe2e0c71ff99bc2032be89a829a62337187f500b7"
source_ref: "rustation/src/bios/db.rs:138-147 (v2.2 Europe)" source_ref: "rustation/src/bios/db.rs:198-208 (v2.2 Europe)"
- name: "scph7002.bin" - name: "scph7002.bin"
description: "SCPH-7002 (v4.1 E)" description: "SCPH-7002 (v4.1 E)"
region: "PAL" region: "PAL"
required: false required: false
size: 524288
validation: [size, sha256]
sha256: "5e84a94818cf5282f4217591fefd88be36b9b174b3cc7cb0bcd75199beb450f1" sha256: "5e84a94818cf5282f4217591fefd88be36b9b174b3cc7cb0bcd75199beb450f1"
source_ref: "rustation/src/bios/db.rs:228-237 (v4.1 Europe)" source_ref: "rustation/src/bios/db.rs:306-317 (v4.1 Europe)"
- name: "scph102.bin" - name: "scph102.bin"
description: "SCPH-102 (v4.4 E)" description: "SCPH-102 (v4.4 E)"
region: "PAL" region: "PAL"
required: false required: false
size: 524288
validation: [size, sha256]
sha256: "5c0166da24e27deaa82246de8ff0108267fe4bb59f6df0fdec50e05e62448ca4" sha256: "5c0166da24e27deaa82246de8ff0108267fe4bb59f6df0fdec50e05e62448ca4"
source_ref: "rustation/src/bios/db.rs:248-257 (v4.4 Europe)" source_ref: "rustation/src/bios/db.rs:330-341 (v4.4 Europe)"
- name: "scph102_v45.bin" - name: "scph102_v45.bin"
description: "v4.5 E" description: "v4.5 E"
region: "PAL" region: "PAL"
required: false required: false
size: 524288
validation: [size, sha256]
sha256: "42244b0c650821519751b7e77ad1d3222a0125e75586df2b4e84ba693b9809dc" sha256: "42244b0c650821519751b7e77ad1d3222a0125e75586df2b4e84ba693b9809dc"
source_ref: "rustation/src/bios/db.rs:268-277 (v4.5 Europe)" source_ref: "rustation/src/bios/db.rs:354-365 (v4.5 Europe)"
+64 -40
View File
@@ -1,23 +1,21 @@
emulator: RVVM emulator: RVVM
type: libretro type: libretro
core_classification: official_port
source: "https://github.com/LekKit/RVVM" source: "https://github.com/LekKit/RVVM"
upstream: "https://github.com/LekKit/RVVM" profiled_date: "2026-03-18"
profiled_date: "2026-03-25"
core_version: "0.6-git" core_version: "0.6-git"
display_name: "RVVM" display_name: "RVVM"
cores: [rvvm]
systems: [riscv] systems: [riscv]
# RVVM emulates a RISC-V machine (rv64imafdcb or rv32ima). The libretro core # RVVM is a RISC-V virtual machine / emulator. The libretro core loads a
# loads a .rvvm plain-text config file specifying bootrom, kernel, nvme drives, # ".rvvm" config file that specifies bootrom, kernel, nvme drives, memory,
# memory, CPU mode, cmdline, and framebuffer resolution. # CPU mode (rv32/rv64), cmdline, and framebuffer resolution.
# #
# The core does NOT use the RetroArch system directory. All firmware paths are # The core itself does NOT bundle any firmware. Users must supply:
# specified in the .rvvm config file and resolved relative to its directory. # 1. A bootrom (M-mode firmware): typically OpenSBI fw_payload.bin or fw_jump.bin
# The core chdir()s to the .rvvm file's parent before initializing the VM. # 2. Optionally a kernel payload (S-mode): Linux Image, U-Boot, etc.
# 3. Optionally a custom DTB (the core auto-generates one if not provided)
# #
# The .rvvm config format (parsed by retro_load_game): # The .rvvm file is a plain-text key=value config parsed by retro_load_game():
# bootrom=/path/to/fw_payload.bin # bootrom=/path/to/fw_payload.bin
# kernel=/path/to/Image # kernel=/path/to/Image
# nvme=/path/to/rootfs.img # nvme=/path/to/rootfs.img
@@ -26,54 +24,80 @@ systems: [riscv]
# rv64 # rv64
# cmdline=root=/dev/nvme0n1 rootflags=discard rw console=tty0 # cmdline=root=/dev/nvme0n1 rootflags=discard rw console=tty0
# #
# The libretro binding uses an older RVVM API (rvvm_load_bootrom, 4-param # Paths in the .rvvm file are resolved relative to the .rvvm file's directory
# rvvm_create_machine) that has been renamed in the current upstream # (the core chdir()s there before vm_init). The bootrom is mandatory - the core
# (rvvm_load_firmware, 3-param rvvm_create_machine). The binding may not # shows "RVVM: No bootrom" if missing.
# compile against RVVM HEAD without updates.
# Source references: # Source references:
# libretro binding: src/bindings/libretro/libretro.c # libretro binding: src/bindings/libretro/libretro.c
# config parsing: libretro.c:332-421 (retro_load_game) # firmware loading: src/rvvm.c:rvvm_load_firmware()
# VM init + loading: libretro.c:288-330 (vm_init) # kernel loading: src/rvvm.c:rvvm_load_kernel() (offset 0x200000 rv64, 0x400000 rv32)
# firmware loading: rvvm.c:621-628 (rvvm_load_firmware) # FDT generation: src/rvvm.c:rvvm_init_fdt() (auto-generated if not provided)
# kernel loading: rvvm.c:630-638 (rvvm_load_kernel) # CLI help: src/main.c:rvvm_print_help()
# FDT loading: rvvm.c:641-648 (rvvm_load_fdt, standalone only)
# standalone CLI: main.c:213-282 (rvvm_cli_configure)
files: files:
# -- OpenSBI firmware (required) --
# M-mode firmware loaded at RESET_PC (0x80000000). This is the first code
# executed by the virtual machine. The standard choice is OpenSBI with
# U-Boot as payload (fw_payload.bin) or OpenSBI standalone (fw_jump.bin).
# The core calls rvvm_load_bootrom() which maps to rvvm_load_firmware().
- name: "fw_payload.bin" - name: "fw_payload.bin"
path: "rvvm/fw_payload.bin" path: "rvvm/fw_payload.bin"
required: true required: true
source_ref: "libretro.c:309-314, rvvm.c:621-628" source_ref: "libretro.c:309-315, rvvm.c:621-628"
note: > note: >
M-mode firmware loaded at 0x80000000. Typically OpenSBI with U-Boot OpenSBI firmware with U-Boot payload. This is the M-mode bootrom
payload (fw_payload.bin) or standalone (fw_jump.bin). Referenced by loaded at physical address 0x80000000. Without this file, the VM
the bootrom= key in the .rvvm config. cannot start. Common builds: opensbi fw_payload (includes U-Boot),
or fw_jump.bin (jumps to kernel directly). The file is referenced
by the bootrom= key in the .rvvm config file.
# -- Kernel image (optional) --
# S-mode kernel loaded at offset 0x200000 (rv64) or 0x400000 (rv32) from
# RAM base. Used with fw_jump.bin to boot Linux directly without U-Boot.
- name: "Image" - name: "Image"
path: "rvvm/Image" path: "rvvm/Image"
required: false required: false
source_ref: "libretro.c:316-318, rvvm.c:630-638" source_ref: "libretro.c:316-318, rvvm.c:630-638"
note: > note: >
S-mode kernel payload loaded at offset 0x200000 (rv64) or 0x400000 Linux kernel image or other S-mode payload. Loaded at a fixed offset
(rv32) from RAM base. Only needed with fw_jump.bin as bootrom. from RAM base (0x200000 for rv64, 0x400000 for rv32). Only needed
Referenced by the kernel= key in the .rvvm config. when using fw_jump.bin as bootrom. Referenced by the kernel= key
in the .rvvm config file.
# -- Device Tree Blob (optional) --
# Custom FDT passed to the guest. The core auto-generates a complete DTB
# with cpu topology, memory map, and all attached devices if not provided.
- name: "machine.dtb" - name: "machine.dtb"
path: "rvvm/machine.dtb" path: "rvvm/machine.dtb"
required: false required: false
mode: standalone source_ref: "rvvm.c:641-648, main.c:230"
source_ref: "main.c:230, rvvm.c:641-648"
note: > note: >
Custom Flattened Device Tree. The core auto-generates a DTB based on Custom Flattened Device Tree. The core generates a DTB automatically
machine configuration. The libretro binding does not parse a dtb= key based on the machine configuration (cpus, memory, devices), so this
in the .rvvm config, so this is only usable via the standalone CLI is only needed for special setups. The FDT address is passed to the
(-dtb flag). firmware in register a1 at boot.
notes: notes:
emulation_target: >
RVVM emulates a RISC-V machine with rv64imafdcb (or rv32ima) ISA,
SiFive PLIC interrupt controller, NVMe storage, RTL8169 networking,
framebuffer display, HID keyboard/mouse, UART, Goldfish RTC, and
PCI bus. It includes a tracing JIT with x86_64/ARM64/RISC-V backends.
firmware_sources: > firmware_sources: >
OpenSBI: https://github.com/riscv-software-src/opensbi/releases. OpenSBI builds: https://github.com/riscv-software-src/opensbi/releases
Pre-built images for RVVM: https://github.com/LekKit/RVVM/wiki/Running Pre-built fw_payload.bin (OpenSBI + U-Boot) for RVVM:
info_firmware_count: > https://github.com/LekKit/RVVM/wiki/Running
.info declares 0 firmware. Correct: the core loads firmware via config_format: >
user-specified paths in the .rvvm config, not from system_dir. The .rvvm file is a plain-text key=value config. Supported keys:
bootrom, kernel, nvme (up to 4), mem (MB), smp, cmdline, rv64/rv32.
Default: rv64, 256 MB RAM, 1 core, 640x480 framebuffer.
libretro_info: >
Core name: rvvm_libretro. Extension: .rvvm. Experimental: yes.
No save states, no cheats, needs_fullpath=true.
The core does not use the RetroArch system directory for firmware -
all paths are specified in the .rvvm config file relative to its
own directory.
+190 -143
View File
@@ -1,179 +1,226 @@
emulator: SAME CDi emulator: SAME CDi
type: libretro type: libretro
core_classification: community_fork cores: [same_cdi]
source: "https://github.com/libretro/same_cdi" source: "https://github.com/libretro/same_cdi"
upstream: "https://github.com/mamedev/mame" profiled_date: "2026-03-18"
profiled_date: "2026-03-25"
core_version: "Git" core_version: "Git"
display_name: "Philips - CDi (SAME CDi)" display_name: "Philips - CDi (SAME CDi)"
cores: [same_cdi]
systems: systems:
- cdi - cdi
notes: | notes: |
SAME CDi is a Single Arcade Machine Emulator fork of MAME libretro, stripped SAME CDi is a Single Arcade Machine Emulator fork of MAME libretro, stripped
down to just the Philips CD-i driver. The core hardcodes "cdimono1" as the down to just the Philips CD-i driver. The core hardcodes "cdimono1" as the
forced system (retro_init.cpp:86,454) and searches for MAME ROM ZIPs in: forced system (retro_init.cpp:86) and searches for MAME ROM ZIPs in:
<system_dir>/same_cdi/bios/ <system_dir>/same_cdi/bios/
The ROM path (-rp) is built at retro_init.cpp:534 as: The ROM path (-rp) is built at retro_init.cpp:534 as:
<game_path>;<system_dir>/same_cdi/bios/ <game_path>;<system_dir>/same_cdi/bios/
MAME expects each romset as a ZIP containing the individual ROM files. MAME expects each romset as a ZIP containing the individual ROM files listed
The ZIP filenames match the MAME driver names. Only cdimono1.zip is required below. The ZIP filenames (cdimono1.zip, cdimono2.zip, cdibios.zip) match
for consumer CD-i games; other ZIPs are for alternate hardware models or the MAME driver names. Only cdimono1.zip is required for consumer CD-i games;
Quizard arcade (unreachable without boot_from_cli core option). cdimono2.zip and cdibios.zip are optional (Mono-II and Quizard arcade).
The driver includes 5 system ROM sets (cdimono1, cdi910, cdimono2, cdi490a, cdi2015 is an older MAME 2015-based CD-i core with the same BIOS layout.
cdibios) plus Quizard arcade game ROM sets (clones of cdibios with i8751
protection MCU dumps). Upstream MAME has additional ROM sets not present
in this fork (gpi1200, Italian Quizard variants, cdimono2 alternate BIOS).
ROM definitions: src/mame/drivers/cdi.cpp:574-640. ROM definitions: src/mame/drivers/cdi.cpp lines 574-650.
Quizard game ROMs: src/mame/drivers/cdi.cpp:662-820. System forced: src/osd/libretro/libretro-internal/retro_init.cpp:86.
System forced: retro_init.cpp:86,454,525. BIOS path: src/osd/libretro/libretro-internal/retro_init.cpp:534.
BIOS path: retro_init.cpp:534. Firmware list: same_cdi_libretro.info firmware0-2.
files: files:
- name: cdimono1.zip # =====================================================
category: bios_zip # cdimono1.zip - Philips CD-i Mono-I (PAL) - REQUIRED
# Contains main CPU BIOS + servo/slave MCU dumps
# =====================================================
# Main CPU BIOS (one of three, selected via MAME BIOS switch)
- name: "cdi200.rom"
zip: "cdimono1.zip"
system: cdi
region: [north-america]
required: true
size: 524288 # 0x80000
crc32: "40c4e6b9"
sha1: "d961de803c89b3d1902d656ceb9ce7c02dccb40a"
note: "Magnavox CD-i 200 BIOS. Default BIOS for cdimono1."
source_ref: "src/mame/drivers/cdi.cpp:577"
- name: "cdi220b.rom"
zip: "cdimono1.zip"
system: cdi
region: [europe]
required: true
size: 524288 # 0x80000
crc32: "279683ca"
sha1: "53360a1f21ddac952e95306ced64186a3fc0b93e"
note: "Philips CD-i 220 F2 BIOS. Alternate BIOS for cdimono1."
source_ref: "src/mame/drivers/cdi.cpp:579"
- name: "cdi220.rom"
zip: "cdimono1.zip"
system: cdi
region: [europe]
required: false
size: 524288 # 0x80000
crc32: "584c0af8"
sha1: "5d757ab46b8c8fc36361555d978d7af768342d47"
note: "Philips CD-i 220 BIOS (alternate, does not boot). Marked non-working."
source_ref: "src/mame/drivers/cdi.cpp:581"
# Servo MCU (MC68HC705C8A) - shared with cdi910 dump, BAD_DUMP
- name: "zx405037p__cdi_servo_2.1__b43t__llek9215.mc68hc705c8a_withtestrom.7201"
zip: "cdimono1.zip"
system: cdi system: cdi
required: true required: true
note: "Forced system. Main CPU BIOS (3 region variants via MAME BIOS switch) + servo/slave MCU dumps." size: 8192 # 0x2000
source_ref: "src/mame/drivers/cdi.cpp:574-589" crc32: "7a3af407"
contents: sha1: "fdf8d78d6a0df4a56b5b963d72eabd39fcec163f"
- name: cdi200.rom note: "Servo MCU 2.1, taken from cdi910 (BAD_DUMP, no Mono-I specific dump)."
description: Magnavox CD-i 200 BIOS (default, US) source_ref: "src/mame/drivers/cdi.cpp:584"
size: 524288
crc32: "40c4e6b9"
sha1: "d961de803c89b3d1902d656ceb9ce7c02dccb40a"
- name: cdi220b.rom
description: Philips CD-i 220 F2 BIOS (alternate, PAL)
size: 524288
crc32: "279683ca"
sha1: "53360a1f21ddac952e95306ced64186a3fc0b93e"
- name: cdi220.rom
description: Philips CD-i 220 BIOS (non-working, does not boot)
size: 524288
crc32: "584c0af8"
sha1: "5d757ab46b8c8fc36361555d978d7af768342d47"
- name: "zx405037p__cdi_servo_2.1__b43t__llek9215.mc68hc705c8a_withtestrom.7201"
description: Servo MCU 2.1 MC68HC705C8A (BAD_DUMP, from cdi910)
size: 8192
crc32: "7a3af407"
sha1: "fdf8d78d6a0df4a56b5b963d72eabd39fcec163f"
- name: "zx405042p__cdi_slave_2.0__b43t__zzmk9213.mc68hc705c8a_withtestrom.7206"
description: Slave MCU 2.0 MC68HC705C8A (BAD_DUMP, from cdi910)
size: 8192
crc32: "688cda63"
sha1: "56d0acd7caad51c7de703247cd6d842b36173079"
- name: cdimono2.zip # Slave MCU (MC68HC705C8A) - shared with cdi910 dump, BAD_DUMP
category: bios_zip - name: "zx405042p__cdi_slave_2.0__b43t__zzmk9213.mc68hc705c8a_withtestrom.7206"
zip: "cdimono1.zip"
system: cdi
required: true
size: 8192 # 0x2000
crc32: "688cda63"
sha1: "56d0acd7caad51c7de703247cd6d842b36173079"
note: "Slave MCU 2.0, taken from cdi910 (BAD_DUMP, no Mono-I specific dump)."
source_ref: "src/mame/drivers/cdi.cpp:587"
# =====================================================
# cdimono2.zip - Philips CD-i Mono-II (NTSC) - OPTIONAL
# MACHINE_NOT_WORKING in MAME
# =====================================================
- name: "philips__cdi-220_ph3_r1.2__mb834200b-15__02f_aa__9402_z04.tc574200-le._1.7211"
zip: "cdimono2.zip"
system: cdi system: cdi
required: false required: false
note: "CD-i Mono-II (NTSC). MACHINE_NOT_WORKING. Listed in .info as optional." size: 524288 # 0x80000
source_ref: "src/mame/drivers/cdi.cpp:609-618" crc32: "17d723e7"
contents: sha1: "6c317a82e35d60ca5e7a74fc99f665055693169d"
- name: "philips__cdi-220_ph3_r1.2__mb834200b-15__02f_aa__9402_z04.tc574200-le._1.7211" note: "Mono-II main CPU BIOS. Philips CDI-220 PH3 R1.2."
description: Mono-II main CPU BIOS, Philips CDI-220 PH3 R1.2 source_ref: "src/mame/drivers/cdi.cpp:623"
size: 524288
crc32: "17d723e7"
sha1: "6c317a82e35d60ca5e7a74fc99f665055693169d"
- name: "zc405351p__servo_cdi_4.1__0d67p__lluk9404.mc68hc705c8a.7490"
description: Mono-II servo MCU 4.1
size: 8192
crc32: "2bc8e4e9"
sha1: "8cd052b532fc052d6b0077261c12f800e8655bb1"
- name: "zc405352p__slave_cdi_4.1__0d67p__lltr9403.mc68hc705c8a.7206"
description: Mono-II slave MCU 4.1
size: 8192
crc32: "5b19da07"
sha1: "cf02d84977050c71e87a38f1249e83c43a93949b"
- name: cdibios.zip - name: "zc405351p__servo_cdi_4.1__0d67p__lluk9404.mc68hc705c8a.7490"
category: bios_zip zip: "cdimono2.zip"
system: cdi system: cdi
required: false required: false
note: "CD-i BIOS for Quizard arcade. MACHINE_IS_BIOS_ROOT. Subset of cdimono1 + slave MCU." size: 8192 # 0x2000
source_ref: "src/mame/drivers/cdi.cpp:630-640" crc32: "2bc8e4e9"
contents: sha1: "8cd052b532fc052d6b0077261c12f800e8655bb1"
- name: cdi200.rom note: "Mono-II servo MCU 4.1."
description: Magnavox CD-i 200 BIOS (same as cdimono1) source_ref: "src/mame/drivers/cdi.cpp:626"
size: 524288
crc32: "40c4e6b9"
sha1: "d961de803c89b3d1902d656ceb9ce7c02dccb40a"
- name: cdi220b.rom
description: Philips CD-i 220 F2 BIOS (same as cdimono1)
size: 524288
crc32: "279683ca"
sha1: "53360a1f21ddac952e95306ced64186a3fc0b93e"
- name: "zx405042p__cdi_slave_2.0__b43t__zzmk9213.mc68hc705c8a_withtestrom.7206"
description: Slave MCU 2.0 (BAD_DUMP, same as cdimono1)
size: 8192
crc32: "688cda63"
sha1: "56d0acd7caad51c7de703247cd6d842b36173079"
- name: cdi910.zip - name: "zc405352p__slave_cdi_4.1__0d67p__lltr9403.mc68hc705c8a.7206"
category: bios_zip zip: "cdimono2.zip"
system: cdi system: cdi
required: false required: false
note: "CD-i 910-17P Mini-MMC (PAL). MACHINE_NOT_WORKING. Not in .info firmware list." size: 8192 # 0x2000
source_ref: "src/mame/drivers/cdi.cpp:591-607" crc32: "5b19da07"
contents: sha1: "cf02d84977050c71e87a38f1249e83c43a93949b"
- name: "philips__cd-i_2.1__mb834200b-15__26b_aa__9224_z01.tc574200.7211" note: "Mono-II slave MCU 4.1."
description: CD-i 910-17P Mini-MMC BIOS (default) source_ref: "src/mame/drivers/cdi.cpp:629"
size: 524288
crc32: "4ae3bee3"
sha1: "9729b4ee3ce0c17172d062339c47b1ab822b222b"
- name: cdi910.rom
description: CD-i 910 alternate BIOS
size: 524288
crc32: "2f3048d2"
sha1: "11c4c3e602060518b52e77156345fa01f619e793"
- name: "zx405037p__cdi_servo_2.1__b43t__llek9215.mc68hc705c8a_withtestrom.7201"
description: Servo MCU 2.1 (same ROM as cdimono1, not BAD_DUMP here)
size: 8192
crc32: "7a3af407"
sha1: "fdf8d78d6a0df4a56b5b963d72eabd39fcec163f"
- name: "zx405042p__cdi_slave_2.0__b43t__zzmk9213.mc68hc705c8a_withtestrom.7206"
description: Slave MCU 2.0 (same ROM as cdimono1, not BAD_DUMP here)
size: 8192
crc32: "688cda63"
sha1: "56d0acd7caad51c7de703247cd6d842b36173079"
- name: "ti_portugal_206xf__tibpal20l8-15cnt__m7205n.7205.bin"
description: PAL chip dump
size: 324
crc32: "dd167e0d"
sha1: "2ba82a4619d7a0f19e62e02a2841afd4d45d56ba"
- name: "ti_portugal_774_206xf__tibpal16l8-10cn_m7204n.7204.bin"
description: PAL chip dump
size: 260
crc32: "04e6bd37"
sha1: "153d1a977291bedb7420484a9f889325dbd3628e"
- name: cdi490a.zip # =====================================================
category: bios_zip # cdibios.zip - CD-i BIOS for Quizard arcade - OPTIONAL
# Subset of cdimono1 ROMs + slave MCU, used by Quizard games
# =====================================================
# cdibios reuses cdi200.rom and cdi220b.rom (same hashes as cdimono1)
# plus the slave MCU. Listed here for completeness of the ZIP contents.
- name: "cdi200.rom"
zip: "cdibios.zip"
system: cdi system: cdi
required: false required: false
note: "CD-i 490. MACHINE_NOT_WORKING. Not in .info firmware list." size: 524288 # 0x80000
source_ref: "src/mame/drivers/cdi.cpp:620-628" crc32: "40c4e6b9"
contents: sha1: "d961de803c89b3d1902d656ceb9ce7c02dccb40a"
- name: cdi490a.rom note: "Magnavox CD-i 200 BIOS (same as cdimono1). For Quizard arcade."
description: CD-i 490 main CPU BIOS source_ref: "src/mame/drivers/cdi.cpp:639"
size: 524288
crc32: "e2f200f6" - name: "cdi220b.rom"
sha1: "c9bf3c4c7e4fe5cbec3fe3fc993c77a4522ca547" zip: "cdibios.zip"
- name: impega.rom system: cdi
description: MPEG audio decoder ROM required: false
size: 262144 size: 524288 # 0x80000
crc32: "84d6f6aa" crc32: "279683ca"
sha1: "02526482a0851ea2a7b582d8afaa8ef14a8bd914" sha1: "53360a1f21ddac952e95306ced64186a3fc0b93e"
- name: vmpega.rom note: "Philips CD-i 220 F2 BIOS (same as cdimono1). For Quizard arcade."
description: MPEG video decoder ROM source_ref: "src/mame/drivers/cdi.cpp:641"
size: 262144
crc32: "db264e8b" - name: "zx405042p__cdi_slave_2.0__b43t__zzmk9213.mc68hc705c8a_withtestrom.7206"
sha1: "be407fbc102f1731a0862554855e963e5a47c17b" zip: "cdibios.zip"
system: cdi
required: false
size: 8192 # 0x2000
crc32: "688cda63"
sha1: "56d0acd7caad51c7de703247cd6d842b36173079"
note: "Slave MCU 2.0 (BAD_DUMP, same as cdimono1). For Quizard arcade."
source_ref: "src/mame/drivers/cdi.cpp:645"
# =====================================================
# Additional MAME romsets (not in libretro .info firmware list)
# These are part of the MAME driver but not declared as
# required firmware by the libretro core.
# =====================================================
# cdi910 - CD-i 910-17P Mini-MMC (PAL) - MACHINE_NOT_WORKING
- name: "philips__cd-i_2.1__mb834200b-15__26b_aa__9224_z01.tc574200.7211"
zip: "cdi910.zip"
system: cdi
required: false
size: 524288 # 0x80000
crc32: "4ae3bee3"
sha1: "9729b4ee3ce0c17172d062339c47b1ab822b222b"
note: "CD-i 910-17P Mini-MMC BIOS. Not listed in libretro firmware."
source_ref: "src/mame/drivers/cdi.cpp:594"
- name: "cdi910.rom"
zip: "cdi910.zip"
system: cdi
required: false
size: 524288 # 0x80000
crc32: "2f3048d2"
sha1: "11c4c3e602060518b52e77156345fa01f619e793"
note: "CD-i 910 alternate BIOS. Not listed in libretro firmware."
source_ref: "src/mame/drivers/cdi.cpp:596"
# cdi490a - CD-i 490 - MACHINE_NOT_WORKING
- name: "cdi490a.rom"
zip: "cdi490a.zip"
system: cdi
required: false
size: 524288 # 0x80000
crc32: "e2f200f6"
sha1: "c9bf3c4c7e4fe5cbec3fe3fc993c77a4522ca547"
note: "CD-i 490 BIOS. Not listed in libretro firmware."
source_ref: "src/mame/drivers/cdi.cpp:633"
- name: "impega.rom"
zip: "cdi490a.zip"
system: cdi
required: false
size: 262144 # 0x40000
crc32: "84d6f6aa"
sha1: "02526482a0851ea2a7b582d8afaa8ef14a8bd914"
note: "CD-i 490 MPEG audio decoder ROM."
source_ref: "src/mame/drivers/cdi.cpp:636"
- name: "vmpega.rom"
zip: "cdi490a.zip"
system: cdi
required: false
size: 262144 # 0x40000
crc32: "db264e8b"
sha1: "be407fbc102f1731a0862554855e963e5a47c17b"
note: "CD-i 490 MPEG video decoder ROM."
source_ref: "src/mame/drivers/cdi.cpp:637"
platform_details: platform_details:
cdi: cdi:
@@ -185,4 +232,4 @@ platform_details:
rom_path_flag: "-rp" rom_path_flag: "-rp"
rom_search_path: "<game_path>;<system_dir>/same_cdi/bios/" rom_search_path: "<game_path>;<system_dir>/same_cdi/bios/"
supported_extensions: ["chd", "iso", "cue"] supported_extensions: ["chd", "iso", "cue"]
source_ref: "retro_init.cpp:86,454,525,534" source_ref: "retro_init.cpp:86,534 same_cdi_libretro.info"
+79 -42
View File
@@ -1,10 +1,8 @@
emulator: SameBoy emulator: SameBoy
type: libretro type: libretro
core_classification: official_port
source: "https://github.com/libretro/SameBoy" source: "https://github.com/libretro/SameBoy"
upstream: "https://github.com/LIJI32/SameBoy" profiled_date: "2026-03-18"
profiled_date: "2026-03-25" core_version: "0.14.7"
core_version: "0.15.4"
display_name: "Nintendo - Game Boy / Color (SameBoy)" display_name: "Nintendo - Game Boy / Color (SameBoy)"
cores: cores:
- sameboy - sameboy
@@ -15,90 +13,128 @@ systems:
notes: | notes: |
SameBoy is a high-accuracy Game Boy, Game Boy Color and Super Game Boy SameBoy is a high-accuracy Game Boy, Game Boy Color and Super Game Boy
emulator by LIJI32 (official_port: same author maintains upstream and emulator written by Lior Halphon (LIJI32).
libretro fork).
All boot ROMs are optional. SameBoy compiles open-source boot ROM All boot ROMs are optional. SameBoy ships its own open-source boot ROM
replacements from BootROMs/*.asm and embeds them into the libretro replacements compiled from BootROMs/*.asm and embedded directly into
binary (extern arrays dmg_boot, cgb_boot, agb_boot, sgb_boot, the libretro core binary (extern arrays dmg_boot, cgb_boot, agb_boot,
sgb2_boot in libretro.c:129-130). These are SameBoy-authored sgb_boot, sgb2_boot in libretro.c:129-130). These built-in boot ROMs
replacements, not Nintendo originals. are SameBoy-authored replacements, not Nintendo originals.
The libretro port (boot_rom_load, libretro.c:512-588) tries to load The libretro port (libretro.c boot_rom_load(), line 513) tries to load
an external boot ROM from the system directory first. Filename is an external boot ROM from the system directory first. The filename is
constructed as "{model}_boot.bin". If missing, the embedded boot ROM constructed as "{model}_boot.bin" where model is one of: dmg0, dmg,
is used as fallback. mgb, sgb, sgb2, cgb0, cgb, agb. If the file is missing or unreadable,
the embedded boot ROM is used as fallback.
Boot ROM selection depends on the sameboy_model core option Boot ROM type selection depends on the emulated model configured via
(request_boot_rom in Core/gb.c:1587-1625): the sameboy_model core option (request_boot_rom in Core/gb.c:1588):
DMG_B -> GB_BOOT_ROM_DMG -> dmg_boot.bin DMG_B -> GB_BOOT_ROM_DMG -> dmg_boot.bin
SGB_NTSC/PAL -> GB_BOOT_ROM_SGB -> sgb_boot.bin MGB -> GB_BOOT_ROM_MGB -> mgb_boot.bin
SGB/SGB_NTSC -> GB_BOOT_ROM_SGB -> sgb_boot.bin
SGB2 -> GB_BOOT_ROM_SGB2 -> sgb2_boot.bin SGB2 -> GB_BOOT_ROM_SGB2 -> sgb2_boot.bin
CGB_A..E -> GB_BOOT_ROM_CGB -> cgb_boot.bin CGB_0 -> GB_BOOT_ROM_CGB_0 -> cgb0_boot.bin
AGB_A/GBP_A -> GB_BOOT_ROM_AGB -> agb_boot.bin CGB_A..CGB_E -> GB_BOOT_ROM_CGB -> cgb_boot.bin
AGB_A (GBA) -> GB_BOOT_ROM_AGB -> agb_boot.bin
.info declares firmware_count=2 (dmg, cgb only). Actual reachable Built-in fallback mapping (some models share a boot ROM):
files in the libretro port are 5 (adds sgb, sgb2, agb). DMG_0 and MGB reuse dmg_boot (not yet separately implemented)
CGB_0 reuses cgb_boot (not yet separately implemented)
Unreachable boot ROMs in the libretro port (array entries exist in The boot ROM buffer is 0x900 (2304) bytes. DMG/MGB/SGB/SGB2 boot ROMs
boot_rom_load but no model option triggers them): are 256 bytes (mapped at 0x0000-0x00FF). CGB/AGB boot ROMs are 2304
- dmg0_boot.bin: GB_MODEL_DMG_0 commented out (Core/gb.h:100) bytes (mapped at 0x0000-0x00FF and 0x0200-0x08FF).
- mgb_boot.bin: GB_MODEL_MGB active but not exposed by core options
- cgb0_boot.bin: GB_MODEL_CGB_0 active but not exposed by core options
Upstream standalone (v1.0.3) supports these plus cgbE_boot.bin and
agb0_boot.bin (10 boot ROM types total).
No validation performed on loaded boot ROMs. GB_load_boot_rom_from_buffer SameDuck (MegaDuck emulator) is a separate project, not part of this
(Core/gb.c:266-273) does a plain memcpy capped at 0x900 bytes. core.
files: files:
# --- DMG boot ROM (optional, built-in fallback) ---
- name: "dmg_boot.bin" - name: "dmg_boot.bin"
system: nintendo-gb system: nintendo-gb
description: "Game Boy (DMG) boot ROM" description: "Original Game Boy (DMG) boot ROM"
required: false required: false
hle_fallback: true hle_fallback: true
size: 256 size: 256
source_ref: "libretro.c:519,530,556 (boot_rom_load); Core/gb.c:1594 (request_boot_rom)" source_ref: "libretro.c:519,530,556 (boot_rom_load)"
notes: "Also used as fallback for DMG_0 and MGB models when dedicated boot ROMs are absent."
# --- MGB boot ROM (optional, built-in fallback) ---
- name: "mgb_boot.bin"
system: nintendo-gb
description: "Game Boy Pocket (MGB) boot ROM"
required: false
hle_fallback: true
size: 256
source_ref: "libretro.c:520,531,556"
notes: "Built-in fallback reuses dmg_boot (mgb not separately implemented yet)."
# --- SGB boot ROM (optional, built-in fallback) ---
- name: "sgb_boot.bin" - name: "sgb_boot.bin"
system: nintendo-sgb system: nintendo-sgb
description: "Super Game Boy (SGB) boot ROM" description: "Super Game Boy (SGB) boot ROM"
required: false required: false
hle_fallback: true hle_fallback: true
size: 256 size: 256
source_ref: "libretro.c:521,532,556; Core/gb.c:1600-1604" source_ref: "libretro.c:521,532,556"
notes: "Used for SGB_NTSC, SGB_PAL models. Also loaded when borrowing SGB border (Core/gb.c:264)." notes: "Used for SGB and SGB_NTSC models. Also loaded temporarily when borrowing SGB border for non-SGB games."
# --- SGB2 boot ROM (optional, built-in fallback) ---
- name: "sgb2_boot.bin" - name: "sgb2_boot.bin"
system: nintendo-sgb system: nintendo-sgb
description: "Super Game Boy 2 (SGB2) boot ROM" description: "Super Game Boy 2 (SGB2) boot ROM"
required: false required: false
hle_fallback: true hle_fallback: true
size: 256 size: 256
source_ref: "libretro.c:522,533,556; Core/gb.c:1607" source_ref: "libretro.c:522,533,556"
notes: "Separate from sgb_boot.bin, unlike some other cores that merge SGB/SGB2."
# --- CGB boot ROM (optional, built-in fallback) ---
- name: "cgb_boot.bin" - name: "cgb_boot.bin"
system: nintendo-gbc system: nintendo-gbc
description: "Game Boy Color (CGB) boot ROM" description: "Game Boy Color (CGB) boot ROM"
required: false required: false
hle_fallback: true hle_fallback: true
size: 2304 size: 2304
source_ref: "libretro.c:524,535,556; Core/gb.c:1613-1618" source_ref: "libretro.c:524,535,556"
notes: "Used for CGB revisions A through E in the libretro port." notes: "Also used as fallback for CGB_0 model (not separately implemented yet)."
# --- CGB0 boot ROM (optional, built-in fallback) ---
- name: "cgb0_boot.bin"
system: nintendo-gbc
description: "Game Boy Color early revision (CGB-0) boot ROM"
required: false
hle_fallback: true
size: 2304
source_ref: "libretro.c:523,534,556"
notes: "Built-in fallback reuses cgb_boot (cgb0 not separately implemented yet)."
# --- AGB boot ROM (optional, built-in fallback) ---
- name: "agb_boot.bin" - name: "agb_boot.bin"
system: nintendo-gbc system: nintendo-gbc
description: "Game Boy Advance in GBC mode (AGB) boot ROM" description: "Game Boy Advance in GBC mode (AGB) boot ROM"
required: false required: false
hle_fallback: true hle_fallback: true
size: 2304 size: 2304
source_ref: "libretro.c:525,536,556; Core/gb.c:1621" source_ref: "libretro.c:525,536,556"
notes: "Enables GBA-enhanced palettes in compatible GBC games." notes: "Used when emulating a GBA running GB/GBC software. Enables GBA-enhanced palettes in compatible GBC games."
# --- DMG0 boot ROM (optional, built-in fallback) ---
- name: "dmg0_boot.bin"
system: nintendo-gb
description: "Original Game Boy early revision (DMG-0) boot ROM"
required: false
hle_fallback: true
size: 256
source_ref: "SDL/main.c:640 (standalone), libretro.c:518,529"
notes: "Only referenced in standalone SDL build filename list. Built-in fallback reuses dmg_boot."
builtin_boot_roms: builtin_boot_roms:
description: | description: |
Open-source boot ROM replacements compiled from BootROMs/ assembly. SameBoy includes open-source boot ROM replacements compiled from
Not Nintendo originals. assembly source in BootROMs/ directory. These are NOT Nintendo
originals. They reproduce the boot animation and hardware
initialization but are clean-room implementations.
sources: sources:
- "BootROMs/dmg_boot.asm -> dmg_boot (256 bytes)" - "BootROMs/dmg_boot.asm -> dmg_boot (256 bytes)"
- "BootROMs/sgb_boot.asm -> sgb_boot (256 bytes)" - "BootROMs/sgb_boot.asm -> sgb_boot (256 bytes)"
@@ -121,3 +157,4 @@ builtin_boot_roms:
agb_boot.bin: agb_boot.bin:
md5: "7e095aa30941da3086fa0e9221335370" md5: "7e095aa30941da3086fa0e9221335370"
sha1: "3b6231bdf840fb889f402d0ae89f21adb077323a" sha1: "3b6231bdf840fb889f402d0ae89f21adb077323a"
notes: "These are SameBoy's own boot ROMs, not Nintendo originals. The hashes above identify the built-in versions."
+6 -23
View File
@@ -1,25 +1,8 @@
emulator: sameduck emulator: "sameduck"
type: libretro type: alias
core_classification: official_port alias_of: "sameboy"
source: "https://github.com/LIJI32/SameBoy" profiled_date: "2026-03-18"
upstream: "https://github.com/LIJI32/SameBoy" core_version: "git"
profiled_date: "2026-03-25"
core_version: "0.13.6"
display_name: "Mega Duck / Cougar Boy (SameDuck)" display_name: "Mega Duck / Cougar Boy (SameDuck)"
cores: note: "This core uses the same BIOS/firmware as sameboy. See emulators/sameboy.yml for details."
- sameduck
systems:
- mega-duck
notes: |
SameDuck is the Mega Duck / Cougar Boy branch of SameBoy by LIJI32.
Built from the SameDuck branch of the upstream repo (no separate
libretro fork). The Mega Duck hardware has no boot ROM. All boot ROM
loading functions are stubs in this branch (GB_load_boot_rom returns 0,
request_boot_rom is empty, no BootROMs/ directory exists).
The libretro port loads only game ROMs via GB_load_rom(). No
boot_rom_load_callback is set. retro_system_directory is stored but
never used for file loading.
files: [] files: []
+1 -4
View File
@@ -1,13 +1,10 @@
emulator: ScummVM emulator: ScummVM
type: libretro type: libretro
core_classification: game_engine
source: "https://github.com/libretro/scummvm" source: "https://github.com/libretro/scummvm"
upstream: "https://github.com/scummvm/scummvm"
logo: "https://raw.githubusercontent.com/scummvm/scummvm/master/icons/scummvm.svg" logo: "https://raw.githubusercontent.com/scummvm/scummvm/master/icons/scummvm.svg"
profiled_date: "2026-03-25" profiled_date: "2026-03-18"
core_version: "2.8.0git" core_version: "2.8.0git"
display_name: "ScummVM" display_name: "ScummVM"
cores: [scummvm]
systems: [scummvm] systems: [scummvm]
# ScummVM is a multi-engine point-and-click adventure game interpreter. # ScummVM is a multi-engine point-and-click adventure game interpreter.
+90 -129
View File
@@ -1,9 +1,7 @@
emulator: SDLPAL emulator: SDLPAL
type: libretro type: libretro
core_classification: official_port
source: "https://github.com/sdlpal/sdlpal" source: "https://github.com/sdlpal/sdlpal"
upstream: "https://github.com/sdlpal/sdlpal" profiled_date: "2026-03-18"
profiled_date: "2026-03-25"
core_version: "v2.0.1" core_version: "v2.0.1"
display_name: "SDLPAL" display_name: "SDLPAL"
cores: cores:
@@ -11,171 +9,175 @@ cores:
systems: systems:
- sdlpal - sdlpal
# SDLPAL is an open-source reimplementation of the classic Chinese RPG
# "Xian Jian Qi Xia Zhuan" (Sword and Fairy / PAL) by SoftStar Inc.
#
# It does NOT include any game data. The original game files are proprietary
# and must be obtained separately (e.g. from the Steam release).
#
# The core accepts a .cfg file pointing to the game directory (needs_fullpath).
# When launched without a game (supports_no_game = true), it looks for data
# in <system_dir>/sdlpal/ (libretro.c:201-204).
#
# Data file search (util.c:728-781, UTIL_CheckResourceFiles):
# Required: 13 common .mkf archives + message file (word.dat or m.msg)
# Optional: sound files (voc.mkf, sounds.mkf), music files (midi.mkf, mus.mkf)
#
# Additional optional files loaded at runtime:
# desc.dat - object descriptions (global.c:204, DOS version only)
# mus.mkf - MIDI music archive (audio.c:305)
#
# All files are game data, not BIOS or firmware. No system files are needed
# beyond the original game resource files.
notes: | notes: |
Game engine reimplementing the classic Chinese RPG PAL (Sword and Fairy) No BIOS or firmware required. SDLPAL is a game engine that needs the
by SoftStar Inc. No BIOS or firmware required. All files are proprietary original PAL (Sword and Fairy) game data files to run.
game data from the original 1995 DOS or 1998 Win95 release.
Place game files in <system_dir>/sdlpal/ or point a .cfg at the game Place game files in <system_dir>/sdlpal/ or point a .cfg file at the
directory. The game is available on Steam (app 1546570). Auto-detects game directory. The game is available on Steam (app 1546570).
DOS vs Win95 game data.
The libretro port disables MP3, OGG, OPUS, native MIDI, and CD audio The core supports both DOS (original 1995) and Win95 (1998 remake)
backends (pal_config.h). Only RIX (mus.mkf) and software MIDI synthesis versions of the game data. It auto-detects which version is present.
via Timidity/TinySoundFont (midi.mkf + user-provided soundfont) are
available for music.
files: files:
# ================================================================ # ================================================================
# Required game data archives # Required game data archives (proprietary, not distributable)
# util.c:733-737 UTIL_CheckResourceFiles common_files[] # util.c:733-737 - UTIL_CheckResourceFiles common_files[]
# global.c:175-182 PAL_InitGlobals
# ================================================================ # ================================================================
- name: "abc.mkf" - name: "abc.mkf"
category: game_data category: game_data
path: "sdlpal/abc.mkf" path: "sdlpal/abc.mkf"
required: true required: true
source_ref: "util.c:734, global.c:55, battle.c:879" source_ref: "util.c:734, battle.c:879, global.c:55"
note: "Animation and battle character data archive." note: >
Animation/battle character data archive. Required for battle scenes
and character animations.
- name: "ball.mkf" - name: "ball.mkf"
category: game_data category: game_data
path: "sdlpal/ball.mkf" path: "sdlpal/ball.mkf"
required: true required: true
source_ref: "util.c:734, global.c:177" source_ref: "util.c:734, global.c:177"
note: "Magic effect graphics archive." note: >
Ball/magic effect graphics archive.
- name: "data.mkf" - name: "data.mkf"
category: game_data category: game_data
path: "sdlpal/data.mkf" path: "sdlpal/data.mkf"
required: true required: true
source_ref: "util.c:734, global.c:178" source_ref: "util.c:734, global.c:178"
note: "Core game data archive (scripts, events, game logic)." note: >
Core game data archive containing scripts, events, and game logic.
- name: "f.mkf" - name: "f.mkf"
category: game_data category: game_data
path: "sdlpal/f.mkf" path: "sdlpal/f.mkf"
required: true required: true
source_ref: "util.c:734, global.c:179" source_ref: "util.c:734, global.c:179"
note: "Face/portrait graphics archive." note: >
Face/portrait graphics archive for character dialog.
- name: "fbp.mkf" - name: "fbp.mkf"
category: game_data category: game_data
path: "sdlpal/fbp.mkf" path: "sdlpal/fbp.mkf"
required: true required: true
source_ref: "util.c:735, global.c:175" source_ref: "util.c:735, global.c:175"
note: "Full-screen background picture archive (cutscenes, title)." note: >
Full-screen background picture archive (cutscenes, title screen).
- name: "fire.mkf" - name: "fire.mkf"
category: game_data category: game_data
path: "sdlpal/fire.mkf" path: "sdlpal/fire.mkf"
required: true required: true
source_ref: "util.c:735, global.c:180" source_ref: "util.c:735, global.c:180"
note: "Fire/spell effect graphics archive." note: >
Fire/spell effect graphics archive.
- name: "gop.mkf" - name: "gop.mkf"
category: game_data category: game_data
path: "sdlpal/gop.mkf" path: "sdlpal/gop.mkf"
required: true required: true
source_ref: "util.c:735, res.c:234" source_ref: "util.c:735, res.c:234"
note: "Game object palette/graphics archive." note: >
GOP (game object palette/graphics) archive.
- name: "map.mkf" - name: "map.mkf"
category: game_data category: game_data
path: "sdlpal/map.mkf" path: "sdlpal/map.mkf"
required: true required: true
source_ref: "util.c:735, global.c:55, res.c:233" source_ref: "util.c:735, res.c:233, global.c:55"
note: "Map tile and layout data archive." note: >
Map tile and layout data archive for all game locations.
- name: "mgo.mkf" - name: "mgo.mkf"
category: game_data category: game_data
path: "sdlpal/mgo.mkf" path: "sdlpal/mgo.mkf"
required: true required: true
source_ref: "util.c:736, global.c:176" source_ref: "util.c:736, global.c:176"
note: "Map graphic object (sprite overlay) archive." note: >
Map graphic object (sprite overlay) archive.
- name: "pat.mkf" - name: "pat.mkf"
category: game_data category: game_data
path: "sdlpal/pat.mkf" path: "sdlpal/pat.mkf"
required: true required: true
source_ref: "util.c:736, palette.c:53" source_ref: "util.c:736, palette.c:53"
note: "Palette data archive." note: >
Palette data archive for color management.
- name: "rgm.mkf" - name: "rgm.mkf"
category: game_data category: game_data
path: "sdlpal/rgm.mkf" path: "sdlpal/rgm.mkf"
required: true required: true
source_ref: "util.c:736, global.c:181" source_ref: "util.c:736, global.c:181"
note: "RGM graphics archive." note: >
RGM graphics archive.
- name: "rng.mkf" - name: "rng.mkf"
category: game_data category: game_data
path: "sdlpal/rng.mkf" path: "sdlpal/rng.mkf"
required: true required: true
source_ref: "util.c:736, rngplay.c:402" source_ref: "util.c:736, rngplay.c:402"
note: "RNG animation/cutscene sequence archive." note: >
RNG animation/cutscene sequence archive.
- name: "sss.mkf" - name: "sss.mkf"
category: game_data category: game_data
path: "sdlpal/sss.mkf" path: "sdlpal/sss.mkf"
required: true required: true
source_ref: "util.c:737, global.c:182" source_ref: "util.c:737, global.c:182"
note: "SSS data archive (message offsets in chunk 3)." note: >
SSS data archive.
# ================================================================ # ================================================================
# Message/text data (both required in default mode) # Message/text data (one of these is required)
# text.c:718-719 PAL_InitText # util.c:739-741 - msg_files[]
# ================================================================ # ================================================================
- name: "m.msg"
category: game_data
path: "sdlpal/m.msg"
required: true
source_ref: "util.c:740, text.c:718"
note: "Message text data (dialog, story). Opened via UTIL_OpenRequiredFile in default mode."
- name: "word.dat" - name: "word.dat"
category: game_data category: game_data
path: "sdlpal/word.dat" path: "sdlpal/word.dat"
required: true required: true
source_ref: "util.c:741, text.c:719, global.c:197" source_ref: "util.c:741, text.c:719, global.c:197"
note: "Word data (menu items, status labels, item/spell names)." note: >
Game text/dialog data file (DOS version). Contains all in-game text
strings. Either word.dat or m.msg is needed depending on game version.
# ================================================================ - name: "m.msg"
# Object descriptions (DOS version only)
# global.c:204 PAL_LoadObjectDesc -> ui.c:864
# ================================================================
- name: "desc.dat"
category: game_data category: game_data
path: "sdlpal/desc.dat" path: "sdlpal/m.msg"
required: false required: false
source_ref: "global.c:204, ui.c:864" source_ref: "util.c:740"
note: "Object description strings. DOS version only (skipped for Win95). Returns NULL if absent." note: >
Alternative message file format. Used by some game distributions
# ================================================================ instead of word.dat. The core checks for a configured message file
# Embedded font files (optional, DOS game data) first, then falls back to word.dat.
# font.c:102-197 PAL_LoadEmbeddedFont
# ================================================================
- name: "wor16.asc"
category: game_data
path: "sdlpal/wor16.asc"
required: false
source_ref: "font.c:114"
note: "Chinese character code mapping for embedded font. Silently skipped if absent."
- name: "wor16.fon"
category: game_data
path: "sdlpal/wor16.fon"
required: false
source_ref: "font.c:172"
note: "Chinese character bitmap font data. Used with wor16.asc for DOS font rendering."
# ================================================================ # ================================================================
# Sound effect files (optional, at least one recommended) # Sound effect files (optional, at least one recommended)
# sound.c:962-975 SOUND_Init # util.c:743 - sound_files[]
# ================================================================ # ================================================================
- name: "voc.mkf" - name: "voc.mkf"
@@ -183,78 +185,37 @@ files:
path: "sdlpal/voc.mkf" path: "sdlpal/voc.mkf"
required: false required: false
source_ref: "util.c:743, sound.c:969" source_ref: "util.c:743, sound.c:969"
note: "VOC format sound effects archive (DOS version). Preferred for DOS game data." note: >
VOC format sound effects archive (DOS version). One of voc.mkf or
sounds.mkf is needed for sound effects.
- name: "sounds.mkf" - name: "sounds.mkf"
category: game_data category: game_data
path: "sdlpal/sounds.mkf" path: "sdlpal/sounds.mkf"
required: false required: false
source_ref: "util.c:743, sound.c:964" source_ref: "util.c:743, sound.c:964"
note: "WAV format sound effects archive (Win95 version). Preferred for Win95 game data." note: >
WAV format sound effects archive (Win95 version). Alternative to
voc.mkf with higher quality audio.
# ================================================================ # ================================================================
# Music files (optional, at least one recommended) # Music files (optional, at least one recommended)
# audio.c:302-305 AUDIO_OpenDevice # util.c:744 - music_files[]
# ================================================================ # ================================================================
- name: "midi.mkf"
category: game_data
path: "sdlpal/midi.mkf"
required: false
source_ref: "util.c:744, midi.c:78, midi_tsf.c:68"
note: >
MIDI music archive. Used when Music type is set to MIDI.
- name: "mus.mkf" - name: "mus.mkf"
category: game_data category: game_data
path: "sdlpal/mus.mkf" path: "sdlpal/mus.mkf"
required: false required: false
source_ref: "util.c:744, audio.c:305" source_ref: "util.c:744, audio.c:305"
note: "RIX/OPL music archive. Default music source, played through OPL emulation." note: >
RIX/OPL music archive. Default music source for the game. Contains
- name: "midi.mkf" FM synthesizer music data played through OPL emulation.
category: game_data
path: "sdlpal/midi.mkf"
required: false
source_ref: "util.c:744, midi.c:78, midi_tsf.c:68, midi_timidity.c:130"
note: "MIDI music archive. Used when Music=MIDI is configured in sdlpal.cfg."
# ================================================================
# AVI cutscene videos (Win95 version only, optional)
# aviplay.c:641-772 PAL_PlayAVI
# Guarded by fEnableAviPlay && fIsWIN95 (global.c:192)
# ================================================================
- name: "1.avi"
category: game_data
path: "sdlpal/1.avi"
required: false
source_ref: "main.c:197"
note: "Trademark screen video (Win95 only). Falls back to RNG animation if absent."
- name: "2.avi"
category: game_data
path: "sdlpal/2.avi"
required: false
source_ref: "main.c:237"
note: "Splash screen video (Win95 only). Falls back to sprite animation if absent."
- name: "3.avi"
category: game_data
path: "sdlpal/3.avi"
required: false
source_ref: "uigame.c:162"
note: "In-game event video (Win95 only)."
- name: "4.avi"
category: game_data
path: "sdlpal/4.avi"
required: false
source_ref: "ending.c:418"
note: "Ending sequence video part 1 (Win95 only)."
- name: "5.avi"
category: game_data
path: "sdlpal/5.avi"
required: false
source_ref: "ending.c:420"
note: "Ending sequence video part 2 (Win95 only)."
- name: "6.avi"
category: game_data
path: "sdlpal/6.avi"
required: false
source_ref: "ending.c:485"
note: "Ending sequence video part 3 (Win95 only)."
+9 -11
View File
@@ -1,9 +1,7 @@
emulator: SimCoupe emulator: SimCoupe
type: libretro type: libretro
core_classification: community_fork
source: "https://github.com/libretro/libretro-simcoupe" source: "https://github.com/libretro/libretro-simcoupe"
upstream: "https://github.com/simonowen/simcoupe" profiled_date: "2026-03-18"
profiled_date: "2026-03-25"
core_version: "Git" core_version: "Git"
display_name: "SAM Coupe (SimCoupe)" display_name: "SAM Coupe (SimCoupe)"
cores: cores:
@@ -12,15 +10,15 @@ systems:
- sam-coupe - sam-coupe
notes: | notes: |
SAM Coupe emulator by Simon Owen. Port based on old pre-1.0 SimCoupe SimCoupe is an emulator for the SAM Coupe, a British 8-bit home
codebase. Experimental, incomplete (no sound, partial input). computer by Miles Gordon Technology (1989). The SAM Coupe was
designed as a successor to the ZX Spectrum with a Z80B CPU at 6 MHz
and custom ASIC graphics.
SAM Coupe ROM v3.0 and SAMDOS 2.0 embedded in the binary (SAMROM.h, No external BIOS or ROM files required. The SAM Coupe ROM is built
SAMDOS.h). HDBOOT patches for Atom Lite also embedded (HDBOOT.h). into the emulator. The libretro wrapper does not request any files
The libretro wrapper never accesses the system directory. from the system directory.
Upstream v1.2.x loads external resource files (samcoupe.rom, Loads .dsk, .sad, .mgt, .sbt, and .cpm disk images as content.
sp0256-al2.bin for VoiceBox speech synthesis). The libretro port
lacks VoiceBox/SP0256 support (commented out in IO.cpp).
files: [] files: []
+7 -69
View File
@@ -1,70 +1,8 @@
emulator: skyemu emulator: "skyemu"
type: standalone + libretro type: alias
core_classification: official_port alias_of: "mgba"
source: https://github.com/skylersaleh/SkyEmu/blob/v5/src/libretro.c profiled_date: "2026-03-18"
upstream: https://github.com/skylersaleh/SkyEmu core_version: "Git"
profiled_date: "2026-03-25"
core_version: "v5"
display_name: "Nintendo - Game Boy/GBA/NDS (SkyEmu)" display_name: "Nintendo - Game Boy/GBA/NDS (SkyEmu)"
note: "This core uses the same BIOS/firmware as mgba. See emulators/mgba.yml for details."
cores: files: []
- skyemu
systems:
- nintendo-gb
- nintendo-gbc
- nintendo-gba
- nintendo-ds
notes: |
Multi-system emulator by skylersaleh. Libretro core built from the upstream repo.
All BIOS optional; bundles Cult-of-GBA BIOS (GBA), DraStic free BIOS (NDS ARM7/ARM9),
stub firmware (NDS), and HLE boot skip (GB/GBC). BIOS loading controlled by core options
(default: on). Files loaded from system_dir/SkyEmu/ subdirectory.
Standalone validates exact BIOS file size; libretro only rejects files exceeding buffer.
.info missing gb_bios.bin (gb.h:1603).
files:
- name: cgb_boot.bin
description: GBC boot ROM
path: SkyEmu/cgb_boot.bin
required: false
hle_fallback: true
aliases: [gbc_bios.bin, cgb0_boot.bin, cgb_agb_boot.bin]
source_ref: "src/gb.h:1593-1596, 1605-1608"
- name: dmg_rom.bin
description: DMG boot ROM
path: SkyEmu/dmg_rom.bin
required: false
hle_fallback: true
aliases: [dmg0_rom.bin, gb_bios.bin]
source_ref: "src/gb.h:1601-1603"
- name: gba_bios.bin
description: GBA BIOS
path: SkyEmu/gba_bios.bin
required: false
hle_fallback: true
source_ref: "src/gba.h:1726-1730"
- name: nds7.bin
description: NDS ARM7 BIOS
path: SkyEmu/nds7.bin
required: false
hle_fallback: true
source_ref: "src/nds.h:3088-3089"
- name: nds9.bin
description: NDS ARM9 BIOS
path: SkyEmu/nds9.bin
required: false
hle_fallback: true
source_ref: "src/nds.h:3091-3092"
- name: firmware.bin
description: NDS firmware
path: SkyEmu/firmware.bin
required: false
hle_fallback: true
source_ref: "src/nds.h:3094, 3200-3268"
+51 -34
View File
@@ -1,9 +1,7 @@
emulator: SMS Plus GX emulator: SMS Plus GX
type: standalone + libretro type: libretro
core_classification: enhanced_fork
source: "https://github.com/libretro/smsplus-gx" source: "https://github.com/libretro/smsplus-gx"
upstream: "https://github.com/ekeeke/smsplus-gx" profiled_date: "2026-03-18"
profiled_date: "2026-03-25"
core_version: "1.8" core_version: "1.8"
display_name: "Sega - MS/GG (SMS Plus GX)" display_name: "Sega - MS/GG (SMS Plus GX)"
cores: cores:
@@ -13,35 +11,42 @@ systems:
- sega-game-gear - sega-game-gear
- colecovision - colecovision
- sega-sg1000 - sega-sg1000
- sord-m5
notes: | notes: |
Enhanced fork of Charles MacDonald's SMS Plus 1.3 by Eke-Eke (GX) and SMS Plus GX is a Sega Master System / Game Gear emulator with additional
gameblabla. Master System, Game Gear, ColecoVision and SG-1000 emulator. support for ColecoVision, SG-1000 and Sord M5 via TMS9918 VDP emulation.
Standalone ports also support Sord M5 (behind SORDM5_EMU compile flag,
not compiled in libretro build).
BIOS loading in bios_init() (smsplus_libretro.c:203-252). bios.sms is BIOS loading happens in bios_init() (smsplus_libretro.c:203-252).
always attempted but only activated when core option smsplus_sms_bios is Two BIOS files are supported:
"auto" (default: disabled). BIOS.col is loaded only for ColecoVision
ROMs and required for them. Standalone ports use BIOS.sms (uppercase)
instead of bios.sms.
.info marks BIOS.col as optional (firmware1_opt=true) but the libretro 1. bios.sms -- Sega Master System boot ROM. Optional. Loaded for all
code returns false from retro_load_game() when BIOS.col is missing for console types. A core option "smsplus_sms_bios" (default: disabled)
.col ROMs. controls whether it is used. When set to "auto" and the file exists,
bios.enabled is set and the SMS boot sequence plays before games.
2. BIOS.col -- ColecoVision BIOS. Required for ColecoVision ROMs only.
Loaded into coleco.rom (0x2000 bytes = 8 KB). Without it, ColecoVision
games will not start and the core logs an error. The filename is
case-sensitive (uppercase BIOS, lowercase .col).
Both files are read from the system directory root (no subdirectory).
Path is built as: system_dir + "/" + filename (smsplus_libretro.c:211,234).
Console type is auto-detected from ROM file extension:
.col -> CONSOLE_COLECO
.sg -> CONSOLE_SG1000
Or forced via the "smsplus_hardware" core option.
files: files:
- name: "bios.sms" - name: "bios.sms"
system: sega-master-system system: sega-master-system
description: "Sega Master System boot ROM" description: "Sega Master System boot ROM"
required: false required: false
aliases: ["BIOS.sms"]
source_ref: "smsplus_libretro.c:211-229" source_ref: "smsplus_libretro.c:211-229"
notes: | notes: |
Loaded into bios.rom (up to 1 MB allocated). Only active when core Loaded into bios.rom (up to 1 MB allocated). Only active when the
option smsplus_sms_bios is "auto". Displays SMS startup screen core option smsplus_sms_bios is set to "auto". Displays the Sega
before game execution. Standalone ports use BIOS.sms (uppercase). Master System startup screen before game execution.
- name: "BIOS.col" - name: "BIOS.col"
system: colecovision system: colecovision
@@ -50,18 +55,30 @@ files:
size: 8192 size: 8192
source_ref: "smsplus_libretro.c:232-248" source_ref: "smsplus_libretro.c:232-248"
notes: | notes: |
Required for ColecoVision games. Read as 0x2000 (8192) bytes into Required for ColecoVision games. Read as 0x2000 (8192) raw bytes
coleco.rom. Without this file, retro_load_game() returns false for into coleco.rom. Without this file, retro_load_game() returns false
.col files. when loading .col files. Filename is case-sensitive on Linux.
- name: "BIOS_sordm5.bin" platform_details:
system: sord-m5 bios_mapping:
description: "Sord M5 BIOS ROM" sms:
required: false target: "bios.rom buffer, mapped via slot system"
size: 8192 source_ref: "smsplus_libretro.c:208-229, source/memz80.c"
mode: standalone notes: |
source_ref: "ports/sdl/smsplus.c:321-329" When bios.enabled has both bits set (file present + option enabled),
the BIOS ROM is paged into the Z80 address space at startup. The
BIOS executes the boot animation, then hands off to the cartridge.
coleco:
target: "coleco.rom, mapped at 0x0000-0x1FFF"
source_ref: "smsplus_libretro.c:245, source/memz80.c"
notes: |
The ColecoVision BIOS provides the interrupt handler, I/O routines
and startup code. Mapped into the first 8 KB of Z80 address space.
console_detection:
source_ref: "smsplus_libretro.c:605-609, source/loadrom.c:402"
notes: | notes: |
Read as 0x2000 (8192) bytes into coleco.rom (shared buffer). Only File extension .col forces CONSOLE_COLECO with MAPPER_NONE.
in standalone builds (SORDM5_EMU define). Not compiled in libretro. Extension .sg forces CONSOLE_SG1000.
Code does not enforce presence but system needs BIOS to function. The core option smsplus_hardware can override to: master system,
master system II, game gear, game gear (sms compatibility), coleco.
+108 -20
View File
@@ -1,49 +1,137 @@
emulator: snes9x emulator: snes9x
type: libretro type: libretro
core_classification: official_port
source: "https://github.com/libretro/snes9x" source: "https://github.com/libretro/snes9x"
upstream: "https://github.com/snes9xgit/snes9x"
logo: "https://raw.githubusercontent.com/snes9xgit/snes9x/master/gtk/data/snes9x.svg" logo: "https://raw.githubusercontent.com/snes9xgit/snes9x/master/gtk/data/snes9x.svg"
profiled_date: "2026-03-25" profiled_date: "2026-03-18"
core_version: "1.61" core_version: "1.61"
display_name: "Nintendo - SNES / SFC (Snes9x)" display_name: "Nintendo - SNES / SFC (Snes9x)"
systems: [nintendo-snes, nintendo-satellaview, nintendo-sufami-turbo] systems: [nintendo-snes, nintendo-satellaview, nintendo-sufami-turbo]
# snes9x uses HLE for all coprocessors: DSP1-4, ST010, ST011, ST018, CX4.
# No external firmware files are needed for these chips - the emulation
# logic and lookup tables are hardcoded in dsp1.cpp, dsp2.cpp, dsp3.cpp,
# dsp4.cpp, seta010.cpp, seta011.cpp, seta018.cpp, c4emu.cpp.
#
# Unlike bsnes, snes9x does NOT support LLE coprocessor firmware.
# It also does NOT support Super Game Boy (RETRO_GAME_TYPE_SUPER_GAME_BOY
# is defined but never loads a SGB BIOS or boot ROM).
#
# The only external BIOS files used are for Satellaview (BS-X) and
# Sufami Turbo, loaded by LoadBIOS() in libretro/libretro.cpp and
# BSX_LoadBIOS() in bsx.cpp.
#
# BIOS lookup order (LoadBIOS):
# 1. ROM directory (same folder as the game)
# 2. RETRO_ENVIRONMENT_GET_SYSTEM_DIRECTORY (system dir)
cores: cores:
snes9x: snes9x:
source: "https://github.com/libretro/snes9x" source: "https://github.com/libretro/snes9x"
firmware_loading: true firmware_loading: true
hle_only: true hle_only: true
notes: | notes: |
Loads BS-X.bin and STBIOS.bin via LoadBIOS() in libretro.cpp. Current snes9x. Loads BS-X.bin (tries BS-X.bios as fallback)
BSX_LoadBIOS() in bsx.cpp tries BS-X.bios as fallback. and STBIOS.bin via LoadBIOS() in libretro.cpp.
Auto-detects Satellaview and Sufami Turbo carts on load. Auto-detects Sufami Turbo carts (is_SufamiTurbo_Cart) and
Subsystem support via retro_load_game_special() for BS-X games (is_bsx) when loading via retro_load_game().
RETRO_GAME_TYPE_BSX, RETRO_GAME_TYPE_SUFAMI_TURBO, Also handles retro_load_game_special() for multi-cart and
RETRO_GAME_TYPE_MULTI_CART. subsystem types (RETRO_GAME_TYPE_BSX, RETRO_GAME_TYPE_SUFAMI_TURBO,
RETRO_GAME_TYPE_MULTI_CART).
snes9x2010:
source: "https://github.com/libretro/snes9x2010"
firmware_loading: true
hle_only: true
notes: |
Based on snes9x 1.52. Same BIOS loading as snes9x current.
BSX_LoadBIOS() in src/bsx.c loads BS-X.bin (fallback BS-X.bios).
STBIOS.bin loaded in src/memmap.c for Sufami Turbo.
snes9x2005:
source: "https://github.com/libretro/snes9x2005"
firmware_loading: false
hle_only: true
notes: |
Based on snes9x 1.43. Detects BS-X and Sufami Turbo ROM headers
in source/memmap.c but has no LoadBIOS function - does not load
external BIOS files. No firmware needed.
snes9x2005_plus:
source: "https://github.com/libretro/snes9x2005"
firmware_loading: false
hle_only: true
notes: |
Same codebase as snes9x2005 with video enhancements.
No external BIOS loading. No firmware needed.
snes9x2002:
source: "https://github.com/libretro/snes9x2002"
firmware_loading: false
hle_only: true
notes: |
Based on snes9x 1.39 (PocketSNES). Minimal core for low-end
devices. No BS-X, no Sufami Turbo, no external BIOS loading.
No firmware needed.
files: files:
# -- BS-X Satellaview BIOS --
# Required by: snes9x, snes9x2010
# Loaded by: LoadBIOS() in libretro.cpp (snes9x) / BSX_LoadBIOS() in bsx.c (snes9x2010)
# Auto-detected when game ROM header matches BS-X signature at 0x7FC0 or 0xFFC0.
# Size validated: must be exactly BIOS_SIZE (0x100000 = 1048576 bytes).
# Filename fallback: BS-X.bin -> BS-X.bios (bsx.cpp:1209-1215)
- name: "BS-X.bin" - name: "BS-X.bin"
system: nintendo-satellaview system: nintendo-satellaview
description: "Satellaview BS-X BIOS" description: "Satellaview BS-X BIOS (Japanese)"
required: false required: false
size: 1048576 size: 1048576
validation: [size] md5: "fed4d8242cfbed61343d53d48432aced"
source_ref: "libretro.cpp:1209, bsx.cpp:1209,1214" sha1: "604556b2e62860af18db5a77f2956ebc75450020"
source_ref: "libretro.cpp:1209 (LoadBIOS, 'BS-X.bin'), bsx.cpp:1209-1215 (BSX_LoadBIOS)"
aliases: ["BS-X.bios"] aliases: ["BS-X.bios"]
notes: "Needed for Satellaview (.bs) games." notes: "Needed for Satellaview (.bs) game support. Without this file, BS-X games will fail to load."
# -- Sufami Turbo BIOS --
# Required by: snes9x, snes9x2010
# Loaded by: LoadBIOS() in libretro.cpp (snes9x) / memmap.c (snes9x2010)
# Auto-detected when cart has "BANDAI SFC-ADX" at offset 0, without "SFC-ADX BACKUP" at 0x10.
# Size: 0x40000 (262144 bytes). Validated by is_SufamiTurbo_BIOS().
- name: "STBIOS.bin" - name: "STBIOS.bin"
system: nintendo-sufami-turbo system: nintendo-sufami-turbo
description: "Sufami Turbo BIOS" description: "Bandai SuFami Turbo BIOS (Mini Cartridge add-on)"
required: false required: false
size: 262144 size: 262144
validation: [size] md5: "d3a44ba7d42a74d3ac58cb9c14c6a5ca"
source_ref: "libretro.cpp:1203,1317, memmap.cpp:1672" sha1: "ef86ea192eed03d5c413fdbbfd46043be1d7a127"
notes: "Needed for Sufami Turbo multi-cart games." source_ref: "libretro.cpp:1203,1317,1348 (LoadBIOS, 'STBIOS.bin'), memmap.cpp:1672"
notes: "Needed for Sufami Turbo multi-cart games. Validated by is_SufamiTurbo_BIOS() which checks for 'BANDAI SFC-ADX' + 'SFC-ADX BACKUP' headers."
notes: notes:
coprocessor_hle: | coprocessor_hle: |
All coprocessors are HLE (DSP1-4, ST010, ST011, ST018, CX4). All SNES coprocessor chips are emulated in software (HLE) across
No external firmware files needed. Lookup tables and math every snes9x variant. No external firmware files are needed for:
emulation hardcoded in dsp1-4.cpp, seta010-018.cpp, c4emu.cpp. - DSP1/DSP1B (dsp1.cpp, static DSP1ROM[1024] lookup table)
- DSP2 (dsp2.cpp)
- DSP3 (dsp3.cpp)
- DSP4 (dsp4.cpp)
- ST010 (seta010.cpp, static ST010_SinTable)
- ST011 (seta011.cpp)
- ST018 (seta018.cpp)
- CX4/Cx4 (c4.cpp, c4emu.cpp, math-based HLE)
This is the key difference from bsnes, which supports both HLE and
LLE (with optional external firmware ROM files).
sgb_status: |
RETRO_GAME_TYPE_SUPER_GAME_BOY (0x104) is defined in libretro.cpp
but no actual SGB emulation exists. No SGB BIOS or boot ROM is
loaded or used by any snes9x variant.
bsx_detection: |
BS-X games are auto-detected by is_bsx() which checks for the
"Satellaview BS-X" signature in the ROM header. When detected,
the BIOS is loaded automatically without user intervention.
sufami_detection: |
Sufami Turbo carts are auto-detected by is_SufamiTurbo_Cart()
which checks for "BANDAI SFC-ADX" at ROM offset 0 and absence
of "SFC-ADX BACKUP" at offset 0x10 (which would indicate BIOS,
not cart). Multi-cart support uses retro_load_game_special().
-23
View File
@@ -1,23 +0,0 @@
emulator: Snes9x 2002
type: libretro
core_classification: frozen_snapshot
source: "https://github.com/libretro/snes9x2002"
upstream: "https://github.com/snes9xgit/snes9x"
profiled_date: "2026-03-25"
core_version: "7.2.0"
display_name: "Nintendo - SNES / SFC (Snes9x 2002)"
cores:
- snes9x2002
systems:
- snes
- sufami-turbo
- satellaview
notes: |
Frozen snapshot of Snes9x 1.39 via PocketSNES, optimized for ARM.
SPC700 IPL ROM (64 bytes) embedded in globals.c:283 as APUROM[64].
All ROM I/O via memstream (snes9x.h:54-57). The core never calls
GET_SYSTEM_DIRECTORY and performs no file I/O from the system directory.
exclusion_note: "SPC700 IPL ROM embedded in binary (globals.c:283); no system_directory access"
files: []
-25
View File
@@ -1,25 +0,0 @@
emulator: Snes9x 2005
type: libretro
core_classification: frozen_snapshot
source: "https://github.com/libretro/snes9x2005"
upstream: "https://github.com/ShadauxCat/CATSFC"
profiled_date: "2026-03-25"
core_version: "v1.36"
display_name: "Nintendo - SNES / SFC (Snes9x 2005)"
cores:
- snes9x2005
systems:
- snes
- sufami-turbo
- satellaview
notes: |
Frozen snapshot of Snes9x 1.43 via CATSFC (NDS/PSP port by ShadauxCat/Nebuleon).
SPC700 IPL ROM (64 bytes) embedded in globals.c:191 as APUROM[64].
DSP-1 ROM data (1024 x uint16) embedded in dsp1emu.c:8 as DSP1ROM[1024].
All coprocessors (DSP-1/2/4, CX4, ST010/011/018, SuperFX, SPC7110, SA-1, OBC-1)
are pure HLE. The core never calls GET_SYSTEM_DIRECTORY and performs no file I/O
from the system directory.
exclusion_note: "all coprocessor ROMs embedded in binary; no system_directory access"
files: []
-26
View File
@@ -1,26 +0,0 @@
emulator: Snes9x 2005 Plus
type: libretro
core_classification: frozen_snapshot
source: "https://github.com/libretro/snes9x2005"
upstream: "https://github.com/ShadauxCat/CATSFC"
profiled_date: "2026-03-25"
core_version: "v1.36"
display_name: "Nintendo - SNES / SFC (Snes9x 2005 Plus)"
cores:
- snes9x2005_plus
systems:
- snes
- sufami-turbo
- satellaview
notes: |
Same codebase as Snes9x 2005 built with USE_BLARGG_APU=1 for more accurate audio.
Frozen snapshot of Snes9x 1.43 via CATSFC (NDS/PSP port by ShadauxCat/Nebuleon).
SPC700 IPL ROM (64 bytes) embedded in apu_blargg.c:3272 as APUROM[64].
DSP-1 ROM data (1024 x uint16) embedded in dsp1emu.c:8 as DSP1ROM[1024].
All coprocessors (DSP-1/2/4, CX4, ST010/011/018, SuperFX, SPC7110, SA-1, OBC-1)
are pure HLE. The core never calls GET_SYSTEM_DIRECTORY and performs no file I/O
from the system directory.
exclusion_note: "all coprocessor ROMs embedded in binary; no system_directory access"
files: []
-40
View File
@@ -1,40 +0,0 @@
emulator: Snes9x 2010
type: libretro
core_classification: frozen_snapshot
source: "https://github.com/libretro/snes9x2010"
upstream: "https://github.com/snes9xgit/snes9x"
profiled_date: "2026-03-25"
core_version: "v1.52.4"
display_name: "Nintendo - SNES / SFC (Snes9x 2010)"
cores:
- snes9x2010
systems:
- snes
- sufami-turbo
- satellaview
notes: |
Frozen snapshot of Snes9x 1.52.4, rewritten in C with optimizations
for PS3 (originally called SNES9x Next).
SPC700 IPL ROM (64 bytes) embedded in src/apu.c:3442 as APUROM[64].
DSP-1 ROM data (1024 x uint16) embedded in src/dsp.c:219 as DSP1ROM[1024].
All coprocessors (DSP-1/2/3/4, CX4, ST010/011/018, SuperFX, SPC7110,
SA-1, S-DD1, S-RTC, OBC-1) are pure HLE.
Sufami Turbo support disabled: LoadSufamiTurbo in src/memmap.c is behind
#if SNES_SUPPORT_MULTI_CART which defaults to 0 and is never enabled in
any Makefile. retro_load_game_special returns false.
Upstream snes9x 1.52 supports Sufami Turbo (loads STBIOS.bin).
files:
- name: "BS-X.bin"
system: satellaview
description: "Satellaview BS-X BIOS"
required: false
size: 1048576
validation: [size]
aliases: ["BS-X.bios"]
source_ref: "src/bsx.c:959-993 (BSX_LoadBIOS), src/bsx.c:1068 (caller in S9xInitBSX)"
notes: |
Loaded when a BS game is auto-detected (is_bsx checks ROM header at
0x7FC0/0xFFC0). Without this file, BSX.bootup is set to FALSE and
BIOSROM is zeroed. BS games still load but lack the boot menu.
+60 -36
View File
@@ -1,70 +1,94 @@
emulator: SquirrelJME emulator: SquirrelJME
type: libretro type: libretro
core_classification: official_port
source: "https://github.com/SquirrelJME/SquirrelJME" source: "https://github.com/SquirrelJME/SquirrelJME"
upstream: "https://github.com/SquirrelJME/SquirrelJME" profiled_date: "2026-03-18"
profiled_date: "2026-03-25"
core_version: "0.3.0" core_version: "0.3.0"
display_name: "Java ME (SquirrelJME)" display_name: "Java ME (SquirrelJME)"
cores: [squirreljme] cores: [squirreljme]
systems: [j2me] systems: [j2me]
verification: existence verification: existence
notes: | notes: |
Java ME 8 virtual machine. Runs J2ME MIDlets and older flip-phone games. Java ME 8 virtual machine for libretro. Runs J2ME MIDlets and older flip-phone games.
Requires a class library JAR in the system directory. The core searches The core needs a class library JAR placed in RetroArch's system directory.
sjme_nvm_romNames[] in priority order and uses the first match found. It searches for the JAR using a priority list: versioned-fast first, then versioned,
All entries are optional: without a class library, the core runs a built-in then unversioned variants. The first match wins.
modeless stars demo but cannot execute J2ME software.
The .info declares firmware_count=8 but the code defines 10 search names Search order (from nanocoat/src/boot.c sjme_nvm_romNames[]):
(squirreljme-{version}-test.jar and squirreljme-test.jar are missing from .info). 1. squirreljme-{version}-fast.jar
2. squirreljme-{version}.jar
3. squirreljme-{version}-test.jar
4. squirreljme-{version}-slow.jar
5. squirreljme-{version}-slow-test.jar
6. squirreljme-fast.jar
7. squirreljme.jar
8. squirreljme-test.jar
9. squirreljme-slow.jar
10. squirreljme-slow-test.jar
Current version: 0.3.0. All firmware entries are marked optional in the .info file
because the core can launch its built-in modeless stars demo without a class library.
For actual J2ME software, one of these JARs is required.
The class library JAR is built from the SquirrelJME project itself (not a third-party
BIOS dump). It is open source under MPL-2.0.
files: files:
# -- Versioned JARs (v0.3.0, preferred) --
- name: "squirreljme-0.3.0-fast.jar" - name: "squirreljme-0.3.0-fast.jar"
description: "Class library v0.3.0, fast/optimized build" description: "SquirrelJME class library v0.3.0 (fast/optimized build)"
required: false required: false
source_ref: "nanocoat/src/boot.c:102" bundled: false
source_ref: "nanocoat/src/boot.c:102, squirreljme_libretro.info:firmware5"
note: "Highest priority versioned JAR. Optimized runtime, recommended for normal use."
- name: "squirreljme-0.3.0.jar" - name: "squirreljme-0.3.0.jar"
description: "Class library v0.3.0, standard build" description: "SquirrelJME class library v0.3.0 (standard build)"
required: false required: false
source_ref: "nanocoat/src/boot.c:103" bundled: false
source_ref: "nanocoat/src/boot.c:103, squirreljme_libretro.info:firmware4"
- name: "squirreljme-0.3.0-test.jar" note: "Standard versioned build. Second in search priority."
description: "Class library v0.3.0, standard build with test suites"
required: false
source_ref: "nanocoat/src/boot.c:104"
- name: "squirreljme-0.3.0-slow.jar" - name: "squirreljme-0.3.0-slow.jar"
description: "Class library v0.3.0, slow/interpreter build" description: "SquirrelJME class library v0.3.0 (slow/interpreter build)"
required: false required: false
source_ref: "nanocoat/src/boot.c:105" bundled: false
source_ref: "nanocoat/src/boot.c:105, squirreljme_libretro.info:firmware6"
note: "Pure interpreter mode, no optimizations. Useful for debugging."
- name: "squirreljme-0.3.0-slow-test.jar" - name: "squirreljme-0.3.0-slow-test.jar"
description: "Class library v0.3.0, slow build with test suites" description: "SquirrelJME class library v0.3.0 (slow build with tests)"
required: false required: false
source_ref: "nanocoat/src/boot.c:106" bundled: false
source_ref: "nanocoat/src/boot.c:106, squirreljme_libretro.info:firmware7"
note: "Interpreter mode with built-in test suites."
# -- Unversioned JARs (fallback) --
- name: "squirreljme-fast.jar" - name: "squirreljme-fast.jar"
description: "Class library, fast/optimized build (unversioned)" description: "SquirrelJME class library (fast/optimized, unversioned)"
required: false required: false
source_ref: "nanocoat/src/boot.c:107" bundled: false
source_ref: "nanocoat/src/boot.c:107, squirreljme_libretro.info:firmware1"
note: "Highest priority unversioned JAR. Renamed from a versioned build."
- name: "squirreljme.jar" - name: "squirreljme.jar"
description: "Class library, standard build (unversioned)" description: "SquirrelJME class library (standard, unversioned)"
required: false required: false
source_ref: "nanocoat/src/boot.c:108" bundled: false
source_ref: "nanocoat/src/boot.c:108, squirreljme_libretro.info:firmware0"
- name: "squirreljme-test.jar" note: "Most common filename. If only one JAR is provided, use this name."
description: "Class library, standard build with test suites (unversioned)"
required: false
source_ref: "nanocoat/src/boot.c:109"
- name: "squirreljme-slow.jar" - name: "squirreljme-slow.jar"
description: "Class library, slow/interpreter build (unversioned)" description: "SquirrelJME class library (slow/interpreter, unversioned)"
required: false required: false
source_ref: "nanocoat/src/boot.c:110" bundled: false
source_ref: "nanocoat/src/boot.c:110, squirreljme_libretro.info:firmware2"
note: "Pure interpreter, unversioned."
- name: "squirreljme-slow-test.jar" - name: "squirreljme-slow-test.jar"
description: "Class library, slow build with test suites (unversioned)" description: "SquirrelJME class library (slow with tests, unversioned)"
required: false required: false
source_ref: "nanocoat/src/boot.c:111" bundled: false
source_ref: "nanocoat/src/boot.c:111, squirreljme_libretro.info:firmware3"
note: "Interpreter with tests, unversioned."
+50 -11
View File
@@ -1,18 +1,57 @@
emulator: Stella emulator: Stella
type: alias type: libretro
alias_of: stella2014 source: "https://github.com/libretro/stella2014-libretro"
source: "https://github.com/libretro/stella-libretro" profiled_date: "2026-03-18"
profiled_date: "2026-03-25" core_version: "6.6"
core_version: "3.9.3"
display_name: "Atari - 2600 (Stella)" display_name: "Atari - 2600 (Stella)"
cores: cores:
- stella - stella
- stella2014
- stella2023
systems: systems:
- atari-2600 - atari-2600
note: | notes: |
Identical codebase to stella2014-libretro. Both repos share the same HEAD Stella is an Atari 2600 (VCS) emulator. The libretro port available is
commit and produce a binary reporting library_name "Stella 2014". The stella2014, which is a fork frozen at the 2014 codebase. The upstream
stella_libretro.info incorrectly lists display_version "6.6"; the actual "stella-libretro" repo redirects to stella2014-libretro. There is no
embedded version is 3.9.3. See stella2014.yml for firmware requirements separate stella2023 libretro core published at this time.
and KidVid audio files.
The Atari 2600 console has no BIOS ROM. Games run directly on the
hardware with no boot firmware.
The Starpath/Arcadia Supercharger add-on had a 2K BIOS ROM on the
physical hardware. Stella does NOT load this BIOS from an external
file. Instead, the core contains a built-in dummy BIOS
(ourDummyROMCode, 294 bytes in CartAR.cxx) that simulates the
Supercharger load sequence. The initializeROM() function copies this
dummy code into the ROM bank (bank 3) at reset, sets up the 6502
reset vector to 0xF80A, and handles multiload via a hotspot at
address 0x1850.
The "fastscbios" setting (offset 109 in the dummy ROM) controls
whether the SC load progress bars are shown (0x00) or skipped
(0xFF). This is toggled automatically during ROM format detection
(Console.cxx:119-120).
The real Supercharger BIOS ROM (MD5 4565c1a7abce773e53c75b35414adefd)
is recognized in DefProps.hxx as a known cartridge entry but is not
required or loaded as a system file.
The libretro interface (retro_set_environment) does not call
RETRO_ENVIRONMENT_GET_SYSTEM_DIRECTORY and declares no firmware
requirements. No core option references BIOS loading.
files: []
platform_details:
supercharger_emulation:
source_ref: "stella/src/emucore/CartAR.cxx, CartAR.hxx"
notes: |
The Supercharger (type AR) uses 4 banks: 3x 2K RAM + 1x 2K ROM.
The ROM bank is filled with ourDummyROMCode at reset. SC games
are multi-load images (8448 bytes per load: 8192 data + 256 header).
loadIntoRAM() handles loading game data when the hotspot at 0x1850
is accessed with the ROM bank mapped. The bank switching byte and
start address are written to zero-page RAM (0xFE, 0xFF, 0x80) for
the dummy BIOS to read.
-60
View File
@@ -1,60 +0,0 @@
emulator: Stella 2014
type: libretro
core_classification: frozen_snapshot
source: "https://github.com/libretro/stella2014-libretro"
upstream: "https://github.com/stella-emu/stella"
profiled_date: "2026-03-25"
core_version: "3.9.3"
display_name: "Atari - 2600 (Stella 2014)"
cores:
- stella2014
systems:
- atari_2600
notes: |
Frozen snapshot of Stella 3.9.3. The Atari 2600 has no BIOS ROM; the TIA,
RIOT, and 6507 CPU are fully emulated in software. The SuperCharger (Starpath)
BIOS is emulated via a built-in dummy ROM (ourDummyROMCode in CartAR.cxx:518).
Game properties database (stella.pro) is compiled into DefProps.hxx; external
loading is disabled in the libretro port (PropsSet.cxx:35). The core does not
call GET_SYSTEM_DIRECTORY. KidVid Voice Module audio tapes (7 WAV files) are
loaded via rfopen with relative filenames from the content directory
(KidVid.cxx:166-185); absence is handled gracefully. EEPROM save data for
AtariVox and SaveKey peripherals is managed as NVRAM, not user-supplied.
files:
- name: kvs1.wav
description: "KidVid Voice Module audio tape 1 (Smurfs Save the Day)"
required: false
category: game_data
source_ref: "stella/src/emucore/KidVid.cxx:167,182"
- name: kvs2.wav
description: "KidVid Voice Module audio tape 2 (Smurfs Save the Day)"
required: false
category: game_data
source_ref: "stella/src/emucore/KidVid.cxx:167,182"
- name: kvs3.wav
description: "KidVid Voice Module audio tape 3 (Smurfs Save the Day)"
required: false
category: game_data
source_ref: "stella/src/emucore/KidVid.cxx:167,182"
- name: kvb1.wav
description: "KidVid Voice Module audio tape 1 (Berenstain Bears)"
required: false
category: game_data
source_ref: "stella/src/emucore/KidVid.cxx:167,182"
- name: kvb2.wav
description: "KidVid Voice Module audio tape 2 (Berenstain Bears)"
required: false
category: game_data
source_ref: "stella/src/emucore/KidVid.cxx:167,182"
- name: kvb3.wav
description: "KidVid Voice Module audio tape 3 (Berenstain Bears)"
required: false
category: game_data
source_ref: "stella/src/emucore/KidVid.cxx:167,182"
- name: kvshared.wav
description: "KidVid Voice Module shared audio samples"
required: false
category: game_data
source_ref: "stella/src/emucore/KidVid.cxx:185"
-73
View File
@@ -1,73 +0,0 @@
emulator: Stella 2023
type: libretro
core_classification: frozen_snapshot
source: "https://github.com/libretro/stella2023"
upstream: "https://github.com/stella-emu/stella"
profiled_date: "2026-03-25"
core_version: "7.0_pre"
display_name: "Atari - 2600 (Stella 2023)"
cores:
- stella2023
systems:
- atari_2600
notes: |
Frozen snapshot of Stella development branch (7.0_pre, copyright 2024).
The .info reports display_version 6.6 which does not match the source
(src/common/Version.hxx defines STELLA_VERSION as "7.0_pre").
The Atari 2600 has no BIOS ROM; TIA, RIOT, and 6507 CPU are fully
emulated in software. The SuperCharger (Starpath) BIOS is emulated via
a built-in dummy ROM (ourDummyROMCode in CartAR.cxx:279). The game
properties database is compiled into DefProps.hxx; external loading is
disabled in the libretro port (OSystemLIBRETRO returns
CompositeKeyValueRepositoryNoop for the property repository).
The libretro interface does not call RETRO_ENVIRONMENT_GET_SYSTEM_DIRECTORY
and declares no firmware requirements (firmware_count=0 in .info).
KidVid Voice Module audio tapes (7 WAV files) are checked via
FSNode::exists() in baseDir (resolves to content directory in the
libretro port). SoundLIBRETRO does not override playWav()/wavSize()
from the base Sound class, so WAV playback is non-functional. Games
work without WAV files using a timing-based fallback in KidVid::setNextSong().
EEPROM save data for AtariVox and SaveKey peripherals is managed as
NVRAM, not user-supplied.
files:
- name: KVS1.WAV
description: "KidVid Voice Module audio tape 1 (Smurfs Save the Day)"
required: false
category: game_data
source_ref: "stella2023/src/emucore/KidVid.cxx:245,273"
- name: KVS2.WAV
description: "KidVid Voice Module audio tape 2 (Smurfs Save the Day)"
required: false
category: game_data
source_ref: "stella2023/src/emucore/KidVid.cxx:245,273"
- name: KVS3.WAV
description: "KidVid Voice Module audio tape 3 (Smurfs Save the Day)"
required: false
category: game_data
source_ref: "stella2023/src/emucore/KidVid.cxx:245,273"
- name: KVB1.WAV
description: "KidVid Voice Module audio tape 1 (Berenstain Bears)"
required: false
category: game_data
source_ref: "stella2023/src/emucore/KidVid.cxx:246,273"
- name: KVB2.WAV
description: "KidVid Voice Module audio tape 2 (Berenstain Bears)"
required: false
category: game_data
source_ref: "stella2023/src/emucore/KidVid.cxx:246,273"
- name: KVB3.WAV
description: "KidVid Voice Module audio tape 3 (Berenstain Bears)"
required: false
category: game_data
source_ref: "stella2023/src/emucore/KidVid.cxx:246,273"
- name: KVSHARED.WAV
description: "KidVid Voice Module shared audio samples"
required: false
category: game_data
source_ref: "stella2023/src/emucore/KidVid.cxx:274"
+11 -32
View File
@@ -1,41 +1,20 @@
emulator: Stone Soup emulator: Stone Soup
type: game type: game
core_classification: frozen_snapshot
source: "https://github.com/libretro/crawl-ref" source: "https://github.com/libretro/crawl-ref"
upstream: "https://github.com/crawl/crawl" profiled_date: "2026-03-18"
profiled_date: "2026-03-25" core_version: "Git"
core_version: "0.16-a0"
display_name: "Dungeon Crawl Stone Soup" display_name: "Dungeon Crawl Stone Soup"
cores: [stonesoup] cores: [stonesoup]
systems: [] systems: []
notes: | notes: >
Roguelike dungeon crawler. Fork frozen at DCSS 0.16-a0 (upstream now ~0.32). Dungeon Crawl Stone Soup, a roguelike dungeon crawler. The libretro port is
Last libretro commit: Oct 2019. Marked experimental. built from the crawl-ref source tree (crawl-ref/source/) with TILES=y and
the libretro backend. The core accepts no content extensions - it launches
Accepts .crawlrc config files as content (supported_extensions: crawlrc). directly into a new game or save selection. All game data (tiles, databases,
The libretro wrapper sets -dir to the content directory. descriptions, lua scripts, des files for level generation) is compiled into
ref: libretro/libretro.cc:178-198 — main_wrap() passes -dir content_dir the core binary or loaded from the bundled dat/ directory built alongside
the core. No BIOS, firmware, or external system files are required. Save
Game data loaded at runtime from dat/ tree via datafile_path(). files are stored in the RetroArch save directory.
ref: source/files.cc:375-458 — _get_base_dirs() + datafile_path()
No DATA_DIR_PATH defined in Makefile.libretro — falls back to SysEnv.crawl_dir.
Data is NOT compiled into the binary.
dat/ tree contents (532 files, 16 MB):
- dat/tiles/*.png (floor, wall, feat, player, main, gui, icons) — tiletex.cc:89-97
- dat/DejaVuSans.ttf, dat/DejaVuSansMono.ttf — fontwrapper-ft.cc:79
- dat/descript/*.txt, dat/database/*.txt — database.cc:72-140
- dat/des/*.des (level generation) — maps.cc:1457
- dat/dlua/*.lua, dat/clua/*.lua — maps.cc:1465
- dat/defaults/ (settings)
Not on buildbot.libretro.com/assets/system/.
No divergence in file loading between upstream and libretro fork.
data_directories:
- ref: stonesoup
source_ref: "source/files.cc:375-458"
files: [] files: []
# no BIOS/firmware — game data loaded via data_directories
+5 -7
View File
@@ -1,16 +1,14 @@
emulator: Super Bros War emulator: Super Bros War
type: game type: game
core_classification: game_engine
source: "https://github.com/libretro/superbroswar-libretro" source: "https://github.com/libretro/superbroswar-libretro"
upstream: "https://github.com/mmatyas/supermariowar" profiled_date: "2026-03-18"
profiled_date: "2026-03-25"
core_version: "v0.1" core_version: "v0.1"
display_name: "Super Bros War" display_name: "Super Bros War"
cores: [superbroswar] cores: [superbroswar]
systems: [] systems: []
files: [] files: []
notes: > notes: >
Libretro port of Super Mario War, a fan-made multiplayer battle game. Libretro port of Super Mario War, a fan-made multiplayer battle game
All game data (maps, sprites, sounds, tilesets, skins) loads from the where players stomp each other in Mario-style arenas.
content directory via convertPath(). System directory not used for game Game data (maps, sprites, sounds) ships with the core repository.
data, only as save directory fallback. No BIOS, firmware, or system directory files required.
+6 -78
View File
@@ -1,80 +1,8 @@
emulator: swanstation emulator: "swanstation"
type: libretro type: alias
core_classification: community_fork alias_of: "beetle_psx"
source: "https://github.com/libretro/swanstation" profiled_date: "2026-03-18"
upstream: "https://github.com/stenzek/duckstation"
profiled_date: "2026-03-25"
core_version: "v0.1" core_version: "v0.1"
display_name: "Sony - PlayStation (SwanStation)" display_name: "Sony - PlayStation (SwanStation)"
cores: [swanstation] note: "This core uses the same BIOS/firmware as beetle_psx. See emulators/beetle_psx.yml for details."
systems: [sony-playstation] files: []
notes: |
Fork of DuckStation maintained by the libretro community after stenzek removed
libretro support. Frozen at an early DuckStation state.
BIOS is required to boot. No HLE fallback.
ref: src/core/system.cpp:667-674 (GetBIOSImage fails = Shutdown)
Auto-detects BIOS by scanning system_dir for files of known sizes.
ref: src/core/host_interface.cpp:183-243 (FindBIOSImageInDirectory)
Accepts PS1 (512 KB), PS2 (4 MB), and PS3 (0x3E66F0) BIOS images.
Only the first 512 KB are loaded (bios.cpp:83, Image(BIOS_SIZE)).
ref: src/core/bios.h:9 (BIOS_SIZE=0x80000, BIOS_SIZE_PS2=0x400000, BIOS_SIZE_PS3=0x3E66F0)
27 known BIOS entries identified by MD5 hash (all PS1 variants).
ref: src/core/bios.cpp:27-70 (s_image_infos)
Each entry has: description, region, hash, patch_compatible flag.
Upstream DuckStation has evolved significantly (105 entries, PS2 BIOS, OpenBIOS,
priority system). SwanStation is frozen at the fork point.
files:
- name: "scph5500.bin"
description: "SCPH-5500 (v3.0 09-09-96 J)"
region: "NTSC-J"
required: false
md5: "8dd7d5296a650fac7319bce665a6a53c"
size: 524288
validation: [size, md5]
source_ref: "src/core/bios.cpp:47"
aliases: []
- name: "scph5501.bin"
description: "SCPH-5501, 5503, 7003 (v3.0 11-18-96 A)"
region: "NTSC-U"
required: false
md5: "490f666e1afb15b7362b406ed1cea246"
size: 524288
validation: [size, md5]
source_ref: "src/core/bios.cpp:48-49"
aliases: []
- name: "scph5502.bin"
description: "SCPH-5502, 5552 (v3.0 01-06-97 E)"
region: "PAL"
required: false
md5: "32736f17079d0b2b7024407c39bd3050"
size: 524288
validation: [size, md5]
source_ref: "src/core/bios.cpp:50-51"
aliases: []
- name: "psxonpsp660.bin"
description: "PSP, SCPH-1000R (v4.5 05-25-00 J)"
region: "Auto"
required: false
md5: "c53ca5908936d412331790f4426c6c33"
size: 524288
validation: [size, md5]
source_ref: "src/core/bios.cpp:65-66"
aliases: []
- name: "ps1_rom.bin"
description: "PS3 (v5.0 06-23-03 A)"
region: "Auto"
required: false
md5: "81bbe60ba7a3d1cea1d48c14cbcc647b"
size: 4089584
validation: [size, md5]
source_ref: "src/core/bios.cpp:70"
aliases: []
+8 -244
View File
@@ -1,250 +1,14 @@
emulator: Syobon Action emulator: Syobon Action
type: game type: game
core_classification: community_fork source: "https://github.com/libretro/syobonaction-libretro"
source: "https://github.com/iyzsong/syobonaction-libretro" profiled_date: "2026-03-18"
upstream: "https://github.com/akemin-dayo/OpenSyobonAction" core_version: "0.1"
profiled_date: "2026-03-25"
core_version: "0.3"
display_name: "Syobon Action" display_name: "Syobon Action"
cores: [syobonaction] cores: [syobonaction]
systems: [] systems: []
files: []
notes: > notes: >
Libretro port of Open Syobon Action (Cat Mario), the SDL port of the Libretro port of Syobon Action (Cat Mario), a parody platformer known
Japanese platformer by z_gundam_tanosii. Game assets required in for deceptive traps and unfair level design by z_gundam_tanosii.
system_dir/SyobonAction/ with BGM/, SE/, and res/ subdirectories. Game data (maps, sprites, sounds) ships with the core repository.
Level data hardcoded in source. The original libretro/syobonaction-libretro No BIOS, firmware, or system directory files required.
repo was deleted; source points to the archived original by iyzsong.
The .info display_version is "0.1" but the code reports "0.3".
files:
# ── res/ - Graphics (required: LoadGraph → exit(1) on failure) ──
- name: player.PNG
path: SyobonAction/res/player.PNG
description: "Player character sprites"
required: true
category: game_data
source_ref: "OpenSyobonAction/loadg.cpp:40"
- name: brock.PNG
path: SyobonAction/res/brock.PNG
description: "Block tileset"
required: true
category: game_data
source_ref: "OpenSyobonAction/loadg.cpp:42"
- name: item.PNG
path: SyobonAction/res/item.PNG
description: "Item sprites"
required: true
category: game_data
source_ref: "OpenSyobonAction/loadg.cpp:44"
- name: teki.PNG
path: SyobonAction/res/teki.PNG
description: "Enemy sprites"
required: true
category: game_data
source_ref: "OpenSyobonAction/loadg.cpp:46"
- name: haikei.PNG
path: SyobonAction/res/haikei.PNG
description: "Background graphics"
required: true
category: game_data
source_ref: "OpenSyobonAction/loadg.cpp:48"
- name: brock2.PNG
path: SyobonAction/res/brock2.PNG
description: "Alternate block tileset"
required: true
category: game_data
source_ref: "OpenSyobonAction/loadg.cpp:50"
- name: omake.PNG
path: SyobonAction/res/omake.PNG
description: "Bonus sprites"
required: true
category: game_data
source_ref: "OpenSyobonAction/loadg.cpp:52"
- name: omake2.PNG
path: SyobonAction/res/omake2.PNG
description: "Bonus sprites (set 2)"
required: true
category: game_data
source_ref: "OpenSyobonAction/loadg.cpp:54"
- name: syobon3.PNG
path: SyobonAction/res/syobon3.PNG
description: "Title screen"
required: true
category: game_data
source_ref: "OpenSyobonAction/loadg.cpp:56"
# ── res/ - Font (required: TTF_OpenFont → exit(1) on failure) ──
- name: sazanami-gothic.ttf
path: SyobonAction/res/sazanami-gothic.ttf
description: "Sazanami Gothic Japanese font for text rendering"
required: true
category: game_data
source_ref: "OpenSyobonAction/DxLib.cpp:73"
# ── BGM/ - Music (optional: LoadMusicMem → NULL on failure, game continues) ──
- name: field.ogg
path: SyobonAction/BGM/field.ogg
description: "Field stage music"
required: false
category: game_data
source_ref: "OpenSyobonAction/loadg.cpp:220"
- name: dungeon.ogg
path: SyobonAction/BGM/dungeon.ogg
description: "Dungeon stage music"
required: false
category: game_data
source_ref: "OpenSyobonAction/loadg.cpp:221"
- name: star4.ogg
path: SyobonAction/BGM/star4.ogg
description: "Star power music"
required: false
category: game_data
source_ref: "OpenSyobonAction/loadg.cpp:222"
- name: castle.ogg
path: SyobonAction/BGM/castle.ogg
description: "Castle stage music"
required: false
category: game_data
source_ref: "OpenSyobonAction/loadg.cpp:223"
- name: puyo.ogg
path: SyobonAction/BGM/puyo.ogg
description: "Puyo stage music"
required: false
category: game_data
source_ref: "OpenSyobonAction/loadg.cpp:224"
# ── SE/ - Sound effects (optional: LoadSoundMem → NULL on failure, game continues) ──
- name: jump.ogg
path: SyobonAction/SE/jump.ogg
description: "Jump sound"
required: false
category: game_data
source_ref: "OpenSyobonAction/loadg.cpp:228"
- name: brockbreak.ogg
path: SyobonAction/SE/brockbreak.ogg
description: "Block break sound"
required: false
category: game_data
source_ref: "OpenSyobonAction/loadg.cpp:230"
- name: coin.ogg
path: SyobonAction/SE/coin.ogg
description: "Coin sound"
required: false
category: game_data
source_ref: "OpenSyobonAction/loadg.cpp:231"
- name: humi.ogg
path: SyobonAction/SE/humi.ogg
description: "Stomp sound"
required: false
category: game_data
source_ref: "OpenSyobonAction/loadg.cpp:232"
- name: koura.ogg
path: SyobonAction/SE/koura.ogg
description: "Shell sound"
required: false
category: game_data
source_ref: "OpenSyobonAction/loadg.cpp:233"
- name: dokan.ogg
path: SyobonAction/SE/dokan.ogg
description: "Pipe sound"
required: false
category: game_data
source_ref: "OpenSyobonAction/loadg.cpp:234"
- name: brockkinoko.ogg
path: SyobonAction/SE/brockkinoko.ogg
description: "Mushroom from block sound"
required: false
category: game_data
source_ref: "OpenSyobonAction/loadg.cpp:235"
- name: powerup.ogg
path: SyobonAction/SE/powerup.ogg
description: "Power-up sound"
required: false
category: game_data
source_ref: "OpenSyobonAction/loadg.cpp:236"
- name: kirra.ogg
path: SyobonAction/SE/kirra.ogg
description: "Star sound"
required: false
category: game_data
source_ref: "OpenSyobonAction/loadg.cpp:237"
- name: goal.ogg
path: SyobonAction/SE/goal.ogg
description: "Goal sound"
required: false
category: game_data
source_ref: "OpenSyobonAction/loadg.cpp:238"
- name: death.ogg
path: SyobonAction/SE/death.ogg
description: "Death sound"
required: false
category: game_data
source_ref: "OpenSyobonAction/loadg.cpp:239"
- name: Pswitch.ogg
path: SyobonAction/SE/Pswitch.ogg
description: "P-switch sound"
required: false
category: game_data
source_ref: "OpenSyobonAction/loadg.cpp:240"
- name: jumpBlock.ogg
path: SyobonAction/SE/jumpBlock.ogg
description: "Jump block sound"
required: false
category: game_data
source_ref: "OpenSyobonAction/loadg.cpp:241"
- name: hintBlock.ogg
path: SyobonAction/SE/hintBlock.ogg
description: "Hint block sound"
required: false
category: game_data
source_ref: "OpenSyobonAction/loadg.cpp:242"
- name: 4-clear.ogg
path: SyobonAction/SE/4-clear.ogg
description: "Stage clear sound"
required: false
category: game_data
source_ref: "OpenSyobonAction/loadg.cpp:243"
- name: allclear.ogg
path: SyobonAction/SE/allclear.ogg
description: "All stages clear sound"
required: false
category: game_data
source_ref: "OpenSyobonAction/loadg.cpp:244"
- name: tekifire.ogg
path: SyobonAction/SE/tekifire.ogg
description: "Enemy fire sound"
required: false
category: game_data
source_ref: "OpenSyobonAction/loadg.cpp:245"
+8 -11
View File
@@ -1,17 +1,14 @@
emulator: TamaLIBretro emulator: TamaLIBretro
type: libretro type: game
core_classification: community_fork source: "https://github.com/libretro/tamern-libretro"
source: "https://github.com/celerizer/tamalibretro" profiled_date: "2026-03-18"
upstream: "https://github.com/jcrona/tamalib"
source_ref: "main.c:345-365 (retro_load_game)"
profiled_date: "2026-03-25"
core_version: "1.0" core_version: "1.0"
display_name: "Bandai - Tamagotchi P1 (TamaLIBretro)" display_name: "Bandai - Tamagotchi P1 (TamaLIBretro)"
cores: [tamalibretro] cores: [tamalibretro]
systems: [tamagotchi-p1] systems: []
files: [] files: []
notes: > notes: >
Emulates Bandai Tamagotchi P1 hardware (Epson E0C6S46 CPU) via TamaLIB. Tamagotchi P1 virtual pet simulator for libretro based on TamaLIB.
Loads the Tamagotchi ROM (tama.b from MAME set) as content. Emulates the Bandai Tamagotchi P1 hardware (E0C6S46 CPU).
No BIOS or system directory files required. The original Tamagotchi ROM is compiled into the binary.
.info firmware_count=0 matches the code. No content file, BIOS, or system directory files required.
+15 -11
View File
@@ -1,9 +1,7 @@
emulator: TempGBA emulator: TempGBA
type: libretro type: libretro
core_classification: community_fork
source: "https://github.com/libretro/TempGBA-libretro" source: "https://github.com/libretro/TempGBA-libretro"
upstream: "https://github.com/Nebuleon/ReGBA" profiled_date: "2026-03-18"
profiled_date: "2026-03-25"
core_version: "26731013" core_version: "26731013"
display_name: "Nintendo - Game Boy Advance (TempGBA)" display_name: "Nintendo - Game Boy Advance (TempGBA)"
cores: cores:
@@ -12,16 +10,22 @@ systems:
- nintendo-gba - nintendo-gba
notes: | notes: |
Fork chain: gpSP (Exophase) -> gpSP Kai (takka) -> TempGBA NDS TempGBA is a Game Boy Advance emulator forked from gpSP. Originally
(Nebuleon) -> TempGBA4PSP (unknown) -> TempGBA-libretro. developed for the Nintendo DS homebrew scene, the libretro port wraps
PSP-optimized GBA emulator. No HLE BIOS: SWI calls execute from the dynarec-based GBA engine for use in RetroArch.
the real BIOS ROM. The NDS version (ReGBA) added an open-source
BIOS replacement (Normmatt), but TempGBA4PSP did not carry it over. The GBA BIOS (gba_bios.bin) is optional. TempGBA includes HLE BIOS
Boot sequence skipped by default (PC starts at 0x08000000). stubs inherited from gpSP that handle most SWI calls. The real BIOS
improves boot logo display and SWI accuracy for a small number of
titles.
BIOS file goes in the system directory as gba_bios.bin (same path
used by gpSP and mGBA).
files: files:
- name: gba_bios.bin - name: gba_bios.bin
system: nintendo-gba system: nintendo-gba
required: true required: false
hle_fallback: true
size: 16384 size: 16384
source_ref: "memory.c:3308-3323 (load_bios), libretro.c:238-314 (retro_load_game returns false if missing)" note: "GBA BIOS. Optional, HLE stubs cover most software."
+5 -7
View File
@@ -1,9 +1,7 @@
emulator: test emulator: test
type: test type: test
core_classification: pure_libretro
source: "https://github.com/libretro/libretro-samples" source: "https://github.com/libretro/libretro-samples"
upstream: "https://github.com/libretro/libretro-samples" profiled_date: "2026-03-18"
profiled_date: "2026-03-25"
core_version: "v1" core_version: "v1"
display_name: "Test" display_name: "Test"
cores: cores:
@@ -11,10 +9,10 @@ cores:
systems: [] systems: []
notes: | notes: |
Test core from libretro-samples. Software-rendered checkerboard pattern Basic test core from libretro-samples. Minimal software-rendered core
with sine wave audio and input device testing (joypad, mouse, analog, used for sanity-checking the libretro frontend loop (frame timing, input
lightgun, keyboard, rumble). No emulation, no system files. polling, audio sample generation).
Source: tests/test/libretro-test.c. Single file, no file I/O. No system files, BIOS, or firmware required. Not an emulator.
files: [] files: []
+7 -11
View File
@@ -1,7 +1,7 @@
emulator: test_netplay emulator: test_netplay
type: test type: test
core_classification: pure_libretro source: "https://github.com/libretro/libretro-samples"
profiled_date: "2026-03-25" profiled_date: "2026-03-18"
core_version: "1" core_version: "1"
display_name: "Test for netplay" display_name: "Test for netplay"
cores: cores:
@@ -9,15 +9,11 @@ cores:
systems: [] systems: []
notes: | notes: |
Phantom .info: declared in libretro-core-info since 2017 but no source code, Netplay test core from libretro-samples. Designed to validate the libretro
build recipe, or compiled binary exists anywhere in the libretro organization. netplay subsystem: deterministic frame stepping, input synchronization,
Not on the buildbot. The .info has empty authors, license, and extensions. savestate serialization for rollback. Renders a simple interactive scene
where two players can verify sync.
No system files required. No system files, BIOS, or firmware required. Not an emulator.
exclusion_note: >
.info declares no firmware (firmware_count absent). No source code found
to analyze — searched libretro-samples, RetroArch cores, libretro-super,
and the full libretro GitHub org.
files: [] files: []
+5 -5
View File
@@ -1,9 +1,7 @@
emulator: testaudio_callback emulator: testaudio_callback
type: test type: test
core_classification: pure_libretro
source: "https://github.com/libretro/libretro-samples" source: "https://github.com/libretro/libretro-samples"
upstream: "https://github.com/libretro/libretro-samples" profiled_date: "2026-03-18"
profiled_date: "2026-03-25"
core_version: "v1" core_version: "v1"
display_name: "TestAudio Callback" display_name: "TestAudio Callback"
cores: cores:
@@ -13,7 +11,9 @@ systems: []
notes: | notes: |
Audio callback test core from libretro-samples. Tests the Audio callback test core from libretro-samples. Tests the
RETRO_ENVIRONMENT_SET_AUDIO_CALLBACK path where audio runs on a RETRO_ENVIRONMENT_SET_AUDIO_CALLBACK path where audio runs on a
separate thread managed by the frontend. Generates a 300 Hz sine separate thread managed by the frontend. Generates a simple tone
tone to validate callback-driven audio output. to validate callback-driven audio output.
No system files, BIOS, or firmware required. Not an emulator.
files: [] files: []
+7 -6
View File
@@ -1,9 +1,7 @@
emulator: testaudio_no_callback emulator: testaudio_no_callback
type: test type: test
core_classification: pure_libretro
source: "https://github.com/libretro/libretro-samples" source: "https://github.com/libretro/libretro-samples"
upstream: "https://github.com/libretro/libretro-samples" profiled_date: "2026-03-18"
profiled_date: "2026-03-25"
core_version: "v1" core_version: "v1"
display_name: "TestAudio NoCallback" display_name: "TestAudio NoCallback"
cores: cores:
@@ -11,8 +9,11 @@ cores:
systems: [] systems: []
notes: | notes: |
Audio test core from libretro-samples. Tests the synchronous audio path Audio no-callback test core from libretro-samples. Tests the standard
using retro_audio_sample (no threaded callback). Generates a 300 Hz sine synchronous audio path using retro_audio_sample/retro_audio_sample_batch
wave at 30 kHz sample rate. (no threaded callback). Generates a simple tone to validate the default
audio output mode.
No system files, BIOS, or firmware required. Not an emulator.
files: [] files: []
+6 -7
View File
@@ -1,9 +1,7 @@
emulator: testaudio_playback_wav emulator: testaudio_playback_wav
type: test type: test
core_classification: pure_libretro
source: "https://github.com/libretro/libretro-samples" source: "https://github.com/libretro/libretro-samples"
upstream: "https://github.com/libretro/libretro-samples" profiled_date: "2026-03-18"
profiled_date: "2026-03-25"
core_version: "v1" core_version: "v1"
display_name: "TestAudio Playback Wav" display_name: "TestAudio Playback Wav"
cores: cores:
@@ -11,10 +9,11 @@ cores:
systems: [] systems: []
notes: | notes: |
WAV playback test core from libretro-samples. Loads a .wav file as content Audio WAV playback test core from libretro-samples. Loads a .wav file
and plays it back through the libretro audio interface. Renders a progress as content and plays it back through the libretro audio interface. Tests
bar on a 320x240 framebuffer. No emulation, no system files. audio sample rate conversion, buffer management, and content loading for
non-ROM file types.
Source: audio/audio_playback_wav/libretro-test.c. Single file, no file I/O. No system files, BIOS, or firmware required. Not an emulator.
files: [] files: []
+6 -6
View File
@@ -1,9 +1,7 @@
emulator: testgl emulator: testgl
type: test type: test
core_classification: pure_libretro
source: "https://github.com/libretro/libretro-samples" source: "https://github.com/libretro/libretro-samples"
upstream: "https://github.com/libretro/libretro-samples" profiled_date: "2026-03-18"
profiled_date: "2026-03-25"
core_version: "v1" core_version: "v1"
display_name: "TestGL" display_name: "TestGL"
cores: cores:
@@ -11,8 +9,10 @@ cores:
systems: [] systems: []
notes: | notes: |
OpenGL programmable pipeline test core from libretro-samples. Renders two OpenGL test core from libretro-samples. Validates the hardware-accelerated
spinning quads via GL 2.0+ / GLES 2.0+ shaders through the libretro OpenGL rendering path in the frontend. Renders a spinning triangle or cube
hw_render interface. Shaders are embedded as string constants in the source. using GL calls through the libretro hw_render interface.
No system files, BIOS, or firmware required. Not an emulator.
files: [] files: []
+4 -5
View File
@@ -1,9 +1,7 @@
emulator: testgl_compute_shaders emulator: testgl_compute_shaders
type: test type: test
core_classification: pure_libretro
source: "https://github.com/libretro/libretro-samples" source: "https://github.com/libretro/libretro-samples"
upstream: "https://github.com/libretro/libretro-samples" profiled_date: "2026-03-18"
profiled_date: "2026-03-25"
core_version: "v1" core_version: "v1"
display_name: "TestGL ComputeShaders" display_name: "TestGL ComputeShaders"
cores: cores:
@@ -14,7 +12,8 @@ notes: |
OpenGL compute shader test core from libretro-samples. Validates compute OpenGL compute shader test core from libretro-samples. Validates compute
shader support through the libretro hw_render interface. Runs a compute shader support through the libretro hw_render interface. Runs a compute
shader kernel and renders the output, testing GL 4.3+ / GLES 3.1+ shader kernel and renders the output, testing GL 4.3+ / GLES 3.1+
capability in the frontend. All visual assets (shaders, textures, mesh) capability in the frontend.
are bundled in the core's app/ directory alongside the binary.
No system files, BIOS, or firmware required. Not an emulator.
files: [] files: []
+7 -7
View File
@@ -1,10 +1,7 @@
emulator: testgl_ff emulator: testgl_ff
type: test type: test
core_classification: pure_libretro
source: "https://github.com/libretro/libretro-samples" source: "https://github.com/libretro/libretro-samples"
upstream: null profiled_date: "2026-03-18"
source_ref: "video/opengl/libretro_test_gl_fixedfunction/libretro_gl_ff_test.c"
profiled_date: "2026-03-25"
core_version: "v1" core_version: "v1"
display_name: "TestGL (FF)" display_name: "TestGL (FF)"
cores: cores:
@@ -12,8 +9,11 @@ cores:
systems: [] systems: []
notes: | notes: |
OpenGL fixed-function pipeline test core from libretro-samples. OpenGL fixed-function test core from libretro-samples. Similar to testgl
Renders a colored quad using glBegin/glEnd and matrix stack (GL 1.4+ / GLES 1.x+). but uses the legacy OpenGL fixed-function pipeline (glBegin/glEnd, matrix
No file loading of any kind. supports_no_game. stack) instead of shaders. Tests frontend compatibility with older GL code
paths.
No system files, BIOS, or firmware required. Not an emulator.
files: [] files: []
+6 -7
View File
@@ -1,9 +1,7 @@
emulator: testinput_buttontest emulator: testinput_buttontest
type: test type: test
core_classification: pure_libretro
source: "https://github.com/libretro/libretro-samples" source: "https://github.com/libretro/libretro-samples"
upstream: "https://github.com/libretro/libretro-samples" profiled_date: "2026-03-18"
profiled_date: "2026-03-25"
core_version: "v1" core_version: "v1"
display_name: "Button Test" display_name: "Button Test"
cores: cores:
@@ -11,10 +9,11 @@ cores:
systems: [] systems: []
notes: | notes: |
Input button test core from libretro-samples. Renders an RLE-encoded Input button test core from libretro-samples. Displays a visual
controller image and highlights buttons in real time as pressed. Polls representation of all libretro input bindings (joypad buttons, analog
joypad and analog inputs. No file I/O. sticks, triggers) and highlights them in real time as they are pressed.
Used to debug controller mapping and input driver issues.
Source: input/button_test/libretro.c. Single file, no external dependencies. No system files, BIOS, or firmware required. Not an emulator.
files: [] files: []
+8 -7
View File
@@ -1,9 +1,7 @@
emulator: testretroluxury emulator: testretroluxury
type: test type: test
core_classification: pure_libretro source: "https://github.com/libretro/libretro-samples"
source: "https://github.com/libretro/retroluxury" profiled_date: "2026-03-18"
upstream: "https://github.com/leiradel/retroluxury"
profiled_date: "2026-03-25"
core_version: "v1" core_version: "v1"
display_name: "Test RetroLuxury" display_name: "Test RetroLuxury"
cores: cores:
@@ -11,8 +9,11 @@ cores:
systems: [] systems: []
notes: | notes: |
Tech demo for the retroluxury middleware layer. All resources (sprites, audio, RetroLuxury test core from libretro-samples. Demonstrates the rluxury
fonts) are embedded in the binary via xxd -i at compile time. No external (RetroLuxury) middleware layer for libretro, which provides a simplified
files loaded at runtime. game development framework on top of the core API. Used as a reference
implementation for the middleware.
No system files, BIOS, or firmware required. Not an emulator.
files: [] files: []
+6 -7
View File
@@ -1,10 +1,7 @@
emulator: testsw emulator: testsw
type: test type: test
core_classification: pure_libretro
source: "https://github.com/libretro/libretro-samples" source: "https://github.com/libretro/libretro-samples"
source_ref: "video/software/rendering/libretro-test.c" profiled_date: "2026-03-18"
upstream: null
profiled_date: "2026-03-25"
core_version: "v1" core_version: "v1"
display_name: "TestSW" display_name: "TestSW"
cores: cores:
@@ -12,8 +9,10 @@ cores:
systems: [] systems: []
notes: | notes: |
Software rendering test core from libretro-samples. Allocates a 320x240 Software rendering test core from libretro-samples. Validates the basic
XRGB8888 framebuffer and renders a moving checkered pattern. Reference software framebuffer path (RETRO_HW_FRAME_BUFFER_VALID). Writes pixel
implementation for core authors testing the software rendering path. data directly to the framebuffer without any hardware acceleration.
No system files, BIOS, or firmware required. Not an emulator.
files: [] files: []
+6 -7
View File
@@ -1,10 +1,7 @@
emulator: testsw_vram emulator: testsw_vram
type: test type: test
core_classification: pure_libretro
source: "https://github.com/libretro/libretro-samples" source: "https://github.com/libretro/libretro-samples"
upstream: "https://github.com/libretro/libretro-samples" profiled_date: "2026-03-18"
source_ref: "video/software/rendering_direct_to_vram/libretro-test.c"
profiled_date: "2026-03-25"
core_version: "v1" core_version: "v1"
display_name: "TestSW VRAM" display_name: "TestSW VRAM"
cores: cores:
@@ -12,8 +9,10 @@ cores:
systems: [] systems: []
notes: | notes: |
Software rendering test core. Renders a checkered pattern directly to VRAM Software VRAM test core from libretro-samples. Tests the software rendering
via RETRO_ENVIRONMENT_GET_CURRENT_SOFTWARE_FRAMEBUFFER, with fallback to path with VRAM access patterns, validating how the frontend handles direct
standard framebuffer copy. Single source file, no file I/O. video memory writes and buffer management.
No system files, BIOS, or firmware required. Not an emulator.
files: [] files: []
+3 -5
View File
@@ -1,9 +1,7 @@
emulator: testvulkan emulator: testvulkan
type: test type: test
core_classification: pure_libretro
source: "https://github.com/libretro/libretro-samples" source: "https://github.com/libretro/libretro-samples"
upstream: "https://github.com/libretro/libretro-samples" profiled_date: "2026-03-18"
profiled_date: "2026-03-25"
core_version: "v1" core_version: "v1"
display_name: "TestVulkan" display_name: "TestVulkan"
cores: cores:
@@ -13,8 +11,8 @@ systems: []
notes: | notes: |
Vulkan test core from libretro-samples. Validates the Vulkan hardware Vulkan test core from libretro-samples. Validates the Vulkan hardware
rendering path in the frontend via the libretro hw_render_interface_vulkan rendering path in the frontend via the libretro hw_render_interface_vulkan
API. Renders a rotating triangle using Vulkan command buffers and swapchain API. Renders a basic scene using Vulkan command buffers and swapchain
integration. Shaders embedded at compile time (SPIR-V). integration.
No system files, BIOS, or firmware required. Not an emulator. No system files, BIOS, or firmware required. Not an emulator.
+5 -7
View File
@@ -1,9 +1,7 @@
emulator: testvulkan_async_compute emulator: testvulkan_async_compute
type: test type: test
core_classification: pure_libretro
source: "https://github.com/libretro/libretro-samples" source: "https://github.com/libretro/libretro-samples"
upstream: "https://github.com/libretro/libretro-samples" profiled_date: "2026-03-18"
profiled_date: "2026-03-25"
core_version: "v1" core_version: "v1"
display_name: "TestVulkan AsyncCompute" display_name: "TestVulkan AsyncCompute"
cores: cores:
@@ -11,10 +9,10 @@ cores:
systems: [] systems: []
notes: | notes: |
Vulkan async compute test core from libretro-samples. Exercises async Vulkan async compute test core from libretro-samples. Extends testvulkan
compute queue support via the libretro hw_render_interface_vulkan API. to exercise async compute queue support in the Vulkan rendering path.
Renders a raymarching demo using concurrent graphics and compute workloads. Tests concurrent graphics and compute workloads through the libretro
Compute shader embedded at compile time (SPIR-V). hw_render_interface_vulkan API.
No system files, BIOS, or firmware required. Not an emulator. No system files, BIOS, or firmware required. Not an emulator.
+17 -8
View File
@@ -1,9 +1,7 @@
emulator: TGB Dual emulator: TGB Dual
type: libretro type: libretro
core_classification: community_fork
source: "https://github.com/libretro/tgbdual-libretro" source: "https://github.com/libretro/tgbdual-libretro"
upstream: "http://gigo.retrogames.com/download.html#tgb-dual" profiled_date: "2026-03-18"
profiled_date: "2026-03-25"
core_version: "v0.8.3" core_version: "v0.8.3"
display_name: "Nintendo - Game Boy / Color (TGB Dual)" display_name: "Nintendo - Game Boy / Color (TGB Dual)"
cores: cores:
@@ -13,11 +11,22 @@ systems:
- nintendo-gbc - nintendo-gbc
notes: | notes: |
Game Boy / Game Boy Color emulator by GIGO and Hii with link cable support TGB Dual is a Game Boy / Game Boy Color emulator by GIGO and Hii with
for two units side by side. Libretro port based on shinichiro.h's SDL port. link cable support for two Game Boy units side by side.
cpu::reset() initializes PC to 0x100 and sets post-boot register values No BIOS or boot ROM files are required or supported. The core does not
(AF=0x01B0 DMG, 0x11B0 CGB), bypassing the boot ROM via HLE. call RETRO_ENVIRONMENT_GET_SYSTEM_DIRECTORY for firmware loading and does
No system directory access, no file I/O for firmware. not attempt to open any files from the system directory.
In cpu.cpp:57, the program counter is initialized to 0x100 (post-boot ROM
entry point), and cpu::reset() sets all registers to their post-boot
values directly (AF=0x01B0 for DMG, 0x11B0 for CGB). This means the
core completely bypasses the boot ROM sequence via HLE register setup.
The load_rom() path in libretro.cpp passes ROM data directly to the gb
class without any BIOS file concatenation or boot ROM mapping.
Supported extensions: gb, dmg, gbc, cgb, sgb.
Library version: v0.8.3.
files: [] files: []
+4 -7
View File
@@ -1,15 +1,12 @@
emulator: Theodore emulator: Theodore
type: libretro type: libretro
core_classification: pure_libretro
source: "https://github.com/Zlika/theodore" source: "https://github.com/Zlika/theodore"
upstream: "http://dcmoto.free.fr/" profiled_date: "2026-03-18"
profiled_date: "2026-03-25" core_version: "v4.1"
core_version: "Git (post-3.1)"
display_name: "Thomson - MO/TO (Theodore)" display_name: "Thomson - MO/TO (Theodore)"
cores: [theodore] cores: [theodore]
systems: [thomson-to7, thomson-to770, thomson-to8, thomson-to8d, thomson-to9, thomson-to9plus, thomson-mo5, thomson-mo6, olivetti-pc128] systems: [thomson-to7, thomson-to770, thomson-to8, thomson-to8d, thomson-to9, thomson-to9plus, thomson-mo5, thomson-mo6, olivetti-pc128]
notes: > notes: >
All system ROMs (monitor, BASIC, disk drive controller) are compiled into the binary All system ROMs (monitor + BASIC) are compiled into the binary.
as C arrays in src/rom/*.inc. Derived from Daniel Coulom's DCTO8D/DCTO9P/DCMO5 emulators. No external BIOS files needed.
The .info declares no firmware (firmware_count absent), consistent with the code.
files: [] files: []
+5 -6
View File
@@ -1,15 +1,14 @@
emulator: The Powder Toy emulator: The Powder Toy
type: game type: game
core_classification: pure_libretro
source: "https://github.com/libretro/ThePowderToy" source: "https://github.com/libretro/ThePowderToy"
upstream: "https://github.com/ThePowderToy/The-Powder-Toy" profiled_date: "2026-03-18"
profiled_date: "2026-03-25"
core_version: "v92.5.336" core_version: "v92.5.336"
display_name: "The Powder Toy" display_name: "The Powder Toy"
cores: [thepowdertoy] cores: [thepowdertoy]
systems: [] systems: []
files: [] files: []
notes: > notes: >
Falling-sand physics simulation game. All resources (fonts, shaders, Libretro port of The Powder Toy, a falling-sand physics simulation game.
images) compiled into the binary. GetSystemDir() declared but never Simulate various materials (powder, liquid, gas, explosive, electronic)
called. No external files loaded from system directory. interacting with each other. Can load .cps save files as content.
No BIOS, firmware, or system directory files required.
+19 -14
View File
@@ -1,9 +1,7 @@
emulator: TIC-80 emulator: TIC-80
type: libretro type: libretro
core_classification: game_engine
source: "https://github.com/libretro/TIC-80" source: "https://github.com/libretro/TIC-80"
upstream: "https://github.com/nesbox/TIC-80" profiled_date: "2026-03-18"
profiled_date: "2026-03-25"
core_version: "0.80.0" core_version: "0.80.0"
display_name: "TIC-80" display_name: "TIC-80"
cores: cores:
@@ -12,17 +10,22 @@ systems:
- tic80 - tic80
notes: | notes: |
Fantasy computer for making, playing and sharing tiny games. TIC-80 is a fantasy computer for making, playing and sharing tiny games.
The libretro repo wraps nesbox/TIC-80 as a submodule; the libretro The libretro port wraps the nesbox/TIC-80 engine as a submodule.
wrapper (tic80_libretro.c) lives in the upstream repo itself.
Content loaded entirely via libretro data buffer (need_fullpath = false, The core loads .tic cartridge files (and .png for cart-as-image format)
tic80_libretro.c:340). No call to RETRO_ENVIRONMENT_GET_SYSTEM_DIRECTORY. entirely through the libretro data buffer (need_fullpath = false,
No code path reads any file from the system directory. All VM resources tic80_libretro.c:340). Content bytes are passed directly to tic80_load()
(sprites, palette, font, sound engine) are compiled into the binary. at retro_load_game() (tic80_libretro.c:1152).
TIC_MODULE_EXT (dynamic scripting plugins) is disabled in libretro The core never calls RETRO_ENVIRONMENT_GET_SYSTEM_DIRECTORY. There is no
builds via #if !defined(__LIBRETRO__) in tic80_config.h:36. code path that reads any file from the system directory. No BIOS, firmware,
or boot ROM exists for this platform -- TIC-80 is a self-contained virtual
machine with all system resources built into the engine binary.
The TIC-80 VM provides 80x45 tilemap, 240x136 screen, 256 8x8 sprites,
4 channels of sound, and supports Lua, Moonscript, JavaScript, Wren,
Fennel, Squirrel, Ruby, Python, and Janet as scripting languages.
files: [] files: []
@@ -31,12 +34,14 @@ platform_details:
extensions: "tic, png" extensions: "tic, png"
source_ref: "tic80_libretro.c:339" source_ref: "tic80_libretro.c:339"
notes: | notes: |
.tic is the native cartridge format. .png loads cartridges .tic is the native cartridge format containing code, sprites, map,
sound, and music data. .png support allows loading cartridges
encoded as cover images (code stored in PNG metadata). encoded as cover images (code stored in PNG metadata).
runtime: runtime:
source_ref: "nesbox/TIC-80 (submodule at core/)" source_ref: "nesbox/TIC-80 (submodule at core/)"
notes: | notes: |
Entire runtime compiled into the binary. No external dependencies. The entire TIC-80 runtime (CPU, GPU, APU, scripting engines) is
compiled into the core binary. No external dependencies at runtime.
State serialization uses TIC_PERSISTENT_SIZE * 4 bytes of pmem() State serialization uses TIC_PERSISTENT_SIZE * 4 bytes of pmem()
data (tic80_libretro.c:1203-1243). data (tic80_libretro.c:1203-1243).
-10
View File
@@ -159,16 +159,6 @@ data_directories:
strip_components: 1 strip_components: 1
description: "FreeIntv per-game controller overlay PNGs" description: "FreeIntv per-game controller overlay PNGs"
# ref: crawl-ref/source/files.cc:375-458 — datafile_path() dat/ tree
# Not on buildbot — sourced from libretro repo
# 532 files (tiles, fonts, databases, lua scripts, level descriptions)
stonesoup:
source_url: "https://github.com/libretro/crawl-ref"
source_type: git_subtree
source_path: "crawl-ref/source/dat"
local_cache: data/stonesoup
description: "DCSS game data (tiles, fonts, databases, lua, level descriptions)"
# ref: dirksimple — system/ # ref: dirksimple — system/
dirksimple: dirksimple:
source_url: "https://buildbot.libretro.com/assets/system/DirkSimple.zip" source_url: "https://buildbot.libretro.com/assets/system/DirkSimple.zip"
+5 -13
View File
@@ -557,21 +557,13 @@ def _build_validation_index(profiles: dict) -> dict[str, dict]:
# Hash checks — collect all accepted hashes as sets (multiple valid # Hash checks — collect all accepted hashes as sets (multiple valid
# versions of the same file, e.g. MT-32 ROM versions) # versions of the same file, e.g. MT-32 ROM versions)
if "crc32" in checks and f.get("crc32"): if "crc32" in checks and f.get("crc32"):
crc_val = f["crc32"] norm = f["crc32"].lower()
crc_list = crc_val if isinstance(crc_val, list) else [crc_val] if norm.startswith("0x"):
for cv in crc_list: norm = norm[2:]
norm = str(cv).lower() index[fname]["crc32"].add(norm)
if norm.startswith("0x"):
norm = norm[2:]
index[fname]["crc32"].add(norm)
for hash_type in ("md5", "sha1", "sha256"): for hash_type in ("md5", "sha1", "sha256"):
if hash_type in checks and f.get(hash_type): if hash_type in checks and f.get(hash_type):
val = f[hash_type] index[fname][hash_type].add(f[hash_type].lower())
if isinstance(val, list):
for h in val:
index[fname][hash_type].add(str(h).lower())
else:
index[fname][hash_type].add(str(val).lower())
# Adler32 — stored as known_hash_adler32 field (not in validation: list # Adler32 — stored as known_hash_adler32 field (not in validation: list
# for Dolphin, but support it in both forms for future profiles) # for Dolphin, but support it in both forms for future profiles)
adler_val = f.get("known_hash_adler32") or f.get("adler32") adler_val = f.get("known_hash_adler32") or f.get("adler32")