mirror of
https://github.com/Abdess/retroarch_system.git
synced 2026-10-21 11:19:11 -05:00
fix: file the WonderMega ROM under its own name
The LaserActive v1.05 variant read WONDER-MEGA BOOTROM 1.00W at 0x100, as No-Intro and TOSEC name it. It moves to the Mega CD tree and the catalogued v1.05 (md5 927df773) takes its place.
This commit is contained in:
1 parent
1c7b2e85a4
commit
d64129def8
4 files changed
+129
-25
No files matched your search
BIN
Binary file not shown.
File renamed without changes.
+59
-25
@@ -1,8 +1,8 @@
|
||||
{
|
||||
"schema_version": 1,
|
||||
"generated_at": "2026-10-18T11:24:19Z",
|
||||
"total_files": 19079,
|
||||
"total_size": 17568402427,
|
||||
"generated_at": "2026-10-18T17:27:52Z",
|
||||
"total_files": 19080,
|
||||
"total_size": 17568533499,
|
||||
"bios_dir": "bios",
|
||||
"files": {
|
||||
"738c7f5fd0c8b57ee2e87ae7a97bf8e21a821d07": {
|
||||
@@ -158574,25 +158574,25 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"3fc9358072f74bd24e3e297ea11b2bf15a7af891": {
|
||||
"path": "bios/Pioneer/LaserActive/.variants/[BIOS] LaserActive PAC-S1 (Japan) (v1.05).bin.d21fe71d",
|
||||
"b3b1d880e288b6dc79eec0ff1b0480c229ec141d": {
|
||||
"path": "bios/Pioneer/LaserActive/.variants/[BIOS] LaserActive PAC-S1 (Japan) (v1.05).bin.927df773",
|
||||
"name": "[BIOS] LaserActive PAC-S1 (Japan) (v1.05).bin",
|
||||
"size": 131072,
|
||||
"sha1": "3fc9358072f74bd24e3e297ea11b2bf15a7af891",
|
||||
"md5": "732b60960226caf33df6b487f376de69",
|
||||
"sha256": "f84d43ae82be5c03fa418286e8142c377869cd392c0d3a9dd5ba72b78d2075fc",
|
||||
"crc32": "d21fe71d",
|
||||
"adler32": "993a073b",
|
||||
"sha1": "b3b1d880e288b6dc79eec0ff1b0480c229ec141d",
|
||||
"md5": "927df773f9a1c7de94a72420b2d538dd",
|
||||
"sha256": "61943363038bd94887255b23c4b40a9583011945b8edb5986b688a8bb6ab7db3",
|
||||
"crc32": "474aaa44",
|
||||
"adler32": "04fa4128",
|
||||
"provenance": {
|
||||
"no-intro": {
|
||||
"dat": "Sega - Mega Drive - Genesis",
|
||||
"name": "[BIOS] WonderMega (Japan) (En).md",
|
||||
"description": "[BIOS] WonderMega (Japan) (En)"
|
||||
"name": "[BIOS] LaserActive (Japan) (v1.05).md",
|
||||
"description": "[BIOS] LaserActive (Japan) (v1.05)"
|
||||
},
|
||||
"tosec": {
|
||||
"dat": "Sega Mega-CD & Sega CD - Firmware",
|
||||
"name": "Wondermega v1.00W (1992-02-06)(Sega)(JP)(en).bin",
|
||||
"description": "Wondermega v1.00W (1992-02-06)(Sega)(JP)(en)"
|
||||
"dat": "Pioneer LaserActive - Firmware",
|
||||
"name": "Pioneer LaserActive Sega PAC Boot ROM v1.05 (1993)(Pioneer - Sega)(JP)(en-ja).bin",
|
||||
"description": "Pioneer LaserActive Sega PAC Boot ROM v1.05 (1993)(Pioneer - Sega)(JP)(en-ja)"
|
||||
}
|
||||
}
|
||||
},
|
||||
@@ -187829,6 +187829,28 @@
|
||||
"crc32": "7e86c5da",
|
||||
"adler32": "dd0738e8"
|
||||
},
|
||||
"3fc9358072f74bd24e3e297ea11b2bf15a7af891": {
|
||||
"path": "bios/Sega/Mega CD/[BIOS] WonderMega (Japan) (En).bin",
|
||||
"name": "[BIOS] WonderMega (Japan) (En).bin",
|
||||
"size": 131072,
|
||||
"sha1": "3fc9358072f74bd24e3e297ea11b2bf15a7af891",
|
||||
"md5": "732b60960226caf33df6b487f376de69",
|
||||
"sha256": "f84d43ae82be5c03fa418286e8142c377869cd392c0d3a9dd5ba72b78d2075fc",
|
||||
"crc32": "d21fe71d",
|
||||
"adler32": "993a073b",
|
||||
"provenance": {
|
||||
"no-intro": {
|
||||
"dat": "Sega - Mega Drive - Genesis",
|
||||
"name": "[BIOS] WonderMega (Japan) (En).md",
|
||||
"description": "[BIOS] WonderMega (Japan) (En)"
|
||||
},
|
||||
"tosec": {
|
||||
"dat": "Sega Mega-CD & Sega CD - Firmware",
|
||||
"name": "Wondermega v1.00W (1992-02-06)(Sega)(JP)(en).bin",
|
||||
"description": "Wondermega v1.00W (1992-02-06)(Sega)(JP)(en)"
|
||||
}
|
||||
}
|
||||
},
|
||||
"f4f315adcef9b8feb0364c21ab7f0eaf5457f3ed": {
|
||||
"path": "bios/Sega/Mega CD/bios_CD_U.bin",
|
||||
"name": "bios_CD_U.bin",
|
||||
@@ -211554,7 +211576,7 @@
|
||||
"c500ff71236068e0dc0d0603d265ae76": "5130243429b40b01a14e1304d0394b8459a6fbae",
|
||||
"f1071cdb0b6b10dde94d3bc8a6146387": "a6120aed50831c9c0d95dbdf707820f601d9452e",
|
||||
"279008e4a0db2dc5f1c048853b033828": "54b8d2c1317628de51a85fc1c424423a986775e4",
|
||||
"732b60960226caf33df6b487f376de69": "3fc9358072f74bd24e3e297ea11b2bf15a7af891",
|
||||
"927df773f9a1c7de94a72420b2d538dd": "b3b1d880e288b6dc79eec0ff1b0480c229ec141d",
|
||||
"a5a2f9aae57d464bc66b80ee79c3da6e": "26237b333db4a4c6770297fa5e655ea95840d5d9",
|
||||
"0e7393cd0951d6dde818fcd4cd819466": "aa811861f8874775075bd3f53008c8aaf59b07db",
|
||||
"f69f173b251d8bf7649b10a9167a10bf": "6973e2593e66fd21627fedccec98d4a364afaaff",
|
||||
@@ -214440,6 +214462,7 @@
|
||||
"278a9397d192149e84e820ac621a8edd": "4846f448160059a7da0215a5df12ca160f26dd69",
|
||||
"310a9081d2edf2d316ab38813136725e": "5a8c4b91d3034c1448aac4b5dc9a6484fce51636",
|
||||
"14db9657bbaa6fbb9249752424dc0ce4": "9eed922bec1b9ff2b611dacf484d710b732bea5e",
|
||||
"732b60960226caf33df6b487f376de69": "3fc9358072f74bd24e3e297ea11b2bf15a7af891",
|
||||
"2efd74e3232ff260e371b99f84024f7f": "f4f315adcef9b8feb0364c21ab7f0eaf5457f3ed",
|
||||
"51de1667b2a131377ed6f2aacbe14e7e": "2a170e18ca44a8bbaa8d36675cdae9e7203026d0",
|
||||
"9b562ebf2d095bf1dabadbc1881f519a": "7063192ae9f6b696c5b81bc8f0a9fe6f0c400e58",
|
||||
@@ -255595,7 +255618,7 @@
|
||||
"54b8d2c1317628de51a85fc1c424423a986775e4"
|
||||
],
|
||||
"[BIOS] LaserActive PAC-S1 (Japan) (v1.05).bin": [
|
||||
"3fc9358072f74bd24e3e297ea11b2bf15a7af891",
|
||||
"b3b1d880e288b6dc79eec0ff1b0480c229ec141d",
|
||||
"f7101b40cae0484a0f43f3bbee2d55033ff1e3ec"
|
||||
],
|
||||
"Pioneer LaserActive Sega PAC Boot ROM v1.02 (1993)(Pioneer - Sega)(JP)(en-ja).bin": [
|
||||
@@ -263392,6 +263415,9 @@
|
||||
"US Sega CD 2 (Region Free) 930601 l_oliveira.bin": [
|
||||
"9eed922bec1b9ff2b611dacf484d710b732bea5e"
|
||||
],
|
||||
"[BIOS] WonderMega (Japan) (En).bin": [
|
||||
"3fc9358072f74bd24e3e297ea11b2bf15a7af891"
|
||||
],
|
||||
"bios_CD_U.bin": [
|
||||
"f4f315adcef9b8feb0364c21ab7f0eaf5457f3ed"
|
||||
],
|
||||
@@ -287546,7 +287572,7 @@
|
||||
"e20a9f41": "5130243429b40b01a14e1304d0394b8459a6fbae",
|
||||
"a318e8d6": "a6120aed50831c9c0d95dbdf707820f601d9452e",
|
||||
"11647ca5": "54b8d2c1317628de51a85fc1c424423a986775e4",
|
||||
"d21fe71d": "3fc9358072f74bd24e3e297ea11b2bf15a7af891",
|
||||
"474aaa44": "b3b1d880e288b6dc79eec0ff1b0480c229ec141d",
|
||||
"00eedb3a": "26237b333db4a4c6770297fa5e655ea95840d5d9",
|
||||
"50cd3d23": "aa811861f8874775075bd3f53008c8aaf59b07db",
|
||||
"a8cb694c": "6973e2593e66fd21627fedccec98d4a364afaaff",
|
||||
@@ -290432,6 +290458,7 @@
|
||||
"9d2da8f2": "4846f448160059a7da0215a5df12ca160f26dd69",
|
||||
"8af65f58": "5a8c4b91d3034c1448aac4b5dc9a6484fce51636",
|
||||
"7e86c5da": "9eed922bec1b9ff2b611dacf484d710b732bea5e",
|
||||
"d21fe71d": "3fc9358072f74bd24e3e297ea11b2bf15a7af891",
|
||||
"c6d10268": "f4f315adcef9b8feb0364c21ab7f0eaf5457f3ed",
|
||||
"757b3a78": "2a170e18ca44a8bbaa8d36675cdae9e7203026d0",
|
||||
"0507b590": "7063192ae9f6b696c5b81bc8f0a9fe6f0c400e58",
|
||||
@@ -306627,7 +306654,7 @@
|
||||
"8e0413c324a748ca2e493652b8089aa1db129e1ba115b5f58a99e32cebe063e1": "5130243429b40b01a14e1304d0394b8459a6fbae",
|
||||
"2ab1b2c7f4b28a74d0ecf3e073088fac19ce40866404420c70576e1862bb5502": "a6120aed50831c9c0d95dbdf707820f601d9452e",
|
||||
"dd48b75c56dbe1524dee18defa448a74f648653eb209ccba93066a7a0fe6a074": "54b8d2c1317628de51a85fc1c424423a986775e4",
|
||||
"f84d43ae82be5c03fa418286e8142c377869cd392c0d3a9dd5ba72b78d2075fc": "3fc9358072f74bd24e3e297ea11b2bf15a7af891",
|
||||
"61943363038bd94887255b23c4b40a9583011945b8edb5986b688a8bb6ab7db3": "b3b1d880e288b6dc79eec0ff1b0480c229ec141d",
|
||||
"dca942d977217f703d8d1c6eb1aeb6b32c78ecc421486bbb46c459d385161c94": "26237b333db4a4c6770297fa5e655ea95840d5d9",
|
||||
"e89b5a319f66406611ec82fe5c4aa6827c175a05135bd7bd177366cba0465021": "aa811861f8874775075bd3f53008c8aaf59b07db",
|
||||
"459325690a458baebd77495c91e37c4dddfdd542ba13a821ce954e5bb245627f": "6973e2593e66fd21627fedccec98d4a364afaaff",
|
||||
@@ -309513,6 +309540,7 @@
|
||||
"923eb9da740f98ab1572085e3d351e2c0982df0906b0b99efb68a9997c94cf8f": "4846f448160059a7da0215a5df12ca160f26dd69",
|
||||
"fb477cdbf94c84424c2feca4fe40656d85393fe7b7b401911b45ad2eb991258c": "5a8c4b91d3034c1448aac4b5dc9a6484fce51636",
|
||||
"59403e7f8be1d4e98d673cca17cfec072770a56415165ad7ac88dcd3f7273317": "9eed922bec1b9ff2b611dacf484d710b732bea5e",
|
||||
"f84d43ae82be5c03fa418286e8142c377869cd392c0d3a9dd5ba72b78d2075fc": "3fc9358072f74bd24e3e297ea11b2bf15a7af891",
|
||||
"807384678ef259494d943eddb6954dfc7069693d0dde0c424e2028488d88e81a": "f4f315adcef9b8feb0364c21ab7f0eaf5457f3ed",
|
||||
"26ec7848cdbf4fcdae522c16f707ccc9bb7ae9f492db912f09f94d5bac4dd65d": "2a170e18ca44a8bbaa8d36675cdae9e7203026d0",
|
||||
"fe608a2a07676a23ab5fd5eee2f53c9e2526d69a28aa16ccd85c0ec42e6933cb": "7063192ae9f6b696c5b81bc8f0a9fe6f0c400e58",
|
||||
@@ -498833,14 +498861,14 @@
|
||||
"Videopac+/jopac.bin": [
|
||||
"54b8d2c1317628de51a85fc1c424423a986775e4"
|
||||
],
|
||||
"Pioneer/LaserActive/.variants/[BIOS] LaserActive PAC-S1 (Japan) (v1.05).bin.d21fe71d": [
|
||||
"3fc9358072f74bd24e3e297ea11b2bf15a7af891"
|
||||
"Pioneer/LaserActive/.variants/[BIOS] LaserActive PAC-S1 (Japan) (v1.05).bin.927df773": [
|
||||
"b3b1d880e288b6dc79eec0ff1b0480c229ec141d"
|
||||
],
|
||||
"LaserActive/.variants/[BIOS] LaserActive PAC-S1 (Japan) (v1.05).bin.d21fe71d": [
|
||||
"3fc9358072f74bd24e3e297ea11b2bf15a7af891"
|
||||
"LaserActive/.variants/[BIOS] LaserActive PAC-S1 (Japan) (v1.05).bin.927df773": [
|
||||
"b3b1d880e288b6dc79eec0ff1b0480c229ec141d"
|
||||
],
|
||||
".variants/[BIOS] LaserActive PAC-S1 (Japan) (v1.05).bin.d21fe71d": [
|
||||
"3fc9358072f74bd24e3e297ea11b2bf15a7af891"
|
||||
".variants/[BIOS] LaserActive PAC-S1 (Japan) (v1.05).bin.927df773": [
|
||||
"b3b1d880e288b6dc79eec0ff1b0480c229ec141d"
|
||||
],
|
||||
"Pioneer/LaserActive/Pioneer LaserActive Sega PAC Boot ROM v1.02 (1993)(Pioneer - Sega)(JP)(en-ja).bin": [
|
||||
"26237b333db4a4c6770297fa5e655ea95840d5d9"
|
||||
@@ -543974,6 +544002,12 @@
|
||||
"Mega CD/US Sega CD 2 (Region Free) 930601 l_oliveira.bin": [
|
||||
"9eed922bec1b9ff2b611dacf484d710b732bea5e"
|
||||
],
|
||||
"Sega/Mega CD/[BIOS] WonderMega (Japan) (En).bin": [
|
||||
"3fc9358072f74bd24e3e297ea11b2bf15a7af891"
|
||||
],
|
||||
"Mega CD/[BIOS] WonderMega (Japan) (En).bin": [
|
||||
"3fc9358072f74bd24e3e297ea11b2bf15a7af891"
|
||||
],
|
||||
"Sega/Mega CD/bios_CD_U.bin": [
|
||||
"f4f315adcef9b8feb0364c21ab7f0eaf5457f3ed"
|
||||
],
|
||||
|
||||
@@ -0,0 +1,70 @@
|
||||
"""A variant is another revision of its primary, and its catalog name says so.
|
||||
|
||||
The LaserActive PAC-S1 v1.05 variant was the WonderMega v1.00W boot ROM:
|
||||
No-Intro and TOSEC both named it, and the name shared no word with the
|
||||
path it was filed under. A revision of the same machine always shares one
|
||||
(machine, maker or file stem). Reads the repository: skips without the
|
||||
database.
|
||||
"""
|
||||
|
||||
from __future__ import annotations
|
||||
|
||||
import json
|
||||
import re
|
||||
import unittest
|
||||
from pathlib import Path
|
||||
|
||||
REPO_ROOT = Path(__file__).resolve().parents[1]
|
||||
|
||||
_GENERIC = {
|
||||
"bios", "japan", "europe", "world", "boot", "firmware", "version",
|
||||
"system", "rom", "bin", "usa", "the",
|
||||
}
|
||||
|
||||
|
||||
def _words(text: str) -> set[str]:
|
||||
return {
|
||||
w for w in re.split(r"[^a-z0-9]+", text.lower())
|
||||
if len(w) >= 3 and not w.isdigit() and w not in _GENERIC
|
||||
}
|
||||
|
||||
|
||||
def catalog_words(provenance: dict) -> set[str]:
|
||||
words: set[str] = set()
|
||||
for record in provenance.values():
|
||||
for key in ("name", "description", "dat"):
|
||||
words |= _words(record.get(key, ""))
|
||||
return words
|
||||
|
||||
|
||||
class VariantsMatchTheirCatalogName(unittest.TestCase):
|
||||
def test_the_rule_catches_the_wondermega_case(self):
|
||||
provenance = {
|
||||
"no-intro": {"dat": "Sega - Mega Drive - Genesis",
|
||||
"name": "[BIOS] WonderMega (Japan) (En).md"},
|
||||
"tosec": {"dat": "Sega Mega-CD & Sega CD - Firmware",
|
||||
"name": "Wondermega v1.00W (1992-02-06)(Sega)(JP)(en).bin"},
|
||||
}
|
||||
old = "bios/Pioneer/LaserActive/.variants/[BIOS] LaserActive PAC-S1 (Japan) (v1.05).bin.d21fe71d"
|
||||
self.assertFalse(_words(old) & catalog_words(provenance))
|
||||
self.assertTrue(
|
||||
_words("bios/Sega/Mega CD/[BIOS] WonderMega (Japan) (En).bin")
|
||||
& catalog_words(provenance)
|
||||
)
|
||||
|
||||
def test_every_catalogued_variant(self):
|
||||
db_path = REPO_ROOT / "database.json"
|
||||
if not db_path.exists():
|
||||
self.skipTest("database.json is not built")
|
||||
files = json.loads(db_path.read_text(encoding="utf-8"))["files"]
|
||||
foreign = [
|
||||
entry["path"]
|
||||
for entry in files.values()
|
||||
if "/.variants/" in entry["path"] and entry.get("provenance")
|
||||
and not _words(entry["path"]) & catalog_words(entry["provenance"])
|
||||
]
|
||||
self.assertEqual(foreign, [])
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
unittest.main()
|
||||
Reference in new issue
Block a user