13 Commits

Author SHA1 Message Date
Abdessamad Derraz
a8430940f9 feat: add regional nand aliases to melonds profile
dsi_nand.bin aliases: DSi_Nand_USA/EUR/JPN/AUS/CHN/KOR.bin
for repo resolution. Code loads a single configurable path
(libretro.cpp:836, EmuInstance.cpp:1036-1050), validates
nocash footer (DSi_NAND.cpp:42-111). size + storage added.
2026-03-30 12:20:26 +02:00
Abdessamad Derraz
1f073f521d fix: preserve batocera version when github fetch fails 2026-03-30 11:55:57 +02:00
Abdessamad Derraz
903c49edcf feat: add tests for registry merge, all_libretro expansion, hash fallback, system normalization 2026-03-30 11:33:59 +02:00
Abdessamad Derraz
d3a2224dd2 chore: regenerate database, readme, manifests, site 2026-03-30 09:42:39 +02:00
Abdessamad Derraz
f898f26847 chore: regenerate retrobat.yml with corrected system slugs 2026-03-30 09:11:00 +02:00
Abdessamad Derraz
2712307420 feat: add tandy vis bios root set to mame profiles
vis.zip (p513bk0b.bin + p513bk1b.bin) from src/mame/trs/vis.cpp.
Driver added in MAME 0.180, not present in older cores.
2026-03-30 09:09:58 +02:00
Abdessamad Derraz
54022e9db1 feat: hash-based matching for cross-reference
expand_platform_declared_names resolves platform file MD5s
through the database to recover canonical names and aliases,
eliminating false positive undeclared files when a platform
renames a file (e.g. Batocera ROM1 vs gsplus ROM).
2026-03-30 08:25:54 +02:00
Abdessamad Derraz
4db9e4350c fix: add missing system slugs to batocera and retrobat scrapers 2026-03-30 07:58:46 +02:00
Abdessamad Derraz
6864ce6584 feat: diff hash fallback detects platform renames 2026-03-30 07:53:59 +02:00
Abdessamad Derraz
12196b6445 feat: add 55 missing cores across 6 platform registries 2026-03-30 07:17:57 +02:00
Abdessamad Derraz
7551e41a7b feat: load_platform_config merges cores from registry 2026-03-30 07:13:15 +02:00
Abdessamad Derraz
7b484605d4 feat: add 47 missing cores to batocera platform config 2026-03-30 07:09:52 +02:00
Abdessamad Derraz
b587381f05 feat: resolve_platform_cores expands all_libretro in list 2026-03-30 07:06:32 +02:00
25 changed files with 18354 additions and 2407 deletions

View File

