mirror of
https://github.com/Abdess/retroarch_system.git
synced 2026-04-18 06:42:33 -05:00
Compare commits
26 Commits
v2026.04.0
...
main
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
e90095abd9 | ||
|
|
c8b27cac5e | ||
|
|
1d191ff190 | ||
|
|
5a6b54c195 | ||
|
|
e5ef253892 | ||
|
|
4ba8648ec2 | ||
|
|
617f5cc364 | ||
|
|
d4ce6df911 | ||
|
|
d0846ed78f | ||
|
|
07b4e55053 | ||
|
|
690e897ca7 | ||
|
|
7471c176c3 | ||
|
|
e72773e46d | ||
|
|
3c0c1cec02 | ||
|
|
faf4236463 | ||
|
|
1c0c502258 | ||
|
|
06c48e071a | ||
|
|
8f93ee2239 | ||
|
|
9ba8b02ff1 | ||
|
|
6fc2753f3e | ||
|
|
486b359c22 | ||
|
|
76a3543672 | ||
|
|
48d185dd7d | ||
|
|
6dbc3f510b | ||
|
|
97e26103f5 | ||
|
|
59d777a33d |
BIN
.github/assets/banner-light.png
vendored
Normal file
BIN
.github/assets/banner-light.png
vendored
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 246 KiB |
BIN
.github/assets/banner.png
vendored
Normal file
BIN
.github/assets/banner.png
vendored
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 135 KiB |
BIN
.github/assets/favicon.png
vendored
Normal file
BIN
.github/assets/favicon.png
vendored
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 2.2 KiB |
BIN
.github/assets/logo.png
vendored
Normal file
BIN
.github/assets/logo.png
vendored
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 72 KiB |
BIN
.github/assets/social-preview.png
vendored
Normal file
BIN
.github/assets/social-preview.png
vendored
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 75 KiB |
10
README.md
10
README.md
@@ -1,4 +1,6 @@
|
|||||||
# RetroBIOS
|
<p align="center">
|
||||||
|
<img src=".github/assets/banner.png" alt="RetroBIOS" width="400">
|
||||||
|
</p>
|
||||||
|
|
||||||
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.
|
||||||
|
|
||||||
@@ -122,6 +124,10 @@ To keep packs accurate, each file is checked against the emulator's source code.
|
|||||||
<a href="https://github.com/monster-penguin"><img src="https://avatars.githubusercontent.com/u/266009589?v=4" width="50" title="monster-penguin"></a>
|
<a href="https://github.com/monster-penguin"><img src="https://avatars.githubusercontent.com/u/266009589?v=4" width="50" title="monster-penguin"></a>
|
||||||
|
|
||||||
|
|
||||||
|
## Community tools
|
||||||
|
|
||||||
|
- [BIOS Preservation Tool](https://github.com/monster-penguin/BIOS-Preservation-Tool) by [monster-penguin](https://github.com/monster-penguin) - scan, verify, and stage your own BIOS collection using RetroBIOS hash metadata
|
||||||
|
|
||||||
## Contributing
|
## Contributing
|
||||||
|
|
||||||
See [CONTRIBUTING.md](CONTRIBUTING.md) for guidelines.
|
See [CONTRIBUTING.md](CONTRIBUTING.md) for guidelines.
|
||||||
@@ -130,4 +136,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-04-02T13:38:26Z*
|
*Auto-generated on 2026-04-03T12:59:52Z*
|
||||||
|
|||||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -1,5 +1,5 @@
|
|||||||
{
|
{
|
||||||
"generated_at": "2026-04-02T12:45:07Z",
|
"generated_at": "2026-04-18T07:32:14Z",
|
||||||
"total_files": 7302,
|
"total_files": 7302,
|
||||||
"total_size": 9190488848,
|
"total_size": 9190488848,
|
||||||
"files": {
|
"files": {
|
||||||
@@ -30814,8 +30814,8 @@
|
|||||||
"adler32": "87461161"
|
"adler32": "87461161"
|
||||||
},
|
},
|
||||||
"65d07426b520ddd3115d40f255511e0fd2e20ae7": {
|
"65d07426b520ddd3115d40f255511e0fd2e20ae7": {
|
||||||
"path": "bios/GCE/Vectrex/VEC_MineStorm.vec",
|
"path": "bios/GCE/Vectrex/VEC_Minestorm.vec",
|
||||||
"name": "VEC_MineStorm.vec",
|
"name": "VEC_Minestorm.vec",
|
||||||
"size": 8192,
|
"size": 8192,
|
||||||
"sha1": "65d07426b520ddd3115d40f255511e0fd2e20ae7",
|
"sha1": "65d07426b520ddd3115d40f255511e0fd2e20ae7",
|
||||||
"md5": "ab082fa8c8e632dd68589a8c7741388f",
|
"md5": "ab082fa8c8e632dd68589a8c7741388f",
|
||||||
@@ -89077,7 +89077,7 @@
|
|||||||
"VEC_Bios.bin": [
|
"VEC_Bios.bin": [
|
||||||
"b9bbf5bb0eac52d039a4a993a2d8064b862c9e28"
|
"b9bbf5bb0eac52d039a4a993a2d8064b862c9e28"
|
||||||
],
|
],
|
||||||
"VEC_MineStorm.vec": [
|
"VEC_Minestorm.vec": [
|
||||||
"65d07426b520ddd3115d40f255511e0fd2e20ae7"
|
"65d07426b520ddd3115d40f255511e0fd2e20ae7"
|
||||||
],
|
],
|
||||||
"CHRGEN.BIN": [
|
"CHRGEN.BIN": [
|
||||||
@@ -89087,8 +89087,7 @@
|
|||||||
"aea7a4c0c7ffe1f212f7b9faecfd728862ac6904"
|
"aea7a4c0c7ffe1f212f7b9faecfd728862ac6904"
|
||||||
],
|
],
|
||||||
"doom2.wad": [
|
"doom2.wad": [
|
||||||
"6d559b7ceece4f5ad457415049711992370d520a",
|
"6d559b7ceece4f5ad457415049711992370d520a"
|
||||||
"7ec7652fcfce8ddc6e801839291f0e28ef1d5ae7"
|
|
||||||
],
|
],
|
||||||
"freedoom1.wad": [
|
"freedoom1.wad": [
|
||||||
"97bb88094a51457a8dcad98c58be22a2d0fa9a37"
|
"97bb88094a51457a8dcad98c58be22a2d0fa9a37"
|
||||||
@@ -101523,27 +101522,6 @@
|
|||||||
"samesame.zip": [
|
"samesame.zip": [
|
||||||
"cdb09d3ffaa867ff9e7387cf1934e9011565d546"
|
"cdb09d3ffaa867ff9e7387cf1934e9011565d546"
|
||||||
],
|
],
|
||||||
"kvb1.wav": [
|
|
||||||
"6a582aebcefd6e2a97bdd8968202aab9851a889c"
|
|
||||||
],
|
|
||||||
"kvb2.wav": [
|
|
||||||
"60a425c6bde3226ab731995562716321be20fc49"
|
|
||||||
],
|
|
||||||
"kvb3.wav": [
|
|
||||||
"5e34125c4d6c209b21d1c892f3df0ec1644fd0d8"
|
|
||||||
],
|
|
||||||
"kvs1.wav": [
|
|
||||||
"b094c2c1fca81a0e531e0541f302346150ec4604"
|
|
||||||
],
|
|
||||||
"kvs2.wav": [
|
|
||||||
"8b83b2eea01b3e08ceb885aeb153d4084bddb63c"
|
|
||||||
],
|
|
||||||
"kvs3.wav": [
|
|
||||||
"86896a1e272d8715489de9b407f0b8a42f82d4a0"
|
|
||||||
],
|
|
||||||
"kvshared.wav": [
|
|
||||||
"9adf10cdf1de833b194c7d8797ad1f041ad98dd3"
|
|
||||||
],
|
|
||||||
"atari_osb.rom": [
|
"atari_osb.rom": [
|
||||||
"db1031585968cfc6ec2ecda5c9a5a52f61444a3b"
|
"db1031585968cfc6ec2ecda5c9a5a52f61444a3b"
|
||||||
],
|
],
|
||||||
@@ -101754,18 +101732,18 @@
|
|||||||
"kernal.318004-05.bin": [
|
"kernal.318004-05.bin": [
|
||||||
"7c7e07f016391174a557e790c4ef1cbe33512cdb"
|
"7c7e07f016391174a557e790c4ef1cbe33512cdb"
|
||||||
],
|
],
|
||||||
"characters-japanese.bin": [
|
|
||||||
"dae61ac03065aa2904af5c123ce821855898c555"
|
|
||||||
],
|
|
||||||
"kernel-japanese.bin": [
|
|
||||||
"c9ead45e6674d1042ca6199160e8583c23aeac22"
|
|
||||||
],
|
|
||||||
"basic.bin": [
|
"basic.bin": [
|
||||||
"587d1e90950675ab6b12d91248a3f0d640d02e8d"
|
"587d1e90950675ab6b12d91248a3f0d640d02e8d"
|
||||||
],
|
],
|
||||||
"characters-english.bin": [
|
"characters-english.bin": [
|
||||||
"4fd85ab6647ee2ac7ba40f729323f2472d35b9b4"
|
"4fd85ab6647ee2ac7ba40f729323f2472d35b9b4"
|
||||||
],
|
],
|
||||||
|
"characters-japanese.bin": [
|
||||||
|
"dae61ac03065aa2904af5c123ce821855898c555"
|
||||||
|
],
|
||||||
|
"kernel-japanese.bin": [
|
||||||
|
"c9ead45e6674d1042ca6199160e8583c23aeac22"
|
||||||
|
],
|
||||||
"kernel-ntsc.bin": [
|
"kernel-ntsc.bin": [
|
||||||
"06de7ec017a5e78bd6746d89c2ecebb646efeb19"
|
"06de7ec017a5e78bd6746d89c2ecebb646efeb19"
|
||||||
],
|
],
|
||||||
@@ -101818,9 +101796,6 @@
|
|||||||
"sl90025.bin": [
|
"sl90025.bin": [
|
||||||
"759e2ed31fbde4a2d8daf8b9f3e0dffebc90dae2"
|
"759e2ed31fbde4a2d8daf8b9f3e0dffebc90dae2"
|
||||||
],
|
],
|
||||||
"VEC_Minestorm.vec": [
|
|
||||||
"65d07426b520ddd3115d40f255511e0fd2e20ae7"
|
|
||||||
],
|
|
||||||
"Vectrex_Bios.bin": [
|
"Vectrex_Bios.bin": [
|
||||||
"b9bbf5bb0eac52d039a4a993a2d8064b862c9e28"
|
"b9bbf5bb0eac52d039a4a993a2d8064b862c9e28"
|
||||||
],
|
],
|
||||||
@@ -101849,15 +101824,6 @@
|
|||||||
"px-7_basic-bios1.rom": [
|
"px-7_basic-bios1.rom": [
|
||||||
"302afb5d8be26c758309ca3df611ae69cced2821"
|
"302afb5d8be26c758309ca3df611ae69cced2821"
|
||||||
],
|
],
|
||||||
"msx.rom": [
|
|
||||||
"409e82adac40f6bdd18eb6c84e8b2fbdc7fb5498"
|
|
||||||
],
|
|
||||||
"Machines/Shared Roms/MSX.rom": [
|
|
||||||
"409e82adac40f6bdd18eb6c84e8b2fbdc7fb5498"
|
|
||||||
],
|
|
||||||
"msx2.rom": [
|
|
||||||
"6103b39f1e38d1aa2d84b1c3219c44f1abb5436e"
|
|
||||||
],
|
|
||||||
"nms8250_basic-bios2.rom": [
|
"nms8250_basic-bios2.rom": [
|
||||||
"6103b39f1e38d1aa2d84b1c3219c44f1abb5436e"
|
"6103b39f1e38d1aa2d84b1c3219c44f1abb5436e"
|
||||||
],
|
],
|
||||||
@@ -101867,9 +101833,6 @@
|
|||||||
"nms8245_basic-bios2.rom": [
|
"nms8245_basic-bios2.rom": [
|
||||||
"6103b39f1e38d1aa2d84b1c3219c44f1abb5436e"
|
"6103b39f1e38d1aa2d84b1c3219c44f1abb5436e"
|
||||||
],
|
],
|
||||||
"msx2ext.rom": [
|
|
||||||
"5c1f9c7fb655e43d38e5dd1fcc6b942b2ff68b02"
|
|
||||||
],
|
|
||||||
"nms8250_msx2sub.rom": [
|
"nms8250_msx2sub.rom": [
|
||||||
"5c1f9c7fb655e43d38e5dd1fcc6b942b2ff68b02"
|
"5c1f9c7fb655e43d38e5dd1fcc6b942b2ff68b02"
|
||||||
],
|
],
|
||||||
@@ -103332,6 +103295,9 @@
|
|||||||
"EXOS21.ROM": [
|
"EXOS21.ROM": [
|
||||||
"55315b20fecb4441a07ee4bc5dc7153f396e0a2e"
|
"55315b20fecb4441a07ee4bc5dc7153f396e0a2e"
|
||||||
],
|
],
|
||||||
|
"Machines/Shared Roms/MSX.rom": [
|
||||||
|
"409e82adac40f6bdd18eb6c84e8b2fbdc7fb5498"
|
||||||
|
],
|
||||||
"sony-playstation:239665b1a3dade1b5a52c06338011044": [
|
"sony-playstation:239665b1a3dade1b5a52c06338011044": [
|
||||||
"343883a7b555646da8cee54aadd2795b6e7dd070"
|
"343883a7b555646da8cee54aadd2795b6e7dd070"
|
||||||
],
|
],
|
||||||
@@ -132695,14 +132661,12 @@
|
|||||||
"81193965a374d77b99b4743d317824b53c3e3c78",
|
"81193965a374d77b99b4743d317824b53c3e3c78",
|
||||||
"8f70d1b74483ba3a37e86cf16c849d601a8c3d2c",
|
"8f70d1b74483ba3a37e86cf16c849d601a8c3d2c",
|
||||||
"759e2ed31fbde4a2d8daf8b9f3e0dffebc90dae2",
|
"759e2ed31fbde4a2d8daf8b9f3e0dffebc90dae2",
|
||||||
"65d07426b520ddd3115d40f255511e0fd2e20ae7",
|
|
||||||
"5a65b922b562cb1f57dab51b73151283f0e20c7a",
|
"5a65b922b562cb1f57dab51b73151283f0e20c7a",
|
||||||
"f9608bb4ad1cfe3640d02844c7ad8e0bcd974917",
|
"f9608bb4ad1cfe3640d02844c7ad8e0bcd974917",
|
||||||
"000ac11b702a4c42e40f135df12fa5f2f13e20a1",
|
"000ac11b702a4c42e40f135df12fa5f2f13e20a1",
|
||||||
"3656bb3bbc17d280d2016fe4f6ff3cded3082a41",
|
"3656bb3bbc17d280d2016fe4f6ff3cded3082a41",
|
||||||
"e998f0c441f4f1800ef44e42cd1659150206cf79",
|
"e998f0c441f4f1800ef44e42cd1659150206cf79",
|
||||||
"302afb5d8be26c758309ca3df611ae69cced2821",
|
"302afb5d8be26c758309ca3df611ae69cced2821",
|
||||||
"409e82adac40f6bdd18eb6c84e8b2fbdc7fb5498",
|
|
||||||
"6103b39f1e38d1aa2d84b1c3219c44f1abb5436e",
|
"6103b39f1e38d1aa2d84b1c3219c44f1abb5436e",
|
||||||
"5c1f9c7fb655e43d38e5dd1fcc6b942b2ff68b02",
|
"5c1f9c7fb655e43d38e5dd1fcc6b942b2ff68b02",
|
||||||
"5aff2d9b6efc723bc395b0f96f0adfa83cc54a49",
|
"5aff2d9b6efc723bc395b0f96f0adfa83cc54a49",
|
||||||
@@ -132865,6 +132829,7 @@
|
|||||||
"9451a1a09d8f75944dbd6f91193fc360f1de80ac",
|
"9451a1a09d8f75944dbd6f91193fc360f1de80ac",
|
||||||
"03bbb386cf530e804363acdfc1d13e64cf28af2e",
|
"03bbb386cf530e804363acdfc1d13e64cf28af2e",
|
||||||
"55315b20fecb4441a07ee4bc5dc7153f396e0a2e",
|
"55315b20fecb4441a07ee4bc5dc7153f396e0a2e",
|
||||||
|
"409e82adac40f6bdd18eb6c84e8b2fbdc7fb5498",
|
||||||
"343883a7b555646da8cee54aadd2795b6e7dd070",
|
"343883a7b555646da8cee54aadd2795b6e7dd070",
|
||||||
"15c94da3cc5a38a582429575af4198c487fe893c",
|
"15c94da3cc5a38a582429575af4198c487fe893c",
|
||||||
"73107d468fc7cb1d2c5b18b269715dd889ecef06",
|
"73107d468fc7cb1d2c5b18b269715dd889ecef06",
|
||||||
|
|||||||
@@ -59,6 +59,7 @@ files:
|
|||||||
path: sysdata/otp.bin
|
path: sysdata/otp.bin
|
||||||
system: nintendo-3ds
|
system: nintendo-3ds
|
||||||
required: false
|
required: false
|
||||||
|
size: 256
|
||||||
validation: [size, crypto]
|
validation: [size, crypto]
|
||||||
note: "OTP data for console key derivation"
|
note: "OTP data for console key derivation"
|
||||||
source_ref: "src/core/hw/unique_data.cpp:126-167, src/core/hw/unique_data.cpp:213"
|
source_ref: "src/core/hw/unique_data.cpp:126-167, src/core/hw/unique_data.cpp:213"
|
||||||
@@ -67,6 +68,7 @@ files:
|
|||||||
path: nand/private/movable.sed
|
path: nand/private/movable.sed
|
||||||
system: nintendo-3ds
|
system: nintendo-3ds
|
||||||
required: false
|
required: false
|
||||||
|
size: 320
|
||||||
validation: [size, signature]
|
validation: [size, signature]
|
||||||
note: "console-unique key seed"
|
note: "console-unique key seed"
|
||||||
source_ref: "src/core/hw/unique_data.cpp:170-200, src/core/hw/unique_data.cpp:217"
|
source_ref: "src/core/hw/unique_data.cpp:170-200, src/core/hw/unique_data.cpp:217"
|
||||||
@@ -75,6 +77,7 @@ files:
|
|||||||
path: nand/rw/sys/SecureInfo_A
|
path: nand/rw/sys/SecureInfo_A
|
||||||
system: nintendo-3ds
|
system: nintendo-3ds
|
||||||
required: false
|
required: false
|
||||||
|
size: 273
|
||||||
validation: [size, signature]
|
validation: [size, signature]
|
||||||
note: "console serial and region data"
|
note: "console serial and region data"
|
||||||
source_ref: "src/core/hw/unique_data.cpp:43-92, src/core/hw/unique_data.cpp:205"
|
source_ref: "src/core/hw/unique_data.cpp:43-92, src/core/hw/unique_data.cpp:205"
|
||||||
@@ -83,6 +86,7 @@ files:
|
|||||||
path: nand/rw/sys/LocalFriendCodeSeed_B
|
path: nand/rw/sys/LocalFriendCodeSeed_B
|
||||||
system: nintendo-3ds
|
system: nintendo-3ds
|
||||||
required: false
|
required: false
|
||||||
|
size: 284
|
||||||
validation: [size, signature]
|
validation: [size, signature]
|
||||||
note: "friend code generation seed"
|
note: "friend code generation seed"
|
||||||
source_ref: "src/core/hw/unique_data.cpp:94-123, src/core/hw/unique_data.cpp:209"
|
source_ref: "src/core/hw/unique_data.cpp:94-123, src/core/hw/unique_data.cpp:209"
|
||||||
|
|||||||
@@ -4,7 +4,7 @@ core_classification: official_port
|
|||||||
source: "https://github.com/libretro/bsnes-libretro"
|
source: "https://github.com/libretro/bsnes-libretro"
|
||||||
upstream: "https://github.com/bsnes-emu/bsnes"
|
upstream: "https://github.com/bsnes-emu/bsnes"
|
||||||
logo: "https://raw.githubusercontent.com/bsnes-emu/bsnes/master/bsnes/target-bsnes/resource/bsnes.svg"
|
logo: "https://raw.githubusercontent.com/bsnes-emu/bsnes/master/bsnes/target-bsnes/resource/bsnes.svg"
|
||||||
profiled_date: "2026-03-23"
|
profiled_date: "2026-04-05"
|
||||||
core_version: "115"
|
core_version: "115"
|
||||||
display_name: "Nintendo - SNES / SFC (bsnes)"
|
display_name: "Nintendo - SNES / SFC (bsnes)"
|
||||||
cores: [bsnes]
|
cores: [bsnes]
|
||||||
@@ -29,71 +29,91 @@ files:
|
|||||||
# program ROM: 2048 x 24-bit words, data ROM: 1024 x 16-bit words
|
# program ROM: 2048 x 24-bit words, data ROM: 1024 x 16-bit words
|
||||||
|
|
||||||
- name: "dsp1.program.rom"
|
- name: "dsp1.program.rom"
|
||||||
size: 6144 # 0x1800
|
system: nintendo-snes
|
||||||
|
size: 6144
|
||||||
|
validation: [size]
|
||||||
required: false
|
required: false
|
||||||
hle_fallback: true
|
hle_fallback: true
|
||||||
note: "NEC uPD7725 program ROM for DSP1. HLE fallback available"
|
note: "NEC uPD7725 program ROM for DSP1"
|
||||||
source_ref: "sfc/cartridge/load.cpp:490-494, heuristics/super-famicom.cpp:601"
|
source_ref: "sfc/cartridge/load.cpp:490-494, heuristics/super-famicom.cpp:601"
|
||||||
|
|
||||||
- name: "dsp1.data.rom"
|
- name: "dsp1.data.rom"
|
||||||
size: 2048 # 0x800
|
system: nintendo-snes
|
||||||
|
size: 2048
|
||||||
|
validation: [size]
|
||||||
required: false
|
required: false
|
||||||
hle_fallback: true
|
hle_fallback: true
|
||||||
note: "NEC uPD7725 data ROM for DSP1. HLE fallback available"
|
note: "NEC uPD7725 data ROM for DSP1"
|
||||||
source_ref: "sfc/cartridge/load.cpp:498-503"
|
source_ref: "sfc/cartridge/load.cpp:498-503"
|
||||||
|
|
||||||
- name: "dsp1b.program.rom"
|
- name: "dsp1b.program.rom"
|
||||||
size: 6144 # 0x1800
|
system: nintendo-snes
|
||||||
|
size: 6144
|
||||||
|
validation: [size]
|
||||||
required: false
|
required: false
|
||||||
hle_fallback: true
|
hle_fallback: true
|
||||||
note: "NEC uPD7725 program ROM for DSP1B (default NEC identifier). HLE fallback available"
|
note: "NEC uPD7725 program ROM for DSP1B (default NEC identifier)"
|
||||||
source_ref: "heuristics/super-famicom.cpp:606"
|
source_ref: "heuristics/super-famicom.cpp:606"
|
||||||
|
|
||||||
- name: "dsp1b.data.rom"
|
- name: "dsp1b.data.rom"
|
||||||
size: 2048 # 0x800
|
system: nintendo-snes
|
||||||
|
size: 2048
|
||||||
|
validation: [size]
|
||||||
required: false
|
required: false
|
||||||
hle_fallback: true
|
hle_fallback: true
|
||||||
note: "NEC uPD7725 data ROM for DSP1B. HLE fallback available"
|
note: "NEC uPD7725 data ROM for DSP1B"
|
||||||
source_ref: "heuristics/super-famicom.cpp:606"
|
source_ref: "heuristics/super-famicom.cpp:606"
|
||||||
|
|
||||||
- name: "dsp2.program.rom"
|
- name: "dsp2.program.rom"
|
||||||
size: 6144 # 0x1800
|
system: nintendo-snes
|
||||||
|
size: 6144
|
||||||
|
validation: [size]
|
||||||
required: false
|
required: false
|
||||||
hle_fallback: true
|
hle_fallback: true
|
||||||
note: "NEC uPD7725 program ROM for DSP2 (Dungeon Master). HLE fallback available"
|
note: "NEC uPD7725 program ROM for DSP2 (Dungeon Master)"
|
||||||
source_ref: "sfc/cartridge/load.cpp:515-520, heuristics/super-famicom.cpp:602"
|
source_ref: "sfc/cartridge/load.cpp:515-520, heuristics/super-famicom.cpp:602"
|
||||||
|
|
||||||
- name: "dsp2.data.rom"
|
- name: "dsp2.data.rom"
|
||||||
size: 2048 # 0x800
|
system: nintendo-snes
|
||||||
|
size: 2048
|
||||||
|
validation: [size]
|
||||||
required: false
|
required: false
|
||||||
hle_fallback: true
|
hle_fallback: true
|
||||||
note: "NEC uPD7725 data ROM for DSP2. HLE fallback available"
|
note: "NEC uPD7725 data ROM for DSP2"
|
||||||
source_ref: "sfc/cartridge/load.cpp:498-503"
|
source_ref: "sfc/cartridge/load.cpp:498-503"
|
||||||
|
|
||||||
- name: "dsp3.program.rom"
|
- name: "dsp3.program.rom"
|
||||||
size: 6144 # 0x1800
|
system: nintendo-snes
|
||||||
|
size: 6144
|
||||||
|
validation: [size]
|
||||||
required: true
|
required: true
|
||||||
note: "NEC uPD7725 program ROM for DSP3 (SD Gundam GX). No HLE fallback"
|
note: "NEC uPD7725 program ROM for DSP3 (SD Gundam GX). No HLE fallback"
|
||||||
source_ref: "sfc/cartridge/load.cpp:531-534"
|
source_ref: "sfc/cartridge/load.cpp:531-534"
|
||||||
|
|
||||||
- name: "dsp3.data.rom"
|
- name: "dsp3.data.rom"
|
||||||
size: 2048 # 0x800
|
system: nintendo-snes
|
||||||
|
size: 2048
|
||||||
|
validation: [size]
|
||||||
required: true
|
required: true
|
||||||
note: "NEC uPD7725 data ROM for DSP3. No HLE fallback"
|
note: "NEC uPD7725 data ROM for DSP3. No HLE fallback"
|
||||||
source_ref: "sfc/cartridge/load.cpp:531-534"
|
source_ref: "sfc/cartridge/load.cpp:531-534"
|
||||||
|
|
||||||
- name: "dsp4.program.rom"
|
- name: "dsp4.program.rom"
|
||||||
size: 6144 # 0x1800
|
system: nintendo-snes
|
||||||
|
size: 6144
|
||||||
|
validation: [size]
|
||||||
required: false
|
required: false
|
||||||
hle_fallback: true
|
hle_fallback: true
|
||||||
note: "NEC uPD7725 program ROM for DSP4 (Top Gear 3000). HLE fallback available"
|
note: "NEC uPD7725 program ROM for DSP4 (Top Gear 3000)"
|
||||||
source_ref: "sfc/cartridge/load.cpp:522-528, heuristics/super-famicom.cpp:604-605"
|
source_ref: "sfc/cartridge/load.cpp:522-528, heuristics/super-famicom.cpp:604-605"
|
||||||
|
|
||||||
- name: "dsp4.data.rom"
|
- name: "dsp4.data.rom"
|
||||||
size: 2048 # 0x800
|
system: nintendo-snes
|
||||||
|
size: 2048
|
||||||
|
validation: [size]
|
||||||
required: false
|
required: false
|
||||||
hle_fallback: true
|
hle_fallback: true
|
||||||
note: "NEC uPD7725 data ROM for DSP4. HLE fallback available"
|
note: "NEC uPD7725 data ROM for DSP4"
|
||||||
source_ref: "sfc/cartridge/load.cpp:498-503"
|
source_ref: "sfc/cartridge/load.cpp:498-503"
|
||||||
|
|
||||||
# -- NEC uPD96050 coprocessor (ST010, ST011) --
|
# -- NEC uPD96050 coprocessor (ST010, ST011) --
|
||||||
@@ -101,27 +121,35 @@ files:
|
|||||||
# program ROM: 16384 x 24-bit words, data ROM: 2048 x 16-bit words
|
# program ROM: 16384 x 24-bit words, data ROM: 2048 x 16-bit words
|
||||||
|
|
||||||
- name: "st010.program.rom"
|
- name: "st010.program.rom"
|
||||||
size: 49152 # 0xC000
|
system: nintendo-snes
|
||||||
|
size: 49152
|
||||||
|
validation: [size]
|
||||||
required: false
|
required: false
|
||||||
hle_fallback: true
|
hle_fallback: true
|
||||||
note: "NEC uPD96050 program ROM for ST010. HLE fallback available"
|
note: "NEC uPD96050 program ROM for ST010"
|
||||||
source_ref: "sfc/cartridge/load.cpp:570-574, heuristics/super-famicom.cpp:583-587"
|
source_ref: "sfc/cartridge/load.cpp:570-574, heuristics/super-famicom.cpp:583-587"
|
||||||
|
|
||||||
- name: "st010.data.rom"
|
- name: "st010.data.rom"
|
||||||
size: 4096 # 0x1000
|
system: nintendo-snes
|
||||||
|
size: 4096
|
||||||
|
validation: [size]
|
||||||
required: false
|
required: false
|
||||||
hle_fallback: true
|
hle_fallback: true
|
||||||
note: "NEC uPD96050 data ROM for ST010. HLE fallback available"
|
note: "NEC uPD96050 data ROM for ST010"
|
||||||
source_ref: "sfc/cartridge/load.cpp:578-583"
|
source_ref: "sfc/cartridge/load.cpp:578-583"
|
||||||
|
|
||||||
- name: "st011.program.rom"
|
- name: "st011.program.rom"
|
||||||
size: 49152 # 0xC000
|
system: nintendo-snes
|
||||||
|
size: 49152
|
||||||
|
validation: [size]
|
||||||
required: true
|
required: true
|
||||||
note: "NEC uPD96050 program ROM for ST011 (2dan Morita Shougi). No HLE fallback"
|
note: "NEC uPD96050 program ROM for ST011 (2dan Morita Shougi). No HLE fallback"
|
||||||
source_ref: "sfc/cartridge/load.cpp:599-601, heuristics/super-famicom.cpp:586"
|
source_ref: "sfc/cartridge/load.cpp:599-601, heuristics/super-famicom.cpp:586"
|
||||||
|
|
||||||
- name: "st011.data.rom"
|
- name: "st011.data.rom"
|
||||||
size: 4096 # 0x1000
|
system: nintendo-snes
|
||||||
|
size: 4096
|
||||||
|
validation: [size]
|
||||||
required: true
|
required: true
|
||||||
note: "NEC uPD96050 data ROM for ST011. No HLE fallback"
|
note: "NEC uPD96050 data ROM for ST011. No HLE fallback"
|
||||||
source_ref: "sfc/cartridge/load.cpp:599-601"
|
source_ref: "sfc/cartridge/load.cpp:599-601"
|
||||||
@@ -131,13 +159,17 @@ files:
|
|||||||
# No HLE fallback exists
|
# No HLE fallback exists
|
||||||
|
|
||||||
- name: "st018.program.rom"
|
- name: "st018.program.rom"
|
||||||
size: 131072 # 0x20000 (128 KB)
|
system: nintendo-snes
|
||||||
|
size: 131072
|
||||||
|
validation: [size]
|
||||||
required: true
|
required: true
|
||||||
note: "ARM6 program ROM for ST018 (Hayazashi Nidan Morita Shougi). No HLE fallback"
|
note: "ARM6 program ROM for ST018 (Hayazashi Nidan Morita Shougi). No HLE fallback"
|
||||||
source_ref: "sfc/cartridge/load.cpp:379-385, armdsp/armdsp.hpp:31, heuristics/super-famicom.cpp:580"
|
source_ref: "sfc/cartridge/load.cpp:379-385, armdsp/armdsp.hpp:31, heuristics/super-famicom.cpp:580"
|
||||||
|
|
||||||
- name: "st018.data.rom"
|
- name: "st018.data.rom"
|
||||||
size: 32768 # 0x8000 (32 KB)
|
system: nintendo-snes
|
||||||
|
size: 32768
|
||||||
|
validation: [size]
|
||||||
required: true
|
required: true
|
||||||
note: "ARM6 data ROM for ST018. No HLE fallback"
|
note: "ARM6 data ROM for ST018. No HLE fallback"
|
||||||
source_ref: "sfc/cartridge/load.cpp:387-393, armdsp/armdsp.hpp:32"
|
source_ref: "sfc/cartridge/load.cpp:387-393, armdsp/armdsp.hpp:32"
|
||||||
@@ -148,11 +180,16 @@ files:
|
|||||||
# Built-in staticDataROM fallback also present for LLE when file missing
|
# Built-in staticDataROM fallback also present for LLE when file missing
|
||||||
|
|
||||||
- name: "cx4.data.rom"
|
- name: "cx4.data.rom"
|
||||||
size: 3072 # 0xC00
|
system: nintendo-snes
|
||||||
|
size: 3072
|
||||||
|
sha1: a002f4efba42775a31185d443f3ed1790b0e949a
|
||||||
|
md5: 037ac4296b6b6a5c47c440188d3c72e3
|
||||||
|
crc32: b6e76a6a
|
||||||
|
validation: [size]
|
||||||
required: false
|
required: false
|
||||||
hle_fallback: true
|
hle_fallback: true
|
||||||
note: "Hitachi HG51BS169 data ROM for Cx4 (Mega Man X2/X3). HLE fallback and built-in static ROM available"
|
note: "Hitachi HG51BS169 data ROM for Cx4 (Mega Man X2/X3). HLE fallback and built-in static ROM available"
|
||||||
source_ref: "sfc/cartridge/load.cpp:444-456, hitachidsp/hitachidsp.hpp:49, heuristics/super-famicom.cpp:597"
|
source_ref: "sfc/cartridge/load.cpp:444-456, hitachidsp/hitachidsp.hpp:49, heuristics/super-famicom.cpp:597, hitachidsp/data-rom.cpp:3 (staticDataROM[3072])"
|
||||||
|
|
||||||
# -- Super Game Boy cartridge ROM --
|
# -- Super Game Boy cartridge ROM --
|
||||||
# The SGB boot ROMs (256 bytes each) are embedded in icd/boot-roms.cpp.
|
# The SGB boot ROMs (256 bytes each) are embedded in icd/boot-roms.cpp.
|
||||||
@@ -160,23 +197,26 @@ files:
|
|||||||
# Core option bsnes_sgb_bios selects between SGB1.sfc and SGB2.sfc.
|
# Core option bsnes_sgb_bios selects between SGB1.sfc and SGB2.sfc.
|
||||||
|
|
||||||
- name: "SGB1.sfc"
|
- name: "SGB1.sfc"
|
||||||
|
system: nintendo-super-game-boy
|
||||||
required: false
|
required: false
|
||||||
note: "Super Game Boy 1 cartridge ROM. Needed to play Game Boy games via SGB mode"
|
note: "Super Game Boy 1 cartridge ROM, loaded when playing .gb/.gbc via SGB mode"
|
||||||
source_ref: "target-libretro/libretro.cpp:689,933, target-libretro/libretro_core_options.h:689"
|
source_ref: "target-libretro/libretro.cpp:926-935 (system_dir + sgb_bios), libretro.cpp:509 (core option bsnes_sgb_bios)"
|
||||||
|
|
||||||
- name: "SGB2.sfc"
|
- name: "SGB2.sfc"
|
||||||
|
system: nintendo-super-game-boy
|
||||||
required: false
|
required: false
|
||||||
note: "Super Game Boy 2 cartridge ROM. Uses dedicated oscillator for accurate GB speed"
|
note: "Super Game Boy 2 cartridge ROM, uses dedicated oscillator for accurate GB speed"
|
||||||
source_ref: "target-libretro/libretro.cpp:690,933, target-libretro/libretro_core_options.h:690"
|
source_ref: "target-libretro/libretro.cpp:926-935 (system_dir + sgb_bios), libretro.cpp:509 (core option bsnes_sgb_bios)"
|
||||||
|
|
||||||
# -- BS-X Satellaview BIOS --
|
# -- BS-X Satellaview BIOS --
|
||||||
# Required for loading .bs (BS Memory) format games.
|
# Required for loading .bs (BS Memory) format games.
|
||||||
# Hardcoded filename in libretro.cpp.
|
# Hardcoded filename in libretro.cpp.
|
||||||
|
|
||||||
- name: "BS-X.bin"
|
- name: "BS-X.bin"
|
||||||
|
system: nintendo-satellaview
|
||||||
required: true
|
required: true
|
||||||
note: "BS-X Satellaview BIOS ROM. Required for .bs games"
|
note: "BS-X Satellaview BIOS ROM, loaded from system_dir when running .bs games"
|
||||||
source_ref: "target-libretro/libretro.cpp:948"
|
source_ref: "target-libretro/libretro.cpp:944-951 (system_dir + BS-X.bin hardcoded, .bs extension branch)"
|
||||||
|
|
||||||
notes:
|
notes:
|
||||||
hle_available: true
|
hle_available: true
|
||||||
|
|||||||
@@ -35,9 +35,10 @@ files:
|
|||||||
system: nintendo-3ds
|
system: nintendo-3ds
|
||||||
description: "ARM9 bootrom"
|
description: "ARM9 bootrom"
|
||||||
required: false
|
required: false
|
||||||
|
size: 65536
|
||||||
validation: [size]
|
validation: [size]
|
||||||
source_ref: "src/core/hw/aes/key.cpp:162-172 LoadBootromKeys(), src/core/hw/rsa/rsa.cpp:55-65 InitSlots()"
|
source_ref: "src/core/hw/aes/key.cpp:162-172 LoadBootromKeys(), src/core/hw/rsa/rsa.cpp:55-65 InitSlots()"
|
||||||
note: "expected size 65536 bytes, provides AES and RSA keys"
|
note: "provides AES and RSA keys"
|
||||||
|
|
||||||
- name: shared_font.bin
|
- name: shared_font.bin
|
||||||
path: "Citra/sysdata/shared_font.bin"
|
path: "Citra/sysdata/shared_font.bin"
|
||||||
|
|||||||
@@ -720,7 +720,8 @@ files:
|
|||||||
# MSX (machine_name: "MSX")
|
# MSX (machine_name: "MSX")
|
||||||
# -------------------------------------------------------
|
# -------------------------------------------------------
|
||||||
- name: msx.rom
|
- name: msx.rom
|
||||||
path: MSX/msx.rom
|
aliases: [MSX.ROM]
|
||||||
|
path: MSX/MSX.ROM
|
||||||
description: "Generic MSX BIOS"
|
description: "Generic MSX BIOS"
|
||||||
size: 32768
|
size: 32768
|
||||||
crc32: "94ee12f3"
|
crc32: "94ee12f3"
|
||||||
@@ -768,7 +769,8 @@ files:
|
|||||||
source_ref: "Machines/Utility/ROMCatalogue.cpp:763-769"
|
source_ref: "Machines/Utility/ROMCatalogue.cpp:763-769"
|
||||||
|
|
||||||
- name: msx2.rom
|
- name: msx2.rom
|
||||||
path: MSX/msx2.rom
|
aliases: [MSX2.ROM]
|
||||||
|
path: MSX/MSX2.ROM
|
||||||
description: "Generic MSX2 BIOS"
|
description: "Generic MSX2 BIOS"
|
||||||
size: 32768
|
size: 32768
|
||||||
crc32: "6cdaf3a5"
|
crc32: "6cdaf3a5"
|
||||||
@@ -778,7 +780,8 @@ files:
|
|||||||
source_ref: "Machines/Utility/ROMCatalogue.cpp:771-778"
|
source_ref: "Machines/Utility/ROMCatalogue.cpp:771-778"
|
||||||
|
|
||||||
- name: msx2ext.rom
|
- name: msx2ext.rom
|
||||||
path: MSX/msx2ext.rom
|
aliases: [MSX2EXT.ROM]
|
||||||
|
path: MSX/MSX2EXT.ROM
|
||||||
description: "MSX2 extension ROM"
|
description: "MSX2 extension ROM"
|
||||||
size: 16384
|
size: 16384
|
||||||
crc32: "66237ecf"
|
crc32: "66237ecf"
|
||||||
|
|||||||
@@ -53,6 +53,7 @@ files:
|
|||||||
|
|
||||||
- name: "cromwell_1024.bin"
|
- name: "cromwell_1024.bin"
|
||||||
path: "cromwell_1024.bin"
|
path: "cromwell_1024.bin"
|
||||||
|
size: 1048576
|
||||||
validation: [size]
|
validation: [size]
|
||||||
required: true
|
required: true
|
||||||
note: >
|
note: >
|
||||||
|
|||||||
@@ -244,7 +244,7 @@ files:
|
|||||||
- name: "fuse/128p-0.rom"
|
- name: "fuse/128p-0.rom"
|
||||||
system: sinclair-zxspectrum
|
system: sinclair-zxspectrum
|
||||||
required: true
|
required: true
|
||||||
md5: ""
|
|
||||||
size: 16384
|
size: 16384
|
||||||
validation: [size]
|
validation: [size]
|
||||||
note: "Pentagon 128K/512K/1024 ROM 0. Required for Pentagon machines."
|
note: "Pentagon 128K/512K/1024 ROM 0. Required for Pentagon machines."
|
||||||
@@ -253,7 +253,7 @@ files:
|
|||||||
- name: "fuse/128p-1.rom"
|
- name: "fuse/128p-1.rom"
|
||||||
system: sinclair-zxspectrum
|
system: sinclair-zxspectrum
|
||||||
required: true
|
required: true
|
||||||
md5: ""
|
|
||||||
size: 16384
|
size: 16384
|
||||||
validation: [size]
|
validation: [size]
|
||||||
note: "Pentagon 128K/512K/1024 ROM 1. Required for Pentagon machines."
|
note: "Pentagon 128K/512K/1024 ROM 1. Required for Pentagon machines."
|
||||||
@@ -262,7 +262,7 @@ files:
|
|||||||
- name: "fuse/trdos.rom"
|
- name: "fuse/trdos.rom"
|
||||||
system: sinclair-zxspectrum
|
system: sinclair-zxspectrum
|
||||||
required: true
|
required: true
|
||||||
md5: ""
|
|
||||||
size: 16384
|
size: 16384
|
||||||
validation: [size]
|
validation: [size]
|
||||||
note: "TR-DOS ROM (Beta 128 disk interface). Used by Pentagon and Scorpion."
|
note: "TR-DOS ROM (Beta 128 disk interface). Used by Pentagon and Scorpion."
|
||||||
@@ -271,7 +271,7 @@ files:
|
|||||||
- name: "fuse/gluck.rom"
|
- name: "fuse/gluck.rom"
|
||||||
system: sinclair-zxspectrum
|
system: sinclair-zxspectrum
|
||||||
required: true
|
required: true
|
||||||
md5: ""
|
|
||||||
size: 16384
|
size: 16384
|
||||||
validation: [size]
|
validation: [size]
|
||||||
note: "Gluck ROM. Required for Pentagon 512K and 1024."
|
note: "Gluck ROM. Required for Pentagon 512K and 1024."
|
||||||
@@ -281,7 +281,7 @@ files:
|
|||||||
- name: "fuse/256s-0.rom"
|
- name: "fuse/256s-0.rom"
|
||||||
system: sinclair-zxspectrum
|
system: sinclair-zxspectrum
|
||||||
required: true
|
required: true
|
||||||
md5: ""
|
|
||||||
size: 16384
|
size: 16384
|
||||||
validation: [size]
|
validation: [size]
|
||||||
note: "Scorpion 256K ROM 0. Required for Scorpion machine."
|
note: "Scorpion 256K ROM 0. Required for Scorpion machine."
|
||||||
@@ -290,7 +290,7 @@ files:
|
|||||||
- name: "fuse/256s-1.rom"
|
- name: "fuse/256s-1.rom"
|
||||||
system: sinclair-zxspectrum
|
system: sinclair-zxspectrum
|
||||||
required: true
|
required: true
|
||||||
md5: ""
|
|
||||||
size: 16384
|
size: 16384
|
||||||
validation: [size]
|
validation: [size]
|
||||||
note: "Scorpion 256K ROM 1. Required for Scorpion machine."
|
note: "Scorpion 256K ROM 1. Required for Scorpion machine."
|
||||||
@@ -299,7 +299,7 @@ files:
|
|||||||
- name: "fuse/256s-2.rom"
|
- name: "fuse/256s-2.rom"
|
||||||
system: sinclair-zxspectrum
|
system: sinclair-zxspectrum
|
||||||
required: true
|
required: true
|
||||||
md5: ""
|
|
||||||
size: 16384
|
size: 16384
|
||||||
validation: [size]
|
validation: [size]
|
||||||
note: "Scorpion 256K ROM 2. Required for Scorpion machine."
|
note: "Scorpion 256K ROM 2. Required for Scorpion machine."
|
||||||
@@ -308,7 +308,7 @@ files:
|
|||||||
- name: "fuse/256s-3.rom"
|
- name: "fuse/256s-3.rom"
|
||||||
system: sinclair-zxspectrum
|
system: sinclair-zxspectrum
|
||||||
required: true
|
required: true
|
||||||
md5: ""
|
|
||||||
size: 16384
|
size: 16384
|
||||||
validation: [size]
|
validation: [size]
|
||||||
note: "Scorpion 256K ROM 3 (TR-DOS). Required for Scorpion machine."
|
note: "Scorpion 256K ROM 3 (TR-DOS). Required for Scorpion machine."
|
||||||
@@ -318,7 +318,7 @@ files:
|
|||||||
- name: "fuse/if1-2.rom"
|
- name: "fuse/if1-2.rom"
|
||||||
system: sinclair-zxspectrum
|
system: sinclair-zxspectrum
|
||||||
required: false
|
required: false
|
||||||
md5: ""
|
|
||||||
size: 8192
|
size: 8192
|
||||||
validation: [size]
|
validation: [size]
|
||||||
note: "Interface 1 ROM (edition 2). Loaded by peripherals/if1.c:403."
|
note: "Interface 1 ROM (edition 2). Loaded by peripherals/if1.c:403."
|
||||||
@@ -347,7 +347,7 @@ files:
|
|||||||
- name: "fuse/didaktik80.rom"
|
- name: "fuse/didaktik80.rom"
|
||||||
system: sinclair-zxspectrum
|
system: sinclair-zxspectrum
|
||||||
required: false
|
required: false
|
||||||
md5: ""
|
|
||||||
size: 14336
|
size: 14336
|
||||||
validation: [size]
|
validation: [size]
|
||||||
note: "Didaktik 80 disk interface ROM. Not embedded."
|
note: "Didaktik 80 disk interface ROM. Not embedded."
|
||||||
@@ -356,7 +356,7 @@ files:
|
|||||||
- name: "fuse/opus.rom"
|
- name: "fuse/opus.rom"
|
||||||
system: sinclair-zxspectrum
|
system: sinclair-zxspectrum
|
||||||
required: false
|
required: false
|
||||||
md5: ""
|
|
||||||
size: 8192
|
size: 8192
|
||||||
validation: [size]
|
validation: [size]
|
||||||
note: "Opus Discovery disk interface ROM. Not embedded."
|
note: "Opus Discovery disk interface ROM. Not embedded."
|
||||||
@@ -365,7 +365,7 @@ files:
|
|||||||
- name: "fuse/mf1.rom"
|
- name: "fuse/mf1.rom"
|
||||||
system: sinclair-zxspectrum
|
system: sinclair-zxspectrum
|
||||||
required: false
|
required: false
|
||||||
md5: ""
|
|
||||||
size: 8192
|
size: 8192
|
||||||
validation: [size]
|
validation: [size]
|
||||||
note: "Multiface 1 ROM. Not embedded."
|
note: "Multiface 1 ROM. Not embedded."
|
||||||
@@ -374,7 +374,7 @@ files:
|
|||||||
- name: "fuse/mf128.rom"
|
- name: "fuse/mf128.rom"
|
||||||
system: sinclair-zxspectrum
|
system: sinclair-zxspectrum
|
||||||
required: false
|
required: false
|
||||||
md5: ""
|
|
||||||
size: 8192
|
size: 8192
|
||||||
validation: [size]
|
validation: [size]
|
||||||
note: "Multiface 128 ROM. Not embedded."
|
note: "Multiface 128 ROM. Not embedded."
|
||||||
@@ -383,7 +383,7 @@ files:
|
|||||||
- name: "fuse/mf3.rom"
|
- name: "fuse/mf3.rom"
|
||||||
system: sinclair-zxspectrum
|
system: sinclair-zxspectrum
|
||||||
required: false
|
required: false
|
||||||
md5: ""
|
|
||||||
size: 8192
|
size: 8192
|
||||||
validation: [size]
|
validation: [size]
|
||||||
note: "Multiface 3 ROM. Not embedded."
|
note: "Multiface 3 ROM. Not embedded."
|
||||||
@@ -402,7 +402,7 @@ files:
|
|||||||
- name: "fuse/ttx2000s.rom"
|
- name: "fuse/ttx2000s.rom"
|
||||||
system: sinclair-zxspectrum
|
system: sinclair-zxspectrum
|
||||||
required: false
|
required: false
|
||||||
md5: ""
|
|
||||||
size: 8192
|
size: 8192
|
||||||
validation: [size]
|
validation: [size]
|
||||||
note: "TTX2000S teletext adapter ROM. Not embedded."
|
note: "TTX2000S teletext adapter ROM. Not embedded."
|
||||||
@@ -411,7 +411,7 @@ files:
|
|||||||
- name: "fuse/usource.rom"
|
- name: "fuse/usource.rom"
|
||||||
system: sinclair-zxspectrum
|
system: sinclair-zxspectrum
|
||||||
required: false
|
required: false
|
||||||
md5: ""
|
|
||||||
size: 8192
|
size: 8192
|
||||||
validation: [size]
|
validation: [size]
|
||||||
note: "Currah uSource ROM. Not embedded."
|
note: "Currah uSource ROM. Not embedded."
|
||||||
|
|||||||
@@ -24,7 +24,7 @@ files:
|
|||||||
hle_fallback: true
|
hle_fallback: true
|
||||||
size: 4096
|
size: 4096
|
||||||
validation: {core: [size], upstream: [size, crc32]}
|
validation: {core: [size], upstream: [size, crc32]}
|
||||||
crc32: "0x2ab23573"
|
crc32: 2ab23573
|
||||||
source_ref: "src/NDS.h:196, src/NDS.cpp:467-477, src/frontend/Util_ROM.cpp:99-111"
|
source_ref: "src/NDS.h:196, src/NDS.cpp:467-477, src/frontend/Util_ROM.cpp:99-111"
|
||||||
note: "FreeBIOS fallback (src/FreeBIOS.h); native needed for Key1 cartridge crypto"
|
note: "FreeBIOS fallback (src/FreeBIOS.h); native needed for Key1 cartridge crypto"
|
||||||
|
|
||||||
@@ -35,7 +35,7 @@ files:
|
|||||||
hle_fallback: true
|
hle_fallback: true
|
||||||
size: 16384
|
size: 16384
|
||||||
validation: {core: [size], upstream: [size, crc32]}
|
validation: {core: [size], upstream: [size, crc32]}
|
||||||
crc32: "0x1280f0d5"
|
crc32: 1280f0d5
|
||||||
source_ref: "src/NDS.h:197, src/NDS.cpp:482-492, src/frontend/Util_ROM.cpp:117-131"
|
source_ref: "src/NDS.h:197, src/NDS.cpp:482-492, src/frontend/Util_ROM.cpp:117-131"
|
||||||
note: "FreeBIOS fallback (src/FreeBIOS.h); native needed for Key1 init at offset 0x0030"
|
note: "FreeBIOS fallback (src/FreeBIOS.h); native needed for Key1 init at offset 0x0030"
|
||||||
|
|
||||||
@@ -44,6 +44,8 @@ files:
|
|||||||
description: "NDS firmware image"
|
description: "NDS firmware image"
|
||||||
required: false
|
required: false
|
||||||
hle_fallback: true
|
hle_fallback: true
|
||||||
|
min_size: 262144
|
||||||
|
max_size: 524288
|
||||||
validation: [size]
|
validation: [size]
|
||||||
source_ref: "src/SPI.cpp:192-211, src/frontend/Util_ROM.cpp:174-195"
|
source_ref: "src/SPI.cpp:192-211, src/frontend/Util_ROM.cpp:174-195"
|
||||||
note: "Generated 128KB firmware as fallback; native must be 256KB or 512KB for boot"
|
note: "Generated 128KB firmware as fallback; native must be 256KB or 512KB for boot"
|
||||||
@@ -55,7 +57,7 @@ files:
|
|||||||
required: true
|
required: true
|
||||||
size: 65536
|
size: 65536
|
||||||
validation: {core: [size], upstream: [size, crc32]}
|
validation: {core: [size], upstream: [size, crc32]}
|
||||||
crc32: "0xBAE84F6C"
|
crc32: bae84f6c
|
||||||
source_ref: "src/DSi.h:33, src/DSi.cpp:587-599, src/frontend/Util_ROM.cpp:145-156"
|
source_ref: "src/DSi.h:33, src/DSi.cpp:587-599, src/frontend/Util_ROM.cpp:145-156"
|
||||||
|
|
||||||
- name: dsi_bios7.bin
|
- name: dsi_bios7.bin
|
||||||
@@ -64,7 +66,7 @@ files:
|
|||||||
required: true
|
required: true
|
||||||
size: 65536
|
size: 65536
|
||||||
validation: {core: [size], upstream: [size, crc32]}
|
validation: {core: [size], upstream: [size, crc32]}
|
||||||
crc32: "0x4316CC42"
|
crc32: 4316cc42
|
||||||
source_ref: "src/DSi.h:34, src/DSi.cpp:604-620, src/frontend/Util_ROM.cpp:158-170"
|
source_ref: "src/DSi.h:34, src/DSi.cpp:604-620, src/frontend/Util_ROM.cpp:158-170"
|
||||||
note: "Contains eMMC key-Y at offset 0x8308 for NAND init"
|
note: "Contains eMMC key-Y at offset 0x8308 for NAND init"
|
||||||
|
|
||||||
|
|||||||
@@ -27,7 +27,7 @@ files:
|
|||||||
hle_fallback: true
|
hle_fallback: true
|
||||||
size: 16384
|
size: 16384
|
||||||
validation: [size]
|
validation: [size]
|
||||||
crc32: "0x1280f0d5"
|
crc32: 1280f0d5
|
||||||
source_ref: "src/libretro/config/console.cpp:219, melonDS:src/MemConstants.h:31,36"
|
source_ref: "src/libretro/config/console.cpp:219, melonDS:src/MemConstants.h:31,36"
|
||||||
|
|
||||||
- name: bios9.bin
|
- name: bios9.bin
|
||||||
@@ -37,7 +37,7 @@ files:
|
|||||||
hle_fallback: true
|
hle_fallback: true
|
||||||
size: 4096
|
size: 4096
|
||||||
validation: [size]
|
validation: [size]
|
||||||
crc32: "0x2ab23573"
|
crc32: 2ab23573
|
||||||
source_ref: "src/libretro/config/console.cpp:220, melonDS:src/MemConstants.h:30,37"
|
source_ref: "src/libretro/config/console.cpp:220, melonDS:src/MemConstants.h:30,37"
|
||||||
|
|
||||||
- name: firmware.bin
|
- name: firmware.bin
|
||||||
@@ -55,7 +55,7 @@ files:
|
|||||||
required: true
|
required: true
|
||||||
size: 65536
|
size: 65536
|
||||||
validation: [size]
|
validation: [size]
|
||||||
crc32: "0x4316CC42"
|
crc32: 4316cc42
|
||||||
source_ref: "src/libretro/config/console.cpp:333, melonDS:src/MemConstants.h:32,44"
|
source_ref: "src/libretro/config/console.cpp:333, melonDS:src/MemConstants.h:32,44"
|
||||||
note: "Contains eMMC key-Y at offset 0x8308 for NAND init"
|
note: "Contains eMMC key-Y at offset 0x8308 for NAND init"
|
||||||
|
|
||||||
@@ -65,7 +65,7 @@ files:
|
|||||||
required: true
|
required: true
|
||||||
size: 65536
|
size: 65536
|
||||||
validation: [size]
|
validation: [size]
|
||||||
crc32: "0xBAE84F6C"
|
crc32: bae84f6c
|
||||||
source_ref: "src/libretro/config/console.cpp:338, melonDS:src/MemConstants.h:32,45"
|
source_ref: "src/libretro/config/console.cpp:338, melonDS:src/MemConstants.h:32,45"
|
||||||
|
|
||||||
- name: dsi_firmware.bin
|
- name: dsi_firmware.bin
|
||||||
|
|||||||
@@ -65,5 +65,7 @@ files:
|
|||||||
description: "External NES color palette"
|
description: "External NES color palette"
|
||||||
required: false
|
required: false
|
||||||
source_ref: "Libretro/libretro.cpp:301-323 (load_custom_palette), Libretro/libretro.cpp:405-406 (called when mesen_palette == Custom)"
|
source_ref: "Libretro/libretro.cpp:301-323 (load_custom_palette), Libretro/libretro.cpp:405-406 (called when mesen_palette == Custom)"
|
||||||
|
min_size: 192
|
||||||
|
max_size: 1536
|
||||||
validation: [size]
|
validation: [size]
|
||||||
note: "Loaded when mesen_palette core option is Custom. Accepts exactly 192 bytes (64 RGB triplets) or 1536 bytes (512 entries for emphasis combos). Falls back to built-in default palette if size doesn't match."
|
note: "Accepts 192 bytes (64 RGB triplets) or 1536 bytes (512 emphasis combos). Falls back to built-in default if size doesn't match."
|
||||||
|
|||||||
@@ -533,7 +533,7 @@ files:
|
|||||||
|
|
||||||
- name: "U-Boot LEON3"
|
- name: "U-Boot LEON3"
|
||||||
path: "qemu/u-boot.bin"
|
path: "qemu/u-boot.bin"
|
||||||
sha1: ""
|
|
||||||
required: false
|
required: false
|
||||||
note: "U-Boot for LEON3 SPARC board. Not shipped with QEMU, user-supplied."
|
note: "U-Boot for LEON3 SPARC board. Not shipped with QEMU, user-supplied."
|
||||||
source_ref: "hw/sparc/leon3.c:53"
|
source_ref: "hw/sparc/leon3.c:53"
|
||||||
@@ -611,28 +611,28 @@ files:
|
|||||||
# ========================================================
|
# ========================================================
|
||||||
- name: "MIPS BIOS (big-endian)"
|
- name: "MIPS BIOS (big-endian)"
|
||||||
path: "qemu/mips_bios.bin"
|
path: "qemu/mips_bios.bin"
|
||||||
sha1: ""
|
|
||||||
required: false
|
required: false
|
||||||
note: "Default BIOS for big-endian MIPS machines (Malta, MIPSsim, Jazz). Not shipped with QEMU."
|
note: "Default BIOS for big-endian MIPS machines (Malta, MIPSsim, Jazz). Not shipped with QEMU."
|
||||||
source_ref: "hw/mips/malta.c:97"
|
source_ref: "hw/mips/malta.c:97"
|
||||||
|
|
||||||
- name: "MIPS BIOS (little-endian)"
|
- name: "MIPS BIOS (little-endian)"
|
||||||
path: "qemu/mipsel_bios.bin"
|
path: "qemu/mipsel_bios.bin"
|
||||||
sha1: ""
|
|
||||||
required: false
|
required: false
|
||||||
note: "Default BIOS for little-endian MIPS machines (Malta, MIPSsim, Jazz). Not shipped with QEMU."
|
note: "Default BIOS for little-endian MIPS machines (Malta, MIPSsim, Jazz). Not shipped with QEMU."
|
||||||
source_ref: "hw/mips/malta.c:99"
|
source_ref: "hw/mips/malta.c:99"
|
||||||
|
|
||||||
- name: "Loongson3 BIOS"
|
- name: "Loongson3 BIOS"
|
||||||
path: "qemu/bios_loongson3.bin"
|
path: "qemu/bios_loongson3.bin"
|
||||||
sha1: ""
|
|
||||||
required: false
|
required: false
|
||||||
note: "Default BIOS for Loongson3 virtual MIPS machine. Not shipped with QEMU."
|
note: "Default BIOS for Loongson3 virtual MIPS machine. Not shipped with QEMU."
|
||||||
source_ref: "hw/mips/loongson3_virt.c:63"
|
source_ref: "hw/mips/loongson3_virt.c:63"
|
||||||
|
|
||||||
- name: "PMON Fuloong2e"
|
- name: "PMON Fuloong2e"
|
||||||
path: "qemu/pmon_2e.bin"
|
path: "qemu/pmon_2e.bin"
|
||||||
sha1: ""
|
|
||||||
required: false
|
required: false
|
||||||
note: "PMON monitor for Fuloong2e MIPS board. Not shipped with QEMU."
|
note: "PMON monitor for Fuloong2e MIPS board. Not shipped with QEMU."
|
||||||
source_ref: "hw/mips/fuloong2e.c:58"
|
source_ref: "hw/mips/fuloong2e.c:58"
|
||||||
@@ -642,7 +642,7 @@ files:
|
|||||||
# ========================================================
|
# ========================================================
|
||||||
- name: "Macintosh ROM"
|
- name: "Macintosh ROM"
|
||||||
path: "qemu/MacROM.bin"
|
path: "qemu/MacROM.bin"
|
||||||
sha1: ""
|
|
||||||
required: false
|
required: false
|
||||||
note: "Apple Macintosh ROM for Quadra 800 emulation. Not shipped with QEMU."
|
note: "Apple Macintosh ROM for Quadra 800 emulation. Not shipped with QEMU."
|
||||||
source_ref: "hw/m68k/q800.c:62"
|
source_ref: "hw/m68k/q800.c:62"
|
||||||
@@ -652,7 +652,7 @@ files:
|
|||||||
# ========================================================
|
# ========================================================
|
||||||
- name: "Canon A1100 ROM"
|
- name: "Canon A1100 ROM"
|
||||||
path: "qemu/canon-a1100-rom1.bin"
|
path: "qemu/canon-a1100-rom1.bin"
|
||||||
sha1: ""
|
|
||||||
required: false
|
required: false
|
||||||
note: "Canon PowerShot A1100 IS DIGIC camera ROM. Not shipped with QEMU."
|
note: "Canon PowerShot A1100 IS DIGIC camera ROM. Not shipped with QEMU."
|
||||||
source_ref: "hw/arm/digic_boards.c:131"
|
source_ref: "hw/arm/digic_boards.c:131"
|
||||||
@@ -702,7 +702,7 @@ files:
|
|||||||
|
|
||||||
- name: "Virtex ML507 DTB (PPC)"
|
- name: "Virtex ML507 DTB (PPC)"
|
||||||
path: "qemu/virtex-ml507.dtb"
|
path: "qemu/virtex-ml507.dtb"
|
||||||
sha1: ""
|
|
||||||
required: false
|
required: false
|
||||||
note: "Device tree blob for Xilinx Virtex ML507 PowerPC board. Not shipped with QEMU."
|
note: "Device tree blob for Xilinx Virtex ML507 PowerPC board. Not shipped with QEMU."
|
||||||
source_ref: "hw/ppc/virtex_ml507.c:148"
|
source_ref: "hw/ppc/virtex_ml507.c:148"
|
||||||
|
|||||||
@@ -24,36 +24,43 @@ notes: |
|
|||||||
|
|
||||||
files:
|
files:
|
||||||
- name: kvs1.wav
|
- name: kvs1.wav
|
||||||
|
aliases: [KVS1.WAV]
|
||||||
description: "KidVid Voice Module audio tape 1 (Smurfs Save the Day)"
|
description: "KidVid Voice Module audio tape 1 (Smurfs Save the Day)"
|
||||||
required: false
|
required: false
|
||||||
category: game_data
|
category: game_data
|
||||||
source_ref: "stella/src/emucore/KidVid.cxx:167,182"
|
source_ref: "stella/src/emucore/KidVid.cxx:167,182"
|
||||||
- name: kvs2.wav
|
- name: kvs2.wav
|
||||||
|
aliases: [KVS2.WAV]
|
||||||
description: "KidVid Voice Module audio tape 2 (Smurfs Save the Day)"
|
description: "KidVid Voice Module audio tape 2 (Smurfs Save the Day)"
|
||||||
required: false
|
required: false
|
||||||
category: game_data
|
category: game_data
|
||||||
source_ref: "stella/src/emucore/KidVid.cxx:167,182"
|
source_ref: "stella/src/emucore/KidVid.cxx:167,182"
|
||||||
- name: kvs3.wav
|
- name: kvs3.wav
|
||||||
|
aliases: [KVS3.WAV]
|
||||||
description: "KidVid Voice Module audio tape 3 (Smurfs Save the Day)"
|
description: "KidVid Voice Module audio tape 3 (Smurfs Save the Day)"
|
||||||
required: false
|
required: false
|
||||||
category: game_data
|
category: game_data
|
||||||
source_ref: "stella/src/emucore/KidVid.cxx:167,182"
|
source_ref: "stella/src/emucore/KidVid.cxx:167,182"
|
||||||
- name: kvb1.wav
|
- name: kvb1.wav
|
||||||
|
aliases: [KVB1.WAV]
|
||||||
description: "KidVid Voice Module audio tape 1 (Berenstain Bears)"
|
description: "KidVid Voice Module audio tape 1 (Berenstain Bears)"
|
||||||
required: false
|
required: false
|
||||||
category: game_data
|
category: game_data
|
||||||
source_ref: "stella/src/emucore/KidVid.cxx:167,182"
|
source_ref: "stella/src/emucore/KidVid.cxx:167,182"
|
||||||
- name: kvb2.wav
|
- name: kvb2.wav
|
||||||
|
aliases: [KVB2.WAV]
|
||||||
description: "KidVid Voice Module audio tape 2 (Berenstain Bears)"
|
description: "KidVid Voice Module audio tape 2 (Berenstain Bears)"
|
||||||
required: false
|
required: false
|
||||||
category: game_data
|
category: game_data
|
||||||
source_ref: "stella/src/emucore/KidVid.cxx:167,182"
|
source_ref: "stella/src/emucore/KidVid.cxx:167,182"
|
||||||
- name: kvb3.wav
|
- name: kvb3.wav
|
||||||
|
aliases: [KVB3.WAV]
|
||||||
description: "KidVid Voice Module audio tape 3 (Berenstain Bears)"
|
description: "KidVid Voice Module audio tape 3 (Berenstain Bears)"
|
||||||
required: false
|
required: false
|
||||||
category: game_data
|
category: game_data
|
||||||
source_ref: "stella/src/emucore/KidVid.cxx:167,182"
|
source_ref: "stella/src/emucore/KidVid.cxx:167,182"
|
||||||
- name: kvshared.wav
|
- name: kvshared.wav
|
||||||
|
aliases: [KVSHARED.WAV]
|
||||||
description: "KidVid Voice Module shared audio samples"
|
description: "KidVid Voice Module shared audio samples"
|
||||||
required: false
|
required: false
|
||||||
category: game_data
|
category: game_data
|
||||||
|
|||||||
@@ -86,6 +86,9 @@ files:
|
|||||||
hle_fallback: true
|
hle_fallback: true
|
||||||
embedded: true
|
embedded: true
|
||||||
size: 8192
|
size: 8192
|
||||||
|
sha1: 79015323128650c742a3694c9429aa91f355905e
|
||||||
|
md5: 57af4ae21d4b705c2991d98ed5c1f7b8
|
||||||
|
crc32: f833d117
|
||||||
note: "C64 BASIC V2 ROM. Embedded in core."
|
note: "C64 BASIC V2 ROM. Embedded in core."
|
||||||
source_ref: "vice/src/c64/c64rom.h:31"
|
source_ref: "vice/src/c64/c64rom.h:31"
|
||||||
|
|
||||||
@@ -95,6 +98,9 @@ files:
|
|||||||
hle_fallback: true
|
hle_fallback: true
|
||||||
embedded: true
|
embedded: true
|
||||||
size: 8192
|
size: 8192
|
||||||
|
sha1: 1d503e56df85a62fee696e7618dc5b4e781df1bb
|
||||||
|
md5: 39065497630802346bce17963f13c092
|
||||||
|
crc32: dbe3e7c7
|
||||||
note: "C64 Kernal Rev 3 (default). Embedded in core."
|
note: "C64 Kernal Rev 3 (default). Embedded in core."
|
||||||
source_ref: "vice/src/c64/c64rom.h:52"
|
source_ref: "vice/src/c64/c64rom.h:52"
|
||||||
|
|
||||||
@@ -104,6 +110,9 @@ files:
|
|||||||
hle_fallback: true
|
hle_fallback: true
|
||||||
embedded: true
|
embedded: true
|
||||||
size: 8192
|
size: 8192
|
||||||
|
sha1: 87cc04d61fc748b82df09856847bb5c2754a2033
|
||||||
|
md5: 1ae0ea224f2b291dafa2c20b990bb7d4
|
||||||
|
crc32: dce782fa
|
||||||
note: "C64 Kernal Rev 1. Embedded in core."
|
note: "C64 Kernal Rev 1. Embedded in core."
|
||||||
source_ref: "vice/src/c64/c64rom.h:50"
|
source_ref: "vice/src/c64/c64rom.h:50"
|
||||||
|
|
||||||
@@ -113,6 +122,9 @@ files:
|
|||||||
hle_fallback: true
|
hle_fallback: true
|
||||||
embedded: true
|
embedded: true
|
||||||
size: 8192
|
size: 8192
|
||||||
|
sha1: 0e2e4ee3f2d41f00bed72f9ab588b83e306fdb13
|
||||||
|
md5: 7360b296d64e18b88f6cf52289fd99a1
|
||||||
|
crc32: a5c687b3
|
||||||
note: "C64 Kernal Rev 2. Embedded in core."
|
note: "C64 Kernal Rev 2. Embedded in core."
|
||||||
source_ref: "vice/src/c64/c64rom.h:51"
|
source_ref: "vice/src/c64/c64rom.h:51"
|
||||||
|
|
||||||
@@ -122,6 +134,9 @@ files:
|
|||||||
hle_fallback: true
|
hle_fallback: true
|
||||||
embedded: true
|
embedded: true
|
||||||
size: 8192
|
size: 8192
|
||||||
|
sha1: 3ad6cc1837c679a11f551ad1cf1a32dd84ace719
|
||||||
|
md5: ddee89b0fed19572da5245ea68ff11b5
|
||||||
|
crc32: 505365d4
|
||||||
note: "C64 GS (Games System) Kernal. Embedded in core."
|
note: "C64 GS (Games System) Kernal. Embedded in core."
|
||||||
source_ref: "vice/src/c64/c64rom.h:53"
|
source_ref: "vice/src/c64/c64rom.h:53"
|
||||||
|
|
||||||
@@ -131,6 +146,9 @@ files:
|
|||||||
hle_fallback: true
|
hle_fallback: true
|
||||||
embedded: true
|
embedded: true
|
||||||
size: 8192
|
size: 8192
|
||||||
|
sha1: aa136e91ecf3c5ac64f696b3dbcbfc5ba0871c98
|
||||||
|
md5: 187b8c713b51931e070872bd390b472a
|
||||||
|
crc32: 2c5965d4
|
||||||
note: "SX-64 Kernal. Embedded in core."
|
note: "SX-64 Kernal. Embedded in core."
|
||||||
source_ref: "vice/src/c64/c64rom.h:54"
|
source_ref: "vice/src/c64/c64rom.h:54"
|
||||||
|
|
||||||
@@ -140,6 +158,9 @@ files:
|
|||||||
hle_fallback: true
|
hle_fallback: true
|
||||||
embedded: true
|
embedded: true
|
||||||
size: 8192
|
size: 8192
|
||||||
|
sha1: 6c4fa9465f6091b174df27dfe679499df447503c
|
||||||
|
md5: da92801e3a03b005b746a4dd0b639c7c
|
||||||
|
crc32: 789c8cc5
|
||||||
note: "PET64/Educator64 (4064) Kernal. Embedded in core."
|
note: "PET64/Educator64 (4064) Kernal. Embedded in core."
|
||||||
source_ref: "vice/src/c64/c64rom.h:55"
|
source_ref: "vice/src/c64/c64rom.h:55"
|
||||||
|
|
||||||
@@ -149,6 +170,9 @@ files:
|
|||||||
hle_fallback: true
|
hle_fallback: true
|
||||||
embedded: true
|
embedded: true
|
||||||
size: 8192
|
size: 8192
|
||||||
|
sha1: 4ff0f11e80f4b57430d8f0c3799ed0f0e0f4565d
|
||||||
|
md5: 479553fd53346ec84054f0b1c6237397
|
||||||
|
crc32: 3a9ef6f1
|
||||||
note: "C64 Japanese Kernal. Embedded in core."
|
note: "C64 Japanese Kernal. Embedded in core."
|
||||||
source_ref: "vice/src/c64/c64rom.h:49"
|
source_ref: "vice/src/c64/c64rom.h:49"
|
||||||
|
|
||||||
@@ -158,6 +182,9 @@ files:
|
|||||||
hle_fallback: true
|
hle_fallback: true
|
||||||
embedded: true
|
embedded: true
|
||||||
size: 4096
|
size: 4096
|
||||||
|
sha1: adc7c31e18c7c7413d54802ef2f4193da14711aa
|
||||||
|
md5: 12a4202f5331d45af846af6c58fba946
|
||||||
|
crc32: ec4272ee
|
||||||
note: "C64 Character Generator ROM (default). Embedded in core."
|
note: "C64 Character Generator ROM (default). Embedded in core."
|
||||||
source_ref: "vice/src/c64/c64rom.h:60"
|
source_ref: "vice/src/c64/c64rom.h:60"
|
||||||
|
|
||||||
@@ -167,6 +194,9 @@ files:
|
|||||||
hle_fallback: true
|
hle_fallback: true
|
||||||
embedded: true
|
embedded: true
|
||||||
size: 4096
|
size: 4096
|
||||||
|
sha1: 0fad19dbcdb12461c99657b2979dbb5c2e47b527
|
||||||
|
md5: cf32a93c0a693ed359a4f483ef6db53d
|
||||||
|
crc32: 1604f6c1
|
||||||
note: "C64 Japanese Character Generator ROM. Embedded in core."
|
note: "C64 Japanese Character Generator ROM. Embedded in core."
|
||||||
source_ref: "vice/src/c64/c64rom.h:61"
|
source_ref: "vice/src/c64/c64rom.h:61"
|
||||||
|
|
||||||
@@ -180,6 +210,9 @@ files:
|
|||||||
hle_fallback: true
|
hle_fallback: true
|
||||||
embedded: true
|
embedded: true
|
||||||
size: 16384
|
size: 16384
|
||||||
|
sha1: ceb6e1a1bf7e08eb9cbc651afa29e26adccf38ab
|
||||||
|
md5: 01f6903033b90cd506cde7802ec743c3
|
||||||
|
crc32: ba456b8e
|
||||||
note: "C128 Kernal (default international). Embedded in core."
|
note: "C128 Kernal (default international). Embedded in core."
|
||||||
source_ref: "vice/src/c128/c128rom.h:103"
|
source_ref: "vice/src/c128/c128rom.h:103"
|
||||||
|
|
||||||
@@ -189,6 +222,9 @@ files:
|
|||||||
hle_fallback: true
|
hle_fallback: true
|
||||||
embedded: true
|
embedded: true
|
||||||
size: 16384
|
size: 16384
|
||||||
|
sha1: 3629b3fa28b6a30bcc027b647f26654929ed1b0f
|
||||||
|
md5: 9837409b6bdb7ce055409fa3eb3e9cf0
|
||||||
|
crc32: bff7550b
|
||||||
note: "C128 Kernal German. Embedded in core."
|
note: "C128 Kernal German. Embedded in core."
|
||||||
source_ref: "vice/src/c128/c128rom.h:105"
|
source_ref: "vice/src/c128/c128rom.h:105"
|
||||||
|
|
||||||
@@ -198,6 +234,9 @@ files:
|
|||||||
hle_fallback: true
|
hle_fallback: true
|
||||||
embedded: true
|
embedded: true
|
||||||
size: 16384
|
size: 16384
|
||||||
|
sha1: 98c34e0dec9f52d7862b56bb287d2573eb3f6364
|
||||||
|
md5: 90907477d39db1b8fe1732692278a0e9
|
||||||
|
crc32: d311dab1
|
||||||
note: "C128 Kernal Swiss. Embedded in core."
|
note: "C128 Kernal Swiss. Embedded in core."
|
||||||
source_ref: "vice/src/c128/c128rom.h:104"
|
source_ref: "vice/src/c128/c128rom.h:104"
|
||||||
|
|
||||||
@@ -207,6 +246,9 @@ files:
|
|||||||
hle_fallback: true
|
hle_fallback: true
|
||||||
embedded: true
|
embedded: true
|
||||||
size: 16384
|
size: 16384
|
||||||
|
sha1: 925177c99ee7e02870c32ad62a054db1327cf0c2
|
||||||
|
md5: 7852922295c103f067ba3c0f56378a95
|
||||||
|
crc32: 1cf7f729
|
||||||
note: "C128 Kernal Swedish. Embedded in core."
|
note: "C128 Kernal Swedish. Embedded in core."
|
||||||
source_ref: "vice/src/c128/c128rom.h:110"
|
source_ref: "vice/src/c128/c128rom.h:110"
|
||||||
|
|
||||||
@@ -216,6 +258,9 @@ files:
|
|||||||
hle_fallback: true
|
hle_fallback: true
|
||||||
embedded: true
|
embedded: true
|
||||||
size: 16384
|
size: 16384
|
||||||
|
sha1: d08e7991a6df14a843e92daafaf6756337959ba4
|
||||||
|
md5: 0a0eb549ec08624de11cf1f249f6f3dc
|
||||||
|
crc32: d3ecea84
|
||||||
note: "C128 Kernal Finnish (unidentified part number). Embedded in core."
|
note: "C128 Kernal Finnish (unidentified part number). Embedded in core."
|
||||||
source_ref: "vice/src/c128/c128rom.h:106"
|
source_ref: "vice/src/c128/c128rom.h:106"
|
||||||
|
|
||||||
@@ -225,6 +270,9 @@ files:
|
|||||||
hle_fallback: true
|
hle_fallback: true
|
||||||
embedded: true
|
embedded: true
|
||||||
size: 16384
|
size: 16384
|
||||||
|
sha1: a0680d04db3232fa9f58598e5c9f09c4fe94f601
|
||||||
|
md5: 7a7747aa70fd63402c6a95fba0bd6806
|
||||||
|
crc32: 2df282b8
|
||||||
note: "C128 Kernal French (unidentified part number). Embedded in core."
|
note: "C128 Kernal French (unidentified part number). Embedded in core."
|
||||||
source_ref: "vice/src/c128/c128rom.h:107"
|
source_ref: "vice/src/c128/c128rom.h:107"
|
||||||
|
|
||||||
@@ -234,6 +282,9 @@ files:
|
|||||||
hle_fallback: true
|
hle_fallback: true
|
||||||
embedded: true
|
embedded: true
|
||||||
size: 16384
|
size: 16384
|
||||||
|
sha1: 592a626eb2b5372596ac374d3505c3ce78dd040f
|
||||||
|
md5: 142c8bd5934e9d97addb6776a2f2e8b8
|
||||||
|
crc32: 74d6b084
|
||||||
note: "C128 Kernal Italian (unidentified part number). Embedded in core."
|
note: "C128 Kernal Italian (unidentified part number). Embedded in core."
|
||||||
source_ref: "vice/src/c128/c128rom.h:108"
|
source_ref: "vice/src/c128/c128rom.h:108"
|
||||||
|
|
||||||
@@ -243,6 +294,9 @@ files:
|
|||||||
hle_fallback: true
|
hle_fallback: true
|
||||||
embedded: true
|
embedded: true
|
||||||
size: 16384
|
size: 16384
|
||||||
|
sha1: 00fe2fd610a812121befab1e7238fa882c0f8257
|
||||||
|
md5: 498fdedaeab458931b6103d52d5a3ea1
|
||||||
|
crc32: a5406848
|
||||||
note: "C128 Kernal Norwegian (unidentified part number). Embedded in core."
|
note: "C128 Kernal Norwegian (unidentified part number). Embedded in core."
|
||||||
source_ref: "vice/src/c128/c128rom.h:109"
|
source_ref: "vice/src/c128/c128rom.h:109"
|
||||||
|
|
||||||
@@ -252,6 +306,9 @@ files:
|
|||||||
hle_fallback: true
|
hle_fallback: true
|
||||||
embedded: true
|
embedded: true
|
||||||
size: 16384
|
size: 16384
|
||||||
|
sha1: d53a7884404f7d18ebd60dd3080c8f8d71067441
|
||||||
|
md5: b86ce827c9108fbc7b9e02c690e81a23
|
||||||
|
crc32: 9f9c355b
|
||||||
note: "C128 BASIC low (BASIC part). Embedded in core."
|
note: "C128 BASIC low (BASIC part). Embedded in core."
|
||||||
source_ref: "vice/src/c128/c128rom.h:115"
|
source_ref: "vice/src/c128/c128rom.h:115"
|
||||||
|
|
||||||
@@ -261,6 +318,9 @@ files:
|
|||||||
hle_fallback: true
|
hle_fallback: true
|
||||||
embedded: true
|
embedded: true
|
||||||
size: 16384
|
size: 16384
|
||||||
|
sha1: c4fb4a714e48a7bf6c28659de0302183a0e0d6c0
|
||||||
|
md5: 87bb251707d0a2c915d6e0c69fdb0fed
|
||||||
|
crc32: 6e2c91a7
|
||||||
note: "C128 BASIC high (Editor part). Embedded in core."
|
note: "C128 BASIC high (Editor part). Embedded in core."
|
||||||
source_ref: "vice/src/c128/c128rom.h:116"
|
source_ref: "vice/src/c128/c128rom.h:116"
|
||||||
|
|
||||||
@@ -288,6 +348,9 @@ files:
|
|||||||
hle_fallback: true
|
hle_fallback: true
|
||||||
embedded: true
|
embedded: true
|
||||||
size: 8192
|
size: 8192
|
||||||
|
sha1: b4862cac7b9319d8e912887c97fc270d4c239349
|
||||||
|
md5: 8fa940c39225d40f37ddf7082fba8b21
|
||||||
|
crc32: dd2976d2
|
||||||
note: "C128 C64-mode Kernal Norwegian. Embedded in core."
|
note: "C128 C64-mode Kernal Norwegian. Embedded in core."
|
||||||
source_ref: "vice/src/c128/c128rom.h:136"
|
source_ref: "vice/src/c128/c128rom.h:136"
|
||||||
|
|
||||||
@@ -297,6 +360,9 @@ files:
|
|||||||
hle_fallback: true
|
hle_fallback: true
|
||||||
embedded: true
|
embedded: true
|
||||||
size: 8192
|
size: 8192
|
||||||
|
sha1: e4f52d9b36c030eb94524eb49f6f0774c1d02e5e
|
||||||
|
md5: 27e26dbb267c8ebf1cd47105a6ca71e7
|
||||||
|
crc32: f10c2c25
|
||||||
note: "C128 C64-mode Kernal Swedish. Embedded in core."
|
note: "C128 C64-mode Kernal Swedish. Embedded in core."
|
||||||
source_ref: "vice/src/c128/c128rom.h:137"
|
source_ref: "vice/src/c128/c128rom.h:137"
|
||||||
|
|
||||||
@@ -306,6 +372,9 @@ files:
|
|||||||
hle_fallback: true
|
hle_fallback: true
|
||||||
embedded: true
|
embedded: true
|
||||||
size: 8192
|
size: 8192
|
||||||
|
sha1: 29ed066d513f2d5c09ff26d9166ba23c2afb2b3f
|
||||||
|
md5: 46b3cb2140f244c0ed1150c819e7bdc4
|
||||||
|
crc32: 6aaaafe6
|
||||||
note: "C128 Character Generator (default international). Embedded in core."
|
note: "C128 Character Generator (default international). Embedded in core."
|
||||||
source_ref: "vice/src/c128/c128rom.h:92"
|
source_ref: "vice/src/c128/c128rom.h:92"
|
||||||
|
|
||||||
@@ -315,6 +384,9 @@ files:
|
|||||||
hle_fallback: true
|
hle_fallback: true
|
||||||
embedded: true
|
embedded: true
|
||||||
size: 8192
|
size: 8192
|
||||||
|
sha1: 638f8aff51c2ac4f99a55b12c4f8c985ef4bebd3
|
||||||
|
md5: ec9e71614010c4efb851b83bcd685e9c
|
||||||
|
crc32: fe5a2db1
|
||||||
note: "C128 Character Generator German. Embedded in core."
|
note: "C128 Character Generator German. Embedded in core."
|
||||||
source_ref: "vice/src/c128/c128rom.h:95"
|
source_ref: "vice/src/c128/c128rom.h:95"
|
||||||
|
|
||||||
@@ -324,6 +396,9 @@ files:
|
|||||||
hle_fallback: true
|
hle_fallback: true
|
||||||
embedded: true
|
embedded: true
|
||||||
size: 8192
|
size: 8192
|
||||||
|
sha1: 9119b27a1bf885fa4c76fff5d858c74c194dd2b8
|
||||||
|
md5: de3e110a48de76457dbc9ad320e2caa5
|
||||||
|
crc32: bad36b88
|
||||||
note: "C128 Character Generator Italian/French/Belgian. Embedded in core."
|
note: "C128 Character Generator Italian/French/Belgian. Embedded in core."
|
||||||
source_ref: "vice/src/c128/c128rom.h:93"
|
source_ref: "vice/src/c128/c128rom.h:93"
|
||||||
|
|
||||||
@@ -333,6 +408,9 @@ files:
|
|||||||
hle_fallback: true
|
hle_fallback: true
|
||||||
embedded: true
|
embedded: true
|
||||||
size: 8192
|
size: 8192
|
||||||
|
sha1: 70eccd8b944146f6b60f1519b830a4ee8928d4fa
|
||||||
|
md5: 5cc3635e434fdc7023d0035e965ce76f
|
||||||
|
crc32: c8def186
|
||||||
note: "C128 Character Generator Swiss. Embedded in core."
|
note: "C128 Character Generator Swiss. Embedded in core."
|
||||||
source_ref: "vice/src/c128/c128rom.h:94"
|
source_ref: "vice/src/c128/c128rom.h:94"
|
||||||
|
|
||||||
@@ -342,6 +420,9 @@ files:
|
|||||||
hle_fallback: true
|
hle_fallback: true
|
||||||
embedded: true
|
embedded: true
|
||||||
size: 8192
|
size: 8192
|
||||||
|
sha1: 5a87faa457979e7b6f434251a9e32f4483b337b3
|
||||||
|
md5: 7eead22a114154c809b33320c9250e26
|
||||||
|
crc32: ba95c625
|
||||||
note: "C128 Character Generator Norwegian. Embedded in core."
|
note: "C128 Character Generator Norwegian. Embedded in core."
|
||||||
source_ref: "vice/src/c128/c128rom.h:99"
|
source_ref: "vice/src/c128/c128rom.h:99"
|
||||||
|
|
||||||
@@ -351,6 +432,9 @@ files:
|
|||||||
hle_fallback: true
|
hle_fallback: true
|
||||||
embedded: true
|
embedded: true
|
||||||
size: 8192
|
size: 8192
|
||||||
|
sha1: aca3f7321ee7e6152f1f0afad646ae41964de4fb
|
||||||
|
md5: 06e46af13d13aa869218275e64d48b00
|
||||||
|
crc32: 7a70d9b8
|
||||||
note: "C128 Character Generator Finnish/Swedish. Embedded in core."
|
note: "C128 Character Generator Finnish/Swedish. Embedded in core."
|
||||||
source_ref: "vice/src/c128/c128rom.h:96"
|
source_ref: "vice/src/c128/c128rom.h:96"
|
||||||
|
|
||||||
@@ -364,6 +448,9 @@ files:
|
|||||||
hle_fallback: true
|
hle_fallback: true
|
||||||
embedded: true
|
embedded: true
|
||||||
size: 2097152
|
size: 2097152
|
||||||
|
sha1: 72b4c8da075646cc9940e4377004c81192c7b0b1
|
||||||
|
md5: d6efbc538195f53cfc209543640cde71
|
||||||
|
crc32: 242daa5a
|
||||||
note: "C64 DTV flash ROM (2 MB). Contains kernal, basic, chargen. Embedded in core."
|
note: "C64 DTV flash ROM (2 MB). Contains kernal, basic, chargen. Embedded in core."
|
||||||
source_ref: "vice/src/c64dtv/c64dtvflash.c:59-64"
|
source_ref: "vice/src/c64dtv/c64dtvflash.c:59-64"
|
||||||
|
|
||||||
@@ -373,6 +460,9 @@ files:
|
|||||||
hle_fallback: true
|
hle_fallback: true
|
||||||
embedded: true
|
embedded: true
|
||||||
size: 8192
|
size: 8192
|
||||||
|
sha1: 79015323128650c742a3694c9429aa91f355905e
|
||||||
|
md5: 57af4ae21d4b705c2991d98ed5c1f7b8
|
||||||
|
crc32: f833d117
|
||||||
note: "C64 BASIC V2 ROM (DTV copy). Embedded in core."
|
note: "C64 BASIC V2 ROM (DTV copy). Embedded in core."
|
||||||
source_ref: "vice/data/C64DTV/"
|
source_ref: "vice/data/C64DTV/"
|
||||||
|
|
||||||
@@ -382,6 +472,9 @@ files:
|
|||||||
hle_fallback: true
|
hle_fallback: true
|
||||||
embedded: true
|
embedded: true
|
||||||
size: 4096
|
size: 4096
|
||||||
|
sha1: adc7c31e18c7c7413d54802ef2f4193da14711aa
|
||||||
|
md5: 12a4202f5331d45af846af6c58fba946
|
||||||
|
crc32: ec4272ee
|
||||||
note: "C64 Character Generator (DTV copy). Embedded in core."
|
note: "C64 Character Generator (DTV copy). Embedded in core."
|
||||||
source_ref: "vice/data/C64DTV/"
|
source_ref: "vice/data/C64DTV/"
|
||||||
|
|
||||||
@@ -391,6 +484,9 @@ files:
|
|||||||
hle_fallback: true
|
hle_fallback: true
|
||||||
embedded: true
|
embedded: true
|
||||||
size: 8192
|
size: 8192
|
||||||
|
sha1: 1d503e56df85a62fee696e7618dc5b4e781df1bb
|
||||||
|
md5: 39065497630802346bce17963f13c092
|
||||||
|
crc32: dbe3e7c7
|
||||||
note: "C64 Kernal Rev 3 (DTV copy). Embedded in core."
|
note: "C64 Kernal Rev 3 (DTV copy). Embedded in core."
|
||||||
source_ref: "vice/data/C64DTV/"
|
source_ref: "vice/data/C64DTV/"
|
||||||
|
|
||||||
@@ -404,6 +500,9 @@ files:
|
|||||||
hle_fallback: true
|
hle_fallback: true
|
||||||
embedded: true
|
embedded: true
|
||||||
size: 8192
|
size: 8192
|
||||||
|
sha1: 587d1e90950675ab6b12d91248a3f0d640d02e8d
|
||||||
|
md5: 8b9237706f47a9b3498d8f881ef0244d
|
||||||
|
crc32: db4c43c1
|
||||||
note: "VIC-20 BASIC ROM. Embedded in core."
|
note: "VIC-20 BASIC ROM. Embedded in core."
|
||||||
source_ref: "vice/src/vic20/vic20rom.h:43"
|
source_ref: "vice/src/vic20/vic20rom.h:43"
|
||||||
|
|
||||||
@@ -413,6 +512,9 @@ files:
|
|||||||
hle_fallback: true
|
hle_fallback: true
|
||||||
embedded: true
|
embedded: true
|
||||||
size: 8192
|
size: 8192
|
||||||
|
sha1: ce0137ed69f003a299f43538fa9eee27898e621e
|
||||||
|
md5: f0587624dcd7685710a8fdb35939617f
|
||||||
|
crc32: 4be07cb4
|
||||||
note: "VIC-20 Kernal PAL (default). Embedded in core."
|
note: "VIC-20 Kernal PAL (default). Embedded in core."
|
||||||
source_ref: "vice/src/vic20/vic20rom.h:53"
|
source_ref: "vice/src/vic20/vic20rom.h:53"
|
||||||
|
|
||||||
@@ -422,6 +524,9 @@ files:
|
|||||||
hle_fallback: true
|
hle_fallback: true
|
||||||
embedded: true
|
embedded: true
|
||||||
size: 8192
|
size: 8192
|
||||||
|
sha1: 06de7ec017a5e78bd6746d89c2ecebb646efeb19
|
||||||
|
md5: 0313e31e5f31e1f739c2377792460d67
|
||||||
|
crc32: e5e7c174
|
||||||
note: "VIC-20 Kernal NTSC. Embedded in core."
|
note: "VIC-20 Kernal NTSC. Embedded in core."
|
||||||
source_ref: "vice/src/vic20/vic20rom.h:52"
|
source_ref: "vice/src/vic20/vic20rom.h:52"
|
||||||
|
|
||||||
@@ -431,6 +536,9 @@ files:
|
|||||||
hle_fallback: true
|
hle_fallback: true
|
||||||
embedded: true
|
embedded: true
|
||||||
size: 8192
|
size: 8192
|
||||||
|
sha1: c9ead45e6674d1042ca6199160e8583c23aeac22
|
||||||
|
md5: 317f93bcbc5ee15da085a51a306f2c61
|
||||||
|
crc32: 336900d7
|
||||||
note: "VIC-20 Kernal Japanese NTSC Rev 2. Embedded in core."
|
note: "VIC-20 Kernal Japanese NTSC Rev 2. Embedded in core."
|
||||||
source_ref: "vice/src/vic20/vic20rom.h:51"
|
source_ref: "vice/src/vic20/vic20rom.h:51"
|
||||||
|
|
||||||
@@ -440,6 +548,9 @@ files:
|
|||||||
hle_fallback: true
|
hle_fallback: true
|
||||||
embedded: true
|
embedded: true
|
||||||
size: 4096
|
size: 4096
|
||||||
|
sha1: 4fd85ab6647ee2ac7ba40f729323f2472d35b9b4
|
||||||
|
md5: d390e340e94e1bef0f2fdfe9fa850993
|
||||||
|
crc32: 83e032a6
|
||||||
note: "VIC-20 Character Generator (default). Embedded in core."
|
note: "VIC-20 Character Generator (default). Embedded in core."
|
||||||
source_ref: "vice/src/vic20/vic20rom.h:56"
|
source_ref: "vice/src/vic20/vic20rom.h:56"
|
||||||
|
|
||||||
@@ -449,6 +560,9 @@ files:
|
|||||||
hle_fallback: true
|
hle_fallback: true
|
||||||
embedded: true
|
embedded: true
|
||||||
size: 4096
|
size: 4096
|
||||||
|
sha1: dae61ac03065aa2904af5c123ce821855898c555
|
||||||
|
md5: 7e6e41b5b60fec798743afd7063b42ed
|
||||||
|
crc32: fcfd8a4b
|
||||||
note: "VIC-20 Japanese Character Generator. Embedded in core."
|
note: "VIC-20 Japanese Character Generator. Embedded in core."
|
||||||
source_ref: "vice/src/vic20/vic20rom.h:57"
|
source_ref: "vice/src/vic20/vic20rom.h:57"
|
||||||
|
|
||||||
@@ -462,6 +576,9 @@ files:
|
|||||||
hle_fallback: true
|
hle_fallback: true
|
||||||
embedded: true
|
embedded: true
|
||||||
size: 16384
|
size: 16384
|
||||||
|
sha1: 161c96b4ad20f3a4f2321808e37a5ded26a135dd
|
||||||
|
md5: 44a4ae400e3b4f7533a47ae0df1be78c
|
||||||
|
crc32: 74eaae87
|
||||||
note: "Plus/4 BASIC ROM. Embedded in core."
|
note: "Plus/4 BASIC ROM. Embedded in core."
|
||||||
source_ref: "vice/src/plus4/plus4rom.h:33"
|
source_ref: "vice/src/plus4/plus4rom.h:33"
|
||||||
|
|
||||||
@@ -471,6 +588,9 @@ files:
|
|||||||
hle_fallback: true
|
hle_fallback: true
|
||||||
embedded: true
|
embedded: true
|
||||||
size: 16384
|
size: 16384
|
||||||
|
sha1: 7c7e07f016391174a557e790c4ef1cbe33512cdb
|
||||||
|
md5: 89f5263665a8dc10c8f8abc38f5f7eb9
|
||||||
|
crc32: 71c07bd4
|
||||||
note: "Plus/4 Kernal PAL Rev 5 (default PAL). Embedded in core."
|
note: "Plus/4 Kernal PAL Rev 5 (default PAL). Embedded in core."
|
||||||
source_ref: "vice/src/plus4/plus4rom.h:36"
|
source_ref: "vice/src/plus4/plus4rom.h:36"
|
||||||
|
|
||||||
@@ -480,6 +600,9 @@ files:
|
|||||||
hle_fallback: true
|
hle_fallback: true
|
||||||
embedded: true
|
embedded: true
|
||||||
size: 16384
|
size: 16384
|
||||||
|
sha1: a3d9e5be091b98de39a046ab167fb7632d053682
|
||||||
|
md5: b3c450c36a88b491281d18fdf3e94ab0
|
||||||
|
crc32: 70295038
|
||||||
note: "Plus/4 Kernal NTSC Rev 5 (default NTSC). Embedded in core."
|
note: "Plus/4 Kernal NTSC Rev 5 (default NTSC). Embedded in core."
|
||||||
source_ref: "vice/src/plus4/plus4rom.h:37"
|
source_ref: "vice/src/plus4/plus4rom.h:37"
|
||||||
|
|
||||||
@@ -489,6 +612,9 @@ files:
|
|||||||
hle_fallback: true
|
hle_fallback: true
|
||||||
embedded: true
|
embedded: true
|
||||||
size: 16384
|
size: 16384
|
||||||
|
sha1: 3c77caf72914c1c0a0875b3a7f6935cd30c54201
|
||||||
|
md5: a213823557421b66f9813ff19af48c01
|
||||||
|
crc32: dbdc3319
|
||||||
note: "Plus/4 Kernal NTSC Rev 1 (V232 prototype). Embedded in core."
|
note: "Plus/4 Kernal NTSC Rev 1 (V232 prototype). Embedded in core."
|
||||||
source_ref: "vice/src/plus4/plus4rom.h:35"
|
source_ref: "vice/src/plus4/plus4rom.h:35"
|
||||||
|
|
||||||
@@ -498,6 +624,9 @@ files:
|
|||||||
hle_fallback: true
|
hle_fallback: true
|
||||||
embedded: true
|
embedded: true
|
||||||
size: 16384
|
size: 16384
|
||||||
|
sha1: b9a5b5dacd57ca117ef0b3af29e91998bf4d7e5f
|
||||||
|
md5: 7abb51257595b233a1a63ae58c330a65
|
||||||
|
crc32: 84fd4f7a
|
||||||
note: "Commodore 364 prototype Kernal. Embedded in core."
|
note: "Commodore 364 prototype Kernal. Embedded in core."
|
||||||
source_ref: "vice/src/plus4/plus4rom.h:38"
|
source_ref: "vice/src/plus4/plus4rom.h:38"
|
||||||
|
|
||||||
@@ -507,6 +636,9 @@ files:
|
|||||||
hle_fallback: true
|
hle_fallback: true
|
||||||
embedded: true
|
embedded: true
|
||||||
size: 16384
|
size: 16384
|
||||||
|
sha1: 3b69f6e7cb4c18bb08e203fb18b7dabfa853390f
|
||||||
|
md5: 2994d5463ef8524deb4231a9c764767c
|
||||||
|
crc32: 4fd1d8cb
|
||||||
note: "3-Plus-1 software ROM low. Embedded in core."
|
note: "3-Plus-1 software ROM low. Embedded in core."
|
||||||
source_ref: "vice/src/plus4/plus4rom.h:40"
|
source_ref: "vice/src/plus4/plus4rom.h:40"
|
||||||
|
|
||||||
@@ -516,6 +648,9 @@ files:
|
|||||||
hle_fallback: true
|
hle_fallback: true
|
||||||
embedded: true
|
embedded: true
|
||||||
size: 16384
|
size: 16384
|
||||||
|
sha1: 0ad7ac2db7da692d972e586ca0dfd747d82c7693
|
||||||
|
md5: ac34591c820fe607d527e04e95bce465
|
||||||
|
crc32: 109de2fc
|
||||||
note: "3-Plus-1 software ROM high. Embedded in core."
|
note: "3-Plus-1 software ROM high. Embedded in core."
|
||||||
source_ref: "vice/src/plus4/plus4rom.h:41"
|
source_ref: "vice/src/plus4/plus4rom.h:41"
|
||||||
|
|
||||||
@@ -525,6 +660,9 @@ files:
|
|||||||
hle_fallback: true
|
hle_fallback: true
|
||||||
embedded: true
|
embedded: true
|
||||||
size: 16384
|
size: 16384
|
||||||
|
sha1: 59af401cbb2194f689898271c6e8aafa28a7af11
|
||||||
|
md5: 0073ace3874a2c5ca5de9cf64cdfbbd4
|
||||||
|
crc32: 5227c2ee
|
||||||
note: "Commodore 364 prototype function ROM low. Embedded in core."
|
note: "Commodore 364 prototype function ROM low. Embedded in core."
|
||||||
source_ref: "vice/src/plus4/plus4rom.h:43"
|
source_ref: "vice/src/plus4/plus4rom.h:43"
|
||||||
|
|
||||||
@@ -538,6 +676,9 @@ files:
|
|||||||
hle_fallback: true
|
hle_fallback: true
|
||||||
embedded: true
|
embedded: true
|
||||||
size: 8192
|
size: 8192
|
||||||
|
sha1: 3be9cd41b646fefa00d80f1c3433a06146e97c59
|
||||||
|
md5: f328e785835907006604423222db7bbf
|
||||||
|
crc32: aff78300
|
||||||
note: "PET BASIC 1.0 ROM (PET 2001). Embedded in core."
|
note: "PET BASIC 1.0 ROM (PET 2001). Embedded in core."
|
||||||
source_ref: "vice/src/pet/petrom.h:55"
|
source_ref: "vice/src/pet/petrom.h:55"
|
||||||
|
|
||||||
@@ -547,6 +688,9 @@ files:
|
|||||||
hle_fallback: true
|
hle_fallback: true
|
||||||
embedded: true
|
embedded: true
|
||||||
size: 8192
|
size: 8192
|
||||||
|
sha1: 9322a9f0354b9049847d98d3a045fbec860a6264
|
||||||
|
md5: b69739387bebe999227ae0cf25aa1e91
|
||||||
|
crc32: cf35e68b
|
||||||
note: "PET BASIC 2.0 ROM. Embedded in core."
|
note: "PET BASIC 2.0 ROM. Embedded in core."
|
||||||
source_ref: "vice/src/pet/petrom.h:56"
|
source_ref: "vice/src/pet/petrom.h:56"
|
||||||
|
|
||||||
@@ -556,6 +700,9 @@ files:
|
|||||||
hle_fallback: true
|
hle_fallback: true
|
||||||
embedded: true
|
embedded: true
|
||||||
size: 12288
|
size: 12288
|
||||||
|
sha1: d70bec479e1e3a0d0908a4897066e9959bbc11c8
|
||||||
|
md5: d22d2a1912a0cdbd9e7c8b103541b2c6
|
||||||
|
crc32: 2a940f0a
|
||||||
note: "PET BASIC 4.0 ROM. Embedded in core."
|
note: "PET BASIC 4.0 ROM. Embedded in core."
|
||||||
source_ref: "vice/src/pet/petrom.h:57"
|
source_ref: "vice/src/pet/petrom.h:57"
|
||||||
|
|
||||||
@@ -565,6 +712,9 @@ files:
|
|||||||
hle_fallback: true
|
hle_fallback: true
|
||||||
embedded: true
|
embedded: true
|
||||||
size: 4096
|
size: 4096
|
||||||
|
sha1: 32dc08828e88c74d6433156e64d402b564556308
|
||||||
|
md5: 61b7e2fd04d63b0702951ba40899cd72
|
||||||
|
crc32: f0186492
|
||||||
note: "PET Kernal 1.0 (PET 2001). Embedded in core."
|
note: "PET Kernal 1.0 (PET 2001). Embedded in core."
|
||||||
source_ref: "vice/src/pet/petrom.h:51"
|
source_ref: "vice/src/pet/petrom.h:51"
|
||||||
|
|
||||||
@@ -574,6 +724,9 @@ files:
|
|||||||
hle_fallback: true
|
hle_fallback: true
|
||||||
embedded: true
|
embedded: true
|
||||||
size: 4096
|
size: 4096
|
||||||
|
sha1: 38742bdf449f629bcba6276ef24d3daeb7da6e84
|
||||||
|
md5: 51a38bfef8f9e72cb64bf7d874b4c8c6
|
||||||
|
crc32: f02238e2
|
||||||
note: "PET Kernal 2.0. Embedded in core."
|
note: "PET Kernal 2.0. Embedded in core."
|
||||||
source_ref: "vice/src/pet/petrom.h:52"
|
source_ref: "vice/src/pet/petrom.h:52"
|
||||||
|
|
||||||
@@ -583,6 +736,9 @@ files:
|
|||||||
hle_fallback: true
|
hle_fallback: true
|
||||||
embedded: true
|
embedded: true
|
||||||
size: 4096
|
size: 4096
|
||||||
|
sha1: 96a0fa56e0c937da92971d9c99d504e44e898806
|
||||||
|
md5: 16ec21443ea5431ab63d511061054e6f
|
||||||
|
crc32: cc5298a1
|
||||||
note: "PET Kernal 4.0. Embedded in core."
|
note: "PET Kernal 4.0. Embedded in core."
|
||||||
source_ref: "vice/src/pet/petrom.h:53"
|
source_ref: "vice/src/pet/petrom.h:53"
|
||||||
|
|
||||||
@@ -592,6 +748,9 @@ files:
|
|||||||
hle_fallback: true
|
hle_fallback: true
|
||||||
embedded: true
|
embedded: true
|
||||||
size: 2048
|
size: 2048
|
||||||
|
sha1: f02f5fb492ba93dbbd390f24c10f7a832dec432a
|
||||||
|
md5: ef9bd0e62dfc47eb463fef20d0344826
|
||||||
|
crc32: 9e1c5cea
|
||||||
note: "PET Editor 1.0 Normal (graphics keyboard). Embedded in core."
|
note: "PET Editor 1.0 Normal (graphics keyboard). Embedded in core."
|
||||||
source_ref: "vice/src/pet/petrom.h:59"
|
source_ref: "vice/src/pet/petrom.h:59"
|
||||||
|
|
||||||
@@ -601,6 +760,9 @@ files:
|
|||||||
hle_fallback: true
|
hle_fallback: true
|
||||||
embedded: true
|
embedded: true
|
||||||
size: 2048
|
size: 2048
|
||||||
|
sha1: 5e5502ce32f5a7e387d65efe058916282041e54b
|
||||||
|
md5: cb8e8404c0b28eda10469792dfd1dbc2
|
||||||
|
crc32: e459ab32
|
||||||
note: "PET Editor 2.0 Normal (graphics keyboard). Embedded in core."
|
note: "PET Editor 2.0 Normal (graphics keyboard). Embedded in core."
|
||||||
source_ref: "vice/src/pet/petrom.h:60"
|
source_ref: "vice/src/pet/petrom.h:60"
|
||||||
|
|
||||||
@@ -610,6 +772,9 @@ files:
|
|||||||
hle_fallback: true
|
hle_fallback: true
|
||||||
embedded: true
|
embedded: true
|
||||||
size: 2048
|
size: 2048
|
||||||
|
sha1: 174ace3a8c0348cd21d39cc864e2adc58b0101a9
|
||||||
|
md5: 7f87889ca7ee2537f0c1993d35d0fb18
|
||||||
|
crc32: 05db957e
|
||||||
note: "PET Editor 2.0 Business keyboard. Embedded in core."
|
note: "PET Editor 2.0 Business keyboard. Embedded in core."
|
||||||
source_ref: "vice/src/pet/petrom.h:61"
|
source_ref: "vice/src/pet/petrom.h:61"
|
||||||
|
|
||||||
@@ -619,6 +784,9 @@ files:
|
|||||||
hle_fallback: true
|
hle_fallback: true
|
||||||
embedded: true
|
embedded: true
|
||||||
size: 2048
|
size: 2048
|
||||||
|
sha1: 05af284c914d53a52987b5f602466de75765f650
|
||||||
|
md5: b76d756e7ac8752ae0035f3ce5f1383c
|
||||||
|
crc32: 3370e359
|
||||||
note: "PET Editor 4.0, 40 col, Normal keyboard, 50Hz. Embedded in core."
|
note: "PET Editor 4.0, 40 col, Normal keyboard, 50Hz. Embedded in core."
|
||||||
source_ref: "vice/src/pet/petrom.h:62"
|
source_ref: "vice/src/pet/petrom.h:62"
|
||||||
|
|
||||||
@@ -628,6 +796,9 @@ files:
|
|||||||
hle_fallback: true
|
hle_fallback: true
|
||||||
embedded: true
|
embedded: true
|
||||||
size: 2048
|
size: 2048
|
||||||
|
sha1: 9f91fbabfdd532d003d2508f399574ba8ec6ee5f
|
||||||
|
md5: 8e69e040489098522846b1b1c63682c2
|
||||||
|
crc32: 16fb070c
|
||||||
note: "PET Editor 4.0, 40 col, Business keyboard, 50Hz. Embedded in core."
|
note: "PET Editor 4.0, 40 col, Business keyboard, 50Hz. Embedded in core."
|
||||||
source_ref: "vice/src/pet/petrom.h:65"
|
source_ref: "vice/src/pet/petrom.h:65"
|
||||||
|
|
||||||
@@ -637,6 +808,9 @@ files:
|
|||||||
hle_fallback: true
|
hle_fallback: true
|
||||||
embedded: true
|
embedded: true
|
||||||
size: 2048
|
size: 2048
|
||||||
|
sha1: 81975eab31a8f4f51ae2a20d099a567c7b3f2dd1
|
||||||
|
md5: 3a0e2ef328040aa30b30a8134426879a
|
||||||
|
crc32: 845a44e6
|
||||||
note: "PET Editor 4.0, 80 col, Business keyboard, 50Hz. Embedded in core."
|
note: "PET Editor 4.0, 80 col, Business keyboard, 50Hz. Embedded in core."
|
||||||
source_ref: "vice/src/pet/petrom.h:63"
|
source_ref: "vice/src/pet/petrom.h:63"
|
||||||
|
|
||||||
@@ -646,6 +820,9 @@ files:
|
|||||||
hle_fallback: true
|
hle_fallback: true
|
||||||
embedded: true
|
embedded: true
|
||||||
size: 2048
|
size: 2048
|
||||||
|
sha1: 3e067cc621e4beafca2b90cb8f6dba975df2855b
|
||||||
|
md5: 29a82eb54e73ebc5673c718c489b174b
|
||||||
|
crc32: 54f32f45
|
||||||
note: "PET Character Generator 1 (original PET 2001). Embedded in core."
|
note: "PET Character Generator 1 (original PET 2001). Embedded in core."
|
||||||
source_ref: "vice/src/pet/petrom.h:46"
|
source_ref: "vice/src/pet/petrom.h:46"
|
||||||
|
|
||||||
@@ -655,6 +832,9 @@ files:
|
|||||||
hle_fallback: true
|
hle_fallback: true
|
||||||
embedded: true
|
embedded: true
|
||||||
size: 2048
|
size: 2048
|
||||||
|
sha1: 0157a2d55b7ac4eaeb38475889ebeea52e2593db
|
||||||
|
md5: 9880432e633b15998d58884ff34c4e70
|
||||||
|
crc32: d8408674
|
||||||
note: "PET Character Generator 2. Embedded in core."
|
note: "PET Character Generator 2. Embedded in core."
|
||||||
source_ref: "vice/src/pet/petrom.h:47"
|
source_ref: "vice/src/pet/petrom.h:47"
|
||||||
|
|
||||||
@@ -664,6 +844,9 @@ files:
|
|||||||
hle_fallback: true
|
hle_fallback: true
|
||||||
embedded: true
|
embedded: true
|
||||||
size: 4096
|
size: 4096
|
||||||
|
sha1: bf346f11595a3e65e55d6aeeaa2c0cec807b66c7
|
||||||
|
md5: dd30641d9e6a221edd725d1e529dcbdb
|
||||||
|
crc32: ee8229c4
|
||||||
note: "SuperPET Character Generator. Embedded in core."
|
note: "SuperPET Character Generator. Embedded in core."
|
||||||
source_ref: "vice/src/pet/petrom.h:48"
|
source_ref: "vice/src/pet/petrom.h:48"
|
||||||
|
|
||||||
@@ -673,6 +856,9 @@ files:
|
|||||||
hle_fallback: true
|
hle_fallback: true
|
||||||
embedded: true
|
embedded: true
|
||||||
size: 4096
|
size: 4096
|
||||||
|
sha1: 0414b3ab847c8977eb05c2fcc72efcf2f9d92871
|
||||||
|
md5: 6eb1c1bfa6ce1444737794432966dfcc
|
||||||
|
crc32: 728a998b
|
||||||
note: "SuperPET Waterloo microEngine 6809 ROM at $A000. Embedded in core."
|
note: "SuperPET Waterloo microEngine 6809 ROM at $A000. Embedded in core."
|
||||||
source_ref: "vice/src/pet/petrom.h:75"
|
source_ref: "vice/src/pet/petrom.h:75"
|
||||||
|
|
||||||
@@ -682,6 +868,9 @@ files:
|
|||||||
hle_fallback: true
|
hle_fallback: true
|
||||||
embedded: true
|
embedded: true
|
||||||
size: 4096
|
size: 4096
|
||||||
|
sha1: df154939b934d0aeeb376813ec1ba0d43c2a3378
|
||||||
|
md5: 537498d75ecf761d4991f9ebd85129ca
|
||||||
|
crc32: 6beb7c62
|
||||||
note: "SuperPET Waterloo microEngine 6809 ROM at $B000. Embedded in core."
|
note: "SuperPET Waterloo microEngine 6809 ROM at $B000. Embedded in core."
|
||||||
source_ref: "vice/src/pet/petrom.h:76"
|
source_ref: "vice/src/pet/petrom.h:76"
|
||||||
|
|
||||||
@@ -691,6 +880,9 @@ files:
|
|||||||
hle_fallback: true
|
hle_fallback: true
|
||||||
embedded: true
|
embedded: true
|
||||||
size: 4096
|
size: 4096
|
||||||
|
sha1: 6c5b0cce97068f8841112ba6d5cd8e568b562fa3
|
||||||
|
md5: 3e8dd04902dc9fee172084698f84695f
|
||||||
|
crc32: 5db4983d
|
||||||
note: "SuperPET Waterloo microEngine 6809 ROM at $C000. Embedded in core."
|
note: "SuperPET Waterloo microEngine 6809 ROM at $C000. Embedded in core."
|
||||||
source_ref: "vice/src/pet/petrom.h:77"
|
source_ref: "vice/src/pet/petrom.h:77"
|
||||||
|
|
||||||
@@ -700,6 +892,9 @@ files:
|
|||||||
hle_fallback: true
|
hle_fallback: true
|
||||||
embedded: true
|
embedded: true
|
||||||
size: 4096
|
size: 4096
|
||||||
|
sha1: b42a2050a319a1ffca7868a8d8d635fadd37ec37
|
||||||
|
md5: 80f4d2351ee19673820989919c7c1e9b
|
||||||
|
crc32: f55fc559
|
||||||
note: "SuperPET Waterloo microEngine 6809 ROM at $D000. Embedded in core."
|
note: "SuperPET Waterloo microEngine 6809 ROM at $D000. Embedded in core."
|
||||||
source_ref: "vice/src/pet/petrom.h:78"
|
source_ref: "vice/src/pet/petrom.h:78"
|
||||||
|
|
||||||
@@ -709,6 +904,9 @@ files:
|
|||||||
hle_fallback: true
|
hle_fallback: true
|
||||||
embedded: true
|
embedded: true
|
||||||
size: 2048
|
size: 2048
|
||||||
|
sha1: e8ce8347451a001214a5e71a13081b38b4be23bc
|
||||||
|
md5: a740ff5d0d1132ab18cfc1974fca908d
|
||||||
|
crc32: b2cee903
|
||||||
note: "SuperPET Waterloo microEngine 6809 ROM at $E000. Embedded in core."
|
note: "SuperPET Waterloo microEngine 6809 ROM at $E000. Embedded in core."
|
||||||
source_ref: "vice/src/pet/petrom.h:79"
|
source_ref: "vice/src/pet/petrom.h:79"
|
||||||
|
|
||||||
@@ -718,6 +916,9 @@ files:
|
|||||||
hle_fallback: true
|
hle_fallback: true
|
||||||
embedded: true
|
embedded: true
|
||||||
size: 4096
|
size: 4096
|
||||||
|
sha1: 9b4a5134d20345171e7303445f87c4e0b9addc96
|
||||||
|
md5: 049e2d26fde71a741f6075ecbf0a432d
|
||||||
|
crc32: f42df0cb
|
||||||
note: "SuperPET Waterloo microEngine 6809 ROM at $F000. Embedded in core."
|
note: "SuperPET Waterloo microEngine 6809 ROM at $F000. Embedded in core."
|
||||||
source_ref: "vice/src/pet/petrom.h:80"
|
source_ref: "vice/src/pet/petrom.h:80"
|
||||||
|
|
||||||
@@ -731,6 +932,9 @@ files:
|
|||||||
hle_fallback: true
|
hle_fallback: true
|
||||||
embedded: true
|
embedded: true
|
||||||
size: 16384
|
size: 16384
|
||||||
|
sha1: 9409f92e167984096fe4d5913714bff6214c3b2d
|
||||||
|
md5: 3ad5c7182006bcad1597583dbc8505c9
|
||||||
|
crc32: a8ff9372
|
||||||
note: "CBM-II BASIC 128 (CBM 610/620/710/720). Embedded in core."
|
note: "CBM-II BASIC 128 (CBM 610/620/710/720). Embedded in core."
|
||||||
source_ref: "vice/src/cbm2/cbm2rom.h:41"
|
source_ref: "vice/src/cbm2/cbm2rom.h:41"
|
||||||
|
|
||||||
@@ -740,6 +944,9 @@ files:
|
|||||||
hle_fallback: true
|
hle_fallback: true
|
||||||
embedded: true
|
embedded: true
|
||||||
size: 16384
|
size: 16384
|
||||||
|
sha1: 53314b4d565cc405a67a0936b935e6e08955580d
|
||||||
|
md5: 6a505014e543c62e99668080a3b80b40
|
||||||
|
crc32: 5db15870
|
||||||
note: "CBM-II BASIC 256 (CBM 710/720 with 256K). Embedded in core."
|
note: "CBM-II BASIC 256 (CBM 710/720 with 256K). Embedded in core."
|
||||||
source_ref: "vice/src/cbm2/cbm2rom.h:42"
|
source_ref: "vice/src/cbm2/cbm2rom.h:42"
|
||||||
|
|
||||||
@@ -749,6 +956,9 @@ files:
|
|||||||
hle_fallback: true
|
hle_fallback: true
|
||||||
embedded: true
|
embedded: true
|
||||||
size: 16384
|
size: 16384
|
||||||
|
sha1: e69531d45f5993f8e53c6bd9ab2a7bc10fe2d02f
|
||||||
|
md5: 5a9559ceaf1a0bef0e721242c67a030d
|
||||||
|
crc32: 9a468e5d
|
||||||
note: "CBM-II BASIC 500 (CBM 510/P500). Embedded in core."
|
note: "CBM-II BASIC 500 (CBM 510/P500). Embedded in core."
|
||||||
source_ref: "vice/src/cbm2/cbm2rom.h:43"
|
source_ref: "vice/src/cbm2/cbm2rom.h:43"
|
||||||
|
|
||||||
@@ -758,6 +968,9 @@ files:
|
|||||||
hle_fallback: true
|
hle_fallback: true
|
||||||
embedded: true
|
embedded: true
|
||||||
size: 8192
|
size: 8192
|
||||||
|
sha1: abb26418b9e1614a8f52bdeee0822d4a96071439
|
||||||
|
md5: e0346953e77bd1353ebf53aaa5b6f0b0
|
||||||
|
crc32: 09a5667e
|
||||||
note: "CBM-II Kernal (CBM 610/620/710/720). Embedded in core."
|
note: "CBM-II Kernal (CBM 610/620/710/720). Embedded in core."
|
||||||
source_ref: "vice/src/cbm2/cbm2rom.h:45"
|
source_ref: "vice/src/cbm2/cbm2rom.h:45"
|
||||||
|
|
||||||
@@ -767,6 +980,9 @@ files:
|
|||||||
hle_fallback: true
|
hle_fallback: true
|
||||||
embedded: true
|
embedded: true
|
||||||
size: 8192
|
size: 8192
|
||||||
|
sha1: 097197d4d08e0b82e0466a5f1fbd49a24f3d2523
|
||||||
|
md5: 1a19593625acdc5af96a5e78b1a23f37
|
||||||
|
crc32: f46bbd2b
|
||||||
note: "CBM-II Kernal 500 (CBM 510/P500). Embedded in core."
|
note: "CBM-II Kernal 500 (CBM 510/P500). Embedded in core."
|
||||||
source_ref: "vice/src/cbm2/cbm2rom.h:46"
|
source_ref: "vice/src/cbm2/cbm2rom.h:46"
|
||||||
|
|
||||||
@@ -776,6 +992,9 @@ files:
|
|||||||
hle_fallback: true
|
hle_fallback: true
|
||||||
embedded: true
|
embedded: true
|
||||||
size: 4096
|
size: 4096
|
||||||
|
sha1: adc7c31e18c7c7413d54802ef2f4193da14711aa
|
||||||
|
md5: 12a4202f5331d45af846af6c58fba946
|
||||||
|
crc32: ec4272ee
|
||||||
note: "CBM-II Character Generator 500 (VIC-II based, CBM 510/P500). Embedded in core."
|
note: "CBM-II Character Generator 500 (VIC-II based, CBM 510/P500). Embedded in core."
|
||||||
source_ref: "vice/src/cbm2/cbm2rom.h:37"
|
source_ref: "vice/src/cbm2/cbm2rom.h:37"
|
||||||
|
|
||||||
@@ -785,6 +1004,9 @@ files:
|
|||||||
hle_fallback: true
|
hle_fallback: true
|
||||||
embedded: true
|
embedded: true
|
||||||
size: 4096
|
size: 4096
|
||||||
|
sha1: e63bf18da48e5a53c99ef127c1ae721333d1d102
|
||||||
|
md5: 2818722af27ceae6952c08cf83a076f9
|
||||||
|
crc32: 1acf5098
|
||||||
note: "CBM-II Character Generator 600 (CBM 610/620). Embedded in core."
|
note: "CBM-II Character Generator 600 (CBM 610/620). Embedded in core."
|
||||||
source_ref: "vice/src/cbm2/cbm2rom.h:38"
|
source_ref: "vice/src/cbm2/cbm2rom.h:38"
|
||||||
|
|
||||||
@@ -794,6 +1016,9 @@ files:
|
|||||||
hle_fallback: true
|
hle_fallback: true
|
||||||
embedded: true
|
embedded: true
|
||||||
size: 4096
|
size: 4096
|
||||||
|
sha1: e7f3cbc8e282f79a00c3e95d75c8d725ee3c6287
|
||||||
|
md5: 03f32477905d77e2135857076ec31efa
|
||||||
|
crc32: 3a350bc3
|
||||||
note: "CBM-II Character Generator 700 (CBM 710/720). Embedded in core."
|
note: "CBM-II Character Generator 700 (CBM 710/720). Embedded in core."
|
||||||
source_ref: "vice/src/cbm2/cbm2rom.h:39"
|
source_ref: "vice/src/cbm2/cbm2rom.h:39"
|
||||||
|
|
||||||
@@ -807,6 +1032,9 @@ files:
|
|||||||
hle_fallback: true
|
hle_fallback: true
|
||||||
embedded: true
|
embedded: true
|
||||||
size: 65536
|
size: 65536
|
||||||
|
sha1: f5b6da17ee8206ff0d2258e1d6e8b798147c2650
|
||||||
|
md5: 006862e9a52d987970435988e3803c71
|
||||||
|
crc32: 89c1a062
|
||||||
note: "SuperCPU64 internal ROM (default). Embedded in core."
|
note: "SuperCPU64 internal ROM (default). Embedded in core."
|
||||||
source_ref: "retrodep/ui.c:269"
|
source_ref: "retrodep/ui.c:269"
|
||||||
|
|
||||||
@@ -816,6 +1044,9 @@ files:
|
|||||||
hle_fallback: true
|
hle_fallback: true
|
||||||
embedded: true
|
embedded: true
|
||||||
size: 4096
|
size: 4096
|
||||||
|
sha1: adc7c31e18c7c7413d54802ef2f4193da14711aa
|
||||||
|
md5: 12a4202f5331d45af846af6c58fba946
|
||||||
|
crc32: ec4272ee
|
||||||
note: "C64 Character Generator (used by SCPU64). Embedded in core."
|
note: "C64 Character Generator (used by SCPU64). Embedded in core."
|
||||||
source_ref: "vice/src/scpu64/scpu64rom.h:36"
|
source_ref: "vice/src/scpu64/scpu64rom.h:36"
|
||||||
|
|
||||||
@@ -825,6 +1056,9 @@ files:
|
|||||||
hle_fallback: true
|
hle_fallback: true
|
||||||
embedded: true
|
embedded: true
|
||||||
size: 4096
|
size: 4096
|
||||||
|
sha1: 0fad19dbcdb12461c99657b2979dbb5c2e47b527
|
||||||
|
md5: cf32a93c0a693ed359a4f483ef6db53d
|
||||||
|
crc32: 1604f6c1
|
||||||
note: "C64 Japanese Character Generator (used by SCPU64). Embedded in core."
|
note: "C64 Japanese Character Generator (used by SCPU64). Embedded in core."
|
||||||
source_ref: "vice/src/scpu64/scpu64rom.h:37"
|
source_ref: "vice/src/scpu64/scpu64rom.h:37"
|
||||||
|
|
||||||
@@ -854,6 +1088,9 @@ files:
|
|||||||
hle_fallback: true
|
hle_fallback: true
|
||||||
embedded: true
|
embedded: true
|
||||||
size: 16384
|
size: 16384
|
||||||
|
sha1: 3477c14e0c79faa445224dad16534f04ed143e44
|
||||||
|
md5: 87e849da3c87549848550fe4dd4d1aae
|
||||||
|
crc32: 718d42b1
|
||||||
note: "1540 drive DOS ROM. Embedded in core."
|
note: "1540 drive DOS ROM. Embedded in core."
|
||||||
source_ref: "vice/src/drive/driverom.h:88"
|
source_ref: "vice/src/drive/driverom.h:88"
|
||||||
|
|
||||||
@@ -863,6 +1100,9 @@ files:
|
|||||||
hle_fallback: true
|
hle_fallback: true
|
||||||
embedded: true
|
embedded: true
|
||||||
size: 16384
|
size: 16384
|
||||||
|
sha1: ab16f56989b27d89babe5f89c5a8cb3da71a82f0
|
||||||
|
md5: a0ce8439d1b8dcf2e1430461f7233a72
|
||||||
|
crc32: 57224cde
|
||||||
note: "1541 drive DOS ROM. Embedded in core."
|
note: "1541 drive DOS ROM. Embedded in core."
|
||||||
source_ref: "vice/src/drive/driverom.h:89"
|
source_ref: "vice/src/drive/driverom.h:89"
|
||||||
|
|
||||||
@@ -872,6 +1112,9 @@ files:
|
|||||||
hle_fallback: true
|
hle_fallback: true
|
||||||
embedded: true
|
embedded: true
|
||||||
size: 16384
|
size: 16384
|
||||||
|
sha1: d3b78c3dbac55f5199f33f3fe0036439811f7fb3
|
||||||
|
md5: ada295382a1f2df772a7e5c5c6f34215
|
||||||
|
crc32: 899fa3c5
|
||||||
note: "1541-II drive DOS ROM. Embedded in core."
|
note: "1541-II drive DOS ROM. Embedded in core."
|
||||||
source_ref: "vice/src/drive/driverom.h:90"
|
source_ref: "vice/src/drive/driverom.h:90"
|
||||||
|
|
||||||
@@ -881,6 +1124,9 @@ files:
|
|||||||
hle_fallback: true
|
hle_fallback: true
|
||||||
embedded: true
|
embedded: true
|
||||||
size: 16384
|
size: 16384
|
||||||
|
sha1: fae3c788ad9a6cc2dbdfbcf6c0264b2ca921d55e
|
||||||
|
md5: 0c767bf0a84d7751af056e53a074c9e2
|
||||||
|
crc32: 6d16d024
|
||||||
note: "1551 drive DOS ROM (Plus/4 specific). Embedded in core."
|
note: "1551 drive DOS ROM (Plus/4 specific). Embedded in core."
|
||||||
source_ref: "vice/src/drive/driverom.h:92"
|
source_ref: "vice/src/drive/driverom.h:92"
|
||||||
|
|
||||||
@@ -890,6 +1136,9 @@ files:
|
|||||||
hle_fallback: true
|
hle_fallback: true
|
||||||
embedded: true
|
embedded: true
|
||||||
size: 32768
|
size: 32768
|
||||||
|
sha1: 5fc06dc82ff6840f183bd43a4d9b8a16956b2f56
|
||||||
|
md5: f0799353f0e22cf7d783e447adcafde2
|
||||||
|
crc32: 5a0c7937
|
||||||
note: "1570 drive DOS ROM. Embedded in core."
|
note: "1570 drive DOS ROM. Embedded in core."
|
||||||
source_ref: "vice/src/drive/driverom.h:93"
|
source_ref: "vice/src/drive/driverom.h:93"
|
||||||
|
|
||||||
@@ -899,6 +1148,9 @@ files:
|
|||||||
hle_fallback: true
|
hle_fallback: true
|
||||||
embedded: true
|
embedded: true
|
||||||
size: 32768
|
size: 32768
|
||||||
|
sha1: f1be619c106641a685f6609e4d43d6fc9eac1e70
|
||||||
|
md5: dae964d64b7843ff86c008d396dda208
|
||||||
|
crc32: 5755bae3
|
||||||
note: "1571 drive DOS ROM. Embedded in core."
|
note: "1571 drive DOS ROM. Embedded in core."
|
||||||
source_ref: "vice/src/drive/driverom.h:94"
|
source_ref: "vice/src/drive/driverom.h:94"
|
||||||
|
|
||||||
@@ -908,6 +1160,9 @@ files:
|
|||||||
hle_fallback: true
|
hle_fallback: true
|
||||||
embedded: true
|
embedded: true
|
||||||
size: 32768
|
size: 32768
|
||||||
|
sha1: 14ee7a0fb7e1c59c51fbf781f944387037daa3ee
|
||||||
|
md5: f9158328494b3e269f86ef419792c2e5
|
||||||
|
crc32: f24efcc4
|
||||||
note: "1571CR drive DOS ROM (cost-reduced, C128D internal). Embedded in core."
|
note: "1571CR drive DOS ROM (cost-reduced, C128D internal). Embedded in core."
|
||||||
source_ref: "vice/src/drive/driverom.h:95"
|
source_ref: "vice/src/drive/driverom.h:95"
|
||||||
|
|
||||||
@@ -917,6 +1172,9 @@ files:
|
|||||||
hle_fallback: true
|
hle_fallback: true
|
||||||
embedded: true
|
embedded: true
|
||||||
size: 32768
|
size: 32768
|
||||||
|
sha1: 01228eae6f066bd9b7b2b6a7fa3f667e41dad393
|
||||||
|
md5: 6a82f92aea2a3afa190fe32d565f39e7
|
||||||
|
crc32: a9011b84
|
||||||
note: "1581 drive DOS ROM. Embedded in core."
|
note: "1581 drive DOS ROM. Embedded in core."
|
||||||
source_ref: "vice/src/drive/driverom.h:96"
|
source_ref: "vice/src/drive/driverom.h:96"
|
||||||
|
|
||||||
@@ -926,6 +1184,9 @@ files:
|
|||||||
hle_fallback: true
|
hle_fallback: true
|
||||||
embedded: true
|
embedded: true
|
||||||
size: 16384
|
size: 16384
|
||||||
|
sha1: d50b093828888146596f17ae0df9ef3dfde71b05
|
||||||
|
md5: 2d967790361aa77de87a24fb93e342f9
|
||||||
|
crc32: 87e6a94e
|
||||||
note: "CBM 1001 (SFD-1001) drive DOS ROM. Embedded in core."
|
note: "CBM 1001 (SFD-1001) drive DOS ROM. Embedded in core."
|
||||||
source_ref: "vice/src/drive/driverom.h:70"
|
source_ref: "vice/src/drive/driverom.h:70"
|
||||||
|
|
||||||
@@ -935,6 +1196,9 @@ files:
|
|||||||
hle_fallback: true
|
hle_fallback: true
|
||||||
embedded: true
|
embedded: true
|
||||||
size: 16384
|
size: 16384
|
||||||
|
sha1: c53e180a96649ceb3f421739e8dc66faba7cba44
|
||||||
|
md5: 3454c06fd2275f5bcbfe936dcdf8059b
|
||||||
|
crc32: 21b80fdf
|
||||||
note: "CBM 2031 drive DOS ROM. Embedded in core."
|
note: "CBM 2031 drive DOS ROM. Embedded in core."
|
||||||
source_ref: "vice/src/drive/driverom.h:73"
|
source_ref: "vice/src/drive/driverom.h:73"
|
||||||
|
|
||||||
@@ -944,6 +1208,9 @@ files:
|
|||||||
hle_fallback: true
|
hle_fallback: true
|
||||||
embedded: true
|
embedded: true
|
||||||
size: 8192
|
size: 8192
|
||||||
|
sha1: e37b3bfd801eb19dea50cf8b4a6af8613c3520d3
|
||||||
|
md5: 3efff682000fd841b4dd6560bf53e37c
|
||||||
|
crc32: d04c1fbb
|
||||||
note: "CBM 2040 dual drive DOS ROM. Embedded in core."
|
note: "CBM 2040 dual drive DOS ROM. Embedded in core."
|
||||||
source_ref: "vice/src/drive/driverom.h:76"
|
source_ref: "vice/src/drive/driverom.h:76"
|
||||||
|
|
||||||
@@ -953,6 +1220,9 @@ files:
|
|||||||
hle_fallback: true
|
hle_fallback: true
|
||||||
embedded: true
|
embedded: true
|
||||||
size: 12288
|
size: 12288
|
||||||
|
sha1: 02bd4b0c8508b3874b95799a9a63caf369c837de
|
||||||
|
md5: 139e72a58b7ddb2f92ceb18c8735c53c
|
||||||
|
crc32: f4967a7f
|
||||||
note: "CBM 3040 dual drive DOS ROM. Embedded in core."
|
note: "CBM 3040 dual drive DOS ROM. Embedded in core."
|
||||||
source_ref: "vice/src/drive/driverom.h:79"
|
source_ref: "vice/src/drive/driverom.h:79"
|
||||||
|
|
||||||
@@ -962,6 +1232,9 @@ files:
|
|||||||
hle_fallback: true
|
hle_fallback: true
|
||||||
embedded: true
|
embedded: true
|
||||||
size: 12288
|
size: 12288
|
||||||
|
sha1: 245abbe76581558d270cdbb6fe55f56748403d8e
|
||||||
|
md5: 2fce6a76c738d1a10c189bf0660d868e
|
||||||
|
crc32: 40e0ebaa
|
||||||
note: "CBM 4040 dual drive DOS ROM. Embedded in core."
|
note: "CBM 4040 dual drive DOS ROM. Embedded in core."
|
||||||
source_ref: "vice/src/drive/driverom.h:82"
|
source_ref: "vice/src/drive/driverom.h:82"
|
||||||
|
|
||||||
@@ -971,6 +1244,9 @@ files:
|
|||||||
hle_fallback: true
|
hle_fallback: true
|
||||||
embedded: true
|
embedded: true
|
||||||
size: 16384
|
size: 16384
|
||||||
|
sha1: c48df2cbb0eea656c3243df7ea8bfefcd171b8e8
|
||||||
|
md5: d6d4df6f2811767de6f5bf46ad7fba69
|
||||||
|
crc32: 632a328e
|
||||||
note: "CBM D9090/D9060 hard drive DOS ROM. Embedded in core."
|
note: "CBM D9090/D9060 hard drive DOS ROM. Embedded in core."
|
||||||
source_ref: "vice/src/drive/driverom.h:85"
|
source_ref: "vice/src/drive/driverom.h:85"
|
||||||
|
|
||||||
|
|||||||
46
install.ps1
46
install.ps1
@@ -101,4 +101,50 @@ foreach ($f in $toDownload) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
# Standalone emulator copies
|
||||||
|
if ($manifest.standalone_copies) {
|
||||||
|
Write-Host "`nStandalone emulators:"
|
||||||
|
foreach ($entry in $manifest.standalone_copies) {
|
||||||
|
if ($entry.note) {
|
||||||
|
$detectPaths = @()
|
||||||
|
if ($entry.detect -and $entry.detect.windows) {
|
||||||
|
$detectPaths = $entry.detect.windows
|
||||||
|
}
|
||||||
|
foreach ($dp in $detectPaths) {
|
||||||
|
$expanded = [Environment]::ExpandEnvironmentVariables($dp)
|
||||||
|
if (Test-Path $expanded) {
|
||||||
|
Write-Host " $($entry.note)"
|
||||||
|
break
|
||||||
|
}
|
||||||
|
}
|
||||||
|
continue
|
||||||
|
}
|
||||||
|
$sources = @()
|
||||||
|
if ($entry.pattern) {
|
||||||
|
$sources = Get-ChildItem -Path $biosPath -Filter $entry.pattern -File -ErrorAction SilentlyContinue
|
||||||
|
} elseif ($entry.file) {
|
||||||
|
$src = Join-Path $biosPath $entry.file
|
||||||
|
if (Test-Path $src) { $sources = @(Get-Item $src) }
|
||||||
|
}
|
||||||
|
if ($sources.Count -eq 0) { continue }
|
||||||
|
$targetDirs = @()
|
||||||
|
if ($entry.targets -and $entry.targets.windows) {
|
||||||
|
$targetDirs = $entry.targets.windows
|
||||||
|
}
|
||||||
|
foreach ($td in $targetDirs) {
|
||||||
|
$expanded = [Environment]::ExpandEnvironmentVariables($td)
|
||||||
|
if (-not (Test-Path $expanded)) { continue }
|
||||||
|
foreach ($s in $sources) {
|
||||||
|
$dest = Join-Path $expanded $s.Name
|
||||||
|
try {
|
||||||
|
Copy-Item $s.FullName $dest -Force
|
||||||
|
Write-Host " $($s.Name) -> $expanded"
|
||||||
|
} catch {
|
||||||
|
Write-Host " $($s.Name) -> $expanded FAILED" -ForegroundColor Red
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
Write-Host "`nDone. $downloaded downloaded, $upToDate already up to date."
|
Write-Host "`nDone. $downloaded downloaded, $upToDate already up to date."
|
||||||
|
|||||||
49
install.py
49
install.py
@@ -192,9 +192,9 @@ def detect_platforms(os_type: str) -> list[tuple[str, Path]]:
|
|||||||
if retrodeck_cfg.exists():
|
if retrodeck_cfg.exists():
|
||||||
bios_path = _parse_bash_var(retrodeck_cfg, "rdhome")
|
bios_path = _parse_bash_var(retrodeck_cfg, "rdhome")
|
||||||
if bios_path:
|
if bios_path:
|
||||||
found.append(("retrodeck", Path(bios_path) / "bios"))
|
found.append(("retrodeck", Path(bios_path)))
|
||||||
else:
|
else:
|
||||||
found.append(("retrodeck", home / "retrodeck" / "bios"))
|
found.append(("retrodeck", home / "retrodeck"))
|
||||||
|
|
||||||
# RetroArch Flatpak
|
# RetroArch Flatpak
|
||||||
flatpak_cfg = home / ".var" / "app" / "org.libretro.RetroArch" / "config" / "retroarch" / "retroarch.cfg"
|
flatpak_cfg = home / ".var" / "app" / "org.libretro.RetroArch" / "config" / "retroarch" / "retroarch.cfg"
|
||||||
@@ -390,8 +390,16 @@ def do_standalone_copies(
|
|||||||
) -> tuple[int, int]:
|
) -> tuple[int, int]:
|
||||||
"""Copy BIOS files to standalone emulator directories.
|
"""Copy BIOS files to standalone emulator directories.
|
||||||
|
|
||||||
|
Supports:
|
||||||
|
- file: single file copy
|
||||||
|
- pattern: glob match (e.g. "scph*.bin")
|
||||||
|
- note: informational message when detect path exists
|
||||||
|
- WSL fallback to linux targets
|
||||||
|
|
||||||
Returns (copied_count, skipped_count).
|
Returns (copied_count, skipped_count).
|
||||||
"""
|
"""
|
||||||
|
from fnmatch import fnmatch
|
||||||
|
|
||||||
copies = manifest.get("standalone_copies", [])
|
copies = manifest.get("standalone_copies", [])
|
||||||
if not copies:
|
if not copies:
|
||||||
return 0, 0
|
return 0, 0
|
||||||
@@ -400,21 +408,48 @@ def do_standalone_copies(
|
|||||||
skipped = 0
|
skipped = 0
|
||||||
|
|
||||||
for entry in copies:
|
for entry in copies:
|
||||||
src = bios_path / entry["file"]
|
# Note entries: print message if emulator detected
|
||||||
if not src.exists():
|
if "note" in entry:
|
||||||
|
detect_paths = entry.get("detect", {}).get(os_type, [])
|
||||||
|
if not detect_paths and os_type == "wsl":
|
||||||
|
detect_paths = entry.get("detect", {}).get("linux", [])
|
||||||
|
for dp in detect_paths:
|
||||||
|
expanded = Path(os.path.expandvars(os.path.expanduser(dp)))
|
||||||
|
if expanded.is_dir():
|
||||||
|
print(f" {entry['note']}")
|
||||||
|
break
|
||||||
continue
|
continue
|
||||||
|
|
||||||
|
# Resolve source files
|
||||||
|
if "pattern" in entry:
|
||||||
|
sources = [
|
||||||
|
f for f in bios_path.rglob("*")
|
||||||
|
if fnmatch(f.name, entry["pattern"]) and f.is_file()
|
||||||
|
]
|
||||||
|
else:
|
||||||
|
src = bios_path / entry["file"]
|
||||||
|
sources = [src] if src.exists() else []
|
||||||
|
|
||||||
|
if not sources:
|
||||||
|
continue
|
||||||
|
|
||||||
|
# Resolve target directories with WSL fallback
|
||||||
targets = entry.get("targets", {}).get(os_type, [])
|
targets = entry.get("targets", {}).get(os_type, [])
|
||||||
|
if not targets and os_type == "wsl":
|
||||||
|
targets = entry.get("targets", {}).get("linux", [])
|
||||||
|
|
||||||
for target_dir_str in targets:
|
for target_dir_str in targets:
|
||||||
target_dir = Path(os.path.expandvars(os.path.expanduser(target_dir_str)))
|
target_dir = Path(os.path.expandvars(os.path.expanduser(target_dir_str)))
|
||||||
if target_dir.is_dir():
|
if not target_dir.is_dir():
|
||||||
|
skipped += len(sources)
|
||||||
|
continue
|
||||||
|
for src in sources:
|
||||||
dest = target_dir / src.name
|
dest = target_dir / src.name
|
||||||
try:
|
try:
|
||||||
shutil.copy2(src, dest)
|
shutil.copy2(src, dest)
|
||||||
copied += 1
|
copied += 1
|
||||||
except OSError:
|
except OSError:
|
||||||
skipped += 1
|
skipped += 1
|
||||||
else:
|
|
||||||
skipped += 1
|
|
||||||
|
|
||||||
return copied, skipped
|
return copied, skipped
|
||||||
|
|
||||||
|
|||||||
@@ -4,7 +4,7 @@
|
|||||||
"platform": "batocera",
|
"platform": "batocera",
|
||||||
"display_name": "Batocera",
|
"display_name": "Batocera",
|
||||||
"version": "1.0",
|
"version": "1.0",
|
||||||
"generated": "2026-04-02T13:52:15Z",
|
"generated": "2026-04-18T07:55:01Z",
|
||||||
"base_destination": "bios",
|
"base_destination": "bios",
|
||||||
"detect": [
|
"detect": [
|
||||||
{
|
{
|
||||||
@@ -14,9 +14,224 @@
|
|||||||
"bios_path": "/userdata/bios"
|
"bios_path": "/userdata/bios"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"standalone_copies": [],
|
"standalone_copies": [
|
||||||
"total_files": 1547,
|
{
|
||||||
"total_size": 4371484317,
|
"file": "prod.keys",
|
||||||
|
"targets": {
|
||||||
|
"linux": [
|
||||||
|
"$HOME/.local/share/yuzu/keys",
|
||||||
|
"$HOME/.local/share/eden/keys",
|
||||||
|
"$HOME/.local/share/citron/keys",
|
||||||
|
"$HOME/.local/share/suyu/keys",
|
||||||
|
"$HOME/.config/Ryujinx/system"
|
||||||
|
],
|
||||||
|
"windows": [
|
||||||
|
"%APPDATA%\\yuzu\\keys",
|
||||||
|
"%APPDATA%\\eden\\keys",
|
||||||
|
"%APPDATA%\\citron\\keys",
|
||||||
|
"%APPDATA%\\suyu\\keys",
|
||||||
|
"%APPDATA%\\Ryujinx\\system"
|
||||||
|
],
|
||||||
|
"darwin": [
|
||||||
|
"$HOME/Library/Application Support/yuzu/keys",
|
||||||
|
"$HOME/Library/Application Support/Ryujinx/system"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"file": "title.keys",
|
||||||
|
"targets": {
|
||||||
|
"linux": [
|
||||||
|
"$HOME/.local/share/yuzu/keys",
|
||||||
|
"$HOME/.local/share/eden/keys",
|
||||||
|
"$HOME/.local/share/citron/keys",
|
||||||
|
"$HOME/.local/share/suyu/keys"
|
||||||
|
],
|
||||||
|
"windows": [
|
||||||
|
"%APPDATA%\\yuzu\\keys",
|
||||||
|
"%APPDATA%\\eden\\keys",
|
||||||
|
"%APPDATA%\\citron\\keys",
|
||||||
|
"%APPDATA%\\suyu\\keys"
|
||||||
|
],
|
||||||
|
"darwin": [
|
||||||
|
"$HOME/Library/Application Support/yuzu/keys"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"file": "Citra/sysdata/aes_keys.txt",
|
||||||
|
"targets": {
|
||||||
|
"linux": [
|
||||||
|
"$HOME/.local/share/azahar/sysdata"
|
||||||
|
],
|
||||||
|
"windows": [
|
||||||
|
"%APPDATA%\\Azahar\\sysdata"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"file": "Citra/sysdata/boot9.bin",
|
||||||
|
"targets": {
|
||||||
|
"linux": [
|
||||||
|
"$HOME/.local/share/azahar/sysdata"
|
||||||
|
],
|
||||||
|
"windows": [
|
||||||
|
"%APPDATA%\\Azahar\\sysdata"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"pattern": "scph*.bin",
|
||||||
|
"targets": {
|
||||||
|
"linux": [
|
||||||
|
"$HOME/.local/share/duckstation/bios"
|
||||||
|
],
|
||||||
|
"windows": [
|
||||||
|
"%LOCALAPPDATA%\\DuckStation\\bios",
|
||||||
|
"%USERPROFILE%\\Documents\\DuckStation\\bios"
|
||||||
|
],
|
||||||
|
"darwin": [
|
||||||
|
"$HOME/Library/Application Support/DuckStation/bios"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"pattern": "ps2-*.bin",
|
||||||
|
"targets": {
|
||||||
|
"linux": [
|
||||||
|
"$HOME/.config/PCSX2/bios",
|
||||||
|
"$HOME/.var/app/net.pcsx2.PCSX2/config/PCSX2/bios"
|
||||||
|
],
|
||||||
|
"windows": [
|
||||||
|
"%USERPROFILE%\\Documents\\PCSX2\\bios"
|
||||||
|
],
|
||||||
|
"darwin": [
|
||||||
|
"$HOME/Library/Application Support/PCSX2/bios"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"note": "PS3 firmware (PS3UPDAT.PUP) found. Install via RPCS3 > File > Install Firmware.",
|
||||||
|
"detect": {
|
||||||
|
"linux": [
|
||||||
|
"$HOME/.config/rpcs3"
|
||||||
|
],
|
||||||
|
"windows": [
|
||||||
|
"%APPDATA%\\rpcs3"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"file": "GC/USA/IPL.bin",
|
||||||
|
"targets": {
|
||||||
|
"linux": [
|
||||||
|
"$HOME/.local/share/dolphin-emu/GC/USA"
|
||||||
|
],
|
||||||
|
"windows": [
|
||||||
|
"%APPDATA%\\Dolphin Emulator\\GC\\USA"
|
||||||
|
],
|
||||||
|
"darwin": [
|
||||||
|
"$HOME/Library/Application Support/Dolphin/GC/USA"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"file": "GC/EUR/IPL.bin",
|
||||||
|
"targets": {
|
||||||
|
"linux": [
|
||||||
|
"$HOME/.local/share/dolphin-emu/GC/EUR"
|
||||||
|
],
|
||||||
|
"windows": [
|
||||||
|
"%APPDATA%\\Dolphin Emulator\\GC\\EUR"
|
||||||
|
],
|
||||||
|
"darwin": [
|
||||||
|
"$HOME/Library/Application Support/Dolphin/GC/EUR"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"file": "GC/JAP/IPL.bin",
|
||||||
|
"targets": {
|
||||||
|
"linux": [
|
||||||
|
"$HOME/.local/share/dolphin-emu/GC/JAP"
|
||||||
|
],
|
||||||
|
"windows": [
|
||||||
|
"%APPDATA%\\Dolphin Emulator\\GC\\JAP"
|
||||||
|
],
|
||||||
|
"darwin": [
|
||||||
|
"$HOME/Library/Application Support/Dolphin/GC/JAP"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"file": "dsp_rom.bin",
|
||||||
|
"targets": {
|
||||||
|
"linux": [
|
||||||
|
"$HOME/.local/share/dolphin-emu"
|
||||||
|
],
|
||||||
|
"windows": [
|
||||||
|
"%APPDATA%\\Dolphin Emulator"
|
||||||
|
],
|
||||||
|
"darwin": [
|
||||||
|
"$HOME/Library/Application Support/Dolphin"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"file": "dsp_coef.bin",
|
||||||
|
"targets": {
|
||||||
|
"linux": [
|
||||||
|
"$HOME/.local/share/dolphin-emu"
|
||||||
|
],
|
||||||
|
"windows": [
|
||||||
|
"%APPDATA%\\Dolphin Emulator"
|
||||||
|
],
|
||||||
|
"darwin": [
|
||||||
|
"$HOME/Library/Application Support/Dolphin"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"file": "PPSSPP/ppge_atlas.zim",
|
||||||
|
"targets": {
|
||||||
|
"linux": [
|
||||||
|
"$HOME/.config/ppsspp/PSP/SYSTEM"
|
||||||
|
],
|
||||||
|
"windows": [
|
||||||
|
"%USERPROFILE%\\Documents\\PPSSPP\\PSP\\SYSTEM"
|
||||||
|
],
|
||||||
|
"darwin": [
|
||||||
|
"$HOME/Library/Application Support/PPSSPP/PSP/SYSTEM"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"file": "dc/dc_boot.bin",
|
||||||
|
"targets": {
|
||||||
|
"linux": [
|
||||||
|
"$HOME/.local/share/flycast/data",
|
||||||
|
"$HOME/.var/app/org.flycast.Flycast/data/flycast"
|
||||||
|
],
|
||||||
|
"windows": [
|
||||||
|
"%APPDATA%\\flycast\\data"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"file": "dc/dc_nvmem.bin",
|
||||||
|
"targets": {
|
||||||
|
"linux": [
|
||||||
|
"$HOME/.local/share/flycast/data",
|
||||||
|
"$HOME/.var/app/org.flycast.Flycast/data/flycast"
|
||||||
|
],
|
||||||
|
"windows": [
|
||||||
|
"%APPDATA%\\flycast\\data"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"total_files": 1540,
|
||||||
|
"total_size": 4337691265,
|
||||||
"files": [
|
"files": [
|
||||||
{
|
{
|
||||||
"dest": "panafz1.bin",
|
"dest": "panafz1.bin",
|
||||||
@@ -4507,7 +4722,7 @@
|
|||||||
]
|
]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"dest": "MSX/msx.rom",
|
"dest": "MSX/MSX.ROM",
|
||||||
"sha1": "409e82adac40f6bdd18eb6c84e8b2fbdc7fb5498",
|
"sha1": "409e82adac40f6bdd18eb6c84e8b2fbdc7fb5498",
|
||||||
"size": 32768,
|
"size": 32768,
|
||||||
"repo_path": "bios/Microsoft/MSX/MSX.ROM",
|
"repo_path": "bios/Microsoft/MSX/MSX.ROM",
|
||||||
@@ -4552,7 +4767,7 @@
|
|||||||
]
|
]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"dest": "MSX/msx2.rom",
|
"dest": "MSX/MSX2.ROM",
|
||||||
"sha1": "6103b39f1e38d1aa2d84b1c3219c44f1abb5436e",
|
"sha1": "6103b39f1e38d1aa2d84b1c3219c44f1abb5436e",
|
||||||
"size": 32768,
|
"size": 32768,
|
||||||
"repo_path": "bios/Microsoft/MSX/MSX2.ROM",
|
"repo_path": "bios/Microsoft/MSX/MSX2.ROM",
|
||||||
@@ -4561,7 +4776,7 @@
|
|||||||
]
|
]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"dest": "MSX/msx2ext.rom",
|
"dest": "MSX/MSX2EXT.ROM",
|
||||||
"sha1": "5c1f9c7fb655e43d38e5dd1fcc6b942b2ff68b02",
|
"sha1": "5c1f9c7fb655e43d38e5dd1fcc6b942b2ff68b02",
|
||||||
"size": 16384,
|
"size": 16384,
|
||||||
"repo_path": "bios/Microsoft/MSX/MSX2EXT.ROM",
|
"repo_path": "bios/Microsoft/MSX/MSX2EXT.ROM",
|
||||||
@@ -9160,69 +9375,6 @@
|
|||||||
"SquirrelJME"
|
"SquirrelJME"
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
{
|
|
||||||
"dest": "kvs1.wav",
|
|
||||||
"sha1": "b094c2c1fca81a0e531e0541f302346150ec4604",
|
|
||||||
"size": 3436329,
|
|
||||||
"repo_path": "bios/Atari/2600/KVS1.WAV",
|
|
||||||
"cores": [
|
|
||||||
"Stella 2014"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"dest": "kvs2.wav",
|
|
||||||
"sha1": "8b83b2eea01b3e08ceb885aeb153d4084bddb63c",
|
|
||||||
"size": 2086275,
|
|
||||||
"repo_path": "bios/Atari/2600/KVS2.WAV",
|
|
||||||
"cores": [
|
|
||||||
"Stella 2014"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"dest": "kvs3.wav",
|
|
||||||
"sha1": "86896a1e272d8715489de9b407f0b8a42f82d4a0",
|
|
||||||
"size": 3720920,
|
|
||||||
"repo_path": "bios/Atari/2600/KVS3.WAV",
|
|
||||||
"cores": [
|
|
||||||
"Stella 2014"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"dest": "kvb1.wav",
|
|
||||||
"sha1": "6a582aebcefd6e2a97bdd8968202aab9851a889c",
|
|
||||||
"size": 4219542,
|
|
||||||
"repo_path": "bios/Atari/2600/KVB1.WAV",
|
|
||||||
"cores": [
|
|
||||||
"Stella 2014"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"dest": "kvb2.wav",
|
|
||||||
"sha1": "60a425c6bde3226ab731995562716321be20fc49",
|
|
||||||
"size": 9593878,
|
|
||||||
"repo_path": "bios/Atari/2600/KVB2.WAV",
|
|
||||||
"cores": [
|
|
||||||
"Stella 2014"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"dest": "kvb3.wav",
|
|
||||||
"sha1": "5e34125c4d6c209b21d1c892f3df0ec1644fd0d8",
|
|
||||||
"size": 7676992,
|
|
||||||
"repo_path": "bios/Atari/2600/KVB3.WAV",
|
|
||||||
"cores": [
|
|
||||||
"Stella 2014"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"dest": "kvshared.wav",
|
|
||||||
"sha1": "9adf10cdf1de833b194c7d8797ad1f041ad98dd3",
|
|
||||||
"size": 3059116,
|
|
||||||
"repo_path": "bios/Atari/2600/KVSHARED.WAV",
|
|
||||||
"cores": [
|
|
||||||
"Stella 2014"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"dest": "KVS1.WAV",
|
"dest": "KVS1.WAV",
|
||||||
"sha1": "b094c2c1fca81a0e531e0541f302346150ec4604",
|
"sha1": "b094c2c1fca81a0e531e0541f302346150ec4604",
|
||||||
|
|||||||
@@ -4,7 +4,7 @@
|
|||||||
"platform": "bizhawk",
|
"platform": "bizhawk",
|
||||||
"display_name": "BizHawk",
|
"display_name": "BizHawk",
|
||||||
"version": "1.0",
|
"version": "1.0",
|
||||||
"generated": "2026-04-02T13:52:21Z",
|
"generated": "2026-04-18T07:55:07Z",
|
||||||
"base_destination": "Firmware",
|
"base_destination": "Firmware",
|
||||||
"detect": [
|
"detect": [
|
||||||
{
|
{
|
||||||
@@ -285,7 +285,7 @@
|
|||||||
"dest": "VEC_Minestorm.vec",
|
"dest": "VEC_Minestorm.vec",
|
||||||
"sha1": "65d07426b520ddd3115d40f255511e0fd2e20ae7",
|
"sha1": "65d07426b520ddd3115d40f255511e0fd2e20ae7",
|
||||||
"size": 8192,
|
"size": 8192,
|
||||||
"repo_path": "bios/GCE/Vectrex/VEC_MineStorm.vec",
|
"repo_path": "bios/GCE/Vectrex/VEC_Minestorm.vec",
|
||||||
"cores": null
|
"cores": null
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -4,7 +4,7 @@
|
|||||||
"platform": "emudeck",
|
"platform": "emudeck",
|
||||||
"display_name": "EmuDeck",
|
"display_name": "EmuDeck",
|
||||||
"version": "1.0",
|
"version": "1.0",
|
||||||
"generated": "2026-04-01T14:41:53Z",
|
"generated": "2026-04-03T09:43:22Z",
|
||||||
"base_destination": "bios",
|
"base_destination": "bios",
|
||||||
"detect": [
|
"detect": [
|
||||||
{
|
{
|
||||||
@@ -34,19 +34,211 @@
|
|||||||
"linux": [
|
"linux": [
|
||||||
"$HOME/.local/share/yuzu/keys",
|
"$HOME/.local/share/yuzu/keys",
|
||||||
"$HOME/.local/share/eden/keys",
|
"$HOME/.local/share/eden/keys",
|
||||||
|
"$HOME/.local/share/citron/keys",
|
||||||
|
"$HOME/.local/share/suyu/keys",
|
||||||
"$HOME/.config/Ryujinx/system"
|
"$HOME/.config/Ryujinx/system"
|
||||||
],
|
],
|
||||||
"windows": [
|
"windows": [
|
||||||
"%APPDATA%\\yuzu\\keys",
|
"%APPDATA%\\yuzu\\keys",
|
||||||
"%APPDATA%\\eden\\keys"
|
"%APPDATA%\\eden\\keys",
|
||||||
|
"%APPDATA%\\citron\\keys",
|
||||||
|
"%APPDATA%\\suyu\\keys",
|
||||||
|
"%APPDATA%\\Ryujinx\\system"
|
||||||
|
],
|
||||||
|
"darwin": [
|
||||||
|
"$HOME/Library/Application Support/yuzu/keys",
|
||||||
|
"$HOME/Library/Application Support/Ryujinx/system"
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"file": "aes_keys.txt",
|
"file": "title.keys",
|
||||||
"targets": {
|
"targets": {
|
||||||
"linux": [
|
"linux": [
|
||||||
"$HOME/Emulation/bios/citra/keys"
|
"$HOME/.local/share/yuzu/keys",
|
||||||
|
"$HOME/.local/share/eden/keys",
|
||||||
|
"$HOME/.local/share/citron/keys",
|
||||||
|
"$HOME/.local/share/suyu/keys"
|
||||||
|
],
|
||||||
|
"windows": [
|
||||||
|
"%APPDATA%\\yuzu\\keys",
|
||||||
|
"%APPDATA%\\eden\\keys",
|
||||||
|
"%APPDATA%\\citron\\keys",
|
||||||
|
"%APPDATA%\\suyu\\keys"
|
||||||
|
],
|
||||||
|
"darwin": [
|
||||||
|
"$HOME/Library/Application Support/yuzu/keys"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"file": "Citra/sysdata/aes_keys.txt",
|
||||||
|
"targets": {
|
||||||
|
"linux": [
|
||||||
|
"$HOME/.local/share/azahar/sysdata"
|
||||||
|
],
|
||||||
|
"windows": [
|
||||||
|
"%APPDATA%\\Azahar\\sysdata"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"file": "Citra/sysdata/boot9.bin",
|
||||||
|
"targets": {
|
||||||
|
"linux": [
|
||||||
|
"$HOME/.local/share/azahar/sysdata"
|
||||||
|
],
|
||||||
|
"windows": [
|
||||||
|
"%APPDATA%\\Azahar\\sysdata"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"pattern": "scph*.bin",
|
||||||
|
"targets": {
|
||||||
|
"linux": [
|
||||||
|
"$HOME/.local/share/duckstation/bios"
|
||||||
|
],
|
||||||
|
"windows": [
|
||||||
|
"%LOCALAPPDATA%\\DuckStation\\bios",
|
||||||
|
"%USERPROFILE%\\Documents\\DuckStation\\bios"
|
||||||
|
],
|
||||||
|
"darwin": [
|
||||||
|
"$HOME/Library/Application Support/DuckStation/bios"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"pattern": "ps2-*.bin",
|
||||||
|
"targets": {
|
||||||
|
"linux": [
|
||||||
|
"$HOME/.config/PCSX2/bios",
|
||||||
|
"$HOME/.var/app/net.pcsx2.PCSX2/config/PCSX2/bios"
|
||||||
|
],
|
||||||
|
"windows": [
|
||||||
|
"%USERPROFILE%\\Documents\\PCSX2\\bios"
|
||||||
|
],
|
||||||
|
"darwin": [
|
||||||
|
"$HOME/Library/Application Support/PCSX2/bios"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"note": "PS3 firmware (PS3UPDAT.PUP) found. Install via RPCS3 > File > Install Firmware.",
|
||||||
|
"detect": {
|
||||||
|
"linux": [
|
||||||
|
"$HOME/.config/rpcs3"
|
||||||
|
],
|
||||||
|
"windows": [
|
||||||
|
"%APPDATA%\\rpcs3"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"file": "GC/USA/IPL.bin",
|
||||||
|
"targets": {
|
||||||
|
"linux": [
|
||||||
|
"$HOME/.local/share/dolphin-emu/GC/USA"
|
||||||
|
],
|
||||||
|
"windows": [
|
||||||
|
"%APPDATA%\\Dolphin Emulator\\GC\\USA"
|
||||||
|
],
|
||||||
|
"darwin": [
|
||||||
|
"$HOME/Library/Application Support/Dolphin/GC/USA"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"file": "GC/EUR/IPL.bin",
|
||||||
|
"targets": {
|
||||||
|
"linux": [
|
||||||
|
"$HOME/.local/share/dolphin-emu/GC/EUR"
|
||||||
|
],
|
||||||
|
"windows": [
|
||||||
|
"%APPDATA%\\Dolphin Emulator\\GC\\EUR"
|
||||||
|
],
|
||||||
|
"darwin": [
|
||||||
|
"$HOME/Library/Application Support/Dolphin/GC/EUR"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"file": "GC/JAP/IPL.bin",
|
||||||
|
"targets": {
|
||||||
|
"linux": [
|
||||||
|
"$HOME/.local/share/dolphin-emu/GC/JAP"
|
||||||
|
],
|
||||||
|
"windows": [
|
||||||
|
"%APPDATA%\\Dolphin Emulator\\GC\\JAP"
|
||||||
|
],
|
||||||
|
"darwin": [
|
||||||
|
"$HOME/Library/Application Support/Dolphin/GC/JAP"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"file": "dsp_rom.bin",
|
||||||
|
"targets": {
|
||||||
|
"linux": [
|
||||||
|
"$HOME/.local/share/dolphin-emu"
|
||||||
|
],
|
||||||
|
"windows": [
|
||||||
|
"%APPDATA%\\Dolphin Emulator"
|
||||||
|
],
|
||||||
|
"darwin": [
|
||||||
|
"$HOME/Library/Application Support/Dolphin"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"file": "dsp_coef.bin",
|
||||||
|
"targets": {
|
||||||
|
"linux": [
|
||||||
|
"$HOME/.local/share/dolphin-emu"
|
||||||
|
],
|
||||||
|
"windows": [
|
||||||
|
"%APPDATA%\\Dolphin Emulator"
|
||||||
|
],
|
||||||
|
"darwin": [
|
||||||
|
"$HOME/Library/Application Support/Dolphin"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"file": "PPSSPP/ppge_atlas.zim",
|
||||||
|
"targets": {
|
||||||
|
"linux": [
|
||||||
|
"$HOME/.config/ppsspp/PSP/SYSTEM"
|
||||||
|
],
|
||||||
|
"windows": [
|
||||||
|
"%USERPROFILE%\\Documents\\PPSSPP\\PSP\\SYSTEM"
|
||||||
|
],
|
||||||
|
"darwin": [
|
||||||
|
"$HOME/Library/Application Support/PPSSPP/PSP/SYSTEM"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"file": "dc/dc_boot.bin",
|
||||||
|
"targets": {
|
||||||
|
"linux": [
|
||||||
|
"$HOME/.local/share/flycast/data",
|
||||||
|
"$HOME/.var/app/org.flycast.Flycast/data/flycast"
|
||||||
|
],
|
||||||
|
"windows": [
|
||||||
|
"%APPDATA%\\flycast\\data"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"file": "dc/dc_nvmem.bin",
|
||||||
|
"targets": {
|
||||||
|
"linux": [
|
||||||
|
"$HOME/.local/share/flycast/data",
|
||||||
|
"$HOME/.var/app/org.flycast.Flycast/data/flycast"
|
||||||
|
],
|
||||||
|
"windows": [
|
||||||
|
"%APPDATA%\\flycast\\data"
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -4,7 +4,7 @@
|
|||||||
"platform": "lakka",
|
"platform": "lakka",
|
||||||
"display_name": "Lakka",
|
"display_name": "Lakka",
|
||||||
"version": "1.0",
|
"version": "1.0",
|
||||||
"generated": "2026-04-02T13:52:45Z",
|
"generated": "2026-04-18T07:55:35Z",
|
||||||
"base_destination": "system",
|
"base_destination": "system",
|
||||||
"detect": [
|
"detect": [
|
||||||
{
|
{
|
||||||
@@ -9837,66 +9837,66 @@
|
|||||||
]
|
]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"dest": "kvs1.wav",
|
"dest": "KVS1.WAV",
|
||||||
"sha1": "b094c2c1fca81a0e531e0541f302346150ec4604",
|
"sha1": "b094c2c1fca81a0e531e0541f302346150ec4604",
|
||||||
"size": 3436329,
|
"size": 3436329,
|
||||||
"repo_path": "bios/Atari/2600/KVS1.WAV",
|
"repo_path": "bios/Atari/2600/KVS1.WAV",
|
||||||
"cores": [
|
"cores": [
|
||||||
"Stella 2014"
|
"Stella 2023"
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"dest": "kvs2.wav",
|
"dest": "KVS2.WAV",
|
||||||
"sha1": "8b83b2eea01b3e08ceb885aeb153d4084bddb63c",
|
"sha1": "8b83b2eea01b3e08ceb885aeb153d4084bddb63c",
|
||||||
"size": 2086275,
|
"size": 2086275,
|
||||||
"repo_path": "bios/Atari/2600/KVS2.WAV",
|
"repo_path": "bios/Atari/2600/KVS2.WAV",
|
||||||
"cores": [
|
"cores": [
|
||||||
"Stella 2014"
|
"Stella 2023"
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"dest": "kvs3.wav",
|
"dest": "KVS3.WAV",
|
||||||
"sha1": "86896a1e272d8715489de9b407f0b8a42f82d4a0",
|
"sha1": "86896a1e272d8715489de9b407f0b8a42f82d4a0",
|
||||||
"size": 3720920,
|
"size": 3720920,
|
||||||
"repo_path": "bios/Atari/2600/KVS3.WAV",
|
"repo_path": "bios/Atari/2600/KVS3.WAV",
|
||||||
"cores": [
|
"cores": [
|
||||||
"Stella 2014"
|
"Stella 2023"
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"dest": "kvb1.wav",
|
"dest": "KVB1.WAV",
|
||||||
"sha1": "6a582aebcefd6e2a97bdd8968202aab9851a889c",
|
"sha1": "6a582aebcefd6e2a97bdd8968202aab9851a889c",
|
||||||
"size": 4219542,
|
"size": 4219542,
|
||||||
"repo_path": "bios/Atari/2600/KVB1.WAV",
|
"repo_path": "bios/Atari/2600/KVB1.WAV",
|
||||||
"cores": [
|
"cores": [
|
||||||
"Stella 2014"
|
"Stella 2023"
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"dest": "kvb2.wav",
|
"dest": "KVB2.WAV",
|
||||||
"sha1": "60a425c6bde3226ab731995562716321be20fc49",
|
"sha1": "60a425c6bde3226ab731995562716321be20fc49",
|
||||||
"size": 9593878,
|
"size": 9593878,
|
||||||
"repo_path": "bios/Atari/2600/KVB2.WAV",
|
"repo_path": "bios/Atari/2600/KVB2.WAV",
|
||||||
"cores": [
|
"cores": [
|
||||||
"Stella 2014"
|
"Stella 2023"
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"dest": "kvb3.wav",
|
"dest": "KVB3.WAV",
|
||||||
"sha1": "5e34125c4d6c209b21d1c892f3df0ec1644fd0d8",
|
"sha1": "5e34125c4d6c209b21d1c892f3df0ec1644fd0d8",
|
||||||
"size": 7676992,
|
"size": 7676992,
|
||||||
"repo_path": "bios/Atari/2600/KVB3.WAV",
|
"repo_path": "bios/Atari/2600/KVB3.WAV",
|
||||||
"cores": [
|
"cores": [
|
||||||
"Stella 2014"
|
"Stella 2023"
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"dest": "kvshared.wav",
|
"dest": "KVSHARED.WAV",
|
||||||
"sha1": "9adf10cdf1de833b194c7d8797ad1f041ad98dd3",
|
"sha1": "9adf10cdf1de833b194c7d8797ad1f041ad98dd3",
|
||||||
"size": 3059116,
|
"size": 3059116,
|
||||||
"repo_path": "bios/Atari/2600/KVSHARED.WAV",
|
"repo_path": "bios/Atari/2600/KVSHARED.WAV",
|
||||||
"cores": [
|
"cores": [
|
||||||
"Stella 2014"
|
"Stella 2023"
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -4,7 +4,7 @@
|
|||||||
"platform": "recalbox",
|
"platform": "recalbox",
|
||||||
"display_name": "Recalbox",
|
"display_name": "Recalbox",
|
||||||
"version": "1.0",
|
"version": "1.0",
|
||||||
"generated": "2026-04-02T13:53:15Z",
|
"generated": "2026-04-18T07:56:06Z",
|
||||||
"base_destination": "bios",
|
"base_destination": "bios",
|
||||||
"detect": [
|
"detect": [
|
||||||
{
|
{
|
||||||
@@ -14,9 +14,224 @@
|
|||||||
"bios_path": "/recalbox/share/bios"
|
"bios_path": "/recalbox/share/bios"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"standalone_copies": [],
|
"standalone_copies": [
|
||||||
"total_files": 1107,
|
{
|
||||||
"total_size": 3980096655,
|
"file": "prod.keys",
|
||||||
|
"targets": {
|
||||||
|
"linux": [
|
||||||
|
"$HOME/.local/share/yuzu/keys",
|
||||||
|
"$HOME/.local/share/eden/keys",
|
||||||
|
"$HOME/.local/share/citron/keys",
|
||||||
|
"$HOME/.local/share/suyu/keys",
|
||||||
|
"$HOME/.config/Ryujinx/system"
|
||||||
|
],
|
||||||
|
"windows": [
|
||||||
|
"%APPDATA%\\yuzu\\keys",
|
||||||
|
"%APPDATA%\\eden\\keys",
|
||||||
|
"%APPDATA%\\citron\\keys",
|
||||||
|
"%APPDATA%\\suyu\\keys",
|
||||||
|
"%APPDATA%\\Ryujinx\\system"
|
||||||
|
],
|
||||||
|
"darwin": [
|
||||||
|
"$HOME/Library/Application Support/yuzu/keys",
|
||||||
|
"$HOME/Library/Application Support/Ryujinx/system"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"file": "title.keys",
|
||||||
|
"targets": {
|
||||||
|
"linux": [
|
||||||
|
"$HOME/.local/share/yuzu/keys",
|
||||||
|
"$HOME/.local/share/eden/keys",
|
||||||
|
"$HOME/.local/share/citron/keys",
|
||||||
|
"$HOME/.local/share/suyu/keys"
|
||||||
|
],
|
||||||
|
"windows": [
|
||||||
|
"%APPDATA%\\yuzu\\keys",
|
||||||
|
"%APPDATA%\\eden\\keys",
|
||||||
|
"%APPDATA%\\citron\\keys",
|
||||||
|
"%APPDATA%\\suyu\\keys"
|
||||||
|
],
|
||||||
|
"darwin": [
|
||||||
|
"$HOME/Library/Application Support/yuzu/keys"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"file": "Citra/sysdata/aes_keys.txt",
|
||||||
|
"targets": {
|
||||||
|
"linux": [
|
||||||
|
"$HOME/.local/share/azahar/sysdata"
|
||||||
|
],
|
||||||
|
"windows": [
|
||||||
|
"%APPDATA%\\Azahar\\sysdata"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"file": "Citra/sysdata/boot9.bin",
|
||||||
|
"targets": {
|
||||||
|
"linux": [
|
||||||
|
"$HOME/.local/share/azahar/sysdata"
|
||||||
|
],
|
||||||
|
"windows": [
|
||||||
|
"%APPDATA%\\Azahar\\sysdata"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"pattern": "scph*.bin",
|
||||||
|
"targets": {
|
||||||
|
"linux": [
|
||||||
|
"$HOME/.local/share/duckstation/bios"
|
||||||
|
],
|
||||||
|
"windows": [
|
||||||
|
"%LOCALAPPDATA%\\DuckStation\\bios",
|
||||||
|
"%USERPROFILE%\\Documents\\DuckStation\\bios"
|
||||||
|
],
|
||||||
|
"darwin": [
|
||||||
|
"$HOME/Library/Application Support/DuckStation/bios"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"pattern": "ps2-*.bin",
|
||||||
|
"targets": {
|
||||||
|
"linux": [
|
||||||
|
"$HOME/.config/PCSX2/bios",
|
||||||
|
"$HOME/.var/app/net.pcsx2.PCSX2/config/PCSX2/bios"
|
||||||
|
],
|
||||||
|
"windows": [
|
||||||
|
"%USERPROFILE%\\Documents\\PCSX2\\bios"
|
||||||
|
],
|
||||||
|
"darwin": [
|
||||||
|
"$HOME/Library/Application Support/PCSX2/bios"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"note": "PS3 firmware (PS3UPDAT.PUP) found. Install via RPCS3 > File > Install Firmware.",
|
||||||
|
"detect": {
|
||||||
|
"linux": [
|
||||||
|
"$HOME/.config/rpcs3"
|
||||||
|
],
|
||||||
|
"windows": [
|
||||||
|
"%APPDATA%\\rpcs3"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"file": "GC/USA/IPL.bin",
|
||||||
|
"targets": {
|
||||||
|
"linux": [
|
||||||
|
"$HOME/.local/share/dolphin-emu/GC/USA"
|
||||||
|
],
|
||||||
|
"windows": [
|
||||||
|
"%APPDATA%\\Dolphin Emulator\\GC\\USA"
|
||||||
|
],
|
||||||
|
"darwin": [
|
||||||
|
"$HOME/Library/Application Support/Dolphin/GC/USA"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"file": "GC/EUR/IPL.bin",
|
||||||
|
"targets": {
|
||||||
|
"linux": [
|
||||||
|
"$HOME/.local/share/dolphin-emu/GC/EUR"
|
||||||
|
],
|
||||||
|
"windows": [
|
||||||
|
"%APPDATA%\\Dolphin Emulator\\GC\\EUR"
|
||||||
|
],
|
||||||
|
"darwin": [
|
||||||
|
"$HOME/Library/Application Support/Dolphin/GC/EUR"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"file": "GC/JAP/IPL.bin",
|
||||||
|
"targets": {
|
||||||
|
"linux": [
|
||||||
|
"$HOME/.local/share/dolphin-emu/GC/JAP"
|
||||||
|
],
|
||||||
|
"windows": [
|
||||||
|
"%APPDATA%\\Dolphin Emulator\\GC\\JAP"
|
||||||
|
],
|
||||||
|
"darwin": [
|
||||||
|
"$HOME/Library/Application Support/Dolphin/GC/JAP"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"file": "dsp_rom.bin",
|
||||||
|
"targets": {
|
||||||
|
"linux": [
|
||||||
|
"$HOME/.local/share/dolphin-emu"
|
||||||
|
],
|
||||||
|
"windows": [
|
||||||
|
"%APPDATA%\\Dolphin Emulator"
|
||||||
|
],
|
||||||
|
"darwin": [
|
||||||
|
"$HOME/Library/Application Support/Dolphin"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"file": "dsp_coef.bin",
|
||||||
|
"targets": {
|
||||||
|
"linux": [
|
||||||
|
"$HOME/.local/share/dolphin-emu"
|
||||||
|
],
|
||||||
|
"windows": [
|
||||||
|
"%APPDATA%\\Dolphin Emulator"
|
||||||
|
],
|
||||||
|
"darwin": [
|
||||||
|
"$HOME/Library/Application Support/Dolphin"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"file": "PPSSPP/ppge_atlas.zim",
|
||||||
|
"targets": {
|
||||||
|
"linux": [
|
||||||
|
"$HOME/.config/ppsspp/PSP/SYSTEM"
|
||||||
|
],
|
||||||
|
"windows": [
|
||||||
|
"%USERPROFILE%\\Documents\\PPSSPP\\PSP\\SYSTEM"
|
||||||
|
],
|
||||||
|
"darwin": [
|
||||||
|
"$HOME/Library/Application Support/PPSSPP/PSP/SYSTEM"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"file": "dc/dc_boot.bin",
|
||||||
|
"targets": {
|
||||||
|
"linux": [
|
||||||
|
"$HOME/.local/share/flycast/data",
|
||||||
|
"$HOME/.var/app/org.flycast.Flycast/data/flycast"
|
||||||
|
],
|
||||||
|
"windows": [
|
||||||
|
"%APPDATA%\\flycast\\data"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"file": "dc/dc_nvmem.bin",
|
||||||
|
"targets": {
|
||||||
|
"linux": [
|
||||||
|
"$HOME/.local/share/flycast/data",
|
||||||
|
"$HOME/.var/app/org.flycast.Flycast/data/flycast"
|
||||||
|
],
|
||||||
|
"windows": [
|
||||||
|
"%APPDATA%\\flycast\\data"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"total_files": 1100,
|
||||||
|
"total_size": 3946303603,
|
||||||
"files": [
|
"files": [
|
||||||
{
|
{
|
||||||
"dest": "3do/panafz1.bin",
|
"dest": "3do/panafz1.bin",
|
||||||
@@ -6753,69 +6968,6 @@
|
|||||||
"SAME CDi"
|
"SAME CDi"
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
{
|
|
||||||
"dest": "kvs1.wav",
|
|
||||||
"sha1": "b094c2c1fca81a0e531e0541f302346150ec4604",
|
|
||||||
"size": 3436329,
|
|
||||||
"repo_path": "bios/Atari/2600/KVS1.WAV",
|
|
||||||
"cores": [
|
|
||||||
"Stella 2014"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"dest": "kvs2.wav",
|
|
||||||
"sha1": "8b83b2eea01b3e08ceb885aeb153d4084bddb63c",
|
|
||||||
"size": 2086275,
|
|
||||||
"repo_path": "bios/Atari/2600/KVS2.WAV",
|
|
||||||
"cores": [
|
|
||||||
"Stella 2014"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"dest": "kvs3.wav",
|
|
||||||
"sha1": "86896a1e272d8715489de9b407f0b8a42f82d4a0",
|
|
||||||
"size": 3720920,
|
|
||||||
"repo_path": "bios/Atari/2600/KVS3.WAV",
|
|
||||||
"cores": [
|
|
||||||
"Stella 2014"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"dest": "kvb1.wav",
|
|
||||||
"sha1": "6a582aebcefd6e2a97bdd8968202aab9851a889c",
|
|
||||||
"size": 4219542,
|
|
||||||
"repo_path": "bios/Atari/2600/KVB1.WAV",
|
|
||||||
"cores": [
|
|
||||||
"Stella 2014"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"dest": "kvb2.wav",
|
|
||||||
"sha1": "60a425c6bde3226ab731995562716321be20fc49",
|
|
||||||
"size": 9593878,
|
|
||||||
"repo_path": "bios/Atari/2600/KVB2.WAV",
|
|
||||||
"cores": [
|
|
||||||
"Stella 2014"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"dest": "kvb3.wav",
|
|
||||||
"sha1": "5e34125c4d6c209b21d1c892f3df0ec1644fd0d8",
|
|
||||||
"size": 7676992,
|
|
||||||
"repo_path": "bios/Atari/2600/KVB3.WAV",
|
|
||||||
"cores": [
|
|
||||||
"Stella 2014"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"dest": "kvshared.wav",
|
|
||||||
"sha1": "9adf10cdf1de833b194c7d8797ad1f041ad98dd3",
|
|
||||||
"size": 3059116,
|
|
||||||
"repo_path": "bios/Atari/2600/KVSHARED.WAV",
|
|
||||||
"cores": [
|
|
||||||
"Stella 2014"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"dest": "KVS1.WAV",
|
"dest": "KVS1.WAV",
|
||||||
"sha1": "b094c2c1fca81a0e531e0541f302346150ec4604",
|
"sha1": "b094c2c1fca81a0e531e0541f302346150ec4604",
|
||||||
|
|||||||
@@ -4,7 +4,7 @@
|
|||||||
"platform": "retroarch",
|
"platform": "retroarch",
|
||||||
"display_name": "RetroArch",
|
"display_name": "RetroArch",
|
||||||
"version": "1.0",
|
"version": "1.0",
|
||||||
"generated": "2026-04-02T13:52:45Z",
|
"generated": "2026-04-18T07:55:35Z",
|
||||||
"base_destination": "system",
|
"base_destination": "system",
|
||||||
"detect": [
|
"detect": [
|
||||||
{
|
{
|
||||||
@@ -32,7 +32,222 @@
|
|||||||
"parse_key": "system_directory"
|
"parse_key": "system_directory"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"standalone_copies": [],
|
"standalone_copies": [
|
||||||
|
{
|
||||||
|
"file": "prod.keys",
|
||||||
|
"targets": {
|
||||||
|
"linux": [
|
||||||
|
"$HOME/.local/share/yuzu/keys",
|
||||||
|
"$HOME/.local/share/eden/keys",
|
||||||
|
"$HOME/.local/share/citron/keys",
|
||||||
|
"$HOME/.local/share/suyu/keys",
|
||||||
|
"$HOME/.config/Ryujinx/system"
|
||||||
|
],
|
||||||
|
"windows": [
|
||||||
|
"%APPDATA%\\yuzu\\keys",
|
||||||
|
"%APPDATA%\\eden\\keys",
|
||||||
|
"%APPDATA%\\citron\\keys",
|
||||||
|
"%APPDATA%\\suyu\\keys",
|
||||||
|
"%APPDATA%\\Ryujinx\\system"
|
||||||
|
],
|
||||||
|
"darwin": [
|
||||||
|
"$HOME/Library/Application Support/yuzu/keys",
|
||||||
|
"$HOME/Library/Application Support/Ryujinx/system"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"file": "title.keys",
|
||||||
|
"targets": {
|
||||||
|
"linux": [
|
||||||
|
"$HOME/.local/share/yuzu/keys",
|
||||||
|
"$HOME/.local/share/eden/keys",
|
||||||
|
"$HOME/.local/share/citron/keys",
|
||||||
|
"$HOME/.local/share/suyu/keys"
|
||||||
|
],
|
||||||
|
"windows": [
|
||||||
|
"%APPDATA%\\yuzu\\keys",
|
||||||
|
"%APPDATA%\\eden\\keys",
|
||||||
|
"%APPDATA%\\citron\\keys",
|
||||||
|
"%APPDATA%\\suyu\\keys"
|
||||||
|
],
|
||||||
|
"darwin": [
|
||||||
|
"$HOME/Library/Application Support/yuzu/keys"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"file": "Citra/sysdata/aes_keys.txt",
|
||||||
|
"targets": {
|
||||||
|
"linux": [
|
||||||
|
"$HOME/.local/share/azahar/sysdata"
|
||||||
|
],
|
||||||
|
"windows": [
|
||||||
|
"%APPDATA%\\Azahar\\sysdata"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"file": "Citra/sysdata/boot9.bin",
|
||||||
|
"targets": {
|
||||||
|
"linux": [
|
||||||
|
"$HOME/.local/share/azahar/sysdata"
|
||||||
|
],
|
||||||
|
"windows": [
|
||||||
|
"%APPDATA%\\Azahar\\sysdata"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"pattern": "scph*.bin",
|
||||||
|
"targets": {
|
||||||
|
"linux": [
|
||||||
|
"$HOME/.local/share/duckstation/bios"
|
||||||
|
],
|
||||||
|
"windows": [
|
||||||
|
"%LOCALAPPDATA%\\DuckStation\\bios",
|
||||||
|
"%USERPROFILE%\\Documents\\DuckStation\\bios"
|
||||||
|
],
|
||||||
|
"darwin": [
|
||||||
|
"$HOME/Library/Application Support/DuckStation/bios"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"pattern": "ps2-*.bin",
|
||||||
|
"targets": {
|
||||||
|
"linux": [
|
||||||
|
"$HOME/.config/PCSX2/bios",
|
||||||
|
"$HOME/.var/app/net.pcsx2.PCSX2/config/PCSX2/bios"
|
||||||
|
],
|
||||||
|
"windows": [
|
||||||
|
"%USERPROFILE%\\Documents\\PCSX2\\bios"
|
||||||
|
],
|
||||||
|
"darwin": [
|
||||||
|
"$HOME/Library/Application Support/PCSX2/bios"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"note": "PS3 firmware (PS3UPDAT.PUP) found. Install via RPCS3 > File > Install Firmware.",
|
||||||
|
"detect": {
|
||||||
|
"linux": [
|
||||||
|
"$HOME/.config/rpcs3"
|
||||||
|
],
|
||||||
|
"windows": [
|
||||||
|
"%APPDATA%\\rpcs3"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"file": "GC/USA/IPL.bin",
|
||||||
|
"targets": {
|
||||||
|
"linux": [
|
||||||
|
"$HOME/.local/share/dolphin-emu/GC/USA"
|
||||||
|
],
|
||||||
|
"windows": [
|
||||||
|
"%APPDATA%\\Dolphin Emulator\\GC\\USA"
|
||||||
|
],
|
||||||
|
"darwin": [
|
||||||
|
"$HOME/Library/Application Support/Dolphin/GC/USA"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"file": "GC/EUR/IPL.bin",
|
||||||
|
"targets": {
|
||||||
|
"linux": [
|
||||||
|
"$HOME/.local/share/dolphin-emu/GC/EUR"
|
||||||
|
],
|
||||||
|
"windows": [
|
||||||
|
"%APPDATA%\\Dolphin Emulator\\GC\\EUR"
|
||||||
|
],
|
||||||
|
"darwin": [
|
||||||
|
"$HOME/Library/Application Support/Dolphin/GC/EUR"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"file": "GC/JAP/IPL.bin",
|
||||||
|
"targets": {
|
||||||
|
"linux": [
|
||||||
|
"$HOME/.local/share/dolphin-emu/GC/JAP"
|
||||||
|
],
|
||||||
|
"windows": [
|
||||||
|
"%APPDATA%\\Dolphin Emulator\\GC\\JAP"
|
||||||
|
],
|
||||||
|
"darwin": [
|
||||||
|
"$HOME/Library/Application Support/Dolphin/GC/JAP"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"file": "dsp_rom.bin",
|
||||||
|
"targets": {
|
||||||
|
"linux": [
|
||||||
|
"$HOME/.local/share/dolphin-emu"
|
||||||
|
],
|
||||||
|
"windows": [
|
||||||
|
"%APPDATA%\\Dolphin Emulator"
|
||||||
|
],
|
||||||
|
"darwin": [
|
||||||
|
"$HOME/Library/Application Support/Dolphin"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"file": "dsp_coef.bin",
|
||||||
|
"targets": {
|
||||||
|
"linux": [
|
||||||
|
"$HOME/.local/share/dolphin-emu"
|
||||||
|
],
|
||||||
|
"windows": [
|
||||||
|
"%APPDATA%\\Dolphin Emulator"
|
||||||
|
],
|
||||||
|
"darwin": [
|
||||||
|
"$HOME/Library/Application Support/Dolphin"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"file": "PPSSPP/ppge_atlas.zim",
|
||||||
|
"targets": {
|
||||||
|
"linux": [
|
||||||
|
"$HOME/.config/ppsspp/PSP/SYSTEM"
|
||||||
|
],
|
||||||
|
"windows": [
|
||||||
|
"%USERPROFILE%\\Documents\\PPSSPP\\PSP\\SYSTEM"
|
||||||
|
],
|
||||||
|
"darwin": [
|
||||||
|
"$HOME/Library/Application Support/PPSSPP/PSP/SYSTEM"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"file": "dc/dc_boot.bin",
|
||||||
|
"targets": {
|
||||||
|
"linux": [
|
||||||
|
"$HOME/.local/share/flycast/data",
|
||||||
|
"$HOME/.var/app/org.flycast.Flycast/data/flycast"
|
||||||
|
],
|
||||||
|
"windows": [
|
||||||
|
"%APPDATA%\\flycast\\data"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"file": "dc/dc_nvmem.bin",
|
||||||
|
"targets": {
|
||||||
|
"linux": [
|
||||||
|
"$HOME/.local/share/flycast/data",
|
||||||
|
"$HOME/.var/app/org.flycast.Flycast/data/flycast"
|
||||||
|
],
|
||||||
|
"windows": [
|
||||||
|
"%APPDATA%\\flycast\\data"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
],
|
||||||
"total_files": 1627,
|
"total_files": 1627,
|
||||||
"total_size": 5735234905,
|
"total_size": 5735234905,
|
||||||
"files": [
|
"files": [
|
||||||
@@ -9855,66 +10070,66 @@
|
|||||||
]
|
]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"dest": "kvs1.wav",
|
"dest": "KVS1.WAV",
|
||||||
"sha1": "b094c2c1fca81a0e531e0541f302346150ec4604",
|
"sha1": "b094c2c1fca81a0e531e0541f302346150ec4604",
|
||||||
"size": 3436329,
|
"size": 3436329,
|
||||||
"repo_path": "bios/Atari/2600/KVS1.WAV",
|
"repo_path": "bios/Atari/2600/KVS1.WAV",
|
||||||
"cores": [
|
"cores": [
|
||||||
"Stella 2014"
|
"Stella 2023"
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"dest": "kvs2.wav",
|
"dest": "KVS2.WAV",
|
||||||
"sha1": "8b83b2eea01b3e08ceb885aeb153d4084bddb63c",
|
"sha1": "8b83b2eea01b3e08ceb885aeb153d4084bddb63c",
|
||||||
"size": 2086275,
|
"size": 2086275,
|
||||||
"repo_path": "bios/Atari/2600/KVS2.WAV",
|
"repo_path": "bios/Atari/2600/KVS2.WAV",
|
||||||
"cores": [
|
"cores": [
|
||||||
"Stella 2014"
|
"Stella 2023"
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"dest": "kvs3.wav",
|
"dest": "KVS3.WAV",
|
||||||
"sha1": "86896a1e272d8715489de9b407f0b8a42f82d4a0",
|
"sha1": "86896a1e272d8715489de9b407f0b8a42f82d4a0",
|
||||||
"size": 3720920,
|
"size": 3720920,
|
||||||
"repo_path": "bios/Atari/2600/KVS3.WAV",
|
"repo_path": "bios/Atari/2600/KVS3.WAV",
|
||||||
"cores": [
|
"cores": [
|
||||||
"Stella 2014"
|
"Stella 2023"
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"dest": "kvb1.wav",
|
"dest": "KVB1.WAV",
|
||||||
"sha1": "6a582aebcefd6e2a97bdd8968202aab9851a889c",
|
"sha1": "6a582aebcefd6e2a97bdd8968202aab9851a889c",
|
||||||
"size": 4219542,
|
"size": 4219542,
|
||||||
"repo_path": "bios/Atari/2600/KVB1.WAV",
|
"repo_path": "bios/Atari/2600/KVB1.WAV",
|
||||||
"cores": [
|
"cores": [
|
||||||
"Stella 2014"
|
"Stella 2023"
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"dest": "kvb2.wav",
|
"dest": "KVB2.WAV",
|
||||||
"sha1": "60a425c6bde3226ab731995562716321be20fc49",
|
"sha1": "60a425c6bde3226ab731995562716321be20fc49",
|
||||||
"size": 9593878,
|
"size": 9593878,
|
||||||
"repo_path": "bios/Atari/2600/KVB2.WAV",
|
"repo_path": "bios/Atari/2600/KVB2.WAV",
|
||||||
"cores": [
|
"cores": [
|
||||||
"Stella 2014"
|
"Stella 2023"
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"dest": "kvb3.wav",
|
"dest": "KVB3.WAV",
|
||||||
"sha1": "5e34125c4d6c209b21d1c892f3df0ec1644fd0d8",
|
"sha1": "5e34125c4d6c209b21d1c892f3df0ec1644fd0d8",
|
||||||
"size": 7676992,
|
"size": 7676992,
|
||||||
"repo_path": "bios/Atari/2600/KVB3.WAV",
|
"repo_path": "bios/Atari/2600/KVB3.WAV",
|
||||||
"cores": [
|
"cores": [
|
||||||
"Stella 2014"
|
"Stella 2023"
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"dest": "kvshared.wav",
|
"dest": "KVSHARED.WAV",
|
||||||
"sha1": "9adf10cdf1de833b194c7d8797ad1f041ad98dd3",
|
"sha1": "9adf10cdf1de833b194c7d8797ad1f041ad98dd3",
|
||||||
"size": 3059116,
|
"size": 3059116,
|
||||||
"repo_path": "bios/Atari/2600/KVSHARED.WAV",
|
"repo_path": "bios/Atari/2600/KVSHARED.WAV",
|
||||||
"cores": [
|
"cores": [
|
||||||
"Stella 2014"
|
"Stella 2023"
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -4,7 +4,7 @@
|
|||||||
"platform": "retrobat",
|
"platform": "retrobat",
|
||||||
"display_name": "RetroBat",
|
"display_name": "RetroBat",
|
||||||
"version": "1.0",
|
"version": "1.0",
|
||||||
"generated": "2026-04-02T13:53:25Z",
|
"generated": "2026-04-03T09:44:16Z",
|
||||||
"base_destination": "bios",
|
"base_destination": "bios",
|
||||||
"detect": [
|
"detect": [
|
||||||
{
|
{
|
||||||
@@ -13,7 +13,222 @@
|
|||||||
"path": "%USERPROFILE%\\RetroBat\\bios"
|
"path": "%USERPROFILE%\\RetroBat\\bios"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"standalone_copies": [],
|
"standalone_copies": [
|
||||||
|
{
|
||||||
|
"file": "prod.keys",
|
||||||
|
"targets": {
|
||||||
|
"linux": [
|
||||||
|
"$HOME/.local/share/yuzu/keys",
|
||||||
|
"$HOME/.local/share/eden/keys",
|
||||||
|
"$HOME/.local/share/citron/keys",
|
||||||
|
"$HOME/.local/share/suyu/keys",
|
||||||
|
"$HOME/.config/Ryujinx/system"
|
||||||
|
],
|
||||||
|
"windows": [
|
||||||
|
"%APPDATA%\\yuzu\\keys",
|
||||||
|
"%APPDATA%\\eden\\keys",
|
||||||
|
"%APPDATA%\\citron\\keys",
|
||||||
|
"%APPDATA%\\suyu\\keys",
|
||||||
|
"%APPDATA%\\Ryujinx\\system"
|
||||||
|
],
|
||||||
|
"darwin": [
|
||||||
|
"$HOME/Library/Application Support/yuzu/keys",
|
||||||
|
"$HOME/Library/Application Support/Ryujinx/system"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"file": "title.keys",
|
||||||
|
"targets": {
|
||||||
|
"linux": [
|
||||||
|
"$HOME/.local/share/yuzu/keys",
|
||||||
|
"$HOME/.local/share/eden/keys",
|
||||||
|
"$HOME/.local/share/citron/keys",
|
||||||
|
"$HOME/.local/share/suyu/keys"
|
||||||
|
],
|
||||||
|
"windows": [
|
||||||
|
"%APPDATA%\\yuzu\\keys",
|
||||||
|
"%APPDATA%\\eden\\keys",
|
||||||
|
"%APPDATA%\\citron\\keys",
|
||||||
|
"%APPDATA%\\suyu\\keys"
|
||||||
|
],
|
||||||
|
"darwin": [
|
||||||
|
"$HOME/Library/Application Support/yuzu/keys"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"file": "Citra/sysdata/aes_keys.txt",
|
||||||
|
"targets": {
|
||||||
|
"linux": [
|
||||||
|
"$HOME/.local/share/azahar/sysdata"
|
||||||
|
],
|
||||||
|
"windows": [
|
||||||
|
"%APPDATA%\\Azahar\\sysdata"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"file": "Citra/sysdata/boot9.bin",
|
||||||
|
"targets": {
|
||||||
|
"linux": [
|
||||||
|
"$HOME/.local/share/azahar/sysdata"
|
||||||
|
],
|
||||||
|
"windows": [
|
||||||
|
"%APPDATA%\\Azahar\\sysdata"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"pattern": "scph*.bin",
|
||||||
|
"targets": {
|
||||||
|
"linux": [
|
||||||
|
"$HOME/.local/share/duckstation/bios"
|
||||||
|
],
|
||||||
|
"windows": [
|
||||||
|
"%LOCALAPPDATA%\\DuckStation\\bios",
|
||||||
|
"%USERPROFILE%\\Documents\\DuckStation\\bios"
|
||||||
|
],
|
||||||
|
"darwin": [
|
||||||
|
"$HOME/Library/Application Support/DuckStation/bios"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"pattern": "ps2-*.bin",
|
||||||
|
"targets": {
|
||||||
|
"linux": [
|
||||||
|
"$HOME/.config/PCSX2/bios",
|
||||||
|
"$HOME/.var/app/net.pcsx2.PCSX2/config/PCSX2/bios"
|
||||||
|
],
|
||||||
|
"windows": [
|
||||||
|
"%USERPROFILE%\\Documents\\PCSX2\\bios"
|
||||||
|
],
|
||||||
|
"darwin": [
|
||||||
|
"$HOME/Library/Application Support/PCSX2/bios"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"note": "PS3 firmware (PS3UPDAT.PUP) found. Install via RPCS3 > File > Install Firmware.",
|
||||||
|
"detect": {
|
||||||
|
"linux": [
|
||||||
|
"$HOME/.config/rpcs3"
|
||||||
|
],
|
||||||
|
"windows": [
|
||||||
|
"%APPDATA%\\rpcs3"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"file": "GC/USA/IPL.bin",
|
||||||
|
"targets": {
|
||||||
|
"linux": [
|
||||||
|
"$HOME/.local/share/dolphin-emu/GC/USA"
|
||||||
|
],
|
||||||
|
"windows": [
|
||||||
|
"%APPDATA%\\Dolphin Emulator\\GC\\USA"
|
||||||
|
],
|
||||||
|
"darwin": [
|
||||||
|
"$HOME/Library/Application Support/Dolphin/GC/USA"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"file": "GC/EUR/IPL.bin",
|
||||||
|
"targets": {
|
||||||
|
"linux": [
|
||||||
|
"$HOME/.local/share/dolphin-emu/GC/EUR"
|
||||||
|
],
|
||||||
|
"windows": [
|
||||||
|
"%APPDATA%\\Dolphin Emulator\\GC\\EUR"
|
||||||
|
],
|
||||||
|
"darwin": [
|
||||||
|
"$HOME/Library/Application Support/Dolphin/GC/EUR"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"file": "GC/JAP/IPL.bin",
|
||||||
|
"targets": {
|
||||||
|
"linux": [
|
||||||
|
"$HOME/.local/share/dolphin-emu/GC/JAP"
|
||||||
|
],
|
||||||
|
"windows": [
|
||||||
|
"%APPDATA%\\Dolphin Emulator\\GC\\JAP"
|
||||||
|
],
|
||||||
|
"darwin": [
|
||||||
|
"$HOME/Library/Application Support/Dolphin/GC/JAP"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"file": "dsp_rom.bin",
|
||||||
|
"targets": {
|
||||||
|
"linux": [
|
||||||
|
"$HOME/.local/share/dolphin-emu"
|
||||||
|
],
|
||||||
|
"windows": [
|
||||||
|
"%APPDATA%\\Dolphin Emulator"
|
||||||
|
],
|
||||||
|
"darwin": [
|
||||||
|
"$HOME/Library/Application Support/Dolphin"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"file": "dsp_coef.bin",
|
||||||
|
"targets": {
|
||||||
|
"linux": [
|
||||||
|
"$HOME/.local/share/dolphin-emu"
|
||||||
|
],
|
||||||
|
"windows": [
|
||||||
|
"%APPDATA%\\Dolphin Emulator"
|
||||||
|
],
|
||||||
|
"darwin": [
|
||||||
|
"$HOME/Library/Application Support/Dolphin"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"file": "PPSSPP/ppge_atlas.zim",
|
||||||
|
"targets": {
|
||||||
|
"linux": [
|
||||||
|
"$HOME/.config/ppsspp/PSP/SYSTEM"
|
||||||
|
],
|
||||||
|
"windows": [
|
||||||
|
"%USERPROFILE%\\Documents\\PPSSPP\\PSP\\SYSTEM"
|
||||||
|
],
|
||||||
|
"darwin": [
|
||||||
|
"$HOME/Library/Application Support/PPSSPP/PSP/SYSTEM"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"file": "dc/dc_boot.bin",
|
||||||
|
"targets": {
|
||||||
|
"linux": [
|
||||||
|
"$HOME/.local/share/flycast/data",
|
||||||
|
"$HOME/.var/app/org.flycast.Flycast/data/flycast"
|
||||||
|
],
|
||||||
|
"windows": [
|
||||||
|
"%APPDATA%\\flycast\\data"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"file": "dc/dc_nvmem.bin",
|
||||||
|
"targets": {
|
||||||
|
"linux": [
|
||||||
|
"$HOME/.local/share/flycast/data",
|
||||||
|
"$HOME/.var/app/org.flycast.Flycast/data/flycast"
|
||||||
|
],
|
||||||
|
"windows": [
|
||||||
|
"%APPDATA%\\flycast\\data"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
],
|
||||||
"total_files": 1169,
|
"total_files": 1169,
|
||||||
"total_size": 4777641221,
|
"total_size": 4777641221,
|
||||||
"files": [
|
"files": [
|
||||||
|
|||||||
@@ -4,19 +4,234 @@
|
|||||||
"platform": "retrodeck",
|
"platform": "retrodeck",
|
||||||
"display_name": "RetroDECK",
|
"display_name": "RetroDECK",
|
||||||
"version": "1.0",
|
"version": "1.0",
|
||||||
"generated": "2026-04-02T13:53:43Z",
|
"generated": "2026-04-18T07:56:37Z",
|
||||||
"base_destination": "",
|
"base_destination": "",
|
||||||
"detect": [
|
"detect": [
|
||||||
{
|
{
|
||||||
"os": "linux",
|
"os": "linux",
|
||||||
"method": "path_exists",
|
"method": "path_exists",
|
||||||
"path": "$HOME/.var/app/net.retrodeck.retrodeck",
|
"path": "$HOME/.var/app/net.retrodeck.retrodeck",
|
||||||
"bios_path": "$HOME/retrodeck/bios"
|
"bios_path": "$HOME/retrodeck"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"standalone_copies": [],
|
"standalone_copies": [
|
||||||
"total_files": 3153,
|
{
|
||||||
"total_size": 6351500734,
|
"file": "prod.keys",
|
||||||
|
"targets": {
|
||||||
|
"linux": [
|
||||||
|
"$HOME/.local/share/yuzu/keys",
|
||||||
|
"$HOME/.local/share/eden/keys",
|
||||||
|
"$HOME/.local/share/citron/keys",
|
||||||
|
"$HOME/.local/share/suyu/keys",
|
||||||
|
"$HOME/.config/Ryujinx/system"
|
||||||
|
],
|
||||||
|
"windows": [
|
||||||
|
"%APPDATA%\\yuzu\\keys",
|
||||||
|
"%APPDATA%\\eden\\keys",
|
||||||
|
"%APPDATA%\\citron\\keys",
|
||||||
|
"%APPDATA%\\suyu\\keys",
|
||||||
|
"%APPDATA%\\Ryujinx\\system"
|
||||||
|
],
|
||||||
|
"darwin": [
|
||||||
|
"$HOME/Library/Application Support/yuzu/keys",
|
||||||
|
"$HOME/Library/Application Support/Ryujinx/system"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"file": "title.keys",
|
||||||
|
"targets": {
|
||||||
|
"linux": [
|
||||||
|
"$HOME/.local/share/yuzu/keys",
|
||||||
|
"$HOME/.local/share/eden/keys",
|
||||||
|
"$HOME/.local/share/citron/keys",
|
||||||
|
"$HOME/.local/share/suyu/keys"
|
||||||
|
],
|
||||||
|
"windows": [
|
||||||
|
"%APPDATA%\\yuzu\\keys",
|
||||||
|
"%APPDATA%\\eden\\keys",
|
||||||
|
"%APPDATA%\\citron\\keys",
|
||||||
|
"%APPDATA%\\suyu\\keys"
|
||||||
|
],
|
||||||
|
"darwin": [
|
||||||
|
"$HOME/Library/Application Support/yuzu/keys"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"file": "Citra/sysdata/aes_keys.txt",
|
||||||
|
"targets": {
|
||||||
|
"linux": [
|
||||||
|
"$HOME/.local/share/azahar/sysdata"
|
||||||
|
],
|
||||||
|
"windows": [
|
||||||
|
"%APPDATA%\\Azahar\\sysdata"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"file": "Citra/sysdata/boot9.bin",
|
||||||
|
"targets": {
|
||||||
|
"linux": [
|
||||||
|
"$HOME/.local/share/azahar/sysdata"
|
||||||
|
],
|
||||||
|
"windows": [
|
||||||
|
"%APPDATA%\\Azahar\\sysdata"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"pattern": "scph*.bin",
|
||||||
|
"targets": {
|
||||||
|
"linux": [
|
||||||
|
"$HOME/.local/share/duckstation/bios"
|
||||||
|
],
|
||||||
|
"windows": [
|
||||||
|
"%LOCALAPPDATA%\\DuckStation\\bios",
|
||||||
|
"%USERPROFILE%\\Documents\\DuckStation\\bios"
|
||||||
|
],
|
||||||
|
"darwin": [
|
||||||
|
"$HOME/Library/Application Support/DuckStation/bios"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"pattern": "ps2-*.bin",
|
||||||
|
"targets": {
|
||||||
|
"linux": [
|
||||||
|
"$HOME/.config/PCSX2/bios",
|
||||||
|
"$HOME/.var/app/net.pcsx2.PCSX2/config/PCSX2/bios"
|
||||||
|
],
|
||||||
|
"windows": [
|
||||||
|
"%USERPROFILE%\\Documents\\PCSX2\\bios"
|
||||||
|
],
|
||||||
|
"darwin": [
|
||||||
|
"$HOME/Library/Application Support/PCSX2/bios"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"note": "PS3 firmware (PS3UPDAT.PUP) found. Install via RPCS3 > File > Install Firmware.",
|
||||||
|
"detect": {
|
||||||
|
"linux": [
|
||||||
|
"$HOME/.config/rpcs3"
|
||||||
|
],
|
||||||
|
"windows": [
|
||||||
|
"%APPDATA%\\rpcs3"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"file": "GC/USA/IPL.bin",
|
||||||
|
"targets": {
|
||||||
|
"linux": [
|
||||||
|
"$HOME/.local/share/dolphin-emu/GC/USA"
|
||||||
|
],
|
||||||
|
"windows": [
|
||||||
|
"%APPDATA%\\Dolphin Emulator\\GC\\USA"
|
||||||
|
],
|
||||||
|
"darwin": [
|
||||||
|
"$HOME/Library/Application Support/Dolphin/GC/USA"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"file": "GC/EUR/IPL.bin",
|
||||||
|
"targets": {
|
||||||
|
"linux": [
|
||||||
|
"$HOME/.local/share/dolphin-emu/GC/EUR"
|
||||||
|
],
|
||||||
|
"windows": [
|
||||||
|
"%APPDATA%\\Dolphin Emulator\\GC\\EUR"
|
||||||
|
],
|
||||||
|
"darwin": [
|
||||||
|
"$HOME/Library/Application Support/Dolphin/GC/EUR"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"file": "GC/JAP/IPL.bin",
|
||||||
|
"targets": {
|
||||||
|
"linux": [
|
||||||
|
"$HOME/.local/share/dolphin-emu/GC/JAP"
|
||||||
|
],
|
||||||
|
"windows": [
|
||||||
|
"%APPDATA%\\Dolphin Emulator\\GC\\JAP"
|
||||||
|
],
|
||||||
|
"darwin": [
|
||||||
|
"$HOME/Library/Application Support/Dolphin/GC/JAP"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"file": "dsp_rom.bin",
|
||||||
|
"targets": {
|
||||||
|
"linux": [
|
||||||
|
"$HOME/.local/share/dolphin-emu"
|
||||||
|
],
|
||||||
|
"windows": [
|
||||||
|
"%APPDATA%\\Dolphin Emulator"
|
||||||
|
],
|
||||||
|
"darwin": [
|
||||||
|
"$HOME/Library/Application Support/Dolphin"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"file": "dsp_coef.bin",
|
||||||
|
"targets": {
|
||||||
|
"linux": [
|
||||||
|
"$HOME/.local/share/dolphin-emu"
|
||||||
|
],
|
||||||
|
"windows": [
|
||||||
|
"%APPDATA%\\Dolphin Emulator"
|
||||||
|
],
|
||||||
|
"darwin": [
|
||||||
|
"$HOME/Library/Application Support/Dolphin"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"file": "PPSSPP/ppge_atlas.zim",
|
||||||
|
"targets": {
|
||||||
|
"linux": [
|
||||||
|
"$HOME/.config/ppsspp/PSP/SYSTEM"
|
||||||
|
],
|
||||||
|
"windows": [
|
||||||
|
"%USERPROFILE%\\Documents\\PPSSPP\\PSP\\SYSTEM"
|
||||||
|
],
|
||||||
|
"darwin": [
|
||||||
|
"$HOME/Library/Application Support/PPSSPP/PSP/SYSTEM"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"file": "dc/dc_boot.bin",
|
||||||
|
"targets": {
|
||||||
|
"linux": [
|
||||||
|
"$HOME/.local/share/flycast/data",
|
||||||
|
"$HOME/.var/app/org.flycast.Flycast/data/flycast"
|
||||||
|
],
|
||||||
|
"windows": [
|
||||||
|
"%APPDATA%\\flycast\\data"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"file": "dc/dc_nvmem.bin",
|
||||||
|
"targets": {
|
||||||
|
"linux": [
|
||||||
|
"$HOME/.local/share/flycast/data",
|
||||||
|
"$HOME/.var/app/org.flycast.Flycast/data/flycast"
|
||||||
|
],
|
||||||
|
"windows": [
|
||||||
|
"%APPDATA%\\flycast\\data"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"total_files": 3146,
|
||||||
|
"total_size": 6317707682,
|
||||||
"files": [
|
"files": [
|
||||||
{
|
{
|
||||||
"dest": "bios/panafz1.bin",
|
"dest": "bios/panafz1.bin",
|
||||||
@@ -13664,10 +13879,10 @@
|
|||||||
"cores": null
|
"cores": null
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"dest": "bios/VEC_MineStorm.vec",
|
"dest": "bios/VEC_Minestorm.vec",
|
||||||
"sha1": "65d07426b520ddd3115d40f255511e0fd2e20ae7",
|
"sha1": "65d07426b520ddd3115d40f255511e0fd2e20ae7",
|
||||||
"size": 8192,
|
"size": 8192,
|
||||||
"repo_path": "bios/GCE/Vectrex/VEC_MineStorm.vec",
|
"repo_path": "bios/GCE/Vectrex/VEC_Minestorm.vec",
|
||||||
"cores": null
|
"cores": null
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -20221,69 +20436,6 @@
|
|||||||
"SquirrelJME"
|
"SquirrelJME"
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
{
|
|
||||||
"dest": "kvs1.wav",
|
|
||||||
"sha1": "b094c2c1fca81a0e531e0541f302346150ec4604",
|
|
||||||
"size": 3436329,
|
|
||||||
"repo_path": "bios/Atari/2600/KVS1.WAV",
|
|
||||||
"cores": [
|
|
||||||
"Stella 2014"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"dest": "kvs2.wav",
|
|
||||||
"sha1": "8b83b2eea01b3e08ceb885aeb153d4084bddb63c",
|
|
||||||
"size": 2086275,
|
|
||||||
"repo_path": "bios/Atari/2600/KVS2.WAV",
|
|
||||||
"cores": [
|
|
||||||
"Stella 2014"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"dest": "kvs3.wav",
|
|
||||||
"sha1": "86896a1e272d8715489de9b407f0b8a42f82d4a0",
|
|
||||||
"size": 3720920,
|
|
||||||
"repo_path": "bios/Atari/2600/KVS3.WAV",
|
|
||||||
"cores": [
|
|
||||||
"Stella 2014"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"dest": "kvb1.wav",
|
|
||||||
"sha1": "6a582aebcefd6e2a97bdd8968202aab9851a889c",
|
|
||||||
"size": 4219542,
|
|
||||||
"repo_path": "bios/Atari/2600/KVB1.WAV",
|
|
||||||
"cores": [
|
|
||||||
"Stella 2014"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"dest": "kvb2.wav",
|
|
||||||
"sha1": "60a425c6bde3226ab731995562716321be20fc49",
|
|
||||||
"size": 9593878,
|
|
||||||
"repo_path": "bios/Atari/2600/KVB2.WAV",
|
|
||||||
"cores": [
|
|
||||||
"Stella 2014"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"dest": "kvb3.wav",
|
|
||||||
"sha1": "5e34125c4d6c209b21d1c892f3df0ec1644fd0d8",
|
|
||||||
"size": 7676992,
|
|
||||||
"repo_path": "bios/Atari/2600/KVB3.WAV",
|
|
||||||
"cores": [
|
|
||||||
"Stella 2014"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"dest": "kvshared.wav",
|
|
||||||
"sha1": "9adf10cdf1de833b194c7d8797ad1f041ad98dd3",
|
|
||||||
"size": 3059116,
|
|
||||||
"repo_path": "bios/Atari/2600/KVSHARED.WAV",
|
|
||||||
"cores": [
|
|
||||||
"Stella 2014"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"dest": "KVS1.WAV",
|
"dest": "KVS1.WAV",
|
||||||
"sha1": "b094c2c1fca81a0e531e0541f302346150ec4604",
|
"sha1": "b094c2c1fca81a0e531e0541f302346150ec4604",
|
||||||
|
|||||||
@@ -20,6 +20,8 @@ theme:
|
|||||||
icon: material/brightness-4
|
icon: material/brightness-4
|
||||||
name: Switch to auto
|
name: Switch to auto
|
||||||
font: false
|
font: false
|
||||||
|
logo: assets/images/logo.png
|
||||||
|
favicon: assets/images/favicon.png
|
||||||
icon:
|
icon:
|
||||||
logo: material/chip
|
logo: material/chip
|
||||||
features:
|
features:
|
||||||
@@ -52,6 +54,7 @@ plugins:
|
|||||||
- search
|
- search
|
||||||
nav:
|
nav:
|
||||||
- Home: index.md
|
- Home: index.md
|
||||||
|
- Download: which-pack.md
|
||||||
- Platforms:
|
- Platforms:
|
||||||
- Overview: platforms/index.md
|
- Overview: platforms/index.md
|
||||||
- Batocera: platforms/batocera.md
|
- Batocera: platforms/batocera.md
|
||||||
@@ -480,4 +483,5 @@ nav:
|
|||||||
- Adding a scraper: wiki/adding-a-scraper.md
|
- Adding a scraper: wiki/adding-a-scraper.md
|
||||||
- Testing guide: wiki/testing-guide.md
|
- Testing guide: wiki/testing-guide.md
|
||||||
- Release process: wiki/release-process.md
|
- Release process: wiki/release-process.md
|
||||||
|
- Community tools: wiki/community-tools.md
|
||||||
- Contributing: contributing.md
|
- Contributing: contributing.md
|
||||||
|
|||||||
@@ -32,6 +32,144 @@ platforms:
|
|||||||
method: config_file
|
method: config_file
|
||||||
config: '%APPDATA%\RetroArch\retroarch.cfg'
|
config: '%APPDATA%\RetroArch\retroarch.cfg'
|
||||||
parse_key: system_directory
|
parse_key: system_directory
|
||||||
|
standalone_copies:
|
||||||
|
# Switch emulators (keys)
|
||||||
|
- file: prod.keys
|
||||||
|
targets:
|
||||||
|
linux:
|
||||||
|
- $HOME/.local/share/yuzu/keys
|
||||||
|
- $HOME/.local/share/eden/keys
|
||||||
|
- $HOME/.local/share/citron/keys
|
||||||
|
- $HOME/.local/share/suyu/keys
|
||||||
|
- $HOME/.config/Ryujinx/system
|
||||||
|
windows:
|
||||||
|
- '%APPDATA%\yuzu\keys'
|
||||||
|
- '%APPDATA%\eden\keys'
|
||||||
|
- '%APPDATA%\citron\keys'
|
||||||
|
- '%APPDATA%\suyu\keys'
|
||||||
|
- '%APPDATA%\Ryujinx\system'
|
||||||
|
darwin:
|
||||||
|
- $HOME/Library/Application Support/yuzu/keys
|
||||||
|
- $HOME/Library/Application Support/Ryujinx/system
|
||||||
|
- file: title.keys
|
||||||
|
targets:
|
||||||
|
linux:
|
||||||
|
- $HOME/.local/share/yuzu/keys
|
||||||
|
- $HOME/.local/share/eden/keys
|
||||||
|
- $HOME/.local/share/citron/keys
|
||||||
|
- $HOME/.local/share/suyu/keys
|
||||||
|
windows:
|
||||||
|
- '%APPDATA%\yuzu\keys'
|
||||||
|
- '%APPDATA%\eden\keys'
|
||||||
|
- '%APPDATA%\citron\keys'
|
||||||
|
- '%APPDATA%\suyu\keys'
|
||||||
|
darwin:
|
||||||
|
- $HOME/Library/Application Support/yuzu/keys
|
||||||
|
# 3DS emulators
|
||||||
|
- file: Citra/sysdata/aes_keys.txt
|
||||||
|
targets:
|
||||||
|
linux:
|
||||||
|
- $HOME/.local/share/azahar/sysdata
|
||||||
|
windows:
|
||||||
|
- '%APPDATA%\Azahar\sysdata'
|
||||||
|
- file: Citra/sysdata/boot9.bin
|
||||||
|
targets:
|
||||||
|
linux:
|
||||||
|
- $HOME/.local/share/azahar/sysdata
|
||||||
|
windows:
|
||||||
|
- '%APPDATA%\Azahar\sysdata'
|
||||||
|
# DuckStation (PS1)
|
||||||
|
- pattern: 'scph*.bin'
|
||||||
|
targets:
|
||||||
|
linux:
|
||||||
|
- $HOME/.local/share/duckstation/bios
|
||||||
|
windows:
|
||||||
|
- '%LOCALAPPDATA%\DuckStation\bios'
|
||||||
|
- '%USERPROFILE%\Documents\DuckStation\bios'
|
||||||
|
darwin:
|
||||||
|
- $HOME/Library/Application Support/DuckStation/bios
|
||||||
|
# PCSX2 (PS2)
|
||||||
|
- pattern: 'ps2-*.bin'
|
||||||
|
targets:
|
||||||
|
linux:
|
||||||
|
- $HOME/.config/PCSX2/bios
|
||||||
|
- $HOME/.var/app/net.pcsx2.PCSX2/config/PCSX2/bios
|
||||||
|
windows:
|
||||||
|
- '%USERPROFILE%\Documents\PCSX2\bios'
|
||||||
|
darwin:
|
||||||
|
- $HOME/Library/Application Support/PCSX2/bios
|
||||||
|
# RPCS3 (PS3) - needs menu install
|
||||||
|
- note: 'PS3 firmware (PS3UPDAT.PUP) found. Install via RPCS3 > File > Install Firmware.'
|
||||||
|
detect:
|
||||||
|
linux:
|
||||||
|
- $HOME/.config/rpcs3
|
||||||
|
windows:
|
||||||
|
- '%APPDATA%\rpcs3'
|
||||||
|
# Dolphin (GameCube)
|
||||||
|
- file: GC/USA/IPL.bin
|
||||||
|
targets:
|
||||||
|
linux:
|
||||||
|
- $HOME/.local/share/dolphin-emu/GC/USA
|
||||||
|
windows:
|
||||||
|
- '%APPDATA%\Dolphin Emulator\GC\USA'
|
||||||
|
darwin:
|
||||||
|
- $HOME/Library/Application Support/Dolphin/GC/USA
|
||||||
|
- file: GC/EUR/IPL.bin
|
||||||
|
targets:
|
||||||
|
linux:
|
||||||
|
- $HOME/.local/share/dolphin-emu/GC/EUR
|
||||||
|
windows:
|
||||||
|
- '%APPDATA%\Dolphin Emulator\GC\EUR'
|
||||||
|
darwin:
|
||||||
|
- $HOME/Library/Application Support/Dolphin/GC/EUR
|
||||||
|
- file: GC/JAP/IPL.bin
|
||||||
|
targets:
|
||||||
|
linux:
|
||||||
|
- $HOME/.local/share/dolphin-emu/GC/JAP
|
||||||
|
windows:
|
||||||
|
- '%APPDATA%\Dolphin Emulator\GC\JAP'
|
||||||
|
darwin:
|
||||||
|
- $HOME/Library/Application Support/Dolphin/GC/JAP
|
||||||
|
- file: dsp_rom.bin
|
||||||
|
targets:
|
||||||
|
linux:
|
||||||
|
- $HOME/.local/share/dolphin-emu
|
||||||
|
windows:
|
||||||
|
- '%APPDATA%\Dolphin Emulator'
|
||||||
|
darwin:
|
||||||
|
- $HOME/Library/Application Support/Dolphin
|
||||||
|
- file: dsp_coef.bin
|
||||||
|
targets:
|
||||||
|
linux:
|
||||||
|
- $HOME/.local/share/dolphin-emu
|
||||||
|
windows:
|
||||||
|
- '%APPDATA%\Dolphin Emulator'
|
||||||
|
darwin:
|
||||||
|
- $HOME/Library/Application Support/Dolphin
|
||||||
|
# PPSSPP
|
||||||
|
- file: PPSSPP/ppge_atlas.zim
|
||||||
|
targets:
|
||||||
|
linux:
|
||||||
|
- $HOME/.config/ppsspp/PSP/SYSTEM
|
||||||
|
windows:
|
||||||
|
- '%USERPROFILE%\Documents\PPSSPP\PSP\SYSTEM'
|
||||||
|
darwin:
|
||||||
|
- $HOME/Library/Application Support/PPSSPP/PSP/SYSTEM
|
||||||
|
# Flycast (Dreamcast)
|
||||||
|
- file: dc/dc_boot.bin
|
||||||
|
targets:
|
||||||
|
linux:
|
||||||
|
- $HOME/.local/share/flycast/data
|
||||||
|
- $HOME/.var/app/org.flycast.Flycast/data/flycast
|
||||||
|
windows:
|
||||||
|
- '%APPDATA%\flycast\data'
|
||||||
|
- file: dc/dc_nvmem.bin
|
||||||
|
targets:
|
||||||
|
linux:
|
||||||
|
- $HOME/.local/share/flycast/data
|
||||||
|
- $HOME/.var/app/org.flycast.Flycast/data/flycast
|
||||||
|
windows:
|
||||||
|
- '%APPDATA%\flycast\data'
|
||||||
batocera:
|
batocera:
|
||||||
config: batocera.yml
|
config: batocera.yml
|
||||||
status: active
|
status: active
|
||||||
@@ -256,6 +394,144 @@ platforms:
|
|||||||
method: file_exists
|
method: file_exists
|
||||||
file: /etc/batocera-version
|
file: /etc/batocera-version
|
||||||
bios_path: /userdata/bios
|
bios_path: /userdata/bios
|
||||||
|
standalone_copies:
|
||||||
|
# Switch emulators (keys)
|
||||||
|
- file: prod.keys
|
||||||
|
targets:
|
||||||
|
linux:
|
||||||
|
- $HOME/.local/share/yuzu/keys
|
||||||
|
- $HOME/.local/share/eden/keys
|
||||||
|
- $HOME/.local/share/citron/keys
|
||||||
|
- $HOME/.local/share/suyu/keys
|
||||||
|
- $HOME/.config/Ryujinx/system
|
||||||
|
windows:
|
||||||
|
- '%APPDATA%\yuzu\keys'
|
||||||
|
- '%APPDATA%\eden\keys'
|
||||||
|
- '%APPDATA%\citron\keys'
|
||||||
|
- '%APPDATA%\suyu\keys'
|
||||||
|
- '%APPDATA%\Ryujinx\system'
|
||||||
|
darwin:
|
||||||
|
- $HOME/Library/Application Support/yuzu/keys
|
||||||
|
- $HOME/Library/Application Support/Ryujinx/system
|
||||||
|
- file: title.keys
|
||||||
|
targets:
|
||||||
|
linux:
|
||||||
|
- $HOME/.local/share/yuzu/keys
|
||||||
|
- $HOME/.local/share/eden/keys
|
||||||
|
- $HOME/.local/share/citron/keys
|
||||||
|
- $HOME/.local/share/suyu/keys
|
||||||
|
windows:
|
||||||
|
- '%APPDATA%\yuzu\keys'
|
||||||
|
- '%APPDATA%\eden\keys'
|
||||||
|
- '%APPDATA%\citron\keys'
|
||||||
|
- '%APPDATA%\suyu\keys'
|
||||||
|
darwin:
|
||||||
|
- $HOME/Library/Application Support/yuzu/keys
|
||||||
|
# 3DS emulators
|
||||||
|
- file: Citra/sysdata/aes_keys.txt
|
||||||
|
targets:
|
||||||
|
linux:
|
||||||
|
- $HOME/.local/share/azahar/sysdata
|
||||||
|
windows:
|
||||||
|
- '%APPDATA%\Azahar\sysdata'
|
||||||
|
- file: Citra/sysdata/boot9.bin
|
||||||
|
targets:
|
||||||
|
linux:
|
||||||
|
- $HOME/.local/share/azahar/sysdata
|
||||||
|
windows:
|
||||||
|
- '%APPDATA%\Azahar\sysdata'
|
||||||
|
# DuckStation (PS1)
|
||||||
|
- pattern: 'scph*.bin'
|
||||||
|
targets:
|
||||||
|
linux:
|
||||||
|
- $HOME/.local/share/duckstation/bios
|
||||||
|
windows:
|
||||||
|
- '%LOCALAPPDATA%\DuckStation\bios'
|
||||||
|
- '%USERPROFILE%\Documents\DuckStation\bios'
|
||||||
|
darwin:
|
||||||
|
- $HOME/Library/Application Support/DuckStation/bios
|
||||||
|
# PCSX2 (PS2)
|
||||||
|
- pattern: 'ps2-*.bin'
|
||||||
|
targets:
|
||||||
|
linux:
|
||||||
|
- $HOME/.config/PCSX2/bios
|
||||||
|
- $HOME/.var/app/net.pcsx2.PCSX2/config/PCSX2/bios
|
||||||
|
windows:
|
||||||
|
- '%USERPROFILE%\Documents\PCSX2\bios'
|
||||||
|
darwin:
|
||||||
|
- $HOME/Library/Application Support/PCSX2/bios
|
||||||
|
# RPCS3 (PS3) - needs menu install
|
||||||
|
- note: 'PS3 firmware (PS3UPDAT.PUP) found. Install via RPCS3 > File > Install Firmware.'
|
||||||
|
detect:
|
||||||
|
linux:
|
||||||
|
- $HOME/.config/rpcs3
|
||||||
|
windows:
|
||||||
|
- '%APPDATA%\rpcs3'
|
||||||
|
# Dolphin (GameCube)
|
||||||
|
- file: GC/USA/IPL.bin
|
||||||
|
targets:
|
||||||
|
linux:
|
||||||
|
- $HOME/.local/share/dolphin-emu/GC/USA
|
||||||
|
windows:
|
||||||
|
- '%APPDATA%\Dolphin Emulator\GC\USA'
|
||||||
|
darwin:
|
||||||
|
- $HOME/Library/Application Support/Dolphin/GC/USA
|
||||||
|
- file: GC/EUR/IPL.bin
|
||||||
|
targets:
|
||||||
|
linux:
|
||||||
|
- $HOME/.local/share/dolphin-emu/GC/EUR
|
||||||
|
windows:
|
||||||
|
- '%APPDATA%\Dolphin Emulator\GC\EUR'
|
||||||
|
darwin:
|
||||||
|
- $HOME/Library/Application Support/Dolphin/GC/EUR
|
||||||
|
- file: GC/JAP/IPL.bin
|
||||||
|
targets:
|
||||||
|
linux:
|
||||||
|
- $HOME/.local/share/dolphin-emu/GC/JAP
|
||||||
|
windows:
|
||||||
|
- '%APPDATA%\Dolphin Emulator\GC\JAP'
|
||||||
|
darwin:
|
||||||
|
- $HOME/Library/Application Support/Dolphin/GC/JAP
|
||||||
|
- file: dsp_rom.bin
|
||||||
|
targets:
|
||||||
|
linux:
|
||||||
|
- $HOME/.local/share/dolphin-emu
|
||||||
|
windows:
|
||||||
|
- '%APPDATA%\Dolphin Emulator'
|
||||||
|
darwin:
|
||||||
|
- $HOME/Library/Application Support/Dolphin
|
||||||
|
- file: dsp_coef.bin
|
||||||
|
targets:
|
||||||
|
linux:
|
||||||
|
- $HOME/.local/share/dolphin-emu
|
||||||
|
windows:
|
||||||
|
- '%APPDATA%\Dolphin Emulator'
|
||||||
|
darwin:
|
||||||
|
- $HOME/Library/Application Support/Dolphin
|
||||||
|
# PPSSPP
|
||||||
|
- file: PPSSPP/ppge_atlas.zim
|
||||||
|
targets:
|
||||||
|
linux:
|
||||||
|
- $HOME/.config/ppsspp/PSP/SYSTEM
|
||||||
|
windows:
|
||||||
|
- '%USERPROFILE%\Documents\PPSSPP\PSP\SYSTEM'
|
||||||
|
darwin:
|
||||||
|
- $HOME/Library/Application Support/PPSSPP/PSP/SYSTEM
|
||||||
|
# Flycast (Dreamcast)
|
||||||
|
- file: dc/dc_boot.bin
|
||||||
|
targets:
|
||||||
|
linux:
|
||||||
|
- $HOME/.local/share/flycast/data
|
||||||
|
- $HOME/.var/app/org.flycast.Flycast/data/flycast
|
||||||
|
windows:
|
||||||
|
- '%APPDATA%\flycast\data'
|
||||||
|
- file: dc/dc_nvmem.bin
|
||||||
|
targets:
|
||||||
|
linux:
|
||||||
|
- $HOME/.local/share/flycast/data
|
||||||
|
- $HOME/.var/app/org.flycast.Flycast/data/flycast
|
||||||
|
windows:
|
||||||
|
- '%APPDATA%\flycast\data'
|
||||||
recalbox:
|
recalbox:
|
||||||
config: recalbox.yml
|
config: recalbox.yml
|
||||||
status: active
|
status: active
|
||||||
@@ -468,6 +744,144 @@ platforms:
|
|||||||
method: file_exists
|
method: file_exists
|
||||||
file: /usr/bin/recalbox-settings
|
file: /usr/bin/recalbox-settings
|
||||||
bios_path: /recalbox/share/bios
|
bios_path: /recalbox/share/bios
|
||||||
|
standalone_copies:
|
||||||
|
# Switch emulators (keys)
|
||||||
|
- file: prod.keys
|
||||||
|
targets:
|
||||||
|
linux:
|
||||||
|
- $HOME/.local/share/yuzu/keys
|
||||||
|
- $HOME/.local/share/eden/keys
|
||||||
|
- $HOME/.local/share/citron/keys
|
||||||
|
- $HOME/.local/share/suyu/keys
|
||||||
|
- $HOME/.config/Ryujinx/system
|
||||||
|
windows:
|
||||||
|
- '%APPDATA%\yuzu\keys'
|
||||||
|
- '%APPDATA%\eden\keys'
|
||||||
|
- '%APPDATA%\citron\keys'
|
||||||
|
- '%APPDATA%\suyu\keys'
|
||||||
|
- '%APPDATA%\Ryujinx\system'
|
||||||
|
darwin:
|
||||||
|
- $HOME/Library/Application Support/yuzu/keys
|
||||||
|
- $HOME/Library/Application Support/Ryujinx/system
|
||||||
|
- file: title.keys
|
||||||
|
targets:
|
||||||
|
linux:
|
||||||
|
- $HOME/.local/share/yuzu/keys
|
||||||
|
- $HOME/.local/share/eden/keys
|
||||||
|
- $HOME/.local/share/citron/keys
|
||||||
|
- $HOME/.local/share/suyu/keys
|
||||||
|
windows:
|
||||||
|
- '%APPDATA%\yuzu\keys'
|
||||||
|
- '%APPDATA%\eden\keys'
|
||||||
|
- '%APPDATA%\citron\keys'
|
||||||
|
- '%APPDATA%\suyu\keys'
|
||||||
|
darwin:
|
||||||
|
- $HOME/Library/Application Support/yuzu/keys
|
||||||
|
# 3DS emulators
|
||||||
|
- file: Citra/sysdata/aes_keys.txt
|
||||||
|
targets:
|
||||||
|
linux:
|
||||||
|
- $HOME/.local/share/azahar/sysdata
|
||||||
|
windows:
|
||||||
|
- '%APPDATA%\Azahar\sysdata'
|
||||||
|
- file: Citra/sysdata/boot9.bin
|
||||||
|
targets:
|
||||||
|
linux:
|
||||||
|
- $HOME/.local/share/azahar/sysdata
|
||||||
|
windows:
|
||||||
|
- '%APPDATA%\Azahar\sysdata'
|
||||||
|
# DuckStation (PS1)
|
||||||
|
- pattern: 'scph*.bin'
|
||||||
|
targets:
|
||||||
|
linux:
|
||||||
|
- $HOME/.local/share/duckstation/bios
|
||||||
|
windows:
|
||||||
|
- '%LOCALAPPDATA%\DuckStation\bios'
|
||||||
|
- '%USERPROFILE%\Documents\DuckStation\bios'
|
||||||
|
darwin:
|
||||||
|
- $HOME/Library/Application Support/DuckStation/bios
|
||||||
|
# PCSX2 (PS2)
|
||||||
|
- pattern: 'ps2-*.bin'
|
||||||
|
targets:
|
||||||
|
linux:
|
||||||
|
- $HOME/.config/PCSX2/bios
|
||||||
|
- $HOME/.var/app/net.pcsx2.PCSX2/config/PCSX2/bios
|
||||||
|
windows:
|
||||||
|
- '%USERPROFILE%\Documents\PCSX2\bios'
|
||||||
|
darwin:
|
||||||
|
- $HOME/Library/Application Support/PCSX2/bios
|
||||||
|
# RPCS3 (PS3) - needs menu install
|
||||||
|
- note: 'PS3 firmware (PS3UPDAT.PUP) found. Install via RPCS3 > File > Install Firmware.'
|
||||||
|
detect:
|
||||||
|
linux:
|
||||||
|
- $HOME/.config/rpcs3
|
||||||
|
windows:
|
||||||
|
- '%APPDATA%\rpcs3'
|
||||||
|
# Dolphin (GameCube)
|
||||||
|
- file: GC/USA/IPL.bin
|
||||||
|
targets:
|
||||||
|
linux:
|
||||||
|
- $HOME/.local/share/dolphin-emu/GC/USA
|
||||||
|
windows:
|
||||||
|
- '%APPDATA%\Dolphin Emulator\GC\USA'
|
||||||
|
darwin:
|
||||||
|
- $HOME/Library/Application Support/Dolphin/GC/USA
|
||||||
|
- file: GC/EUR/IPL.bin
|
||||||
|
targets:
|
||||||
|
linux:
|
||||||
|
- $HOME/.local/share/dolphin-emu/GC/EUR
|
||||||
|
windows:
|
||||||
|
- '%APPDATA%\Dolphin Emulator\GC\EUR'
|
||||||
|
darwin:
|
||||||
|
- $HOME/Library/Application Support/Dolphin/GC/EUR
|
||||||
|
- file: GC/JAP/IPL.bin
|
||||||
|
targets:
|
||||||
|
linux:
|
||||||
|
- $HOME/.local/share/dolphin-emu/GC/JAP
|
||||||
|
windows:
|
||||||
|
- '%APPDATA%\Dolphin Emulator\GC\JAP'
|
||||||
|
darwin:
|
||||||
|
- $HOME/Library/Application Support/Dolphin/GC/JAP
|
||||||
|
- file: dsp_rom.bin
|
||||||
|
targets:
|
||||||
|
linux:
|
||||||
|
- $HOME/.local/share/dolphin-emu
|
||||||
|
windows:
|
||||||
|
- '%APPDATA%\Dolphin Emulator'
|
||||||
|
darwin:
|
||||||
|
- $HOME/Library/Application Support/Dolphin
|
||||||
|
- file: dsp_coef.bin
|
||||||
|
targets:
|
||||||
|
linux:
|
||||||
|
- $HOME/.local/share/dolphin-emu
|
||||||
|
windows:
|
||||||
|
- '%APPDATA%\Dolphin Emulator'
|
||||||
|
darwin:
|
||||||
|
- $HOME/Library/Application Support/Dolphin
|
||||||
|
# PPSSPP
|
||||||
|
- file: PPSSPP/ppge_atlas.zim
|
||||||
|
targets:
|
||||||
|
linux:
|
||||||
|
- $HOME/.config/ppsspp/PSP/SYSTEM
|
||||||
|
windows:
|
||||||
|
- '%USERPROFILE%\Documents\PPSSPP\PSP\SYSTEM'
|
||||||
|
darwin:
|
||||||
|
- $HOME/Library/Application Support/PPSSPP/PSP/SYSTEM
|
||||||
|
# Flycast (Dreamcast)
|
||||||
|
- file: dc/dc_boot.bin
|
||||||
|
targets:
|
||||||
|
linux:
|
||||||
|
- $HOME/.local/share/flycast/data
|
||||||
|
- $HOME/.var/app/org.flycast.Flycast/data/flycast
|
||||||
|
windows:
|
||||||
|
- '%APPDATA%\flycast\data'
|
||||||
|
- file: dc/dc_nvmem.bin
|
||||||
|
targets:
|
||||||
|
linux:
|
||||||
|
- $HOME/.local/share/flycast/data
|
||||||
|
- $HOME/.var/app/org.flycast.Flycast/data/flycast
|
||||||
|
windows:
|
||||||
|
- '%APPDATA%\flycast\data'
|
||||||
retrobat:
|
retrobat:
|
||||||
config: retrobat.yml
|
config: retrobat.yml
|
||||||
status: active
|
status: active
|
||||||
@@ -653,6 +1067,144 @@ platforms:
|
|||||||
- os: windows
|
- os: windows
|
||||||
method: path_exists
|
method: path_exists
|
||||||
path: '%USERPROFILE%\RetroBat\bios'
|
path: '%USERPROFILE%\RetroBat\bios'
|
||||||
|
standalone_copies:
|
||||||
|
# Switch emulators (keys)
|
||||||
|
- file: prod.keys
|
||||||
|
targets:
|
||||||
|
linux:
|
||||||
|
- $HOME/.local/share/yuzu/keys
|
||||||
|
- $HOME/.local/share/eden/keys
|
||||||
|
- $HOME/.local/share/citron/keys
|
||||||
|
- $HOME/.local/share/suyu/keys
|
||||||
|
- $HOME/.config/Ryujinx/system
|
||||||
|
windows:
|
||||||
|
- '%APPDATA%\yuzu\keys'
|
||||||
|
- '%APPDATA%\eden\keys'
|
||||||
|
- '%APPDATA%\citron\keys'
|
||||||
|
- '%APPDATA%\suyu\keys'
|
||||||
|
- '%APPDATA%\Ryujinx\system'
|
||||||
|
darwin:
|
||||||
|
- $HOME/Library/Application Support/yuzu/keys
|
||||||
|
- $HOME/Library/Application Support/Ryujinx/system
|
||||||
|
- file: title.keys
|
||||||
|
targets:
|
||||||
|
linux:
|
||||||
|
- $HOME/.local/share/yuzu/keys
|
||||||
|
- $HOME/.local/share/eden/keys
|
||||||
|
- $HOME/.local/share/citron/keys
|
||||||
|
- $HOME/.local/share/suyu/keys
|
||||||
|
windows:
|
||||||
|
- '%APPDATA%\yuzu\keys'
|
||||||
|
- '%APPDATA%\eden\keys'
|
||||||
|
- '%APPDATA%\citron\keys'
|
||||||
|
- '%APPDATA%\suyu\keys'
|
||||||
|
darwin:
|
||||||
|
- $HOME/Library/Application Support/yuzu/keys
|
||||||
|
# 3DS emulators
|
||||||
|
- file: Citra/sysdata/aes_keys.txt
|
||||||
|
targets:
|
||||||
|
linux:
|
||||||
|
- $HOME/.local/share/azahar/sysdata
|
||||||
|
windows:
|
||||||
|
- '%APPDATA%\Azahar\sysdata'
|
||||||
|
- file: Citra/sysdata/boot9.bin
|
||||||
|
targets:
|
||||||
|
linux:
|
||||||
|
- $HOME/.local/share/azahar/sysdata
|
||||||
|
windows:
|
||||||
|
- '%APPDATA%\Azahar\sysdata'
|
||||||
|
# DuckStation (PS1)
|
||||||
|
- pattern: 'scph*.bin'
|
||||||
|
targets:
|
||||||
|
linux:
|
||||||
|
- $HOME/.local/share/duckstation/bios
|
||||||
|
windows:
|
||||||
|
- '%LOCALAPPDATA%\DuckStation\bios'
|
||||||
|
- '%USERPROFILE%\Documents\DuckStation\bios'
|
||||||
|
darwin:
|
||||||
|
- $HOME/Library/Application Support/DuckStation/bios
|
||||||
|
# PCSX2 (PS2)
|
||||||
|
- pattern: 'ps2-*.bin'
|
||||||
|
targets:
|
||||||
|
linux:
|
||||||
|
- $HOME/.config/PCSX2/bios
|
||||||
|
- $HOME/.var/app/net.pcsx2.PCSX2/config/PCSX2/bios
|
||||||
|
windows:
|
||||||
|
- '%USERPROFILE%\Documents\PCSX2\bios'
|
||||||
|
darwin:
|
||||||
|
- $HOME/Library/Application Support/PCSX2/bios
|
||||||
|
# RPCS3 (PS3) - needs menu install
|
||||||
|
- note: 'PS3 firmware (PS3UPDAT.PUP) found. Install via RPCS3 > File > Install Firmware.'
|
||||||
|
detect:
|
||||||
|
linux:
|
||||||
|
- $HOME/.config/rpcs3
|
||||||
|
windows:
|
||||||
|
- '%APPDATA%\rpcs3'
|
||||||
|
# Dolphin (GameCube)
|
||||||
|
- file: GC/USA/IPL.bin
|
||||||
|
targets:
|
||||||
|
linux:
|
||||||
|
- $HOME/.local/share/dolphin-emu/GC/USA
|
||||||
|
windows:
|
||||||
|
- '%APPDATA%\Dolphin Emulator\GC\USA'
|
||||||
|
darwin:
|
||||||
|
- $HOME/Library/Application Support/Dolphin/GC/USA
|
||||||
|
- file: GC/EUR/IPL.bin
|
||||||
|
targets:
|
||||||
|
linux:
|
||||||
|
- $HOME/.local/share/dolphin-emu/GC/EUR
|
||||||
|
windows:
|
||||||
|
- '%APPDATA%\Dolphin Emulator\GC\EUR'
|
||||||
|
darwin:
|
||||||
|
- $HOME/Library/Application Support/Dolphin/GC/EUR
|
||||||
|
- file: GC/JAP/IPL.bin
|
||||||
|
targets:
|
||||||
|
linux:
|
||||||
|
- $HOME/.local/share/dolphin-emu/GC/JAP
|
||||||
|
windows:
|
||||||
|
- '%APPDATA%\Dolphin Emulator\GC\JAP'
|
||||||
|
darwin:
|
||||||
|
- $HOME/Library/Application Support/Dolphin/GC/JAP
|
||||||
|
- file: dsp_rom.bin
|
||||||
|
targets:
|
||||||
|
linux:
|
||||||
|
- $HOME/.local/share/dolphin-emu
|
||||||
|
windows:
|
||||||
|
- '%APPDATA%\Dolphin Emulator'
|
||||||
|
darwin:
|
||||||
|
- $HOME/Library/Application Support/Dolphin
|
||||||
|
- file: dsp_coef.bin
|
||||||
|
targets:
|
||||||
|
linux:
|
||||||
|
- $HOME/.local/share/dolphin-emu
|
||||||
|
windows:
|
||||||
|
- '%APPDATA%\Dolphin Emulator'
|
||||||
|
darwin:
|
||||||
|
- $HOME/Library/Application Support/Dolphin
|
||||||
|
# PPSSPP
|
||||||
|
- file: PPSSPP/ppge_atlas.zim
|
||||||
|
targets:
|
||||||
|
linux:
|
||||||
|
- $HOME/.config/ppsspp/PSP/SYSTEM
|
||||||
|
windows:
|
||||||
|
- '%USERPROFILE%\Documents\PPSSPP\PSP\SYSTEM'
|
||||||
|
darwin:
|
||||||
|
- $HOME/Library/Application Support/PPSSPP/PSP/SYSTEM
|
||||||
|
# Flycast (Dreamcast)
|
||||||
|
- file: dc/dc_boot.bin
|
||||||
|
targets:
|
||||||
|
linux:
|
||||||
|
- $HOME/.local/share/flycast/data
|
||||||
|
- $HOME/.var/app/org.flycast.Flycast/data/flycast
|
||||||
|
windows:
|
||||||
|
- '%APPDATA%\flycast\data'
|
||||||
|
- file: dc/dc_nvmem.bin
|
||||||
|
targets:
|
||||||
|
linux:
|
||||||
|
- $HOME/.local/share/flycast/data
|
||||||
|
- $HOME/.var/app/org.flycast.Flycast/data/flycast
|
||||||
|
windows:
|
||||||
|
- '%APPDATA%\flycast\data'
|
||||||
emudeck:
|
emudeck:
|
||||||
config: emudeck.yml
|
config: emudeck.yml
|
||||||
status: active
|
status: active
|
||||||
@@ -681,19 +1233,143 @@ platforms:
|
|||||||
parse_key: $emulationPath
|
parse_key: $emulationPath
|
||||||
bios_subdir: bios
|
bios_subdir: bios
|
||||||
standalone_copies:
|
standalone_copies:
|
||||||
|
# Switch emulators (keys)
|
||||||
- file: prod.keys
|
- file: prod.keys
|
||||||
targets:
|
targets:
|
||||||
linux:
|
linux:
|
||||||
- $HOME/.local/share/yuzu/keys
|
- $HOME/.local/share/yuzu/keys
|
||||||
- $HOME/.local/share/eden/keys
|
- $HOME/.local/share/eden/keys
|
||||||
|
- $HOME/.local/share/citron/keys
|
||||||
|
- $HOME/.local/share/suyu/keys
|
||||||
- $HOME/.config/Ryujinx/system
|
- $HOME/.config/Ryujinx/system
|
||||||
windows:
|
windows:
|
||||||
- '%APPDATA%\yuzu\keys'
|
- '%APPDATA%\yuzu\keys'
|
||||||
- '%APPDATA%\eden\keys'
|
- '%APPDATA%\eden\keys'
|
||||||
- file: aes_keys.txt
|
- '%APPDATA%\citron\keys'
|
||||||
|
- '%APPDATA%\suyu\keys'
|
||||||
|
- '%APPDATA%\Ryujinx\system'
|
||||||
|
darwin:
|
||||||
|
- $HOME/Library/Application Support/yuzu/keys
|
||||||
|
- $HOME/Library/Application Support/Ryujinx/system
|
||||||
|
- file: title.keys
|
||||||
targets:
|
targets:
|
||||||
linux:
|
linux:
|
||||||
- $HOME/Emulation/bios/citra/keys
|
- $HOME/.local/share/yuzu/keys
|
||||||
|
- $HOME/.local/share/eden/keys
|
||||||
|
- $HOME/.local/share/citron/keys
|
||||||
|
- $HOME/.local/share/suyu/keys
|
||||||
|
windows:
|
||||||
|
- '%APPDATA%\yuzu\keys'
|
||||||
|
- '%APPDATA%\eden\keys'
|
||||||
|
- '%APPDATA%\citron\keys'
|
||||||
|
- '%APPDATA%\suyu\keys'
|
||||||
|
darwin:
|
||||||
|
- $HOME/Library/Application Support/yuzu/keys
|
||||||
|
# 3DS emulators
|
||||||
|
- file: Citra/sysdata/aes_keys.txt
|
||||||
|
targets:
|
||||||
|
linux:
|
||||||
|
- $HOME/.local/share/azahar/sysdata
|
||||||
|
windows:
|
||||||
|
- '%APPDATA%\Azahar\sysdata'
|
||||||
|
- file: Citra/sysdata/boot9.bin
|
||||||
|
targets:
|
||||||
|
linux:
|
||||||
|
- $HOME/.local/share/azahar/sysdata
|
||||||
|
windows:
|
||||||
|
- '%APPDATA%\Azahar\sysdata'
|
||||||
|
# DuckStation (PS1)
|
||||||
|
- pattern: 'scph*.bin'
|
||||||
|
targets:
|
||||||
|
linux:
|
||||||
|
- $HOME/.local/share/duckstation/bios
|
||||||
|
windows:
|
||||||
|
- '%LOCALAPPDATA%\DuckStation\bios'
|
||||||
|
- '%USERPROFILE%\Documents\DuckStation\bios'
|
||||||
|
darwin:
|
||||||
|
- $HOME/Library/Application Support/DuckStation/bios
|
||||||
|
# PCSX2 (PS2)
|
||||||
|
- pattern: 'ps2-*.bin'
|
||||||
|
targets:
|
||||||
|
linux:
|
||||||
|
- $HOME/.config/PCSX2/bios
|
||||||
|
- $HOME/.var/app/net.pcsx2.PCSX2/config/PCSX2/bios
|
||||||
|
windows:
|
||||||
|
- '%USERPROFILE%\Documents\PCSX2\bios'
|
||||||
|
darwin:
|
||||||
|
- $HOME/Library/Application Support/PCSX2/bios
|
||||||
|
# RPCS3 (PS3) - needs menu install
|
||||||
|
- note: 'PS3 firmware (PS3UPDAT.PUP) found. Install via RPCS3 > File > Install Firmware.'
|
||||||
|
detect:
|
||||||
|
linux:
|
||||||
|
- $HOME/.config/rpcs3
|
||||||
|
windows:
|
||||||
|
- '%APPDATA%\rpcs3'
|
||||||
|
# Dolphin (GameCube)
|
||||||
|
- file: GC/USA/IPL.bin
|
||||||
|
targets:
|
||||||
|
linux:
|
||||||
|
- $HOME/.local/share/dolphin-emu/GC/USA
|
||||||
|
windows:
|
||||||
|
- '%APPDATA%\Dolphin Emulator\GC\USA'
|
||||||
|
darwin:
|
||||||
|
- $HOME/Library/Application Support/Dolphin/GC/USA
|
||||||
|
- file: GC/EUR/IPL.bin
|
||||||
|
targets:
|
||||||
|
linux:
|
||||||
|
- $HOME/.local/share/dolphin-emu/GC/EUR
|
||||||
|
windows:
|
||||||
|
- '%APPDATA%\Dolphin Emulator\GC\EUR'
|
||||||
|
darwin:
|
||||||
|
- $HOME/Library/Application Support/Dolphin/GC/EUR
|
||||||
|
- file: GC/JAP/IPL.bin
|
||||||
|
targets:
|
||||||
|
linux:
|
||||||
|
- $HOME/.local/share/dolphin-emu/GC/JAP
|
||||||
|
windows:
|
||||||
|
- '%APPDATA%\Dolphin Emulator\GC\JAP'
|
||||||
|
darwin:
|
||||||
|
- $HOME/Library/Application Support/Dolphin/GC/JAP
|
||||||
|
- file: dsp_rom.bin
|
||||||
|
targets:
|
||||||
|
linux:
|
||||||
|
- $HOME/.local/share/dolphin-emu
|
||||||
|
windows:
|
||||||
|
- '%APPDATA%\Dolphin Emulator'
|
||||||
|
darwin:
|
||||||
|
- $HOME/Library/Application Support/Dolphin
|
||||||
|
- file: dsp_coef.bin
|
||||||
|
targets:
|
||||||
|
linux:
|
||||||
|
- $HOME/.local/share/dolphin-emu
|
||||||
|
windows:
|
||||||
|
- '%APPDATA%\Dolphin Emulator'
|
||||||
|
darwin:
|
||||||
|
- $HOME/Library/Application Support/Dolphin
|
||||||
|
# PPSSPP
|
||||||
|
- file: PPSSPP/ppge_atlas.zim
|
||||||
|
targets:
|
||||||
|
linux:
|
||||||
|
- $HOME/.config/ppsspp/PSP/SYSTEM
|
||||||
|
windows:
|
||||||
|
- '%USERPROFILE%\Documents\PPSSPP\PSP\SYSTEM'
|
||||||
|
darwin:
|
||||||
|
- $HOME/Library/Application Support/PPSSPP/PSP/SYSTEM
|
||||||
|
# Flycast (Dreamcast)
|
||||||
|
- file: dc/dc_boot.bin
|
||||||
|
targets:
|
||||||
|
linux:
|
||||||
|
- $HOME/.local/share/flycast/data
|
||||||
|
- $HOME/.var/app/org.flycast.Flycast/data/flycast
|
||||||
|
windows:
|
||||||
|
- '%APPDATA%\flycast\data'
|
||||||
|
- file: dc/dc_nvmem.bin
|
||||||
|
targets:
|
||||||
|
linux:
|
||||||
|
- $HOME/.local/share/flycast/data
|
||||||
|
- $HOME/.var/app/org.flycast.Flycast/data/flycast
|
||||||
|
windows:
|
||||||
|
- '%APPDATA%\flycast\data'
|
||||||
lakka:
|
lakka:
|
||||||
config: lakka.yml
|
config: lakka.yml
|
||||||
status: active
|
status: active
|
||||||
@@ -752,7 +1428,145 @@ platforms:
|
|||||||
- os: linux
|
- os: linux
|
||||||
method: path_exists
|
method: path_exists
|
||||||
path: $HOME/.var/app/net.retrodeck.retrodeck
|
path: $HOME/.var/app/net.retrodeck.retrodeck
|
||||||
bios_path: $HOME/retrodeck/bios
|
bios_path: $HOME/retrodeck
|
||||||
|
standalone_copies:
|
||||||
|
# Switch emulators (keys)
|
||||||
|
- file: prod.keys
|
||||||
|
targets:
|
||||||
|
linux:
|
||||||
|
- $HOME/.local/share/yuzu/keys
|
||||||
|
- $HOME/.local/share/eden/keys
|
||||||
|
- $HOME/.local/share/citron/keys
|
||||||
|
- $HOME/.local/share/suyu/keys
|
||||||
|
- $HOME/.config/Ryujinx/system
|
||||||
|
windows:
|
||||||
|
- '%APPDATA%\yuzu\keys'
|
||||||
|
- '%APPDATA%\eden\keys'
|
||||||
|
- '%APPDATA%\citron\keys'
|
||||||
|
- '%APPDATA%\suyu\keys'
|
||||||
|
- '%APPDATA%\Ryujinx\system'
|
||||||
|
darwin:
|
||||||
|
- $HOME/Library/Application Support/yuzu/keys
|
||||||
|
- $HOME/Library/Application Support/Ryujinx/system
|
||||||
|
- file: title.keys
|
||||||
|
targets:
|
||||||
|
linux:
|
||||||
|
- $HOME/.local/share/yuzu/keys
|
||||||
|
- $HOME/.local/share/eden/keys
|
||||||
|
- $HOME/.local/share/citron/keys
|
||||||
|
- $HOME/.local/share/suyu/keys
|
||||||
|
windows:
|
||||||
|
- '%APPDATA%\yuzu\keys'
|
||||||
|
- '%APPDATA%\eden\keys'
|
||||||
|
- '%APPDATA%\citron\keys'
|
||||||
|
- '%APPDATA%\suyu\keys'
|
||||||
|
darwin:
|
||||||
|
- $HOME/Library/Application Support/yuzu/keys
|
||||||
|
# 3DS emulators
|
||||||
|
- file: Citra/sysdata/aes_keys.txt
|
||||||
|
targets:
|
||||||
|
linux:
|
||||||
|
- $HOME/.local/share/azahar/sysdata
|
||||||
|
windows:
|
||||||
|
- '%APPDATA%\Azahar\sysdata'
|
||||||
|
- file: Citra/sysdata/boot9.bin
|
||||||
|
targets:
|
||||||
|
linux:
|
||||||
|
- $HOME/.local/share/azahar/sysdata
|
||||||
|
windows:
|
||||||
|
- '%APPDATA%\Azahar\sysdata'
|
||||||
|
# DuckStation (PS1)
|
||||||
|
- pattern: 'scph*.bin'
|
||||||
|
targets:
|
||||||
|
linux:
|
||||||
|
- $HOME/.local/share/duckstation/bios
|
||||||
|
windows:
|
||||||
|
- '%LOCALAPPDATA%\DuckStation\bios'
|
||||||
|
- '%USERPROFILE%\Documents\DuckStation\bios'
|
||||||
|
darwin:
|
||||||
|
- $HOME/Library/Application Support/DuckStation/bios
|
||||||
|
# PCSX2 (PS2)
|
||||||
|
- pattern: 'ps2-*.bin'
|
||||||
|
targets:
|
||||||
|
linux:
|
||||||
|
- $HOME/.config/PCSX2/bios
|
||||||
|
- $HOME/.var/app/net.pcsx2.PCSX2/config/PCSX2/bios
|
||||||
|
windows:
|
||||||
|
- '%USERPROFILE%\Documents\PCSX2\bios'
|
||||||
|
darwin:
|
||||||
|
- $HOME/Library/Application Support/PCSX2/bios
|
||||||
|
# RPCS3 (PS3) - needs menu install
|
||||||
|
- note: 'PS3 firmware (PS3UPDAT.PUP) found. Install via RPCS3 > File > Install Firmware.'
|
||||||
|
detect:
|
||||||
|
linux:
|
||||||
|
- $HOME/.config/rpcs3
|
||||||
|
windows:
|
||||||
|
- '%APPDATA%\rpcs3'
|
||||||
|
# Dolphin (GameCube)
|
||||||
|
- file: GC/USA/IPL.bin
|
||||||
|
targets:
|
||||||
|
linux:
|
||||||
|
- $HOME/.local/share/dolphin-emu/GC/USA
|
||||||
|
windows:
|
||||||
|
- '%APPDATA%\Dolphin Emulator\GC\USA'
|
||||||
|
darwin:
|
||||||
|
- $HOME/Library/Application Support/Dolphin/GC/USA
|
||||||
|
- file: GC/EUR/IPL.bin
|
||||||
|
targets:
|
||||||
|
linux:
|
||||||
|
- $HOME/.local/share/dolphin-emu/GC/EUR
|
||||||
|
windows:
|
||||||
|
- '%APPDATA%\Dolphin Emulator\GC\EUR'
|
||||||
|
darwin:
|
||||||
|
- $HOME/Library/Application Support/Dolphin/GC/EUR
|
||||||
|
- file: GC/JAP/IPL.bin
|
||||||
|
targets:
|
||||||
|
linux:
|
||||||
|
- $HOME/.local/share/dolphin-emu/GC/JAP
|
||||||
|
windows:
|
||||||
|
- '%APPDATA%\Dolphin Emulator\GC\JAP'
|
||||||
|
darwin:
|
||||||
|
- $HOME/Library/Application Support/Dolphin/GC/JAP
|
||||||
|
- file: dsp_rom.bin
|
||||||
|
targets:
|
||||||
|
linux:
|
||||||
|
- $HOME/.local/share/dolphin-emu
|
||||||
|
windows:
|
||||||
|
- '%APPDATA%\Dolphin Emulator'
|
||||||
|
darwin:
|
||||||
|
- $HOME/Library/Application Support/Dolphin
|
||||||
|
- file: dsp_coef.bin
|
||||||
|
targets:
|
||||||
|
linux:
|
||||||
|
- $HOME/.local/share/dolphin-emu
|
||||||
|
windows:
|
||||||
|
- '%APPDATA%\Dolphin Emulator'
|
||||||
|
darwin:
|
||||||
|
- $HOME/Library/Application Support/Dolphin
|
||||||
|
# PPSSPP
|
||||||
|
- file: PPSSPP/ppge_atlas.zim
|
||||||
|
targets:
|
||||||
|
linux:
|
||||||
|
- $HOME/.config/ppsspp/PSP/SYSTEM
|
||||||
|
windows:
|
||||||
|
- '%USERPROFILE%\Documents\PPSSPP\PSP\SYSTEM'
|
||||||
|
darwin:
|
||||||
|
- $HOME/Library/Application Support/PPSSPP/PSP/SYSTEM
|
||||||
|
# Flycast (Dreamcast)
|
||||||
|
- file: dc/dc_boot.bin
|
||||||
|
targets:
|
||||||
|
linux:
|
||||||
|
- $HOME/.local/share/flycast/data
|
||||||
|
- $HOME/.var/app/org.flycast.Flycast/data/flycast
|
||||||
|
windows:
|
||||||
|
- '%APPDATA%\flycast\data'
|
||||||
|
- file: dc/dc_nvmem.bin
|
||||||
|
targets:
|
||||||
|
linux:
|
||||||
|
- $HOME/.local/share/flycast/data
|
||||||
|
- $HOME/.var/app/org.flycast.Flycast/data/flycast
|
||||||
|
windows:
|
||||||
|
- '%APPDATA%\flycast\data'
|
||||||
romm:
|
romm:
|
||||||
config: romm.yml
|
config: romm.yml
|
||||||
status: active
|
status: active
|
||||||
|
|||||||
@@ -7978,8 +7978,8 @@ systems:
|
|||||||
- name: Vectrex_Bios.bin
|
- name: Vectrex_Bios.bin
|
||||||
destination: bios/Vectrex_Bios.bin
|
destination: bios/Vectrex_Bios.bin
|
||||||
required: false
|
required: false
|
||||||
- name: VEC_MineStorm.vec
|
- name: VEC_Minestorm.vec
|
||||||
destination: bios/VEC_MineStorm.vec
|
destination: bios/VEC_Minestorm.vec
|
||||||
required: false
|
required: false
|
||||||
vsmile:
|
vsmile:
|
||||||
files:
|
files:
|
||||||
|
|||||||
@@ -743,15 +743,13 @@ def group_identical_platforms(
|
|||||||
inherits[platform] = False
|
inherits[platform] = False
|
||||||
continue
|
continue
|
||||||
|
|
||||||
base_dest = config.get("base_destination", "")
|
|
||||||
entries = []
|
entries = []
|
||||||
for sys_id, system in sorted(config.get("systems", {}).items()):
|
for sys_id, system in sorted(config.get("systems", {}).items()):
|
||||||
for fe in system.get("files", []):
|
for fe in system.get("files", []):
|
||||||
dest = fe.get("destination", fe.get("name", ""))
|
dest = fe.get("destination", fe.get("name", ""))
|
||||||
full_dest = f"{base_dest}/{dest}" if base_dest else dest
|
|
||||||
sha1 = fe.get("sha1", "")
|
sha1 = fe.get("sha1", "")
|
||||||
md5 = fe.get("md5", "")
|
md5 = fe.get("md5", "")
|
||||||
entries.append(f"{full_dest}|{sha1}|{md5}")
|
entries.append(f"{dest}|{sha1}|{md5}")
|
||||||
|
|
||||||
fp = hashlib.sha1("|".join(sorted(entries)).encode()).hexdigest()
|
fp = hashlib.sha1("|".join(sorted(entries)).encode()).hexdigest()
|
||||||
if target_cores_cache:
|
if target_cores_cache:
|
||||||
|
|||||||
@@ -246,6 +246,13 @@ def _register_path(dest: str, seen_files: set[str], seen_parents: set[str]) -> N
|
|||||||
seen_parents.add(parent)
|
seen_parents.add(parent)
|
||||||
|
|
||||||
|
|
||||||
|
def _flat(arcname: str, prefix: str, flatten: bool) -> str:
|
||||||
|
"""Strip base_destination prefix from ZIP arcname when flattening."""
|
||||||
|
if flatten and prefix and arcname.startswith(prefix + "/"):
|
||||||
|
return arcname[len(prefix) + 1:]
|
||||||
|
return arcname
|
||||||
|
|
||||||
|
|
||||||
def resolve_file(
|
def resolve_file(
|
||||||
file_entry: dict,
|
file_entry: dict,
|
||||||
db: dict,
|
db: dict,
|
||||||
@@ -783,15 +790,14 @@ def _build_readme(
|
|||||||
" 1. Find your RetroArch system directory:\n"
|
" 1. Find your RetroArch system directory:\n"
|
||||||
" - RetroArch > Settings > Directory > System/BIOS\n"
|
" - RetroArch > Settings > Directory > System/BIOS\n"
|
||||||
" - Default: retroarch/system/\n"
|
" - Default: retroarch/system/\n"
|
||||||
' 2. Open the "system" folder from this archive\n'
|
" 2. Extract all files from this archive directly into your system directory\n"
|
||||||
" 3. Copy ALL contents into your system directory\n"
|
" 3. Overwrite if asked\n\n"
|
||||||
" 4. Overwrite if asked\n\n"
|
|
||||||
" Option C: Manual (handheld / SD card)\n"
|
" Option C: Manual (handheld / SD card)\n"
|
||||||
" -------------------------------------\n"
|
" -------------------------------------\n"
|
||||||
" Anbernic, Retroid, Miyoo, Trimui, etc.:\n"
|
" Anbernic, Retroid, Miyoo, Trimui, etc.:\n"
|
||||||
" 1. Connect your SD card to your PC\n"
|
" 1. Connect your SD card to your PC\n"
|
||||||
" 2. Find the BIOS folder (usually BIOS/ or system/)\n"
|
" 2. Find the BIOS folder (usually BIOS/ or system/)\n"
|
||||||
' 3. Copy ALL contents of "system" from this archive\n'
|
" 3. Extract all files from this archive directly into that folder\n"
|
||||||
" 4. Eject SD card and reboot your device\n\n"
|
" 4. Eject SD card and reboot your device\n\n"
|
||||||
" Common paths by device:\n"
|
" Common paths by device:\n"
|
||||||
" Anbernic (ArkOS/JELOS): BIOS/\n"
|
" Anbernic (ArkOS/JELOS): BIOS/\n"
|
||||||
@@ -810,14 +816,13 @@ def _build_readme(
|
|||||||
" 1. On your PC, open the Batocera network share:\n"
|
" 1. On your PC, open the Batocera network share:\n"
|
||||||
" - Windows: \\\\BATOCERA\\share\\bios\\\n"
|
" - Windows: \\\\BATOCERA\\share\\bios\\\n"
|
||||||
" - Mac/Linux: smb://batocera/share/bios/\n"
|
" - Mac/Linux: smb://batocera/share/bios/\n"
|
||||||
' 2. Open the "bios" folder from this archive\n'
|
" 2. Extract all files from this archive directly into the share\n"
|
||||||
" 3. Copy ALL contents into the share\n"
|
" 3. Overwrite if asked\n\n"
|
||||||
" 4. Overwrite if asked\n\n"
|
|
||||||
" Option C: Manual (SD card)\n"
|
" Option C: Manual (SD card)\n"
|
||||||
" --------------------------\n"
|
" --------------------------\n"
|
||||||
" 1. Put the SD card in your PC\n"
|
" 1. Put the SD card in your PC\n"
|
||||||
" 2. Navigate to /userdata/bios/ on the SHARE partition\n"
|
" 2. Navigate to /userdata/bios/ on the SHARE partition\n"
|
||||||
' 3. Copy ALL contents of "bios" from this archive\n\n'
|
" 3. Extract all files from this archive directly into that folder\n\n"
|
||||||
" NOTE: Dreamcast flash memory is named dc_nvmem.bin\n"
|
" NOTE: Dreamcast flash memory is named dc_nvmem.bin\n"
|
||||||
" (if your setup asks for dc_flash.bin, same file).\n\n"
|
" (if your setup asks for dc_flash.bin, same file).\n\n"
|
||||||
),
|
),
|
||||||
@@ -831,13 +836,12 @@ def _build_readme(
|
|||||||
" 1. On your PC, open the Recalbox network share:\n"
|
" 1. On your PC, open the Recalbox network share:\n"
|
||||||
" - Windows: \\\\RECALBOX\\share\\bios\\\n"
|
" - Windows: \\\\RECALBOX\\share\\bios\\\n"
|
||||||
" - Mac/Linux: smb://recalbox/share/bios/\n"
|
" - Mac/Linux: smb://recalbox/share/bios/\n"
|
||||||
' 2. Open the "bios" folder from this archive\n'
|
" 2. Extract all files from this archive directly into the share\n\n"
|
||||||
" 3. Copy ALL contents into the share\n\n"
|
|
||||||
" Option C: Manual (SD card)\n"
|
" Option C: Manual (SD card)\n"
|
||||||
" --------------------------\n"
|
" --------------------------\n"
|
||||||
" 1. Put the SD card in your PC\n"
|
" 1. Put the SD card in your PC\n"
|
||||||
" 2. Navigate to /recalbox/share/bios/\n"
|
" 2. Navigate to /recalbox/share/bios/\n"
|
||||||
' 3. Copy ALL contents of "bios" from this archive\n\n'
|
" 3. Extract all files from this archive directly into that folder\n\n"
|
||||||
),
|
),
|
||||||
"emudeck": (
|
"emudeck": (
|
||||||
"INSTALLATION GUIDE (Steam Deck / Linux)\n\n"
|
"INSTALLATION GUIDE (Steam Deck / Linux)\n\n"
|
||||||
@@ -851,8 +855,7 @@ def _build_readme(
|
|||||||
" ----------------\n"
|
" ----------------\n"
|
||||||
" 1. Open Dolphin file manager\n"
|
" 1. Open Dolphin file manager\n"
|
||||||
" 2. Navigate to ~/Emulation/bios/\n"
|
" 2. Navigate to ~/Emulation/bios/\n"
|
||||||
' 3. Open the "bios" folder from this archive\n'
|
" 3. Extract all files from this archive directly into ~/Emulation/bios/\n\n"
|
||||||
" 4. Copy ALL contents into ~/Emulation/bios/\n\n"
|
|
||||||
" STANDALONE EMULATORS (extra step)\n"
|
" STANDALONE EMULATORS (extra step)\n"
|
||||||
" Switch and 3DS emulators need keys in specific folders:\n"
|
" Switch and 3DS emulators need keys in specific folders:\n"
|
||||||
" prod.keys -> ~/.local/share/yuzu/keys/\n"
|
" prod.keys -> ~/.local/share/yuzu/keys/\n"
|
||||||
@@ -871,11 +874,8 @@ def _build_readme(
|
|||||||
" ----------------\n"
|
" ----------------\n"
|
||||||
" 1. Open Dolphin file manager\n"
|
" 1. Open Dolphin file manager\n"
|
||||||
" 2. Show hidden files (Ctrl+H)\n"
|
" 2. Show hidden files (Ctrl+H)\n"
|
||||||
" 3. Navigate to ~/retrodeck/\n"
|
" 3. Navigate to ~/retrodeck/bios/\n"
|
||||||
' 4. Open the "bios" folder from this archive\n'
|
" 4. Extract all files from this archive directly into ~/retrodeck/bios/\n\n"
|
||||||
" 5. Copy ALL contents into ~/retrodeck/bios/\n"
|
|
||||||
' 6. If the archive contains a "roms" folder, copy\n'
|
|
||||||
" its contents into ~/retrodeck/roms/\n\n"
|
|
||||||
" NOTE: RetroDECK uses its own BIOS checker. After\n"
|
" NOTE: RetroDECK uses its own BIOS checker. After\n"
|
||||||
" copying, open RetroDECK > Tools > BIOS Checker to\n"
|
" copying, open RetroDECK > Tools > BIOS Checker to\n"
|
||||||
" verify everything is detected.\n\n"
|
" verify everything is detected.\n\n"
|
||||||
@@ -891,9 +891,8 @@ def _build_readme(
|
|||||||
" 1. Open your RetroBat installation folder\n"
|
" 1. Open your RetroBat installation folder\n"
|
||||||
" 2. Navigate to the bios\\ subfolder\n"
|
" 2. Navigate to the bios\\ subfolder\n"
|
||||||
" (default: C:\\RetroBat\\bios\\)\n"
|
" (default: C:\\RetroBat\\bios\\)\n"
|
||||||
' 3. Open the "bios" folder from this archive\n'
|
" 3. Extract all files from this archive directly into your bios\\ folder\n"
|
||||||
" 4. Copy ALL contents into your bios\\ folder\n"
|
" 4. Overwrite if asked\n\n"
|
||||||
" 5. Overwrite if asked\n\n"
|
|
||||||
),
|
),
|
||||||
"bizhawk": (
|
"bizhawk": (
|
||||||
"INSTALLATION GUIDE\n\n"
|
"INSTALLATION GUIDE\n\n"
|
||||||
@@ -901,16 +900,15 @@ def _build_readme(
|
|||||||
" 2. Navigate to the Firmware subfolder:\n"
|
" 2. Navigate to the Firmware subfolder:\n"
|
||||||
" - Windows: BizHawk\\Firmware\\\n"
|
" - Windows: BizHawk\\Firmware\\\n"
|
||||||
" - Linux: ~/.config/BizHawk/Firmware/\n"
|
" - Linux: ~/.config/BizHawk/Firmware/\n"
|
||||||
' 3. Open the "Firmware" folder from this archive\n'
|
" 3. Extract all files from this archive directly into your Firmware folder\n"
|
||||||
" 4. Copy ALL contents into your Firmware folder\n"
|
" 4. In BizHawk: Config > Paths > Firmware should\n"
|
||||||
" 5. In BizHawk: Config > Paths > Firmware should\n"
|
|
||||||
" point to this folder\n\n"
|
" point to this folder\n\n"
|
||||||
),
|
),
|
||||||
"romm": (
|
"romm": (
|
||||||
"INSTALLATION GUIDE (RomM server)\n\n"
|
"INSTALLATION GUIDE (RomM server)\n\n"
|
||||||
" 1. Locate your RomM library folder\n"
|
" 1. Locate your RomM library folder\n"
|
||||||
" 2. Navigate to the bios/ subdirectory\n"
|
" 2. Navigate to the bios/ subdirectory\n"
|
||||||
' 3. Copy ALL contents of "bios" from this archive\n'
|
" 3. Extract all files from this archive directly into that folder\n"
|
||||||
" 4. Restart the RomM service to detect new files\n\n"
|
" 4. Restart the RomM service to detect new files\n\n"
|
||||||
),
|
),
|
||||||
"retropie": (
|
"retropie": (
|
||||||
@@ -918,7 +916,7 @@ def _build_readme(
|
|||||||
" Option A: Via network share\n"
|
" Option A: Via network share\n"
|
||||||
" --------------------------\n"
|
" --------------------------\n"
|
||||||
" 1. On your PC, open: \\\\RETROPIE\\bios\\\n"
|
" 1. On your PC, open: \\\\RETROPIE\\bios\\\n"
|
||||||
' 2. Copy ALL contents of "BIOS" from this archive\n\n'
|
" 2. Extract all files from this archive directly into that folder\n\n"
|
||||||
" Option B: Via SSH\n"
|
" Option B: Via SSH\n"
|
||||||
" -----------------\n"
|
" -----------------\n"
|
||||||
" 1. SSH into your Pi: ssh pi@retropie\n"
|
" 1. SSH into your Pi: ssh pi@retropie\n"
|
||||||
@@ -927,7 +925,7 @@ def _build_readme(
|
|||||||
" ---------------------\n"
|
" ---------------------\n"
|
||||||
" 1. Put the SD card in your PC\n"
|
" 1. Put the SD card in your PC\n"
|
||||||
" 2. Navigate to /home/pi/RetroPie/BIOS/\n"
|
" 2. Navigate to /home/pi/RetroPie/BIOS/\n"
|
||||||
' 3. Copy ALL contents of "BIOS" from this archive\n\n'
|
" 3. Extract all files from this archive directly into that folder\n\n"
|
||||||
),
|
),
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -938,9 +936,8 @@ def _build_readme(
|
|||||||
platform_name,
|
platform_name,
|
||||||
(
|
(
|
||||||
f"INSTALLATION\n\n"
|
f"INSTALLATION\n\n"
|
||||||
f' 1. Open the "{base_dest or "files"}" folder in this archive\n'
|
f" 1. Extract all files from this archive directly into your BIOS directory\n"
|
||||||
f" 2. Copy ALL contents to your BIOS directory\n"
|
f" 2. Overwrite if asked\n\n"
|
||||||
f" 3. Overwrite if asked\n\n"
|
|
||||||
),
|
),
|
||||||
)
|
)
|
||||||
|
|
||||||
@@ -977,10 +974,7 @@ def _build_readme(
|
|||||||
credits = "\nCONTRIBUTORS\n\n"
|
credits = "\nCONTRIBUTORS\n\n"
|
||||||
for cb in contributors:
|
for cb in contributors:
|
||||||
username = cb.get("username", "")
|
username = cb.get("username", "")
|
||||||
contribution = cb.get("contribution", "")
|
credits += f" @{username}\n"
|
||||||
pr = cb.get("pr")
|
|
||||||
pr_ref = f" (#{pr})" if pr else ""
|
|
||||||
credits += f" @{username} - {contribution}{pr_ref}\n"
|
|
||||||
credits += "\n"
|
credits += "\n"
|
||||||
|
|
||||||
return header + source_info + guide + credits + footer
|
return header + source_info + guide + credits + footer
|
||||||
@@ -1022,6 +1016,7 @@ def generate_pack(
|
|||||||
system_filter: list[str] | None = None,
|
system_filter: list[str] | None = None,
|
||||||
precomputed_extras: list[dict] | None = None,
|
precomputed_extras: list[dict] | None = None,
|
||||||
source: str = "full",
|
source: str = "full",
|
||||||
|
flatten: bool = True,
|
||||||
) -> str | None:
|
) -> str | None:
|
||||||
"""Generate a ZIP pack for a platform.
|
"""Generate a ZIP pack for a platform.
|
||||||
|
|
||||||
@@ -1157,7 +1152,7 @@ def generate_pack(
|
|||||||
f"{base_dest}/{instr_name}" if base_dest else instr_name
|
f"{base_dest}/{instr_name}" if base_dest else instr_name
|
||||||
)
|
)
|
||||||
zf.writestr(
|
zf.writestr(
|
||||||
instr_path,
|
_flat(instr_path, base_dest, flatten),
|
||||||
f"File needed: {file_entry['name']}\n\n{instructions}\n",
|
f"File needed: {file_entry['name']}\n\n{instructions}\n",
|
||||||
)
|
)
|
||||||
user_provided.append(file_entry["name"])
|
user_provided.append(file_entry["name"])
|
||||||
@@ -1183,9 +1178,9 @@ def generate_pack(
|
|||||||
if download_external(file_entry, tmp_path):
|
if download_external(file_entry, tmp_path):
|
||||||
extract = file_entry.get("extract", False)
|
extract = file_entry.get("extract", False)
|
||||||
if extract and tmp_path.endswith(".zip"):
|
if extract and tmp_path.endswith(".zip"):
|
||||||
_extract_zip_to_archive(tmp_path, full_dest, zf)
|
_extract_zip_to_archive(tmp_path, _flat(full_dest, base_dest, flatten), zf)
|
||||||
else:
|
else:
|
||||||
zf.write(tmp_path, full_dest)
|
zf.write(tmp_path, _flat(full_dest, base_dest, flatten))
|
||||||
seen_destinations.add(dedup_key)
|
seen_destinations.add(dedup_key)
|
||||||
_register_path(dedup_key, seen_destinations, seen_parents)
|
_register_path(dedup_key, seen_destinations, seen_parents)
|
||||||
if case_insensitive:
|
if case_insensitive:
|
||||||
@@ -1263,7 +1258,7 @@ def generate_pack(
|
|||||||
else readme_name
|
else readme_name
|
||||||
)
|
)
|
||||||
if readme_full not in seen_destinations:
|
if readme_full not in seen_destinations:
|
||||||
zf.writestr(readme_full, readme_text)
|
zf.writestr(_flat(readme_full, base_dest, flatten), readme_text)
|
||||||
seen_destinations.add(readme_full)
|
seen_destinations.add(readme_full)
|
||||||
status = "agnostic_fallback"
|
status = "agnostic_fallback"
|
||||||
# Fall through to normal packing below
|
# Fall through to normal packing below
|
||||||
@@ -1349,12 +1344,13 @@ def generate_pack(
|
|||||||
seen_lower.add(dedup_key.lower())
|
seen_lower.add(dedup_key.lower())
|
||||||
|
|
||||||
extract = file_entry.get("extract", False)
|
extract = file_entry.get("extract", False)
|
||||||
|
flat_dest = _flat(full_dest, base_dest, flatten)
|
||||||
if extract and local_path.endswith(".zip"):
|
if extract and local_path.endswith(".zip"):
|
||||||
_extract_zip_to_archive(local_path, full_dest, zf)
|
_extract_zip_to_archive(local_path, flat_dest, zf)
|
||||||
elif local_path.endswith(".zip"):
|
elif local_path.endswith(".zip"):
|
||||||
_normalize_zip_for_pack(local_path, full_dest, zf)
|
_normalize_zip_for_pack(local_path, flat_dest, zf)
|
||||||
else:
|
else:
|
||||||
zf.write(local_path, full_dest)
|
zf.write(local_path, flat_dest)
|
||||||
total_files += 1
|
total_files += 1
|
||||||
|
|
||||||
# Core requirements: files platform's cores need but YAML doesn't declare
|
# Core requirements: files platform's cores need but YAML doesn't declare
|
||||||
@@ -1440,10 +1436,11 @@ def generate_pack(
|
|||||||
if status in ("not_found", "external", "user_provided"):
|
if status in ("not_found", "external", "user_provided"):
|
||||||
continue
|
continue
|
||||||
|
|
||||||
|
flat_dest = _flat(full_dest, base_dest, flatten)
|
||||||
if local_path.endswith(".zip"):
|
if local_path.endswith(".zip"):
|
||||||
_normalize_zip_for_pack(local_path, full_dest, zf)
|
_normalize_zip_for_pack(local_path, flat_dest, zf)
|
||||||
else:
|
else:
|
||||||
zf.write(local_path, full_dest)
|
zf.write(local_path, flat_dest)
|
||||||
seen_destinations.add(full_dest)
|
seen_destinations.add(full_dest)
|
||||||
_register_path(full_dest, seen_destinations, seen_parents)
|
_register_path(full_dest, seen_destinations, seen_parents)
|
||||||
if case_insensitive:
|
if case_insensitive:
|
||||||
@@ -1489,7 +1486,7 @@ def generate_pack(
|
|||||||
_register_path(full, seen_destinations, seen_parents)
|
_register_path(full, seen_destinations, seen_parents)
|
||||||
if case_insensitive:
|
if case_insensitive:
|
||||||
seen_lower.add(full.lower())
|
seen_lower.add(full.lower())
|
||||||
zf.write(src, full)
|
zf.write(src, _flat(full, base_dest, flatten))
|
||||||
total_files += 1
|
total_files += 1
|
||||||
|
|
||||||
# README.txt for users -personalized step-by-step per platform
|
# README.txt for users -personalized step-by-step per platform
|
||||||
@@ -2432,6 +2429,11 @@ def _run_verify_packs(args):
|
|||||||
with zipfile.ZipFile(zip_path) as zf:
|
with zipfile.ZipFile(zip_path) as zf:
|
||||||
zf.extractall(extract_dir)
|
zf.extractall(extract_dir)
|
||||||
|
|
||||||
|
# Auto-detect flat vs nested extraction
|
||||||
|
is_flat = bool(base_dest) and not os.path.isdir(
|
||||||
|
os.path.join(extract_dir, base_dest)
|
||||||
|
)
|
||||||
|
|
||||||
missing = []
|
missing = []
|
||||||
hash_fail = []
|
hash_fail = []
|
||||||
ok = 0
|
ok = 0
|
||||||
@@ -2442,7 +2444,7 @@ def _run_verify_packs(args):
|
|||||||
continue
|
continue
|
||||||
fp = (
|
fp = (
|
||||||
os.path.join(extract_dir, base_dest, dest)
|
os.path.join(extract_dir, base_dest, dest)
|
||||||
if base_dest
|
if base_dest and not is_flat
|
||||||
else os.path.join(extract_dir, dest)
|
else os.path.join(extract_dir, dest)
|
||||||
)
|
)
|
||||||
# Case-insensitive fallback
|
# Case-insensitive fallback
|
||||||
@@ -2613,9 +2615,11 @@ def _run_platform_packs(
|
|||||||
load_platform_config(p, args.platforms_dir).get("platform", p)
|
load_platform_config(p, args.platforms_dir).get("platform", p)
|
||||||
for p in group_platforms
|
for p in group_platforms
|
||||||
]
|
]
|
||||||
|
source_tag = {"platform": "_Platform", "truth": "_Truth"}.get(source, "")
|
||||||
|
req_tag = "_Required" if required_only else ""
|
||||||
combined = (
|
combined = (
|
||||||
"_".join(n.replace(" ", "") for n in all_names)
|
"_".join(n.replace(" ", "") for n in all_names)
|
||||||
+ f"{ver_tag}_BIOS_Pack.zip"
|
+ f"{ver_tag}{source_tag}{req_tag}_BIOS_Pack.zip"
|
||||||
)
|
)
|
||||||
new_path = os.path.join(os.path.dirname(zip_path), combined)
|
new_path = os.path.join(os.path.dirname(zip_path), combined)
|
||||||
if new_path != zip_path:
|
if new_path != zip_path:
|
||||||
@@ -3275,7 +3279,11 @@ def verify_pack(
|
|||||||
# Data directory: check against cached files
|
# Data directory: check against cached files
|
||||||
if status == "untracked" and _data_index:
|
if status == "untracked" and _data_index:
|
||||||
_bn = os.path.basename(name)
|
_bn = os.path.basename(name)
|
||||||
_pr = name[len("system/") :] if name.startswith("system/") else name
|
_pr = name
|
||||||
|
for _known_prefix in ("system/", "bios/", "BIOS/", "Firmware/"):
|
||||||
|
if name.startswith(_known_prefix):
|
||||||
|
_pr = name[len(_known_prefix):]
|
||||||
|
break
|
||||||
_cands = []
|
_cands = []
|
||||||
if _pr in _data_path_index:
|
if _pr in _data_path_index:
|
||||||
_cands.append(_data_path_index[_pr])
|
_cands.append(_data_path_index[_pr])
|
||||||
@@ -3442,6 +3450,13 @@ def verify_pack_against_platform(
|
|||||||
zip_set = set(zf.namelist())
|
zip_set = set(zf.namelist())
|
||||||
zip_lower = {n.lower(): n for n in zip_set}
|
zip_lower = {n.lower(): n for n in zip_set}
|
||||||
|
|
||||||
|
# Auto-detect flat vs nested ZIP
|
||||||
|
is_flat = bool(base_dest) and not any(
|
||||||
|
n.startswith(base_dest + "/")
|
||||||
|
for n in zip_set
|
||||||
|
if n not in ("README.txt", "manifest.json") and not n.endswith("/")
|
||||||
|
)
|
||||||
|
|
||||||
# Structural checks
|
# Structural checks
|
||||||
dupes = sum(1 for c in Counter(zf.namelist()).values() if c > 1)
|
dupes = sum(1 for c in Counter(zf.namelist()).values() if c > 1)
|
||||||
if dupes:
|
if dupes:
|
||||||
@@ -3471,7 +3486,7 @@ def verify_pack_against_platform(
|
|||||||
dest = fe.get("destination", fe.get("name", ""))
|
dest = fe.get("destination", fe.get("name", ""))
|
||||||
if not dest:
|
if not dest:
|
||||||
continue
|
continue
|
||||||
expected = f"{base_dest}/{dest}" if base_dest else dest
|
expected = f"{base_dest}/{dest}" if base_dest and not is_flat else dest
|
||||||
baseline_checked += 1
|
baseline_checked += 1
|
||||||
|
|
||||||
if expected in zip_set or expected.lower() in zip_lower:
|
if expected in zip_set or expected.lower() in zip_lower:
|
||||||
@@ -3498,7 +3513,7 @@ def verify_pack_against_platform(
|
|||||||
continue
|
continue
|
||||||
raw_dest = u.get("path") or u["name"]
|
raw_dest = u.get("path") or u["name"]
|
||||||
dest = f"{raw_dest}{u['name']}" if raw_dest.endswith("/") else raw_dest
|
dest = f"{raw_dest}{u['name']}" if raw_dest.endswith("/") else raw_dest
|
||||||
if extras_pfx:
|
if extras_pfx and not (is_flat and extras_pfx == base_dest):
|
||||||
if not dest.startswith(f"{extras_pfx}/"):
|
if not dest.startswith(f"{extras_pfx}/"):
|
||||||
full = f"{extras_pfx}/{dest}"
|
full = f"{extras_pfx}/{dest}"
|
||||||
else:
|
else:
|
||||||
|
|||||||
@@ -143,7 +143,9 @@ def generate_readme(db: dict, platforms_dir: str) -> str:
|
|||||||
pass
|
pass
|
||||||
|
|
||||||
lines = [
|
lines = [
|
||||||
"# RetroBIOS",
|
'<p align="center">',
|
||||||
|
' <img src=".github/assets/banner.png" alt="RetroBIOS" width="400">',
|
||||||
|
"</p>",
|
||||||
"",
|
"",
|
||||||
f"Complete BIOS and firmware packs for "
|
f"Complete BIOS and firmware packs for "
|
||||||
f"{', '.join(c['platform'] for c in sorted(coverages.values(), key=lambda x: x[
|
f"{', '.join(c['platform'] for c in sorted(coverages.values(), key=lambda x: x[
|
||||||
@@ -349,6 +351,13 @@ def generate_readme(db: dict, platforms_dir: str) -> str:
|
|||||||
|
|
||||||
lines.extend(
|
lines.extend(
|
||||||
[
|
[
|
||||||
|
"",
|
||||||
|
"## Community tools",
|
||||||
|
"",
|
||||||
|
"- [BIOS Preservation Tool](https://github.com/monster-penguin/BIOS-Preservation-Tool)"
|
||||||
|
" by [monster-penguin](https://github.com/monster-penguin)"
|
||||||
|
" - scan, verify, and stage your own BIOS collection"
|
||||||
|
" using RetroBIOS hash metadata",
|
||||||
"",
|
"",
|
||||||
"## Contributing",
|
"## Contributing",
|
||||||
"",
|
"",
|
||||||
|
|||||||
@@ -2136,6 +2136,131 @@ def _build_emulator_file_index(profiles: dict) -> dict[str, dict]:
|
|||||||
# mkdocs.yml nav generator
|
# mkdocs.yml nav generator
|
||||||
|
|
||||||
|
|
||||||
|
def generate_which_pack() -> str:
|
||||||
|
"""Generate the 'Which pack?' decision page."""
|
||||||
|
rel = "https://github.com/Abdess/retrobios/releases"
|
||||||
|
return f"""\
|
||||||
|
# Getting started
|
||||||
|
|
||||||
|
Some retro consoles need firmware files (commonly called BIOS) to run games.
|
||||||
|
Without them, the emulator either refuses to start the game or runs it with
|
||||||
|
reduced accuracy. This project collects and verifies those files so they are
|
||||||
|
ready to use.
|
||||||
|
|
||||||
|
## Quick install
|
||||||
|
|
||||||
|
The installer detects the platform, finds the BIOS folder, downloads what
|
||||||
|
is missing, and copies keys to standalone emulators (Yuzu, Eden, Ryujinx,
|
||||||
|
DuckStation, PCSX2, Dolphin, etc.) when they are present on the system.
|
||||||
|
|
||||||
|
**Linux / Mac / Steam Deck:**
|
||||||
|
|
||||||
|
```sh
|
||||||
|
curl -fsSL https://raw.githubusercontent.com/Abdess/retrobios/main/install.sh | sh
|
||||||
|
```
|
||||||
|
|
||||||
|
**Windows (PowerShell):**
|
||||||
|
|
||||||
|
```powershell
|
||||||
|
iwr -useb https://raw.githubusercontent.com/Abdess/retrobios/main/install.ps1 | iex
|
||||||
|
```
|
||||||
|
|
||||||
|
Nothing else needed. The installer handles everything.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Manual download
|
||||||
|
|
||||||
|
Pick the pack that matches the setup from the [releases page]({rel}),
|
||||||
|
download it, and extract the files into the BIOS folder listed below.
|
||||||
|
After extraction, launch a game. If it needed BIOS, it will find it.
|
||||||
|
|
||||||
|
### Steam Deck
|
||||||
|
|
||||||
|
| Setup | What it is | Pack | Extract to |
|
||||||
|
|-------|-----------|------|-----------|
|
||||||
|
| [EmuDeck](https://www.emudeck.com/) | Installs and configures multiple emulators, adds each game to the Steam library | [EmuDeck]({rel}) | `~/Emulation/bios/` |
|
||||||
|
| [RetroDECK](https://retrodeck.net/) | Single Flatpak app, all emulators bundled, one-click install from Discover | [RetroDECK]({rel}) | `~/retrodeck/` |
|
||||||
|
| RetroArch standalone | Installed from Discover, Steam, or Flatpak | [RetroArch]({rel}) | Open RetroArch > Settings > Directory > System, that is the folder |
|
||||||
|
|
||||||
|
### Windows
|
||||||
|
|
||||||
|
| Setup | What it is | Pack | Extract to |
|
||||||
|
|-------|-----------|------|-----------|
|
||||||
|
| [RetroArch](https://www.retroarch.com/) | Multi-system emulator, loads different cores for each console | [RetroArch]({rel}) | The `system` folder next to `retroarch.exe` |
|
||||||
|
| [RetroBat](https://www.retrobat.org/) | Windows frontend with EmulationStation, includes RetroArch and standalone emulators | [RetroBat]({rel}) | The `bios` folder inside the RetroBat installation |
|
||||||
|
| [BizHawk](https://tasvideos.org/BizHawk) | Accuracy-focused multi-system emulator, popular for speedruns and TAS | [BizHawk]({rel}) | The `Firmware` folder inside the BizHawk installation |
|
||||||
|
| [LaunchBox](https://www.launchbox-app.com/) | Game library manager and launcher, uses RetroArch or standalone emulators behind the scenes | [RetroArch]({rel}) | Open RetroArch (via LaunchBox) > Settings > Directory > System |
|
||||||
|
|
||||||
|
### Linux
|
||||||
|
|
||||||
|
| Setup | What it is | Pack | Extract to |
|
||||||
|
|-------|-----------|------|-----------|
|
||||||
|
| RetroArch (native) | Installed via package manager or AppImage | [RetroArch]({rel}) | `~/.config/retroarch/system/` |
|
||||||
|
| RetroArch (Flatpak) | Installed from Flathub | [RetroArch]({rel}) | `~/.var/app/org.libretro.RetroArch/config/retroarch/system/` |
|
||||||
|
| [Batocera](https://batocera.org/) | Bootable OS dedicated to gaming, runs from USB or full install, supports PC and SBC | [Batocera]({rel}) | `/userdata/bios/` |
|
||||||
|
| [Recalbox](https://www.recalbox.com/) | Bootable OS for retro gaming, streamlined interface, auto-configured | [Recalbox]({rel}) | `/recalbox/share/bios/` |
|
||||||
|
|
||||||
|
### macOS
|
||||||
|
|
||||||
|
| Setup | What it is | Pack | Extract to |
|
||||||
|
|-------|-----------|------|-----------|
|
||||||
|
| [RetroArch](https://www.retroarch.com/) | Multi-system emulator | [RetroArch]({rel}) | `~/Library/Application Support/RetroArch/system/` |
|
||||||
|
|
||||||
|
### Raspberry Pi and single-board computers
|
||||||
|
|
||||||
|
| Setup | What it is | Pack | Extract to |
|
||||||
|
|-------|-----------|------|-----------|
|
||||||
|
| [RetroPie](https://retropie.org.uk/) | The classic Pi emulation setup, largest community, most online guides | [RetroArch]({rel}) | `~/RetroPie/BIOS/` |
|
||||||
|
| [Lakka](https://www.lakka.tv/) | Lightweight RetroArch OS, minimal config, boots straight into the UI | [RetroArch]({rel}) | `/storage/system/` |
|
||||||
|
| [Batocera](https://batocera.org/) | Easy setup, works on Pi 3/4/5 and many other boards (Odroid, etc.) | [Batocera]({rel}) | `/userdata/bios/` |
|
||||||
|
| [Recalbox](https://www.recalbox.com/) | Plug-and-play experience, good for a first build | [Recalbox]({rel}) | `/recalbox/share/bios/` |
|
||||||
|
|
||||||
|
### Android handheld (Retroid Pocket, R36S, Miyoo, etc.)
|
||||||
|
|
||||||
|
Most Android handhelds run RetroArch. Download the [RetroArch pack]({rel})
|
||||||
|
and extract into `RetroArch/system/` on internal storage or SD card.
|
||||||
|
|
||||||
|
### Self-hosted ROM manager
|
||||||
|
|
||||||
|
| Setup | What it is | Pack | Extract to |
|
||||||
|
|-------|-----------|------|-----------|
|
||||||
|
| [RomM](https://github.com/rommapp/romm) | Web-based ROM manager, plays games in the browser via EmulatorJS | [RomM]({rel}) | The `bios` folder in the RomM library, one subfolder per system |
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Full pack or Platform pack?
|
||||||
|
|
||||||
|
Each platform has two pack types on the [releases page]({rel}).
|
||||||
|
|
||||||
|
**Full pack** (recommended)
|
||||||
|
|
||||||
|
Contains the platform's own BIOS list plus all files needed by each
|
||||||
|
emulator core available on that platform. This covers alternate cores,
|
||||||
|
optional firmware that improves accuracy, and edge cases. Larger download,
|
||||||
|
but everything works out of the box with any core.
|
||||||
|
|
||||||
|
**Platform pack**
|
||||||
|
|
||||||
|
Contains only the files the platform officially checks for. Much smaller
|
||||||
|
download. Good for limited storage (SD cards, handhelds) or setups that
|
||||||
|
only use default cores.
|
||||||
|
|
||||||
|
When in doubt, take the full pack.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## After extraction
|
||||||
|
|
||||||
|
Launch a game. If it needed a BIOS file, the emulator will find it
|
||||||
|
automatically. No configuration needed.
|
||||||
|
|
||||||
|
If a game still asks for a missing file, check the
|
||||||
|
[platforms section](platforms/index.md) for the full file list, or the
|
||||||
|
[emulators section](emulators/index.md) for what each core expects.
|
||||||
|
"""
|
||||||
|
|
||||||
|
|
||||||
def generate_mkdocs_nav(
|
def generate_mkdocs_nav(
|
||||||
coverages: dict,
|
coverages: dict,
|
||||||
manufacturers: dict,
|
manufacturers: dict,
|
||||||
@@ -2211,10 +2336,12 @@ def generate_mkdocs_nav(
|
|||||||
{"Adding a scraper": "wiki/adding-a-scraper.md"},
|
{"Adding a scraper": "wiki/adding-a-scraper.md"},
|
||||||
{"Testing guide": "wiki/testing-guide.md"},
|
{"Testing guide": "wiki/testing-guide.md"},
|
||||||
{"Release process": "wiki/release-process.md"},
|
{"Release process": "wiki/release-process.md"},
|
||||||
|
{"Community tools": "wiki/community-tools.md"},
|
||||||
]
|
]
|
||||||
|
|
||||||
return [
|
return [
|
||||||
{"Home": "index.md"},
|
{"Home": "index.md"},
|
||||||
|
{"Download": "which-pack.md"},
|
||||||
{"Platforms": platform_nav},
|
{"Platforms": platform_nav},
|
||||||
{"Systems": system_nav},
|
{"Systems": system_nav},
|
||||||
{"Emulators": emu_nav},
|
{"Emulators": emu_nav},
|
||||||
@@ -2258,6 +2385,15 @@ def main():
|
|||||||
css_dest.parent.mkdir(parents=True, exist_ok=True)
|
css_dest.parent.mkdir(parents=True, exist_ok=True)
|
||||||
shutil.copy2(css_src, css_dest)
|
shutil.copy2(css_src, css_dest)
|
||||||
|
|
||||||
|
# Copy branding assets
|
||||||
|
images_dest = docs / "assets" / "images"
|
||||||
|
images_dest.mkdir(parents=True, exist_ok=True)
|
||||||
|
assets_src = Path(".github") / "assets"
|
||||||
|
for name, dest_name in [("logo.png", "logo.png"), ("favicon.png", "favicon.png")]:
|
||||||
|
src = assets_src / name
|
||||||
|
if src.exists():
|
||||||
|
shutil.copy2(src, images_dest / dest_name)
|
||||||
|
|
||||||
registry_path = Path(args.platforms_dir) / "_registry.yml"
|
registry_path = Path(args.platforms_dir) / "_registry.yml"
|
||||||
registry = {}
|
registry = {}
|
||||||
if registry_path.exists():
|
if registry_path.exists():
|
||||||
@@ -2368,6 +2504,10 @@ def main():
|
|||||||
str(wiki_dest / "data-model.md"), generate_wiki_data_model(db, profiles)
|
str(wiki_dest / "data-model.md"), generate_wiki_data_model(db, profiles)
|
||||||
)
|
)
|
||||||
|
|
||||||
|
# Generate which-pack page
|
||||||
|
print("Generating which-pack page...")
|
||||||
|
write_if_changed(str(docs / "which-pack.md"), generate_which_pack())
|
||||||
|
|
||||||
# Generate contributing
|
# Generate contributing
|
||||||
print("Generating contributing page...")
|
print("Generating contributing page...")
|
||||||
write_if_changed(str(docs / "contributing.md"), generate_contributing())
|
write_if_changed(str(docs / "contributing.md"), generate_contributing())
|
||||||
@@ -2403,6 +2543,8 @@ theme:
|
|||||||
icon: material/brightness-4
|
icon: material/brightness-4
|
||||||
name: Switch to auto
|
name: Switch to auto
|
||||||
font: false
|
font: false
|
||||||
|
logo: assets/images/logo.png
|
||||||
|
favicon: assets/images/favicon.png
|
||||||
icon:
|
icon:
|
||||||
logo: material/chip
|
logo: material/chip
|
||||||
features:
|
features:
|
||||||
|
|||||||
163
scripts/truth.py
163
scripts/truth.py
@@ -12,6 +12,16 @@ from common import _norm_system_id, resolve_platform_cores
|
|||||||
from validation import filter_files_by_mode
|
from validation import filter_files_by_mode
|
||||||
|
|
||||||
|
|
||||||
|
def _serialize_source_ref(sr: object) -> str:
|
||||||
|
"""Convert a source_ref value to a clean string for serialization."""
|
||||||
|
if isinstance(sr, str):
|
||||||
|
return sr
|
||||||
|
if isinstance(sr, dict):
|
||||||
|
parts = [f"{k}: {v}" for k, v in sr.items()]
|
||||||
|
return "; ".join(parts)
|
||||||
|
return str(sr)
|
||||||
|
|
||||||
|
|
||||||
def _determine_core_mode(
|
def _determine_core_mode(
|
||||||
emu_name: str,
|
emu_name: str,
|
||||||
profile: dict,
|
profile: dict,
|
||||||
@@ -35,31 +45,78 @@ def _determine_core_mode(
|
|||||||
|
|
||||||
|
|
||||||
def _enrich_hashes(entry: dict, db: dict) -> None:
|
def _enrich_hashes(entry: dict, db: dict) -> None:
|
||||||
"""Fill missing hash fields from the database."""
|
"""Fill missing sibling hashes from the database, ground-truth preserving.
|
||||||
sha1 = entry.get("sha1", "")
|
|
||||||
md5 = entry.get("md5", "")
|
|
||||||
|
|
||||||
# Hashes can be lists (multi-hash) — use first string value
|
The profile's hashes come from the emulator source code (ground truth).
|
||||||
if isinstance(sha1, list):
|
Any hash of a given file set of bytes is a projection of that same
|
||||||
sha1 = sha1[0] if sha1 else ""
|
ground truth — sha1, md5, crc32 all identify the same bytes. If the
|
||||||
if isinstance(md5, list):
|
profile has ONE ground-truth hash, the DB can supply its siblings.
|
||||||
md5 = md5[0] if md5 else ""
|
|
||||||
|
Lookup order (all are hash-anchored, never name-based):
|
||||||
|
1. SHA1 direct
|
||||||
|
2. MD5 -> SHA1 via indexes.by_md5
|
||||||
|
3. CRC32 -> SHA1 via indexes.by_crc32 (weaker 32-bit anchor,
|
||||||
|
requires size match when profile has size)
|
||||||
|
|
||||||
|
Name-based enrichment is NEVER used: a name alone has no ground-truth
|
||||||
|
anchor, the file in bios/ may not match what the source code expects.
|
||||||
|
|
||||||
|
Multi-hash entries (lists of accepted variants) are left untouched to
|
||||||
|
preserve variant information.
|
||||||
|
"""
|
||||||
|
# Skip multi-hash entries — they express ground truth as "any of these N
|
||||||
|
# variants", enriching with a single sibling would lose that information.
|
||||||
|
for h in ("sha1", "md5", "crc32"):
|
||||||
|
if isinstance(entry.get(h), list):
|
||||||
|
return
|
||||||
|
|
||||||
|
files_db = db.get("files", {})
|
||||||
|
indexes = db.get("indexes", {})
|
||||||
|
|
||||||
record = None
|
record = None
|
||||||
if sha1 and isinstance(sha1, str) and db.get("files"):
|
|
||||||
record = db["files"].get(sha1)
|
# Anchor 1: SHA1 (strongest)
|
||||||
if record is None and md5:
|
sha1 = entry.get("sha1")
|
||||||
by_md5 = db.get("by_md5", {})
|
if sha1 and isinstance(sha1, str):
|
||||||
md5_str = md5 if isinstance(md5, str) else md5[0] if md5 else ""
|
record = files_db.get(sha1)
|
||||||
ref_sha1 = by_md5.get(md5_str.lower()) if md5_str else None
|
|
||||||
if ref_sha1 and db.get("files"):
|
# Anchor 2: MD5 (strong)
|
||||||
record = db["files"].get(ref_sha1)
|
if record is None:
|
||||||
|
md5 = entry.get("md5")
|
||||||
|
if md5 and isinstance(md5, str):
|
||||||
|
by_md5 = indexes.get("by_md5", {})
|
||||||
|
ref = by_md5.get(md5.lower())
|
||||||
|
if ref:
|
||||||
|
ref_sha1 = ref if isinstance(ref, str) else (ref[0] if ref else None)
|
||||||
|
if ref_sha1:
|
||||||
|
record = files_db.get(ref_sha1)
|
||||||
|
|
||||||
|
# Anchor 3: CRC32 (32-bit, collisions theoretically possible).
|
||||||
|
# Require size match when profile has a size to guard against collisions.
|
||||||
|
if record is None:
|
||||||
|
crc = entry.get("crc32")
|
||||||
|
if crc and isinstance(crc, str):
|
||||||
|
by_crc32 = indexes.get("by_crc32", {})
|
||||||
|
ref = by_crc32.get(crc.lower())
|
||||||
|
if ref:
|
||||||
|
ref_sha1 = ref if isinstance(ref, str) else (ref[0] if ref else None)
|
||||||
|
if ref_sha1:
|
||||||
|
candidate = files_db.get(ref_sha1)
|
||||||
|
if candidate is not None:
|
||||||
|
profile_size = entry.get("size")
|
||||||
|
if not profile_size or candidate.get("size") == profile_size:
|
||||||
|
record = candidate
|
||||||
|
|
||||||
if record is None:
|
if record is None:
|
||||||
return
|
return
|
||||||
|
|
||||||
|
# Copy sibling hashes and size from the anchored record.
|
||||||
|
# These are projections of the same ground-truth bytes.
|
||||||
for field in ("sha1", "md5", "sha256", "crc32"):
|
for field in ("sha1", "md5", "sha256", "crc32"):
|
||||||
if not entry.get(field) and record.get(field):
|
if not entry.get(field) and record.get(field):
|
||||||
entry[field] = record[field]
|
entry[field] = record[field]
|
||||||
|
if not entry.get("size") and record.get("size"):
|
||||||
|
entry["size"] = record["size"]
|
||||||
|
|
||||||
|
|
||||||
def _merge_file_into_system(
|
def _merge_file_into_system(
|
||||||
@@ -82,7 +139,7 @@ def _merge_file_into_system(
|
|||||||
existing["_cores"] = existing.get("_cores", set()) | {emu_name}
|
existing["_cores"] = existing.get("_cores", set()) | {emu_name}
|
||||||
sr = file_entry.get("source_ref")
|
sr = file_entry.get("source_ref")
|
||||||
if sr is not None:
|
if sr is not None:
|
||||||
sr_key = str(sr) if not isinstance(sr, str) else sr
|
sr_key = _serialize_source_ref(sr)
|
||||||
existing["_source_refs"] = existing.get("_source_refs", set()) | {sr_key}
|
existing["_source_refs"] = existing.get("_source_refs", set()) | {sr_key}
|
||||||
else:
|
else:
|
||||||
existing.setdefault("_source_refs", set())
|
existing.setdefault("_source_refs", set())
|
||||||
@@ -91,14 +148,41 @@ def _merge_file_into_system(
|
|||||||
for h in ("sha1", "md5", "sha256", "crc32"):
|
for h in ("sha1", "md5", "sha256", "crc32"):
|
||||||
theirs = file_entry.get(h, "")
|
theirs = file_entry.get(h, "")
|
||||||
ours = existing.get(h, "")
|
ours = existing.get(h, "")
|
||||||
if theirs and ours and theirs.lower() != ours.lower():
|
# Skip empty strings
|
||||||
|
if not theirs or theirs == "":
|
||||||
|
continue
|
||||||
|
if not ours or ours == "":
|
||||||
|
existing[h] = theirs
|
||||||
|
continue
|
||||||
|
# Normalize to sets for multi-hash comparison
|
||||||
|
t_list = theirs if isinstance(theirs, list) else [theirs]
|
||||||
|
o_list = ours if isinstance(ours, list) else [ours]
|
||||||
|
t_set = {str(v).lower() for v in t_list}
|
||||||
|
o_set = {str(v).lower() for v in o_list}
|
||||||
|
if not t_set & o_set:
|
||||||
print(
|
print(
|
||||||
f"WARNING: hash conflict for {file_entry['name']} "
|
f"WARNING: hash conflict for {file_entry['name']} "
|
||||||
f"({h}: {ours} vs {theirs}, core {emu_name})",
|
f"({h}: {ours} vs {theirs}, core {emu_name})",
|
||||||
file=sys.stderr,
|
file=sys.stderr,
|
||||||
)
|
)
|
||||||
elif theirs and not ours:
|
# Merge non-hash data fields if existing lacks them.
|
||||||
existing[h] = theirs
|
# A core that creates an entry without size/path/validation may be
|
||||||
|
# enriched by a sibling core that has those fields.
|
||||||
|
for field in (
|
||||||
|
"size",
|
||||||
|
"min_size",
|
||||||
|
"max_size",
|
||||||
|
"path",
|
||||||
|
"validation",
|
||||||
|
"description",
|
||||||
|
"category",
|
||||||
|
"hle_fallback",
|
||||||
|
"note",
|
||||||
|
"aliases",
|
||||||
|
"contents",
|
||||||
|
):
|
||||||
|
if file_entry.get(field) is not None and existing.get(field) is None:
|
||||||
|
existing[field] = file_entry[field]
|
||||||
return
|
return
|
||||||
|
|
||||||
entry: dict = {"name": file_entry["name"]}
|
entry: dict = {"name": file_entry["name"]}
|
||||||
@@ -119,14 +203,25 @@ def _merge_file_into_system(
|
|||||||
"min_size",
|
"min_size",
|
||||||
"max_size",
|
"max_size",
|
||||||
"aliases",
|
"aliases",
|
||||||
|
"contents",
|
||||||
):
|
):
|
||||||
val = file_entry.get(field)
|
val = file_entry.get(field)
|
||||||
if val is not None:
|
if val is not None:
|
||||||
entry[field] = val
|
entry[field] = val
|
||||||
|
# Strip empty string hashes (profile says "" when hash is unknown)
|
||||||
|
for h in ("sha1", "md5", "sha256", "crc32"):
|
||||||
|
if entry.get(h) == "":
|
||||||
|
del entry[h]
|
||||||
|
# Normalize CRC32: strip 0x prefix, lowercase
|
||||||
|
crc = entry.get("crc32")
|
||||||
|
if isinstance(crc, str) and crc.startswith("0x"):
|
||||||
|
entry["crc32"] = crc[2:].lower()
|
||||||
|
elif isinstance(crc, str) and crc != crc.lower():
|
||||||
|
entry["crc32"] = crc.lower()
|
||||||
entry["_cores"] = {emu_name}
|
entry["_cores"] = {emu_name}
|
||||||
sr = file_entry.get("source_ref")
|
sr = file_entry.get("source_ref")
|
||||||
if sr is not None:
|
if sr is not None:
|
||||||
sr_key = str(sr) if not isinstance(sr, str) else sr
|
sr_key = _serialize_source_ref(sr)
|
||||||
entry["_source_refs"] = {sr_key}
|
entry["_source_refs"] = {sr_key}
|
||||||
else:
|
else:
|
||||||
entry["_source_refs"] = set()
|
entry["_source_refs"] = set()
|
||||||
@@ -137,6 +232,23 @@ def _merge_file_into_system(
|
|||||||
files.append(entry)
|
files.append(entry)
|
||||||
|
|
||||||
|
|
||||||
|
def _has_exploitable_data(entry: dict) -> bool:
|
||||||
|
"""Check if an entry has any data beyond its name that can drive verification.
|
||||||
|
|
||||||
|
Applied AFTER merging all cores so entries benefit from enrichment by
|
||||||
|
sibling cores before being judged empty.
|
||||||
|
"""
|
||||||
|
return bool(
|
||||||
|
any(entry.get(h) for h in ("sha1", "md5", "sha256", "crc32"))
|
||||||
|
or entry.get("path")
|
||||||
|
or entry.get("size")
|
||||||
|
or entry.get("min_size")
|
||||||
|
or entry.get("max_size")
|
||||||
|
or entry.get("validation")
|
||||||
|
or entry.get("contents")
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
def generate_platform_truth(
|
def generate_platform_truth(
|
||||||
platform_name: str,
|
platform_name: str,
|
||||||
config: dict,
|
config: dict,
|
||||||
@@ -274,6 +386,15 @@ def generate_platform_truth(
|
|||||||
)
|
)
|
||||||
sys_cov["unprofiled"].add(emu_name)
|
sys_cov["unprofiled"].add(emu_name)
|
||||||
|
|
||||||
|
# Drop files with no exploitable data AFTER all cores have contributed.
|
||||||
|
# A file declared by one core without hash/size/path may be enriched by
|
||||||
|
# another core that has the same entry with data — the filter must run
|
||||||
|
# once at the end, not per-core at creation time.
|
||||||
|
for sys_data in systems.values():
|
||||||
|
files_list = sys_data.get("files", [])
|
||||||
|
if files_list:
|
||||||
|
sys_data["files"] = [fe for fe in files_list if _has_exploitable_data(fe)]
|
||||||
|
|
||||||
# Convert sets to sorted lists for serialization
|
# Convert sets to sorted lists for serialization
|
||||||
for sys_id, sys_data in systems.items():
|
for sys_id, sys_data in systems.items():
|
||||||
for fe in sys_data.get("files", []):
|
for fe in sys_data.get("files", []):
|
||||||
|
|||||||
@@ -994,8 +994,10 @@ class TestE2E(unittest.TestCase):
|
|||||||
groups = group_identical_platforms(
|
groups = group_identical_platforms(
|
||||||
["test_existence", "test_inherited"], self.platforms_dir
|
["test_existence", "test_inherited"], self.platforms_dir
|
||||||
)
|
)
|
||||||
# Different base_destination ->separate groups
|
# With flat ZIPs, base_destination no longer separates groups
|
||||||
self.assertEqual(len(groups), 2)
|
# Platforms with same files (regardless of base_dest) are grouped
|
||||||
|
self.assertEqual(len(groups), 1)
|
||||||
|
self.assertEqual(len(groups[0][0]), 2)
|
||||||
|
|
||||||
def test_51_platform_grouping_same(self):
|
def test_51_platform_grouping_same(self):
|
||||||
# Create two identical platforms
|
# Create two identical platforms
|
||||||
@@ -3093,20 +3095,23 @@ class TestE2E(unittest.TestCase):
|
|||||||
"system": "test-system",
|
"system": "test-system",
|
||||||
"required": True,
|
"required": True,
|
||||||
"mode": "both",
|
"mode": "both",
|
||||||
|
"sha1": "aaaa",
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "lr_only.bin",
|
"name": "lr_only.bin",
|
||||||
"system": "test-system",
|
"system": "test-system",
|
||||||
"required": True,
|
"required": True,
|
||||||
"mode": "libretro",
|
"mode": "libretro",
|
||||||
|
"sha1": "bbbb",
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "sa_only.bin",
|
"name": "sa_only.bin",
|
||||||
"system": "test-system",
|
"system": "test-system",
|
||||||
"required": True,
|
"required": True,
|
||||||
"mode": "standalone",
|
"mode": "standalone",
|
||||||
|
"sha1": "cccc",
|
||||||
},
|
},
|
||||||
{"name": "nomode.bin", "system": "test-system", "required": True},
|
{"name": "nomode.bin", "system": "test-system", "required": True, "sha1": "dddd"},
|
||||||
],
|
],
|
||||||
}
|
}
|
||||||
with open(os.path.join(self.emulators_dir, "dualmode.yml"), "w") as f:
|
with open(os.path.join(self.emulators_dir, "dualmode.yml"), "w") as f:
|
||||||
@@ -3140,12 +3145,14 @@ class TestE2E(unittest.TestCase):
|
|||||||
"system": "test-system",
|
"system": "test-system",
|
||||||
"required": True,
|
"required": True,
|
||||||
"mode": "libretro",
|
"mode": "libretro",
|
||||||
|
"sha1": "aaaa",
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "sa_file.bin",
|
"name": "sa_file.bin",
|
||||||
"system": "test-system",
|
"system": "test-system",
|
||||||
"required": True,
|
"required": True,
|
||||||
"mode": "standalone",
|
"mode": "standalone",
|
||||||
|
"sha1": "bbbb",
|
||||||
},
|
},
|
||||||
],
|
],
|
||||||
}
|
}
|
||||||
@@ -3181,6 +3188,7 @@ class TestE2E(unittest.TestCase):
|
|||||||
"system": "test-system",
|
"system": "test-system",
|
||||||
"required": False,
|
"required": False,
|
||||||
"source_ref": "a.cpp:10",
|
"source_ref": "a.cpp:10",
|
||||||
|
"sha1": "aaaa",
|
||||||
},
|
},
|
||||||
],
|
],
|
||||||
}
|
}
|
||||||
@@ -3195,6 +3203,7 @@ class TestE2E(unittest.TestCase):
|
|||||||
"system": "test-system",
|
"system": "test-system",
|
||||||
"required": True,
|
"required": True,
|
||||||
"source_ref": "b.cpp:20",
|
"source_ref": "b.cpp:20",
|
||||||
|
"sha1": "aaaa",
|
||||||
},
|
},
|
||||||
],
|
],
|
||||||
}
|
}
|
||||||
@@ -3383,10 +3392,17 @@ class TestE2E(unittest.TestCase):
|
|||||||
registry_path,
|
registry_path,
|
||||||
emulators_dir=self.emulators_dir,
|
emulators_dir=self.emulators_dir,
|
||||||
)
|
)
|
||||||
|
# Detect flat vs nested ZIP to build expected paths
|
||||||
base = manifest.get("base_destination", "")
|
base = manifest.get("base_destination", "")
|
||||||
|
is_flat = bool(base) and not any(
|
||||||
|
n.startswith(base + "/") for n in zip_names
|
||||||
|
)
|
||||||
manifest_dests = set()
|
manifest_dests = set()
|
||||||
for f in manifest["files"]:
|
for f in manifest["files"]:
|
||||||
d = f"{base}/{f['dest']}" if base else f["dest"]
|
if base and not is_flat:
|
||||||
|
d = f"{base}/{f['dest']}"
|
||||||
|
else:
|
||||||
|
d = f["dest"]
|
||||||
manifest_dests.add(d)
|
manifest_dests.add(d)
|
||||||
|
|
||||||
self.assertEqual(manifest_dests, zip_names)
|
self.assertEqual(manifest_dests, zip_names)
|
||||||
|
|||||||
58
tests/test_no_case_collisions.py
Normal file
58
tests/test_no_case_collisions.py
Normal file
@@ -0,0 +1,58 @@
|
|||||||
|
from __future__ import annotations
|
||||||
|
|
||||||
|
import os
|
||||||
|
import unittest
|
||||||
|
from collections import defaultdict
|
||||||
|
from pathlib import Path
|
||||||
|
|
||||||
|
|
||||||
|
REPO_ROOT = Path(__file__).resolve().parent.parent
|
||||||
|
BIOS_ROOT = REPO_ROOT / "bios"
|
||||||
|
|
||||||
|
|
||||||
|
class TestNoCaseCollisions(unittest.TestCase):
|
||||||
|
"""Guard against case-colliding paths in bios/.
|
||||||
|
|
||||||
|
On case-insensitive filesystems (Windows, macOS default), git can only
|
||||||
|
check out one path per casefold-equivalence class, silently corrupting
|
||||||
|
clones. Issue #33 and #49 both stemmed from this.
|
||||||
|
|
||||||
|
.variants/ subdirs are exempt: they intentionally hold genuine content
|
||||||
|
variants disambiguated by hash suffix (e.g., BIOS.ROM.910fae67).
|
||||||
|
"""
|
||||||
|
|
||||||
|
def test_bios_has_no_case_colliding_paths(self) -> None:
|
||||||
|
if not BIOS_ROOT.is_dir():
|
||||||
|
self.skipTest("bios/ directory not present")
|
||||||
|
|
||||||
|
collisions: list[str] = []
|
||||||
|
for root, dirs, files in os.walk(BIOS_ROOT):
|
||||||
|
if ".variants" in Path(root).parts:
|
||||||
|
continue
|
||||||
|
|
||||||
|
dir_groups: dict[str, list[str]] = defaultdict(list)
|
||||||
|
for d in dirs:
|
||||||
|
dir_groups[d.casefold()].append(d)
|
||||||
|
for variants in dir_groups.values():
|
||||||
|
if len(variants) > 1:
|
||||||
|
rel = Path(root).relative_to(REPO_ROOT)
|
||||||
|
collisions.append(f"DIR {rel}: {sorted(variants)}")
|
||||||
|
|
||||||
|
file_groups: dict[str, list[str]] = defaultdict(list)
|
||||||
|
for f in files:
|
||||||
|
file_groups[f.casefold()].append(f)
|
||||||
|
for variants in file_groups.values():
|
||||||
|
if len(variants) > 1:
|
||||||
|
rel = Path(root).relative_to(REPO_ROOT)
|
||||||
|
collisions.append(f"FILE {rel}: {sorted(variants)}")
|
||||||
|
|
||||||
|
self.assertEqual(
|
||||||
|
collisions,
|
||||||
|
[],
|
||||||
|
"Case-colliding paths in bios/ would break Windows/macOS clones:\n"
|
||||||
|
+ "\n".join(collisions),
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
|
if __name__ == "__main__":
|
||||||
|
unittest.main()
|
||||||
21
wiki/community-tools.md
Normal file
21
wiki/community-tools.md
Normal file
@@ -0,0 +1,21 @@
|
|||||||
|
# Community tools
|
||||||
|
|
||||||
|
Projects built on RetroBIOS data.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## BIOS Preservation Tool
|
||||||
|
|
||||||
|
**Author:** [monster-penguin](https://github.com/monster-penguin)
|
||||||
|
**Repository:** [github.com/monster-penguin/BIOS-Preservation-Tool](https://github.com/monster-penguin/BIOS-Preservation-Tool)
|
||||||
|
**License:** MIT
|
||||||
|
|
||||||
|
A local tool for managing your own BIOS collection. Point it at your files, it verifies them against RetroBIOS platform YAMLs, stores them in a deduplicated database, and produces ready-to-use directories for each platform. Supports scanning directories, archives, and URLs.
|
||||||
|
|
||||||
|
See the project's [README](https://github.com/monster-penguin/BIOS-Preservation-Tool#readme) for setup and usage.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
!!! note "Add your project"
|
||||||
|
|
||||||
|
Open an issue with a link to your repository.
|
||||||
@@ -7,7 +7,7 @@ Technical documentation for the RetroBIOS toolchain.
|
|||||||
- **[Getting started](getting-started.md)** - installation, BIOS directory paths per platform, verification
|
- **[Getting started](getting-started.md)** - installation, BIOS directory paths per platform, verification
|
||||||
- **[FAQ](faq.md)** - common questions, troubleshooting, hash explanations
|
- **[FAQ](faq.md)** - common questions, troubleshooting, hash explanations
|
||||||
|
|
||||||
If you just want to download BIOS packs, see the [home page](../README.md).
|
If you just want to download BIOS packs, see the [home page](../index.md).
|
||||||
|
|
||||||
## Technical reference
|
## Technical reference
|
||||||
|
|
||||||
@@ -26,7 +26,11 @@ If you just want to download BIOS packs, see the [home page](../README.md).
|
|||||||
- **[Testing guide](testing-guide.md)** - run tests, fixture pattern, how to add tests, CI integration
|
- **[Testing guide](testing-guide.md)** - run tests, fixture pattern, how to add tests, CI integration
|
||||||
- **[Release process](release-process.md)** - CI workflows, large files, manual release
|
- **[Release process](release-process.md)** - CI workflows, large files, manual release
|
||||||
|
|
||||||
See [contributing](../CONTRIBUTING.md) for submission guidelines.
|
See [contributing](../contributing.md) for submission guidelines.
|
||||||
|
|
||||||
|
## Community
|
||||||
|
|
||||||
|
- **[Community tools](community-tools.md)** - projects built on RetroBIOS data
|
||||||
|
|
||||||
## Glossary
|
## Glossary
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user