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:
Abdessamad Derraz committed 2026-10-18 19:28:48 +02:00
1 parent 1c7b2e85a4
commit d64129def8
4 files changed
+129 -25

No files matched your search

+59 -25
View File
@@ -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"
],
+70
View File
@@ -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()