@@ -2,7 +2,7 @@
Complete BIOS and firmware packs for Batocera, BizHawk, EmuDeck, Lakka, Recalbox, RetroArch, RetroBat, RetroDECK, RetroPie, and RomM.
**7,244** verified files across **387** systems, ready to extract into your emulator's BIOS directory.
**7,239** verified files across **396** systems, ready to extract into your emulator's BIOS directory.
## Quick Install
@@ -27,14 +27,14 @@ Pick your platform, download the ZIP, extract to the BIOS path.
| Platform | BIOS files | Extract to | Download |
|----------|-----------|-----------|----------|
| Batocera | 359 | `/userdata/bios/` | [Download](../../releases/latest) |
| Batocera | 362 | `/userdata/bios/` | [Download](../../releases/latest) |
| BizHawk | 118 | `Firmware/` | [Download](../../releases/latest) |
| EmuDeck | 161 | `Emulation/bios/` | [Download](../../releases/latest) |
| Lakka | 448 | `system/` | [Download](../../releases/latest) |
| Recalbox | 346 | `/recalbox/share/bios/` | [Download](../../releases/latest) |
| RetroArch | 448 | `system/` | [Download](../../releases/latest) |
| RetroBat | 331 | `bios/` | [Download](../../releases/latest) |
| RetroDECK | 2007 | `~/retrodeck/bios/` | [Download](../../releases/latest) |
| RetroBat | 339 | `bios/` | [Download](../../releases/latest) |
| RetroDECK | 2006 | `~/retrodeck/bios/` | [Download](../../releases/latest) |
| RetroPie | 448 | `BIOS/` | [Download](../../releases/latest) |
| RomM | 374 | `bios/{platform_slug}/` | [Download](../../releases/latest) |
@@ -44,14 +44,14 @@ BIOS, firmware, and system files for consoles from Atari to PlayStation 3.
Each file is checked against the emulator's source code to match what the code actually loads at runtime.
- **10 platforms** supported with platform-specific verification
- **328 emulators** profiled from source (RetroArch cores + standalone)
- **387 systems** covered (NES, SNES, PlayStation, Saturn, Dreamcast, ...)
- **7,244 files** verified with MD5, SHA1, CRC32 checksums
- **9266 MB** total collection size
- **329 emulators** profiled from source (RetroArch cores + standalone)
- **396 systems** covered (NES, SNES, PlayStation, Saturn, Dreamcast, ...)
- **7,239 files** verified with MD5, SHA1, CRC32 checksums
- **8144 MB** total collection size
## Supported systems
NES, SNES, Nintendo 64, GameCube, Wii, Game Boy, Game Boy Advance, Nintendo DS, Nintendo 3DS, Switch, PlayStation, PlayStation 2, PlayStation 3, PSP, PS Vita, Mega Drive, Saturn, Dreamcast, Game Gear, Master System, Neo Geo, Atari 2600, Atari 7800, Atari Lynx, Atari ST, MSX, PC Engine, TurboGrafx-16, ColecoVision, Intellivision, Commodore 64, Amiga, ZX Spectrum, Arcade (MAME), and 353+ more.
NES, SNES, Nintendo 64, GameCube, Wii, Game Boy, Game Boy Advance, Nintendo DS, Nintendo 3DS, Switch, PlayStation, PlayStation 2, PlayStation 3, PSP, PS Vita, Mega Drive, Saturn, Dreamcast, Game Gear, Master System, Neo Geo, Atari 2600, Atari 7800, Atari Lynx, Atari ST, MSX, PC Engine, TurboGrafx-16, ColecoVision, Intellivision, Commodore 64, Amiga, ZX Spectrum, Arcade (MAME), and 362+ more.
Full list with per-file details: **[https://abdess.github.io/retrobios/](https://abdess.github.io/retrobios/)**
@@ -59,15 +59,15 @@ Full list with per-file details: **[https://abdess.github.io/retrobios/](https:/
| Platform | Coverage | Verified | Untested | Missing |
|----------|----------|----------|----------|---------|
| Batocera | 359/359 (100.0%) | 354 | 5 | 0 |
| Batocera | 356/362 (98.3%) | 349 | 7 | 6 |
| BizHawk | 118/118 (100.0%) | 118 | 0 | 0 |
| EmuDeck | 161/161 (100.0%) | 161 | 0 | 0 |
| Lakka | 443/448 (98.9%) | 443 | 0 | 5 |
| Recalbox | 276/346 (79.8%) | 273 | 3 | 70 |
| RetroArch | 443/448 (98.9%) | 443 | 0 | 5 |
| RetroBat | 330/331 (99.7%) | 326 | 4 | 1 |
| RetroDECK | 1958/2007 (97.6%) | 1932 | 26 | 49 |
| RetroPie | 443/448 (98.9%) | 443 | 0 | 5 |
| Lakka | 442/448 (98.7%) | 442 | 0 | 6 |
| Recalbox | 277/346 (80.1%) | 274 | 3 | 69 |
| RetroArch | 442/448 (98.7%) | 442 | 0 | 6 |
| RetroBat | 337/339 (99.4%) | 333 | 4 | 2 |
| RetroDECK | 1960/2006 (97.7%) | 1934 | 26 | 46 |
| RetroPie | 442/448 (98.7%) | 442 | 0 | 6 |
| RomM | 372/374 (99.5%) | 372 | 0 | 2 |
## Build your own pack
@@ -104,7 +104,7 @@ The [documentation site](https://abdess.github.io/retrobios/) provides:
- **Per-emulator profiles** with source code references for every file
- **Per-system pages** showing which emulators and platforms cover each console
- **Gap analysis** identifying missing files and undeclared core requirements
- **Cross-reference** mapping files across 10 platforms and 328 emulators
- **Cross-reference** mapping files across 10 platforms and 329 emulators
## How it works
@@ -130,4 +130,4 @@ See [CONTRIBUTING.md](CONTRIBUTING.md) for guidelines.
This repository provides BIOS files for personal backup and archival purposes.
*Auto-generated on 2026-03-29T21:00:40Z*
*Auto-generated on 2026-03-30T07:40:45Z*

View File

@@ -1,5 +1,5 @@
{
"generated_at": "2026-03-30T04:10:12Z",
"generated_at": "2026-03-30T07:24:43Z",
"total_files": 7239,
"total_size": 8539795099,
"files": {
@@ -102371,6 +102371,9 @@
"ts1500.zxpand.ovl": [
"0334b35f164089df7b2a82d46fa0ec6e43fafa90"
],
"tvc64.zip": [
"abf119cf947ea32defd08b29a8a25d75f6bd4987"
],
"TVC22_D7.64K": [
"abf119cf947ea32defd08b29a8a25d75f6bd4987"
],
@@ -102413,6 +102416,24 @@
"EXOS21.ROM": [
"55315b20fecb4441a07ee4bc5dc7153f396e0a2e"
],
"bk0010.zip": [
"4e83a94ae5155bbea14d7331a5a8db82457bd5ae",
"34fa37599f2f9eb607390ef2458a3c22d87f09a9",
"f087af69044432a1ef2431a72ac06946e32f2dd3",
"7e9a30e38d7b78981999821640a68a201bb6df01"
],
"monit10.rom": [
"4e83a94ae5155bbea14d7331a5a8db82457bd5ae"
],
"bas11m_1.rom": [
"34fa37599f2f9eb607390ef2458a3c22d87f09a9"
],
"b11m_ext.rom": [
"f087af69044432a1ef2431a72ac06946e32f2dd3"
],
"b11m_bos.rom": [
"7e9a30e38d7b78981999821640a68a201bb6df01"
],
"sony-playstation:239665b1a3dade1b5a52c06338011044": [
"343883a7b555646da8cee54aadd2795b6e7dd070"
],
@@ -103185,27 +103206,15 @@
"Kickstart v3.0 rev 39.106 (1992)(Commodore)(A4000)[!].rom": [
"f0b4e9e29e12218c2d5bd7020e4e785297d91fd7"
],
"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"
],
@@ -124501,6 +124510,10 @@
"9451a1a09d8f75944dbd6f91193fc360f1de80ac",
"03bbb386cf530e804363acdfc1d13e64cf28af2e",
"55315b20fecb4441a07ee4bc5dc7153f396e0a2e",
"4e83a94ae5155bbea14d7331a5a8db82457bd5ae",
"34fa37599f2f9eb607390ef2458a3c22d87f09a9",
"f087af69044432a1ef2431a72ac06946e32f2dd3",
"7e9a30e38d7b78981999821640a68a201bb6df01",
"343883a7b555646da8cee54aadd2795b6e7dd070",
"e38466a4ba8005fba7e9e3c7b9efeba7205bee3f",
"ffa7f9a7fb19d773a0c3985a541c8e5623d2c30d",
@@ -124623,13 +124636,9 @@
"4192c505d130f446b2ada6bdc91dae730acafb4c",
"16df8b5fd524c5a1c7584b2457ac15aff9e3ad6d",
"f0b4e9e29e12218c2d5bd7020e4e785297d91fd7",
"4e83a94ae5155bbea14d7331a5a8db82457bd5ae",
"6386e58bc1bba5e76baec9e8a1ca4b99dc3c573f",
"28eefbb63047b26e4aec104aeeca74e2f9d0276c",
"7e9a30e38d7b78981999821640a68a201bb6df01",
"f087af69044432a1ef2431a72ac06946e32f2dd3",
"9d76f3eefd64e032c763fa1ebf9cd3d9bd22317a",
"34fa37599f2f9eb607390ef2458a3c22d87f09a9",
"273a9933b68a290c5aedcd6d69faa7b1d22c0344",
"4891d739a8a8b67923681bad4fb67edab2e90e50",
"6e89d1227581c76441a53d605f9e324185f1da33",

View File

@@ -71,12 +71,13 @@ systems:
- philips-vg5k
- ti99
- tutor
- tandy-vis
- trs80
- vgmplay
notes: |
Rolling release tracking mamedev/mame upstream (currently 0.286).
80 BIOS root sets + 27 system ROM sets + 3 device ROMs (apple2gs, astrocade, adam, advision, apfm1000, beena, camplynx, casloopy, crvision, fm7, gamate, gamecom, gamepock, gmaster, gp32, laser310, pcw, pegasus, pv2000, rx78, segaai, socrates, ti99_4a, trs80, tutor, vg5k, vsmile). romload.cpp
81 BIOS root sets + 28 system ROM sets + 3 device ROMs (apple2gs, astrocade, adam, advision, apfm1000, beena, camplynx, casloopy, crvision, fm7, gamate, gamecom, gamepock, gmaster, gp32, laser310, pcw, pegasus, pv2000, rx78, segaai, socrates, ti99_4a, trs80, tutor, vg5k, vis, vsmile). romload.cpp
unmodified. No hiscore support.
Paths under system_dir/mame/ (artwork, cheat, hash, ini, plugins,
samples, crosshair). ROM search: content_dir + system_dir/mame/bios +
@@ -1311,6 +1312,24 @@ files:
size: 8192
crc32: a64d450a
# Tandy VIS (Video Information System)
# vis.cpp: vis (parent, WORKING). Tandy/Memorex MD-2500 (1992).
# CD-ROM-based multimedia system built on modified 286 PC hardware.
- name: vis.zip
required: true
category: bios_zip
system: tandy-vis
source_ref: "src/mame/trs/vis.cpp:1062-1066"
contents:
- name: p513bk0b.bin
description: "BIOS bank 0"
size: 524288
crc32: 364e3f74
- name: p513bk1b.bin
description: "BIOS bank 1"
size: 524288
crc32: e18239c4
# Tandy TRS-80 family
# Model I (trs80.cpp): trs80 (Level I, parent, WORKING), trs80l2 (Level II, parent),
# eg3003 (EACA Video Genie, parent), sys80/sys80p (clones), ht1080z/ht1080z2/ht108064 (clones).

View File

@@ -42,6 +42,7 @@ systems:
- supracan
- ti99
- interton-vc4000
- tandy-vis
- trs80
notes: |
@@ -1660,6 +1661,24 @@ files:
size: 16
crc32: 0ba78597
# Tandy VIS (Video Information System)
# vis.cpp: vis (parent, WORKING). Tandy/Memorex MD-2500 (1992).
# CD-ROM-based multimedia system built on modified 286 PC hardware.
- name: vis.zip
required: true
category: bios_zip
system: tandy-vis
source_ref: "src/mame/trs/vis.cpp:1062-1066"
contents:
- name: p513bk0b.bin
description: "BIOS bank 0"
size: 524288
crc32: 364e3f74
- name: p513bk1b.bin
description: "BIOS bank 1"
size: 524288
crc32: e18239c4
# Tandy TRS-80 family
# Model I (trs80.cpp): trs80 (Level I, parent, WORKING), trs80l2 (Level II, parent),
# eg3003 (EACA Video Genie, parent), sys80/sys80p (clones), ht1080z/ht1080z2/ht108064 (clones).

View File

@@ -77,11 +77,14 @@ files:
source_ref: "src/SPI.cpp:197-211, src/frontend/Util_ROM.cpp:201-217"
- name: dsi_nand.bin
aliases: [DSi_Nand_USA.bin, DSi_Nand_EUR.bin, DSi_Nand_JPN.bin, DSi_Nand_AUS.bin, DSi_Nand_CHN.bin, DSi_Nand_KOR.bin]
system: nintendo-dsi
description: "DSi NAND dump"
required: true
source_ref: "src/frontend/Util_ROM.cpp:224-235, src/DSi_NAND.cpp"
note: "Uses AES keys from ARM7i BIOS offset 0x8308"
size: 251658304
storage: large_file
source_ref: "src/frontend/Util_ROM.cpp:224-235, src/DSi_NAND.cpp:58-97"
note: "Any regional dump works. Nocash footer required (DSi eMMC CID/CPU at EOF-0x40 or 0xFF800). AES keys derived from ARM7i BIOS offset 0x8308."
- name: dsi_sd_card.bin
system: nintendo-dsi

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@@ -3,7 +3,7 @@
"platform": "emudeck",
"display_name": "EmuDeck",
"version": "1.0",
"generated": "2026-03-29T14:02:36Z",
"generated": "2026-03-30T07:38:01Z",
"base_destination": "bios",
"detect": [
{
@@ -50,8 +50,8 @@
}
}
],
"total_files": 270,
"total_size": 913637720,
"total_files": 290,
"total_size": 717377323,
"files": [
{
"dest": "colecovision.rom",
@@ -473,24 +473,6 @@
"Dolphin"
]
},
{
"dest": "scph1000.bin",
"sha1": "343883a7b555646da8cee54aadd2795b6e7dd070",
"size": 524288,
"repo_path": "bios/Sony/PlayStation/scph1000.bin",
"cores": [
"DuckStation"
]
},
{
"dest": "scph1001.bin",
"sha1": "10155d8d6e6e832d6ea66db9bc098321fb5e8ebf",
"size": 524288,
"repo_path": "bios/Sony/PlayStation/scph1001.bin",
"cores": [
"DuckStation"
]
},
{
"dest": "scph1002a.bin",
"sha1": "20b98f3d80f11cbf5a7bfd0779b0e63760ecc62c",
@@ -500,132 +482,6 @@
"DuckStation"
]
},
{
"dest": "scph1002b.bin",
"sha1": "76cf6b1b2a7c571a6ad07f2bac0db6cd8f71e2cc",
"size": 524288,
"repo_path": "bios/Sony/PlayStation/scph1002b.bin",
"cores": [
"DuckStation"
]
},
{
"dest": "scph1002c.bin",
"sha1": "b6a11579caef3875504fcf3831b8e3922746df2c",
"size": 524288,
"repo_path": "bios/Sony/PlayStation/scph1002c.bin",
"cores": [
"DuckStation"
]
},
{
"dest": "dtlh1100.bin",
"sha1": "73107d468fc7cb1d2c5b18b269715dd889ecef06",
"size": 524288,
"repo_path": "bios/Sony/PlayStation/dtlh1100.bin",
"cores": [
"DuckStation"
]
},
{
"dest": "scph3000.bin",
"sha1": "b06f4a861f74270be819aa2a07db8d0563a7cc4e",
"size": 524288,
"repo_path": "bios/Sony/PlayStation/scph3000.bin",
"cores": [
"DuckStation"
]
},
{
"dest": "scph1001_v20.bin",
"sha1": "649895efd79d14790eabb362e94eb0622093dfb9",
"size": 524288,
"repo_path": "bios/Sony/PlayStation/scph1001_v20.bin",
"cores": [
"DuckStation"
]
},
{
"dest": "scph3500.bin",
"sha1": "e38466a4ba8005fba7e9e3c7b9efeba7205bee3f",
"size": 524288,
"repo_path": "bios/Sony/PlayStation/scph3500.bin",
"cores": [
"DuckStation"
]
},
{
"dest": "scph1001_v21.bin",
"sha1": "ca7af30b50d9756cbd764640126c454cff658479",
"size": 524288,
"repo_path": "bios/Sony/PlayStation/scph1001_v21.bin",
"cores": [
"DuckStation"
]
},
{
"dest": "scph5000.bin",
"sha1": "ffa7f9a7fb19d773a0c3985a541c8e5623d2c30d",
"size": 524288,
"repo_path": "bios/Sony/PlayStation/scph5000.bin",
"cores": [
"DuckStation"
]
},
{
"dest": "scph7000.bin",
"sha1": "77b10118d21ac7ffa9b35f9c4fd814da240eb3e9",
"size": 524288,
"repo_path": "bios/Sony/PlayStation/scph7000.bin",
"cores": [
"DuckStation"
]
},
{
"dest": "scph7000w.bin",
"sha1": "1b0dbdb23da9dc0776aac58d0755dc80fea20975",
"size": 524288,
"repo_path": "bios/Sony/PlayStation/scph7000w.bin",
"cores": [
"DuckStation"
]
},
{
"dest": "scph7001.bin",
"sha1": "14df4f6c1e367ce097c11deae21566b4fe5647a9",
"size": 524288,
"repo_path": "bios/Sony/PlayStation/scph7001.bin",
"cores": [
"DuckStation"
]
},
{
"dest": "scph7002.bin",
"sha1": "8d5de56a79954f29e9006929ba3fed9b6a418c1d",
"size": 524288,
"repo_path": "bios/Sony/PlayStation/scph7002.bin",
"cores": [
"DuckStation"
]
},
{
"dest": "scph100.bin",
"sha1": "339a48f4fcf63e10b5b867b8c93cfd40945faf6c",
"size": 524288,
"repo_path": "bios/Sony/PlayStation/scph100.bin",
"cores": [
"DuckStation"
]
},
{
"dest": "scph101_v44.bin",
"sha1": "7771d6e90980408f753891648685def6dd42ef6d",
"size": 524288,
"repo_path": "bios/Sony/PlayStation/scph101_v44.bin",
"cores": [
"DuckStation"
]
},
{
"dest": "scph101_v45.bin",
"sha1": "dcffe16bd90a723499ad46c641424981338d8378",
@@ -653,15 +509,6 @@
"DuckStation"
]
},
{
"dest": "scph1000r.bin",
"sha1": "7082bd57141fa0007b3adcd031f7ba23a20108a0",
"size": 524288,
"repo_path": "bios/Sony/PlayStation/scph1000r.bin",
"cores": [
"DuckStation"
]
},
{
"dest": "ps2_scph18000.bin",
"sha1": "d7d6be084f51354bc951d8fa2d8d912aa70abc5e",
@@ -2111,6 +1958,42 @@
"MAME"
]
},
{
"dest": "astrocde.zip",
"sha1": "8641b09be090c0dc45f4ee5459fec3cc6fb9d78e",
"size": 6800,
"repo_path": "bios/Bally/Astrocade/astrocde.zip",
"cores": [
"MAME"
]
},
{
"dest": "apple2gs.zip",
"sha1": "799e2fc90d6bfd8cb74e331e04d5afd36f2f21a1",
"size": 174124,
"repo_path": "bios/Apple/Apple II/apple2gs.zip",
"cores": [
"MAME"
]
},
{
"dest": "casloopy.zip",
"sha1": "144ea9d0f20113632dde6d21c62a01c02cf7666d",
"size": 478191,
"repo_path": "bios/Casio/Loopy/casloopy.zip",
"cores": [
"MAME"
]
},
{
"dest": "pv2000.zip",
"sha1": "c18f460301177b64bbfcbedc3010e734d0803d4c",
"size": 13622,
"repo_path": "bios/Casio/PV-2000/pv2000.zip",
"cores": [
"MAME"
]
},
{
"dest": "adam.zip",
"sha1": "dc4b77cd3ac45cf448e427eff5c0a7b138fd9d81",
@@ -2219,6 +2102,303 @@
"MAME"
]
},
{
"dest": "beena.zip",
"sha1": "f63eca9a1b1e92ee1582ff5e4c0db55193f97e33",
"size": 85176,
"repo_path": "bios/Sega/Beena/beena.zip",
"cores": [
"MAME"
]
},
{
"dest": "rx78.zip",
"sha1": "b3a26e21574395a279a37922238802b349c303b7",
"size": 6397,
"repo_path": "bios/Bandai/RX-78/rx78.zip",
"cores": [
"MAME"
]
},
{
"dest": "segaai.zip",
"sha1": "39a0fec854e438f6757882604a8dc56e62e401d9",
"size": 343220,
"repo_path": "bios/Sega/AI/segaai.zip",
"cores": [
"MAME"
]
},
{
"dest": "segaai_soundbox.zip",
"sha1": "d90e0b3545e60c59c20a7fb32d0785f6c3abbf60",
"size": 47380,
"repo_path": "bios/Arcade/MAME/segaai_soundbox.zip",
"cores": [
"MAME"
]
},
{
"dest": "lynx48k.zip",
"sha1": "64947e9b7d17870839aba5d93217183d480ff897",
"size": 25078,
"repo_path": "bios/Camputers/Lynx/lynx48k.zip",
"cores": [
"MAME"
]
},
{
"dest": "lynx96k.zip",
"sha1": "df95ea702606e88b4c906a0233c8fec54c02ff01",
"size": 32888,
"repo_path": "bios/Camputers/Lynx/lynx96k.zip",
"cores": [
"MAME"
]
},
{
"dest": "lynx128k.zip",
"sha1": "5300a352007976102d61d53f1e8c48063d2f3026",
"size": 24796,
"repo_path": "bios/Camputers/Lynx/lynx128k.zip",
"cores": [
"MAME"
]
},
{
"dest": "crvision.zip",
"sha1": "87526fb12fabbcc01292dd01dc698fdc762ab7dc",
"size": 441619,
"repo_path": "bios/VTech/CreatiVision/crvision.zip",
"cores": [
"MAME"
]
},
{
"dest": "laser310.zip",
"sha1": "9fa5f366c4ec43d7c23f03f054733894bf42912f",
"size": 42630,
"repo_path": "bios/VTech/Laser 310/laser310.zip",
"cores": [
"MAME"
]
},
{
"dest": "socrates.zip",
"sha1": "6bbaa8f73027eaca2c6988ee3b9b3f3b0b29d18e",
"size": 218299,
"repo_path": "bios/VTech/Socrates/socrates.zip",
"cores": [
"MAME"
]
},
{
"dest": "vsmile.zip",
"sha1": "65e526ae3e4795a9186c53c7428d8b946170befe",
"size": 3078731,
"repo_path": "bios/VTech/V.Smile/vsmile.zip",
"cores": [
"MAME"
]
},
{
"dest": "gamate.zip",
"sha1": "e99667ea5cfe6a5eceb53faaa39cdda0cbf69c69",
"size": 5072,
"repo_path": "bios/Bit Corporation/Gamate/gamate.zip",
"cores": [
"MAME"
]
},
{
"dest": "gamepock.zip",
"sha1": "83e94c56f2fc4ab60de94021a1283cca09d65ee5",
"size": 3455,
"repo_path": "bios/Epoch/Game Pocket/gamepock.zip",
"cores": [
"MAME"
]
},
{
"dest": "gmaster.zip",
"sha1": "a89263689f19e046dab6dadea24c5d07270548a6",
"size": 1686,
"repo_path": "bios/Hartung/Game Master/gmaster.zip",
"cores": [
"MAME"
]
},
{
"dest": "gamecom.zip",
"sha1": "e0f5e2eced447abf9948342b2facc40179f0f527",
"size": 145138,
"repo_path": "bios/Tiger/Game.com/gamecom.zip",
"cores": [
"MAME"
]
},
{
"dest": "gp32.zip",
"sha1": "35def9830e797fb0788740b5da0a7202933554df",
"size": 1378301,
"repo_path": "bios/GamePark/GP32/gp32.zip",
"cores": [
"MAME"
]
},
{
"dest": "fm7.zip",
"sha1": "1c29ba16151255cd916f49ea25570956f1353b71",
"size": 104276,
"repo_path": "bios/Fujitsu/FM Towns/fm7.zip",
"cores": [
"MAME"
]
},
{
"dest": "fm77av.zip",
"sha1": "b558bb5472cfa727dccab92229c66afa0d64404f",
"size": 46921,
"repo_path": "bios/Fujitsu/FM Towns/fm77av.zip",
"cores": [
"MAME"
]
},
{
"dest": "pegasus.zip",
"sha1": "fc10ef402bcac78c70e1cff57d51613fa12202f9",
"size": 27305,
"repo_path": "bios/Arcade/MAME/pegasus.zip",
"cores": [
"MAME"
]
},
{
"dest": "pcw8256.zip",
"sha1": "f8a11b4e03bb8c3caee604ca591676eab6535d1b",
"size": 1710,
"repo_path": "bios/Amstrad/PCW/pcw8256.zip",
"cores": [
"MAME"
]
},
{
"dest": "pcw9512.zip",
"sha1": "844988dc5a36917b002d0140d3a7692d1407f783",
"size": 2625,
"repo_path": "bios/Amstrad/PCW/pcw9512.zip",
"cores": [
"MAME"
]
},
{
"dest": "vis.zip",
"sha1": "beff39b4edb449c66b704e1c64ee6ed58e30a868",
"size": 605047,
"repo_path": "bios/Tandy/VIS/vis.zip",
"cores": [
"MAME"
]
},
{
"dest": "trs80.zip",
"sha1": "a9b8931c42303e8dfb475112fc18ff200b7252ce",
"size": 14558,
"repo_path": "bios/Tandy/TRS-80/trs80.zip",
"cores": [
"MAME"
]
},
{
"dest": "trs80m3.zip",
"sha1": "b804a031c8db6def59e077a4b6938dcac25093d7",
"size": 32854,
"repo_path": "bios/Tandy/TRS-80/trs80m3.zip",
"cores": [
"MAME"
]
},
{
"dest": "trs80m4.zip",
"sha1": "bc58ac28be4854fb198b895c7fd999f599b5a961",
"size": 25371,
"repo_path": "bios/Tandy/TRS-80/trs80m4.zip",
"cores": [
"MAME"
]
},
{
"dest": "trs80m4p.zip",
"sha1": "497eea6e0ed80501ca3beee714d71a5815495b07",
"size": 4880,
"repo_path": "bios/Tandy/TRS-80/trs80m4p.zip",
"cores": [
"MAME"
]
},
{
"dest": "ti99_4a.zip",
"sha1": "e05575b630bea7ff98b9ca1f083d745abb3110b6",
"size": 21377,
"repo_path": "bios/Texas Instruments/TI-99/ti99_4a.zip",
"cores": [
"MAME"
]
},
{
"dest": "ti99_speech.zip",
"sha1": "b58fe2dbbc254d363c2ec4a459e6ec1d91b2ac86",
"size": 31206,
"repo_path": "bios/Arcade/Arcade/ti99_speech.zip",
"cores": [
"MAME"
]
},
{
"dest": "tutor.zip",
"sha1": "273dbb7a93eb0ab83c2e13e9db51b897cc18f838",
"size": 34653,
"repo_path": "bios/Tomy/Tutor/tutor.zip",
"cores": [
"MAME"
]
},
{
"dest": "vg5k.zip",
"sha1": "5ad489a58fc457d2bfb7a348f4a312c3b49daad1",
"size": 26356,
"repo_path": "bios/Arcade/MAME/vg5k.zip",
"cores": [
"MAME"
]
},
{
"dest": "qsound.zip",
"sha1": "f1ccedb2c6e8f15cfebab52c3923e4b35f4df43f",
"size": 2654,
"repo_path": "bios/Arcade/Arcade/qsound.zip",
"cores": [
"MAME"
]
},
{
"dest": "ym2413.zip",
"sha1": "900e8c6cd152704a79905b6838fe3229c9499f8c",
"size": 286,
"repo_path": "bios/Arcade/MAME/ym2413.zip",
"cores": [
"MAME"
]
},
{
"dest": "ym2608.zip",
"sha1": "06fc753d015b43ca1787f4cfd9331b1674202e64",
"size": 7609,
"repo_path": "bios/Arcade/Arcade/ym2608.zip",
"cores": [
"MAME"
]
},
{
"dest": "dsi_bios9.bin",
"sha1": "db61fa39ddbc5f5ed71fb19cda47609ef0201723",
@@ -2246,17 +2426,6 @@
"melonDS"
]
},
{
"dest": "dsi_nand.bin",
"sha1": "b48f44194fe918aaaec5298861479512b581d661",
"size": 251658304,
"repo_path": ".cache/large/dsi_nand.bin",
"cores": [
"melonDS"
],
"storage": "release",
"release_asset": "dsi_nand.bin"
},
{
"dest": "dsi_sd_card.bin",
"sha1": "3b71f43ff30f4b15b5cd85dd9e95ebc7e84eb5a3",
@@ -2365,6 +2534,17 @@
"shadps4"
]
},
{
"dest": "psvita/PSP2UPDAT.PUP",
"sha1": "3ae832c9800fcaa007eccfc48f24242967c111f8",
"size": 56768512,
"repo_path": "bios/Sony/PlayStation Vita/.variants/PSP2UPDAT.PUP",
"cores": [
"Vita3K"
],
"storage": "release",
"release_asset": "PSP2UPDAT.PUP"
},
{
"dest": "Complex_4627.bin",
"sha1": "3944392c954cfb176d4210544e88353b3c5d36b1",

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@@ -3,7 +3,7 @@
"platform": "romm",
"display_name": "RomM",
"version": "1.0",
"generated": "2026-03-29T14:04:16Z",
"generated": "2026-03-30T07:40:45Z",
"base_destination": "bios",
"detect": [
{
@@ -13,8 +13,8 @@
}
],
"standalone_copies": [],
"total_files": 545,
"total_size": 1197706137,
"total_files": 638,
"total_size": 1316397979,
"files": [
{
"dest": "3do/3do_arcade_saot.bin",
@@ -2623,12 +2623,21 @@
"cores": null
},
{
"dest": "psxonpsp660.bin",
"sha1": "96880d1ca92a016ff054be5159bb06fe03cb4e14",
"size": 524288,
"repo_path": "bios/Sony/PlayStation/psxonpsp660.bin",
"dest": "BB01R4_OS.ROM",
"sha1": "decde89fbae90adb591ad2fc553d35f49030c129",
"size": 16384,
"repo_path": "bios/Atari/400-800/BB01R4_OS.ROM",
"cores": [
"Beetle PSX (Mednafen PSX)"
"Atari800"
]
},
{
"dest": "XEGAME.ROM",
"sha1": "a107db7f16a1129cf9d933c9cf4f013b068c9e82",
"size": 8192,
"repo_path": "bios/Atari/400-800/XEGAME.ROM",
"cores": [
"Atari800"
]
},
{
@@ -2640,6 +2649,98 @@
"Beetle PSX (Mednafen PSX)"
]
},
{
"dest": "openbios.bin",
"sha1": "389df7981873d9e6e46c84c20cd43af0e4226cf8",
"size": 524288,
"repo_path": "bios/Sony/PlayStation/openbios.bin",
"cores": [
"Beetle PSX (Mednafen PSX)"
]
},
{
"dest": "cromwell_1024.bin",
"sha1": "4e1c2c2ee308ca4591542b3ca48653f65fae6e0f",
"size": 1048576,
"repo_path": "bios/Microsoft/Xbox/cromwell_1024.bin",
"cores": [
"DirectXBox"
]
},
{
"dest": "GC/dsp_rom.bin",
"sha1": "f4f683a49d7eb4155566f793f2c1c27e90159992",
"size": 8192,
"repo_path": "bios/Nintendo/GameCube/Sys/GC/dsp_rom.bin",
"cores": [
"Dolphin"
]
},
{
"dest": "GC/dsp_coef.bin",
"sha1": "c116d867ba001dcd6bf6d399ff4bf38d340f556c",
"size": 4096,
"repo_path": "bios/Nintendo/GameCube/.variants/dsp_coef.bin.c116d867",
"cores": [
"Dolphin"
]
},
{
"dest": "Wii/shared2/sys/SYSCONF",
"sha1": "3256c026284a24fb99d2ec1558d95db3b5dcc2e9",
"size": 16384,
"repo_path": "bios/Nintendo/Wii/SYSCONF",
"cores": [
"Dolphin"
]
},
{
"dest": "Wii/title/00000001/00000002/data/setting.txt",
"sha1": "077a31ce116de322f089a627c5eb7ff5c2236a5d",
"size": 256,
"repo_path": "bios/Nintendo/Wii/setting.txt",
"cores": [
"Dolphin"
]
},
{
"dest": "Load/WiiSD.raw",
"sha1": "90d83d6c084deceeeb0466ac00723723ccfd0c6d",
"size": 134217728,
"repo_path": "bios/Nintendo/Wii/WiiSD.raw",
"cores": [
"Dolphin"
],
"storage": "release",
"release_asset": "WiiSD.raw"
},
{
"dest": "Wii/clientca.pem",
"sha1": "4b937d4e81de11574b926386dd5f768aa23bf177",
"size": 1005,
"repo_path": "bios/Nintendo/Wii/clientca.pem",
"cores": [
"Dolphin"
]
},
{
"dest": "Wii/clientcakey.pem",
"sha1": "a2c11886e6d12a135e1d5eb50d5fe92e028577d9",
"size": 609,
"repo_path": "bios/Nintendo/Wii/clientcakey.pem",
"cores": [
"Dolphin"
]
},
{
"dest": "Wii/rootca.pem",
"sha1": "b5229455dd26c1f53c73060e9089b391389e1f75",
"size": 897,
"repo_path": "bios/Nintendo/Wii/rootca.pem",
"cores": [
"Dolphin"
]
},
{
"dest": "MT32_CONTROL.ROM",
"sha1": "b083518fffb7f66b03c23b7eb4f868e62dc5a987",
@@ -2694,6 +2795,33 @@
"DOSBox Pure"
]
},
{
"dest": "ep128emu/roms/exdos14isdos10uk.rom",
"sha1": "b82e21b6e3214432b6dc13f650e97de88fc90a72",
"size": 32768,
"repo_path": "bios/Enterprise/64-128/exdos14isdos10uk.rom",
"cores": [
"ep128emu-core"
]
},
{
"dest": "ep128emu/roms/epdos16f.rom",
"sha1": "9a9eac31e601a1ab0f7a5d2b13175d092fa84bd3",
"size": 32768,
"repo_path": "bios/Enterprise/64-128/epdos16f.rom",
"cores": [
"ep128emu-core"
]
},
{
"dest": "ep128emu/roms/zx128.rom",
"sha1": "16375d42ea109b47edded7a16028de7fdb3013a1",
"size": 32768,
"repo_path": "bios/Enterprise/64-128/zx128.rom",
"cores": [
"ep128emu-core"
]
},
{
"dest": "fbalpha2012/hiscore.dat",
"sha1": "7381472bf046126257e51a0124e4553282f020e5",
@@ -3063,6 +3191,53 @@
"Handy"
]
},
{
"dest": "hatari/BOOT.ST",
"sha1": "5bcabba35bb8fbfe5a65b85efccf5ed657388308",
"size": 737280,
"repo_path": "bios/Atari/ST/hatari/BOOT.ST",
"cores": [
"Hatari"
]
},
{
"dest": "Wii/sd.raw",
"sha1": "8c8134f08b2e3baa603206ede30d3935365009b8",
"size": 134217728,
"repo_path": "bios/Nintendo/Wii/sd.raw",
"cores": [
"Ishiiruka"
],
"storage": "release",
"release_asset": "sd.raw"
},
{
"dest": "pcsx2/resources/GameIndex.yaml",
"sha1": "b22389650f6c0a1e276b48213fed8a9c1c6476ce",
"size": 2669341,
"repo_path": "bios/Sony/PlayStation 2/GameIndex.yaml",
"cores": [
"LRPS2"
]
},
{
"dest": "pcsx2/resources/cheats_ws.zip",
"sha1": "773b4279d8c8e182dc57e444dbf448a1d115e7e0",
"size": 1273296,
"repo_path": "bios/Sony/PlayStation 2/cheats_ws.zip",
"cores": [
"LRPS2"
]
},
{
"dest": "pcsx2/resources/cheats_ni.zip",
"sha1": "dec5e4f137890c338babe13cfb9d41ff869fa721",
"size": 42525,
"repo_path": "bios/Sony/PlayStation 2/cheats_ni.zip",
"cores": [
"LRPS2"
]
},
{
"dest": "mame2003/cheat.dat",
"sha1": "32fc78415114a976af9c2ee53ea13de9f40b55ee",
@@ -3234,17 +3409,6 @@
"melonDS"
]
},
{
"dest": "dsi_nand.bin",
"sha1": "b48f44194fe918aaaec5298861479512b581d661",
"size": 251658304,
"repo_path": ".cache/large/dsi_nand.bin",
"cores": [
"melonDS"
],
"storage": "release",
"release_asset": "dsi_nand.bin"
},
{
"dest": "dsi_sd_card.bin",
"sha1": "3b71f43ff30f4b15b5cd85dd9e95ebc7e84eb5a3",
@@ -3254,6 +3418,15 @@
"melonDS"
]
},
{
"dest": "MacIIx.ROM",
"sha1": "753b94351d94c369616c2c87b19d568dc5e2764e",
"size": 262144,
"repo_path": "bios/Apple/Macintosh II/MacIIx.ROM",
"cores": [
"Mini vMac"
]
},
{
"dest": "Mupen64plus/IPL.n64",
"sha1": "bf861922dcb78c316360e3e742f4f70ff63c9bc3",
@@ -3272,6 +3445,33 @@
"Mupen64Plus-Next"
]
},
{
"dest": "np2/bios9821.rom",
"sha1": "2e92346727b0355bc1ec9a7ded1b444a4917f2b9",
"size": 98304,
"repo_path": "bios/NEC/PC-98/bios9821.rom",
"cores": [
"nekop2"
]
},
{
"dest": "np2/scsi.rom",
"sha1": "3d7166f05daad1b022fa04c2569e788580158095",
"size": 8192,
"repo_path": "bios/NEC/PC-98/scsi.rom",
"cores": [
"nekop2"
]
},
{
"dest": "np2/sasi.rom",
"sha1": "b607707d74b5a7d3ba211825de31a8f32aec8146",
"size": 4096,
"repo_path": "bios/NEC/PC-98/sasi.rom",
"cores": [
"nekop2"
]
},
{
"dest": "custom.pal",
"sha1": "c7635019127aa28d84d28ae48304bfca6d5baefb",
@@ -3281,6 +3481,33 @@
"Nestopia UE"
]
},
{
"dest": "np2kai/ide.rom",
"sha1": "0877ffb4b4d1c18283468be3579b72ed8c22e3ac",
"size": 8192,
"repo_path": "bios/NEC/PC-98/ide.rom",
"cores": [
"NP2kai"
]
},
{
"dest": "np2kai/pci.rom",
"sha1": "1246203bebf9f04e3bac2df7fc64719304f9f1bd",
"size": 32768,
"repo_path": "bios/NEC/PC-98/pci.rom",
"cores": [
"NP2kai"
]
},
{
"dest": "eeprom.dat",
"sha1": "ffc6261e487efa8c7442069f71acfc4aa826993d",
"size": 64,
"repo_path": "bios/Sony/PlayStation 2/eeprom.dat",
"cores": [
"PCSX2"
]
},
{
"dest": "carthw.cfg",
"sha1": "d3fe0b958705e4cb5eeb7822e60d474204df4bd3",
@@ -3515,6 +3742,15 @@
"PUAE (P-UAE)"
]
},
{
"dest": "keropi/cgrom.tmp",
"sha1": "8d72c5b4d63bb14c5dbdac495244d659aa1498b6",
"size": 786432,
"repo_path": "bios/Sharp/X68000/cgrom.dat",
"cores": [
"px68k"
]
},
{
"dest": "same_cdi/bios/cdimono1.zip",
"sha1": "5d0b1b55b0d0958a5c9069c3219d4da5a87a6b93",
@@ -3561,12 +3797,93 @@
]
},
{
"dest": "BIOS.col",
"sha1": "45bedc4cbdeac66c7df59e9e599195c778d86a92",
"size": 8192,
"repo_path": "bios/Coleco/ColecoVision/BIOS.col",
"dest": "squirreljme-0.3.0-fast.jar",
"sha1": "7c4cd0a5451eedeac9b328f48408dbc312198ccf",
"size": 2367241,
"repo_path": "bios/Other/SquirrelJME/squirreljme-0.3.0-fast.jar",
"cores": [
"SMS Plus GX"
"SquirrelJME"
]
},
{
"dest": "squirreljme-0.3.0.jar",
"sha1": "8a2ddc37df2366d4e205e9904cd8bac22db2afd5",
"size": 15181774,
"repo_path": "bios/Java/J2ME/squirreljme.sqc",
"cores": [
"SquirrelJME"
]
},
{
"dest": "squirreljme-0.3.0-test.jar",
"sha1": "600cf0440594b0c69339ba4b626a47288b342d77",
"size": 3396757,
"repo_path": "bios/Java/J2ME/squirreljme-test.jar",
"cores": [
"SquirrelJME"
]
},
{
"dest": "squirreljme-0.3.0-slow.jar",
"sha1": "3a23de6999b94fc088bdd9c9e4a73781a1d42233",
"size": 3129653,
"repo_path": "bios/Other/SquirrelJME/squirreljme-0.3.0-slow.jar",
"cores": [
"SquirrelJME"
]
},
{
"dest": "squirreljme-0.3.0-slow-test.jar",
"sha1": "b411c128bfd8411f339a49bbcb1c9e97189c2161",
"size": 3772058,
"repo_path": "bios/Other/SquirrelJME/squirreljme-0.3.0-slow-test.jar",
"cores": [
"SquirrelJME"
]
},
{
"dest": "squirreljme-fast.jar",
"sha1": "8a2ddc37df2366d4e205e9904cd8bac22db2afd5",
"size": 15181774,
"repo_path": "bios/Java/J2ME/squirreljme.sqc",
"cores": [
"SquirrelJME"
]
},
{
"dest": "squirreljme.jar",
"sha1": "6933bbe1fc29f58581a7f64f859f756db9ef78a7",
"size": 4700395,
"repo_path": "bios/Java/J2ME/squirreljme.jar",
"cores": [
"SquirrelJME"
]
},
{
"dest": "squirreljme-test.jar",
"sha1": "600cf0440594b0c69339ba4b626a47288b342d77",
"size": 3396757,
"repo_path": "bios/Java/J2ME/squirreljme-test.jar",
"cores": [
"SquirrelJME"
]
},
{
"dest": "squirreljme-slow.jar",
"sha1": "8a2ddc37df2366d4e205e9904cd8bac22db2afd5",
"size": 15181774,
"repo_path": "bios/Java/J2ME/squirreljme.sqc",
"cores": [
"SquirrelJME"
]
},
{
"dest": "squirreljme-slow-test.jar",
"sha1": "8a2ddc37df2366d4e205e9904cd8bac22db2afd5",
"size": 15181774,
"repo_path": "bios/Java/J2ME/squirreljme.sqc",
"cores": [
"SquirrelJME"
]
},
{
@@ -3722,6 +4039,51 @@
"VICE xvic"
]
},
{
"dest": "xmil/IPLROM.X1",
"sha1": "c4db9a6e99873808c8022afd1c50fef556a8b44d",
"size": 4096,
"repo_path": "bios/Sharp/X1/.variants/IPLROM.X1.c4db9a6e",
"cores": [
"X Millennium"
]
},
{
"dest": "xmil/IPLROM.X1T",
"sha1": "44620f57a25f0bcac2b57ca2b0f1ebad3bf305d3",
"size": 32768,
"repo_path": "bios/Sharp/X1/.variants/IPLROM.X1T.44620f57",
"cores": [
"X Millennium"
]
},
{
"dest": "xmil/FNT0816.X1",
"sha1": "4f06d20c997a79ee6af954b69498147789bf1847",
"size": 4096,
"repo_path": "bios/Sharp/X1/FNT0816.X1",
"cores": [
"X Millennium"
]
},
{
"dest": "xmil/FNT1616.X1",
"sha1": "b9e6c320611f0842df6f45673c47c3e23bc14272",
"size": 306176,
"repo_path": "bios/Sharp/X1/FNT1616.X1",
"cores": [
"X Millennium"
]
},
{
"dest": "xbox_hdd.qcow2",
"sha1": "9da5f9ecfb1c9c32efa616f0300d02e8f702244d",
"size": 1638400,
"repo_path": "bios/Microsoft/Xbox/xbox_hdd.qcow2",
"cores": [
"Xemu"
]
},
{
"dest": "channelf.zip",
"sha1": "1cb23b462b990241013deb4b5e07ce741af28267",
@@ -4127,6 +4489,213 @@
"FinalBurn Neo"
]
},
{
"dest": "GC/USA/IPL.bin",
"sha1": "a1837968288253ed541f2b11440b68f5a9b33875",
"size": 2097152,
"repo_path": "bios/Nintendo/GameCube/GC/JAP/IPL.bin",
"cores": [
"Dolphin"
]
},
{
"dest": "GC/EUR/IPL.bin",
"sha1": "a1837968288253ed541f2b11440b68f5a9b33875",
"size": 2097152,
"repo_path": "bios/Nintendo/GameCube/GC/JAP/IPL.bin",
"cores": [
"Dolphin"
]
},
{
"dest": "GC/JAP/IPL.bin",
"sha1": "a1837968288253ed541f2b11440b68f5a9b33875",
"size": 2097152,
"repo_path": "bios/Nintendo/GameCube/GC/JAP/IPL.bin",
"cores": [
"Dolphin"
]
},
{
"dest": "GBA/gba_bios.bin",
"sha1": "300c20df6731a33952ded8c436f7f186d25d3492",
"size": 16384,
"repo_path": "bios/Nintendo/Game Boy Advance/GBA_bios.rom",
"cores": [
"Dolphin"
]
},
{
"dest": "ep128emu/roms/exos21.rom",
"sha1": "55315b20fecb4441a07ee4bc5dc7153f396e0a2e",
"size": 32768,
"repo_path": "bios/Enterprise/64-128/exos21.rom",
"cores": [
"ep128emu-core"
]
},
{
"dest": "ep128emu/roms/exos20.rom",
"sha1": "6033a0535136c40c47137e4d1cd9273c06d5fdff",
"size": 32768,
"repo_path": "bios/Enterprise/64-128/exos20.bin",
"cores": [
"ep128emu-core"
]
},
{
"dest": "ep128emu/roms/exos24uk.rom",
"sha1": "cf12e971623a54bf8c4f891ca3a36d969f205c49",
"size": 65536,
"repo_path": "bios/Enterprise/64-128/exos24uk.rom",
"cores": [
"ep128emu-core"
]
},
{
"dest": "ep128emu/roms/basic21.rom",
"sha1": "03bbb386cf530e804363acdfc1d13e64cf28af2e",
"size": 16384,
"repo_path": "bios/Enterprise/64-128/basic21.rom",
"cores": [
"ep128emu-core"
]
},
{
"dest": "ep128emu/roms/basic20.rom",
"sha1": "61d0987b906146e21b94f265d5b51b4938c986a9",
"size": 16384,
"repo_path": "bios/Enterprise/64-128/basic20.rom",
"cores": [
"ep128emu-core"
]
},
{
"dest": "ep128emu/roms/exdos13.rom",
"sha1": "cb43ab3676b93c279f1ed8ffcb0d4dcd4b34e631",
"size": 32768,
"repo_path": "bios/Enterprise/64-128/exdos13.rom",
"cores": [
"ep128emu-core"
]
},
{
"dest": "ep128emu/roms/epfileio.rom",
"sha1": "2f9077bcd89b1ec42dbdcd55d335bdbaf361eff3",
"size": 16384,
"repo_path": "bios/Enterprise/64-128/epfileio.rom",
"cores": [
"ep128emu-core"
]
},
{
"dest": "ep128emu/roms/zt19uk.rom",
"sha1": "b7af62f0bc95fdca4b31d236f8327dafc80f83b7",
"size": 32768,
"repo_path": "bios/Enterprise/64-128/zt19uk.rom",
"cores": [
"ep128emu-core"
]
},
{
"dest": "ep128emu/roms/hun.rom",
"sha1": "325a5e28c2a0d896711f8829e7ff14fed5dd4103",
"size": 16384,
"repo_path": "bios/Enterprise/64-128/hun.rom",
"cores": [
"ep128emu-core"
]
},
{
"dest": "ep128emu/roms/brd.rom",
"sha1": "f34f0c330b44dbf2548329bea954d5991dec30ca",
"size": 16384,
"repo_path": "bios/Enterprise/64-128/brd.rom",
"cores": [
"ep128emu-core"
]
},
{
"dest": "ep128emu/roms/tvc22_sys.rom",
"sha1": "f2572ee83d09fc08f4de4a62f101c8bb301a9505",
"size": 16384,
"repo_path": "bios/Enterprise/64-128/tvc22_sys.rom",
"cores": [
"ep128emu-core"
]
},
{
"dest": "ep128emu/roms/tvc22_ext.rom",
"sha1": "abf119cf947ea32defd08b29a8a25d75f6bd4987",
"size": 8192,
"repo_path": "bios/Enterprise/64-128/tvc22_ext.rom",
"cores": [
"ep128emu-core"
]
},
{
"dest": "ep128emu/roms/tvcfileio.rom",
"sha1": "98889c3a56b11dedf077f866ed2e12d51b604113",
"size": 8192,
"repo_path": "bios/Enterprise/64-128/tvcfileio.rom",
"cores": [
"ep128emu-core"
]
},
{
"dest": "ep128emu/roms/tvc_dos12d.rom",
"sha1": "072c6160d4e7d406f5d8f5b1b66066c797d35561",
"size": 16384,
"repo_path": "bios/Enterprise/64-128/tvc_dos12d.rom",
"cores": [
"ep128emu-core"
]
},
{
"dest": "ep128emu/roms/cpc464.rom",
"sha1": "56d39c463da60968d93e58b4ba0e675829412a20",
"size": 32768,
"repo_path": "bios/Amstrad/CPC/cpc464.rom",
"cores": [
"ep128emu-core"
]
},
{
"dest": "ep128emu/roms/cpc664.rom",
"sha1": "073a7665527b5bd8a148747a3947dbd3328682c8",
"size": 32768,
"repo_path": "bios/Amstrad/CPC/cpc664.rom",
"cores": [
"ep128emu-core"
]
},
{
"dest": "ep128emu/roms/cpc6128.rom",
"sha1": "5977adbad3f7c1e0e082cd02fe76a700d9860c30",
"size": 32768,
"repo_path": "bios/Amstrad/CPC/cpc6128.rom",
"cores": [
"ep128emu-core"
]
},
{
"dest": "ep128emu/roms/cpc_amsdos.rom",
"sha1": "39102c8e9cb55fcc0b9b62098780ed4a3cb6a4bb",
"size": 16384,
"repo_path": "bios/Amstrad/CPC/amsdos.rom",
"cores": [
"ep128emu-core"
]
},
{
"dest": "ep128emu/roms/zx48.rom",
"sha1": "5ea7c2b824672e914525d1d5c419d71b84a426a2",
"size": 16384,
"repo_path": "bios/Enterprise/64-128/zx48.rom",
"cores": [
"ep128emu-core"
]
},
{
"dest": "fbneo/hiscore.dat",
"sha1": "7381472bf046126257e51a0124e4553282f020e5",
@@ -4180,6 +4749,276 @@
"cores": [
"MAME 2003-Plus"
]
},
{
"dest": "np2/bios.rom",
"sha1": "1f5f7013f18c08ff50d7942e76c4fbd782412414",
"size": 65536,
"repo_path": "bios/IBM/PC/ibmpcjr/bios.rom",
"cores": [
"nekop2"
]
},
{
"dest": "np2/font.bmp",
"sha1": "b4f14e58030ed40fff2dc312b58ea4440bdf8cc5",
"size": 524350,
"repo_path": "bios/NEC/PC-98/font.bmp",
"cores": [
"nekop2"
]
},
{
"dest": "np2/sound.rom",
"sha1": "d5dbc4fea3b8367024d363f5351baecd6adcd8ef",
"size": 16384,
"repo_path": "bios/NEC/PC-98/sound.rom",
"cores": [
"nekop2"
]
},
{
"dest": "np2/2608_bd.wav",
"sha1": "0a56c142ef40cec50f3ee56a6e42d0029c9e2818",
"size": 19192,
"repo_path": "bios/NEC/PC-98/2608_bd.wav",
"cores": [
"nekop2"
]
},
{
"dest": "np2/2608_sd.wav",
"sha1": "3c79663ef74c0b0439d13351326eb1c52a657008",
"size": 15558,
"repo_path": "bios/NEC/PC-98/2608_sd.wav",
"cores": [
"nekop2"
]
},
{
"dest": "np2/2608_top.wav",
"sha1": "aa4a8f766a86b830687d5083fd3b9db0652f46fc",
"size": 57016,
"repo_path": "bios/NEC/PC-98/2608_top.wav",
"cores": [
"nekop2"
]
},
{
"dest": "np2/2608_hh.wav",
"sha1": "12f676cef249b82480b6f19c454e234b435ca7b6",
"size": 36722,
"repo_path": "bios/NEC/PC-98/2608_hh.wav",
"cores": [
"nekop2"
]
},
{
"dest": "np2/2608_tom.wav",
"sha1": "9513fb4a3f41e75a972a273a5104cbd834c1e2c5",
"size": 23092,
"repo_path": "bios/NEC/PC-98/2608_tom.wav",
"cores": [
"nekop2"
]
},
{
"dest": "np2/2608_rim.wav",
"sha1": "c65592330c9dd84011151daed52f9aec926b7e56",
"size": 5288,
"repo_path": "bios/NEC/PC-98/2608_rim.wav",
"cores": [
"nekop2"
]
},
{
"dest": "np2kai/bios.rom",
"sha1": "1f5f7013f18c08ff50d7942e76c4fbd782412414",
"size": 65536,
"repo_path": "bios/IBM/PC/ibmpcjr/bios.rom",
"cores": [
"NP2kai"
]
},
{
"dest": "np2kai/font.bmp",
"sha1": "b4f14e58030ed40fff2dc312b58ea4440bdf8cc5",
"size": 524350,
"repo_path": "bios/NEC/PC-98/font.bmp",
"cores": [
"NP2kai"
]
},
{
"dest": "np2kai/sound.rom",
"sha1": "d5dbc4fea3b8367024d363f5351baecd6adcd8ef",
"size": 16384,
"repo_path": "bios/NEC/PC-98/sound.rom",
"cores": [
"NP2kai"
]
},
{
"dest": "np2kai/2608_bd.wav",
"sha1": "0a56c142ef40cec50f3ee56a6e42d0029c9e2818",
"size": 19192,
"repo_path": "bios/NEC/PC-98/2608_bd.wav",
"cores": [
"NP2kai"
]
},
{
"dest": "np2kai/2608_sd.wav",
"sha1": "3c79663ef74c0b0439d13351326eb1c52a657008",
"size": 15558,
"repo_path": "bios/NEC/PC-98/2608_sd.wav",
"cores": [
"NP2kai"
]
},
{
"dest": "np2kai/2608_top.wav",
"sha1": "aa4a8f766a86b830687d5083fd3b9db0652f46fc",
"size": 57016,
"repo_path": "bios/NEC/PC-98/2608_top.wav",
"cores": [
"NP2kai"
]
},
{
"dest": "np2kai/2608_hh.wav",
"sha1": "12f676cef249b82480b6f19c454e234b435ca7b6",
"size": 36722,
"repo_path": "bios/NEC/PC-98/2608_hh.wav",
"cores": [
"NP2kai"
]
},
{
"dest": "np2kai/2608_tom.wav",
"sha1": "9513fb4a3f41e75a972a273a5104cbd834c1e2c5",
"size": 23092,
"repo_path": "bios/NEC/PC-98/2608_tom.wav",
"cores": [
"NP2kai"
]
},
{
"dest": "np2kai/2608_rim.wav",
"sha1": "c65592330c9dd84011151daed52f9aec926b7e56",
"size": 5288,
"repo_path": "bios/NEC/PC-98/2608_rim.wav",
"cores": [
"NP2kai"
]
},
{
"dest": "np2kai/scsi.rom",
"sha1": "3d7166f05daad1b022fa04c2569e788580158095",
"size": 8192,
"repo_path": "bios/NEC/PC-98/scsi.rom",
"cores": [
"NP2kai"
]
},
{
"dest": "np2kai/sasi.rom",
"sha1": "b607707d74b5a7d3ba211825de31a8f32aec8146",
"size": 4096,
"repo_path": "bios/NEC/PC-98/sasi.rom",
"cores": [
"NP2kai"
]
},
{
"dest": "keropi/iplrom.dat",
"sha1": "0ed038ed2133b9f78c6e37256807424e0d927560",
"size": 131072,
"repo_path": "bios/Sharp/X68000/iplrom.dat",
"cores": [
"px68k"
]
},
{
"dest": "keropi/iplrom30.dat",
"sha1": "239e9124568c862c31d9ec0605e32373ea74b86a",
"size": 131072,
"repo_path": "bios/Sharp/X68000/iplrom30.dat",
"cores": [
"px68k"
]
},
{
"dest": "keropi/iplromco.dat",
"sha1": "77511fc58798404701f66b6bbc9cbde06596eba7",
"size": 131072,
"repo_path": "bios/Sharp/X68000/iplromco.dat",
"cores": [
"px68k"
]
},
{
"dest": "keropi/iplromxv.dat",
"sha1": "e33cdcdb69cd257b0b211ef46e7a8b144637db57",
"size": 131072,
"repo_path": "bios/Sharp/X68000/iplromxv.dat",
"cores": [
"px68k"
]
},
{
"dest": "keropi/cgrom.dat",
"sha1": "8d72c5b4d63bb14c5dbdac495244d659aa1498b6",
"size": 786432,
"repo_path": "bios/Sharp/X68000/cgrom.dat",
"cores": [
"px68k"
]
},
{
"dest": "scummvm/extra/MT32_CONTROL.ROM",
"sha1": "b083518fffb7f66b03c23b7eb4f868e62dc5a987",
"size": 65536,
"repo_path": "bios/Commodore/Amiga/mt32-roms/mt32_control.rom",
"cores": [
"ScummVM"
]
},
{
"dest": "scummvm/extra/MT32_PCM.ROM",
"sha1": "f6b1eebc4b2d200ec6d3d21d51325d5b48c60252",
"size": 524288,
"repo_path": "bios/Commodore/Amiga/mt32-roms/pcm_mt32.rom",
"cores": [
"ScummVM"
]
},
{
"dest": "scummvm/extra/CM32L_CONTROL.ROM",
"sha1": "a439fbb390da38cada95a7cbb1d6ca199cd66ef8",
"size": 65536,
"repo_path": "bios/Commodore/Amiga/mt32-roms/cm32l_control.rom",
"cores": [
"ScummVM"
]
},
{
"dest": "scummvm/extra/CM32L_PCM.ROM",
"sha1": "289cc298ad532b702461bfc738009d9ebe8025ea",
"size": 1048576,
"repo_path": "bios/Commodore/Amiga/mt32-roms/pcm_cm32l.rom",
"cores": [
"ScummVM"
]
},
{
"dest": "xmil/FNT0808.X1",
"sha1": "1c1a0d8c9f4c446ccd7470516b215ddca5052fb2",
"size": 2048,
"repo_path": "bios/Sharp/X1/FNT0808.X1",
"cores": [
"X Millennium"
]
}
]
}

