mirror of
https://github.com/Abdess/retroarch_system.git
synced 2026-04-13 12:22:33 -05:00
Compare commits
9 Commits
0401d058a1
...
5ee81b30c6
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
5ee81b30c6 | ||
|
|
b5eae226cd | ||
|
|
fd4606885e | ||
|
|
ded903ed7a | ||
|
|
077392bcd9 | ||
|
|
f4626ce3bd | ||
|
|
9e184f76fc | ||
|
|
fa0ed63718 | ||
|
|
c3fa55bd46 |
@@ -2,7 +2,7 @@
|
|||||||
|
|
||||||
Complete BIOS and firmware packs for Batocera, BizHawk, EmuDeck, Lakka, Recalbox, RetroArch, RetroBat, RetroDECK, RetroPie, and RomM.
|
Complete BIOS and firmware packs for Batocera, BizHawk, EmuDeck, Lakka, Recalbox, RetroArch, RetroBat, RetroDECK, RetroPie, and RomM.
|
||||||
|
|
||||||
**7,295** verified files across **396** systems, ready to extract into your emulator's BIOS directory.
|
**7,296** verified files across **396** systems, ready to extract into your emulator's BIOS directory.
|
||||||
|
|
||||||
## Quick Install
|
## Quick Install
|
||||||
|
|
||||||
@@ -46,7 +46,7 @@ Each file is checked against the emulator's source code to match what the code a
|
|||||||
- **10 platforms** supported with platform-specific verification
|
- **10 platforms** supported with platform-specific verification
|
||||||
- **329 emulators** profiled from source (RetroArch cores + standalone)
|
- **329 emulators** profiled from source (RetroArch cores + standalone)
|
||||||
- **396 systems** covered (NES, SNES, PlayStation, Saturn, Dreamcast, ...)
|
- **396 systems** covered (NES, SNES, PlayStation, Saturn, Dreamcast, ...)
|
||||||
- **7,295 files** verified with MD5, SHA1, CRC32 checksums
|
- **7,296 files** verified with MD5, SHA1, CRC32 checksums
|
||||||
- **8765 MB** total collection size
|
- **8765 MB** total collection size
|
||||||
|
|
||||||
## Supported systems
|
## Supported systems
|
||||||
@@ -130,4 +130,4 @@ See [CONTRIBUTING.md](CONTRIBUTING.md) for guidelines.
|
|||||||
|
|
||||||
This repository provides BIOS files for personal backup and archival purposes.
|
This repository provides BIOS files for personal backup and archival purposes.
|
||||||
|
|
||||||
*Auto-generated on 2026-03-31T20:38:37Z*
|
*Auto-generated on 2026-04-02T05:33:10Z*
|
||||||
|
|||||||
BIN
bios/Microsoft/MSX/.variants/MSX2.ROM.0081ea0d
Normal file
BIN
bios/Microsoft/MSX/.variants/MSX2.ROM.0081ea0d
Normal file
Binary file not shown.
BIN
bios/Sony/PlayStation/.variants/scph3000.bin.e38466a4
Normal file
BIN
bios/Sony/PlayStation/.variants/scph3000.bin.e38466a4
Normal file
Binary file not shown.
BIN
bios/Sony/PlayStation/.variants/scph3500.bin.ffa7f9a7
Normal file
BIN
bios/Sony/PlayStation/.variants/scph3500.bin.ffa7f9a7
Normal file
Binary file not shown.
119
database.json
119
database.json
@@ -1,7 +1,7 @@
|
|||||||
{
|
{
|
||||||
"generated_at": "2026-04-01T22:48:55Z",
|
"generated_at": "2026-04-01T23:11:49Z",
|
||||||
"total_files": 7295,
|
"total_files": 7296,
|
||||||
"total_size": 9190294264,
|
"total_size": 9190327032,
|
||||||
"files": {
|
"files": {
|
||||||
"520d3d1b5897800af47f92efd2444a26b7a7dead": {
|
"520d3d1b5897800af47f92efd2444a26b7a7dead": {
|
||||||
"path": "bios/3DO Company/3DO/3do_arcade_saot.bin",
|
"path": "bios/3DO Company/3DO/3do_arcade_saot.bin",
|
||||||
@@ -35053,6 +35053,16 @@
|
|||||||
"crc32": "a317e6b4",
|
"crc32": "a317e6b4",
|
||||||
"adler32": "0e7344db"
|
"adler32": "0e7344db"
|
||||||
},
|
},
|
||||||
|
"0081ea0d25bc5cd8d70b60ad8cfdc7307812c0fd": {
|
||||||
|
"path": "bios/Microsoft/MSX/.variants/MSX2.ROM.0081ea0d",
|
||||||
|
"name": "MSX2.ROM",
|
||||||
|
"size": 32768,
|
||||||
|
"sha1": "0081ea0d25bc5cd8d70b60ad8cfdc7307812c0fd",
|
||||||
|
"md5": "53bec1c22b30c0a15263e04b91a7814f",
|
||||||
|
"sha256": "0c672d86ead61a97f49a583b88b7c1905da120645cd44f0c9f2baf4f4631e0b1",
|
||||||
|
"crc32": "9b3e7b97",
|
||||||
|
"adler32": "1ce46674"
|
||||||
|
},
|
||||||
"e90f80a61d94c617850c415e12ad70ac41e66bb7": {
|
"e90f80a61d94c617850c415e12ad70ac41e66bb7": {
|
||||||
"path": "bios/Microsoft/MSX/.variants/MSX2P.ROM.e90f80a6",
|
"path": "bios/Microsoft/MSX/.variants/MSX2P.ROM.e90f80a6",
|
||||||
"name": "MSX2P.ROM",
|
"name": "MSX2P.ROM",
|
||||||
@@ -69813,6 +69823,26 @@
|
|||||||
"crc32": "6a0e22a0",
|
"crc32": "6a0e22a0",
|
||||||
"adler32": "46021520"
|
"adler32": "46021520"
|
||||||
},
|
},
|
||||||
|
"e38466a4ba8005fba7e9e3c7b9efeba7205bee3f": {
|
||||||
|
"path": "bios/Sony/PlayStation/scph3500.bin",
|
||||||
|
"name": "scph3500.bin",
|
||||||
|
"size": 524288,
|
||||||
|
"sha1": "e38466a4ba8005fba7e9e3c7b9efeba7205bee3f",
|
||||||
|
"md5": "cba733ceeff5aef5c32254f1d617fa62",
|
||||||
|
"sha256": "6f71ca1e716da761dc53187bd39e00c213f566e55090708fd3e2b4b425c8c989",
|
||||||
|
"crc32": "bc190209",
|
||||||
|
"adler32": "a8e56981"
|
||||||
|
},
|
||||||
|
"ffa7f9a7fb19d773a0c3985a541c8e5623d2c30d": {
|
||||||
|
"path": "bios/Sony/PlayStation/scph5000.bin",
|
||||||
|
"name": "scph5000.bin",
|
||||||
|
"size": 524288,
|
||||||
|
"sha1": "ffa7f9a7fb19d773a0c3985a541c8e5623d2c30d",
|
||||||
|
"md5": "57a06303dfa9cf9351222dfcbb4a29d9",
|
||||||
|
"sha256": "0c8359870cbac0ea091f1c87f188cd332dcc709753b91cafd9fd44a4a6188197",
|
||||||
|
"crc32": "24fc7e17",
|
||||||
|
"adler32": "1ac46cf1"
|
||||||
|
},
|
||||||
"e340db2696274dda5fdc25e434a914db71e8b02b": {
|
"e340db2696274dda5fdc25e434a914db71e8b02b": {
|
||||||
"path": "bios/Sony/PlayStation/.variants/scph5000.bin.eb201d2d",
|
"path": "bios/Sony/PlayStation/.variants/scph5000.bin.eb201d2d",
|
||||||
"name": "scph5000.bin",
|
"name": "scph5000.bin",
|
||||||
@@ -70013,26 +70043,6 @@
|
|||||||
"crc32": "3539def6",
|
"crc32": "3539def6",
|
||||||
"adler32": "9e7d4faa"
|
"adler32": "9e7d4faa"
|
||||||
},
|
},
|
||||||
"e38466a4ba8005fba7e9e3c7b9efeba7205bee3f": {
|
|
||||||
"path": "bios/Sony/PlayStation/scph3500.bin",
|
|
||||||
"name": "scph3500.bin",
|
|
||||||
"size": 524288,
|
|
||||||
"sha1": "e38466a4ba8005fba7e9e3c7b9efeba7205bee3f",
|
|
||||||
"md5": "cba733ceeff5aef5c32254f1d617fa62",
|
|
||||||
"sha256": "6f71ca1e716da761dc53187bd39e00c213f566e55090708fd3e2b4b425c8c989",
|
|
||||||
"crc32": "bc190209",
|
|
||||||
"adler32": "a8e56981"
|
|
||||||
},
|
|
||||||
"ffa7f9a7fb19d773a0c3985a541c8e5623d2c30d": {
|
|
||||||
"path": "bios/Sony/PlayStation/scph5000.bin",
|
|
||||||
"name": "scph5000.bin",
|
|
||||||
"size": 524288,
|
|
||||||
"sha1": "ffa7f9a7fb19d773a0c3985a541c8e5623d2c30d",
|
|
||||||
"md5": "57a06303dfa9cf9351222dfcbb4a29d9",
|
|
||||||
"sha256": "0c8359870cbac0ea091f1c87f188cd332dcc709753b91cafd9fd44a4a6188197",
|
|
||||||
"crc32": "24fc7e17",
|
|
||||||
"adler32": "1ac46cf1"
|
|
||||||
},
|
|
||||||
"b05def971d8ec59f346f2d9ac21fb742e3eb6917": {
|
"b05def971d8ec59f346f2d9ac21fb742e3eb6917": {
|
||||||
"path": "bios/Sony/PlayStation/scph5500.bin",
|
"path": "bios/Sony/PlayStation/scph5500.bin",
|
||||||
"name": "scph5500.bin",
|
"name": "scph5500.bin",
|
||||||
@@ -76461,6 +76471,7 @@
|
|||||||
"74b0f217fa0e2b8bb5a2f8e2ecc69da3": "bf5fb954db868e523febccc68549ed9187961076",
|
"74b0f217fa0e2b8bb5a2f8e2ecc69da3": "bf5fb954db868e523febccc68549ed9187961076",
|
||||||
"acf53887c2d2783dc059a9b442c86b90": "5aff2d9b6efc723bc395b0f96f0adfa83cc54a49",
|
"acf53887c2d2783dc059a9b442c86b90": "5aff2d9b6efc723bc395b0f96f0adfa83cc54a49",
|
||||||
"364a1a579fe5cb8dba54519bcfcdac0d": "e998f0c441f4f1800ef44e42cd1659150206cf79",
|
"364a1a579fe5cb8dba54519bcfcdac0d": "e998f0c441f4f1800ef44e42cd1659150206cf79",
|
||||||
|
"53bec1c22b30c0a15263e04b91a7814f": "0081ea0d25bc5cd8d70b60ad8cfdc7307812c0fd",
|
||||||
"847cc025ffae665487940ff2639540e5": "e90f80a61d94c617850c415e12ad70ac41e66bb7",
|
"847cc025ffae665487940ff2639540e5": "e90f80a61d94c617850c415e12ad70ac41e66bb7",
|
||||||
"55cca200bbbdd0a1ec5c9d70966c05c0": "4e9384c9d137f0ab65ffc5a78f04cd8c9df6c8b7",
|
"55cca200bbbdd0a1ec5c9d70966c05c0": "4e9384c9d137f0ab65ffc5a78f04cd8c9df6c8b7",
|
||||||
"d6dedca1112ddfda94cc9b2e426b818b": "69dd7344e4dfa7e250973a71bbb3e8aa6fb08d81",
|
"d6dedca1112ddfda94cc9b2e426b818b": "69dd7344e4dfa7e250973a71bbb3e8aa6fb08d81",
|
||||||
@@ -79937,6 +79948,8 @@
|
|||||||
"dc2b9bf8da62ec93e868cfd29f0d067d": "649895efd79d14790eabb362e94eb0622093dfb9",
|
"dc2b9bf8da62ec93e868cfd29f0d067d": "649895efd79d14790eabb362e94eb0622093dfb9",
|
||||||
"e2110b8a2b97a8e0b857a45d32f7e187": "b6a11579caef3875504fcf3831b8e3922746df2c",
|
"e2110b8a2b97a8e0b857a45d32f7e187": "b6a11579caef3875504fcf3831b8e3922746df2c",
|
||||||
"9a09ab7e49b422c007e6d54d7c49b965": "7771d6e90980408f753891648685def6dd42ef6d",
|
"9a09ab7e49b422c007e6d54d7c49b965": "7771d6e90980408f753891648685def6dd42ef6d",
|
||||||
|
"cba733ceeff5aef5c32254f1d617fa62": "e38466a4ba8005fba7e9e3c7b9efeba7205bee3f",
|
||||||
|
"57a06303dfa9cf9351222dfcbb4a29d9": "ffa7f9a7fb19d773a0c3985a541c8e5623d2c30d",
|
||||||
"eb201d2d98251a598af467d4347bb62f": "e340db2696274dda5fdc25e434a914db71e8b02b",
|
"eb201d2d98251a598af467d4347bb62f": "e340db2696274dda5fdc25e434a914db71e8b02b",
|
||||||
"2118230527a9f51bd9216e32fa912842": "1a8d6f9453111b1d317bb7dae300495fbf54600c",
|
"2118230527a9f51bd9216e32fa912842": "1a8d6f9453111b1d317bb7dae300495fbf54600c",
|
||||||
"ca5cfc321f916756e3f0effbfaeba13b": "73107d468fc7cb1d2c5b18b269715dd889ecef06",
|
"ca5cfc321f916756e3f0effbfaeba13b": "73107d468fc7cb1d2c5b18b269715dd889ecef06",
|
||||||
@@ -79957,8 +79970,6 @@
|
|||||||
"b10f5e0e3d9eb60e5159690680b1e774": "beb0ac693c0dc26daf5665b3314db81480fa5c7c",
|
"b10f5e0e3d9eb60e5159690680b1e774": "beb0ac693c0dc26daf5665b3314db81480fa5c7c",
|
||||||
"de93caec13d1a141a40a79f5c86168d6": "dbc7339e5d85827c095764fc077b41f78fd2ecae",
|
"de93caec13d1a141a40a79f5c86168d6": "dbc7339e5d85827c095764fc077b41f78fd2ecae",
|
||||||
"849515939161e62f6b866f6853006780": "b06f4a861f74270be819aa2a07db8d0563a7cc4e",
|
"849515939161e62f6b866f6853006780": "b06f4a861f74270be819aa2a07db8d0563a7cc4e",
|
||||||
"cba733ceeff5aef5c32254f1d617fa62": "e38466a4ba8005fba7e9e3c7b9efeba7205bee3f",
|
|
||||||
"57a06303dfa9cf9351222dfcbb4a29d9": "ffa7f9a7fb19d773a0c3985a541c8e5623d2c30d",
|
|
||||||
"8dd7d5296a650fac7319bce665a6a53c": "b05def971d8ec59f346f2d9ac21fb742e3eb6917",
|
"8dd7d5296a650fac7319bce665a6a53c": "b05def971d8ec59f346f2d9ac21fb742e3eb6917",
|
||||||
"490f666e1afb15b7362b406ed1cea246": "0555c6fae8906f3f09baf5988f00e55f88e9f30b",
|
"490f666e1afb15b7362b406ed1cea246": "0555c6fae8906f3f09baf5988f00e55f88e9f30b",
|
||||||
"32736f17079d0b2b7024407c39bd3050": "f6bc2d1f5eb6593de7d089c425ac681d6fffd3f0",
|
"32736f17079d0b2b7024407c39bd3050": "f6bc2d1f5eb6593de7d089c425ac681d6fffd3f0",
|
||||||
@@ -90267,6 +90278,10 @@
|
|||||||
"MSX_8020-20bios.rom": [
|
"MSX_8020-20bios.rom": [
|
||||||
"e998f0c441f4f1800ef44e42cd1659150206cf79"
|
"e998f0c441f4f1800ef44e42cd1659150206cf79"
|
||||||
],
|
],
|
||||||
|
"MSX2.ROM": [
|
||||||
|
"0081ea0d25bc5cd8d70b60ad8cfdc7307812c0fd",
|
||||||
|
"6103b39f1e38d1aa2d84b1c3219c44f1abb5436e"
|
||||||
|
],
|
||||||
"MSX2P.ROM": [
|
"MSX2P.ROM": [
|
||||||
"e90f80a61d94c617850c415e12ad70ac41e66bb7",
|
"e90f80a61d94c617850c415e12ad70ac41e66bb7",
|
||||||
"e2fbd56e42da637609d23ae9df9efd1b4241b18a"
|
"e2fbd56e42da637609d23ae9df9efd1b4241b18a"
|
||||||
@@ -90344,9 +90359,6 @@
|
|||||||
"409e82adac40f6bdd18eb6c84e8b2fbdc7fb5498",
|
"409e82adac40f6bdd18eb6c84e8b2fbdc7fb5498",
|
||||||
"e998f0c441f4f1800ef44e42cd1659150206cf79"
|
"e998f0c441f4f1800ef44e42cd1659150206cf79"
|
||||||
],
|
],
|
||||||
"MSX2.ROM": [
|
|
||||||
"6103b39f1e38d1aa2d84b1c3219c44f1abb5436e"
|
|
||||||
],
|
|
||||||
"MSX2EXT.ROM": [
|
"MSX2EXT.ROM": [
|
||||||
"5c1f9c7fb655e43d38e5dd1fcc6b942b2ff68b02"
|
"5c1f9c7fb655e43d38e5dd1fcc6b942b2ff68b02"
|
||||||
],
|
],
|
||||||
@@ -99662,10 +99674,14 @@
|
|||||||
"scph101_v44.bin": [
|
"scph101_v44.bin": [
|
||||||
"7771d6e90980408f753891648685def6dd42ef6d"
|
"7771d6e90980408f753891648685def6dd42ef6d"
|
||||||
],
|
],
|
||||||
"scph5000.bin": [
|
"scph3500.bin": [
|
||||||
"e340db2696274dda5fdc25e434a914db71e8b02b",
|
"e38466a4ba8005fba7e9e3c7b9efeba7205bee3f",
|
||||||
"ffa7f9a7fb19d773a0c3985a541c8e5623d2c30d"
|
"ffa7f9a7fb19d773a0c3985a541c8e5623d2c30d"
|
||||||
],
|
],
|
||||||
|
"scph5000.bin": [
|
||||||
|
"ffa7f9a7fb19d773a0c3985a541c8e5623d2c30d",
|
||||||
|
"e340db2696274dda5fdc25e434a914db71e8b02b"
|
||||||
|
],
|
||||||
"PSX_DTLH2000.bin": [
|
"PSX_DTLH2000.bin": [
|
||||||
"1a8d6f9453111b1d317bb7dae300495fbf54600c"
|
"1a8d6f9453111b1d317bb7dae300495fbf54600c"
|
||||||
],
|
],
|
||||||
@@ -99721,9 +99737,7 @@
|
|||||||
"dbc7339e5d85827c095764fc077b41f78fd2ecae"
|
"dbc7339e5d85827c095764fc077b41f78fd2ecae"
|
||||||
],
|
],
|
||||||
"scph3000.bin": [
|
"scph3000.bin": [
|
||||||
"b06f4a861f74270be819aa2a07db8d0563a7cc4e"
|
"b06f4a861f74270be819aa2a07db8d0563a7cc4e",
|
||||||
],
|
|
||||||
"scph3500.bin": [
|
|
||||||
"e38466a4ba8005fba7e9e3c7b9efeba7205bee3f"
|
"e38466a4ba8005fba7e9e3c7b9efeba7205bee3f"
|
||||||
],
|
],
|
||||||
"scph5500.bin": [
|
"scph5500.bin": [
|
||||||
@@ -102655,6 +102669,12 @@
|
|||||||
"scph102C.bin": [
|
"scph102C.bin": [
|
||||||
"dbc7339e5d85827c095764fc077b41f78fd2ecae"
|
"dbc7339e5d85827c095764fc077b41f78fd2ecae"
|
||||||
],
|
],
|
||||||
|
"sony-playstation:cba733ceeff5aef5c32254f1d617fa62": [
|
||||||
|
"e38466a4ba8005fba7e9e3c7b9efeba7205bee3f"
|
||||||
|
],
|
||||||
|
"sony-playstation:57a06303dfa9cf9351222dfcbb4a29d9": [
|
||||||
|
"ffa7f9a7fb19d773a0c3985a541c8e5623d2c30d"
|
||||||
|
],
|
||||||
"scph5001.bin": [
|
"scph5001.bin": [
|
||||||
"ca7af30b50d9756cbd764640126c454cff658479"
|
"ca7af30b50d9756cbd764640126c454cff658479"
|
||||||
],
|
],
|
||||||
@@ -103225,12 +103245,6 @@
|
|||||||
"sony-playstation:239665b1a3dade1b5a52c06338011044": [
|
"sony-playstation:239665b1a3dade1b5a52c06338011044": [
|
||||||
"343883a7b555646da8cee54aadd2795b6e7dd070"
|
"343883a7b555646da8cee54aadd2795b6e7dd070"
|
||||||
],
|
],
|
||||||
"sony-playstation:cba733ceeff5aef5c32254f1d617fa62": [
|
|
||||||
"e38466a4ba8005fba7e9e3c7b9efeba7205bee3f"
|
|
||||||
],
|
|
||||||
"sony-playstation:57a06303dfa9cf9351222dfcbb4a29d9": [
|
|
||||||
"ffa7f9a7fb19d773a0c3985a541c8e5623d2c30d"
|
|
||||||
],
|
|
||||||
"sony-playstation:81328b966e6dcf7ea1e32e55e1c104bb": [
|
"sony-playstation:81328b966e6dcf7ea1e32e55e1c104bb": [
|
||||||
"15c94da3cc5a38a582429575af4198c487fe893c"
|
"15c94da3cc5a38a582429575af4198c487fe893c"
|
||||||
],
|
],
|
||||||
@@ -103384,6 +103398,9 @@
|
|||||||
"MOONSOUND.rom": [
|
"MOONSOUND.rom": [
|
||||||
"32760893ce06dbe3930627755ba065cc3d8ec6ca"
|
"32760893ce06dbe3930627755ba065cc3d8ec6ca"
|
||||||
],
|
],
|
||||||
|
"MSX2J.rom": [
|
||||||
|
"0081ea0d25bc5cd8d70b60ad8cfdc7307812c0fd"
|
||||||
|
],
|
||||||
"MSX2P.rom": [
|
"MSX2P.rom": [
|
||||||
"e90f80a61d94c617850c415e12ad70ac41e66bb7"
|
"e90f80a61d94c617850c415e12ad70ac41e66bb7"
|
||||||
],
|
],
|
||||||
@@ -107708,6 +107725,7 @@
|
|||||||
"d42f4444": "bf5fb954db868e523febccc68549ed9187961076",
|
"d42f4444": "bf5fb954db868e523febccc68549ed9187961076",
|
||||||
"1f6406fb": "5aff2d9b6efc723bc395b0f96f0adfa83cc54a49",
|
"1f6406fb": "5aff2d9b6efc723bc395b0f96f0adfa83cc54a49",
|
||||||
"a317e6b4": "e998f0c441f4f1800ef44e42cd1659150206cf79",
|
"a317e6b4": "e998f0c441f4f1800ef44e42cd1659150206cf79",
|
||||||
|
"9b3e7b97": "0081ea0d25bc5cd8d70b60ad8cfdc7307812c0fd",
|
||||||
"19771608": "e90f80a61d94c617850c415e12ad70ac41e66bb7",
|
"19771608": "e90f80a61d94c617850c415e12ad70ac41e66bb7",
|
||||||
"3353dcc6": "4e9384c9d137f0ab65ffc5a78f04cd8c9df6c8b7",
|
"3353dcc6": "4e9384c9d137f0ab65ffc5a78f04cd8c9df6c8b7",
|
||||||
"82312751": "69dd7344e4dfa7e250973a71bbb3e8aa6fb08d81",
|
"82312751": "69dd7344e4dfa7e250973a71bbb3e8aa6fb08d81",
|
||||||
@@ -111184,6 +111202,8 @@
|
|||||||
"55847d8c": "649895efd79d14790eabb362e94eb0622093dfb9",
|
"55847d8c": "649895efd79d14790eabb362e94eb0622093dfb9",
|
||||||
"1e26792f": "b6a11579caef3875504fcf3831b8e3922746df2c",
|
"1e26792f": "b6a11579caef3875504fcf3831b8e3922746df2c",
|
||||||
"6a0e22a0": "7771d6e90980408f753891648685def6dd42ef6d",
|
"6a0e22a0": "7771d6e90980408f753891648685def6dd42ef6d",
|
||||||
|
"bc190209": "e38466a4ba8005fba7e9e3c7b9efeba7205bee3f",
|
||||||
|
"24fc7e17": "ffa7f9a7fb19d773a0c3985a541c8e5623d2c30d",
|
||||||
"8c93a399": "e340db2696274dda5fdc25e434a914db71e8b02b",
|
"8c93a399": "e340db2696274dda5fdc25e434a914db71e8b02b",
|
||||||
"18d0f7d8": "1a8d6f9453111b1d317bb7dae300495fbf54600c",
|
"18d0f7d8": "1a8d6f9453111b1d317bb7dae300495fbf54600c",
|
||||||
"decb22f5": "73107d468fc7cb1d2c5b18b269715dd889ecef06",
|
"decb22f5": "73107d468fc7cb1d2c5b18b269715dd889ecef06",
|
||||||
@@ -111204,8 +111224,6 @@
|
|||||||
"0bad7ea9": "beb0ac693c0dc26daf5665b3314db81480fa5c7c",
|
"0bad7ea9": "beb0ac693c0dc26daf5665b3314db81480fa5c7c",
|
||||||
"76b880e5": "dbc7339e5d85827c095764fc077b41f78fd2ecae",
|
"76b880e5": "dbc7339e5d85827c095764fc077b41f78fd2ecae",
|
||||||
"3539def6": "b06f4a861f74270be819aa2a07db8d0563a7cc4e",
|
"3539def6": "b06f4a861f74270be819aa2a07db8d0563a7cc4e",
|
||||||
"bc190209": "e38466a4ba8005fba7e9e3c7b9efeba7205bee3f",
|
|
||||||
"24fc7e17": "ffa7f9a7fb19d773a0c3985a541c8e5623d2c30d",
|
|
||||||
"ff3eeb8c": "b05def971d8ec59f346f2d9ac21fb742e3eb6917",
|
"ff3eeb8c": "b05def971d8ec59f346f2d9ac21fb742e3eb6917",
|
||||||
"8d8cb7e4": "0555c6fae8906f3f09baf5988f00e55f88e9f30b",
|
"8d8cb7e4": "0555c6fae8906f3f09baf5988f00e55f88e9f30b",
|
||||||
"d786f0b9": "f6bc2d1f5eb6593de7d089c425ac681d6fffd3f0",
|
"d786f0b9": "f6bc2d1f5eb6593de7d089c425ac681d6fffd3f0",
|
||||||
@@ -115005,6 +115023,7 @@
|
|||||||
"0a09940701f40647a2715271b43c9ab0d82bd488871427ad627b7e0f462f5dda": "bf5fb954db868e523febccc68549ed9187961076",
|
"0a09940701f40647a2715271b43c9ab0d82bd488871427ad627b7e0f462f5dda": "bf5fb954db868e523febccc68549ed9187961076",
|
||||||
"d87ce758a7171870a2a3e7893e09cbba2bd68ee70b4d0f0e49dd2ecd60aafdd1": "5aff2d9b6efc723bc395b0f96f0adfa83cc54a49",
|
"d87ce758a7171870a2a3e7893e09cbba2bd68ee70b4d0f0e49dd2ecd60aafdd1": "5aff2d9b6efc723bc395b0f96f0adfa83cc54a49",
|
||||||
"1c85dac5536fa3ba6f2cb70deba02ff680b34ac6cc787d2977258bd663a99555": "e998f0c441f4f1800ef44e42cd1659150206cf79",
|
"1c85dac5536fa3ba6f2cb70deba02ff680b34ac6cc787d2977258bd663a99555": "e998f0c441f4f1800ef44e42cd1659150206cf79",
|
||||||
|
"0c672d86ead61a97f49a583b88b7c1905da120645cd44f0c9f2baf4f4631e0b1": "0081ea0d25bc5cd8d70b60ad8cfdc7307812c0fd",
|
||||||
"ca45b50d49a8199a2b8f74300556367a776df1bb28bf8af24d33e65f0fe37a99": "e90f80a61d94c617850c415e12ad70ac41e66bb7",
|
"ca45b50d49a8199a2b8f74300556367a776df1bb28bf8af24d33e65f0fe37a99": "e90f80a61d94c617850c415e12ad70ac41e66bb7",
|
||||||
"696da03345b9fd27799b8fd92024050a201c020ef730e9006cb8f10bbbf68004": "4e9384c9d137f0ab65ffc5a78f04cd8c9df6c8b7",
|
"696da03345b9fd27799b8fd92024050a201c020ef730e9006cb8f10bbbf68004": "4e9384c9d137f0ab65ffc5a78f04cd8c9df6c8b7",
|
||||||
"2715b192a9a647c31da88b4e1d778279ff3b40b80f606891732a6023e3039c2d": "69dd7344e4dfa7e250973a71bbb3e8aa6fb08d81",
|
"2715b192a9a647c31da88b4e1d778279ff3b40b80f606891732a6023e3039c2d": "69dd7344e4dfa7e250973a71bbb3e8aa6fb08d81",
|
||||||
@@ -118481,6 +118500,8 @@
|
|||||||
"42e4124be7623e2e28b1db0d8d426539646faee49d74b71166d8ba5bd7c472ed": "649895efd79d14790eabb362e94eb0622093dfb9",
|
"42e4124be7623e2e28b1db0d8d426539646faee49d74b71166d8ba5bd7c472ed": "649895efd79d14790eabb362e94eb0622093dfb9",
|
||||||
"3d06d2c469313c2a2128d24fe2e0c71ff99bc2032be89a829a62337187f500b7": "b6a11579caef3875504fcf3831b8e3922746df2c",
|
"3d06d2c469313c2a2128d24fe2e0c71ff99bc2032be89a829a62337187f500b7": "b6a11579caef3875504fcf3831b8e3922746df2c",
|
||||||
"8434528690df0d444dfe4e931eb5501be53df70497e63f4c9a21184631cdbb87": "7771d6e90980408f753891648685def6dd42ef6d",
|
"8434528690df0d444dfe4e931eb5501be53df70497e63f4c9a21184631cdbb87": "7771d6e90980408f753891648685def6dd42ef6d",
|
||||||
|
"6f71ca1e716da761dc53187bd39e00c213f566e55090708fd3e2b4b425c8c989": "e38466a4ba8005fba7e9e3c7b9efeba7205bee3f",
|
||||||
|
"0c8359870cbac0ea091f1c87f188cd332dcc709753b91cafd9fd44a4a6188197": "ffa7f9a7fb19d773a0c3985a541c8e5623d2c30d",
|
||||||
"8e0383171e67b33e60d5df6394c58843f3b11c7a0b97f3bfcc4319ac2d1f9d18": "e340db2696274dda5fdc25e434a914db71e8b02b",
|
"8e0383171e67b33e60d5df6394c58843f3b11c7a0b97f3bfcc4319ac2d1f9d18": "e340db2696274dda5fdc25e434a914db71e8b02b",
|
||||||
"7f38da2e456540d267060175a7a1e3b4c39292d964051abd8b322c05367af04f": "1a8d6f9453111b1d317bb7dae300495fbf54600c",
|
"7f38da2e456540d267060175a7a1e3b4c39292d964051abd8b322c05367af04f": "1a8d6f9453111b1d317bb7dae300495fbf54600c",
|
||||||
"4018749b3698b8694387beebcbabfb48470513066840f9441459ee4c9f0f39bc": "73107d468fc7cb1d2c5b18b269715dd889ecef06",
|
"4018749b3698b8694387beebcbabfb48470513066840f9441459ee4c9f0f39bc": "73107d468fc7cb1d2c5b18b269715dd889ecef06",
|
||||||
@@ -118501,8 +118522,6 @@
|
|||||||
"5c0166da24e27deaa82246de8ff0108267fe4bb59f6df0fdec50e05e62448ca4": "beb0ac693c0dc26daf5665b3314db81480fa5c7c",
|
"5c0166da24e27deaa82246de8ff0108267fe4bb59f6df0fdec50e05e62448ca4": "beb0ac693c0dc26daf5665b3314db81480fa5c7c",
|
||||||
"42244b0c650821519751b7e77ad1d3222a0125e75586df2b4e84ba693b9809dc": "dbc7339e5d85827c095764fc077b41f78fd2ecae",
|
"42244b0c650821519751b7e77ad1d3222a0125e75586df2b4e84ba693b9809dc": "dbc7339e5d85827c095764fc077b41f78fd2ecae",
|
||||||
"5eb3aee495937558312b83b54323d76a4a015190decd4051214f1b6df06ac34b": "b06f4a861f74270be819aa2a07db8d0563a7cc4e",
|
"5eb3aee495937558312b83b54323d76a4a015190decd4051214f1b6df06ac34b": "b06f4a861f74270be819aa2a07db8d0563a7cc4e",
|
||||||
"6f71ca1e716da761dc53187bd39e00c213f566e55090708fd3e2b4b425c8c989": "e38466a4ba8005fba7e9e3c7b9efeba7205bee3f",
|
|
||||||
"0c8359870cbac0ea091f1c87f188cd332dcc709753b91cafd9fd44a4a6188197": "ffa7f9a7fb19d773a0c3985a541c8e5623d2c30d",
|
|
||||||
"9c0421858e217805f4abe18698afea8d5aa36ff0727eb8484944e00eb5e7eadb": "b05def971d8ec59f346f2d9ac21fb742e3eb6917",
|
"9c0421858e217805f4abe18698afea8d5aa36ff0727eb8484944e00eb5e7eadb": "b05def971d8ec59f346f2d9ac21fb742e3eb6917",
|
||||||
"11052b6499e466bbf0a709b1f9cb6834a9418e66680387912451e971cf8a1fef": "0555c6fae8906f3f09baf5988f00e55f88e9f30b",
|
"11052b6499e466bbf0a709b1f9cb6834a9418e66680387912451e971cf8a1fef": "0555c6fae8906f3f09baf5988f00e55f88e9f30b",
|
||||||
"1faaa18fa820a0225e488d9f086296b8e6c46df739666093987ff7d8fd352c09": "f6bc2d1f5eb6593de7d089c425ac681d6fffd3f0",
|
"1faaa18fa820a0225e488d9f086296b8e6c46df739666093987ff7d8fd352c09": "f6bc2d1f5eb6593de7d089c425ac681d6fffd3f0",
|
||||||
@@ -123327,6 +123346,9 @@
|
|||||||
"openmsx/fs-a1wsx_kanjifont.rom": [
|
"openmsx/fs-a1wsx_kanjifont.rom": [
|
||||||
"5aff2d9b6efc723bc395b0f96f0adfa83cc54a49"
|
"5aff2d9b6efc723bc395b0f96f0adfa83cc54a49"
|
||||||
],
|
],
|
||||||
|
".variants/MSX2.ROM.0081ea0d": [
|
||||||
|
"0081ea0d25bc5cd8d70b60ad8cfdc7307812c0fd"
|
||||||
|
],
|
||||||
".variants/MSX2P.ROM.e90f80a6": [
|
".variants/MSX2P.ROM.e90f80a6": [
|
||||||
"e90f80a61d94c617850c415e12ad70ac41e66bb7"
|
"e90f80a61d94c617850c415e12ad70ac41e66bb7"
|
||||||
],
|
],
|
||||||
@@ -132639,6 +132661,8 @@
|
|||||||
"dcffe16bd90a723499ad46c641424981338d8378",
|
"dcffe16bd90a723499ad46c641424981338d8378",
|
||||||
"beb0ac693c0dc26daf5665b3314db81480fa5c7c",
|
"beb0ac693c0dc26daf5665b3314db81480fa5c7c",
|
||||||
"dbc7339e5d85827c095764fc077b41f78fd2ecae",
|
"dbc7339e5d85827c095764fc077b41f78fd2ecae",
|
||||||
|
"e38466a4ba8005fba7e9e3c7b9efeba7205bee3f",
|
||||||
|
"ffa7f9a7fb19d773a0c3985a541c8e5623d2c30d",
|
||||||
"ca7af30b50d9756cbd764640126c454cff658479",
|
"ca7af30b50d9756cbd764640126c454cff658479",
|
||||||
"1b0dbdb23da9dc0776aac58d0755dc80fea20975",
|
"1b0dbdb23da9dc0776aac58d0755dc80fea20975",
|
||||||
"339a48f4fcf63e10b5b867b8c93cfd40945faf6c",
|
"339a48f4fcf63e10b5b867b8c93cfd40945faf6c",
|
||||||
@@ -132733,8 +132757,6 @@
|
|||||||
"03bbb386cf530e804363acdfc1d13e64cf28af2e",
|
"03bbb386cf530e804363acdfc1d13e64cf28af2e",
|
||||||
"55315b20fecb4441a07ee4bc5dc7153f396e0a2e",
|
"55315b20fecb4441a07ee4bc5dc7153f396e0a2e",
|
||||||
"343883a7b555646da8cee54aadd2795b6e7dd070",
|
"343883a7b555646da8cee54aadd2795b6e7dd070",
|
||||||
"e38466a4ba8005fba7e9e3c7b9efeba7205bee3f",
|
|
||||||
"ffa7f9a7fb19d773a0c3985a541c8e5623d2c30d",
|
|
||||||
"15c94da3cc5a38a582429575af4198c487fe893c",
|
"15c94da3cc5a38a582429575af4198c487fe893c",
|
||||||
"73107d468fc7cb1d2c5b18b269715dd889ecef06",
|
"73107d468fc7cb1d2c5b18b269715dd889ecef06",
|
||||||
"b05def971d8ec59f346f2d9ac21fb742e3eb6917",
|
"b05def971d8ec59f346f2d9ac21fb742e3eb6917",
|
||||||
@@ -132766,6 +132788,7 @@
|
|||||||
"7ed7c55e0359737ac5e68d38cb6903f9e5d7c2b6",
|
"7ed7c55e0359737ac5e68d38cb6903f9e5d7c2b6",
|
||||||
"9d789166e3caf28e4742fe933d962e99618c633d",
|
"9d789166e3caf28e4742fe933d962e99618c633d",
|
||||||
"32760893ce06dbe3930627755ba065cc3d8ec6ca",
|
"32760893ce06dbe3930627755ba065cc3d8ec6ca",
|
||||||
|
"0081ea0d25bc5cd8d70b60ad8cfdc7307812c0fd",
|
||||||
"e90f80a61d94c617850c415e12ad70ac41e66bb7",
|
"e90f80a61d94c617850c415e12ad70ac41e66bb7",
|
||||||
"df48902f5f12af8867ae1a87f255145f0e5e0774",
|
"df48902f5f12af8867ae1a87f255145f0e5e0774",
|
||||||
"04990aa1c3a3fc7294ec884b81deaa89832df614",
|
"04990aa1c3a3fc7294ec884b81deaa89832df614",
|
||||||
@@ -135341,6 +135364,12 @@
|
|||||||
".variants/scph101.bin.9a09ab7e": [
|
".variants/scph101.bin.9a09ab7e": [
|
||||||
"7771d6e90980408f753891648685def6dd42ef6d"
|
"7771d6e90980408f753891648685def6dd42ef6d"
|
||||||
],
|
],
|
||||||
|
".variants/scph3000.bin.e38466a4": [
|
||||||
|
"e38466a4ba8005fba7e9e3c7b9efeba7205bee3f"
|
||||||
|
],
|
||||||
|
".variants/scph3500.bin.ffa7f9a7": [
|
||||||
|
"ffa7f9a7fb19d773a0c3985a541c8e5623d2c30d"
|
||||||
|
],
|
||||||
"Oric/microdisc.rom": [
|
"Oric/microdisc.rom": [
|
||||||
"0d2ef6e67322f48f4b7e08d8bbe68827e2074561"
|
"0d2ef6e67322f48f4b7e08d8bbe68827e2074561"
|
||||||
],
|
],
|
||||||
|
|||||||
@@ -70,11 +70,12 @@ files:
|
|||||||
aliases: []
|
aliases: []
|
||||||
|
|
||||||
- name: "ps1_rom.bin"
|
- name: "ps1_rom.bin"
|
||||||
description: "PS3 (v5.0 06-23-03 A)"
|
description: "PS3 embedded PS1 BIOS (v5.0 06-23-03 A)"
|
||||||
region: "Auto"
|
region: "Auto"
|
||||||
required: false
|
required: false
|
||||||
md5: "81bbe60ba7a3d1cea1d48c14cbcc647b"
|
md5: "81bbe60ba7a3d1cea1d48c14cbcc647b"
|
||||||
size: 4089584
|
size: [524288, 4194304, 4089584]
|
||||||
validation: [size, md5]
|
validation: [size, md5]
|
||||||
source_ref: "src/core/bios.cpp:70"
|
note: "Accepts PS1 (512KB), PS2 (4MB), and PS3 (0x3E66F0) sizes. Only first 512KB used."
|
||||||
|
source_ref: "src/core/bios.h:9, src/core/bios.cpp:70,83"
|
||||||
aliases: []
|
aliases: []
|
||||||
|
|||||||
@@ -4,7 +4,7 @@
|
|||||||
"platform": "batocera",
|
"platform": "batocera",
|
||||||
"display_name": "Batocera",
|
"display_name": "Batocera",
|
||||||
"version": "1.0",
|
"version": "1.0",
|
||||||
"generated": "2026-04-01T14:41:41Z",
|
"generated": "2026-04-02T08:32:09Z",
|
||||||
"base_destination": "bios",
|
"base_destination": "bios",
|
||||||
"detect": [
|
"detect": [
|
||||||
{
|
{
|
||||||
@@ -15,8 +15,8 @@
|
|||||||
}
|
}
|
||||||
],
|
],
|
||||||
"standalone_copies": [],
|
"standalone_copies": [],
|
||||||
"total_files": 1540,
|
"total_files": 1541,
|
||||||
"total_size": 3891615271,
|
"total_size": 3891648039,
|
||||||
"files": [
|
"files": [
|
||||||
{
|
{
|
||||||
"dest": "panafz1.bin",
|
"dest": "panafz1.bin",
|
||||||
@@ -2904,6 +2904,15 @@
|
|||||||
"blueMSX"
|
"blueMSX"
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"dest": "Machines/Shared Roms/MSX2J.rom",
|
||||||
|
"sha1": "0081ea0d25bc5cd8d70b60ad8cfdc7307812c0fd",
|
||||||
|
"size": 32768,
|
||||||
|
"repo_path": "bios/Microsoft/MSX/.variants/MSX2.ROM.0081ea0d",
|
||||||
|
"cores": [
|
||||||
|
"blueMSX"
|
||||||
|
]
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"dest": "Machines/Shared Roms/MSX2R2.ROM",
|
"dest": "Machines/Shared Roms/MSX2R2.ROM",
|
||||||
"sha1": "ebb7eb540a390509edfd36c84288ba85e63f2d1f",
|
"sha1": "ebb7eb540a390509edfd36c84288ba85e63f2d1f",
|
||||||
|
|||||||
@@ -4,7 +4,7 @@
|
|||||||
"platform": "lakka",
|
"platform": "lakka",
|
||||||
"display_name": "Lakka",
|
"display_name": "Lakka",
|
||||||
"version": "1.0",
|
"version": "1.0",
|
||||||
"generated": "2026-04-01T14:42:08Z",
|
"generated": "2026-04-02T08:32:35Z",
|
||||||
"base_destination": "system",
|
"base_destination": "system",
|
||||||
"detect": [
|
"detect": [
|
||||||
{
|
{
|
||||||
@@ -15,8 +15,8 @@
|
|||||||
}
|
}
|
||||||
],
|
],
|
||||||
"standalone_copies": [],
|
"standalone_copies": [],
|
||||||
"total_files": 1620,
|
"total_files": 1621,
|
||||||
"total_size": 5255358024,
|
"total_size": 5255390792,
|
||||||
"files": [
|
"files": [
|
||||||
{
|
{
|
||||||
"dest": "3do_arcade_saot.bin",
|
"dest": "3do_arcade_saot.bin",
|
||||||
@@ -3438,6 +3438,15 @@
|
|||||||
"blueMSX"
|
"blueMSX"
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"dest": "Machines/Shared Roms/MSX2J.rom",
|
||||||
|
"sha1": "0081ea0d25bc5cd8d70b60ad8cfdc7307812c0fd",
|
||||||
|
"size": 32768,
|
||||||
|
"repo_path": "bios/Microsoft/MSX/.variants/MSX2.ROM.0081ea0d",
|
||||||
|
"cores": [
|
||||||
|
"blueMSX"
|
||||||
|
]
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"dest": "Machines/Shared Roms/MSX2R2.ROM",
|
"dest": "Machines/Shared Roms/MSX2R2.ROM",
|
||||||
"sha1": "ebb7eb540a390509edfd36c84288ba85e63f2d1f",
|
"sha1": "ebb7eb540a390509edfd36c84288ba85e63f2d1f",
|
||||||
|
|||||||
@@ -4,7 +4,7 @@
|
|||||||
"platform": "recalbox",
|
"platform": "recalbox",
|
||||||
"display_name": "Recalbox",
|
"display_name": "Recalbox",
|
||||||
"version": "1.0",
|
"version": "1.0",
|
||||||
"generated": "2026-04-01T14:42:39Z",
|
"generated": "2026-04-02T08:33:02Z",
|
||||||
"base_destination": "bios",
|
"base_destination": "bios",
|
||||||
"detect": [
|
"detect": [
|
||||||
{
|
{
|
||||||
@@ -15,8 +15,8 @@
|
|||||||
}
|
}
|
||||||
],
|
],
|
||||||
"standalone_copies": [],
|
"standalone_copies": [],
|
||||||
"total_files": 1097,
|
"total_files": 1098,
|
||||||
"total_size": 3500142330,
|
"total_size": 3500175098,
|
||||||
"files": [
|
"files": [
|
||||||
{
|
{
|
||||||
"dest": "3do/panafz1.bin",
|
"dest": "3do/panafz1.bin",
|
||||||
@@ -851,6 +851,13 @@
|
|||||||
"repo_path": "bios/Microsoft/MSX/MSX2EXT.ROM",
|
"repo_path": "bios/Microsoft/MSX/MSX2EXT.ROM",
|
||||||
"cores": null
|
"cores": null
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"dest": "Machines/Shared Roms/MSX2J.rom",
|
||||||
|
"sha1": "0081ea0d25bc5cd8d70b60ad8cfdc7307812c0fd",
|
||||||
|
"size": 32768,
|
||||||
|
"repo_path": "bios/Microsoft/MSX/.variants/MSX2.ROM.0081ea0d",
|
||||||
|
"cores": null
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"dest": "Machines/Shared Roms/MSX2P.rom",
|
"dest": "Machines/Shared Roms/MSX2P.rom",
|
||||||
"sha1": "e90f80a61d94c617850c415e12ad70ac41e66bb7",
|
"sha1": "e90f80a61d94c617850c415e12ad70ac41e66bb7",
|
||||||
|
|||||||
@@ -4,7 +4,7 @@
|
|||||||
"platform": "retroarch",
|
"platform": "retroarch",
|
||||||
"display_name": "RetroArch",
|
"display_name": "RetroArch",
|
||||||
"version": "1.0",
|
"version": "1.0",
|
||||||
"generated": "2026-04-01T14:42:08Z",
|
"generated": "2026-04-02T08:32:35Z",
|
||||||
"base_destination": "system",
|
"base_destination": "system",
|
||||||
"detect": [
|
"detect": [
|
||||||
{
|
{
|
||||||
@@ -33,8 +33,8 @@
|
|||||||
}
|
}
|
||||||
],
|
],
|
||||||
"standalone_copies": [],
|
"standalone_copies": [],
|
||||||
"total_files": 1620,
|
"total_files": 1621,
|
||||||
"total_size": 5255358024,
|
"total_size": 5255390792,
|
||||||
"files": [
|
"files": [
|
||||||
{
|
{
|
||||||
"dest": "3do_arcade_saot.bin",
|
"dest": "3do_arcade_saot.bin",
|
||||||
@@ -3456,6 +3456,15 @@
|
|||||||
"blueMSX"
|
"blueMSX"
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"dest": "Machines/Shared Roms/MSX2J.rom",
|
||||||
|
"sha1": "0081ea0d25bc5cd8d70b60ad8cfdc7307812c0fd",
|
||||||
|
"size": 32768,
|
||||||
|
"repo_path": "bios/Microsoft/MSX/.variants/MSX2.ROM.0081ea0d",
|
||||||
|
"cores": [
|
||||||
|
"blueMSX"
|
||||||
|
]
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"dest": "Machines/Shared Roms/MSX2R2.ROM",
|
"dest": "Machines/Shared Roms/MSX2R2.ROM",
|
||||||
"sha1": "ebb7eb540a390509edfd36c84288ba85e63f2d1f",
|
"sha1": "ebb7eb540a390509edfd36c84288ba85e63f2d1f",
|
||||||
|
|||||||
@@ -4,7 +4,7 @@
|
|||||||
"platform": "retrobat",
|
"platform": "retrobat",
|
||||||
"display_name": "RetroBat",
|
"display_name": "RetroBat",
|
||||||
"version": "1.0",
|
"version": "1.0",
|
||||||
"generated": "2026-04-01T14:42:50Z",
|
"generated": "2026-04-02T08:33:12Z",
|
||||||
"base_destination": "bios",
|
"base_destination": "bios",
|
||||||
"detect": [
|
"detect": [
|
||||||
{
|
{
|
||||||
@@ -14,8 +14,8 @@
|
|||||||
}
|
}
|
||||||
],
|
],
|
||||||
"standalone_copies": [],
|
"standalone_copies": [],
|
||||||
"total_files": 1162,
|
"total_files": 1163,
|
||||||
"total_size": 4297772175,
|
"total_size": 4297804943,
|
||||||
"files": [
|
"files": [
|
||||||
{
|
{
|
||||||
"dest": "panafz1.bin",
|
"dest": "panafz1.bin",
|
||||||
@@ -2525,6 +2525,15 @@
|
|||||||
"blueMSX"
|
"blueMSX"
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"dest": "Machines/Shared Roms/MSX2J.rom",
|
||||||
|
"sha1": "0081ea0d25bc5cd8d70b60ad8cfdc7307812c0fd",
|
||||||
|
"size": 32768,
|
||||||
|
"repo_path": "bios/Microsoft/MSX/.variants/MSX2.ROM.0081ea0d",
|
||||||
|
"cores": [
|
||||||
|
"blueMSX"
|
||||||
|
]
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"dest": "Machines/Shared Roms/MSX2R2.ROM",
|
"dest": "Machines/Shared Roms/MSX2R2.ROM",
|
||||||
"sha1": "ebb7eb540a390509edfd36c84288ba85e63f2d1f",
|
"sha1": "ebb7eb540a390509edfd36c84288ba85e63f2d1f",
|
||||||
|
|||||||
@@ -4,7 +4,7 @@
|
|||||||
"platform": "retrodeck",
|
"platform": "retrodeck",
|
||||||
"display_name": "RetroDECK",
|
"display_name": "RetroDECK",
|
||||||
"version": "1.0",
|
"version": "1.0",
|
||||||
"generated": "2026-04-01T14:43:08Z",
|
"generated": "2026-04-02T08:33:28Z",
|
||||||
"base_destination": "",
|
"base_destination": "",
|
||||||
"detect": [
|
"detect": [
|
||||||
{
|
{
|
||||||
@@ -15,8 +15,8 @@
|
|||||||
}
|
}
|
||||||
],
|
],
|
||||||
"standalone_copies": [],
|
"standalone_copies": [],
|
||||||
"total_files": 3144,
|
"total_files": 3146,
|
||||||
"total_size": 5871582893,
|
"total_size": 5871648429,
|
||||||
"files": [
|
"files": [
|
||||||
{
|
{
|
||||||
"dest": "bios/panafz1.bin",
|
"dest": "bios/panafz1.bin",
|
||||||
@@ -11477,6 +11477,13 @@
|
|||||||
"repo_path": "bios/Microsoft/MSX/openmsx/yrw801.rom",
|
"repo_path": "bios/Microsoft/MSX/openmsx/yrw801.rom",
|
||||||
"cores": null
|
"cores": null
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"dest": "bios/MSX2J.rom",
|
||||||
|
"sha1": "0081ea0d25bc5cd8d70b60ad8cfdc7307812c0fd",
|
||||||
|
"size": 32768,
|
||||||
|
"repo_path": "bios/Microsoft/MSX/.variants/MSX2.ROM.0081ea0d",
|
||||||
|
"cores": null
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"dest": "bios/MSX2R2.ROM",
|
"dest": "bios/MSX2R2.ROM",
|
||||||
"sha1": "04990aa1c3a3fc7294ec884b81deaa89832df614",
|
"sha1": "04990aa1c3a3fc7294ec884b81deaa89832df614",
|
||||||
@@ -22300,6 +22307,15 @@
|
|||||||
"blueMSX"
|
"blueMSX"
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"dest": "Machines/Shared Roms/MSX2J.rom",
|
||||||
|
"sha1": "0081ea0d25bc5cd8d70b60ad8cfdc7307812c0fd",
|
||||||
|
"size": 32768,
|
||||||
|
"repo_path": "bios/Microsoft/MSX/.variants/MSX2.ROM.0081ea0d",
|
||||||
|
"cores": [
|
||||||
|
"blueMSX"
|
||||||
|
]
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"dest": "Machines/Shared Roms/MSX2R2.ROM",
|
"dest": "Machines/Shared Roms/MSX2R2.ROM",
|
||||||
"sha1": "ebb7eb540a390509edfd36c84288ba85e63f2d1f",
|
"sha1": "ebb7eb540a390509edfd36c84288ba85e63f2d1f",
|
||||||
|
|||||||
@@ -719,6 +719,10 @@ platforms:
|
|||||||
source_format: github_component_manifests
|
source_format: github_component_manifests
|
||||||
hash_type: md5
|
hash_type: md5
|
||||||
schedule: monthly
|
schedule: monthly
|
||||||
|
contributed_by:
|
||||||
|
- username: monster-penguin
|
||||||
|
contribution: platform support
|
||||||
|
pr: 36
|
||||||
cores:
|
cores:
|
||||||
- azahar
|
- azahar
|
||||||
- cemu
|
- cemu
|
||||||
@@ -758,6 +762,10 @@ platforms:
|
|||||||
source_format: json
|
source_format: json
|
||||||
hash_type: sha1
|
hash_type: sha1
|
||||||
schedule: monthly
|
schedule: monthly
|
||||||
|
contributed_by:
|
||||||
|
- username: PixNyb
|
||||||
|
contribution: platform support
|
||||||
|
pr: 37
|
||||||
inherits_from: emulatorjs
|
inherits_from: emulatorjs
|
||||||
target_scraper: null
|
target_scraper: null
|
||||||
target_source: null
|
target_source: null
|
||||||
|
|||||||
@@ -758,6 +758,7 @@ def _build_readme(
|
|||||||
total_files: int,
|
total_files: int,
|
||||||
num_systems: int,
|
num_systems: int,
|
||||||
source: str = "full",
|
source: str = "full",
|
||||||
|
contributors: list[dict] | None = None,
|
||||||
) -> str:
|
) -> str:
|
||||||
"""Build a personalized step-by-step README for each platform pack."""
|
"""Build a personalized step-by-step README for each platform pack."""
|
||||||
sep = "=" * 50
|
sep = "=" * 50
|
||||||
@@ -971,7 +972,18 @@ def _build_readme(
|
|||||||
" Independent of platform scraper accuracy.\n\n"
|
" Independent of platform scraper accuracy.\n\n"
|
||||||
)
|
)
|
||||||
|
|
||||||
return header + source_info + guide + footer
|
credits = ""
|
||||||
|
if contributors:
|
||||||
|
credits = "\nCONTRIBUTORS\n\n"
|
||||||
|
for cb in contributors:
|
||||||
|
username = cb.get("username", "")
|
||||||
|
contribution = cb.get("contribution", "")
|
||||||
|
pr = cb.get("pr")
|
||||||
|
pr_ref = f" (#{pr})" if pr else ""
|
||||||
|
credits += f" @{username} - {contribution}{pr_ref}\n"
|
||||||
|
credits += "\n"
|
||||||
|
|
||||||
|
return header + source_info + guide + credits + footer
|
||||||
|
|
||||||
|
|
||||||
def _build_agnostic_rename_readme(
|
def _build_agnostic_rename_readme(
|
||||||
@@ -1482,9 +1494,15 @@ def generate_pack(
|
|||||||
|
|
||||||
# README.txt for users -personalized step-by-step per platform
|
# README.txt for users -personalized step-by-step per platform
|
||||||
num_systems = len(pack_systems)
|
num_systems = len(pack_systems)
|
||||||
|
_registry_path = Path(platforms_dir) / "_registry.yml"
|
||||||
|
_pack_registry: dict = {}
|
||||||
|
if _registry_path.exists():
|
||||||
|
with open(_registry_path) as _rf:
|
||||||
|
_pack_registry = (yaml.safe_load(_rf) or {}).get("platforms", {})
|
||||||
readme_text = _build_readme(
|
readme_text = _build_readme(
|
||||||
platform_name, platform_display, base_dest, total_files, num_systems,
|
platform_name, platform_display, base_dest, total_files, num_systems,
|
||||||
source=source,
|
source=source,
|
||||||
|
contributors=_pack_registry.get(platform_name, {}).get("contributed_by", []),
|
||||||
)
|
)
|
||||||
zf.writestr("README.txt", readme_text)
|
zf.writestr("README.txt", readme_text)
|
||||||
|
|
||||||
|
|||||||
@@ -93,6 +93,20 @@ def fetch_contributors() -> list[dict]:
|
|||||||
return []
|
return []
|
||||||
|
|
||||||
|
|
||||||
|
def _build_contributor_map(registry: dict) -> dict[str, list[dict]]:
|
||||||
|
"""Map GitHub username to list of {platform, contribution, pr}."""
|
||||||
|
result: dict[str, list[dict]] = {}
|
||||||
|
for platform_name, entry in registry.items():
|
||||||
|
for c in entry.get("contributed_by", []):
|
||||||
|
username = c["username"]
|
||||||
|
result.setdefault(username, []).append({
|
||||||
|
"platform": platform_name,
|
||||||
|
"contribution": c.get("contribution", ""),
|
||||||
|
"pr": c.get("pr"),
|
||||||
|
})
|
||||||
|
return result
|
||||||
|
|
||||||
|
|
||||||
def generate_readme(db: dict, platforms_dir: str) -> str:
|
def generate_readme(db: dict, platforms_dir: str) -> str:
|
||||||
total_files = db.get("total_files", 0)
|
total_files = db.get("total_files", 0)
|
||||||
total_size = db.get("total_size", 0)
|
total_size = db.get("total_size", 0)
|
||||||
@@ -101,6 +115,13 @@ def generate_readme(db: dict, platforms_dir: str) -> str:
|
|||||||
|
|
||||||
platform_names = list_registered_platforms(platforms_dir, include_archived=True)
|
platform_names = list_registered_platforms(platforms_dir, include_archived=True)
|
||||||
|
|
||||||
|
registry_path = Path(platforms_dir) / "_registry.yml"
|
||||||
|
registry = {}
|
||||||
|
if registry_path.exists():
|
||||||
|
import yaml
|
||||||
|
with open(registry_path) as f:
|
||||||
|
registry = (yaml.safe_load(f) or {}).get("platforms", {})
|
||||||
|
|
||||||
from common import load_data_dir_registry
|
from common import load_data_dir_registry
|
||||||
from cross_reference import _build_supplemental_index
|
from cross_reference import _build_supplemental_index
|
||||||
|
|
||||||
@@ -332,19 +353,43 @@ def generate_readme(db: dict, platforms_dir: str) -> str:
|
|||||||
|
|
||||||
contributors = fetch_contributors()
|
contributors = fetch_contributors()
|
||||||
if contributors:
|
if contributors:
|
||||||
|
contributor_map = _build_contributor_map(registry)
|
||||||
|
|
||||||
lines.extend(
|
lines.extend(
|
||||||
[
|
[
|
||||||
"## Contributors",
|
"## Contributors",
|
||||||
"",
|
"",
|
||||||
]
|
]
|
||||||
)
|
)
|
||||||
|
|
||||||
|
platform_display: dict[str, str] = {}
|
||||||
|
for name, cov in coverages.items():
|
||||||
|
platform_display[name] = cov["platform"]
|
||||||
|
|
||||||
for c in contributors:
|
for c in contributors:
|
||||||
login = c["login"]
|
login = c["login"]
|
||||||
avatar = c.get("avatar_url", "")
|
avatar = c.get("avatar_url", "")
|
||||||
url = c.get("html_url", f"https://github.com/{login}")
|
url = c.get("html_url", f"https://github.com/{login}")
|
||||||
lines.append(
|
|
||||||
f'<a href="{url}"><img src="{avatar}" width="50" title="{login}"></a>'
|
contributions = contributor_map.get(login, [])
|
||||||
)
|
if contributions:
|
||||||
|
parts = []
|
||||||
|
for contrib in contributions:
|
||||||
|
display = platform_display.get(contrib["platform"], contrib["platform"])
|
||||||
|
pr = contrib.get("pr")
|
||||||
|
label = display
|
||||||
|
if pr:
|
||||||
|
label += f" [#{pr}](https://github.com/Abdess/retrobios/pull/{pr})"
|
||||||
|
parts.append(label)
|
||||||
|
desc = ", ".join(parts)
|
||||||
|
else:
|
||||||
|
desc = ""
|
||||||
|
|
||||||
|
line = f'<a href="{url}"><img src="{avatar}" width="50" title="{login}"></a>'
|
||||||
|
if desc:
|
||||||
|
line += f" {desc}"
|
||||||
|
lines.append(line)
|
||||||
|
|
||||||
lines.append("")
|
lines.append("")
|
||||||
|
|
||||||
lines.extend(
|
lines.extend(
|
||||||
@@ -375,6 +420,16 @@ def generate_contributing() -> str:
|
|||||||
3. Variants (alternate hashes): `bios/Manufacturer/Console/.variants/`
|
3. Variants (alternate hashes): `bios/Manufacturer/Console/.variants/`
|
||||||
4. Create a Pull Request - checksums are verified automatically
|
4. Create a Pull Request - checksums are verified automatically
|
||||||
|
|
||||||
|
## Add a new platform
|
||||||
|
|
||||||
|
1. Write a scraper in `scripts/scraper/`
|
||||||
|
2. Create the platform YAML in `platforms/`
|
||||||
|
3. Register in `platforms/_registry.yml`
|
||||||
|
4. Submit a Pull Request
|
||||||
|
|
||||||
|
Contributors who add platform support are credited in the README,
|
||||||
|
on the documentation site, and in the BIOS packs.
|
||||||
|
|
||||||
## File conventions
|
## File conventions
|
||||||
|
|
||||||
- Files >50 MB go in GitHub release assets (`large-files` release)
|
- Files >50 MB go in GitHub release assets (`large-files` release)
|
||||||
|
|||||||
@@ -497,6 +497,17 @@ def generate_platform_page(
|
|||||||
lines.append(f"| BIOS path | `{base_dest}/` |")
|
lines.append(f"| BIOS path | `{base_dest}/` |")
|
||||||
if homepage:
|
if homepage:
|
||||||
lines.append(f"| Homepage | [{homepage}]({homepage}) |")
|
lines.append(f"| Homepage | [{homepage}]({homepage}) |")
|
||||||
|
contrib_list = (registry or {}).get(name, {}).get("contributed_by", [])
|
||||||
|
if contrib_list:
|
||||||
|
for cb in contrib_list:
|
||||||
|
username = cb.get("username", "")
|
||||||
|
contribution = cb.get("contribution", "")
|
||||||
|
pr = cb.get("pr")
|
||||||
|
pr_link = f" ([#{pr}]({REPO_URL}/pull/{pr}))" if pr else ""
|
||||||
|
lines.append(
|
||||||
|
f"| Contributed by | [@{username}](https://github.com/{username})"
|
||||||
|
f" - {contribution}{pr_link} |"
|
||||||
|
)
|
||||||
lines.extend(
|
lines.extend(
|
||||||
[
|
[
|
||||||
"",
|
"",
|
||||||
@@ -865,7 +876,11 @@ def generate_emulators_index(profiles: dict) -> str:
|
|||||||
|
|
||||||
|
|
||||||
def generate_emulator_page(
|
def generate_emulator_page(
|
||||||
name: str, profile: dict, db: dict, platform_files: dict | None = None
|
name: str,
|
||||||
|
profile: dict,
|
||||||
|
db: dict,
|
||||||
|
platform_files: dict | None = None,
|
||||||
|
data_names: set[str] | None = None,
|
||||||
) -> str:
|
) -> str:
|
||||||
if profile.get("type") == "alias":
|
if profile.get("type") == "alias":
|
||||||
parent = profile.get("alias_of", profile.get("bios_identical_to", "unknown"))
|
parent = profile.get("alias_of", profile.get("bios_identical_to", "unknown"))
|
||||||
@@ -1022,15 +1037,52 @@ def generate_emulator_page(
|
|||||||
]
|
]
|
||||||
)
|
)
|
||||||
else:
|
else:
|
||||||
|
from cross_reference import _resolve_source
|
||||||
|
|
||||||
by_name = db.get("indexes", {}).get("by_name", {})
|
by_name = db.get("indexes", {}).get("by_name", {})
|
||||||
db.get("files", {})
|
by_name_lower = {k.lower(): k for k in by_name}
|
||||||
|
by_path_suffix = db.get("indexes", {}).get("by_path_suffix", {})
|
||||||
|
by_md5 = db.get("indexes", {}).get("by_md5", {})
|
||||||
|
db_files = db.get("files", {})
|
||||||
|
|
||||||
|
def _file_available(f: dict) -> bool:
|
||||||
|
"""Check if a file is available using the same resolution as cross_reference."""
|
||||||
|
fname = f.get("name", "")
|
||||||
|
if not fname:
|
||||||
|
return False
|
||||||
|
storage = f.get("storage", "")
|
||||||
|
if storage in ("release", "large_file"):
|
||||||
|
return True
|
||||||
|
src = _resolve_source(
|
||||||
|
fname, by_name, by_name_lower, data_names, by_path_suffix,
|
||||||
|
)
|
||||||
|
if src is not None:
|
||||||
|
return True
|
||||||
|
path_field = f.get("path", "")
|
||||||
|
if path_field and path_field != fname:
|
||||||
|
src = _resolve_source(
|
||||||
|
path_field, by_name, by_name_lower, data_names,
|
||||||
|
by_path_suffix,
|
||||||
|
)
|
||||||
|
if src is not None:
|
||||||
|
return True
|
||||||
|
md5_raw = f.get("md5", "")
|
||||||
|
if md5_raw:
|
||||||
|
for md5_val in md5_raw.split(","):
|
||||||
|
md5_val = md5_val.strip().lower()
|
||||||
|
if md5_val and by_md5.get(md5_val):
|
||||||
|
return True
|
||||||
|
sha1 = f.get("sha1", "")
|
||||||
|
if sha1 and sha1 in db_files:
|
||||||
|
return True
|
||||||
|
return False
|
||||||
|
|
||||||
# Stats by category
|
# Stats by category
|
||||||
bios_files = [f for f in files if f.get("category", "bios") == "bios"]
|
bios_files = [f for f in files if f.get("category", "bios") == "bios"]
|
||||||
game_data = [f for f in files if f.get("category") == "game_data"]
|
game_data = [f for f in files if f.get("category") == "game_data"]
|
||||||
bios_zips = [f for f in files if f.get("category") == "bios_zip"]
|
bios_zips = [f for f in files if f.get("category") == "bios_zip"]
|
||||||
|
|
||||||
in_repo_count = sum(1 for f in files if f.get("name", "") in by_name)
|
in_repo_count = sum(1 for f in files if _file_available(f))
|
||||||
missing_count = len(files) - in_repo_count
|
missing_count = len(files) - in_repo_count
|
||||||
req_count = sum(1 for f in files if f.get("required"))
|
req_count = sum(1 for f in files if f.get("required"))
|
||||||
opt_count = len(files) - req_count
|
opt_count = len(files) - req_count
|
||||||
@@ -1058,7 +1110,7 @@ def generate_emulator_page(
|
|||||||
for f in files:
|
for f in files:
|
||||||
fname = f.get("name", "")
|
fname = f.get("name", "")
|
||||||
required = f.get("required", False)
|
required = f.get("required", False)
|
||||||
in_repo = fname in by_name
|
in_repo = _file_available(f)
|
||||||
source_ref = f.get("source_ref", "")
|
source_ref = f.get("source_ref", "")
|
||||||
mode = f.get("mode", "")
|
mode = f.get("mode", "")
|
||||||
hle = f.get("hle_fallback", False)
|
hle = f.get("hle_fallback", False)
|
||||||
@@ -1176,7 +1228,10 @@ def generate_emulator_page(
|
|||||||
if fsystem:
|
if fsystem:
|
||||||
details.append(f"System: {_system_link(fsystem, '../')}")
|
details.append(f"System: {_system_link(fsystem, '../')}")
|
||||||
if size:
|
if size:
|
||||||
size_str = _fmt_size(size)
|
if isinstance(size, list):
|
||||||
|
size_str = " / ".join(_fmt_size(s) for s in size)
|
||||||
|
else:
|
||||||
|
size_str = _fmt_size(size)
|
||||||
if fmin or fmax:
|
if fmin or fmax:
|
||||||
bounds = []
|
bounds = []
|
||||||
if fmin:
|
if fmin:
|
||||||
@@ -1501,19 +1556,32 @@ def generate_gap_analysis(
|
|||||||
|
|
||||||
# ---- Section 3: Core complement (cross-reference provenance) ----
|
# ---- Section 3: Core complement (cross-reference provenance) ----
|
||||||
|
|
||||||
|
from common import expand_platform_declared_names
|
||||||
|
|
||||||
all_declared: set[str] = set()
|
all_declared: set[str] = set()
|
||||||
declared: dict[str, set[str]] = {}
|
declared: dict[str, set[str]] = {}
|
||||||
for _name, cov in coverages.items():
|
for _name, cov in coverages.items():
|
||||||
config = cov["config"]
|
config = cov["config"]
|
||||||
|
# Enrich with alias resolution (MD5 -> SHA1 -> canonical name + aliases)
|
||||||
|
all_declared.update(expand_platform_declared_names(config, db))
|
||||||
for sys_id, system in config.get("systems", {}).items():
|
for sys_id, system in config.get("systems", {}).items():
|
||||||
for fe in system.get("files", []):
|
for fe in system.get("files", []):
|
||||||
fname = fe.get("name", "")
|
fname = fe.get("name", "")
|
||||||
if fname:
|
if fname:
|
||||||
declared.setdefault(sys_id, set()).add(fname)
|
declared.setdefault(sys_id, set()).add(fname)
|
||||||
all_declared.add(fname)
|
|
||||||
|
|
||||||
|
# Only include profiles relevant to at least one platform
|
||||||
|
unique_profiles = {
|
||||||
|
k: v
|
||||||
|
for k, v in profiles.items()
|
||||||
|
if v.get("type") not in ("alias", "test")
|
||||||
|
}
|
||||||
|
relevant_set: set[str] = set()
|
||||||
|
for _name, cov in coverages.items():
|
||||||
|
matched = resolve_platform_cores(cov["config"], unique_profiles)
|
||||||
|
relevant_set.update(matched)
|
||||||
active_profiles = {
|
active_profiles = {
|
||||||
k: v for k, v in profiles.items() if v.get("type") != "alias"
|
k: v for k, v in unique_profiles.items() if k in relevant_set
|
||||||
}
|
}
|
||||||
|
|
||||||
report = run_cross_reference(
|
report = run_cross_reference(
|
||||||
@@ -2187,7 +2255,7 @@ def main():
|
|||||||
str(docs / "emulators" / "index.md"), generate_emulators_index(profiles)
|
str(docs / "emulators" / "index.md"), generate_emulators_index(profiles)
|
||||||
)
|
)
|
||||||
for name, profile in profiles.items():
|
for name, profile in profiles.items():
|
||||||
page = generate_emulator_page(name, profile, db, platform_files)
|
page = generate_emulator_page(name, profile, db, platform_files, suppl_names)
|
||||||
write_if_changed(str(docs / "emulators" / f"{name}.md"), page)
|
write_if_changed(str(docs / "emulators" / f"{name}.md"), page)
|
||||||
|
|
||||||
# Generate cross-reference page
|
# Generate cross-reference page
|
||||||
|
|||||||
@@ -1,6 +1,8 @@
|
|||||||
#!/usr/bin/env python3
|
#!/usr/bin/env python3
|
||||||
"""Scraper for RetroDECK BIOS requirements.
|
"""Scraper for RetroDECK BIOS requirements.
|
||||||
|
|
||||||
|
Platform contributed by @monster-penguin (#36).
|
||||||
|
|
||||||
Source: https://github.com/RetroDECK/components
|
Source: https://github.com/RetroDECK/components
|
||||||
Format: component_manifest.json per component directory
|
Format: component_manifest.json per component directory
|
||||||
Hash: MD5 (primary), SHA256 for some entries (melonDS DSi)
|
Hash: MD5 (primary), SHA256 for some entries (melonDS DSi)
|
||||||
|
|||||||
@@ -1,6 +1,8 @@
|
|||||||
#!/usr/bin/env python3
|
#!/usr/bin/env python3
|
||||||
"""Scraper for RomM BIOS requirements.
|
"""Scraper for RomM BIOS requirements.
|
||||||
|
|
||||||
|
Platform contributed by @PixNyb (#37).
|
||||||
|
|
||||||
Source: https://github.com/rommapp/romm
|
Source: https://github.com/rommapp/romm
|
||||||
Format: JSON fixture mapping "slug:filename" to {size, crc, md5, sha1}
|
Format: JSON fixture mapping "slug:filename" to {size, crc, md5, sha1}
|
||||||
Hash: SHA1 primary (all four hashes available per entry)
|
Hash: SHA1 primary (all four hashes available per entry)
|
||||||
|
|||||||
@@ -102,8 +102,12 @@ def _build_validation_index(profiles: dict) -> dict[str, dict]:
|
|||||||
index[fname]["crypto_only"].update(c for c in checks if c in _CRYPTO_CHECKS)
|
index[fname]["crypto_only"].update(c for c in checks if c in _CRYPTO_CHECKS)
|
||||||
# Size checks
|
# Size checks
|
||||||
if "size" in checks:
|
if "size" in checks:
|
||||||
if f.get("size") is not None:
|
raw_size = f.get("size")
|
||||||
index[fname]["sizes"].add(f["size"])
|
if raw_size is not None:
|
||||||
|
if isinstance(raw_size, list):
|
||||||
|
index[fname]["sizes"].update(raw_size)
|
||||||
|
else:
|
||||||
|
index[fname]["sizes"].add(raw_size)
|
||||||
if f.get("min_size") is not None:
|
if f.get("min_size") is not None:
|
||||||
cur = index[fname]["min_size"]
|
cur = index[fname]["min_size"]
|
||||||
index[fname]["min_size"] = (
|
index[fname]["min_size"] = (
|
||||||
|
|||||||
@@ -1230,13 +1230,24 @@ def verify_emulator(
|
|||||||
check = check_file_validation(local_path, name, validation_index)
|
check = check_file_validation(local_path, name, validation_index)
|
||||||
if check:
|
if check:
|
||||||
reason, _emus = check
|
reason, _emus = check
|
||||||
result = {
|
better = _find_best_variant(
|
||||||
"name": name,
|
file_entry, db, local_path, validation_index,
|
||||||
"status": Status.UNTESTED,
|
)
|
||||||
"required": required,
|
if better:
|
||||||
"path": local_path,
|
result = {
|
||||||
"reason": reason,
|
"name": name,
|
||||||
}
|
"status": Status.OK,
|
||||||
|
"required": required,
|
||||||
|
"path": better,
|
||||||
|
}
|
||||||
|
else:
|
||||||
|
result = {
|
||||||
|
"name": name,
|
||||||
|
"status": Status.UNTESTED,
|
||||||
|
"required": required,
|
||||||
|
"path": local_path,
|
||||||
|
"reason": reason,
|
||||||
|
}
|
||||||
else:
|
else:
|
||||||
result = {
|
result = {
|
||||||
"name": name,
|
"name": name,
|
||||||
|
|||||||
Reference in New Issue
Block a user