mirror of
https://github.com/Abdess/retroarch_system.git
synced 2026-04-13 12:22:33 -05:00
Compare commits
53 Commits
auto/updat
...
e5859eb761
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
e5859eb761 | ||
|
|
754e829b35 | ||
|
|
7beb651049 | ||
|
|
5eeaf87a3a | ||
|
|
ab3255b0c7 | ||
|
|
2d17e0e9d9 | ||
|
|
03002515fe | ||
|
|
eb354128e2 | ||
|
|
6b5c3d8bf2 | ||
|
|
d685ad111d | ||
|
|
b56f8dd05f | ||
|
|
40ff2b5307 | ||
|
|
d0dd05ddf6 | ||
|
|
d4b0af0a38 | ||
|
|
038c3d3b40 | ||
|
|
427fef5669 | ||
|
|
75e34898ee | ||
|
|
94c3ac9834 | ||
|
|
319a1d2041 | ||
|
|
00d7b57884 | ||
|
|
caf6285a04 | ||
|
|
529cb8a915 | ||
|
|
1146fdf177 | ||
|
|
4fbb3571f8 | ||
|
|
0be68edad0 | ||
|
|
1ffc4f89ca | ||
|
|
f1ebfff5bd | ||
|
|
425ea064ae | ||
|
|
6818a18a42 | ||
|
|
c11de6dba6 | ||
|
|
c4f3192020 | ||
|
|
e2d0510f4e | ||
|
|
74269bab84 | ||
|
|
1e6b499602 | ||
|
|
9b785ec785 | ||
|
|
d415777f2c | ||
|
|
eafabd20f3 | ||
|
|
2aca4927c0 | ||
|
|
17777f315b | ||
|
|
692484d32d | ||
|
|
a8430940f9 | ||
|
|
1f073f521d | ||
|
|
903c49edcf | ||
|
|
d3a2224dd2 | ||
|
|
f898f26847 | ||
|
|
2712307420 | ||
|
|
54022e9db1 | ||
|
|
4db9e4350c | ||
|
|
6864ce6584 | ||
|
|
12196b6445 | ||
|
|
7551e41a7b | ||
|
|
7b484605d4 | ||
|
|
b587381f05 |
3
.gitignore
vendored
3
.gitignore
vendored
@@ -29,13 +29,14 @@ data/
|
||||
# Large files stored as GitHub Release assets (additional)
|
||||
bios/Arcade/MAME/artwork/snspell.zip
|
||||
bios/Arcade/MAME/MAME 0.174 Arcade XML.dat
|
||||
bios/Sony/PlayStation Vita/.variants/PSP2UPDAT.PUP
|
||||
bios/Sony/PlayStation Vita/.variants/PSP2UPDAT.PUP.3ae832c9
|
||||
bios/Nintendo/DS/DSi_Nand_JPN.bin
|
||||
bios/Nintendo/DS/DSi_Nand_EUR.bin
|
||||
bios/Nintendo/DS/DSi_Nand_USA.bin
|
||||
bios/Nintendo/DS/DSi_Nand_AUS.bin
|
||||
bios/Nintendo/DS/DSi_Nand_CHN.bin
|
||||
bios/Nintendo/DS/DSi_Nand_KOR.bin
|
||||
bios/Nintendo/DS/dsi_nand.bin
|
||||
|
||||
# QEMU EDK2 firmware (64MB each)
|
||||
bios/QEMU/edk2-aarch64-code.fd
|
||||
|
||||
38
README.md
38
README.md
@@ -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,295** 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 | 361 | `/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,295 files** verified with MD5, SHA1, CRC32 checksums
|
||||
- **8765 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,16 +59,16 @@ 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 | 361/361 (100.0%) | 361 | 0 | 0 |
|
||||
| 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 |
|
||||
| RomM | 372/374 (99.5%) | 372 | 0 | 2 |
|
||||
| Lakka | 448/448 (100.0%) | 448 | 0 | 0 |
|
||||
| Recalbox | 346/346 (100.0%) | 346 | 0 | 0 |
|
||||
| RetroArch | 448/448 (100.0%) | 448 | 0 | 0 |
|
||||
| RetroBat | 339/339 (100.0%) | 339 | 0 | 0 |
|
||||
| RetroDECK | 2006/2006 (100.0%) | 2006 | 0 | 0 |
|
||||
| RetroPie | 448/448 (100.0%) | 448 | 0 | 0 |
|
||||
| RomM | 374/374 (100.0%) | 374 | 0 | 0 |
|
||||
|
||||
## 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-31T20:38:37Z*
|
||||
|
||||
BIN
bios/Apple/Apple II/DiskII/boot-13.rom
Normal file
BIN
bios/Apple/Apple II/DiskII/boot-13.rom
Normal file
Binary file not shown.
BIN
bios/Apple/Apple II/DiskII/boot-16.rom
Normal file
BIN
bios/Apple/Apple II/DiskII/boot-16.rom
Normal file
Binary file not shown.
65
bios/Apple/Apple II/DiskII/state-machine-13.rom
Normal file
65
bios/Apple/Apple II/DiskII/state-machine-13.rom
Normal file
@@ -0,0 +1,65 @@
|
||||
ИИ<EFBFBD>Ш
|
||||
|
||||
|
||||
|
||||
<EFBFBD>Щ<EFBFBD>Щ<EFBFBD>Ы<EFBFBD>Ы<EFBFBD>ШШ
|
||||
|
||||
|
||||
|
||||
<EFBFBD>Щ<EFBFBD>Щ<EFBFBD>Ы<EFBFBD>ЫИ=ИИ
|
||||
|
||||
|
||||
|
||||
<EFBFBD>й<EFBFBD>й<EFBFBD>л<EFBFBD>л<EFBFBD>н<EFBFBD>и
|
||||
|
||||
|
||||
|
||||
<EFBFBD>й<EFBFBD>й<EFBFBD>л<EFBFBD>лИИИИ
|
||||
|
||||
|
||||
|
||||
ЈшЈшЈшЈшЈшЈш
|
||||
|
||||
|
||||
|
||||
ЈшЈшЈшЈшЙ§Иј
|
||||
|
||||
|
||||
|
||||
ИјИјИјИјЙ§Pј
|
||||
|
||||
|
||||
|
||||
ИјИјИјИјИИHИ
|
||||
|
||||
|
||||
|
||||
H(H(H(H(H(H(
|
||||
|
||||
|
||||
|
||||
H(H(H(H(ИЙИИ
|
||||
|
||||
|
||||
|
||||
X8X8X8X8 ЩX8
|
||||
|
||||
|
||||
|
||||
X8X8X8X8ИИИИ
|
||||
|
||||
|
||||
|
||||
hhhhhh
|
||||
|
||||
|
||||
|
||||
hhhh<18>Нxp
|
||||
|
||||
|
||||
|
||||
xxxx
|
||||
-xp
|
||||
|
||||
|
||||
|
||||
65
bios/Apple/Apple II/DiskII/state-machine-16.rom
Normal file
65
bios/Apple/Apple II/DiskII/state-machine-16.rom
Normal file
@@ -0,0 +1,65 @@
|
||||
Ш
|
||||
|
||||
|
||||
|
||||
99;;8(
|
||||
|
||||
|
||||
|
||||
99;;-Ш8H
|
||||
|
||||
|
||||
|
||||
(H(H(H(H-H8H
|
||||
|
||||
|
||||
|
||||
(H(H(H(HШШШШ
|
||||
|
||||
|
||||
|
||||
XxXxXxXxXxXx
|
||||
|
||||
|
||||
|
||||
XxXxXxXxШШШШ
|
||||
|
||||
|
||||
|
||||
hh€hh€h€h€
|
||||
|
||||
|
||||
|
||||
hh€hh€ШНШШ
|
||||
|
||||
|
||||
|
||||
<EFBFBD>№<EFBFBD>№<EFBFBD>»<EFBFBD>»<EFBFBD>Ѕ<EFBFBD>ё
|
||||
|
||||
|
||||
|
||||
<EFBFBD>№<EFBFBD>№<EFBFBD>»<EFBFBD>»ШЩШШ
|
||||
|
||||
|
||||
|
||||
ЁИЁИЁИЁИ)YЁИ
|
||||
|
||||
|
||||
|
||||
ЁИЁИЁИЁИЩэШш
|
||||
|
||||
|
||||
|
||||
ШшШшШшШшЩэ ш
|
||||
|
||||
|
||||
|
||||
ШшШшШшШшШЭиа
|
||||
|
||||
|
||||
|
||||
и€ии€иMиа
|
||||
|
||||
|
||||
|
||||
и€ии€и
|
||||
BIN
bios/Arcade/MAME/astrocdl.zip
Normal file
BIN
bios/Arcade/MAME/astrocdl.zip
Normal file
Binary file not shown.
BIN
bios/Arcade/MAME/astrocdw.zip
Normal file
BIN
bios/Arcade/MAME/astrocdw.zip
Normal file
Binary file not shown.
BIN
bios/Arcade/MAME/atombbc.zip
Normal file
BIN
bios/Arcade/MAME/atombbc.zip
Normal file
Binary file not shown.
BIN
bios/Arcade/MAME/bk0010.zip
Normal file
BIN
bios/Arcade/MAME/bk0010.zip
Normal file
Binary file not shown.
BIN
bios/Arcade/MAME/cgenienz.zip
Normal file
BIN
bios/Arcade/MAME/cgenienz.zip
Normal file
Binary file not shown.
BIN
bios/Arcade/MAME/cp500.zip
Normal file
BIN
bios/Arcade/MAME/cp500.zip
Normal file
Binary file not shown.
BIN
bios/Arcade/MAME/eg3003.zip
Normal file
BIN
bios/Arcade/MAME/eg3003.zip
Normal file
Binary file not shown.
BIN
bios/Arcade/MAME/fmnew7.zip
Normal file
BIN
bios/Arcade/MAME/fmnew7.zip
Normal file
Binary file not shown.
BIN
bios/Arcade/MAME/fnvision.zip
Normal file
BIN
bios/Arcade/MAME/fnvision.zip
Normal file
Binary file not shown.
BIN
bios/Arcade/MAME/galgames.zip
Normal file
BIN
bios/Arcade/MAME/galgames.zip
Normal file
Binary file not shown.
BIN
bios/Arcade/MAME/ht108064.zip
Normal file
BIN
bios/Arcade/MAME/ht108064.zip
Normal file
Binary file not shown.
BIN
bios/Arcade/MAME/ht1080z.zip
Normal file
BIN
bios/Arcade/MAME/ht1080z.zip
Normal file
Binary file not shown.
BIN
bios/Arcade/MAME/ht1080z2.zip
Normal file
BIN
bios/Arcade/MAME/ht1080z2.zip
Normal file
Binary file not shown.
BIN
bios/Arcade/MAME/lasr2001.zip
Normal file
BIN
bios/Arcade/MAME/lasr2001.zip
Normal file
Binary file not shown.
BIN
bios/Arcade/MAME/manager.zip
Normal file
BIN
bios/Arcade/MAME/manager.zip
Normal file
Binary file not shown.
BIN
bios/Arcade/MAME/pc6601.zip
Normal file
BIN
bios/Arcade/MAME/pc6601.zip
Normal file
Binary file not shown.
BIN
bios/Arcade/MAME/pc6601sr.zip
Normal file
BIN
bios/Arcade/MAME/pc6601sr.zip
Normal file
Binary file not shown.
BIN
bios/Arcade/MAME/pc8001.zip
Normal file
BIN
bios/Arcade/MAME/pc8001.zip
Normal file
Binary file not shown.
BIN
bios/Arcade/MAME/prophet2.zip
Normal file
BIN
bios/Arcade/MAME/prophet2.zip
Normal file
Binary file not shown.
BIN
bios/Arcade/MAME/sys80.zip
Normal file
BIN
bios/Arcade/MAME/sys80.zip
Normal file
Binary file not shown.
BIN
bios/Arcade/MAME/ti99_4.zip
Normal file
BIN
bios/Arcade/MAME/ti99_4.zip
Normal file
Binary file not shown.
BIN
bios/Arcade/MAME/trs80l2.zip
Normal file
BIN
bios/Arcade/MAME/trs80l2.zip
Normal file
Binary file not shown.
BIN
bios/Arcade/MAME/tvc64.zip
Normal file
BIN
bios/Arcade/MAME/tvc64.zip
Normal file
Binary file not shown.
BIN
bios/Commodore/C64/Commodore1540/1540.bin
Normal file
BIN
bios/Commodore/C64/Commodore1540/1540.bin
Normal file
Binary file not shown.
BIN
bios/Commodore/C64/Commodore1540/1541.bin
Normal file
BIN
bios/Commodore/C64/Commodore1540/1541.bin
Normal file
Binary file not shown.
BIN
bios/Commodore/Plus4/kernal.318004-03.bin
Normal file
BIN
bios/Commodore/Plus4/kernal.318004-03.bin
Normal file
Binary file not shown.
BIN
bios/Commodore/Plus4/kernal.318004-04.bin
Normal file
BIN
bios/Commodore/Plus4/kernal.318004-04.bin
Normal file
Binary file not shown.
BIN
bios/Commodore/VIC-20/characters-danish.bin
Normal file
BIN
bios/Commodore/VIC-20/characters-danish.bin
Normal file
Binary file not shown.
BIN
bios/Commodore/VIC-20/characters-japanese.bin
Normal file
BIN
bios/Commodore/VIC-20/characters-japanese.bin
Normal file
Binary file not shown.
BIN
bios/Commodore/VIC-20/characters-swedish.bin
Normal file
BIN
bios/Commodore/VIC-20/characters-swedish.bin
Normal file
Binary file not shown.
BIN
bios/Commodore/VIC-20/kernel-danish.bin
Normal file
BIN
bios/Commodore/VIC-20/kernel-danish.bin
Normal file
Binary file not shown.
BIN
bios/Commodore/VIC-20/kernel-japanese.bin
Normal file
BIN
bios/Commodore/VIC-20/kernel-japanese.bin
Normal file
Binary file not shown.
BIN
bios/Commodore/VIC-20/kernel-swedish.bin
Normal file
BIN
bios/Commodore/VIC-20/kernel-swedish.bin
Normal file
Binary file not shown.
BIN
bios/Elektronika/BK/bk0010.zip
Normal file
BIN
bios/Elektronika/BK/bk0010.zip
Normal file
Binary file not shown.
Binary file not shown.
Binary file not shown.
BIN
bios/IBM/PC Compatible/PCCompatible/ibm-basic-1.10.rom
Normal file
BIN
bios/IBM/PC Compatible/PCCompatible/ibm-basic-1.10.rom
Normal file
Binary file not shown.
BIN
bios/Microsoft/MSX/MSX2R2.ROM
Normal file
BIN
bios/Microsoft/MSX/MSX2R2.ROM
Normal file
Binary file not shown.
BIN
bios/NEC/PC-8001/pc8001.zip
Normal file
BIN
bios/NEC/PC-8001/pc8001.zip
Normal file
Binary file not shown.
BIN
bios/Nintendo/GameCube/Load/Firmware/rtl_bt/rtl8723a_fw.bin
Normal file
BIN
bios/Nintendo/GameCube/Load/Firmware/rtl_bt/rtl8723a_fw.bin
Normal file
Binary file not shown.
BIN
bios/Nintendo/GameCube/Load/Firmware/rtl_bt/rtl8723b_fw.bin
Normal file
BIN
bios/Nintendo/GameCube/Load/Firmware/rtl_bt/rtl8723b_fw.bin
Normal file
Binary file not shown.
BIN
bios/Nintendo/GameCube/Load/Firmware/rtl_bt/rtl8723d_fw.bin
Normal file
BIN
bios/Nintendo/GameCube/Load/Firmware/rtl_bt/rtl8723d_fw.bin
Normal file
Binary file not shown.
BIN
bios/Nintendo/GameCube/Load/Firmware/rtl_bt/rtl8761a_fw.bin
Normal file
BIN
bios/Nintendo/GameCube/Load/Firmware/rtl_bt/rtl8761a_fw.bin
Normal file
Binary file not shown.
BIN
bios/Nintendo/GameCube/Load/Firmware/rtl_bt/rtl8761bu_fw.bin
Normal file
BIN
bios/Nintendo/GameCube/Load/Firmware/rtl_bt/rtl8761bu_fw.bin
Normal file
Binary file not shown.
BIN
bios/Nintendo/GameCube/Load/Firmware/rtl_bt/rtl8821a_fw.bin
Normal file
BIN
bios/Nintendo/GameCube/Load/Firmware/rtl_bt/rtl8821a_fw.bin
Normal file
Binary file not shown.
BIN
bios/Nintendo/GameCube/Load/Firmware/rtl_bt/rtl8821c_fw.bin
Normal file
BIN
bios/Nintendo/GameCube/Load/Firmware/rtl_bt/rtl8821c_fw.bin
Normal file
Binary file not shown.
BIN
bios/Nintendo/GameCube/Load/Firmware/rtl_bt/rtl8822b_fw.bin
Normal file
BIN
bios/Nintendo/GameCube/Load/Firmware/rtl_bt/rtl8822b_fw.bin
Normal file
Binary file not shown.
BIN
bios/Nintendo/GameCube/Load/Firmware/rtl_bt/rtl8822cu_fw.bin
Normal file
BIN
bios/Nintendo/GameCube/Load/Firmware/rtl_bt/rtl8822cu_fw.bin
Normal file
Binary file not shown.
BIN
bios/Nintendo/GameCube/Load/Firmware/rtl_bt/rtl8851bu_fw.bin
Normal file
BIN
bios/Nintendo/GameCube/Load/Firmware/rtl_bt/rtl8851bu_fw.bin
Normal file
Binary file not shown.
BIN
bios/Nintendo/GameCube/Load/Firmware/rtl_bt/rtl8852au_fw.bin
Normal file
BIN
bios/Nintendo/GameCube/Load/Firmware/rtl_bt/rtl8852au_fw.bin
Normal file
Binary file not shown.
BIN
bios/Nintendo/GameCube/Load/Firmware/rtl_bt/rtl8852btu_fw.bin
Normal file
BIN
bios/Nintendo/GameCube/Load/Firmware/rtl_bt/rtl8852btu_fw.bin
Normal file
Binary file not shown.
BIN
bios/Nintendo/GameCube/Load/Firmware/rtl_bt/rtl8852bu_fw.bin
Normal file
BIN
bios/Nintendo/GameCube/Load/Firmware/rtl_bt/rtl8852bu_fw.bin
Normal file
Binary file not shown.
BIN
bios/Nintendo/GameCube/Load/Firmware/rtl_bt/rtl8852cu_fw.bin
Normal file
BIN
bios/Nintendo/GameCube/Load/Firmware/rtl_bt/rtl8852cu_fw.bin
Normal file
Binary file not shown.
BIN
bios/Nintendo/GameCube/Load/Firmware/rtl_bt/rtl8922au_fw.bin
Normal file
BIN
bios/Nintendo/GameCube/Load/Firmware/rtl_bt/rtl8922au_fw.bin
Normal file
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
BIN
bios/Sega/Master System/MasterSystem/japanese-bios.sms
Normal file
BIN
bios/Sega/Master System/MasterSystem/japanese-bios.sms
Normal file
Binary file not shown.
Binary file not shown.
BIN
bios/Tangerine/Oric/Oric/microdisc.rom
Normal file
BIN
bios/Tangerine/Oric/Oric/microdisc.rom
Normal file
Binary file not shown.
BIN
bios/Tangerine/Oric/microdisc.rom
Normal file
BIN
bios/Tangerine/Oric/microdisc.rom
Normal file
Binary file not shown.
BIN
bios/Videoton/TVC/tvc64.zip
Normal file
BIN
bios/Videoton/TVC/tvc64.zip
Normal file
Binary file not shown.
1105
database.json
1105
database.json
File diff suppressed because it is too large
Load Diff
@@ -5,7 +5,7 @@ source: "https://github.com/libretro/FBNeo"
|
||||
upstream: "https://github.com/finalburnneo/FBNeo"
|
||||
logo: "https://raw.githubusercontent.com/finalburnneo/FBNeo/master/projectfiles/xcode/Emulator/Assets.xcassets/AppIcon.appiconset/icon_512.png"
|
||||
profiled_date: "2026-03-23"
|
||||
core_version: "v1.0.0.03"
|
||||
core_version: "v1.0.0.2"
|
||||
display_name: "Arcade (FinalBurn Neo)"
|
||||
cores:
|
||||
- fbneo
|
||||
@@ -33,6 +33,8 @@ systems:
|
||||
- taito-cchip
|
||||
- ym2608
|
||||
|
||||
archive_prefix: fbneo
|
||||
|
||||
data_directories:
|
||||
- ref: fbneo-cheats
|
||||
destination: fbneo/cheats
|
||||
@@ -1485,3 +1487,94 @@ files:
|
||||
size: 155000000
|
||||
note: "Two Tigers with Journey CD audio samples (2 WAVs)"
|
||||
source_ref: "src/burn/snd/samples.cpp"
|
||||
|
||||
- name: "coleco.rom"
|
||||
archive: cv_coleco.zip
|
||||
required: true
|
||||
size: 8192
|
||||
crc32: "3aa93ef3"
|
||||
source_ref: "src/burn/drv/coleco/d_coleco.cpp:1079"
|
||||
|
||||
- name: "colecoa.rom"
|
||||
archive: cv_coleco.zip
|
||||
required: true
|
||||
size: 8192
|
||||
crc32: "39bb16fc"
|
||||
source_ref: "src/burn/drv/coleco/d_coleco.cpp:1079"
|
||||
|
||||
- name: "svi603.rom"
|
||||
archive: cv_coleco.zip
|
||||
required: true
|
||||
size: 8192
|
||||
crc32: "19e91b82"
|
||||
source_ref: "src/burn/drv/coleco/d_coleco.cpp:1079"
|
||||
|
||||
- name: "czz50.rom"
|
||||
archive: cv_coleco.zip
|
||||
required: true
|
||||
size: 16384
|
||||
crc32: "4999abc6"
|
||||
source_ref: "src/burn/drv/coleco/d_coleco.cpp:1079"
|
||||
|
||||
- name: "fdsbios.nes"
|
||||
archive: fds_fdsbios.zip
|
||||
required: true
|
||||
size: 8192
|
||||
crc32: "5e607dcf"
|
||||
source_ref: "src/burn/drv/nes/d_nes.cpp:523"
|
||||
|
||||
- name: "st010.bin"
|
||||
archive: snes_st010.zip
|
||||
required: true
|
||||
size: 69632
|
||||
crc32: "aa11ee2d"
|
||||
source_ref: "src/burn/drv/snes/d_snes.cpp:577"
|
||||
|
||||
- name: "st011.bin"
|
||||
archive: snes_st011.zip
|
||||
required: true
|
||||
size: 69632
|
||||
crc32: "34d2952c"
|
||||
source_ref: "src/burn/drv/snes/d_snes.cpp:596"
|
||||
|
||||
- name: "msx.rom"
|
||||
archive: msx_msx.zip
|
||||
required: true
|
||||
size: 32768
|
||||
crc32: "a317e6b4"
|
||||
source_ref: "src/burn/drv/msx/d_msx.cpp:1781"
|
||||
|
||||
- name: "msxj.rom"
|
||||
archive: msx_msx.zip
|
||||
required: true
|
||||
size: 32768
|
||||
crc32: "071135e0"
|
||||
source_ref: "src/burn/drv/msx/d_msx.cpp:1781"
|
||||
|
||||
- name: "kanji.rom"
|
||||
archive: msx_msx.zip
|
||||
required: true
|
||||
size: 262144
|
||||
crc32: "1f6406fb"
|
||||
source_ref: "src/burn/drv/msx/d_msx.cpp:1781"
|
||||
|
||||
- name: "supernova_modbios-japan.u10"
|
||||
archive: skns.zip
|
||||
required: true
|
||||
size: 524288
|
||||
crc32: "b8d3190c"
|
||||
source_ref: "src/burn/drv/pst90s/d_suprnova.cpp:1865"
|
||||
|
||||
- name: "supernova-modbios-korea.u10"
|
||||
archive: skns.zip
|
||||
required: true
|
||||
size: 524288
|
||||
crc32: "1d90517c"
|
||||
source_ref: "src/burn/drv/pst90s/d_suprnova.cpp:1865"
|
||||
|
||||
- name: "mcu"
|
||||
archive: bubsys.zip
|
||||
required: true
|
||||
size: 4096
|
||||
crc32: "00000000"
|
||||
source_ref: "src/burn/drv/konami/d_nemesis.cpp:4539"
|
||||
|
||||
@@ -32,6 +32,8 @@ notes: |
|
||||
|
||||
need_fullpath=false, extensions=zip|7z, savestate=deterministic.
|
||||
|
||||
archive_prefix: fbneo
|
||||
|
||||
files:
|
||||
- name: "hiscore.dat"
|
||||
path: "fbneo/hiscore.dat"
|
||||
|
||||
@@ -38,6 +38,8 @@ notes: |
|
||||
|
||||
need_fullpath=false, extensions=zip|7z|cue|ccd, savestate=deterministic.
|
||||
|
||||
archive_prefix: fbneo
|
||||
|
||||
files:
|
||||
# -------------------------------------------------------
|
||||
# Neo Geo MVS/AES (neogeo.zip) — 68K BIOS ROMs
|
||||
|
||||
@@ -38,11 +38,14 @@ notes: |
|
||||
Standalone supports MPEG card ROM loading (Video CD card); disabled in
|
||||
libretro port (mpegpath = NULL in libretro.c:1578).
|
||||
|
||||
archive_prefix: kronos
|
||||
|
||||
files:
|
||||
# -----------------------------------------------------------
|
||||
# Saturn BIOS - primary (any region)
|
||||
# -----------------------------------------------------------
|
||||
- name: "saturn_bios.bin"
|
||||
path: "kronos/saturn_bios.bin"
|
||||
system: sega-saturn
|
||||
required: true
|
||||
size: 524288
|
||||
|
||||
@@ -5,6 +5,7 @@
|
||||
emulator: LRPS2
|
||||
type: libretro
|
||||
core_classification: community_fork
|
||||
bios_mode: agnostic
|
||||
source: "https://github.com/libretro/ps2"
|
||||
upstream: "https://github.com/PCSX2/pcsx2"
|
||||
profiled_date: "2026-03-25"
|
||||
|
||||
3412
emulators/mame.yml
3412
emulators/mame.yml
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
@@ -77,11 +77,14 @@ files:
|
||||
source_ref: "src/SPI.cpp:197-211, src/frontend/Util_ROM.cpp:201-217"
|
||||
|
||||
- name: dsi_nand.bin
|
||||
agnostic: true
|
||||
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
|
||||
|
||||
@@ -1,219 +1,74 @@
|
||||
# PCSX2 emulator BIOS profile
|
||||
# Generated from source analysis of https://github.com/PCSX2/pcsx2
|
||||
# Commit analyzed: HEAD as of 2026-03-17
|
||||
|
||||
emulator: PCSX2
|
||||
type: standalone
|
||||
core_classification: official_port
|
||||
bios_mode: agnostic
|
||||
source: "https://github.com/PCSX2/pcsx2"
|
||||
logo: "https://raw.githubusercontent.com/PCSX2/pcsx2/master/pcsx2-qt/resources/icons/PCSX2logo.svg"
|
||||
profiled_date: "2026-03-18"
|
||||
upstream: "https://github.com/PCSX2/pcsx2"
|
||||
cores:
|
||||
- pcsx2
|
||||
profiled_date: "2026-03-30"
|
||||
core_version: "Git"
|
||||
display_name: "Sony - PlayStation 2 (LRPS2)"
|
||||
display_name: "Sony - PlayStation 2 (PCSX2)"
|
||||
systems: [sony-playstation-2]
|
||||
|
||||
bios_directory: "bios/"
|
||||
bios_detection: "romdir" # scans romdir structure inside binary, looks for RESET/ROMVER/EXTINFO entries
|
||||
bios_selection: "automatic" # scans all files in bios dir matching 4-8 MB size, validates via romdir
|
||||
|
||||
validation:
|
||||
method: "romdir_parse"
|
||||
min_size: 4194304 # 4 MB (MIN_BIOS_SIZE = 4 * _1mb)
|
||||
max_size: 8388608 # 8 MB (MAX_BIOS_SIZE = 8 * _1mb)
|
||||
required_entries: ["RESET", "ROMVER"]
|
||||
optional_entries: ["EXTINFO"]
|
||||
note: "Any file in bios/ between 4-8 MB with valid romdir containing RESET+ROMVER is accepted"
|
||||
|
||||
regions:
|
||||
J: {zone: "Japan", id: 0}
|
||||
A: {zone: "USA", id: 1}
|
||||
E: {zone: "Europe", id: 2}
|
||||
H: {zone: "Asia", id: 4}
|
||||
C: {zone: "China", id: 6}
|
||||
T: {zone: "T10K/COH-H", id: 8}
|
||||
X: {zone: "Test", id: 9}
|
||||
P: {zone: "Free", id: 10}
|
||||
notes: |
|
||||
Filename-agnostic BIOS detection. Scans bios/ for any file between 4-8 MB
|
||||
with valid romdir structure (RESET + ROMVER entries). No hash validation.
|
||||
Companion files (.rom1, .rom2, .nvm, .mec) derive paths from selected BIOS.
|
||||
ROM1 (DVD player) and ROM2 (Chinese extension) silently skipped if missing.
|
||||
NVM and MEC auto-created with defaults if missing.
|
||||
|
||||
files:
|
||||
# -- Main BIOS binary (required) --
|
||||
- name: "<user-selected>.bin"
|
||||
pattern: "*"
|
||||
- name: ps2-0230a-20080220.bin
|
||||
required: true
|
||||
size_range: "4MB-8MB"
|
||||
source_ref: "pcsx2/ps2/BiosTools.cpp:258-282"
|
||||
note: >
|
||||
PCSX2 does not mandate a specific filename. It scans the entire bios/ directory
|
||||
for any file between 4-8 MB that contains a valid romdir structure (RESET + ROMVER entries).
|
||||
Common filenames follow the SCPH-XXXXX_BIOS_VYYY_REGION_ZZZ.BIN convention but this is
|
||||
not enforced. The file is loaded into the 4 MB ROM region of EE memory.
|
||||
min_size: 4194304
|
||||
max_size: 8388608
|
||||
validation: [size]
|
||||
source_ref: "pcsx2/ps2/BiosTools.cpp:258-362"
|
||||
note: "Accepts any file 4-8 MB with valid romdir (RESET + ROMVER). Naming convention ps2-VVVVr-YYYYMMDD.bin (version, region, date)."
|
||||
|
||||
# -- ROM1 (optional, DVD player) --
|
||||
- name: "<biosname>.rom1"
|
||||
pattern: "{biosname}.rom1 or {biosbase}.rom1"
|
||||
- name: rom1.bin
|
||||
required: false
|
||||
max_size: 4194304 # 4 MB (Ps2MemSize::Rom1)
|
||||
source_ref: "pcsx2/ps2/BiosTools.cpp:214-241"
|
||||
note: >
|
||||
DVD player ROM. Loaded via LoadExtraRom("rom1"). PCSX2 tries two naming patterns:
|
||||
1) Full bios path + ".rom1" appended (e.g. scph70004.bin.rom1)
|
||||
2) Bios path with extension replaced (e.g. scph70004.rom1)
|
||||
Mapped to EE memory at ROM1 region (0x1FC00000 + 4MB offset).
|
||||
Contains DVD player and region detection data (DVDID).
|
||||
max_size: 4194304
|
||||
source_ref: "pcsx2/ps2/BiosTools.cpp:214-241,366"
|
||||
note: "DVD player ROM. Tries {biospath}.rom1 then {biosbase}.rom1. Silently skipped if missing."
|
||||
|
||||
# -- ROM2 (optional, Chinese ROM extension) --
|
||||
- name: "<biosname>.rom2"
|
||||
pattern: "{biosname}.rom2 or {biosbase}.rom2"
|
||||
- name: ROM2.BIN
|
||||
required: false
|
||||
max_size: 4194304 # 4 MB (Ps2MemSize::Rom2)
|
||||
source_ref: "pcsx2/ps2/BiosTools.cpp:214-241"
|
||||
note: >
|
||||
Chinese ROM extension. Loaded via LoadExtraRom("rom2"). Same naming convention
|
||||
as rom1: tries appended extension first, then replaced extension.
|
||||
Only present on Chinese region consoles.
|
||||
max_size: 4194304
|
||||
source_ref: "pcsx2/ps2/BiosTools.cpp:214-241,367"
|
||||
note: "Chinese ROM extension. Same naming convention as rom1. Only present on Chinese region consoles."
|
||||
|
||||
# -- NVM / NVRAM (optional, auto-created) --
|
||||
- name: "<biosname>.nvm"
|
||||
pattern: "{biosbase}.nvm"
|
||||
- name: EROM.BIN
|
||||
required: false
|
||||
source_ref: "pcsx2/ps2/BiosTools.cpp"
|
||||
note: "Extended ROM. Present in some BIOS dumps but not loaded by PCSX2 code via LoadExtraRom."
|
||||
path: null
|
||||
|
||||
- name: eeprom.dat
|
||||
required: false
|
||||
hle_fallback: true
|
||||
size: 1024 # NVRAM_SIZE = 1024 bytes
|
||||
source_ref: "pcsx2/CDVD/CDVD.cpp:160-238"
|
||||
note: >
|
||||
EEPROM / NVRAM data. Path derived from BiosPath with extension replaced to ".nvm"
|
||||
(cdvdGetNVRAMPath). Contains console configuration: language, timezone, iLink ID,
|
||||
region parameters, OSD settings. Auto-created with defaults if missing.
|
||||
Two NVM layouts exist: v0.00+ (biosVer 0x000) and v1.70+ (biosVer 0x146).
|
||||
|
||||
# -- MEC file (optional, auto-created) --
|
||||
- name: "<biosname>.mec"
|
||||
pattern: "{biosbase}.mec"
|
||||
required: false
|
||||
hle_fallback: true
|
||||
size: 4 # u32 s_mecha_version
|
||||
source_ref: "pcsx2/CDVD/CDVD.cpp:190-204"
|
||||
note: >
|
||||
Mechacon (mechanism controller) version file. 4 bytes containing the mecha version
|
||||
as a u32 value. Auto-created with DEFAULT_MECHA_VERSION (0x00020603) if missing.
|
||||
Path derived from BiosPath with extension replaced to ".mec".
|
||||
|
||||
# -- IRX override (optional, advanced) --
|
||||
- name: "<custom>.irx"
|
||||
pattern: "*.irx"
|
||||
required: false
|
||||
source_ref: "pcsx2/ps2/BiosTools.cpp:243-256,384-385"
|
||||
note: >
|
||||
Custom IOP Reboot eXecutable module. Loaded into ROM at offset 0x3C0000 if
|
||||
EmuConfig.CurrentIRX is set (path length > 3). Injected at IOP reset (PC=0x1630).
|
||||
Used for debugging/development, not needed for normal operation.
|
||||
|
||||
# -- DEV9 EEPROM (optional, network adapter) --
|
||||
- name: "eeprom.dat"
|
||||
required: false
|
||||
hle_fallback: true
|
||||
size: 64 # 64 bytes, mmap'd
|
||||
size: 64
|
||||
source_ref: "pcsx2/DEV9/DEV9.cpp:110-160"
|
||||
note: >
|
||||
DEV9 (network adapter / HDD expansion bay) EEPROM data. Fixed filename "eeprom.dat"
|
||||
opened from working directory. Contains network adapter configuration.
|
||||
Falls back to built-in defaults if file not found. Only relevant when using
|
||||
DEV9 features (online play, HDD).
|
||||
note: "DEV9 network adapter EEPROM. Falls back to built-in defaults if missing."
|
||||
|
||||
common_bios_filenames:
|
||||
# Japan
|
||||
- "SCPH-10000_BIOS_V1_JAP_100.BIN"
|
||||
- "SCPH-15000_BIOS_V3_JAP_120.BIN"
|
||||
- "SCPH-30000_BIOS_V4_JAP_150.BIN"
|
||||
- "SCPH-30001R_BIOS_V7_JAP_160.BIN"
|
||||
- "SCPH-30004R_BIOS_V7_JAP_160.BIN"
|
||||
- "SCPH-35000_BIOS_V5_JAP_160.BIN"
|
||||
- "SCPH-50000_BIOS_V9_JAP_170.BIN"
|
||||
- "SCPH-50004_BIOS_V9_JAP_170.BIN"
|
||||
- "SCPH-70000_BIOS_V12_JAP_200.BIN"
|
||||
- "SCPH-75000_BIOS_V14_JAP_220.BIN"
|
||||
- "SCPH-77000_BIOS_V14_JAP_220.BIN"
|
||||
- "SCPH-90000_BIOS_V18_JAP_230.BIN"
|
||||
# USA
|
||||
- "SCPH-30001_BIOS_V4_USA_150.BIN"
|
||||
- "SCPH-39001_BIOS_V6_USA_160.BIN"
|
||||
- "SCPH-50001_BIOS_V9_USA_170.BIN"
|
||||
- "SCPH-50003_BIOS_V9_USA_170.BIN"
|
||||
- "SCPH-70002_BIOS_V12_USA_200.BIN"
|
||||
- "SCPH-70004_BIOS_V12_USA_200.BIN"
|
||||
- "SCPH-70012_BIOS_V12_USA_200.BIN"
|
||||
- "SCPH-75001_BIOS_V14_USA_220.BIN"
|
||||
- "SCPH-77001_BIOS_V14_USA_220.BIN"
|
||||
- "SCPH-90001_BIOS_V18_USA_230.BIN"
|
||||
# Europe
|
||||
- "SCPH-30002_BIOS_V4_EUR_150.BIN"
|
||||
- "SCPH-30003_BIOS_V4_EUR_150.BIN"
|
||||
- "SCPH-30004_BIOS_V4_EUR_150.BIN"
|
||||
- "SCPH-39002_BIOS_V6_EUR_160.BIN"
|
||||
- "SCPH-39003_BIOS_V6_EUR_160.BIN"
|
||||
- "SCPH-39004_BIOS_V6_EUR_160.BIN"
|
||||
- "SCPH-50002_BIOS_V9_EUR_170.BIN"
|
||||
- "SCPH-50004_BIOS_V9_EUR_170.BIN"
|
||||
- "SCPH-70002_BIOS_V12_EUR_200.BIN"
|
||||
- "SCPH-70003_BIOS_V12_EUR_200.BIN"
|
||||
- "SCPH-70004_BIOS_V12_EUR_200.BIN"
|
||||
- "SCPH-70008_BIOS_V12_EUR_200.BIN"
|
||||
- "SCPH-75002_BIOS_V14_EUR_220.BIN"
|
||||
- "SCPH-75003_BIOS_V14_EUR_220.BIN"
|
||||
- "SCPH-75004_BIOS_V14_EUR_220.BIN"
|
||||
- "SCPH-77002_BIOS_V14_EUR_220.BIN"
|
||||
- "SCPH-77003_BIOS_V14_EUR_220.BIN"
|
||||
- "SCPH-77004_BIOS_V14_EUR_220.BIN"
|
||||
- "SCPH-90002_BIOS_V18_EUR_230.BIN"
|
||||
- "SCPH-90003_BIOS_V18_EUR_230.BIN"
|
||||
- "SCPH-90004_BIOS_V18_EUR_230.BIN"
|
||||
# Asia
|
||||
- "SCPH-50009_BIOS_V9_HK_170.BIN"
|
||||
- "SCPH-70005_BIOS_V12_HK_200.BIN"
|
||||
- "SCPH-70006_BIOS_V12_HK_200.BIN"
|
||||
- "SCPH-70008_BIOS_V12_HK_200.BIN"
|
||||
# China
|
||||
- "SCPH-50009_BIOS_V9_CHN_170.BIN"
|
||||
- "SCPH-70006_BIOS_V12_CHN_200.BIN"
|
||||
- name: GameIndex.yaml
|
||||
path: pcsx2/resources/GameIndex.yaml
|
||||
required: false
|
||||
mode: libretro
|
||||
source_ref: "pcsx2/GameDatabase.cpp:48,880"
|
||||
note: "Game compatibility database. OSD warning if missing."
|
||||
|
||||
memory_layout:
|
||||
ROM: {offset: "0x1FC00000", size: "4 MB", purpose: "Main BIOS binary"}
|
||||
ROM1: {offset: "ROM + 4MB", size: "4 MB", purpose: "DVD player"}
|
||||
ROM2: {offset: "ROM + 8MB", size: "4 MB", purpose: "Chinese ROM extension"}
|
||||
- name: cheats_ws.zip
|
||||
path: pcsx2/resources/cheats_ws.zip
|
||||
required: false
|
||||
mode: libretro
|
||||
source_ref: "pcsx2/VMManager.cpp:340-353"
|
||||
note: "Widescreen patches archive."
|
||||
|
||||
nvm_layout:
|
||||
format_0:
|
||||
applies_to: "BIOS v0.00+"
|
||||
biosVer: 0x000
|
||||
config0: 0x280
|
||||
config1: 0x300
|
||||
config2: 0x200
|
||||
consoleId: 0x1C8
|
||||
ilinkId: 0x1C0
|
||||
modelNum: 0x1A0
|
||||
regparams: 0x180
|
||||
mac: 0x198
|
||||
format_1:
|
||||
applies_to: "BIOS v1.70+"
|
||||
biosVer: 0x146
|
||||
config0: 0x270
|
||||
config1: 0x2B0
|
||||
config2: 0x200
|
||||
consoleId: 0x1F0
|
||||
ilinkId: 0x1E0
|
||||
modelNum: 0x1B0
|
||||
regparams: 0x180
|
||||
mac: 0x198
|
||||
|
||||
notes: |
|
||||
PCSX2 is filename-agnostic for the main BIOS. Detection relies on romdir structure
|
||||
parsing inside the binary itself, not on filename or extension. Any file between 4-8 MB
|
||||
with a valid romdir (containing at least RESET and ROMVER entries) is accepted.
|
||||
|
||||
The ROMVER entry encodes: version (2+2 digits), region letter, console/devel flag,
|
||||
build date (YYYYMMDD), and is used to determine the BIOS description and region.
|
||||
|
||||
Companion files (.nvm, .mec) are auto-created with sane defaults if missing.
|
||||
ROM1/ROM2 are silently skipped if not found - only the main BIOS binary is strictly required.
|
||||
|
||||
PCSX2 no longer ships as a libretro core in official builds. The standalone emulator
|
||||
is the primary distribution channel.
|
||||
|
||||
Devel console BIOSes (< ~2.3 MB) lack the OSD and are handled with NoOSD=true flag.
|
||||
- name: cheats_ni.zip
|
||||
path: pcsx2/resources/cheats_ni.zip
|
||||
required: false
|
||||
mode: libretro
|
||||
source_ref: "pcsx2/VMManager.cpp:375-388"
|
||||
note: "No-interlacing patches archive."
|
||||
|
||||
@@ -1,32 +1,21 @@
|
||||
# RPCS3 emulator firmware profile
|
||||
# Generated from source analysis of https://github.com/RPCS3/rpcs3
|
||||
# Commit analyzed: HEAD as of 2026-03-17
|
||||
|
||||
emulator: RPCS3
|
||||
type: standalone
|
||||
core_classification: official_port
|
||||
source: "https://github.com/RPCS3/rpcs3"
|
||||
logo: "https://raw.githubusercontent.com/RPCS3/rpcs3/master/rpcs3/rpcs3.svg"
|
||||
profiled_date: "2026-03-18"
|
||||
upstream: "https://github.com/RPCS3/rpcs3"
|
||||
cores:
|
||||
- rpcs3
|
||||
profiled_date: "2026-03-30"
|
||||
core_version: "0.0.35"
|
||||
display_name: "RPCS3 (PS3)"
|
||||
display_name: "Sony - PlayStation 3 (RPCS3)"
|
||||
systems: [sony-playstation-3]
|
||||
|
||||
firmware_file: "PS3UPDAT.PUP"
|
||||
firmware_source: "https://www.playstation.com/en-us/support/hardware/ps3/system-software/"
|
||||
firmware_detection: "pup_header" # validates PUP magic bytes, HMAC-SHA1 hash per entry
|
||||
firmware_install: "extracts dev_flash_* TAR packages from PUP into dev_flash/"
|
||||
|
||||
validation:
|
||||
method: "pup_object"
|
||||
magic: "SCEUF"
|
||||
hash_algo: "HMAC-SHA1"
|
||||
source_ref: "rpcs3/Loader/PUP.cpp:8-114"
|
||||
note: "PUP file is validated by magic header, file count, HMAC-SHA1 per entry against PUP_KEY"
|
||||
|
||||
firmware_version:
|
||||
path: "dev_flash/vsh/etc/version.txt"
|
||||
source_ref: "rpcs3/util/sysinfo.cpp:686"
|
||||
note: "Read at startup, displayed as 'Firmware version: X.XX'. Missing = 'Missing Firmware'"
|
||||
files:
|
||||
- name: PS3UPDAT.PUP
|
||||
required: true
|
||||
storage: large_file
|
||||
source_ref: "rpcs3/Loader/PUP.cpp:23-77"
|
||||
note: "PUP firmware package. Validated via SCEUF magic + HMAC-SHA1 per entry. Extracted to dev_flash/ at install time."
|
||||
|
||||
# dev_flash filesystem layout extracted from PUP
|
||||
dev_flash:
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
1976
install/bizhawk.json
1976
install/bizhawk.json
File diff suppressed because it is too large
Load Diff
2533
install/emudeck.json
2533
install/emudeck.json
File diff suppressed because it is too large
Load Diff
4338
install/lakka.json
4338
install/lakka.json
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
File diff suppressed because it is too large
Load Diff
26
mkdocs.yml
26
mkdocs.yml
@@ -37,7 +37,11 @@ markdown_extensions:
|
||||
- toc:
|
||||
permalink: true
|
||||
- pymdownx.details
|
||||
- pymdownx.superfences
|
||||
- pymdownx.superfences:
|
||||
custom_fences:
|
||||
- name: mermaid
|
||||
class: mermaid
|
||||
format: !!python/name:pymdownx.superfences.fence_code_format
|
||||
- pymdownx.tabbed:
|
||||
alternate_style: true
|
||||
plugins:
|
||||
@@ -132,7 +136,7 @@ nav:
|
||||
- ZC: systems/zc.md
|
||||
- Emulators:
|
||||
- Overview: emulators/index.md
|
||||
- Official ports (61):
|
||||
- Official ports (63):
|
||||
- amiarcadia: emulators/amiarcadia.md
|
||||
- Amiberry: emulators/amiberry.md
|
||||
- Ardens: emulators/ardens.md
|
||||
@@ -176,9 +180,11 @@ nav:
|
||||
- mGBA: emulators/mgba.md
|
||||
- Mr.Boom: emulators/mrboom.md
|
||||
- Panda3DS: emulators/panda3ds.md
|
||||
- PCSX2: emulators/pcsx2.md
|
||||
- PicoDrive: emulators/picodrive.md
|
||||
- play: emulators/play.md
|
||||
- PPSSPP: emulators/ppsspp.md
|
||||
- RPCS3: emulators/rpcs3.md
|
||||
- Rustation: emulators/rustation.md
|
||||
- RVVM: emulators/rvvm.md
|
||||
- SameBoy: emulators/sameboy.md
|
||||
@@ -428,7 +434,7 @@ nav:
|
||||
- PCSX-ReARMed: emulators/pcsx_rearmed.md
|
||||
- Launchers (1):
|
||||
- Dolphin Launcher: emulators/dolphin_launcher.md
|
||||
- Other (24):
|
||||
- Other (23):
|
||||
- ares: emulators/ares.md
|
||||
- Beetle GBA (Mednafen): emulators/beetle_gba.md
|
||||
- BigPEmu: emulators/bigpemu.md
|
||||
@@ -440,12 +446,11 @@ nav:
|
||||
- Lexaloffle: emulators/lexaloffle.md
|
||||
- Model 2 Emulator: emulators/model2.md
|
||||
- openMSX: emulators/openmsx.md
|
||||
- PCSX2: emulators/pcsx2.md
|
||||
- Redream: emulators/redream.md
|
||||
- RPCS3: emulators/rpcs3.md
|
||||
- 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
|
||||
@@ -457,8 +462,17 @@ nav:
|
||||
- Gap Analysis: gaps.md
|
||||
- Wiki:
|
||||
- Overview: wiki/index.md
|
||||
- Getting started: wiki/getting-started.md
|
||||
- FAQ: wiki/faq.md
|
||||
- Troubleshooting: wiki/troubleshooting.md
|
||||
- Architecture: wiki/architecture.md
|
||||
- Tools: wiki/tools.md
|
||||
- Profiling guide: wiki/profiling.md
|
||||
- Advanced usage: wiki/advanced-usage.md
|
||||
- Verification modes: wiki/verification-modes.md
|
||||
- Data model: wiki/data-model.md
|
||||
- Profiling guide: wiki/profiling.md
|
||||
- Adding a platform: wiki/adding-a-platform.md
|
||||
- Adding a scraper: wiki/adding-a-scraper.md
|
||||
- Testing guide: wiki/testing-guide.md
|
||||
- Release process: wiki/release-process.md
|
||||
- Contributing: contributing.md
|
||||
|
||||
@@ -1,231 +1,870 @@
|
||||
# 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
|
||||
verification_mode: existence
|
||||
base_destination: system
|
||||
case_insensitive_fs: true
|
||||
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"
|
||||
parse_key: system_directory
|
||||
- os: linux
|
||||
method: config_file
|
||||
config: "$HOME/.config/retroarch/retroarch.cfg"
|
||||
parse_key: system_directory
|
||||
- os: darwin
|
||||
method: config_file
|
||||
config: "$HOME/Library/Application Support/RetroArch/retroarch.cfg"
|
||||
parse_key: system_directory
|
||||
- os: windows
|
||||
method: config_file
|
||||
config: "%APPDATA%\\RetroArch\\retroarch.cfg"
|
||||
parse_key: system_directory
|
||||
|
||||
- os: linux
|
||||
method: config_file
|
||||
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
|
||||
parse_key: system_directory
|
||||
- os: darwin
|
||||
method: config_file
|
||||
config: $HOME/Library/Application Support/RetroArch/retroarch.cfg
|
||||
parse_key: system_directory
|
||||
- os: windows
|
||||
method: config_file
|
||||
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
|
||||
|
||||
- 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
|
||||
|
||||
- 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"
|
||||
|
||||
- os: windows
|
||||
method: path_exists
|
||||
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"
|
||||
parse_key: emulationPath
|
||||
bios_subdir: bios
|
||||
- os: linux
|
||||
method: path_exists
|
||||
path: "$HOME/Emulation/bios"
|
||||
- os: windows
|
||||
method: config_file
|
||||
config: "%APPDATA%\\EmuDeck\\settings.ps1"
|
||||
parse_key: "$emulationPath"
|
||||
bios_subdir: bios
|
||||
- os: linux
|
||||
method: config_file
|
||||
config: $HOME/.config/EmuDeck/settings.sh
|
||||
parse_key: emulationPath
|
||||
bios_subdir: bios
|
||||
- os: linux
|
||||
method: path_exists
|
||||
path: $HOME/Emulation/bios
|
||||
- os: windows
|
||||
method: config_file
|
||||
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"
|
||||
windows:
|
||||
- "%APPDATA%\\yuzu\\keys"
|
||||
- "%APPDATA%\\eden\\keys"
|
||||
- file: aes_keys.txt
|
||||
targets:
|
||||
linux:
|
||||
- "$HOME/Emulation/bios/citra/keys"
|
||||
|
||||
- file: prod.keys
|
||||
targets:
|
||||
linux:
|
||||
- $HOME/.local/share/yuzu/keys
|
||||
- $HOME/.local/share/eden/keys
|
||||
- $HOME/.config/Ryujinx/system
|
||||
windows:
|
||||
- '%APPDATA%\yuzu\keys'
|
||||
- '%APPDATA%\eden\keys'
|
||||
- file: aes_keys.txt
|
||||
targets:
|
||||
linux:
|
||||
- $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
|
||||
|
||||
- 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"
|
||||
|
||||
- os: linux
|
||||
method: path_exists
|
||||
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:
|
||||
detect:
|
||||
- os: linux
|
||||
method: path_exists
|
||||
path: /romm/library/bios
|
||||
|
||||
- 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"
|
||||
|
||||
- os: linux
|
||||
method: path_exists
|
||||
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"
|
||||
- os: linux
|
||||
method: path_exists
|
||||
path: "$HOME/.config/BizHawk/Firmware"
|
||||
- os: windows
|
||||
method: path_exists
|
||||
path: '%USERPROFILE%\BizHawk\Firmware'
|
||||
- os: linux
|
||||
method: path_exists
|
||||
path: $HOME/.config/BizHawk/Firmware
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -4,10 +4,8 @@ dat_version: v1.19.0
|
||||
homepage: https://www.retroarch.com
|
||||
source: https://github.com/libretro/libretro-database/blob/master/dat/System.dat
|
||||
base_destination: system
|
||||
cores: all_libretro
|
||||
hash_type: sha1
|
||||
verification_mode: existence
|
||||
case_insensitive_fs: true
|
||||
systems:
|
||||
3do:
|
||||
files:
|
||||
@@ -102,6 +100,7 @@ systems:
|
||||
md5: 35fa1a1ebaaeea286dc5cd15487c13ea
|
||||
crc32: d5cbc509
|
||||
size: 1048576
|
||||
native_id: 3DO Company, The - 3DO
|
||||
core: opera
|
||||
manufacturer: Panasonic|GoldStar|Sanyo
|
||||
docs: https://docs.libretro.com/library/opera/
|
||||
@@ -135,6 +134,7 @@ systems:
|
||||
md5: 25629dfe870d097469c217b95fdc1c95
|
||||
crc32: 1fe22ecd
|
||||
size: 16384
|
||||
native_id: Amstrad - CPC
|
||||
arcade:
|
||||
files:
|
||||
- name: bubsys.zip
|
||||
@@ -249,6 +249,10 @@ systems:
|
||||
- name: aes.zip
|
||||
destination: aes.zip
|
||||
required: true
|
||||
native_id: Arcade
|
||||
core: fbneo
|
||||
manufacturer: Various
|
||||
docs: https://docs.libretro.com/library/fbneo/
|
||||
data_directories:
|
||||
- ref: fbneo-hiscore
|
||||
destination: ''
|
||||
@@ -256,9 +260,6 @@ systems:
|
||||
destination: fbneo
|
||||
- ref: fbneo-samples
|
||||
destination: fbneo
|
||||
core: fbneo
|
||||
manufacturer: Various
|
||||
docs: https://docs.libretro.com/library/fbneo/
|
||||
atari-400-800:
|
||||
files:
|
||||
- name: ATARIBAS.ROM
|
||||
@@ -303,6 +304,7 @@ systems:
|
||||
md5: d7eb37aec6960cba36bc500e0e5d00bc
|
||||
crc32: bdca01fb
|
||||
size: 8192
|
||||
native_id: Atari - 400-800
|
||||
atari-5200:
|
||||
files:
|
||||
- name: 5200.rom
|
||||
@@ -312,6 +314,7 @@ systems:
|
||||
md5: 281f20ea4320404ec820fb7ec0693b38
|
||||
crc32: 4248d3e3
|
||||
size: 2048
|
||||
native_id: Atari - 5200
|
||||
core: a5200
|
||||
manufacturer: Atari
|
||||
docs: https://docs.libretro.com/library/a5200/
|
||||
@@ -331,6 +334,7 @@ systems:
|
||||
md5: 0763f1ffb006ddbe32e52d497ee848ae
|
||||
crc32: 5d13730c
|
||||
size: 4096
|
||||
native_id: Atari - 7800
|
||||
core: prosystem
|
||||
manufacturer: Atari
|
||||
docs: https://docs.libretro.com/library/prosystem/
|
||||
@@ -343,6 +347,7 @@ systems:
|
||||
md5: fcd403db69f54290b51035d82f835e7b
|
||||
crc32: 0d973c9d
|
||||
size: 512
|
||||
native_id: Atari - Lynx
|
||||
core: handy
|
||||
manufacturer: Atari
|
||||
docs: https://docs.libretro.com/library/handy/
|
||||
@@ -355,6 +360,7 @@ systems:
|
||||
md5: c1c57ce48e8ee4135885cee9e63a68a2
|
||||
crc32: d3c32283
|
||||
size: 196608
|
||||
native_id: Atari - ST
|
||||
core: hatari
|
||||
manufacturer: Atari
|
||||
docs: https://docs.libretro.com/library/hatari/
|
||||
@@ -376,6 +382,7 @@ systems:
|
||||
- name: bioscv.rom
|
||||
destination: bioscv.rom
|
||||
required: true
|
||||
native_id: Coleco - ColecoVision
|
||||
commodore-amiga:
|
||||
files:
|
||||
- name: kick33180.A500
|
||||
@@ -462,6 +469,7 @@ systems:
|
||||
md5: bb72565701b1b6faece07d68ea5da639
|
||||
crc32: 87746be2
|
||||
size: 524288
|
||||
native_id: Commodore - Amiga
|
||||
core: puae
|
||||
manufacturer: Commodore
|
||||
docs: https://docs.libretro.com/library/puae/
|
||||
@@ -510,6 +518,7 @@ systems:
|
||||
destination: scpu-dos-2.04.bin
|
||||
required: true
|
||||
md5: b2869f8678b8b274227f35aad26ba509
|
||||
native_id: Commodore - C128
|
||||
core: vice_x128
|
||||
manufacturer: Commodore
|
||||
docs: https://docs.libretro.com/library/vice_x128/
|
||||
@@ -522,6 +531,7 @@ systems:
|
||||
md5: a2e891e330d146c4046c2b622fc31462
|
||||
crc32: 683ed4ad
|
||||
size: 5763199
|
||||
native_id: Dinothawr
|
||||
dos:
|
||||
files:
|
||||
- name: MT32_CONTROL.ROM
|
||||
@@ -552,6 +562,7 @@ systems:
|
||||
md5: 08cdcfa0ed93e9cb16afa76e6ac5f0a4
|
||||
crc32: 4b961eba
|
||||
size: 1048576
|
||||
native_id: DOS
|
||||
elektronika-bk:
|
||||
files:
|
||||
- name: B11M_BOS.ROM
|
||||
@@ -610,6 +621,7 @@ systems:
|
||||
md5: 95f8c41c6abf7640e35a6a03cecebd01
|
||||
crc32: 26c6e8a0
|
||||
size: 8192
|
||||
native_id: Elektronika - BK-0010/BK-0011(M)
|
||||
enterprise-64-128:
|
||||
files:
|
||||
- name: hun.rom
|
||||
@@ -696,6 +708,7 @@ systems:
|
||||
md5: 55af78f877a21ca45eb2df68a74fcc60
|
||||
crc32: c099a5e3
|
||||
size: 65536
|
||||
native_id: Enterprise - 64/128
|
||||
includes:
|
||||
- ep128emu
|
||||
epoch-scv:
|
||||
@@ -707,6 +720,7 @@ systems:
|
||||
md5: 635a978fd40db9a18ee44eff449fc126
|
||||
crc32: 7ac06182
|
||||
size: 4096
|
||||
native_id: EPOCH/YENO Super Cassette Vision
|
||||
fairchild-channel-f:
|
||||
files:
|
||||
- name: sl31253.bin
|
||||
@@ -730,6 +744,7 @@ systems:
|
||||
md5: 95d339631d867c8f1d15a5f2ec26069d
|
||||
crc32: 015c1e38
|
||||
size: 1024
|
||||
native_id: Fairchild Channel F
|
||||
doom:
|
||||
files:
|
||||
- name: prboom.wad
|
||||
@@ -739,6 +754,7 @@ systems:
|
||||
md5: 72ae1b47820fcc93cc0df9c428d0face
|
||||
crc32: a5751b99
|
||||
size: 143312
|
||||
native_id: Id Software - Doom
|
||||
j2me:
|
||||
files:
|
||||
- name: freej2me-lr.jar
|
||||
@@ -762,6 +778,7 @@ systems:
|
||||
md5: 29a92d0867da2917275b7c6c805d256f
|
||||
crc32: ffb98ffa
|
||||
size: 552039
|
||||
native_id: J2ME
|
||||
core: freej2me
|
||||
manufacturer: Java
|
||||
docs: https://docs.libretro.com/library/freej2me/
|
||||
@@ -774,6 +791,7 @@ systems:
|
||||
md5: 66223be1497460f1e60885eeb35e03cc
|
||||
crc32: 4df6d054
|
||||
size: 262144
|
||||
native_id: MacII
|
||||
magnavox-odyssey2:
|
||||
files:
|
||||
- name: o2rom.bin
|
||||
@@ -804,6 +822,7 @@ systems:
|
||||
md5: 279008e4a0db2dc5f1c048853b033828
|
||||
crc32: 11647ca5
|
||||
size: 1024
|
||||
native_id: Magnavox - Odyssey2
|
||||
core: o2em
|
||||
manufacturer: Magnavox|Philips
|
||||
docs: https://docs.libretro.com/library/o2em/
|
||||
@@ -823,6 +842,7 @@ systems:
|
||||
md5: 0cd5946c6473e42e8e4c2137785e427f
|
||||
crc32: 683a4158
|
||||
size: 2048
|
||||
native_id: Mattel - Intellivision
|
||||
data_directories:
|
||||
- ref: freeintv-overlays
|
||||
destination: freeintv_overlays
|
||||
@@ -933,6 +953,7 @@ systems:
|
||||
md5: 279efd1eae0d358eecd4edc7d9adedf3
|
||||
crc32: ab6874f8
|
||||
size: 16640
|
||||
native_id: Microsoft - MSX
|
||||
core: bluemsx
|
||||
manufacturer: Spectravideo|Philips|Al Alamiah|Sony|Sanyo|Mitsubishi|Toshiba|Hitachi|Panasonic|Canon|Casio|Pioneer|Fujitsu|Yamaha|JVC|Kyocera|GoldStar|Samsung|Daewoo|Gradiente|Sharp|Talent|NTT|ACVS/CIEL|DDX|AGE
|
||||
Labs
|
||||
@@ -991,6 +1012,7 @@ systems:
|
||||
md5: 0754f903b52e3b3342202bdafb13efa5
|
||||
crc32: 2b5b75fe
|
||||
size: 262144
|
||||
native_id: NEC - PC Engine - TurboGrafx 16 - SuperGrafx
|
||||
core: mednafen_pce_fast
|
||||
manufacturer: NEC
|
||||
docs: https://docs.libretro.com/library/mednafen_pce_fast/
|
||||
@@ -1073,6 +1095,7 @@ systems:
|
||||
md5: 524473c1a5a03b17e21d86a0408ff827
|
||||
crc32: fe9f57f2
|
||||
size: 16384
|
||||
native_id: NEC - PC-98
|
||||
core: np2kai
|
||||
manufacturer: NEC
|
||||
docs: https://docs.libretro.com/library/np2kai/
|
||||
@@ -1115,6 +1138,7 @@ systems:
|
||||
md5: e2fb7c7220e3a7838c2dd7e401a7f3d8
|
||||
crc32: 236102c9
|
||||
size: 1048576
|
||||
native_id: NEC - PC-FX
|
||||
core: mednafen_pcfx
|
||||
manufacturer: NEC
|
||||
docs: https://docs.libretro.com/library/mednafen_pcfx/
|
||||
@@ -1134,6 +1158,7 @@ systems:
|
||||
md5: 7f98d77d7a094ad7d069b74bd553ec98
|
||||
crc32: 4c514089
|
||||
size: 24592
|
||||
native_id: Nintendo - Famicom Disk System
|
||||
nintendo-gb:
|
||||
files:
|
||||
- name: dmg_boot.bin
|
||||
@@ -1150,6 +1175,7 @@ systems:
|
||||
md5: 32fbbd84168d3482956eb3c5051637f5
|
||||
crc32: 59c8598e
|
||||
size: 256
|
||||
native_id: Nintendo - Gameboy
|
||||
core: gambatte
|
||||
manufacturer: Nintendo
|
||||
docs: https://docs.libretro.com/library/gambatte/
|
||||
@@ -1162,6 +1188,7 @@ systems:
|
||||
md5: a860e8c0b6d573d191e4ec7db1b1e4f6
|
||||
crc32: '81977335'
|
||||
size: 16384
|
||||
native_id: Nintendo - Game Boy Advance
|
||||
core: gpsp
|
||||
manufacturer: Nintendo
|
||||
docs: https://docs.libretro.com/library/gpsp/
|
||||
@@ -1181,6 +1208,7 @@ systems:
|
||||
md5: dbfce9db9deaa2567f6a84fde55f9680
|
||||
crc32: 41884e46
|
||||
size: 2304
|
||||
native_id: Nintendo - Gameboy Color
|
||||
nintendo-gamecube:
|
||||
files:
|
||||
- name: gc-dvd-20010608.bin
|
||||
@@ -1274,6 +1302,7 @@ systems:
|
||||
- name: font_japanese.bin
|
||||
destination: dolphin-emu/Sys/GC/font_japanese.bin
|
||||
required: false
|
||||
native_id: Nintendo - GameCube
|
||||
core: dolphin
|
||||
manufacturer: Nintendo
|
||||
docs: https://docs.libretro.com/library/dolphin/
|
||||
@@ -1289,6 +1318,7 @@ systems:
|
||||
md5: 8d3d9f294b6e174bc7b1d2fd1c727530
|
||||
crc32: 7f933ce2
|
||||
size: 4194304
|
||||
native_id: Nintendo - Nintendo 64DD
|
||||
nintendo-ds:
|
||||
files:
|
||||
- name: bios7.bin
|
||||
@@ -1324,6 +1354,7 @@ systems:
|
||||
- name: dsi_nand.bin
|
||||
destination: dsi_nand.bin
|
||||
required: true
|
||||
native_id: Nintendo - Nintendo DS
|
||||
core: desmume
|
||||
manufacturer: Nintendo
|
||||
docs: https://docs.libretro.com/library/desmume/
|
||||
@@ -1332,10 +1363,11 @@ systems:
|
||||
- name: NstDatabase.xml
|
||||
destination: NstDatabase.xml
|
||||
required: true
|
||||
sha1: f92312bae56e29c5bf00a5103105fce78472bf5c
|
||||
md5: 0ee6cbdc6f5c96ce9c8aa5edb59066f4
|
||||
crc32: 0e4d552b
|
||||
sha1: 26322f182540211e9b5e3647675b7c593706ae2b
|
||||
md5: 7bfe8c0540ed4bd6a0f1e2a0f0118ced
|
||||
crc32: ebb2196c
|
||||
size: 1009534
|
||||
native_id: Nintendo - Nintendo Entertainment System
|
||||
core: fceumm
|
||||
manufacturer: Nintendo
|
||||
docs: https://docs.libretro.com/library/fceumm/
|
||||
@@ -1348,6 +1380,7 @@ systems:
|
||||
md5: 1e4fb124a3a886865acb574f388c803d
|
||||
crc32: aed3c14d
|
||||
size: 4096
|
||||
native_id: Nintendo - Pokemon Mini
|
||||
nintendo-satellaview:
|
||||
files:
|
||||
- name: BS-X.bin
|
||||
@@ -1371,6 +1404,7 @@ systems:
|
||||
md5: 4ed9648505ab33a4daec93707b16caba
|
||||
crc32: 8c573c7e
|
||||
size: 1048576
|
||||
native_id: Nintendo - Satellaview
|
||||
nintendo-sufami-turbo:
|
||||
files:
|
||||
- name: STBIOS.bin
|
||||
@@ -1380,6 +1414,7 @@ systems:
|
||||
md5: d3a44ba7d42a74d3ac58cb9c14c6a5ca
|
||||
crc32: 9b4ca911
|
||||
size: 262144
|
||||
native_id: Nintendo - SuFami Turbo
|
||||
nintendo-sgb:
|
||||
files:
|
||||
- name: SGB1.sfc
|
||||
@@ -1441,6 +1476,7 @@ systems:
|
||||
- name: sgb.boot.rom
|
||||
destination: sgb.boot.rom
|
||||
required: false
|
||||
native_id: Nintendo - Super Game Boy
|
||||
nintendo-snes:
|
||||
files:
|
||||
- name: cx4.data.rom
|
||||
@@ -1562,6 +1598,7 @@ systems:
|
||||
md5: dda40ccd57390c96e49d30a041f9a9e7
|
||||
crc32: f73d5e10
|
||||
size: 131072
|
||||
native_id: Nintendo - Super Nintendo Entertainment System
|
||||
core: bsnes
|
||||
manufacturer: Nintendo
|
||||
docs: https://docs.libretro.com/library/bsnes/
|
||||
@@ -1588,6 +1625,7 @@ systems:
|
||||
md5: 279008e4a0db2dc5f1c048853b033828
|
||||
crc32: 11647ca5
|
||||
size: 1024
|
||||
native_id: Phillips - Videopac+
|
||||
sega-dreamcast:
|
||||
files:
|
||||
- name: dc_boot.bin
|
||||
@@ -1611,6 +1649,7 @@ systems:
|
||||
md5: 0a93f7940c455905bea6e392dfde92a4
|
||||
crc32: c611b498
|
||||
size: 131072
|
||||
native_id: Sega - Dreamcast
|
||||
core: flycast
|
||||
manufacturer: Sega
|
||||
docs: https://docs.libretro.com/library/flycast/
|
||||
@@ -1668,6 +1707,7 @@ systems:
|
||||
- name: segasp.zip
|
||||
destination: dc/segasp.zip
|
||||
required: true
|
||||
native_id: Sega - Dreamcast-based Arcade
|
||||
sega-game-gear:
|
||||
files:
|
||||
- name: bios.gg
|
||||
@@ -1677,6 +1717,7 @@ systems:
|
||||
md5: 672e104c3be3a238301aceffc3b23fd6
|
||||
crc32: 0ebea9d4
|
||||
size: 1024
|
||||
native_id: Sega - Game Gear
|
||||
sega-master-system:
|
||||
files:
|
||||
- name: bios.sms
|
||||
@@ -1707,6 +1748,7 @@ systems:
|
||||
md5: 840481177270d5642a14ca71ee72844c
|
||||
crc32: 0072ed54
|
||||
size: 8192
|
||||
native_id: Sega - Master System - Mark III
|
||||
sega-mega-cd:
|
||||
files:
|
||||
- name: bios_CD_E.bin
|
||||
@@ -1730,6 +1772,7 @@ systems:
|
||||
md5: 2efd74e3232ff260e371b99f84024f7f
|
||||
crc32: c6d10268
|
||||
size: 131072
|
||||
native_id: Sega - Mega CD - Sega CD
|
||||
sega-mega-drive:
|
||||
files:
|
||||
- name: areplay.bin
|
||||
@@ -1774,6 +1817,7 @@ systems:
|
||||
md5: b4e76e416b887f4e7413ba76fa735f16
|
||||
crc32: 4dcfd55c
|
||||
size: 262144
|
||||
native_id: Sega - Mega Drive - Genesis
|
||||
core: genesis_plus_gx
|
||||
manufacturer: Sega
|
||||
docs: https://docs.libretro.com/library/genesis_plus_gx/
|
||||
@@ -1859,6 +1903,7 @@ systems:
|
||||
- name: stvbios.zip
|
||||
destination: kronos/stvbios.zip
|
||||
required: true
|
||||
native_id: Sega - Saturn
|
||||
core: kronos
|
||||
manufacturer: Sega
|
||||
docs: https://docs.libretro.com/library/kronos/
|
||||
@@ -1880,6 +1925,7 @@ systems:
|
||||
md5: 851e4a5936f17d13f8c39a980cf00d77
|
||||
crc32: e3995a57
|
||||
size: 2048
|
||||
native_id: Sharp - X1
|
||||
core: x1
|
||||
manufacturer: Sharp
|
||||
docs: https://docs.libretro.com/library/x1/
|
||||
@@ -1920,6 +1966,7 @@ systems:
|
||||
md5: 0617321daa182c3f3d6f41fd02fb3275
|
||||
crc32: 00eeb408
|
||||
size: 131072
|
||||
native_id: Sharp - X68000
|
||||
core: px68k
|
||||
manufacturer: Sharp
|
||||
docs: https://docs.libretro.com/library/px68k/
|
||||
@@ -2270,6 +2317,7 @@ systems:
|
||||
md5: 85fede415f4294cc777517d7eada482e
|
||||
crc32: 2cbe8995
|
||||
size: 32768
|
||||
native_id: Sinclair - ZX Spectrum
|
||||
core: fuse
|
||||
manufacturer: Sinclair|Amstrad
|
||||
docs: https://docs.libretro.com/library/fuse/
|
||||
@@ -2352,6 +2400,7 @@ systems:
|
||||
md5: 08ca8b2dba6662e8024f9e789711c6fc
|
||||
crc32: ff3abc59
|
||||
size: 524288
|
||||
native_id: SNK - NeoGeo CD
|
||||
core: neocd
|
||||
manufacturer: SNK
|
||||
docs: https://docs.libretro.com/library/neocd/
|
||||
@@ -2511,6 +2560,7 @@ systems:
|
||||
md5: 81bbe60ba7a3d1cea1d48c14cbcc647b
|
||||
crc32: 2f53b852
|
||||
size: 524288
|
||||
native_id: Sony - PlayStation
|
||||
core: duckstation
|
||||
manufacturer: Sony
|
||||
docs: https://docs.libretro.com/library/duckstation/
|
||||
@@ -3027,6 +3077,7 @@ systems:
|
||||
md5: d3e81e95db25f5a86a7b7474550a2155
|
||||
crc32: 4e8c160c
|
||||
size: 4194304
|
||||
native_id: Sony - PlayStation 2
|
||||
sony-psp:
|
||||
files:
|
||||
- name: ppge_atlas.zim
|
||||
@@ -3036,6 +3087,7 @@ systems:
|
||||
md5: 866855cc330b9b95cc69135fb7b41d38
|
||||
crc32: 7b57fa78
|
||||
size: 666530
|
||||
native_id: Sony - PlayStation Portable
|
||||
core: ppsspp
|
||||
manufacturer: Sony
|
||||
docs: https://docs.libretro.com/library/ppsspp/
|
||||
@@ -3065,6 +3117,7 @@ systems:
|
||||
md5: d4448d09bbfde687c04f9e3310e023ab
|
||||
crc32: 4bf05697
|
||||
size: 262144
|
||||
native_id: Texas Instruments TI-83
|
||||
core: numero
|
||||
manufacturer: Texas Instruments
|
||||
docs: https://docs.libretro.com/library/numero/
|
||||
@@ -3098,6 +3151,7 @@ systems:
|
||||
md5: 88dc7876d584f90e4106f91444ab23b7
|
||||
crc32: 1466aed4
|
||||
size: 16384
|
||||
native_id: Videoton - TV Computer
|
||||
wolfenstein-3d:
|
||||
files:
|
||||
- name: ecwolf.pk3
|
||||
@@ -3107,6 +3161,7 @@ systems:
|
||||
md5: c011b428819eea4a80b455c245a5a04d
|
||||
crc32: 26dc3fba
|
||||
size: 178755
|
||||
native_id: Wolfenstein 3D
|
||||
scummvm:
|
||||
files:
|
||||
- name: scummvm.zip
|
||||
@@ -3116,6 +3171,7 @@ systems:
|
||||
md5: a17e0e0150155400d8cced329563d9c8
|
||||
crc32: a93f1c4b
|
||||
size: 9523360
|
||||
native_id: ScummVM
|
||||
core: scummvm
|
||||
manufacturer: Various
|
||||
docs: https://docs.libretro.com/library/scummvm/
|
||||
@@ -3141,3 +3197,5 @@ systems:
|
||||
core: xrick
|
||||
manufacturer: Other
|
||||
docs: https://docs.libretro.com/library/xrick/
|
||||
case_insensitive_fs: true
|
||||
cores: all_libretro
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -4372,7 +4372,7 @@ systems:
|
||||
- name: peribox_ev.zip
|
||||
destination: bios/peribox_ev.zip
|
||||
required: true
|
||||
md5: e32bdbc9488e706ab0360db52e0eee63
|
||||
md5: e32bdbc9488e706a30533540e059e0dc
|
||||
- name: permedia2.zip
|
||||
destination: bios/permedia2.zip
|
||||
required: true
|
||||
@@ -4384,7 +4384,7 @@ systems:
|
||||
- name: peribox_gen.zip
|
||||
destination: bios/peribox_gen.zip
|
||||
required: true
|
||||
md5: c35855fdc7f6a72fa11f80cfb94b3c80
|
||||
md5: c35855fdc7f6a72f1e4c56a0e2eabf88
|
||||
- name: peribox_sg.zip
|
||||
destination: bios/peribox_sg.zip
|
||||
required: true
|
||||
|
||||
@@ -191,6 +191,37 @@ def load_platform_config(platform_name: str, platforms_dir: str = "platforms") -
|
||||
system.setdefault("files", []).append(gf)
|
||||
existing.add(key)
|
||||
|
||||
# Merge metadata from _registry.yml. The registry is our curated source;
|
||||
# the scraped YAML may be incomplete (missing cores, metadata fields).
|
||||
# Registry fields supplement (not replace) the scraped config.
|
||||
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, {})
|
||||
|
||||
# Merge cores (union for lists, override for all_libretro)
|
||||
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):
|
||||
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
|
||||
|
||||
# Merge all registry fields absent from config (except cores,
|
||||
# handled above with union logic). No hardcoded list — any field
|
||||
# added to the registry is automatically available in the config.
|
||||
for key, val in reg_entry.items():
|
||||
if key != "cores" and key not in config:
|
||||
config[key] = val
|
||||
|
||||
_platform_config_cache[cache_key] = config
|
||||
return config
|
||||
|
||||
@@ -405,8 +436,12 @@ def resolve_local_file(
|
||||
sha1_match = by_md5.get(md5_candidate)
|
||||
if sha1_match and sha1_match in files_db:
|
||||
path = files_db[sha1_match]["path"]
|
||||
if os.path.exists(path) and _md5_name_ok(path):
|
||||
return path, "md5_exact"
|
||||
# Full MD5 (32 chars) is a strong identifier: trust it
|
||||
# without name guard. Truncated MD5 still needs name check
|
||||
# to avoid cross-contamination.
|
||||
if os.path.exists(path):
|
||||
if len(md5_candidate) >= 32 or _md5_name_ok(path):
|
||||
return path, "md5_exact"
|
||||
if len(md5_candidate) < 32:
|
||||
for db_md5, db_sha1 in by_md5.items():
|
||||
if db_md5.startswith(md5_candidate) and db_sha1 in files_db:
|
||||
@@ -522,6 +557,25 @@ def resolve_local_file(
|
||||
if fn.casefold() in basename_targets:
|
||||
return os.path.join(root, fn), "data_dir"
|
||||
|
||||
# Agnostic fallback: for filename-agnostic files, find any DB file
|
||||
# matching the system path prefix and size criteria
|
||||
if file_entry.get("agnostic"):
|
||||
agnostic_prefix = file_entry.get("agnostic_path_prefix", "")
|
||||
min_size = file_entry.get("min_size", 0)
|
||||
max_size = file_entry.get("max_size", float("inf"))
|
||||
exact_size = file_entry.get("size")
|
||||
if exact_size and not min_size:
|
||||
min_size = exact_size
|
||||
max_size = exact_size
|
||||
if agnostic_prefix:
|
||||
for _sha1, entry in files_db.items():
|
||||
path = entry.get("path", "")
|
||||
if not path.startswith(agnostic_prefix):
|
||||
continue
|
||||
size = entry.get("size", 0)
|
||||
if min_size <= size <= max_size and os.path.exists(path):
|
||||
return path, "agnostic_fallback"
|
||||
|
||||
return None, "not_found"
|
||||
|
||||
|
||||
@@ -633,6 +687,8 @@ def load_emulator_profiles(
|
||||
if not emu_path.exists():
|
||||
return profiles
|
||||
for f in sorted(emu_path.glob("*.yml")):
|
||||
if f.name.endswith(".old.yml"):
|
||||
continue
|
||||
with open(f) as fh:
|
||||
profile = yaml.safe_load(fh) or {}
|
||||
if "emulator" not in profile:
|
||||
@@ -735,6 +791,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 +947,72 @@ 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
|
||||
|
||||
|
||||
import re
|
||||
|
||||
_TIMESTAMP_PATTERNS = [
|
||||
re.compile(r'"generated_at":\s*"[^"]*"'), # database.json
|
||||
re.compile(r'\*Auto-generated on [^*]*\*'), # README.md
|
||||
re.compile(r'\*Generated on [^*]*\*'), # docs site pages
|
||||
]
|
||||
|
||||
|
||||
def write_if_changed(path: str, content: str) -> bool:
|
||||
"""Write content to path only if the non-timestamp content differs.
|
||||
|
||||
Compares new and existing content after stripping timestamp lines.
|
||||
Returns True if the file was written, False if skipped (unchanged).
|
||||
"""
|
||||
if os.path.exists(path):
|
||||
with open(path) as f:
|
||||
existing = f.read()
|
||||
if _strip_timestamps(existing) == _strip_timestamps(content):
|
||||
return False
|
||||
with open(path, "w") as f:
|
||||
f.write(content)
|
||||
return True
|
||||
|
||||
|
||||
def _strip_timestamps(text: str) -> str:
|
||||
"""Remove known timestamp patterns for content comparison."""
|
||||
result = text
|
||||
for pattern in _TIMESTAMP_PATTERNS:
|
||||
result = pattern.sub("", result)
|
||||
return result
|
||||
|
||||
|
||||
# Validation and mode filtering -extracted to validation.py for SoC.
|
||||
# Re-exported below for backward compatibility.
|
||||
|
||||
@@ -16,15 +16,27 @@ from exporter import discover_exporters
|
||||
|
||||
OUTPUT_FILENAMES: dict[str, str] = {
|
||||
"retroarch": "System.dat",
|
||||
"lakka": "System.dat",
|
||||
"retropie": "System.dat",
|
||||
"batocera": "batocera-systems",
|
||||
"recalbox": "es_bios.xml",
|
||||
"retrobat": "batocera-systems.json",
|
||||
"emudeck": "checkBIOS.sh",
|
||||
"retrodeck": "component_manifest.json",
|
||||
"romm": "known_bios_files.json",
|
||||
}
|
||||
|
||||
|
||||
def output_filename(platform: str) -> str:
|
||||
"""Return the native output filename for a platform."""
|
||||
return OUTPUT_FILENAMES.get(platform, f"{platform}_bios.dat")
|
||||
def output_path(platform: str, output_dir: str) -> str:
|
||||
"""Return the full output path for a platform's native export.
|
||||
|
||||
Each platform gets its own subdirectory to avoid filename collisions
|
||||
(e.g. retroarch, lakka, retropie all produce System.dat).
|
||||
"""
|
||||
filename = OUTPUT_FILENAMES.get(platform, f"{platform}_bios.dat")
|
||||
plat_dir = Path(output_dir) / platform
|
||||
plat_dir.mkdir(parents=True, exist_ok=True)
|
||||
return str(plat_dir / filename)
|
||||
|
||||
|
||||
def run(
|
||||
@@ -35,8 +47,6 @@ def run(
|
||||
) -> int:
|
||||
"""Export truth to native formats, return exit code."""
|
||||
exporters = discover_exporters()
|
||||
output_path = Path(output_dir)
|
||||
output_path.mkdir(parents=True, exist_ok=True)
|
||||
|
||||
errors = 0
|
||||
|
||||
@@ -60,7 +70,7 @@ def run(
|
||||
except (FileNotFoundError, OSError):
|
||||
pass
|
||||
|
||||
dest = str(output_path / output_filename(platform))
|
||||
dest = output_path(platform, output_dir)
|
||||
exporter = exporter_cls()
|
||||
exporter.export(truth_data, dest, scraped_data=scraped)
|
||||
|
||||
|
||||
@@ -25,3 +25,37 @@ class BaseExporter(ABC):
|
||||
@abstractmethod
|
||||
def validate(self, truth_data: dict, output_path: str) -> list[str]:
|
||||
"""Validate exported file against truth data, return list of issues."""
|
||||
|
||||
@staticmethod
|
||||
def _is_pattern(name: str) -> bool:
|
||||
"""Check if a filename is a placeholder pattern (not a real file)."""
|
||||
return "<" in name or ">" in name or "*" in name
|
||||
|
||||
@staticmethod
|
||||
def _dest(fe: dict) -> str:
|
||||
"""Get destination path for a file entry, falling back to name."""
|
||||
return fe.get("path") or fe.get("destination") or fe.get("name", "")
|
||||
|
||||
@staticmethod
|
||||
def _display_name(
|
||||
sys_id: str, scraped_sys: dict | None = None,
|
||||
) -> str:
|
||||
"""Get display name for a system from scraped data or slug."""
|
||||
if scraped_sys:
|
||||
name = scraped_sys.get("name")
|
||||
if name:
|
||||
return name
|
||||
# Fallback: convert slug to display name with acronym handling
|
||||
_UPPER = {
|
||||
"3do", "cdi", "cpc", "cps1", "cps2", "cps3", "dos", "gba",
|
||||
"gbc", "hle", "msx", "nes", "nds", "ngp", "psp", "psx",
|
||||
"sms", "snes", "stv", "tvc", "vb", "zx",
|
||||
}
|
||||
parts = sys_id.replace("-", " ").split()
|
||||
result = []
|
||||
for p in parts:
|
||||
if p.lower() in _UPPER:
|
||||
result.append(p.upper())
|
||||
else:
|
||||
result.append(p.capitalize())
|
||||
return " ".join(result)
|
||||
|
||||
111
scripts/exporter/batocera_exporter.py
Normal file
111
scripts/exporter/batocera_exporter.py
Normal file
@@ -0,0 +1,111 @@
|
||||
"""Exporter for Batocera batocera-systems format.
|
||||
|
||||
Produces a Python dict matching the exact format of
|
||||
batocera-linux/batocera-scripts/scripts/batocera-systems.
|
||||
"""
|
||||
|
||||
from __future__ import annotations
|
||||
|
||||
from pathlib import Path
|
||||
|
||||
from .base_exporter import BaseExporter
|
||||
|
||||
|
||||
|
||||
|
||||
class Exporter(BaseExporter):
|
||||
"""Export truth data to Batocera batocera-systems format."""
|
||||
|
||||
@staticmethod
|
||||
def platform_name() -> str:
|
||||
return "batocera"
|
||||
|
||||
def export(
|
||||
self,
|
||||
truth_data: dict,
|
||||
output_path: str,
|
||||
scraped_data: dict | None = None,
|
||||
) -> None:
|
||||
# Build native_id and display name maps from scraped data
|
||||
native_map: dict[str, str] = {}
|
||||
if scraped_data:
|
||||
for sys_id, sys_data in scraped_data.get("systems", {}).items():
|
||||
nid = sys_data.get("native_id")
|
||||
if nid:
|
||||
native_map[sys_id] = nid
|
||||
|
||||
lines: list[str] = ["systems = {", ""]
|
||||
|
||||
systems = truth_data.get("systems", {})
|
||||
for sys_id in sorted(systems):
|
||||
sys_data = systems[sys_id]
|
||||
files = sys_data.get("files", [])
|
||||
if not files:
|
||||
continue
|
||||
|
||||
native_id = native_map.get(sys_id, sys_id)
|
||||
scraped_sys = scraped_data.get("systems", {}).get(sys_id) if scraped_data else None
|
||||
display_name = self._display_name(sys_id, scraped_sys)
|
||||
|
||||
# Build md5 lookup from scraped data for this system
|
||||
scraped_md5: dict[str, str] = {}
|
||||
if scraped_data:
|
||||
s_sys = scraped_data.get("systems", {}).get(sys_id, {})
|
||||
for sf in s_sys.get("files", []):
|
||||
sname = sf.get("name", "").lower()
|
||||
smd5 = sf.get("md5", "")
|
||||
if sname and smd5:
|
||||
scraped_md5[sname] = smd5
|
||||
|
||||
# Build biosFiles entries as compact single-line dicts
|
||||
# Original format ALWAYS has md5 — use scraped md5 as fallback
|
||||
bios_parts: list[str] = []
|
||||
for fe in files:
|
||||
name = fe.get("name", "")
|
||||
if name.startswith("_") or self._is_pattern(name):
|
||||
continue
|
||||
dest = self._dest(fe)
|
||||
md5 = fe.get("md5", "")
|
||||
if isinstance(md5, list):
|
||||
md5 = md5[0] if md5 else ""
|
||||
if not md5:
|
||||
md5 = scraped_md5.get(name.lower(), "")
|
||||
|
||||
# Original format requires md5 for every entry — skip without
|
||||
if not md5:
|
||||
continue
|
||||
bios_parts.append(
|
||||
f'{{ "md5": "{md5}", "file": "bios/{dest}" }}'
|
||||
)
|
||||
|
||||
bios_str = ", ".join(bios_parts)
|
||||
line = (
|
||||
f' "{native_id}": '
|
||||
f'{{ "name": "{display_name}", '
|
||||
f'"biosFiles": [ {bios_str} ] }},'
|
||||
)
|
||||
lines.append(line)
|
||||
|
||||
lines.append("")
|
||||
lines.append("}")
|
||||
lines.append("")
|
||||
Path(output_path).write_text("\n".join(lines), encoding="utf-8")
|
||||
|
||||
def validate(self, truth_data: dict, output_path: str) -> list[str]:
|
||||
content = Path(output_path).read_text(encoding="utf-8")
|
||||
issues: list[str] = []
|
||||
for sys_data in truth_data.get("systems", {}).values():
|
||||
for fe in sys_data.get("files", []):
|
||||
name = fe.get("name", "")
|
||||
if name.startswith("_") or self._is_pattern(name):
|
||||
continue
|
||||
# Skip entries without md5 (not exportable in this format)
|
||||
md5 = fe.get("md5", "")
|
||||
if isinstance(md5, list):
|
||||
md5 = md5[0] if md5 else ""
|
||||
if not md5:
|
||||
continue
|
||||
dest = self._dest(fe)
|
||||
if dest not in content and name not in content:
|
||||
issues.append(f"missing: {name}")
|
||||
return issues
|
||||
207
scripts/exporter/emudeck_exporter.py
Normal file
207
scripts/exporter/emudeck_exporter.py
Normal file
@@ -0,0 +1,207 @@
|
||||
"""Exporter for EmuDeck checkBIOS.sh format.
|
||||
|
||||
Produces a bash script matching the exact pattern of EmuDeck's
|
||||
functions/checkBIOS.sh: per-system check functions with MD5 arrays
|
||||
inside the function body, iterating over $biosPath/* files.
|
||||
|
||||
Two patterns:
|
||||
- MD5 pattern: systems with known hashes, loop $biosPath/*, md5sum each, match
|
||||
- File-exists pattern: systems with specific paths, check -f
|
||||
"""
|
||||
|
||||
from __future__ import annotations
|
||||
|
||||
import re
|
||||
from pathlib import Path
|
||||
|
||||
from .base_exporter import BaseExporter
|
||||
|
||||
# Map our system IDs to EmuDeck function naming conventions
|
||||
_SYSTEM_CONFIG: dict[str, dict] = {
|
||||
"sony-playstation": {
|
||||
"func": "checkPS1BIOS",
|
||||
"var": "PSXBIOS",
|
||||
"array": "PSBios",
|
||||
"pattern": "md5",
|
||||
},
|
||||
"sony-playstation-2": {
|
||||
"func": "checkPS2BIOS",
|
||||
"var": "PS2BIOS",
|
||||
"array": "PS2Bios",
|
||||
"pattern": "md5",
|
||||
},
|
||||
"sega-mega-cd": {
|
||||
"func": "checkSegaCDBios",
|
||||
"var": "SEGACDBIOS",
|
||||
"array": "CDBios",
|
||||
"pattern": "md5",
|
||||
},
|
||||
"sega-saturn": {
|
||||
"func": "checkSaturnBios",
|
||||
"var": "SATURNBIOS",
|
||||
"array": "SaturnBios",
|
||||
"pattern": "md5",
|
||||
},
|
||||
"sega-dreamcast": {
|
||||
"func": "checkDreamcastBios",
|
||||
"var": "BIOS",
|
||||
"array": "hashes",
|
||||
"pattern": "md5",
|
||||
},
|
||||
"nintendo-ds": {
|
||||
"func": "checkDSBios",
|
||||
"var": "BIOS",
|
||||
"array": "hashes",
|
||||
"pattern": "md5",
|
||||
},
|
||||
"nintendo-switch": {
|
||||
"func": "checkCitronBios",
|
||||
"pattern": "file-exists",
|
||||
"firmware_path": "$biosPath/citron/firmware",
|
||||
"keys_path": "$biosPath/citron/keys/prod.keys",
|
||||
},
|
||||
}
|
||||
|
||||
|
||||
def _make_md5_function(cfg: dict, md5s: list[str]) -> list[str]:
|
||||
"""Generate a MD5-checking function matching EmuDeck's exact pattern."""
|
||||
func = cfg["func"]
|
||||
var = cfg["var"]
|
||||
array = cfg["array"]
|
||||
md5_str = " ".join(md5s)
|
||||
|
||||
return [
|
||||
f"{func}(){{",
|
||||
"",
|
||||
f'\t{var}="NULL"',
|
||||
"",
|
||||
'\tfor entry in "$biosPath/"*',
|
||||
"\tdo",
|
||||
'\t\tif [ -f "$entry" ]; then',
|
||||
'\t\t\tmd5=($(md5sum "$entry"))',
|
||||
f'\t\t\tif [[ "${var}" != true ]]; then',
|
||||
f"\t\t\t\t{array}=({md5_str})",
|
||||
f'\t\t\t\tfor i in "${{{array}[@]}}"',
|
||||
"\t\t\t\tdo",
|
||||
'\t\t\t\tif [[ "$md5" == *"${i}"* ]]; then',
|
||||
f"\t\t\t\t\t{var}=true",
|
||||
"\t\t\t\t\tbreak",
|
||||
"\t\t\t\telse",
|
||||
f"\t\t\t\t\t{var}=false",
|
||||
"\t\t\t\tfi",
|
||||
"\t\t\t\tdone",
|
||||
"\t\t\tfi",
|
||||
"\t\tfi",
|
||||
"\tdone",
|
||||
"",
|
||||
"",
|
||||
f"\tif [ ${var} == true ]; then",
|
||||
'\t\techo "$entry true";',
|
||||
"\telse",
|
||||
'\t\techo "false";',
|
||||
"\tfi",
|
||||
"}",
|
||||
]
|
||||
|
||||
|
||||
def _make_file_exists_function(cfg: dict) -> list[str]:
|
||||
"""Generate a file-exists function matching EmuDeck's pattern."""
|
||||
func = cfg["func"]
|
||||
firmware = cfg.get("firmware_path", "")
|
||||
keys = cfg.get("keys_path", "")
|
||||
|
||||
return [
|
||||
f"{func}(){{",
|
||||
"",
|
||||
f'\tlocal FIRMWARE="{firmware}"',
|
||||
f'\tlocal KEYS="{keys}"',
|
||||
'\tif [[ -f "$KEYS" ]] && [[ "$( ls -A "$FIRMWARE")" ]]; then',
|
||||
'\t\t\techo "true";',
|
||||
"\telse",
|
||||
'\t\t\techo "false";',
|
||||
"\tfi",
|
||||
"}",
|
||||
]
|
||||
|
||||
|
||||
class Exporter(BaseExporter):
|
||||
"""Export truth data to EmuDeck checkBIOS.sh format."""
|
||||
|
||||
@staticmethod
|
||||
def platform_name() -> str:
|
||||
return "emudeck"
|
||||
|
||||
def export(
|
||||
self,
|
||||
truth_data: dict,
|
||||
output_path: str,
|
||||
scraped_data: dict | None = None,
|
||||
) -> None:
|
||||
lines: list[str] = ["#!/bin/bash"]
|
||||
|
||||
systems = truth_data.get("systems", {})
|
||||
|
||||
for sys_id, cfg in sorted(_SYSTEM_CONFIG.items(), key=lambda x: x[1]["func"]):
|
||||
sys_data = systems.get(sys_id)
|
||||
if not sys_data:
|
||||
continue
|
||||
|
||||
lines.append("")
|
||||
|
||||
if cfg["pattern"] == "md5":
|
||||
md5s: list[str] = []
|
||||
for fe in sys_data.get("files", []):
|
||||
name = fe.get("name", "")
|
||||
if self._is_pattern(name) or name.startswith("_"):
|
||||
continue
|
||||
md5 = fe.get("md5", "")
|
||||
if isinstance(md5, list):
|
||||
md5s.extend(m for m in md5 if m and re.fullmatch(r"[a-f0-9]{32}", m))
|
||||
elif md5 and re.fullmatch(r"[a-f0-9]{32}", md5):
|
||||
md5s.append(md5)
|
||||
if md5s:
|
||||
lines.extend(_make_md5_function(cfg, md5s))
|
||||
elif cfg["pattern"] == "file-exists":
|
||||
lines.extend(_make_file_exists_function(cfg))
|
||||
|
||||
lines.append("")
|
||||
Path(output_path).write_text("\n".join(lines), encoding="utf-8")
|
||||
|
||||
def validate(self, truth_data: dict, output_path: str) -> list[str]:
|
||||
content = Path(output_path).read_text(encoding="utf-8")
|
||||
issues: list[str] = []
|
||||
|
||||
systems = truth_data.get("systems", {})
|
||||
for sys_id, cfg in _SYSTEM_CONFIG.items():
|
||||
if cfg["pattern"] != "md5":
|
||||
continue
|
||||
sys_data = systems.get(sys_id)
|
||||
if not sys_data:
|
||||
continue
|
||||
for fe in sys_data.get("files", []):
|
||||
md5 = fe.get("md5", "")
|
||||
if isinstance(md5, list):
|
||||
md5 = md5[0] if md5 else ""
|
||||
if md5 and re.fullmatch(r"[a-f0-9]{32}", md5) and md5 not in content:
|
||||
issues.append(f"missing md5: {md5} ({fe.get('name', '')})")
|
||||
|
||||
for sys_id, cfg in _SYSTEM_CONFIG.items():
|
||||
func = cfg["func"]
|
||||
if func in content:
|
||||
continue
|
||||
sys_data = systems.get(sys_id)
|
||||
if not sys_data or not sys_data.get("files"):
|
||||
continue
|
||||
# Only flag if the system has usable data for the function type
|
||||
if cfg["pattern"] == "md5":
|
||||
has_md5 = any(
|
||||
fe.get("md5") and isinstance(fe.get("md5"), str)
|
||||
and re.fullmatch(r"[a-f0-9]{32}", fe["md5"])
|
||||
for fe in sys_data["files"]
|
||||
)
|
||||
if has_md5:
|
||||
issues.append(f"missing function: {func}")
|
||||
elif cfg["pattern"] == "file-exists":
|
||||
issues.append(f"missing function: {func}")
|
||||
|
||||
return issues
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user