View File

@@ -428,7 +428,7 @@ nav:
- PCSX-ReARMed: emulators/pcsx_rearmed.md
- Launchers (1):
- Dolphin Launcher: emulators/dolphin_launcher.md
- Other (24):
- Other (25):
- ares: emulators/ares.md
- Beetle GBA (Mednafen): emulators/beetle_gba.md
- BigPEmu: emulators/bigpemu.md
@@ -446,6 +446,7 @@ nav:
- Ryujinx: emulators/ryujinx.md
- shadps4: emulators/shadps4.md
- Supermodel: emulators/supermodel.md
- ti99sim: emulators/ti99sim.md
- tsugaru: emulators/tsugaru.md
- VBA-M: emulators/vba_m.md
- VICE: emulators/vice.md

View File

@@ -1,191 +1,761 @@
# Platform Registry
# Central configuration for all supported platforms and their scraper sources.
# Adding a new platform = adding an entry here + creating its YAML config.
#
# status: active | archived
# active -- included in automated releases, scraped weekly/monthly
# archived -- config preserved, user can generate pack manually, excluded from CI releases
platforms:
retroarch:
config: retroarch.yml
status: active
logo: "https://raw.githubusercontent.com/libretro/RetroArch/master/media/retroarch-vector_invader-only.svg"
logo: https://raw.githubusercontent.com/libretro/RetroArch/master/media/retroarch-vector_invader-only.svg
scraper: libretro
source_url: "https://raw.githubusercontent.com/libretro/libretro-database/master/dat/System.dat"
source_url: https://raw.githubusercontent.com/libretro/libretro-database/master/dat/System.dat
source_format: clrmamepro_dat
hash_type: sha1
schedule: weekly
cores: all_libretro
target_scraper: retroarch_targets
target_source: "https://buildbot.libretro.com/nightly/"
target_source: https://buildbot.libretro.com/nightly/
install:
detect:
- os: linux
method: config_file
config: "$HOME/.var/app/org.libretro.RetroArch/config/retroarch/retroarch.cfg"
config: $HOME/.var/app/org.libretro.RetroArch/config/retroarch/retroarch.cfg
parse_key: system_directory
- os: linux
method: config_file
config: "$HOME/.config/retroarch/retroarch.cfg"
config: $HOME/.config/retroarch/retroarch.cfg
parse_key: system_directory
- os: darwin
method: config_file
config: "$HOME/Library/Application Support/RetroArch/retroarch.cfg"
config: $HOME/Library/Application Support/RetroArch/retroarch.cfg
parse_key: system_directory
- os: windows
method: config_file
config: "%APPDATA%\\RetroArch\\retroarch.cfg"
config: '%APPDATA%\RetroArch\retroarch.cfg'
parse_key: system_directory
batocera:
config: batocera.yml
status: active
logo: "https://raw.githubusercontent.com/batocera-linux/batocera-emulationstation/master/resources/splash_batocera.svg"
logo: https://raw.githubusercontent.com/batocera-linux/batocera-emulationstation/master/resources/splash_batocera.svg
scraper: batocera
source_url: "https://raw.githubusercontent.com/batocera-linux/batocera.linux/master/package/batocera/core/batocera-scripts/scripts/batocera-systems"
source_url: https://raw.githubusercontent.com/batocera-linux/batocera.linux/master/package/batocera/core/batocera-scripts/scripts/batocera-systems
source_format: python_dict
hash_type: md5
schedule: weekly
cores: [81, a5200, abuse, arduous, atari800, azahar, bennugd, bk, bluemsx, bsnes, bstone, cannonball, cap32, catacombgl, cdogs, cemu, cgenius, citron, clk, corsixth, demul, devilutionx, dhewm3, dice, dolphin, dosbox_pure, dxx-rebirth, easyrpg, ecwolf, eduke32, eka2l1, emuscv, etlegacy, fake08, fallout1-ce, fallout2-ce, fbneo, fceumm, flatpak, flycast, freechaf, freeintv, fury, fuse, gambatte, gearsystem, genesisplusgx, glide64mk2, gong, gsplus, gw, gzdoom, hatari, hcl, hurrican, hypseus-singe, ikemen, ioquake3, iortcw, jazz2-native, lindbergh-loader, lowresnx, lutro, mame, mame078plus, mednafen_lynx, mednafen_ngp, mednafen_supergrafx, mednafen_wswan, melonds, mgba, minivmac, model2emu, moonlight, mrboom, neocd, np2kai, nxengine, o2em, odcommander, openbor6412, openjazz, openjk, openjkdf2, openmohaa, opera, pce_fast, pcfx, pcsx2, pcsx_rearmed, pd777, picodrive, play, pokemini, potator, ppsspp, prboom, prosystem, puae, px68k, pygame, pyxel, quasi88, raze, reminiscence, rpcs3, ruffle, samcoupe, sameduck, scummvm, sdlpop, sh, shadps4, snes9x, solarus, sonic2013, sonic3-air, sonic-mania, steam, stella, superbroswar, supermodel, taradino, tgbdual, theforceengine, theodore, thextech, tic80, tr1x, tr2x, tsugaru, tyrian, tyrquake, uqm, uzem, vb, vecx, vice_x64, vircon32, virtualjaguar, vita3k, vox_official, vpinball, wasm4, wine-tkg, x1, x128, x16emu, xash3d_fwgs, xemu, xenia-canary, xpet, xplus4, xrick, xvic, yabasanshiro, yquake2, zc210]
cores:
- '81'
- a5200
- abuse
- amiberry
- applewin
- arduous
- atari800
- azahar
- beetle-saturn
- bennugd
- bigpemu
- bk
- blastem
- bluemsx
- boom3
- bsnes
- bstone
- cannonball
- cap32
- catacombgl
- cdogs
- cemu
- cgenius
- citron
- clk
- corsixth
- demul
- desmume
- devilutionx
- dhewm3
- dice
- dolphin
- dosbox
- dosbox_pure
- duckstation
- dxx-rebirth
- easyrpg
- ecwolf
- eduke32
- eka2l1
- emuscv
- ep128emu-core
- etlegacy
- fake08
- fallout1-ce
- fallout2-ce
- fbneo
- fceumm
- flatpak
- flycast
- fmsx
- freechaf
- freeintv
- freej2me
- fsuae
- fury
- fuse
- gambatte
- gearcoleco
- gearsystem
- genesisplusgx
- glide64mk2
- gong
- gpsp
- gsplus
- gw
- gzdoom
- handy
- hatari
- hcl
- holani
- hurrican
- hypseus-singe
- ikemen
- ioquake3
- iortcw
- jazz2-native
- kronos
- lindbergh-loader
- lowresnx
- lutro
- mame
- mame078plus
- mamemess
- mednafen_lynx
- mednafen_ngp
- mednafen_psx
- mednafen_supergrafx
- mednafen_wswan
- melonds
- mesen
- mesen-s
- mgba
- minivmac
- model2emu
- moonlight
- mrboom
- mupen64plus-next
- neocd
- nestopia
- np2kai
- nxengine
- o2em
- odcommander
- openbor6412
- openjazz
- openjk
- openjkdf2
- openmohaa
- openmsx
- opera
- parallel_n64
- pce_fast
- pcfx
- pcsx2
- pcsx_rearmed
- pd777
- picodrive
- play
- pokemini
- potator
- ppsspp
- prboom
- prosystem
- puae
- puae2021
- px68k
- pygame
- pyxel
- quasi88
- raze
- redream
- reminiscence
- rpcs3
- ruffle
- ryujinx
- samcoupe
- same_cdi
- sameduck
- scummvm
- sdlpop
- sh
- shadps4
- smsplus
- snes9x
- solarus
- sonic-mania
- sonic2013
- sonic3-air
- squirreljme
- steam
- stella
- stella2014
- superbroswar
- supermodel
- swanstation
- taradino
- tgbdual
- theforceengine
- theodore
- thextech
- tic80
- tr1x
- tr2x
- tsugaru
- tyrian
- tyrquake
- uae4arm
- uqm
- uzem
- vb
- vba-m
- vecx
- vemulator
- vice
- vice_x128
- vice_x64
- vice_x64sc
- vice_xpet
- vice_xplus4
- vice_xscpu64
- vice_xvic
- vircon32
- virtualjaguar
- vita3k
- vitaquake2
- vox_official
- vpinball
- wasm4
- wine-tkg
- x1
- x128
- x16emu
- xash3d_fwgs
- xemu
- xenia
- xenia-canary
- xpet
- xplus4
- xrick
- xroar
- xvic
- yabasanshiro
- ymir
- yquake2
- zc210
target_scraper: batocera_targets
target_source: "https://github.com/batocera-linux/batocera.linux"
target_source: https://github.com/batocera-linux/batocera.linux
install:
detect:
- os: linux
method: file_exists
file: /etc/batocera-version
bios_path: /userdata/bios
recalbox:
config: recalbox.yml
status: active
logo: "https://raw.githubusercontent.com/homarr-labs/dashboard-icons/main/svg/recalbox.svg"
logo: https://raw.githubusercontent.com/homarr-labs/dashboard-icons/main/svg/recalbox.svg
scraper: recalbox
source_url: "https://gitlab.com/recalbox/recalbox/-/raw/master/board/recalbox/fsoverlay/recalbox/share_init/system/.emulationstation/es_bios.xml"
source_url: https://gitlab.com/recalbox/recalbox/-/raw/master/board/recalbox/fsoverlay/recalbox/share_init/system/.emulationstation/es_bios.xml
source_format: xml
hash_type: md5
schedule: monthly
target_scraper: null
target_source: null
cores: ["2048", 81, a5200, advancemame, amiberry, applewin, arduous, atari800, b2, beebem, bk, bluemsx, boom3, bsnes, bsneshd, cannonball, cap32, cdi2015, corsixth, craft, crocods, daphne, desmume, dice, dinothawr, dirksimple, dolphin, dolphin-gui, dosbox, dosbox_pure, duckstation, easyrpg, ecwolf, emuscv, fake08, fba2x, fbneo, fceumm, flycast, flycast-next, fmsx, freechaf, freeintv, frotz, fuse, gambatte, gearcoleco, geargrafx, gearsystem, genesisplusgx, genesisplusgx_ex, genesisplusgxwide, geolith, glide64mk2, gliden64, gliden64_20, gong, gpsp, gsplus, gw, handy, hatari, hatarib, holani, imageviewer, julius, kronos, lowresnx, lutro, mame0258, mame0278, mame2000, mame2003, mame2003_plus, mame2010, mame2015, mame2016, mednafen_lynx, mednafen_ngp, mednafen_pce_fast, mednafen_pcfx, mednafen_psx, mednafen_psx_hw, mednafen_saturn, mednafen_supafaust, mednafen_supergrafx, mednafen_vb, mednafen_wswan, melonds, mesen, mesen_s, meteor, mgba, minivmac, mojozork, moonlight, mrboom, mu, mupen64plus, mupen64plus_next, n64_gles2, neocd, nestopia, np2kai, nxengine, o2em, openbor, openlara, opera, oricutron, parallel_n64, pcsx2, pcsx_rearmed, pico8, picodrive, pisnes, pokemini, potator, ppsspp, prboom, prosystem, ps2, puae, px68k, quasi88, quicknes, race, rb5000, reicast, reminiscence, retro8, retrodream, rice, rice_gles2, sameboy, same_cdi, sameduck, scummvm, sdlpop, simcoupe, snes9x, snes9x2002, snes9x2005, snes9x2010, solarus, stella, stella2014, stonesoup, supermodel, swanstation, tamalibretro, tgbdual, theodore, thepowdertoy, ti99sim, tic80, tyrquake, uae4all, uae4arm, uzem, vecx, vice_x128, vice_x64, vice_x64sc, vice_xcbm2, vice_xcbm5x0, vice_xpet, vice_xplus4, vice_xscpu64, vice_xvic, virtualjaguar, vitaquake2, vitaquake3, vitavoyager, vpinball, vvvvvv, wasm4, x1, x128, x64, x64sx, xcbm2, xcbm5x0, xemu, xpet, xplus4, xrick, xroar, xscpu64, xvic, yabasanshiro, yabause]
cores:
- '2048'
- '81'
- a5200
- advancemame
- amiberry
- applewin
- arduous
- atari800
- b2
- beebem
- bk
- bluemsx
- boom3
- bsnes
- bsneshd
- cannonball
- cap32
- cdi2015
- corsixth
- craft
- crocods
- daphne
- desmume
- dice
- dinothawr
- dirksimple
- dolphin
- dolphin-gui
- dosbox
- dosbox_pure
- duckstation
- easyrpg
- ecwolf
- emuscv
- fake08
- fba2x
- fbneo
- fceumm
- flycast
- flycast-next
- fmsx
- freechaf
- freeintv
- frotz
- fuse
- gambatte
- gearcoleco
- geargrafx
- gearsystem
- genesisplusgx
- genesisplusgx_ex
- genesisplusgxwide
- geolith
- glide64mk2
- gliden64
- gliden64_20
- gong
- gpsp
- gsplus
- gw
- handy
- hatari
- hatarib
- holani
- imageviewer
- julius
- kronos
- lowresnx
- lutro
- mame
- mame0258
- mame0278
- mame2000
- mame2003
- mame2003_plus
- mame2010
- mame2015
- mame2016
- mamemess
- mednafen_lynx
- mednafen_ngp
- mednafen_pce_fast
- mednafen_pcfx
- mednafen_psx
- mednafen_psx_hw
- mednafen_saturn
- mednafen_supafaust
- mednafen_supergrafx
- mednafen_vb
- mednafen_wswan
- melonds
- mesen
- mesen_s
- meteor
- mgba
- minivmac
- mojozork
- moonlight
- mrboom
- mu
- mupen64plus
- mupen64plus_next
- n64_gles2
- neocd
- nestopia
- np2kai
- nxengine
- o2em
- openbor
- openlara
- opera
- oricutron
- parallel_n64
- pcsx2
- pcsx_rearmed
- pico8
- picodrive
- pisnes
- pokemini
- potator
- ppsspp
- prboom
- prosystem
- ps2
- puae
- px68k
- quasi88
- quicknes
- race
- rb5000
- reicast
- reminiscence
- retro8
- retrodream
- rice
- rice_gles2
- same_cdi
- sameboy
- sameduck
- scummvm
- sdlpop
- simcoupe
- snes9x
- snes9x2002
- snes9x2005
- snes9x2010
- solarus
- stella
- stella2014
- stonesoup
- supermodel
- swanstation
- tamalibretro
- tgbdual
- theodore
- thepowdertoy
- ti99sim
- tic80
- tyrquake
- uae4all
- uae4arm
- uzem
- vecx
- vice_x128
- vice_x64
- vice_x64sc
- vice_xcbm2
- vice_xcbm5x0
- vice_xpet
- vice_xplus4
- vice_xscpu64
- vice_xvic
- virtualjaguar
- vitaquake2
- vitaquake3
- vitavoyager
- vpinball
- vvvvvv
- wasm4
- x1
- x128
- x64
- x64sx
- xcbm2
- xcbm5x0
- xemu
- xpet
- xplus4
- xrick
- xroar
- xscpu64
- xvic
- yabasanshiro
- yabause
install:
detect:
- os: linux
method: file_exists
file: /usr/bin/recalbox-settings
bios_path: /recalbox/share/bios
retrobat:
config: retrobat.yml
status: active
logo: "https://raw.githubusercontent.com/RetroBat-Official/retrobat/main/system/resources/retrobat_logo_notext.png"
logo: https://raw.githubusercontent.com/RetroBat-Official/retrobat/main/system/resources/retrobat_logo_notext.png
scraper: retrobat
source_url: "https://raw.githubusercontent.com/RetroBat-Official/emulatorlauncher/master/batocera-systems/Resources/batocera-systems.json"
source_url: https://raw.githubusercontent.com/RetroBat-Official/emulatorlauncher/master/batocera-systems/Resources/batocera-systems.json
source_format: json
hash_type: md5
schedule: weekly
cores: [81, a5200, abuse, arduous, atari800, azahar, bennugd, bk, bluemsx, bsnes, bstone, cannonball, cap32, catacombgl, cdogs, cemu, cgenius, citron, clk, corsixth, demul, devilutionx, dhewm3, dice, dolphin, dosbox_pure, dxx-rebirth, easyrpg, ecwolf, eduke32, eka2l1, emuscv, etlegacy, fake08, fallout1-ce, fallout2-ce, fbneo, fceumm, flatpak, flycast, freechaf, freeintv, fury, fuse, gambatte, gearsystem, genesisplusgx, glide64mk2, gong, gsplus, gw, gzdoom, hatari, hcl, hurrican, hypseus-singe, ikemen, ioquake3, iortcw, jazz2-native, lindbergh-loader, lowresnx, lutro, mame, mame078plus, mednafen_lynx, mednafen_ngp, mednafen_supergrafx, mednafen_wswan, melonds, mgba, minivmac, model2emu, moonlight, mrboom, neocd, np2kai, nxengine, o2em, odcommander, openbor6412, openjazz, openjk, openjkdf2, openmohaa, opera, pce_fast, pcfx, pcsx2, pcsx_rearmed, pd777, picodrive, play, pokemini, potator, ppsspp, prboom, prosystem, puae, px68k, pygame, pyxel, quasi88, raze, reminiscence, rpcs3, ruffle, samcoupe, sameduck, scummvm, sdlpop, sh, shadps4, snes9x, solarus, sonic2013, sonic3-air, sonic-mania, steam, stella, superbroswar, supermodel, taradino, tgbdual, theforceengine, theodore, thextech, tic80, tr1x, tr2x, tsugaru, tyrian, tyrquake, uqm, uzem, vb, vecx, vice_x64, vircon32, virtualjaguar, vita3k, vox_official, vpinball, wasm4, wine-tkg, x1, x128, x16emu, xash3d_fwgs, xemu, xenia-canary, xpet, xplus4, xrick, xvic, yabasanshiro, yquake2, zc210]
cores:
- '81'
- a5200
- abuse
- arduous
- ares
- atari800
- azahar
- bennugd
- bk
- bluemsx
- bsnes
- bstone
- cannonball
- cap32
- catacombgl
- cdogs
- cemu
- cgenius
- citron
- clk
- corsixth
- demul
- devilutionx
- dhewm3
- dice
- dolphin
- dosbox_pure
- dxx-rebirth
- easyrpg
- ecwolf
- eduke32
- eka2l1
- emuscv
- etlegacy
- fake08
- fallout1-ce
- fallout2-ce
- fbalpha2012
- fbalpha2012_neogeo
- fbneo
- fceumm
- flatpak
- flycast
- freechaf
- freeintv
- freej2me
- fury
- fuse
- gambatte
- geargrafx
- gearsystem
- genesisplusgx
- glide64mk2
- gong
- gsplus
- gw
- gzdoom
- hatari
- hcl
- hurrican
- hypseus-singe
- ikemen
- ioquake3
- iortcw
- jazz2-native
- lindbergh-loader
- lowresnx
- lutro
- mame
- mame078plus
- mamemess
- mednafen_lynx
- mednafen_ngp
- mednafen_supergrafx
- mednafen_wswan
- melonds
- mgba
- minivmac
- model2emu
- moonlight
- mrboom
- mupen64plus_next
- neocd
- np2kai
- nxengine
- o2em
- odcommander
- openbor6412
- openjazz
- openjk
- openjkdf2
- openmohaa
- opera
- parallel_n64
- pce_fast
- pcfx
- pcsx2
- pcsx_rearmed
- pd777
- picodrive
- play
- pokemini
- potator
- ppsspp
- prboom
- prosystem
- puae
- px68k
- pygame
- pyxel
- quasi88
- raze
- reminiscence
- rpcs3
- ruffle
- samcoupe
- sameduck
- scummvm
- sdlpop
- sh
- shadps4
- snes9x
- solarus
- sonic-mania
- sonic2013
- sonic3-air
- squirreljme
- steam
- stella
- superbroswar
- supermodel
- taradino
- tgbdual
- theforceengine
- theodore
- thextech
- tic80
- tr1x
- tr2x
- tsugaru
- tyrian
- tyrquake
- uqm
- uzem
- vb
- vecx
- vice_x64
- vircon32
- virtualjaguar
- vita3k
- vox_official
- vpinball
- wasm4
- wine-tkg
- x1
- x128
- x16emu
- xash3d_fwgs
- xemu
- xenia-canary
- xpet
- xplus4
- xrick
- xroar
- xvic
- yabasanshiro
- yquake2
- zc210
target_scraper: null
target_source: null
install:
detect:
- os: windows
method: path_exists
path: "%USERPROFILE%\\RetroBat\\bios"
path: '%USERPROFILE%\RetroBat\bios'
emudeck:
config: emudeck.yml
status: active
logo: "https://raw.githubusercontent.com/dragoonDorise/EmuDeck/main/icons/EmuDeck.png"
logo: https://raw.githubusercontent.com/dragoonDorise/EmuDeck/main/icons/EmuDeck.png
scraper: emudeck
source_url: "https://raw.githubusercontent.com/dragoonDorise/EmuDeck/main/functions/checkBIOS.sh"
source_wiki: "https://raw.githubusercontent.com/EmuDeck/emudeck.github.io/main/docs/tables/"
source_url: https://raw.githubusercontent.com/dragoonDorise/EmuDeck/main/functions/checkBIOS.sh
source_wiki: https://raw.githubusercontent.com/EmuDeck/emudeck.github.io/main/docs/tables/
source_format: bash_script+csv
hash_type: md5
schedule: weekly
target_scraper: emudeck_targets
target_source: "https://github.com/dragoonDorise/EmuDeck"
# dragoonDorise/EmuDeck = official repo (creator's account, 3.4k stars)
# EmuDeck/emudeck.github.io = official wiki (org account)
target_source: https://github.com/dragoonDorise/EmuDeck
install:
detect:
- os: linux
method: config_file
config: "$HOME/.config/EmuDeck/settings.sh"
config: $HOME/.config/EmuDeck/settings.sh
parse_key: emulationPath
bios_subdir: bios
- os: linux
method: path_exists
path: "$HOME/Emulation/bios"
path: $HOME/Emulation/bios
- os: windows
method: config_file
config: "%APPDATA%\\EmuDeck\\settings.ps1"
parse_key: "$emulationPath"
config: '%APPDATA%\EmuDeck\settings.ps1'
parse_key: $emulationPath
bios_subdir: bios
standalone_copies:
- file: prod.keys
targets:
linux:
- "$HOME/.local/share/yuzu/keys"
- "$HOME/.local/share/eden/keys"
- "$HOME/.config/Ryujinx/system"
- $HOME/.local/share/yuzu/keys
- $HOME/.local/share/eden/keys
- $HOME/.config/Ryujinx/system
windows:
- "%APPDATA%\\yuzu\\keys"
- "%APPDATA%\\eden\\keys"
- '%APPDATA%\yuzu\keys'
- '%APPDATA%\eden\keys'
- file: aes_keys.txt
targets:
linux:
- "$HOME/Emulation/bios/citra/keys"
- $HOME/Emulation/bios/citra/keys
lakka:
config: lakka.yml
status: active
logo: "https://raw.githubusercontent.com/libretro/retroarch-assets/master/src/xmb/flatui/lakka.svg"
logo: https://raw.githubusercontent.com/libretro/retroarch-assets/master/src/xmb/flatui/lakka.svg
scraper: libretro
inherits_from: retroarch
cores: all_libretro
schedule: weekly
target_scraper: lakka_targets
target_source: "https://buildbot.libretro.com/nightly/"
target_source: https://buildbot.libretro.com/nightly/
install:
detect:
- os: linux
method: os_release
id: lakka
bios_path: /storage/system
retrodeck:
config: retrodeck.yml
status: active
logo: "https://raw.githubusercontent.com/RetroDECK/RetroDECK/main/res/icon.svg"
logo: https://raw.githubusercontent.com/RetroDECK/RetroDECK/main/res/icon.svg
scraper: retrodeck
source_url: "https://github.com/RetroDECK/components"
source_url: https://github.com/RetroDECK/components
source_format: github_component_manifests
hash_type: md5
schedule: monthly
cores: [azahar, cemu, dolphin, duckstation, gzdoom, mame, melonds, openbor, pcsx2, pico-8, ppsspp, primehack, retroarch, rpcs3, ruffle, solarus, vita3k, xemu, xroar]
cores:
- azahar
- cemu
- clk
- dolphin
- duckstation
- gsplus
- gzdoom
- mame
- melonds
- openbor
- pcsx2
- pico-8
- ppsspp
- primehack
- retroarch
- rpcs3
- ruffle
- solarus
- vita3k
- xemu
- xroar
target_scraper: null
target_source: null
# Each component/<name>/component_manifest.json declares BIOS requirements
# Scraper enumerates top-level dirs via GitHub API, fetches each manifest directly
install:
detect:
- os: linux
method: path_exists
path: "$HOME/.var/app/net.retrodeck.retrodeck"
bios_path: "$HOME/retrodeck/bios"
path: $HOME/.var/app/net.retrodeck.retrodeck
bios_path: $HOME/retrodeck/bios
romm:
config: romm.yml
status: active
logo: "https://avatars.githubusercontent.com/u/168586850"
logo: https://avatars.githubusercontent.com/u/168586850
scraper: romm
source_url: "https://raw.githubusercontent.com/rommapp/romm/master/backend/models/fixtures/known_bios_files.json"
source_url: https://raw.githubusercontent.com/rommapp/romm/master/backend/models/fixtures/known_bios_files.json
source_format: json
hash_type: sha1
schedule: monthly
inherits_from: emulatorjs # cores inherited from emulatorjs.yml
inherits_from: emulatorjs
target_scraper: null
target_source: null
install:
@@ -193,39 +763,105 @@ platforms:
- os: linux
method: path_exists
path: /romm/library/bios
cores:
- atari800
- clk
- directxbox
- dolphin
- dolphin_launcher
- ecwolf
- ep128emu
- ep128emu_core
- freej2me
- hatari
- ishiiruka
- lrps2
- minivmac
- nekop2
- np2kai
- o2em
- pcsx2
- play
- pokemini
- primehack
- px68k
- scummvm
- squirreljme
- x1
- xemu
retropie:
config: retropie.yml
status: archived # Last release: v4.8 (March 2022) - no update in 4 years
logo: "https://avatars.githubusercontent.com/u/11378204"
status: archived
logo: https://avatars.githubusercontent.com/u/11378204
scraper: null
cores: all_libretro
schedule: null
target_scraper: retropie_targets
target_source: "https://retropie.org.uk/stats/pkgflags/"
target_source: https://retropie.org.uk/stats/pkgflags/
install:
detect:
- os: linux
method: path_exists
path: "$HOME/RetroPie/BIOS"
path: $HOME/RetroPie/BIOS
bizhawk:
config: bizhawk.yml
status: active
logo: "https://raw.githubusercontent.com/TASEmulators/BizHawk/master/Assets/bizhawk.ico"
logo: https://raw.githubusercontent.com/TASEmulators/BizHawk/master/Assets/bizhawk.ico
scraper: bizhawk
source_url: "https://raw.githubusercontent.com/TASEmulators/BizHawk/master/src/BizHawk.Emulation.Common/Database/FirmwareDatabase.cs"
source_url: https://raw.githubusercontent.com/TASEmulators/BizHawk/master/src/BizHawk.Emulation.Common/Database/FirmwareDatabase.cs
source_format: csharp_firmware_database
hash_type: sha1
schedule: monthly
cores: [gambatte, mgba, sameboy, melonds, snes9x, bsnes, beetle_psx, beetle_saturn, beetle_pce, beetle_pcfx, beetle_wswan, beetle_vb, beetle_ngp, opera, stella, picodrive, ppsspp, handy, quicknes, genesis_plus_gx, ares, mupen64plus_next, puae, prboom, virtualjaguar, vice_x64, mame]
cores:
- applewin
- ares
- azahar
- beetle_ngp
- beetle_pce
- beetle_pcfx
- beetle_psx
- beetle_saturn
- beetle_vb
- beetle_wswan
- bsnes
- citra
- citra2018
- citra_canary
- clk
- fbneo
- freechaf
- freeintv
- gambatte
- genesis_plus_gx
- handy
- mame
- melonds
- mgba
- mupen64plus_next
- numero
- o2em
- opera
- panda3ds
- picodrive
- ppsspp
- prboom
- prosystem
- puae
- quicknes
- sameboy
- snes9x
- stella
- trident
- vecx
- vice_x64
- virtualjaguar
target_scraper: null
target_source: null
install:
detect:
- os: windows
method: path_exists
path: "%USERPROFILE%\\BizHawk\\Firmware"
path: '%USERPROFILE%\BizHawk\Firmware'
- os: linux
method: path_exists
path: "$HOME/.config/BizHawk/Firmware"
path: $HOME/.config/BizHawk/Firmware

