mirror of
https://github.com/Abdess/retroarch_system.git
synced 2026-10-18 09:23:26 -05:00
chore: drop the shared groups no platform reads
Six of the eight shared groups injected nothing: three were included by no platform, three repeated System.dat entry for entry, so a correction made in them reached no pack. They are removed with their scraper wiring, and a test requires every remaining group to contribute an entry somewhere.
This commit is contained in:
1 parent
b6f6798c15
commit
d5f40a4515
4 files changed
+26
-186
No files matched your search
@@ -3,39 +3,6 @@
|
||||
# Referenced via `includes: [group_name]` in platform configs.
|
||||
|
||||
shared_groups:
|
||||
mt32:
|
||||
- name: MT32_CONTROL.ROM
|
||||
sha1: "b083518fffb7f66b03c23b7eb4f868e62dc5a987"
|
||||
md5: "5626206284b22c2734f3e9efefcd2675"
|
||||
destination: "scummvm/extra/MT32_CONTROL.ROM"
|
||||
required: false
|
||||
- name: MT32_PCM.ROM
|
||||
sha1: "f6b1eebc4b2d200ec6d3d21d51325d5b48c60252"
|
||||
md5: "89e42e386e82e0cacb4a2704a03706ca"
|
||||
destination: "scummvm/extra/MT32_PCM.ROM"
|
||||
required: false
|
||||
|
||||
jiffydos:
|
||||
- name: JiffyDOS_C128.bin
|
||||
sha1: "7d1898f32beae4b2ae610d469ce578a588efaa7c"
|
||||
destination: "vice/JiffyDOS_C128.bin"
|
||||
required: false
|
||||
- name: JiffyDOS_C64.bin
|
||||
sha1: "31e73e66eccb28732daea8ec3ad1addd9b39a017"
|
||||
destination: "vice/JiffyDOS_C64.bin"
|
||||
required: false
|
||||
- name: JiffyDOS_1541-II.bin
|
||||
sha1: "b1a5b826304d3df2a27d7163c6a81a532e040d32"
|
||||
destination: "vice/JiffyDOS_1541-II.bin"
|
||||
required: false
|
||||
- name: JiffyDOS_1571_repl310654.bin
|
||||
sha1: "d4b79b60cf1eaa399d0932200eb7811e00455249"
|
||||
destination: "vice/JiffyDOS_1571_repl310654.bin"
|
||||
required: false
|
||||
- name: JiffyDOS_1581.bin
|
||||
sha1: "65bbf2be7bcd5bdcbff609d6c66471ffb9d04bfe"
|
||||
destination: "vice/JiffyDOS_1581.bin"
|
||||
required: false
|
||||
|
||||
# NEC PC-9801/9821 — NP2kai core
|
||||
# np2kai hardcodes "np2kai/" subfolder for firmware lookups
|
||||
@@ -114,46 +81,6 @@ shared_groups:
|
||||
crc32: "638864c1"
|
||||
size: 5288
|
||||
|
||||
# Sharp X68000 — PX68k core
|
||||
# PX68k hardcodes "keropi/" subfolder for ROM lookups
|
||||
# ref: px68k-libretro/libretro.c:1834 — sprintf(retro_system_conf, "%s%ckeropi", ...)
|
||||
keropi:
|
||||
- name: cgrom.dat
|
||||
destination: keropi/cgrom.dat
|
||||
required: true
|
||||
sha1: "8d72c5b4d63bb14c5dbdac495244d659aa1498b6"
|
||||
md5: "cb0a5cfcf7247a7eab74bb2716260269"
|
||||
crc32: "9f3195f1"
|
||||
size: 786432
|
||||
- name: iplrom.dat
|
||||
destination: keropi/iplrom.dat
|
||||
required: true
|
||||
sha1: "0ed038ed2133b9f78c6e37256807424e0d927560"
|
||||
md5: "7fd4caabac1d9169e289f0f7bbf71d8e"
|
||||
crc32: "72bdf532"
|
||||
size: 131072
|
||||
- name: iplrom30.dat
|
||||
destination: keropi/iplrom30.dat
|
||||
required: true
|
||||
sha1: "239e9124568c862c31d9ec0605e32373ea74b86a"
|
||||
md5: "f373003710ab4322642f527f567e020a"
|
||||
crc32: "e8f8fdad"
|
||||
size: 131072
|
||||
- name: iplromco.dat
|
||||
destination: keropi/iplromco.dat
|
||||
required: true
|
||||
sha1: "77511fc58798404701f66b6bbc9cbde06596eba7"
|
||||
md5: "cc78d4f4900f622bd6de1aed7f52592f"
|
||||
crc32: "6c7ef608"
|
||||
size: 131072
|
||||
- name: iplromxv.dat
|
||||
destination: keropi/iplromxv.dat
|
||||
required: true
|
||||
sha1: "e33cdcdb69cd257b0b211ef46e7a8b144637db57"
|
||||
md5: "0617321daa182c3f3d6f41fd02fb3275"
|
||||
crc32: "00eeb408"
|
||||
size: 131072
|
||||
|
||||
# NEC PC-8801 — QUASI88 core
|
||||
# QUASI88 searches "quasi88/" subfolder first
|
||||
# ref: quasi88-libretro/src/LIBRETRO/libretro.c:463 — snprintf(..., "%s%cquasi88%c%s", ...)
|
||||
@@ -183,102 +110,3 @@ shared_groups:
|
||||
destination: quasi88/N88EXT3.ROM
|
||||
required: true
|
||||
md5: "fc4b76a402ba501e6ba6de4b3e8b4273"
|
||||
|
||||
# Sinclair ZX Spectrum — Fuse core (Pentagon/Scorpion ROMs)
|
||||
# VERIFIED: fuse-libretro/src/compat/paths.c compat_get_next_path()
|
||||
# returns empty path — core searches system/ FLAT, not fuse/ subfolder.
|
||||
# The libretro docs incorrectly show "fuse/" prefix. Tested against
|
||||
# fuse/settings.c:221-229 which defines names without prefix.
|
||||
# Shared group kept for platforms that DO use the fuse/ prefix (Recalbox).
|
||||
fuse:
|
||||
- name: 128p-0.rom
|
||||
destination: fuse/128p-0.rom
|
||||
required: true
|
||||
sha1: "d07fcdeca892ee80494d286ea9ea5bf3928a1aca"
|
||||
md5: "a249565f03b98d004ee7f019570069cd"
|
||||
size: 16384
|
||||
- name: 128p-1.rom
|
||||
destination: fuse/128p-1.rom
|
||||
required: true
|
||||
- name: trdos.rom
|
||||
destination: fuse/trdos.rom
|
||||
required: true
|
||||
sha1: "21695e3f2a8f796386ce66eea8a246b0ac44810c"
|
||||
md5: "0da70a5d2a0e733398e005b96b7e4ba6"
|
||||
size: 16384
|
||||
- name: gluck.rom
|
||||
destination: fuse/gluck.rom
|
||||
required: true
|
||||
sha1: "015eb96dafb273d4f4512c467e9b43c305fd1bc4"
|
||||
md5: "d5869034604dbfd2c1d54170e874fd0a"
|
||||
size: 16384
|
||||
- name: 256s-0.rom
|
||||
destination: fuse/256s-0.rom
|
||||
required: true
|
||||
sha1: "477114ff0fe1388e0979df1423602b21248164e5"
|
||||
md5: "b9fda5b6a747ff037365b0e2d8c4379a"
|
||||
size: 16384
|
||||
- name: 256s-1.rom
|
||||
destination: fuse/256s-1.rom
|
||||
required: true
|
||||
sha1: "367b5a102fb663beee8e7930b8c4acc219c1f7b3"
|
||||
md5: "643861ad34831b255bf2eb64e8b6ecb8"
|
||||
size: 16384
|
||||
- name: 256s-2.rom
|
||||
destination: fuse/256s-2.rom
|
||||
required: true
|
||||
sha1: "07783ee295274d8ff15d935bfd787c8ac1d54900"
|
||||
md5: "d8ad507b1c915a9acfe0d73957082926"
|
||||
size: 16384
|
||||
- name: 256s-3.rom
|
||||
destination: fuse/256s-3.rom
|
||||
required: true
|
||||
sha1: "33703e97cc93b7edfcc0334b64233cf81b7930db"
|
||||
md5: "ce0723f9bc02f4948c15d3b3230ae831"
|
||||
size: 16384
|
||||
|
||||
# Enterprise 128 / Videoton TVC — ep128emu core
|
||||
# ep128emu loads ROMs from "ep128emu/roms/" subfolder
|
||||
# ref: ep128emu-core/core/core.cpp:56,59 — romBasePath.append("/ep128emu/roms/")
|
||||
# since v1.1.0 external BIOS is optional (built-in fallback)
|
||||
ep128emu:
|
||||
- name: hun.rom
|
||||
destination: ep128emu/roms/hun.rom
|
||||
required: false
|
||||
md5: "22167938f142c222f40992839aa21a06"
|
||||
- name: exos21.rom
|
||||
destination: ep128emu/roms/exos21.rom
|
||||
required: false
|
||||
md5: "f36f24cbb87745fbd2714e4df881db09"
|
||||
- name: basic21.rom
|
||||
destination: ep128emu/roms/basic21.rom
|
||||
required: false
|
||||
md5: "e972fe42b398c9ff1d93ff014786aec6"
|
||||
- name: exdos13.rom
|
||||
destination: ep128emu/roms/exdos13.rom
|
||||
required: false
|
||||
md5: "ddff70c014d1958dc75378b6c9aab6f8"
|
||||
- name: basic20.rom
|
||||
destination: ep128emu/roms/basic20.rom
|
||||
required: false
|
||||
md5: "8e18edce4a7acb2c33cc0ab18f988482"
|
||||
- name: exos20.rom
|
||||
destination: ep128emu/roms/exos20.rom
|
||||
required: false
|
||||
md5: "5ad3baaad3b5156d6b60b34229a676fb"
|
||||
- name: brd.rom
|
||||
destination: ep128emu/roms/brd.rom
|
||||
required: false
|
||||
md5: "6af0402906944fd134004b85097c8524"
|
||||
|
||||
# Sega Saturn — Kronos core
|
||||
# Kronos searches "kronos/" subfolder first, falls back to root
|
||||
# ref: libretro-kronos/libretro/libretro.c, docs.libretro.com/library/kronos
|
||||
kronos:
|
||||
- name: saturn_bios.bin
|
||||
destination: kronos/saturn_bios.bin
|
||||
required: true
|
||||
sha1: "2b8cb4f87580683eb4d760e4ed210813d667f0a2"
|
||||
md5: "af5828fdff51384f99b3c4926be27762"
|
||||
crc32: "2aba43c2"
|
||||
size: 524288
|
||||
@@ -990,8 +990,6 @@ systems:
|
||||
native_system: Enterprise - 64/128
|
||||
native_path: ep128emu/roms/zt19hfnt.rom
|
||||
native_id: Enterprise - 64/128
|
||||
includes:
|
||||
- ep128emu
|
||||
epoch-scv:
|
||||
files:
|
||||
- name: upd7801g.s01
|
||||
@@ -2807,8 +2805,6 @@ systems:
|
||||
core: kronos
|
||||
manufacturer: Sega
|
||||
docs: "https://docs.libretro.com/library/kronos/"
|
||||
includes:
|
||||
- kronos
|
||||
sharp-x1:
|
||||
files:
|
||||
- name: IPLROM.X1
|
||||
@@ -2882,8 +2878,6 @@ systems:
|
||||
core: px68k
|
||||
manufacturer: Sharp
|
||||
docs: "https://docs.libretro.com/library/px68k/"
|
||||
includes:
|
||||
- keropi
|
||||
sinclair-zx-spectrum:
|
||||
files:
|
||||
- name: 128-0.rom
|
||||
|
||||
@@ -451,22 +451,18 @@ class Scraper(BaseScraper):
|
||||
systems[sys_id]["files"].append({**ef, "curated": True})
|
||||
existing.add(key)
|
||||
|
||||
# ep128emu shared group for Enterprise
|
||||
if "enterprise-64-128" in systems:
|
||||
systems["enterprise-64-128"].setdefault("includes", [])
|
||||
if "ep128emu" not in systems["enterprise-64-128"]["includes"]:
|
||||
systems["enterprise-64-128"]["includes"].append("ep128emu")
|
||||
|
||||
# Inject shared group references for systems that have core-specific
|
||||
# subdirectory requirements already defined in _shared.yml.
|
||||
# Note: fuse/ prefix NOT injected for sinclair-zx-spectrum.
|
||||
# Verified in fuse-libretro/src/compat/paths.c -core searches
|
||||
# system/ flat, not fuse/ subfolder. Docs are wrong on this.
|
||||
# A group System.dat already covers entry for entry injects nothing
|
||||
# (ep128emu, keropi and kronos were), and a correction made there
|
||||
# would never reach a pack: load_platform_config keeps the
|
||||
# platform's own entry.
|
||||
SYSTEM_SHARED_GROUPS = {
|
||||
"nec-pc-88": ["quasi88"],
|
||||
"nec-pc-98": ["np2kai"],
|
||||
"sharp-x68000": ["keropi"],
|
||||
"sega-saturn": ["kronos"],
|
||||
}
|
||||
for sys_id, groups in SYSTEM_SHARED_GROUPS.items():
|
||||
if sys_id in systems:
|
||||
|
||||
@@ -457,6 +457,28 @@ class APackIsSwappedInWhole(unittest.TestCase):
|
||||
self.assertNotIn('ZipFile(zip_path, "w"', source)
|
||||
|
||||
|
||||
class EverySharedGroupServesAPlatform(unittest.TestCase):
|
||||
"""Six of the eight shared groups injected nothing: fuse, mt32 and
|
||||
jiffydos were included by no platform, and kronos, keropi and ep128emu
|
||||
repeated System.dat entry for entry. load_platform_config keeps the
|
||||
platform's own entry, so a hash corrected there changed no pack, no
|
||||
verify and no manifest, and nothing said so."""
|
||||
|
||||
def test_each_group_contributes_an_entry_somewhere(self):
|
||||
from common import list_registered_platforms, load_platform_config
|
||||
|
||||
platforms_dir = str(ROOT / "platforms")
|
||||
with (ROOT / "platforms" / "_shared.yml").open(encoding="utf-8") as handle:
|
||||
groups = set((yaml.safe_load(handle) or {}).get("shared_groups") or {})
|
||||
served = {
|
||||
entry.get("shared_group")
|
||||
for name in list_registered_platforms(platforms_dir, include_archived=True)
|
||||
for system in load_platform_config(name, platforms_dir).get("systems", {}).values()
|
||||
for entry in system.get("files", [])
|
||||
}
|
||||
self.assertEqual(sorted(groups - served), [])
|
||||
|
||||
|
||||
class FaqRegressions(unittest.TestCase):
|
||||
"""The FAQ states facts the code owns; these tie it back to the source.
|
||||
|
||||
|
||||
Reference in new issue
Block a user