fix: prove KNULLI's MAME -hard at its builds

KNULLI 20260511 ships libretro/mame lrmame0278 and GroovyMAME
gm0277sr221e (the batocera submodule's libretro-mame.mk and mame.mk).
mameGenerator.py and libretroMAMEConfig.py pass the Macintosh boot disk
as -hard. MAME names the option of a machine's one hard disk image by its
brief type name: harddriv.h:43 returns "hard", update_names keeps it
without an index (diimage.cpp:1131-1165) and the option entries are
registered under it (emuopts.cpp:389-404, 680-694), the LC III holding
one harddisk at scsi:0 (maclc3.cpp:266). GroovyMAME's diimage.cpp,
harddriv.h and maclc3.cpp equal mamedev mame0277.

The mame profile carries that read as config_reads with KNULLI's two
builds in pin_build, and both -hard records bind. The manifest does not
change: KNULLI's own list already puts mac608, mac701 and mac755.chd in
/userdata/bios, the folder the records search.
This commit is contained in:
Abdessamad Derraz committed 2026-11-11 11:43:30 +01:00
1 parent 3820aa3cc8
commit 1d3a4076c5
2 files changed
+41

No files matched your search

+27
View File
@@ -13,6 +13,26 @@ version_basis:
path: "makefile"
pattern: '#define BARE_BUILD_VERSION "([^"]+)"'
display_name: "Arcade (MAME)"
pin_build:
- platform: knulli
repo: "https://github.com/knulli-cfw/knulli-linux"
revision: "20260511"
path: "batocera/package/batocera/emulators/retroarch/libretro/libretro-mame/libretro-mame.mk"
variable: LIBRETRO_MAME_VERSION
value: "lrmame0278"
- platform: knulli
repo: "https://github.com/knulli-cfw/knulli-linux"
revision: "20260511"
path: "batocera/package/batocera/emulators/mame/mame.mk"
variable: MAME_VERSION
value: "gm0277sr221e"
config_reads:
- file: "command line"
platforms: [knulli]
source_ref: "src/emu/emuopts.cpp:680-694"
keys:
- key: "-hard"
source_ref: "src/devices/imagedev/harddriv.h:43, src/emu/diimage.cpp:1131-1165, src/emu/emuopts.cpp:389-404, src/mame/apple/maclc3.cpp:266"
cores:
- mame
@@ -182,6 +202,13 @@ notes: |
hash and pluginspath to plugins (src/emu/emuopts.cpp:44-46, 53), and the
sets are read at the top of a rompath directory.
KNULLI ships libretro/mame lrmame0278 and GroovyMAME gm0277sr221e. In both
a machine with one hard disk image (the LC III's scsi:0 harddisk) names its
option -hard, the brief type name of the image (harddriv.h:43, diimage.cpp
update_names, emuopts.cpp get_full_option_names). GroovyMAME's diimage.cpp,
harddriv.h and maclc3.cpp equal mamedev mame0277, its emuopts.cpp carries
the same code at 396-411 and 695.
BIOS root set names follow current MAME conventions. ZN-based boards
renamed from legacy names (cpzn1 to coh1000c, atpsx to coh1000a, etc.).
File structure uses vendor-based paths (src/mame/{vendor}/).
+14
View File
@@ -1148,6 +1148,20 @@ class MameOnRetroDeckRomPaths(unittest.TestCase):
self.assertEqual(places["stvbios.zip"] - {"arcade", "mame", "consolearcade"}, {"stv"})
class MacBootDisksOnKnulli(unittest.TestCase):
def test_the_hard_records_bind(self) -> None:
# mameGenerator.py and libretroMAMEConfig.py pass the boot disk as
# -hard, the brief name of the LC III's one hard disk image
# (harddriv.h:43, diimage.cpp:1131-1165, maclc3.cpp:266).
from launchers import bound_launchers
config = load_platform_config("knulli", str(REPO_ROOT / "platforms"))
profiles = load_emulator_profiles(str(REPO_ROOT / "emulators"))
bound = [r for r in bound_launchers(config, profiles)
if r.get("emulator") == "mame" and "-hard" in str(r.get("passes_to"))]
self.assertEqual(sorted(r["build"] for r in bound), ["libretro", "standalone"])
class ArcadeParentSources(unittest.TestCase):
def test_the_index_names_each_driver_source(self) -> None:
import json