File diff suppressed because it is too large Load Diff

View File

@@ -1,170 +1,10 @@
platform: RetroBat
version: 7.5.3
homepage: "https://www.retrobat.org"
source: "https://raw.githubusercontent.com/RetroBat-Official/emulatorlauncher/master/batocera-systems/Resources/batocera-systems.json"
homepage: https://www.retrobat.org
source: https://raw.githubusercontent.com/RetroBat-Official/emulatorlauncher/master/batocera-systems/Resources/batocera-systems.json
base_destination: bios
hash_type: md5
verification_mode: md5
case_insensitive_fs: true
cores:
- 81
- a5200
- abuse
- arduous
- atari800
- azahar
- bennugd
- bk
- bluemsx
- bsnes
- bstone
- cannonball
- cap32
- catacombgl
- cdogs
- cemu
- cgenius
- citron
- clk
- corsixth
- demul
- devilutionx
- dhewm3
- dice
- dolphin
- dosbox_pure
- dxx-rebirth
- easyrpg
- ecwolf
- eduke32
- eka2l1
- emuscv
- etlegacy
- fake08
- fallout1-ce
- fallout2-ce
- fbneo
- fceumm
- flatpak
- flycast
- freechaf
- freeintv
- fury
- fuse
- gambatte
- gearsystem
- genesisplusgx
- glide64mk2
- gong
- gsplus
- gw
- gzdoom
- hatari
- hcl
- hurrican
- hypseus-singe
- ikemen
- ioquake3
- iortcw
- jazz2-native
- lindbergh-loader
- lowresnx
- lutro
- mame
- mame078plus
- mednafen_lynx
- mednafen_ngp
- mednafen_supergrafx
- mednafen_wswan
- melonds
- mgba
- minivmac
- model2emu
- moonlight
- mrboom
- neocd
- np2kai
- nxengine
- o2em
- odcommander
- openbor6412
- openjazz
- openjk
- openjkdf2
- openmohaa
- opera
- pce_fast
- pcfx
- pcsx2
- pcsx_rearmed
- pd777
- picodrive
- play
- pokemini
- potator
- ppsspp
- prboom
- prosystem
- puae
- px68k
- pygame
- pyxel
- quasi88
- raze
- reminiscence
- rpcs3
- ruffle
- samcoupe
- sameduck
- scummvm
- sdlpop
- sh
- shadps4
- snes9x
- solarus
- sonic2013
- sonic3-air
- sonic-mania
- steam
- stella
- superbroswar
- supermodel
- taradino
- tgbdual
- theforceengine
- theodore
- thextech
- tic80
- tr1x
- tr2x
- tsugaru
- tyrian
- tyrquake
- uqm
- uzem
- vb
- vecx
- vice_x64
- vircon32
- virtualjaguar
- vita3k
- vox_official
- vpinball
- wasm4
- wine-tkg
- x1
- x128
- x16emu
- xash3d_fwgs
- xemu
- xenia-canary
- xpet
- xplus4
- xrick
- xvic
- yabasanshiro
- yquake2
- zc210
systems:
3do:
files:
@@ -425,12 +265,12 @@ systems:
md5: 281f20ea4320404ec820fb7ec0693b38
atari7800:
files:
- name: "7800 BIOS (E).rom"
destination: "7800 BIOS (E).rom"
- name: 7800 BIOS (E).rom
destination: 7800 BIOS (E).rom
required: true
md5: 397bb566584be7b9764e7a68974c4263
- name: "7800 BIOS (U).rom"
destination: "7800 BIOS (U).rom"
- name: 7800 BIOS (U).rom
destination: 7800 BIOS (U).rom
required: true
md5: 0763f1ffb006ddbe32e52d497ee848ae
- name: ProSystem.dat
@@ -548,6 +388,40 @@ systems:
- name: bbcmc_flop.xml
destination: mame/hash/bbcmc_flop.xml
required: true
bk:
files:
- name: B11M_BOS.ROM
destination: bk/B11M_BOS.ROM
required: true
md5: fe4627d1e3a1535874085050733263e7
- name: B11M_EXT.ROM
destination: bk/B11M_EXT.ROM
required: true
md5: dc52f365d56fa1951f5d35b1101b9e3f
- name: BAS11M_0.ROM
destination: bk/BAS11M_0.ROM
required: true
md5: 946f6f23ded03c0e26187f0b3ca75993
- name: BAS11M_1.ROM
destination: bk/BAS11M_1.ROM
required: true
md5: 1e6637f32aa7d1de03510030cac40bcf
- name: DISK_327.ROM
destination: bk/DISK_327.ROM
required: true
md5: 5015228eeeb238e65da8edcd1b6dfac7
- name: BASIC10.ROM
destination: bk/BASIC10.ROM
required: true
md5: 3fa774326d75410a065659aea80252f0
- name: FOCAL10.ROM
destination: bk/FOCAL10.ROM
required: true
md5: 5737f972e8638831ab71e9139abae052
- name: MONIT10.ROM
destination: bk/MONIT10.ROM
required: true
md5: 95f8c41c6abf7640e35a6a03cecebd01
loopy:
files:
- name: casloopy.zip
@@ -845,34 +719,30 @@ systems:
md5: a6f31483d1da4558cc19025e21f95c1d
jaguar:
files:
- name: "[BIOS] Atari Jaguar (World).j64"
destination: "[BIOS] Atari Jaguar (World).j64"
- name: '[BIOS] Atari Jaguar (World).j64'
destination: '[BIOS] Atari Jaguar (World).j64'
required: true
md5: bcfe348c565d9dedb173822ee6850dea
laseractive:
files:
- name: "[BIOS] LaserActive PAC-N1 (Japan) (v1.02).bin"
destination: "laseractive/[BIOS] LaserActive PAC-N1 (Japan) (v1.02).bin"
- name: '[BIOS] LaserActive PAC-N1 (Japan) (v1.02).bin'
destination: laseractive/[BIOS] LaserActive PAC-N1 (Japan) (v1.02).bin
required: true
md5: f69f173b251d8bf7649b10a9167a10bf
- name: "[BIOS] LaserActive PAC-N10 (US) (v1.02).bin"
destination: "laseractive/[BIOS] LaserActive PAC-N10 (US) (v1.02).bin"
- name: '[BIOS] LaserActive PAC-N10 (US) (v1.02).bin'
destination: laseractive/[BIOS] LaserActive PAC-N10 (US) (v1.02).bin
required: true
md5: f0fb8a4605ac7eefbafd4f2d5a793cc8
- name: "[BIOS] LaserActive PCE-LP1 (Japan) (v1.02).bin"
destination: "laseractive/[BIOS] LaserActive PCE-LP1 (Japan) (v1.02).bin"
- name: '[BIOS] LaserActive PCE-LP1 (Japan) (v1.02).bin'
destination: laseractive/[BIOS] LaserActive PCE-LP1 (Japan) (v1.02).bin
required: true
md5: 761fea207d0eafd4cfd78da7c44cac88
- name: "Pioneer LaserActive Sega PAC Boot ROM v1.02 (1993)(Pioneer - Sega)(JP)(en-ja).bin"
destination: "laseractive/Pioneer LaserActive Sega PAC Boot ROM v1.02 (1993)(Pioneer\
\ - Sega)(JP)(en-ja).bin"
- name: '[BIOS] LaserActive PAC-S10 (US) (v1.04).bin'
destination: laseractive/[BIOS] LaserActive PAC-S10 (US) (v1.04).bin
required: true
md5: a5a2f9aae57d464bc66b80ee79c3da6e
- name: "Pioneer LaserActive Sega PAC Boot ROM v1.04 (1993)(Pioneer - Sega)(US).bin"
destination: "laseractive/Pioneer LaserActive Sega PAC Boot ROM v1.04 (1993)(Pioneer\
\ - Sega)(US).bin"
- name: '[BIOS] LaserActive PAC-S1 (Japan) (v1.05).bin'
destination: laseractive/[BIOS] LaserActive PAC-S1 (Japan) (v1.05).bin
required: true
md5: 0e7393cd0951d6dde818fcd4cd819466
lynx:
files:
- name: lynxboot.img
@@ -916,11 +786,11 @@ systems:
required: true
mastersystem:
files:
- name: "[BIOS] Sega Master System (USA, Europe) (v1.3).sms"
destination: "[BIOS] Sega Master System (USA, Europe) (v1.3).sms"
- name: '[BIOS] Sega Master System (USA, Europe) (v1.3).sms'
destination: '[BIOS] Sega Master System (USA, Europe) (v1.3).sms'
required: true
- name: "[BIOS] Sega Master System (Japan) (v2.1).sms"
destination: "[BIOS] Sega Master System (Japan) (v2.1).sms"
- name: '[BIOS] Sega Master System (Japan) (v2.1).sms'
destination: '[BIOS] Sega Master System (Japan) (v2.1).sms'
required: true
msx:
files:
@@ -1205,13 +1075,13 @@ systems:
md5: 64a95a4a884cf4cc15a566b856603193
ngp:
files:
- name: "[BIOS] SNK Neo Geo Pocket (Japan, Europe) (En,Ja).ngp"
destination: "[BIOS] SNK Neo Geo Pocket (Japan, Europe) (En,Ja).ngp"
- name: '[BIOS] SNK Neo Geo Pocket (Japan, Europe) (En,Ja).ngp'
destination: '[BIOS] SNK Neo Geo Pocket (Japan, Europe) (En,Ja).ngp'
required: true
ngpc:
files:
- name: "[BIOS] SNK Neo Geo Pocket (Japan, Europe) (En,Ja).ngp"
destination: "[BIOS] SNK Neo Geo Pocket (Japan, Europe) (En,Ja).ngp"
- name: '[BIOS] SNK Neo Geo Pocket (Japan, Europe) (En,Ja).ngp'
destination: '[BIOS] SNK Neo Geo Pocket (Japan, Europe) (En,Ja).ngp'
required: true
odyssey2:
files:
@@ -1319,7 +1189,7 @@ systems:
destination: bios.min
required: true
md5: 1e4fb124a3a886865acb574f388c803d
ps2:
sony-playstation-2:
files:
- name: ps2-0230a-20080220.bin
destination: pcsx2/bios/ps2-0230a-20080220.bin

