mirror of
https://github.com/Abdess/retroarch_system.git
synced 2026-04-19 07:12:36 -05:00
Compare commits
8 Commits
d0846ed78f
..
main
| Author | SHA1 | Date | |
|---|---|---|---|
| e90095abd9 | |||
| c8b27cac5e | |||
| 1d191ff190 | |||
| 5a6b54c195 | |||
| e5ef253892 | |||
| 4ba8648ec2 | |||
| 617f5cc364 | |||
| d4ce6df911 |
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.
+15
-50
@@ -1,5 +1,5 @@
|
||||
{
|
||||
"generated_at": "2026-04-02T12:45:07Z",
|
||||
"generated_at": "2026-04-18T07:32:14Z",
|
||||
"total_files": 7302,
|
||||
"total_size": 9190488848,
|
||||
"files": {
|
||||
@@ -30814,8 +30814,8 @@
|
||||
"adler32": "87461161"
|
||||
},
|
||||
"65d07426b520ddd3115d40f255511e0fd2e20ae7": {
|
||||
"path": "bios/GCE/Vectrex/VEC_MineStorm.vec",
|
||||
"name": "VEC_MineStorm.vec",
|
||||
"path": "bios/GCE/Vectrex/VEC_Minestorm.vec",
|
||||
"name": "VEC_Minestorm.vec",
|
||||
"size": 8192,
|
||||
"sha1": "65d07426b520ddd3115d40f255511e0fd2e20ae7",
|
||||
"md5": "ab082fa8c8e632dd68589a8c7741388f",
|
||||
@@ -89077,7 +89077,7 @@
|
||||
"VEC_Bios.bin": [
|
||||
"b9bbf5bb0eac52d039a4a993a2d8064b862c9e28"
|
||||
],
|
||||
"VEC_MineStorm.vec": [
|
||||
"VEC_Minestorm.vec": [
|
||||
"65d07426b520ddd3115d40f255511e0fd2e20ae7"
|
||||
],
|
||||
"CHRGEN.BIN": [
|
||||
@@ -89087,8 +89087,7 @@
|
||||
"aea7a4c0c7ffe1f212f7b9faecfd728862ac6904"
|
||||
],
|
||||
"doom2.wad": [
|
||||
"6d559b7ceece4f5ad457415049711992370d520a",
|
||||
"7ec7652fcfce8ddc6e801839291f0e28ef1d5ae7"
|
||||
"6d559b7ceece4f5ad457415049711992370d520a"
|
||||
],
|
||||
"freedoom1.wad": [
|
||||
"97bb88094a51457a8dcad98c58be22a2d0fa9a37"
|
||||
@@ -101523,27 +101522,6 @@
|
||||
"samesame.zip": [
|
||||
"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": [
|
||||
"db1031585968cfc6ec2ecda5c9a5a52f61444a3b"
|
||||
],
|
||||
@@ -101754,18 +101732,18 @@
|
||||
"kernal.318004-05.bin": [
|
||||
"7c7e07f016391174a557e790c4ef1cbe33512cdb"
|
||||
],
|
||||
"characters-japanese.bin": [
|
||||
"dae61ac03065aa2904af5c123ce821855898c555"
|
||||
],
|
||||
"kernel-japanese.bin": [
|
||||
"c9ead45e6674d1042ca6199160e8583c23aeac22"
|
||||
],
|
||||
"basic.bin": [
|
||||
"587d1e90950675ab6b12d91248a3f0d640d02e8d"
|
||||
],
|
||||
"characters-english.bin": [
|
||||
"4fd85ab6647ee2ac7ba40f729323f2472d35b9b4"
|
||||
],
|
||||
"characters-japanese.bin": [
|
||||
"dae61ac03065aa2904af5c123ce821855898c555"
|
||||
],
|
||||
"kernel-japanese.bin": [
|
||||
"c9ead45e6674d1042ca6199160e8583c23aeac22"
|
||||
],
|
||||
"kernel-ntsc.bin": [
|
||||
"06de7ec017a5e78bd6746d89c2ecebb646efeb19"
|
||||
],
|
||||
@@ -101818,9 +101796,6 @@
|
||||
"sl90025.bin": [
|
||||
"759e2ed31fbde4a2d8daf8b9f3e0dffebc90dae2"
|
||||
],
|
||||
"VEC_Minestorm.vec": [
|
||||
"65d07426b520ddd3115d40f255511e0fd2e20ae7"
|
||||
],
|
||||
"Vectrex_Bios.bin": [
|
||||
"b9bbf5bb0eac52d039a4a993a2d8064b862c9e28"
|
||||
],
|
||||
@@ -101849,15 +101824,6 @@
|
||||
"px-7_basic-bios1.rom": [
|
||||
"302afb5d8be26c758309ca3df611ae69cced2821"
|
||||
],
|
||||
"msx.rom": [
|
||||
"409e82adac40f6bdd18eb6c84e8b2fbdc7fb5498"
|
||||
],
|
||||
"Machines/Shared Roms/MSX.rom": [
|
||||
"409e82adac40f6bdd18eb6c84e8b2fbdc7fb5498"
|
||||
],
|
||||
"msx2.rom": [
|
||||
"6103b39f1e38d1aa2d84b1c3219c44f1abb5436e"
|
||||
],
|
||||
"nms8250_basic-bios2.rom": [
|
||||
"6103b39f1e38d1aa2d84b1c3219c44f1abb5436e"
|
||||
],
|
||||
@@ -101867,9 +101833,6 @@
|
||||
"nms8245_basic-bios2.rom": [
|
||||
"6103b39f1e38d1aa2d84b1c3219c44f1abb5436e"
|
||||
],
|
||||
"msx2ext.rom": [
|
||||
"5c1f9c7fb655e43d38e5dd1fcc6b942b2ff68b02"
|
||||
],
|
||||
"nms8250_msx2sub.rom": [
|
||||
"5c1f9c7fb655e43d38e5dd1fcc6b942b2ff68b02"
|
||||
],
|
||||
@@ -103332,6 +103295,9 @@
|
||||
"EXOS21.ROM": [
|
||||
"55315b20fecb4441a07ee4bc5dc7153f396e0a2e"
|
||||
],
|
||||
"Machines/Shared Roms/MSX.rom": [
|
||||
"409e82adac40f6bdd18eb6c84e8b2fbdc7fb5498"
|
||||
],
|
||||
"sony-playstation:239665b1a3dade1b5a52c06338011044": [
|
||||
"343883a7b555646da8cee54aadd2795b6e7dd070"
|
||||
],
|
||||
@@ -132695,14 +132661,12 @@
|
||||
"81193965a374d77b99b4743d317824b53c3e3c78",
|
||||
"8f70d1b74483ba3a37e86cf16c849d601a8c3d2c",
|
||||
"759e2ed31fbde4a2d8daf8b9f3e0dffebc90dae2",
|
||||
"65d07426b520ddd3115d40f255511e0fd2e20ae7",
|
||||
"5a65b922b562cb1f57dab51b73151283f0e20c7a",
|
||||
"f9608bb4ad1cfe3640d02844c7ad8e0bcd974917",
|
||||
"000ac11b702a4c42e40f135df12fa5f2f13e20a1",
|
||||
"3656bb3bbc17d280d2016fe4f6ff3cded3082a41",
|
||||
"e998f0c441f4f1800ef44e42cd1659150206cf79",
|
||||
"302afb5d8be26c758309ca3df611ae69cced2821",
|
||||
"409e82adac40f6bdd18eb6c84e8b2fbdc7fb5498",
|
||||
"6103b39f1e38d1aa2d84b1c3219c44f1abb5436e",
|
||||
"5c1f9c7fb655e43d38e5dd1fcc6b942b2ff68b02",
|
||||
"5aff2d9b6efc723bc395b0f96f0adfa83cc54a49",
|
||||
@@ -132865,6 +132829,7 @@
|
||||
"9451a1a09d8f75944dbd6f91193fc360f1de80ac",
|
||||
"03bbb386cf530e804363acdfc1d13e64cf28af2e",
|
||||
"55315b20fecb4441a07ee4bc5dc7153f396e0a2e",
|
||||
"409e82adac40f6bdd18eb6c84e8b2fbdc7fb5498",
|
||||
"343883a7b555646da8cee54aadd2795b6e7dd070",
|
||||
"15c94da3cc5a38a582429575af4198c487fe893c",
|
||||
"73107d468fc7cb1d2c5b18b269715dd889ecef06",
|
||||
|
||||
@@ -59,6 +59,7 @@ files:
|
||||
path: sysdata/otp.bin
|
||||
system: nintendo-3ds
|
||||
required: false
|
||||
size: 256
|
||||
validation: [size, crypto]
|
||||
note: "OTP data for console key derivation"
|
||||
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
|
||||
system: nintendo-3ds
|
||||
required: false
|
||||
size: 320
|
||||
validation: [size, signature]
|
||||
note: "console-unique key seed"
|
||||
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
|
||||
system: nintendo-3ds
|
||||
required: false
|
||||
size: 273
|
||||
validation: [size, signature]
|
||||
note: "console serial and region data"
|
||||
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
|
||||
system: nintendo-3ds
|
||||
required: false
|
||||
size: 284
|
||||
validation: [size, signature]
|
||||
note: "friend code generation seed"
|
||||
source_ref: "src/core/hw/unique_data.cpp:94-123, src/core/hw/unique_data.cpp:209"
|
||||
|
||||
+75
-35
@@ -4,7 +4,7 @@ core_classification: official_port
|
||||
source: "https://github.com/libretro/bsnes-libretro"
|
||||
upstream: "https://github.com/bsnes-emu/bsnes"
|
||||
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"
|
||||
display_name: "Nintendo - SNES / SFC (bsnes)"
|
||||
cores: [bsnes]
|
||||
@@ -29,71 +29,91 @@ files:
|
||||
# program ROM: 2048 x 24-bit words, data ROM: 1024 x 16-bit words
|
||||
|
||||
- name: "dsp1.program.rom"
|
||||
size: 6144 # 0x1800
|
||||
system: nintendo-snes
|
||||
size: 6144
|
||||
validation: [size]
|
||||
required: false
|
||||
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"
|
||||
|
||||
- name: "dsp1.data.rom"
|
||||
size: 2048 # 0x800
|
||||
system: nintendo-snes
|
||||
size: 2048
|
||||
validation: [size]
|
||||
required: false
|
||||
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"
|
||||
|
||||
- name: "dsp1b.program.rom"
|
||||
size: 6144 # 0x1800
|
||||
system: nintendo-snes
|
||||
size: 6144
|
||||
validation: [size]
|
||||
required: false
|
||||
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"
|
||||
|
||||
- name: "dsp1b.data.rom"
|
||||
size: 2048 # 0x800
|
||||
system: nintendo-snes
|
||||
size: 2048
|
||||
validation: [size]
|
||||
required: false
|
||||
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"
|
||||
|
||||
- name: "dsp2.program.rom"
|
||||
size: 6144 # 0x1800
|
||||
system: nintendo-snes
|
||||
size: 6144
|
||||
validation: [size]
|
||||
required: false
|
||||
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"
|
||||
|
||||
- name: "dsp2.data.rom"
|
||||
size: 2048 # 0x800
|
||||
system: nintendo-snes
|
||||
size: 2048
|
||||
validation: [size]
|
||||
required: false
|
||||
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"
|
||||
|
||||
- name: "dsp3.program.rom"
|
||||
size: 6144 # 0x1800
|
||||
system: nintendo-snes
|
||||
size: 6144
|
||||
validation: [size]
|
||||
required: true
|
||||
note: "NEC uPD7725 program ROM for DSP3 (SD Gundam GX). No HLE fallback"
|
||||
source_ref: "sfc/cartridge/load.cpp:531-534"
|
||||
|
||||
- name: "dsp3.data.rom"
|
||||
size: 2048 # 0x800
|
||||
system: nintendo-snes
|
||||
size: 2048
|
||||
validation: [size]
|
||||
required: true
|
||||
note: "NEC uPD7725 data ROM for DSP3. No HLE fallback"
|
||||
source_ref: "sfc/cartridge/load.cpp:531-534"
|
||||
|
||||
- name: "dsp4.program.rom"
|
||||
size: 6144 # 0x1800
|
||||
system: nintendo-snes
|
||||
size: 6144
|
||||
validation: [size]
|
||||
required: false
|
||||
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"
|
||||
|
||||
- name: "dsp4.data.rom"
|
||||
size: 2048 # 0x800
|
||||
system: nintendo-snes
|
||||
size: 2048
|
||||
validation: [size]
|
||||
required: false
|
||||
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"
|
||||
|
||||
# -- NEC uPD96050 coprocessor (ST010, ST011) --
|
||||
@@ -101,27 +121,35 @@ files:
|
||||
# program ROM: 16384 x 24-bit words, data ROM: 2048 x 16-bit words
|
||||
|
||||
- name: "st010.program.rom"
|
||||
size: 49152 # 0xC000
|
||||
system: nintendo-snes
|
||||
size: 49152
|
||||
validation: [size]
|
||||
required: false
|
||||
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"
|
||||
|
||||
- name: "st010.data.rom"
|
||||
size: 4096 # 0x1000
|
||||
system: nintendo-snes
|
||||
size: 4096
|
||||
validation: [size]
|
||||
required: false
|
||||
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"
|
||||
|
||||
- name: "st011.program.rom"
|
||||
size: 49152 # 0xC000
|
||||
system: nintendo-snes
|
||||
size: 49152
|
||||
validation: [size]
|
||||
required: true
|
||||
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"
|
||||
|
||||
- name: "st011.data.rom"
|
||||
size: 4096 # 0x1000
|
||||
system: nintendo-snes
|
||||
size: 4096
|
||||
validation: [size]
|
||||
required: true
|
||||
note: "NEC uPD96050 data ROM for ST011. No HLE fallback"
|
||||
source_ref: "sfc/cartridge/load.cpp:599-601"
|
||||
@@ -131,13 +159,17 @@ files:
|
||||
# No HLE fallback exists
|
||||
|
||||
- name: "st018.program.rom"
|
||||
size: 131072 # 0x20000 (128 KB)
|
||||
system: nintendo-snes
|
||||
size: 131072
|
||||
validation: [size]
|
||||
required: true
|
||||
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"
|
||||
|
||||
- name: "st018.data.rom"
|
||||
size: 32768 # 0x8000 (32 KB)
|
||||
system: nintendo-snes
|
||||
size: 32768
|
||||
validation: [size]
|
||||
required: true
|
||||
note: "ARM6 data ROM for ST018. No HLE fallback"
|
||||
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
|
||||
|
||||
- name: "cx4.data.rom"
|
||||
size: 3072 # 0xC00
|
||||
system: nintendo-snes
|
||||
size: 3072
|
||||
sha1: a002f4efba42775a31185d443f3ed1790b0e949a
|
||||
md5: 037ac4296b6b6a5c47c440188d3c72e3
|
||||
crc32: b6e76a6a
|
||||
validation: [size]
|
||||
required: false
|
||||
hle_fallback: true
|
||||
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 --
|
||||
# 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.
|
||||
|
||||
- name: "SGB1.sfc"
|
||||
system: nintendo-super-game-boy
|
||||
required: false
|
||||
note: "Super Game Boy 1 cartridge ROM. Needed to play Game Boy games via SGB mode"
|
||||
source_ref: "target-libretro/libretro.cpp:689,933, target-libretro/libretro_core_options.h:689"
|
||||
note: "Super Game Boy 1 cartridge ROM, loaded when playing .gb/.gbc via SGB mode"
|
||||
source_ref: "target-libretro/libretro.cpp:926-935 (system_dir + sgb_bios), libretro.cpp:509 (core option bsnes_sgb_bios)"
|
||||
|
||||
- name: "SGB2.sfc"
|
||||
system: nintendo-super-game-boy
|
||||
required: false
|
||||
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"
|
||||
note: "Super Game Boy 2 cartridge ROM, uses dedicated oscillator for accurate GB speed"
|
||||
source_ref: "target-libretro/libretro.cpp:926-935 (system_dir + sgb_bios), libretro.cpp:509 (core option bsnes_sgb_bios)"
|
||||
|
||||
# -- BS-X Satellaview BIOS --
|
||||
# Required for loading .bs (BS Memory) format games.
|
||||
# Hardcoded filename in libretro.cpp.
|
||||
|
||||
- name: "BS-X.bin"
|
||||
system: nintendo-satellaview
|
||||
required: true
|
||||
note: "BS-X Satellaview BIOS ROM. Required for .bs games"
|
||||
source_ref: "target-libretro/libretro.cpp:948"
|
||||
note: "BS-X Satellaview BIOS ROM, loaded from system_dir when running .bs games"
|
||||
source_ref: "target-libretro/libretro.cpp:944-951 (system_dir + BS-X.bin hardcoded, .bs extension branch)"
|
||||
|
||||
notes:
|
||||
hle_available: true
|
||||
|
||||
+2
-1
@@ -35,9 +35,10 @@ files:
|
||||
system: nintendo-3ds
|
||||
description: "ARM9 bootrom"
|
||||
required: false
|
||||
size: 65536
|
||||
validation: [size]
|
||||
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
|
||||
path: "Citra/sysdata/shared_font.bin"
|
||||
|
||||
+6
-3
@@ -720,7 +720,8 @@ files:
|
||||
# MSX (machine_name: "MSX")
|
||||
# -------------------------------------------------------
|
||||
- name: msx.rom
|
||||
path: MSX/msx.rom
|
||||
aliases: [MSX.ROM]
|
||||
path: MSX/MSX.ROM
|
||||
description: "Generic MSX BIOS"
|
||||
size: 32768
|
||||
crc32: "94ee12f3"
|
||||
@@ -768,7 +769,8 @@ files:
|
||||
source_ref: "Machines/Utility/ROMCatalogue.cpp:763-769"
|
||||
|
||||
- name: msx2.rom
|
||||
path: MSX/msx2.rom
|
||||
aliases: [MSX2.ROM]
|
||||
path: MSX/MSX2.ROM
|
||||
description: "Generic MSX2 BIOS"
|
||||
size: 32768
|
||||
crc32: "6cdaf3a5"
|
||||
@@ -778,7 +780,8 @@ files:
|
||||
source_ref: "Machines/Utility/ROMCatalogue.cpp:771-778"
|
||||
|
||||
- name: msx2ext.rom
|
||||
path: MSX/msx2ext.rom
|
||||
aliases: [MSX2EXT.ROM]
|
||||
path: MSX/MSX2EXT.ROM
|
||||
description: "MSX2 extension ROM"
|
||||
size: 16384
|
||||
crc32: "66237ecf"
|
||||
|
||||
@@ -53,6 +53,7 @@ files:
|
||||
|
||||
- name: "cromwell_1024.bin"
|
||||
path: "cromwell_1024.bin"
|
||||
size: 1048576
|
||||
validation: [size]
|
||||
required: true
|
||||
note: >
|
||||
|
||||
+16
-16
@@ -244,7 +244,7 @@ files:
|
||||
- name: "fuse/128p-0.rom"
|
||||
system: sinclair-zxspectrum
|
||||
required: true
|
||||
md5: ""
|
||||
|
||||
size: 16384
|
||||
validation: [size]
|
||||
note: "Pentagon 128K/512K/1024 ROM 0. Required for Pentagon machines."
|
||||
@@ -253,7 +253,7 @@ files:
|
||||
- name: "fuse/128p-1.rom"
|
||||
system: sinclair-zxspectrum
|
||||
required: true
|
||||
md5: ""
|
||||
|
||||
size: 16384
|
||||
validation: [size]
|
||||
note: "Pentagon 128K/512K/1024 ROM 1. Required for Pentagon machines."
|
||||
@@ -262,7 +262,7 @@ files:
|
||||
- name: "fuse/trdos.rom"
|
||||
system: sinclair-zxspectrum
|
||||
required: true
|
||||
md5: ""
|
||||
|
||||
size: 16384
|
||||
validation: [size]
|
||||
note: "TR-DOS ROM (Beta 128 disk interface). Used by Pentagon and Scorpion."
|
||||
@@ -271,7 +271,7 @@ files:
|
||||
- name: "fuse/gluck.rom"
|
||||
system: sinclair-zxspectrum
|
||||
required: true
|
||||
md5: ""
|
||||
|
||||
size: 16384
|
||||
validation: [size]
|
||||
note: "Gluck ROM. Required for Pentagon 512K and 1024."
|
||||
@@ -281,7 +281,7 @@ files:
|
||||
- name: "fuse/256s-0.rom"
|
||||
system: sinclair-zxspectrum
|
||||
required: true
|
||||
md5: ""
|
||||
|
||||
size: 16384
|
||||
validation: [size]
|
||||
note: "Scorpion 256K ROM 0. Required for Scorpion machine."
|
||||
@@ -290,7 +290,7 @@ files:
|
||||
- name: "fuse/256s-1.rom"
|
||||
system: sinclair-zxspectrum
|
||||
required: true
|
||||
md5: ""
|
||||
|
||||
size: 16384
|
||||
validation: [size]
|
||||
note: "Scorpion 256K ROM 1. Required for Scorpion machine."
|
||||
@@ -299,7 +299,7 @@ files:
|
||||
- name: "fuse/256s-2.rom"
|
||||
system: sinclair-zxspectrum
|
||||
required: true
|
||||
md5: ""
|
||||
|
||||
size: 16384
|
||||
validation: [size]
|
||||
note: "Scorpion 256K ROM 2. Required for Scorpion machine."
|
||||
@@ -308,7 +308,7 @@ files:
|
||||
- name: "fuse/256s-3.rom"
|
||||
system: sinclair-zxspectrum
|
||||
required: true
|
||||
md5: ""
|
||||
|
||||
size: 16384
|
||||
validation: [size]
|
||||
note: "Scorpion 256K ROM 3 (TR-DOS). Required for Scorpion machine."
|
||||
@@ -318,7 +318,7 @@ files:
|
||||
- name: "fuse/if1-2.rom"
|
||||
system: sinclair-zxspectrum
|
||||
required: false
|
||||
md5: ""
|
||||
|
||||
size: 8192
|
||||
validation: [size]
|
||||
note: "Interface 1 ROM (edition 2). Loaded by peripherals/if1.c:403."
|
||||
@@ -347,7 +347,7 @@ files:
|
||||
- name: "fuse/didaktik80.rom"
|
||||
system: sinclair-zxspectrum
|
||||
required: false
|
||||
md5: ""
|
||||
|
||||
size: 14336
|
||||
validation: [size]
|
||||
note: "Didaktik 80 disk interface ROM. Not embedded."
|
||||
@@ -356,7 +356,7 @@ files:
|
||||
- name: "fuse/opus.rom"
|
||||
system: sinclair-zxspectrum
|
||||
required: false
|
||||
md5: ""
|
||||
|
||||
size: 8192
|
||||
validation: [size]
|
||||
note: "Opus Discovery disk interface ROM. Not embedded."
|
||||
@@ -365,7 +365,7 @@ files:
|
||||
- name: "fuse/mf1.rom"
|
||||
system: sinclair-zxspectrum
|
||||
required: false
|
||||
md5: ""
|
||||
|
||||
size: 8192
|
||||
validation: [size]
|
||||
note: "Multiface 1 ROM. Not embedded."
|
||||
@@ -374,7 +374,7 @@ files:
|
||||
- name: "fuse/mf128.rom"
|
||||
system: sinclair-zxspectrum
|
||||
required: false
|
||||
md5: ""
|
||||
|
||||
size: 8192
|
||||
validation: [size]
|
||||
note: "Multiface 128 ROM. Not embedded."
|
||||
@@ -383,7 +383,7 @@ files:
|
||||
- name: "fuse/mf3.rom"
|
||||
system: sinclair-zxspectrum
|
||||
required: false
|
||||
md5: ""
|
||||
|
||||
size: 8192
|
||||
validation: [size]
|
||||
note: "Multiface 3 ROM. Not embedded."
|
||||
@@ -402,7 +402,7 @@ files:
|
||||
- name: "fuse/ttx2000s.rom"
|
||||
system: sinclair-zxspectrum
|
||||
required: false
|
||||
md5: ""
|
||||
|
||||
size: 8192
|
||||
validation: [size]
|
||||
note: "TTX2000S teletext adapter ROM. Not embedded."
|
||||
@@ -411,7 +411,7 @@ files:
|
||||
- name: "fuse/usource.rom"
|
||||
system: sinclair-zxspectrum
|
||||
required: false
|
||||
md5: ""
|
||||
|
||||
size: 8192
|
||||
validation: [size]
|
||||
note: "Currah uSource ROM. Not embedded."
|
||||
|
||||
@@ -24,7 +24,7 @@ files:
|
||||
hle_fallback: true
|
||||
size: 4096
|
||||
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"
|
||||
note: "FreeBIOS fallback (src/FreeBIOS.h); native needed for Key1 cartridge crypto"
|
||||
|
||||
@@ -35,7 +35,7 @@ files:
|
||||
hle_fallback: true
|
||||
size: 16384
|
||||
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"
|
||||
note: "FreeBIOS fallback (src/FreeBIOS.h); native needed for Key1 init at offset 0x0030"
|
||||
|
||||
@@ -44,6 +44,8 @@ files:
|
||||
description: "NDS firmware image"
|
||||
required: false
|
||||
hle_fallback: true
|
||||
min_size: 262144
|
||||
max_size: 524288
|
||||
validation: [size]
|
||||
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"
|
||||
@@ -55,7 +57,7 @@ files:
|
||||
required: true
|
||||
size: 65536
|
||||
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"
|
||||
|
||||
- name: dsi_bios7.bin
|
||||
@@ -64,7 +66,7 @@ files:
|
||||
required: true
|
||||
size: 65536
|
||||
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"
|
||||
note: "Contains eMMC key-Y at offset 0x8308 for NAND init"
|
||||
|
||||
|
||||
@@ -27,7 +27,7 @@ files:
|
||||
hle_fallback: true
|
||||
size: 16384
|
||||
validation: [size]
|
||||
crc32: "0x1280f0d5"
|
||||
crc32: 1280f0d5
|
||||
source_ref: "src/libretro/config/console.cpp:219, melonDS:src/MemConstants.h:31,36"
|
||||
|
||||
- name: bios9.bin
|
||||
@@ -37,7 +37,7 @@ files:
|
||||
hle_fallback: true
|
||||
size: 4096
|
||||
validation: [size]
|
||||
crc32: "0x2ab23573"
|
||||
crc32: 2ab23573
|
||||
source_ref: "src/libretro/config/console.cpp:220, melonDS:src/MemConstants.h:30,37"
|
||||
|
||||
- name: firmware.bin
|
||||
@@ -55,7 +55,7 @@ files:
|
||||
required: true
|
||||
size: 65536
|
||||
validation: [size]
|
||||
crc32: "0x4316CC42"
|
||||
crc32: 4316cc42
|
||||
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"
|
||||
|
||||
@@ -65,7 +65,7 @@ files:
|
||||
required: true
|
||||
size: 65536
|
||||
validation: [size]
|
||||
crc32: "0xBAE84F6C"
|
||||
crc32: bae84f6c
|
||||
source_ref: "src/libretro/config/console.cpp:338, melonDS:src/MemConstants.h:32,45"
|
||||
|
||||
- name: dsi_firmware.bin
|
||||
|
||||
+3
-1
@@ -65,5 +65,7 @@ files:
|
||||
description: "External NES color palette"
|
||||
required: false
|
||||
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]
|
||||
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."
|
||||
|
||||
+8
-8
@@ -533,7 +533,7 @@ files:
|
||||
|
||||
- name: "U-Boot LEON3"
|
||||
path: "qemu/u-boot.bin"
|
||||
sha1: ""
|
||||
|
||||
required: false
|
||||
note: "U-Boot for LEON3 SPARC board. Not shipped with QEMU, user-supplied."
|
||||
source_ref: "hw/sparc/leon3.c:53"
|
||||
@@ -611,28 +611,28 @@ files:
|
||||
# ========================================================
|
||||
- name: "MIPS BIOS (big-endian)"
|
||||
path: "qemu/mips_bios.bin"
|
||||
sha1: ""
|
||||
|
||||
required: false
|
||||
note: "Default BIOS for big-endian MIPS machines (Malta, MIPSsim, Jazz). Not shipped with QEMU."
|
||||
source_ref: "hw/mips/malta.c:97"
|
||||
|
||||
- name: "MIPS BIOS (little-endian)"
|
||||
path: "qemu/mipsel_bios.bin"
|
||||
sha1: ""
|
||||
|
||||
required: false
|
||||
note: "Default BIOS for little-endian MIPS machines (Malta, MIPSsim, Jazz). Not shipped with QEMU."
|
||||
source_ref: "hw/mips/malta.c:99"
|
||||
|
||||
- name: "Loongson3 BIOS"
|
||||
path: "qemu/bios_loongson3.bin"
|
||||
sha1: ""
|
||||
|
||||
required: false
|
||||
note: "Default BIOS for Loongson3 virtual MIPS machine. Not shipped with QEMU."
|
||||
source_ref: "hw/mips/loongson3_virt.c:63"
|
||||
|
||||
- name: "PMON Fuloong2e"
|
||||
path: "qemu/pmon_2e.bin"
|
||||
sha1: ""
|
||||
|
||||
required: false
|
||||
note: "PMON monitor for Fuloong2e MIPS board. Not shipped with QEMU."
|
||||
source_ref: "hw/mips/fuloong2e.c:58"
|
||||
@@ -642,7 +642,7 @@ files:
|
||||
# ========================================================
|
||||
- name: "Macintosh ROM"
|
||||
path: "qemu/MacROM.bin"
|
||||
sha1: ""
|
||||
|
||||
required: false
|
||||
note: "Apple Macintosh ROM for Quadra 800 emulation. Not shipped with QEMU."
|
||||
source_ref: "hw/m68k/q800.c:62"
|
||||
@@ -652,7 +652,7 @@ files:
|
||||
# ========================================================
|
||||
- name: "Canon A1100 ROM"
|
||||
path: "qemu/canon-a1100-rom1.bin"
|
||||
sha1: ""
|
||||
|
||||
required: false
|
||||
note: "Canon PowerShot A1100 IS DIGIC camera ROM. Not shipped with QEMU."
|
||||
source_ref: "hw/arm/digic_boards.c:131"
|
||||
@@ -702,7 +702,7 @@ files:
|
||||
|
||||
- name: "Virtex ML507 DTB (PPC)"
|
||||
path: "qemu/virtex-ml507.dtb"
|
||||
sha1: ""
|
||||
|
||||
required: false
|
||||
note: "Device tree blob for Xilinx Virtex ML507 PowerPC board. Not shipped with QEMU."
|
||||
source_ref: "hw/ppc/virtex_ml507.c:148"
|
||||
|
||||
@@ -24,36 +24,43 @@ notes: |
|
||||
|
||||
files:
|
||||
- name: kvs1.wav
|
||||
aliases: [KVS1.WAV]
|
||||
description: "KidVid Voice Module audio tape 1 (Smurfs Save the Day)"
|
||||
required: false
|
||||
category: game_data
|
||||
source_ref: "stella/src/emucore/KidVid.cxx:167,182"
|
||||
- name: kvs2.wav
|
||||
aliases: [KVS2.WAV]
|
||||
description: "KidVid Voice Module audio tape 2 (Smurfs Save the Day)"
|
||||
required: false
|
||||
category: game_data
|
||||
source_ref: "stella/src/emucore/KidVid.cxx:167,182"
|
||||
- name: kvs3.wav
|
||||
aliases: [KVS3.WAV]
|
||||
description: "KidVid Voice Module audio tape 3 (Smurfs Save the Day)"
|
||||
required: false
|
||||
category: game_data
|
||||
source_ref: "stella/src/emucore/KidVid.cxx:167,182"
|
||||
- name: kvb1.wav
|
||||
aliases: [KVB1.WAV]
|
||||
description: "KidVid Voice Module audio tape 1 (Berenstain Bears)"
|
||||
required: false
|
||||
category: game_data
|
||||
source_ref: "stella/src/emucore/KidVid.cxx:167,182"
|
||||
- name: kvb2.wav
|
||||
aliases: [KVB2.WAV]
|
||||
description: "KidVid Voice Module audio tape 2 (Berenstain Bears)"
|
||||
required: false
|
||||
category: game_data
|
||||
source_ref: "stella/src/emucore/KidVid.cxx:167,182"
|
||||
- name: kvb3.wav
|
||||
aliases: [KVB3.WAV]
|
||||
description: "KidVid Voice Module audio tape 3 (Berenstain Bears)"
|
||||
required: false
|
||||
category: game_data
|
||||
source_ref: "stella/src/emucore/KidVid.cxx:167,182"
|
||||
- name: kvshared.wav
|
||||
aliases: [KVSHARED.WAV]
|
||||
description: "KidVid Voice Module shared audio samples"
|
||||
required: false
|
||||
category: game_data
|
||||
|
||||
@@ -86,6 +86,9 @@ files:
|
||||
hle_fallback: true
|
||||
embedded: true
|
||||
size: 8192
|
||||
sha1: 79015323128650c742a3694c9429aa91f355905e
|
||||
md5: 57af4ae21d4b705c2991d98ed5c1f7b8
|
||||
crc32: f833d117
|
||||
note: "C64 BASIC V2 ROM. Embedded in core."
|
||||
source_ref: "vice/src/c64/c64rom.h:31"
|
||||
|
||||
@@ -95,6 +98,9 @@ files:
|
||||
hle_fallback: true
|
||||
embedded: true
|
||||
size: 8192
|
||||
sha1: 1d503e56df85a62fee696e7618dc5b4e781df1bb
|
||||
md5: 39065497630802346bce17963f13c092
|
||||
crc32: dbe3e7c7
|
||||
note: "C64 Kernal Rev 3 (default). Embedded in core."
|
||||
source_ref: "vice/src/c64/c64rom.h:52"
|
||||
|
||||
@@ -104,6 +110,9 @@ files:
|
||||
hle_fallback: true
|
||||
embedded: true
|
||||
size: 8192
|
||||
sha1: 87cc04d61fc748b82df09856847bb5c2754a2033
|
||||
md5: 1ae0ea224f2b291dafa2c20b990bb7d4
|
||||
crc32: dce782fa
|
||||
note: "C64 Kernal Rev 1. Embedded in core."
|
||||
source_ref: "vice/src/c64/c64rom.h:50"
|
||||
|
||||
@@ -113,6 +122,9 @@ files:
|
||||
hle_fallback: true
|
||||
embedded: true
|
||||
size: 8192
|
||||
sha1: 0e2e4ee3f2d41f00bed72f9ab588b83e306fdb13
|
||||
md5: 7360b296d64e18b88f6cf52289fd99a1
|
||||
crc32: a5c687b3
|
||||
note: "C64 Kernal Rev 2. Embedded in core."
|
||||
source_ref: "vice/src/c64/c64rom.h:51"
|
||||
|
||||
@@ -122,6 +134,9 @@ files:
|
||||
hle_fallback: true
|
||||
embedded: true
|
||||
size: 8192
|
||||
sha1: 3ad6cc1837c679a11f551ad1cf1a32dd84ace719
|
||||
md5: ddee89b0fed19572da5245ea68ff11b5
|
||||
crc32: 505365d4
|
||||
note: "C64 GS (Games System) Kernal. Embedded in core."
|
||||
source_ref: "vice/src/c64/c64rom.h:53"
|
||||
|
||||
@@ -131,6 +146,9 @@ files:
|
||||
hle_fallback: true
|
||||
embedded: true
|
||||
size: 8192
|
||||
sha1: aa136e91ecf3c5ac64f696b3dbcbfc5ba0871c98
|
||||
md5: 187b8c713b51931e070872bd390b472a
|
||||
crc32: 2c5965d4
|
||||
note: "SX-64 Kernal. Embedded in core."
|
||||
source_ref: "vice/src/c64/c64rom.h:54"
|
||||
|
||||
@@ -140,6 +158,9 @@ files:
|
||||
hle_fallback: true
|
||||
embedded: true
|
||||
size: 8192
|
||||
sha1: 6c4fa9465f6091b174df27dfe679499df447503c
|
||||
md5: da92801e3a03b005b746a4dd0b639c7c
|
||||
crc32: 789c8cc5
|
||||
note: "PET64/Educator64 (4064) Kernal. Embedded in core."
|
||||
source_ref: "vice/src/c64/c64rom.h:55"
|
||||
|
||||
@@ -149,6 +170,9 @@ files:
|
||||
hle_fallback: true
|
||||
embedded: true
|
||||
size: 8192
|
||||
sha1: 4ff0f11e80f4b57430d8f0c3799ed0f0e0f4565d
|
||||
md5: 479553fd53346ec84054f0b1c6237397
|
||||
crc32: 3a9ef6f1
|
||||
note: "C64 Japanese Kernal. Embedded in core."
|
||||
source_ref: "vice/src/c64/c64rom.h:49"
|
||||
|
||||
@@ -158,6 +182,9 @@ files:
|
||||
hle_fallback: true
|
||||
embedded: true
|
||||
size: 4096
|
||||
sha1: adc7c31e18c7c7413d54802ef2f4193da14711aa
|
||||
md5: 12a4202f5331d45af846af6c58fba946
|
||||
crc32: ec4272ee
|
||||
note: "C64 Character Generator ROM (default). Embedded in core."
|
||||
source_ref: "vice/src/c64/c64rom.h:60"
|
||||
|
||||
@@ -167,6 +194,9 @@ files:
|
||||
hle_fallback: true
|
||||
embedded: true
|
||||
size: 4096
|
||||
sha1: 0fad19dbcdb12461c99657b2979dbb5c2e47b527
|
||||
md5: cf32a93c0a693ed359a4f483ef6db53d
|
||||
crc32: 1604f6c1
|
||||
note: "C64 Japanese Character Generator ROM. Embedded in core."
|
||||
source_ref: "vice/src/c64/c64rom.h:61"
|
||||
|
||||
@@ -180,6 +210,9 @@ files:
|
||||
hle_fallback: true
|
||||
embedded: true
|
||||
size: 16384
|
||||
sha1: ceb6e1a1bf7e08eb9cbc651afa29e26adccf38ab
|
||||
md5: 01f6903033b90cd506cde7802ec743c3
|
||||
crc32: ba456b8e
|
||||
note: "C128 Kernal (default international). Embedded in core."
|
||||
source_ref: "vice/src/c128/c128rom.h:103"
|
||||
|
||||
@@ -189,6 +222,9 @@ files:
|
||||
hle_fallback: true
|
||||
embedded: true
|
||||
size: 16384
|
||||
sha1: 3629b3fa28b6a30bcc027b647f26654929ed1b0f
|
||||
md5: 9837409b6bdb7ce055409fa3eb3e9cf0
|
||||
crc32: bff7550b
|
||||
note: "C128 Kernal German. Embedded in core."
|
||||
source_ref: "vice/src/c128/c128rom.h:105"
|
||||
|
||||
@@ -198,6 +234,9 @@ files:
|
||||
hle_fallback: true
|
||||
embedded: true
|
||||
size: 16384
|
||||
sha1: 98c34e0dec9f52d7862b56bb287d2573eb3f6364
|
||||
md5: 90907477d39db1b8fe1732692278a0e9
|
||||
crc32: d311dab1
|
||||
note: "C128 Kernal Swiss. Embedded in core."
|
||||
source_ref: "vice/src/c128/c128rom.h:104"
|
||||
|
||||
@@ -207,6 +246,9 @@ files:
|
||||
hle_fallback: true
|
||||
embedded: true
|
||||
size: 16384
|
||||
sha1: 925177c99ee7e02870c32ad62a054db1327cf0c2
|
||||
md5: 7852922295c103f067ba3c0f56378a95
|
||||
crc32: 1cf7f729
|
||||
note: "C128 Kernal Swedish. Embedded in core."
|
||||
source_ref: "vice/src/c128/c128rom.h:110"
|
||||
|
||||
@@ -216,6 +258,9 @@ files:
|
||||
hle_fallback: true
|
||||
embedded: true
|
||||
size: 16384
|
||||
sha1: d08e7991a6df14a843e92daafaf6756337959ba4
|
||||
md5: 0a0eb549ec08624de11cf1f249f6f3dc
|
||||
crc32: d3ecea84
|
||||
note: "C128 Kernal Finnish (unidentified part number). Embedded in core."
|
||||
source_ref: "vice/src/c128/c128rom.h:106"
|
||||
|
||||
@@ -225,6 +270,9 @@ files:
|
||||
hle_fallback: true
|
||||
embedded: true
|
||||
size: 16384
|
||||
sha1: a0680d04db3232fa9f58598e5c9f09c4fe94f601
|
||||
md5: 7a7747aa70fd63402c6a95fba0bd6806
|
||||
crc32: 2df282b8
|
||||
note: "C128 Kernal French (unidentified part number). Embedded in core."
|
||||
source_ref: "vice/src/c128/c128rom.h:107"
|
||||
|
||||
@@ -234,6 +282,9 @@ files:
|
||||
hle_fallback: true
|
||||
embedded: true
|
||||
size: 16384
|
||||
sha1: 592a626eb2b5372596ac374d3505c3ce78dd040f
|
||||
md5: 142c8bd5934e9d97addb6776a2f2e8b8
|
||||
crc32: 74d6b084
|
||||
note: "C128 Kernal Italian (unidentified part number). Embedded in core."
|
||||
source_ref: "vice/src/c128/c128rom.h:108"
|
||||
|
||||
@@ -243,6 +294,9 @@ files:
|
||||
hle_fallback: true
|
||||
embedded: true
|
||||
size: 16384
|
||||
sha1: 00fe2fd610a812121befab1e7238fa882c0f8257
|
||||
md5: 498fdedaeab458931b6103d52d5a3ea1
|
||||
crc32: a5406848
|
||||
note: "C128 Kernal Norwegian (unidentified part number). Embedded in core."
|
||||
source_ref: "vice/src/c128/c128rom.h:109"
|
||||
|
||||
@@ -252,6 +306,9 @@ files:
|
||||
hle_fallback: true
|
||||
embedded: true
|
||||
size: 16384
|
||||
sha1: d53a7884404f7d18ebd60dd3080c8f8d71067441
|
||||
md5: b86ce827c9108fbc7b9e02c690e81a23
|
||||
crc32: 9f9c355b
|
||||
note: "C128 BASIC low (BASIC part). Embedded in core."
|
||||
source_ref: "vice/src/c128/c128rom.h:115"
|
||||
|
||||
@@ -261,6 +318,9 @@ files:
|
||||
hle_fallback: true
|
||||
embedded: true
|
||||
size: 16384
|
||||
sha1: c4fb4a714e48a7bf6c28659de0302183a0e0d6c0
|
||||
md5: 87bb251707d0a2c915d6e0c69fdb0fed
|
||||
crc32: 6e2c91a7
|
||||
note: "C128 BASIC high (Editor part). Embedded in core."
|
||||
source_ref: "vice/src/c128/c128rom.h:116"
|
||||
|
||||
@@ -288,6 +348,9 @@ files:
|
||||
hle_fallback: true
|
||||
embedded: true
|
||||
size: 8192
|
||||
sha1: b4862cac7b9319d8e912887c97fc270d4c239349
|
||||
md5: 8fa940c39225d40f37ddf7082fba8b21
|
||||
crc32: dd2976d2
|
||||
note: "C128 C64-mode Kernal Norwegian. Embedded in core."
|
||||
source_ref: "vice/src/c128/c128rom.h:136"
|
||||
|
||||
@@ -297,6 +360,9 @@ files:
|
||||
hle_fallback: true
|
||||
embedded: true
|
||||
size: 8192
|
||||
sha1: e4f52d9b36c030eb94524eb49f6f0774c1d02e5e
|
||||
md5: 27e26dbb267c8ebf1cd47105a6ca71e7
|
||||
crc32: f10c2c25
|
||||
note: "C128 C64-mode Kernal Swedish. Embedded in core."
|
||||
source_ref: "vice/src/c128/c128rom.h:137"
|
||||
|
||||
@@ -306,6 +372,9 @@ files:
|
||||
hle_fallback: true
|
||||
embedded: true
|
||||
size: 8192
|
||||
sha1: 29ed066d513f2d5c09ff26d9166ba23c2afb2b3f
|
||||
md5: 46b3cb2140f244c0ed1150c819e7bdc4
|
||||
crc32: 6aaaafe6
|
||||
note: "C128 Character Generator (default international). Embedded in core."
|
||||
source_ref: "vice/src/c128/c128rom.h:92"
|
||||
|
||||
@@ -315,6 +384,9 @@ files:
|
||||
hle_fallback: true
|
||||
embedded: true
|
||||
size: 8192
|
||||
sha1: 638f8aff51c2ac4f99a55b12c4f8c985ef4bebd3
|
||||
md5: ec9e71614010c4efb851b83bcd685e9c
|
||||
crc32: fe5a2db1
|
||||
note: "C128 Character Generator German. Embedded in core."
|
||||
source_ref: "vice/src/c128/c128rom.h:95"
|
||||
|
||||
@@ -324,6 +396,9 @@ files:
|
||||
hle_fallback: true
|
||||
embedded: true
|
||||
size: 8192
|
||||
sha1: 9119b27a1bf885fa4c76fff5d858c74c194dd2b8
|
||||
md5: de3e110a48de76457dbc9ad320e2caa5
|
||||
crc32: bad36b88
|
||||
note: "C128 Character Generator Italian/French/Belgian. Embedded in core."
|
||||
source_ref: "vice/src/c128/c128rom.h:93"
|
||||
|
||||
@@ -333,6 +408,9 @@ files:
|
||||
hle_fallback: true
|
||||
embedded: true
|
||||
size: 8192
|
||||
sha1: 70eccd8b944146f6b60f1519b830a4ee8928d4fa
|
||||
md5: 5cc3635e434fdc7023d0035e965ce76f
|
||||
crc32: c8def186
|
||||
note: "C128 Character Generator Swiss. Embedded in core."
|
||||
source_ref: "vice/src/c128/c128rom.h:94"
|
||||
|
||||
@@ -342,6 +420,9 @@ files:
|
||||
hle_fallback: true
|
||||
embedded: true
|
||||
size: 8192
|
||||
sha1: 5a87faa457979e7b6f434251a9e32f4483b337b3
|
||||
md5: 7eead22a114154c809b33320c9250e26
|
||||
crc32: ba95c625
|
||||
note: "C128 Character Generator Norwegian. Embedded in core."
|
||||
source_ref: "vice/src/c128/c128rom.h:99"
|
||||
|
||||
@@ -351,6 +432,9 @@ files:
|
||||
hle_fallback: true
|
||||
embedded: true
|
||||
size: 8192
|
||||
sha1: aca3f7321ee7e6152f1f0afad646ae41964de4fb
|
||||
md5: 06e46af13d13aa869218275e64d48b00
|
||||
crc32: 7a70d9b8
|
||||
note: "C128 Character Generator Finnish/Swedish. Embedded in core."
|
||||
source_ref: "vice/src/c128/c128rom.h:96"
|
||||
|
||||
@@ -364,6 +448,9 @@ files:
|
||||
hle_fallback: true
|
||||
embedded: true
|
||||
size: 2097152
|
||||
sha1: 72b4c8da075646cc9940e4377004c81192c7b0b1
|
||||
md5: d6efbc538195f53cfc209543640cde71
|
||||
crc32: 242daa5a
|
||||
note: "C64 DTV flash ROM (2 MB). Contains kernal, basic, chargen. Embedded in core."
|
||||
source_ref: "vice/src/c64dtv/c64dtvflash.c:59-64"
|
||||
|
||||
@@ -373,6 +460,9 @@ files:
|
||||
hle_fallback: true
|
||||
embedded: true
|
||||
size: 8192
|
||||
sha1: 79015323128650c742a3694c9429aa91f355905e
|
||||
md5: 57af4ae21d4b705c2991d98ed5c1f7b8
|
||||
crc32: f833d117
|
||||
note: "C64 BASIC V2 ROM (DTV copy). Embedded in core."
|
||||
source_ref: "vice/data/C64DTV/"
|
||||
|
||||
@@ -382,6 +472,9 @@ files:
|
||||
hle_fallback: true
|
||||
embedded: true
|
||||
size: 4096
|
||||
sha1: adc7c31e18c7c7413d54802ef2f4193da14711aa
|
||||
md5: 12a4202f5331d45af846af6c58fba946
|
||||
crc32: ec4272ee
|
||||
note: "C64 Character Generator (DTV copy). Embedded in core."
|
||||
source_ref: "vice/data/C64DTV/"
|
||||
|
||||
@@ -391,6 +484,9 @@ files:
|
||||
hle_fallback: true
|
||||
embedded: true
|
||||
size: 8192
|
||||
sha1: 1d503e56df85a62fee696e7618dc5b4e781df1bb
|
||||
md5: 39065497630802346bce17963f13c092
|
||||
crc32: dbe3e7c7
|
||||
note: "C64 Kernal Rev 3 (DTV copy). Embedded in core."
|
||||
source_ref: "vice/data/C64DTV/"
|
||||
|
||||
@@ -404,6 +500,9 @@ files:
|
||||
hle_fallback: true
|
||||
embedded: true
|
||||
size: 8192
|
||||
sha1: 587d1e90950675ab6b12d91248a3f0d640d02e8d
|
||||
md5: 8b9237706f47a9b3498d8f881ef0244d
|
||||
crc32: db4c43c1
|
||||
note: "VIC-20 BASIC ROM. Embedded in core."
|
||||
source_ref: "vice/src/vic20/vic20rom.h:43"
|
||||
|
||||
@@ -413,6 +512,9 @@ files:
|
||||
hle_fallback: true
|
||||
embedded: true
|
||||
size: 8192
|
||||
sha1: ce0137ed69f003a299f43538fa9eee27898e621e
|
||||
md5: f0587624dcd7685710a8fdb35939617f
|
||||
crc32: 4be07cb4
|
||||
note: "VIC-20 Kernal PAL (default). Embedded in core."
|
||||
source_ref: "vice/src/vic20/vic20rom.h:53"
|
||||
|
||||
@@ -422,6 +524,9 @@ files:
|
||||
hle_fallback: true
|
||||
embedded: true
|
||||
size: 8192
|
||||
sha1: 06de7ec017a5e78bd6746d89c2ecebb646efeb19
|
||||
md5: 0313e31e5f31e1f739c2377792460d67
|
||||
crc32: e5e7c174
|
||||
note: "VIC-20 Kernal NTSC. Embedded in core."
|
||||
source_ref: "vice/src/vic20/vic20rom.h:52"
|
||||
|
||||
@@ -431,6 +536,9 @@ files:
|
||||
hle_fallback: true
|
||||
embedded: true
|
||||
size: 8192
|
||||
sha1: c9ead45e6674d1042ca6199160e8583c23aeac22
|
||||
md5: 317f93bcbc5ee15da085a51a306f2c61
|
||||
crc32: 336900d7
|
||||
note: "VIC-20 Kernal Japanese NTSC Rev 2. Embedded in core."
|
||||
source_ref: "vice/src/vic20/vic20rom.h:51"
|
||||
|
||||
@@ -440,6 +548,9 @@ files:
|
||||
hle_fallback: true
|
||||
embedded: true
|
||||
size: 4096
|
||||
sha1: 4fd85ab6647ee2ac7ba40f729323f2472d35b9b4
|
||||
md5: d390e340e94e1bef0f2fdfe9fa850993
|
||||
crc32: 83e032a6
|
||||
note: "VIC-20 Character Generator (default). Embedded in core."
|
||||
source_ref: "vice/src/vic20/vic20rom.h:56"
|
||||
|
||||
@@ -449,6 +560,9 @@ files:
|
||||
hle_fallback: true
|
||||
embedded: true
|
||||
size: 4096
|
||||
sha1: dae61ac03065aa2904af5c123ce821855898c555
|
||||
md5: 7e6e41b5b60fec798743afd7063b42ed
|
||||
crc32: fcfd8a4b
|
||||
note: "VIC-20 Japanese Character Generator. Embedded in core."
|
||||
source_ref: "vice/src/vic20/vic20rom.h:57"
|
||||
|
||||
@@ -462,6 +576,9 @@ files:
|
||||
hle_fallback: true
|
||||
embedded: true
|
||||
size: 16384
|
||||
sha1: 161c96b4ad20f3a4f2321808e37a5ded26a135dd
|
||||
md5: 44a4ae400e3b4f7533a47ae0df1be78c
|
||||
crc32: 74eaae87
|
||||
note: "Plus/4 BASIC ROM. Embedded in core."
|
||||
source_ref: "vice/src/plus4/plus4rom.h:33"
|
||||
|
||||
@@ -471,6 +588,9 @@ files:
|
||||
hle_fallback: true
|
||||
embedded: true
|
||||
size: 16384
|
||||
sha1: 7c7e07f016391174a557e790c4ef1cbe33512cdb
|
||||
md5: 89f5263665a8dc10c8f8abc38f5f7eb9
|
||||
crc32: 71c07bd4
|
||||
note: "Plus/4 Kernal PAL Rev 5 (default PAL). Embedded in core."
|
||||
source_ref: "vice/src/plus4/plus4rom.h:36"
|
||||
|
||||
@@ -480,6 +600,9 @@ files:
|
||||
hle_fallback: true
|
||||
embedded: true
|
||||
size: 16384
|
||||
sha1: a3d9e5be091b98de39a046ab167fb7632d053682
|
||||
md5: b3c450c36a88b491281d18fdf3e94ab0
|
||||
crc32: 70295038
|
||||
note: "Plus/4 Kernal NTSC Rev 5 (default NTSC). Embedded in core."
|
||||
source_ref: "vice/src/plus4/plus4rom.h:37"
|
||||
|
||||
@@ -489,6 +612,9 @@ files:
|
||||
hle_fallback: true
|
||||
embedded: true
|
||||
size: 16384
|
||||
sha1: 3c77caf72914c1c0a0875b3a7f6935cd30c54201
|
||||
md5: a213823557421b66f9813ff19af48c01
|
||||
crc32: dbdc3319
|
||||
note: "Plus/4 Kernal NTSC Rev 1 (V232 prototype). Embedded in core."
|
||||
source_ref: "vice/src/plus4/plus4rom.h:35"
|
||||
|
||||
@@ -498,6 +624,9 @@ files:
|
||||
hle_fallback: true
|
||||
embedded: true
|
||||
size: 16384
|
||||
sha1: b9a5b5dacd57ca117ef0b3af29e91998bf4d7e5f
|
||||
md5: 7abb51257595b233a1a63ae58c330a65
|
||||
crc32: 84fd4f7a
|
||||
note: "Commodore 364 prototype Kernal. Embedded in core."
|
||||
source_ref: "vice/src/plus4/plus4rom.h:38"
|
||||
|
||||
@@ -507,6 +636,9 @@ files:
|
||||
hle_fallback: true
|
||||
embedded: true
|
||||
size: 16384
|
||||
sha1: 3b69f6e7cb4c18bb08e203fb18b7dabfa853390f
|
||||
md5: 2994d5463ef8524deb4231a9c764767c
|
||||
crc32: 4fd1d8cb
|
||||
note: "3-Plus-1 software ROM low. Embedded in core."
|
||||
source_ref: "vice/src/plus4/plus4rom.h:40"
|
||||
|
||||
@@ -516,6 +648,9 @@ files:
|
||||
hle_fallback: true
|
||||
embedded: true
|
||||
size: 16384
|
||||
sha1: 0ad7ac2db7da692d972e586ca0dfd747d82c7693
|
||||
md5: ac34591c820fe607d527e04e95bce465
|
||||
crc32: 109de2fc
|
||||
note: "3-Plus-1 software ROM high. Embedded in core."
|
||||
source_ref: "vice/src/plus4/plus4rom.h:41"
|
||||
|
||||
@@ -525,6 +660,9 @@ files:
|
||||
hle_fallback: true
|
||||
embedded: true
|
||||
size: 16384
|
||||
sha1: 59af401cbb2194f689898271c6e8aafa28a7af11
|
||||
md5: 0073ace3874a2c5ca5de9cf64cdfbbd4
|
||||
crc32: 5227c2ee
|
||||
note: "Commodore 364 prototype function ROM low. Embedded in core."
|
||||
source_ref: "vice/src/plus4/plus4rom.h:43"
|
||||
|
||||
@@ -538,6 +676,9 @@ files:
|
||||
hle_fallback: true
|
||||
embedded: true
|
||||
size: 8192
|
||||
sha1: 3be9cd41b646fefa00d80f1c3433a06146e97c59
|
||||
md5: f328e785835907006604423222db7bbf
|
||||
crc32: aff78300
|
||||
note: "PET BASIC 1.0 ROM (PET 2001). Embedded in core."
|
||||
source_ref: "vice/src/pet/petrom.h:55"
|
||||
|
||||
@@ -547,6 +688,9 @@ files:
|
||||
hle_fallback: true
|
||||
embedded: true
|
||||
size: 8192
|
||||
sha1: 9322a9f0354b9049847d98d3a045fbec860a6264
|
||||
md5: b69739387bebe999227ae0cf25aa1e91
|
||||
crc32: cf35e68b
|
||||
note: "PET BASIC 2.0 ROM. Embedded in core."
|
||||
source_ref: "vice/src/pet/petrom.h:56"
|
||||
|
||||
@@ -556,6 +700,9 @@ files:
|
||||
hle_fallback: true
|
||||
embedded: true
|
||||
size: 12288
|
||||
sha1: d70bec479e1e3a0d0908a4897066e9959bbc11c8
|
||||
md5: d22d2a1912a0cdbd9e7c8b103541b2c6
|
||||
crc32: 2a940f0a
|
||||
note: "PET BASIC 4.0 ROM. Embedded in core."
|
||||
source_ref: "vice/src/pet/petrom.h:57"
|
||||
|
||||
@@ -565,6 +712,9 @@ files:
|
||||
hle_fallback: true
|
||||
embedded: true
|
||||
size: 4096
|
||||
sha1: 32dc08828e88c74d6433156e64d402b564556308
|
||||
md5: 61b7e2fd04d63b0702951ba40899cd72
|
||||
crc32: f0186492
|
||||
note: "PET Kernal 1.0 (PET 2001). Embedded in core."
|
||||
source_ref: "vice/src/pet/petrom.h:51"
|
||||
|
||||
@@ -574,6 +724,9 @@ files:
|
||||
hle_fallback: true
|
||||
embedded: true
|
||||
size: 4096
|
||||
sha1: 38742bdf449f629bcba6276ef24d3daeb7da6e84
|
||||
md5: 51a38bfef8f9e72cb64bf7d874b4c8c6
|
||||
crc32: f02238e2
|
||||
note: "PET Kernal 2.0. Embedded in core."
|
||||
source_ref: "vice/src/pet/petrom.h:52"
|
||||
|
||||
@@ -583,6 +736,9 @@ files:
|
||||
hle_fallback: true
|
||||
embedded: true
|
||||
size: 4096
|
||||
sha1: 96a0fa56e0c937da92971d9c99d504e44e898806
|
||||
md5: 16ec21443ea5431ab63d511061054e6f
|
||||
crc32: cc5298a1
|
||||
note: "PET Kernal 4.0. Embedded in core."
|
||||
source_ref: "vice/src/pet/petrom.h:53"
|
||||
|
||||
@@ -592,6 +748,9 @@ files:
|
||||
hle_fallback: true
|
||||
embedded: true
|
||||
size: 2048
|
||||
sha1: f02f5fb492ba93dbbd390f24c10f7a832dec432a
|
||||
md5: ef9bd0e62dfc47eb463fef20d0344826
|
||||
crc32: 9e1c5cea
|
||||
note: "PET Editor 1.0 Normal (graphics keyboard). Embedded in core."
|
||||
source_ref: "vice/src/pet/petrom.h:59"
|
||||
|
||||
@@ -601,6 +760,9 @@ files:
|
||||
hle_fallback: true
|
||||
embedded: true
|
||||
size: 2048
|
||||
sha1: 5e5502ce32f5a7e387d65efe058916282041e54b
|
||||
md5: cb8e8404c0b28eda10469792dfd1dbc2
|
||||
crc32: e459ab32
|
||||
note: "PET Editor 2.0 Normal (graphics keyboard). Embedded in core."
|
||||
source_ref: "vice/src/pet/petrom.h:60"
|
||||
|
||||
@@ -610,6 +772,9 @@ files:
|
||||
hle_fallback: true
|
||||
embedded: true
|
||||
size: 2048
|
||||
sha1: 174ace3a8c0348cd21d39cc864e2adc58b0101a9
|
||||
md5: 7f87889ca7ee2537f0c1993d35d0fb18
|
||||
crc32: 05db957e
|
||||
note: "PET Editor 2.0 Business keyboard. Embedded in core."
|
||||
source_ref: "vice/src/pet/petrom.h:61"
|
||||
|
||||
@@ -619,6 +784,9 @@ files:
|
||||
hle_fallback: true
|
||||
embedded: true
|
||||
size: 2048
|
||||
sha1: 05af284c914d53a52987b5f602466de75765f650
|
||||
md5: b76d756e7ac8752ae0035f3ce5f1383c
|
||||
crc32: 3370e359
|
||||
note: "PET Editor 4.0, 40 col, Normal keyboard, 50Hz. Embedded in core."
|
||||
source_ref: "vice/src/pet/petrom.h:62"
|
||||
|
||||
@@ -628,6 +796,9 @@ files:
|
||||
hle_fallback: true
|
||||
embedded: true
|
||||
size: 2048
|
||||
sha1: 9f91fbabfdd532d003d2508f399574ba8ec6ee5f
|
||||
md5: 8e69e040489098522846b1b1c63682c2
|
||||
crc32: 16fb070c
|
||||
note: "PET Editor 4.0, 40 col, Business keyboard, 50Hz. Embedded in core."
|
||||
source_ref: "vice/src/pet/petrom.h:65"
|
||||
|
||||
@@ -637,6 +808,9 @@ files:
|
||||
hle_fallback: true
|
||||
embedded: true
|
||||
size: 2048
|
||||
sha1: 81975eab31a8f4f51ae2a20d099a567c7b3f2dd1
|
||||
md5: 3a0e2ef328040aa30b30a8134426879a
|
||||
crc32: 845a44e6
|
||||
note: "PET Editor 4.0, 80 col, Business keyboard, 50Hz. Embedded in core."
|
||||
source_ref: "vice/src/pet/petrom.h:63"
|
||||
|
||||
@@ -646,6 +820,9 @@ files:
|
||||
hle_fallback: true
|
||||
embedded: true
|
||||
size: 2048
|
||||
sha1: 3e067cc621e4beafca2b90cb8f6dba975df2855b
|
||||
md5: 29a82eb54e73ebc5673c718c489b174b
|
||||
crc32: 54f32f45
|
||||
note: "PET Character Generator 1 (original PET 2001). Embedded in core."
|
||||
source_ref: "vice/src/pet/petrom.h:46"
|
||||
|
||||
@@ -655,6 +832,9 @@ files:
|
||||
hle_fallback: true
|
||||
embedded: true
|
||||
size: 2048
|
||||
sha1: 0157a2d55b7ac4eaeb38475889ebeea52e2593db
|
||||
md5: 9880432e633b15998d58884ff34c4e70
|
||||
crc32: d8408674
|
||||
note: "PET Character Generator 2. Embedded in core."
|
||||
source_ref: "vice/src/pet/petrom.h:47"
|
||||
|
||||
@@ -664,6 +844,9 @@ files:
|
||||
hle_fallback: true
|
||||
embedded: true
|
||||
size: 4096
|
||||
sha1: bf346f11595a3e65e55d6aeeaa2c0cec807b66c7
|
||||
md5: dd30641d9e6a221edd725d1e529dcbdb
|
||||
crc32: ee8229c4
|
||||
note: "SuperPET Character Generator. Embedded in core."
|
||||
source_ref: "vice/src/pet/petrom.h:48"
|
||||
|
||||
@@ -673,6 +856,9 @@ files:
|
||||
hle_fallback: true
|
||||
embedded: true
|
||||
size: 4096
|
||||
sha1: 0414b3ab847c8977eb05c2fcc72efcf2f9d92871
|
||||
md5: 6eb1c1bfa6ce1444737794432966dfcc
|
||||
crc32: 728a998b
|
||||
note: "SuperPET Waterloo microEngine 6809 ROM at $A000. Embedded in core."
|
||||
source_ref: "vice/src/pet/petrom.h:75"
|
||||
|
||||
@@ -682,6 +868,9 @@ files:
|
||||
hle_fallback: true
|
||||
embedded: true
|
||||
size: 4096
|
||||
sha1: df154939b934d0aeeb376813ec1ba0d43c2a3378
|
||||
md5: 537498d75ecf761d4991f9ebd85129ca
|
||||
crc32: 6beb7c62
|
||||
note: "SuperPET Waterloo microEngine 6809 ROM at $B000. Embedded in core."
|
||||
source_ref: "vice/src/pet/petrom.h:76"
|
||||
|
||||
@@ -691,6 +880,9 @@ files:
|
||||
hle_fallback: true
|
||||
embedded: true
|
||||
size: 4096
|
||||
sha1: 6c5b0cce97068f8841112ba6d5cd8e568b562fa3
|
||||
md5: 3e8dd04902dc9fee172084698f84695f
|
||||
crc32: 5db4983d
|
||||
note: "SuperPET Waterloo microEngine 6809 ROM at $C000. Embedded in core."
|
||||
source_ref: "vice/src/pet/petrom.h:77"
|
||||
|
||||
@@ -700,6 +892,9 @@ files:
|
||||
hle_fallback: true
|
||||
embedded: true
|
||||
size: 4096
|
||||
sha1: b42a2050a319a1ffca7868a8d8d635fadd37ec37
|
||||
md5: 80f4d2351ee19673820989919c7c1e9b
|
||||
crc32: f55fc559
|
||||
note: "SuperPET Waterloo microEngine 6809 ROM at $D000. Embedded in core."
|
||||
source_ref: "vice/src/pet/petrom.h:78"
|
||||
|
||||
@@ -709,6 +904,9 @@ files:
|
||||
hle_fallback: true
|
||||
embedded: true
|
||||
size: 2048
|
||||
sha1: e8ce8347451a001214a5e71a13081b38b4be23bc
|
||||
md5: a740ff5d0d1132ab18cfc1974fca908d
|
||||
crc32: b2cee903
|
||||
note: "SuperPET Waterloo microEngine 6809 ROM at $E000. Embedded in core."
|
||||
source_ref: "vice/src/pet/petrom.h:79"
|
||||
|
||||
@@ -718,6 +916,9 @@ files:
|
||||
hle_fallback: true
|
||||
embedded: true
|
||||
size: 4096
|
||||
sha1: 9b4a5134d20345171e7303445f87c4e0b9addc96
|
||||
md5: 049e2d26fde71a741f6075ecbf0a432d
|
||||
crc32: f42df0cb
|
||||
note: "SuperPET Waterloo microEngine 6809 ROM at $F000. Embedded in core."
|
||||
source_ref: "vice/src/pet/petrom.h:80"
|
||||
|
||||
@@ -731,6 +932,9 @@ files:
|
||||
hle_fallback: true
|
||||
embedded: true
|
||||
size: 16384
|
||||
sha1: 9409f92e167984096fe4d5913714bff6214c3b2d
|
||||
md5: 3ad5c7182006bcad1597583dbc8505c9
|
||||
crc32: a8ff9372
|
||||
note: "CBM-II BASIC 128 (CBM 610/620/710/720). Embedded in core."
|
||||
source_ref: "vice/src/cbm2/cbm2rom.h:41"
|
||||
|
||||
@@ -740,6 +944,9 @@ files:
|
||||
hle_fallback: true
|
||||
embedded: true
|
||||
size: 16384
|
||||
sha1: 53314b4d565cc405a67a0936b935e6e08955580d
|
||||
md5: 6a505014e543c62e99668080a3b80b40
|
||||
crc32: 5db15870
|
||||
note: "CBM-II BASIC 256 (CBM 710/720 with 256K). Embedded in core."
|
||||
source_ref: "vice/src/cbm2/cbm2rom.h:42"
|
||||
|
||||
@@ -749,6 +956,9 @@ files:
|
||||
hle_fallback: true
|
||||
embedded: true
|
||||
size: 16384
|
||||
sha1: e69531d45f5993f8e53c6bd9ab2a7bc10fe2d02f
|
||||
md5: 5a9559ceaf1a0bef0e721242c67a030d
|
||||
crc32: 9a468e5d
|
||||
note: "CBM-II BASIC 500 (CBM 510/P500). Embedded in core."
|
||||
source_ref: "vice/src/cbm2/cbm2rom.h:43"
|
||||
|
||||
@@ -758,6 +968,9 @@ files:
|
||||
hle_fallback: true
|
||||
embedded: true
|
||||
size: 8192
|
||||
sha1: abb26418b9e1614a8f52bdeee0822d4a96071439
|
||||
md5: e0346953e77bd1353ebf53aaa5b6f0b0
|
||||
crc32: 09a5667e
|
||||
note: "CBM-II Kernal (CBM 610/620/710/720). Embedded in core."
|
||||
source_ref: "vice/src/cbm2/cbm2rom.h:45"
|
||||
|
||||
@@ -767,6 +980,9 @@ files:
|
||||
hle_fallback: true
|
||||
embedded: true
|
||||
size: 8192
|
||||
sha1: 097197d4d08e0b82e0466a5f1fbd49a24f3d2523
|
||||
md5: 1a19593625acdc5af96a5e78b1a23f37
|
||||
crc32: f46bbd2b
|
||||
note: "CBM-II Kernal 500 (CBM 510/P500). Embedded in core."
|
||||
source_ref: "vice/src/cbm2/cbm2rom.h:46"
|
||||
|
||||
@@ -776,6 +992,9 @@ files:
|
||||
hle_fallback: true
|
||||
embedded: true
|
||||
size: 4096
|
||||
sha1: adc7c31e18c7c7413d54802ef2f4193da14711aa
|
||||
md5: 12a4202f5331d45af846af6c58fba946
|
||||
crc32: ec4272ee
|
||||
note: "CBM-II Character Generator 500 (VIC-II based, CBM 510/P500). Embedded in core."
|
||||
source_ref: "vice/src/cbm2/cbm2rom.h:37"
|
||||
|
||||
@@ -785,6 +1004,9 @@ files:
|
||||
hle_fallback: true
|
||||
embedded: true
|
||||
size: 4096
|
||||
sha1: e63bf18da48e5a53c99ef127c1ae721333d1d102
|
||||
md5: 2818722af27ceae6952c08cf83a076f9
|
||||
crc32: 1acf5098
|
||||
note: "CBM-II Character Generator 600 (CBM 610/620). Embedded in core."
|
||||
source_ref: "vice/src/cbm2/cbm2rom.h:38"
|
||||
|
||||
@@ -794,6 +1016,9 @@ files:
|
||||
hle_fallback: true
|
||||
embedded: true
|
||||
size: 4096
|
||||
sha1: e7f3cbc8e282f79a00c3e95d75c8d725ee3c6287
|
||||
md5: 03f32477905d77e2135857076ec31efa
|
||||
crc32: 3a350bc3
|
||||
note: "CBM-II Character Generator 700 (CBM 710/720). Embedded in core."
|
||||
source_ref: "vice/src/cbm2/cbm2rom.h:39"
|
||||
|
||||
@@ -807,6 +1032,9 @@ files:
|
||||
hle_fallback: true
|
||||
embedded: true
|
||||
size: 65536
|
||||
sha1: f5b6da17ee8206ff0d2258e1d6e8b798147c2650
|
||||
md5: 006862e9a52d987970435988e3803c71
|
||||
crc32: 89c1a062
|
||||
note: "SuperCPU64 internal ROM (default). Embedded in core."
|
||||
source_ref: "retrodep/ui.c:269"
|
||||
|
||||
@@ -816,6 +1044,9 @@ files:
|
||||
hle_fallback: true
|
||||
embedded: true
|
||||
size: 4096
|
||||
sha1: adc7c31e18c7c7413d54802ef2f4193da14711aa
|
||||
md5: 12a4202f5331d45af846af6c58fba946
|
||||
crc32: ec4272ee
|
||||
note: "C64 Character Generator (used by SCPU64). Embedded in core."
|
||||
source_ref: "vice/src/scpu64/scpu64rom.h:36"
|
||||
|
||||
@@ -825,6 +1056,9 @@ files:
|
||||
hle_fallback: true
|
||||
embedded: true
|
||||
size: 4096
|
||||
sha1: 0fad19dbcdb12461c99657b2979dbb5c2e47b527
|
||||
md5: cf32a93c0a693ed359a4f483ef6db53d
|
||||
crc32: 1604f6c1
|
||||
note: "C64 Japanese Character Generator (used by SCPU64). Embedded in core."
|
||||
source_ref: "vice/src/scpu64/scpu64rom.h:37"
|
||||
|
||||
@@ -854,6 +1088,9 @@ files:
|
||||
hle_fallback: true
|
||||
embedded: true
|
||||
size: 16384
|
||||
sha1: 3477c14e0c79faa445224dad16534f04ed143e44
|
||||
md5: 87e849da3c87549848550fe4dd4d1aae
|
||||
crc32: 718d42b1
|
||||
note: "1540 drive DOS ROM. Embedded in core."
|
||||
source_ref: "vice/src/drive/driverom.h:88"
|
||||
|
||||
@@ -863,6 +1100,9 @@ files:
|
||||
hle_fallback: true
|
||||
embedded: true
|
||||
size: 16384
|
||||
sha1: ab16f56989b27d89babe5f89c5a8cb3da71a82f0
|
||||
md5: a0ce8439d1b8dcf2e1430461f7233a72
|
||||
crc32: 57224cde
|
||||
note: "1541 drive DOS ROM. Embedded in core."
|
||||
source_ref: "vice/src/drive/driverom.h:89"
|
||||
|
||||
@@ -872,6 +1112,9 @@ files:
|
||||
hle_fallback: true
|
||||
embedded: true
|
||||
size: 16384
|
||||
sha1: d3b78c3dbac55f5199f33f3fe0036439811f7fb3
|
||||
md5: ada295382a1f2df772a7e5c5c6f34215
|
||||
crc32: 899fa3c5
|
||||
note: "1541-II drive DOS ROM. Embedded in core."
|
||||
source_ref: "vice/src/drive/driverom.h:90"
|
||||
|
||||
@@ -881,6 +1124,9 @@ files:
|
||||
hle_fallback: true
|
||||
embedded: true
|
||||
size: 16384
|
||||
sha1: fae3c788ad9a6cc2dbdfbcf6c0264b2ca921d55e
|
||||
md5: 0c767bf0a84d7751af056e53a074c9e2
|
||||
crc32: 6d16d024
|
||||
note: "1551 drive DOS ROM (Plus/4 specific). Embedded in core."
|
||||
source_ref: "vice/src/drive/driverom.h:92"
|
||||
|
||||
@@ -890,6 +1136,9 @@ files:
|
||||
hle_fallback: true
|
||||
embedded: true
|
||||
size: 32768
|
||||
sha1: 5fc06dc82ff6840f183bd43a4d9b8a16956b2f56
|
||||
md5: f0799353f0e22cf7d783e447adcafde2
|
||||
crc32: 5a0c7937
|
||||
note: "1570 drive DOS ROM. Embedded in core."
|
||||
source_ref: "vice/src/drive/driverom.h:93"
|
||||
|
||||
@@ -899,6 +1148,9 @@ files:
|
||||
hle_fallback: true
|
||||
embedded: true
|
||||
size: 32768
|
||||
sha1: f1be619c106641a685f6609e4d43d6fc9eac1e70
|
||||
md5: dae964d64b7843ff86c008d396dda208
|
||||
crc32: 5755bae3
|
||||
note: "1571 drive DOS ROM. Embedded in core."
|
||||
source_ref: "vice/src/drive/driverom.h:94"
|
||||
|
||||
@@ -908,6 +1160,9 @@ files:
|
||||
hle_fallback: true
|
||||
embedded: true
|
||||
size: 32768
|
||||
sha1: 14ee7a0fb7e1c59c51fbf781f944387037daa3ee
|
||||
md5: f9158328494b3e269f86ef419792c2e5
|
||||
crc32: f24efcc4
|
||||
note: "1571CR drive DOS ROM (cost-reduced, C128D internal). Embedded in core."
|
||||
source_ref: "vice/src/drive/driverom.h:95"
|
||||
|
||||
@@ -917,6 +1172,9 @@ files:
|
||||
hle_fallback: true
|
||||
embedded: true
|
||||
size: 32768
|
||||
sha1: 01228eae6f066bd9b7b2b6a7fa3f667e41dad393
|
||||
md5: 6a82f92aea2a3afa190fe32d565f39e7
|
||||
crc32: a9011b84
|
||||
note: "1581 drive DOS ROM. Embedded in core."
|
||||
source_ref: "vice/src/drive/driverom.h:96"
|
||||
|
||||
@@ -926,6 +1184,9 @@ files:
|
||||
hle_fallback: true
|
||||
embedded: true
|
||||
size: 16384
|
||||
sha1: d50b093828888146596f17ae0df9ef3dfde71b05
|
||||
md5: 2d967790361aa77de87a24fb93e342f9
|
||||
crc32: 87e6a94e
|
||||
note: "CBM 1001 (SFD-1001) drive DOS ROM. Embedded in core."
|
||||
source_ref: "vice/src/drive/driverom.h:70"
|
||||
|
||||
@@ -935,6 +1196,9 @@ files:
|
||||
hle_fallback: true
|
||||
embedded: true
|
||||
size: 16384
|
||||
sha1: c53e180a96649ceb3f421739e8dc66faba7cba44
|
||||
md5: 3454c06fd2275f5bcbfe936dcdf8059b
|
||||
crc32: 21b80fdf
|
||||
note: "CBM 2031 drive DOS ROM. Embedded in core."
|
||||
source_ref: "vice/src/drive/driverom.h:73"
|
||||
|
||||
@@ -944,6 +1208,9 @@ files:
|
||||
hle_fallback: true
|
||||
embedded: true
|
||||
size: 8192
|
||||
sha1: e37b3bfd801eb19dea50cf8b4a6af8613c3520d3
|
||||
md5: 3efff682000fd841b4dd6560bf53e37c
|
||||
crc32: d04c1fbb
|
||||
note: "CBM 2040 dual drive DOS ROM. Embedded in core."
|
||||
source_ref: "vice/src/drive/driverom.h:76"
|
||||
|
||||
@@ -953,6 +1220,9 @@ files:
|
||||
hle_fallback: true
|
||||
embedded: true
|
||||
size: 12288
|
||||
sha1: 02bd4b0c8508b3874b95799a9a63caf369c837de
|
||||
md5: 139e72a58b7ddb2f92ceb18c8735c53c
|
||||
crc32: f4967a7f
|
||||
note: "CBM 3040 dual drive DOS ROM. Embedded in core."
|
||||
source_ref: "vice/src/drive/driverom.h:79"
|
||||
|
||||
@@ -962,6 +1232,9 @@ files:
|
||||
hle_fallback: true
|
||||
embedded: true
|
||||
size: 12288
|
||||
sha1: 245abbe76581558d270cdbb6fe55f56748403d8e
|
||||
md5: 2fce6a76c738d1a10c189bf0660d868e
|
||||
crc32: 40e0ebaa
|
||||
note: "CBM 4040 dual drive DOS ROM. Embedded in core."
|
||||
source_ref: "vice/src/drive/driverom.h:82"
|
||||
|
||||
@@ -971,6 +1244,9 @@ files:
|
||||
hle_fallback: true
|
||||
embedded: true
|
||||
size: 16384
|
||||
sha1: c48df2cbb0eea656c3243df7ea8bfefcd171b8e8
|
||||
md5: d6d4df6f2811767de6f5bf46ad7fba69
|
||||
crc32: 632a328e
|
||||
note: "CBM D9090/D9060 hard drive DOS ROM. Embedded in core."
|
||||
source_ref: "vice/src/drive/driverom.h:85"
|
||||
|
||||
|
||||
+6
-69
@@ -4,7 +4,7 @@
|
||||
"platform": "batocera",
|
||||
"display_name": "Batocera",
|
||||
"version": "1.0",
|
||||
"generated": "2026-04-03T09:43:11Z",
|
||||
"generated": "2026-04-18T07:55:01Z",
|
||||
"base_destination": "bios",
|
||||
"detect": [
|
||||
{
|
||||
@@ -230,8 +230,8 @@
|
||||
}
|
||||
}
|
||||
],
|
||||
"total_files": 1547,
|
||||
"total_size": 4371484317,
|
||||
"total_files": 1540,
|
||||
"total_size": 4337691265,
|
||||
"files": [
|
||||
{
|
||||
"dest": "panafz1.bin",
|
||||
@@ -4722,7 +4722,7 @@
|
||||
]
|
||||
},
|
||||
{
|
||||
"dest": "MSX/msx.rom",
|
||||
"dest": "MSX/MSX.ROM",
|
||||
"sha1": "409e82adac40f6bdd18eb6c84e8b2fbdc7fb5498",
|
||||
"size": 32768,
|
||||
"repo_path": "bios/Microsoft/MSX/MSX.ROM",
|
||||
@@ -4767,7 +4767,7 @@
|
||||
]
|
||||
},
|
||||
{
|
||||
"dest": "MSX/msx2.rom",
|
||||
"dest": "MSX/MSX2.ROM",
|
||||
"sha1": "6103b39f1e38d1aa2d84b1c3219c44f1abb5436e",
|
||||
"size": 32768,
|
||||
"repo_path": "bios/Microsoft/MSX/MSX2.ROM",
|
||||
@@ -4776,7 +4776,7 @@
|
||||
]
|
||||
},
|
||||
{
|
||||
"dest": "MSX/msx2ext.rom",
|
||||
"dest": "MSX/MSX2EXT.ROM",
|
||||
"sha1": "5c1f9c7fb655e43d38e5dd1fcc6b942b2ff68b02",
|
||||
"size": 16384,
|
||||
"repo_path": "bios/Microsoft/MSX/MSX2EXT.ROM",
|
||||
@@ -9375,69 +9375,6 @@
|
||||
"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",
|
||||
"sha1": "b094c2c1fca81a0e531e0541f302346150ec4604",
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
"platform": "bizhawk",
|
||||
"display_name": "BizHawk",
|
||||
"version": "1.0",
|
||||
"generated": "2026-04-02T13:52:21Z",
|
||||
"generated": "2026-04-18T07:55:07Z",
|
||||
"base_destination": "Firmware",
|
||||
"detect": [
|
||||
{
|
||||
@@ -285,7 +285,7 @@
|
||||
"dest": "VEC_Minestorm.vec",
|
||||
"sha1": "65d07426b520ddd3115d40f255511e0fd2e20ae7",
|
||||
"size": 8192,
|
||||
"repo_path": "bios/GCE/Vectrex/VEC_MineStorm.vec",
|
||||
"repo_path": "bios/GCE/Vectrex/VEC_Minestorm.vec",
|
||||
"cores": null
|
||||
},
|
||||
{
|
||||
|
||||
+15
-15
@@ -4,7 +4,7 @@
|
||||
"platform": "lakka",
|
||||
"display_name": "Lakka",
|
||||
"version": "1.0",
|
||||
"generated": "2026-04-02T13:52:45Z",
|
||||
"generated": "2026-04-18T07:55:35Z",
|
||||
"base_destination": "system",
|
||||
"detect": [
|
||||
{
|
||||
@@ -9837,66 +9837,66 @@
|
||||
]
|
||||
},
|
||||
{
|
||||
"dest": "kvs1.wav",
|
||||
"dest": "KVS1.WAV",
|
||||
"sha1": "b094c2c1fca81a0e531e0541f302346150ec4604",
|
||||
"size": 3436329,
|
||||
"repo_path": "bios/Atari/2600/KVS1.WAV",
|
||||
"cores": [
|
||||
"Stella 2014"
|
||||
"Stella 2023"
|
||||
]
|
||||
},
|
||||
{
|
||||
"dest": "kvs2.wav",
|
||||
"dest": "KVS2.WAV",
|
||||
"sha1": "8b83b2eea01b3e08ceb885aeb153d4084bddb63c",
|
||||
"size": 2086275,
|
||||
"repo_path": "bios/Atari/2600/KVS2.WAV",
|
||||
"cores": [
|
||||
"Stella 2014"
|
||||
"Stella 2023"
|
||||
]
|
||||
},
|
||||
{
|
||||
"dest": "kvs3.wav",
|
||||
"dest": "KVS3.WAV",
|
||||
"sha1": "86896a1e272d8715489de9b407f0b8a42f82d4a0",
|
||||
"size": 3720920,
|
||||
"repo_path": "bios/Atari/2600/KVS3.WAV",
|
||||
"cores": [
|
||||
"Stella 2014"
|
||||
"Stella 2023"
|
||||
]
|
||||
},
|
||||
{
|
||||
"dest": "kvb1.wav",
|
||||
"dest": "KVB1.WAV",
|
||||
"sha1": "6a582aebcefd6e2a97bdd8968202aab9851a889c",
|
||||
"size": 4219542,
|
||||
"repo_path": "bios/Atari/2600/KVB1.WAV",
|
||||
"cores": [
|
||||
"Stella 2014"
|
||||
"Stella 2023"
|
||||
]
|
||||
},
|
||||
{
|
||||
"dest": "kvb2.wav",
|
||||
"dest": "KVB2.WAV",
|
||||
"sha1": "60a425c6bde3226ab731995562716321be20fc49",
|
||||
"size": 9593878,
|
||||
"repo_path": "bios/Atari/2600/KVB2.WAV",
|
||||
"cores": [
|
||||
"Stella 2014"
|
||||
"Stella 2023"
|
||||
]
|
||||
},
|
||||
{
|
||||
"dest": "kvb3.wav",
|
||||
"dest": "KVB3.WAV",
|
||||
"sha1": "5e34125c4d6c209b21d1c892f3df0ec1644fd0d8",
|
||||
"size": 7676992,
|
||||
"repo_path": "bios/Atari/2600/KVB3.WAV",
|
||||
"cores": [
|
||||
"Stella 2014"
|
||||
"Stella 2023"
|
||||
]
|
||||
},
|
||||
{
|
||||
"dest": "kvshared.wav",
|
||||
"dest": "KVSHARED.WAV",
|
||||
"sha1": "9adf10cdf1de833b194c7d8797ad1f041ad98dd3",
|
||||
"size": 3059116,
|
||||
"repo_path": "bios/Atari/2600/KVSHARED.WAV",
|
||||
"cores": [
|
||||
"Stella 2014"
|
||||
"Stella 2023"
|
||||
]
|
||||
},
|
||||
{
|
||||
|
||||
+3
-66
@@ -4,7 +4,7 @@
|
||||
"platform": "recalbox",
|
||||
"display_name": "Recalbox",
|
||||
"version": "1.0",
|
||||
"generated": "2026-04-03T09:44:06Z",
|
||||
"generated": "2026-04-18T07:56:06Z",
|
||||
"base_destination": "bios",
|
||||
"detect": [
|
||||
{
|
||||
@@ -230,8 +230,8 @@
|
||||
}
|
||||
}
|
||||
],
|
||||
"total_files": 1107,
|
||||
"total_size": 3980096655,
|
||||
"total_files": 1100,
|
||||
"total_size": 3946303603,
|
||||
"files": [
|
||||
{
|
||||
"dest": "3do/panafz1.bin",
|
||||
@@ -6968,69 +6968,6 @@
|
||||
"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",
|
||||
"sha1": "b094c2c1fca81a0e531e0541f302346150ec4604",
|
||||
|
||||
+15
-15
@@ -4,7 +4,7 @@
|
||||
"platform": "retroarch",
|
||||
"display_name": "RetroArch",
|
||||
"version": "1.0",
|
||||
"generated": "2026-04-03T09:43:38Z",
|
||||
"generated": "2026-04-18T07:55:35Z",
|
||||
"base_destination": "system",
|
||||
"detect": [
|
||||
{
|
||||
@@ -10070,66 +10070,66 @@
|
||||
]
|
||||
},
|
||||
{
|
||||
"dest": "kvs1.wav",
|
||||
"dest": "KVS1.WAV",
|
||||
"sha1": "b094c2c1fca81a0e531e0541f302346150ec4604",
|
||||
"size": 3436329,
|
||||
"repo_path": "bios/Atari/2600/KVS1.WAV",
|
||||
"cores": [
|
||||
"Stella 2014"
|
||||
"Stella 2023"
|
||||
]
|
||||
},
|
||||
{
|
||||
"dest": "kvs2.wav",
|
||||
"dest": "KVS2.WAV",
|
||||
"sha1": "8b83b2eea01b3e08ceb885aeb153d4084bddb63c",
|
||||
"size": 2086275,
|
||||
"repo_path": "bios/Atari/2600/KVS2.WAV",
|
||||
"cores": [
|
||||
"Stella 2014"
|
||||
"Stella 2023"
|
||||
]
|
||||
},
|
||||
{
|
||||
"dest": "kvs3.wav",
|
||||
"dest": "KVS3.WAV",
|
||||
"sha1": "86896a1e272d8715489de9b407f0b8a42f82d4a0",
|
||||
"size": 3720920,
|
||||
"repo_path": "bios/Atari/2600/KVS3.WAV",
|
||||
"cores": [
|
||||
"Stella 2014"
|
||||
"Stella 2023"
|
||||
]
|
||||
},
|
||||
{
|
||||
"dest": "kvb1.wav",
|
||||
"dest": "KVB1.WAV",
|
||||
"sha1": "6a582aebcefd6e2a97bdd8968202aab9851a889c",
|
||||
"size": 4219542,
|
||||
"repo_path": "bios/Atari/2600/KVB1.WAV",
|
||||
"cores": [
|
||||
"Stella 2014"
|
||||
"Stella 2023"
|
||||
]
|
||||
},
|
||||
{
|
||||
"dest": "kvb2.wav",
|
||||
"dest": "KVB2.WAV",
|
||||
"sha1": "60a425c6bde3226ab731995562716321be20fc49",
|
||||
"size": 9593878,
|
||||
"repo_path": "bios/Atari/2600/KVB2.WAV",
|
||||
"cores": [
|
||||
"Stella 2014"
|
||||
"Stella 2023"
|
||||
]
|
||||
},
|
||||
{
|
||||
"dest": "kvb3.wav",
|
||||
"dest": "KVB3.WAV",
|
||||
"sha1": "5e34125c4d6c209b21d1c892f3df0ec1644fd0d8",
|
||||
"size": 7676992,
|
||||
"repo_path": "bios/Atari/2600/KVB3.WAV",
|
||||
"cores": [
|
||||
"Stella 2014"
|
||||
"Stella 2023"
|
||||
]
|
||||
},
|
||||
{
|
||||
"dest": "kvshared.wav",
|
||||
"dest": "KVSHARED.WAV",
|
||||
"sha1": "9adf10cdf1de833b194c7d8797ad1f041ad98dd3",
|
||||
"size": 3059116,
|
||||
"repo_path": "bios/Atari/2600/KVSHARED.WAV",
|
||||
"cores": [
|
||||
"Stella 2014"
|
||||
"Stella 2023"
|
||||
]
|
||||
},
|
||||
{
|
||||
|
||||
+5
-68
@@ -4,7 +4,7 @@
|
||||
"platform": "retrodeck",
|
||||
"display_name": "RetroDECK",
|
||||
"version": "1.0",
|
||||
"generated": "2026-04-03T09:44:33Z",
|
||||
"generated": "2026-04-18T07:56:37Z",
|
||||
"base_destination": "",
|
||||
"detect": [
|
||||
{
|
||||
@@ -230,8 +230,8 @@
|
||||
}
|
||||
}
|
||||
],
|
||||
"total_files": 3153,
|
||||
"total_size": 6351500734,
|
||||
"total_files": 3146,
|
||||
"total_size": 6317707682,
|
||||
"files": [
|
||||
{
|
||||
"dest": "bios/panafz1.bin",
|
||||
@@ -13879,10 +13879,10 @@
|
||||
"cores": null
|
||||
},
|
||||
{
|
||||
"dest": "bios/VEC_MineStorm.vec",
|
||||
"dest": "bios/VEC_Minestorm.vec",
|
||||
"sha1": "65d07426b520ddd3115d40f255511e0fd2e20ae7",
|
||||
"size": 8192,
|
||||
"repo_path": "bios/GCE/Vectrex/VEC_MineStorm.vec",
|
||||
"repo_path": "bios/GCE/Vectrex/VEC_Minestorm.vec",
|
||||
"cores": null
|
||||
},
|
||||
{
|
||||
@@ -20436,69 +20436,6 @@
|
||||
"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",
|
||||
"sha1": "b094c2c1fca81a0e531e0541f302346150ec4604",
|
||||
|
||||
+1
-1
@@ -54,7 +54,7 @@ plugins:
|
||||
- search
|
||||
nav:
|
||||
- Home: index.md
|
||||
- Which pack?: which-pack.md
|
||||
- Download: which-pack.md
|
||||
- Platforms:
|
||||
- Overview: platforms/index.md
|
||||
- Batocera: platforms/batocera.md
|
||||
|
||||
@@ -7978,8 +7978,8 @@ systems:
|
||||
- name: Vectrex_Bios.bin
|
||||
destination: bios/Vectrex_Bios.bin
|
||||
required: false
|
||||
- name: VEC_MineStorm.vec
|
||||
destination: bios/VEC_MineStorm.vec
|
||||
- name: VEC_Minestorm.vec
|
||||
destination: bios/VEC_Minestorm.vec
|
||||
required: false
|
||||
vsmile:
|
||||
files:
|
||||
|
||||
@@ -2231,7 +2231,7 @@ and extract into `RetroArch/system/` on internal storage or SD card.
|
||||
|
||||
## Full pack or Platform pack?
|
||||
|
||||
Each platform has two pack types on the [releases page]({releases}).
|
||||
Each platform has two pack types on the [releases page]({rel}).
|
||||
|
||||
**Full pack** (recommended)
|
||||
|
||||
|
||||
+142
-21
@@ -12,6 +12,16 @@ from common import _norm_system_id, resolve_platform_cores
|
||||
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(
|
||||
emu_name: str,
|
||||
profile: dict,
|
||||
@@ -35,31 +45,78 @@ def _determine_core_mode(
|
||||
|
||||
|
||||
def _enrich_hashes(entry: dict, db: dict) -> None:
|
||||
"""Fill missing hash fields from the database."""
|
||||
sha1 = entry.get("sha1", "")
|
||||
md5 = entry.get("md5", "")
|
||||
"""Fill missing sibling hashes from the database, ground-truth preserving.
|
||||
|
||||
# Hashes can be lists (multi-hash) — use first string value
|
||||
if isinstance(sha1, list):
|
||||
sha1 = sha1[0] if sha1 else ""
|
||||
if isinstance(md5, list):
|
||||
md5 = md5[0] if md5 else ""
|
||||
The profile's hashes come from the emulator source code (ground truth).
|
||||
Any hash of a given file set of bytes is a projection of that same
|
||||
ground truth — sha1, md5, crc32 all identify the same bytes. If the
|
||||
profile has ONE ground-truth hash, the DB can supply its siblings.
|
||||
|
||||
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
|
||||
if sha1 and isinstance(sha1, str) and db.get("files"):
|
||||
record = db["files"].get(sha1)
|
||||
if record is None and md5:
|
||||
by_md5 = db.get("by_md5", {})
|
||||
md5_str = md5 if isinstance(md5, str) else md5[0] if md5 else ""
|
||||
ref_sha1 = by_md5.get(md5_str.lower()) if md5_str else None
|
||||
if ref_sha1 and db.get("files"):
|
||||
record = db["files"].get(ref_sha1)
|
||||
|
||||
# Anchor 1: SHA1 (strongest)
|
||||
sha1 = entry.get("sha1")
|
||||
if sha1 and isinstance(sha1, str):
|
||||
record = files_db.get(sha1)
|
||||
|
||||
# Anchor 2: MD5 (strong)
|
||||
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:
|
||||
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"):
|
||||
if not entry.get(field) and record.get(field):
|
||||
entry[field] = record[field]
|
||||
if not entry.get("size") and record.get("size"):
|
||||
entry["size"] = record["size"]
|
||||
|
||||
|
||||
def _merge_file_into_system(
|
||||
@@ -82,7 +139,7 @@ def _merge_file_into_system(
|
||||
existing["_cores"] = existing.get("_cores", set()) | {emu_name}
|
||||
sr = file_entry.get("source_ref")
|
||||
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}
|
||||
else:
|
||||
existing.setdefault("_source_refs", set())
|
||||
@@ -91,14 +148,41 @@ def _merge_file_into_system(
|
||||
for h in ("sha1", "md5", "sha256", "crc32"):
|
||||
theirs = file_entry.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(
|
||||
f"WARNING: hash conflict for {file_entry['name']} "
|
||||
f"({h}: {ours} vs {theirs}, core {emu_name})",
|
||||
file=sys.stderr,
|
||||
)
|
||||
elif theirs and not ours:
|
||||
existing[h] = theirs
|
||||
# Merge non-hash data fields if existing lacks them.
|
||||
# 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
|
||||
|
||||
entry: dict = {"name": file_entry["name"]}
|
||||
@@ -119,14 +203,25 @@ def _merge_file_into_system(
|
||||
"min_size",
|
||||
"max_size",
|
||||
"aliases",
|
||||
"contents",
|
||||
):
|
||||
val = file_entry.get(field)
|
||||
if val is not None:
|
||||
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}
|
||||
sr = file_entry.get("source_ref")
|
||||
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}
|
||||
else:
|
||||
entry["_source_refs"] = set()
|
||||
@@ -137,6 +232,23 @@ def _merge_file_into_system(
|
||||
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(
|
||||
platform_name: str,
|
||||
config: dict,
|
||||
@@ -274,6 +386,15 @@ def generate_platform_truth(
|
||||
)
|
||||
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
|
||||
for sys_id, sys_data in systems.items():
|
||||
for fe in sys_data.get("files", []):
|
||||
|
||||
+8
-1
@@ -3095,20 +3095,23 @@ class TestE2E(unittest.TestCase):
|
||||
"system": "test-system",
|
||||
"required": True,
|
||||
"mode": "both",
|
||||
"sha1": "aaaa",
|
||||
},
|
||||
{
|
||||
"name": "lr_only.bin",
|
||||
"system": "test-system",
|
||||
"required": True,
|
||||
"mode": "libretro",
|
||||
"sha1": "bbbb",
|
||||
},
|
||||
{
|
||||
"name": "sa_only.bin",
|
||||
"system": "test-system",
|
||||
"required": True,
|
||||
"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:
|
||||
@@ -3142,12 +3145,14 @@ class TestE2E(unittest.TestCase):
|
||||
"system": "test-system",
|
||||
"required": True,
|
||||
"mode": "libretro",
|
||||
"sha1": "aaaa",
|
||||
},
|
||||
{
|
||||
"name": "sa_file.bin",
|
||||
"system": "test-system",
|
||||
"required": True,
|
||||
"mode": "standalone",
|
||||
"sha1": "bbbb",
|
||||
},
|
||||
],
|
||||
}
|
||||
@@ -3183,6 +3188,7 @@ class TestE2E(unittest.TestCase):
|
||||
"system": "test-system",
|
||||
"required": False,
|
||||
"source_ref": "a.cpp:10",
|
||||
"sha1": "aaaa",
|
||||
},
|
||||
],
|
||||
}
|
||||
@@ -3197,6 +3203,7 @@ class TestE2E(unittest.TestCase):
|
||||
"system": "test-system",
|
||||
"required": True,
|
||||
"source_ref": "b.cpp:20",
|
||||
"sha1": "aaaa",
|
||||
},
|
||||
],
|
||||
}
|
||||
|
||||
@@ -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()
|
||||
Reference in New Issue
Block a user