View File

@@ -191,6 +191,30 @@ def load_platform_config(platform_name: str, platforms_dir: str = "platforms") -
system.setdefault("files", []).append(gf)
existing.add(key)
# Merge cores from _registry.yml if the registry has a broader list.
# The scraped YAML may have an incomplete cores list; the registry is
# our curated source and supplements it. This affects all consumers:
# generate_pack, verify, generate_truth, diff_truth.
registry_path = os.path.join(platforms_dir, "_registry.yml")
if os.path.exists(registry_path):
reg_real = os.path.realpath(registry_path)
if reg_real not in _shared_yml_cache:
with open(registry_path) as f:
_shared_yml_cache[reg_real] = yaml.safe_load(f) or {}
reg = _shared_yml_cache[reg_real]
reg_entry = reg.get("platforms", {}).get(platform_name, {})
reg_cores = reg_entry.get("cores")
if reg_cores is not None:
cfg_cores = config.get("cores")
if reg_cores == "all_libretro":
config["cores"] = "all_libretro"
elif isinstance(reg_cores, list) and isinstance(cfg_cores, list):
# Union: registry supplements scraped cores
merged_set = {str(c) for c in cfg_cores} | {str(c) for c in reg_cores}
config["cores"] = sorted(merged_set)
elif isinstance(reg_cores, list) and cfg_cores is None:
config["cores"] = reg_cores
_platform_config_cache[cache_key] = config
return config
@@ -735,6 +759,15 @@ def resolve_platform_cores(
for c in core_set
if c in core_to_profile
}
# Support "all_libretro" as a list element: combines all libretro
# profiles with explicitly listed standalone cores (e.g. RetroDECK
# ships RetroArch + standalone emulators)
if "all_libretro" in core_set or "retroarch" in core_set:
result |= {
name for name, p in profiles.items()
if "libretro" in p.get("type", "")
and p.get("type") != "alias"
}
else:
# Fallback: system ID intersection with normalization
norm_plat_systems = {_norm_system_id(s) for s in config.get("systems", {})}
@@ -882,6 +915,39 @@ def filter_systems_by_target(
return filtered
def expand_platform_declared_names(config: dict, db: dict) -> set[str]:
"""Build set of file names declared by a platform config.
Enriches the set with canonical names and aliases from the database
by resolving each platform file's MD5 through by_md5. This handles
cases where a platform declares a file under a different name than
the emulator profile (e.g. Batocera ROM1 vs gsplus ROM).
"""
declared: set[str] = set()
by_md5 = db.get("indexes", {}).get("by_md5", {})
files_db = db.get("files", {})
for system in config.get("systems", {}).values():
for fe in system.get("files", []):
name = fe.get("name", "")
if name:
declared.add(name)
md5 = fe.get("md5", "")
if not md5:
continue
# Skip multi-hash and zippedFile entries (inner ROM MD5, not file MD5)
if "," in md5 or fe.get("zippedFile"):
continue
sha1 = by_md5.get(md5.lower())
if not sha1:
continue
entry = files_db.get(sha1, {})
db_name = entry.get("name", "")
if db_name:
declared.add(db_name)
for alias in entry.get("aliases", []):
declared.add(alias)
return declared
# Validation and mode filtering -extracted to validation.py for SoC.
# Re-exported below for backward compatibility.

View File

@@ -28,7 +28,7 @@ sys.path.insert(0, os.path.dirname(__file__))
from common import (
MANUFACTURER_PREFIXES,
build_target_cores_cache, build_zip_contents_index, check_inside_zip,
compute_hashes, fetch_large_file, group_identical_platforms,
compute_hashes, expand_platform_declared_names, fetch_large_file, group_identical_platforms,
list_emulator_profiles, list_platform_system_ids, list_registered_platforms,
filter_systems_by_target, list_system_ids, load_database,
load_data_dir_registry, load_emulator_profiles, load_platform_config,
@@ -371,12 +371,8 @@ def _collect_emulator_extras(
by_path_suffix = db.get("indexes", {}).get("by_path_suffix", {})
# Build set of filenames already covered (platform baseline + first pass extras)
covered_names: set[str] = set()
for sys_id, system in config.get("systems", {}).items():
for fe in system.get("files", []):
n = fe.get("name", "")
if n:
covered_names.add(n)
# Enriched with canonical names from DB via MD5 (handles platform renaming)
covered_names = expand_platform_declared_names(config, db)
for e in extras:
covered_names.add(e["name"])

View File

@@ -92,6 +92,27 @@ SYSTEM_SLUG_MAP = {
"dos": "dos",
"videopac": "philips-videopac",
"pokemini": "nintendo-pokemon-mini",
"gsplus": "apple-iigs",
"apple2": "apple-ii",
"apple2gs": "apple-iigs",
"ps3": "sony-playstation-3",
"psvita": "sony-playstation-vita",
"coco": "coco",
"dragon32": "dragon32",
"dragon64": "dragon64",
"mc10": "mc10",
"msx2+": "microsoft-msx",
"msxturbor": "microsoft-msx",
"spectravideo": "spectravideo",
"tvc": "videoton-tvc",
"enterprise": "enterprise-64-128",
"vis": "tandy-vis",
"supracan": "supracan",
"jaguar": "atari-jaguar",
"jaguarcd": "atari-jaguar",
"switch": "nintendo-switch",
"wii": "nintendo-wii",
"xbox360": "microsoft-xbox-360",
}
@@ -308,6 +329,13 @@ class Scraper(BaseScraper):
num = tag.removeprefix("batocera-")
if num.isdigit():
batocera_version = num
if not batocera_version:
# Preserve existing version when fetch fails (offline mode)
existing = Path(__file__).resolve().parents[2] / "platforms" / "batocera.yml"
if existing.exists():
with open(existing) as f:
old = yaml.safe_load(f) or {}
batocera_version = str(old.get("version", ""))
cores, standalone = self._fetch_cores()
result = {

View File

@@ -27,6 +27,14 @@ SOURCE_URL = (
GITHUB_REPO = "RetroBat-Official/retrobat"
# Map RetroBat system keys to our normalized system IDs
SYSTEM_SLUG_MAP = {
"ps2": "sony-playstation-2",
"ps3": "sony-playstation-3",
"psvita": "sony-playstation-vita",
"gsplus": "apple-iigs",
}
class Scraper(BaseScraper):
"""Scraper for RetroBat batocera-systems.json."""
@@ -83,7 +91,7 @@ class Scraper(BaseScraper):
requirements.append(BiosRequirement(
name=name,
system=sys_key,
system=SYSTEM_SLUG_MAP.get(sys_key, sys_key),
md5=md5 or None,
destination=file_path,
required=True,

View File

@@ -38,8 +38,14 @@ def _enrich_hashes(entry: dict, db: dict) -> None:
sha1 = entry.get("sha1", "")
md5 = entry.get("md5", "")
# Hashes can be lists (multi-hash) — use first string value
if isinstance(sha1, list):
sha1 = sha1[0] if sha1 else ""
if isinstance(md5, list):
md5 = md5[0] if md5 else ""
record = None
if sha1 and db.get("files"):
if sha1 and isinstance(sha1, str) and db.get("files"):
record = db["files"].get(sha1)
if record is None and md5:
by_md5 = db.get("by_md5", {})
@@ -323,9 +329,46 @@ def _diff_system(truth_sys: dict, scraped_sys: dict) -> dict:
"scraped_required": s_req,
})
# Truth files not matched -> missing
for fe in truth_sys.get("files", []):
if fe["name"].lower() not in matched_truth_names:
# Collect unmatched files from both sides
unmatched_truth = [
fe for fe in truth_sys.get("files", [])
if fe["name"].lower() not in matched_truth_names
]
unmatched_scraped = {
s_key: s_entry for s_key, s_entry in scraped_index.items()
if s_key not in truth_index
}
# Hash-based fallback: detect platform renames (e.g. Batocera ROM → ROM1)
# If an unmatched scraped file shares a hash with an unmatched truth file,
# it's the same file under a different name — a platform rename, not a gap.
rename_matched_truth: set[str] = set()
rename_matched_scraped: set[str] = set()
if unmatched_truth and unmatched_scraped:
# Build hash → truth file index for unmatched truth files
truth_hash_index: dict[str, dict] = {}
for fe in unmatched_truth:
for h in ("sha1", "md5", "crc32"):
val = fe.get(h)
if val and isinstance(val, str):
truth_hash_index[val.lower()] = fe
for s_key, s_entry in unmatched_scraped.items():
for h in ("sha1", "md5", "crc32"):
s_val = s_entry.get(h)
if not s_val or not isinstance(s_val, str):
continue
t_entry = truth_hash_index.get(s_val.lower())
if t_entry is not None:
# Rename detected — count as matched
rename_matched_truth.add(t_entry["name"].lower())
rename_matched_scraped.add(s_key)
break
# Truth files not matched (by name, alias, or hash) -> missing
for fe in unmatched_truth:
if fe["name"].lower() not in rename_matched_truth:
missing.append({
"name": fe["name"],
"cores": list(fe.get("_cores", [])),
@@ -335,8 +378,9 @@ def _diff_system(truth_sys: dict, scraped_sys: dict) -> dict:
# Scraped files not in truth -> extra
coverage = truth_sys.get("_coverage", {})
has_unprofiled = bool(coverage.get("cores_unprofiled"))
for s_key, s_entry in scraped_index.items():
if s_key not in truth_index:
for s_key, s_entry in unmatched_scraped.items():
if s_key in rename_matched_scraped:
continue
entry = {"name": s_entry["name"]}
if has_unprofiled:
extra_unprofiled.append(entry)

View File

@@ -31,10 +31,11 @@ from pathlib import Path
sys.path.insert(0, os.path.dirname(__file__))
from common import (
build_target_cores_cache, build_zip_contents_index, check_inside_zip,
compute_hashes, filter_systems_by_target, group_identical_platforms,
list_emulator_profiles, list_system_ids, load_data_dir_registry,
load_emulator_profiles, load_platform_config, md5sum, md5_composite,
require_yaml, resolve_local_file, resolve_platform_cores,
compute_hashes, expand_platform_declared_names, filter_systems_by_target,
group_identical_platforms, list_emulator_profiles, list_system_ids,
load_data_dir_registry, load_emulator_profiles, load_platform_config,
md5sum, md5_composite, require_yaml, resolve_local_file,
resolve_platform_cores,
)
yaml = require_yaml()
@@ -261,13 +262,9 @@ def find_undeclared_files(
data_names: set[str] | None = None,
) -> list[dict]:
"""Find files needed by cores but not declared in platform config."""
# Collect all filenames declared by this platform
declared_names: set[str] = set()
for sys_id, system in config.get("systems", {}).items():
for fe in system.get("files", []):
name = fe.get("name", "")
if name:
declared_names.add(name)
# Collect all filenames declared by this platform, enriched with
# canonical names from DB via MD5 (handles platform renaming)
declared_names = expand_platform_declared_names(config, db)
# Collect data_directory refs
declared_dd: set[str] = set()

View File

@@ -31,6 +31,7 @@ sys.path.insert(0, os.path.join(os.path.dirname(__file__), "..", "scripts"))
import yaml
from common import (
build_zip_contents_index, check_inside_zip, compute_hashes,
expand_platform_declared_names,
group_identical_platforms, load_emulator_profiles, load_platform_config,
md5_composite, md5sum, parse_md5_list, resolve_local_file,
resolve_platform_cores, safe_extract_zip,
@@ -269,6 +270,12 @@ class TestE2E(unittest.TestCase):
{"ref": "test-data-dir", "destination": "TestData"},
],
},
"sys-renamed": {
"files": [
{"name": "renamed_file.bin", "destination": "renamed_file.bin",
"md5": f["correct_hash.bin"]["md5"], "required": True},
],
},
},
}
with open(os.path.join(self.platforms_dir, "test_md5.yml"), "w") as fh:
@@ -490,6 +497,19 @@ class TestE2E(unittest.TestCase):
with open(os.path.join(self.emulators_dir, "test_subdir_core.yml"), "w") as fh:
yaml.dump(emu_subdir, fh)
# Emulator whose file is declared by platform under a different name
# (e.g. gsplus ROM vs Batocera ROM1) — hash-based matching should resolve
emu_renamed = {
"emulator": "TestRenamed",
"type": "standalone",
"systems": ["sys-renamed"],
"files": [
{"name": "correct_hash.bin", "required": True},
],
}
with open(os.path.join(self.emulators_dir, "test_renamed.yml"), "w") as fh:
yaml.dump(emu_renamed, fh)
# ---------------------------------------------------------------
# THE TEST -one method per feature area, all using same fixtures
# ---------------------------------------------------------------
@@ -3251,6 +3271,146 @@ class TestE2E(unittest.TestCase):
self.assertEqual(div["extra_unprofiled"][0]["name"], "phantom.bin")
self.assertNotIn("extra_phantom", div)
def test_173_cross_ref_hash_matching(self):
"""Platform file under different name matched by MD5 is not undeclared."""
config = load_platform_config("test_md5", self.platforms_dir)
profiles = load_emulator_profiles(self.emulators_dir)
undeclared = find_undeclared_files(config, self.emulators_dir, self.db, profiles)
names = {u["name"] for u in undeclared}
# correct_hash.bin is declared by platform as renamed_file.bin with same MD5
# hash-based matching should suppress it from undeclared
self.assertNotIn("correct_hash.bin", names)
def test_174_expand_platform_declared_names(self):
"""expand_platform_declared_names enriches with DB canonical names."""
config = load_platform_config("test_md5", self.platforms_dir)
result = expand_platform_declared_names(config, self.db)
# renamed_file.bin is declared directly
self.assertIn("renamed_file.bin", result)
# correct_hash.bin is the DB canonical name for the same MD5
self.assertIn("correct_hash.bin", result)
# ---------------------------------------------------------------
# Registry merge + all_libretro expansion + diff hash fallback
# ---------------------------------------------------------------
def test_175_registry_merge_cores(self):
"""load_platform_config merges cores from _registry.yml."""
from common import _platform_config_cache
# Platform YAML with 1 core
config = {
"platform": "TestMerge",
"cores": ["core_a"],
"systems": {"test-system": {"files": []}},
}
with open(os.path.join(self.platforms_dir, "testmerge.yml"), "w") as f:
yaml.dump(config, f)
# Registry with 2 cores (superset)
registry = {
"platforms": {
"testmerge": {
"config": "testmerge.yml",
"status": "active",
"cores": ["core_a", "core_b"],
}
}
}
with open(os.path.join(self.platforms_dir, "_registry.yml"), "w") as f:
yaml.dump(registry, f)
_platform_config_cache.clear()
loaded = load_platform_config("testmerge", self.platforms_dir)
cores = [str(c) for c in loaded["cores"]]
self.assertIn("core_a", cores)
self.assertIn("core_b", cores)
def test_176_all_libretro_in_list(self):
"""resolve_platform_cores expands all_libretro/retroarch in a list."""
from common import resolve_platform_cores, load_emulator_profiles
# Create a libretro profile and a standalone profile
for name, ptype in [("lr_core", "libretro"), ("sa_core", "standalone")]:
profile = {
"emulator": name,
"type": ptype,
"cores": [name],
"systems": ["test-system"],
"files": [],
}
with open(os.path.join(self.emulators_dir, f"{name}.yml"), "w") as f:
yaml.dump(profile, f)
profiles = load_emulator_profiles(self.emulators_dir)
# Config with retroarch + sa_core in cores list
config = {"cores": ["retroarch", "sa_core"]}
resolved = resolve_platform_cores(config, profiles)
self.assertIn("lr_core", resolved) # expanded via retroarch
self.assertIn("sa_core", resolved) # explicit
def test_177_diff_hash_fallback_rename(self):
"""Diff detects platform renames via hash fallback."""
from truth import diff_platform_truth
truth = {
"systems": {
"test-system": {
"_coverage": {"cores_profiled": ["c"], "cores_unprofiled": []},
"files": [
{"name": "ROM", "required": True, "md5": "abcd1234" * 4,
"_cores": ["c"], "_source_refs": []},
],
}
}
}
scraped = {
"systems": {
"test-system": {
"files": [
{"name": "ROM1", "required": True, "md5": "abcd1234" * 4},
],
}
}
}
result = diff_platform_truth(truth, scraped)
# ROM and ROM1 share the same hash — rename, not missing+phantom
self.assertEqual(result["summary"]["total_missing"], 0)
self.assertEqual(result["summary"]["total_extra_phantom"], 0)
def test_178_diff_system_normalization(self):
"""Diff matches systems with different IDs via normalization."""
from truth import diff_platform_truth
truth = {
"systems": {
"sega-gamegear": {
"_coverage": {"cores_profiled": ["c"], "cores_unprofiled": []},
"files": [
{"name": "bios.gg", "required": True, "md5": "a" * 32,
"_cores": ["c"], "_source_refs": []},
],
},
}
}
scraped = {
"systems": {
"sega-game-gear": {
"files": [
{"name": "bios.gg", "required": True, "md5": "a" * 32},
],
},
}
}
result = diff_platform_truth(truth, scraped)
self.assertEqual(result["summary"]["systems_uncovered"], 0)
self.assertEqual(result["summary"]["total_missing"], 0)
self.assertEqual(result["summary"]["systems_compared"], 1)
if __name__ == "__main__":
unittest.main()