Commit Graph
2782 Commits
Author SHA1 Message Date
Abdessamad Derraz 87a4e8e1b6 fix: send unreleased platforms to the installer
A release recorded without a platform's pack linked its button to that release, which serves no pack for AmberELEC, EmuELEC, KNULLI, MinUI, NextUI or MyMinUI. The cell now names the release and points to the installer, which reads the file lists on main. Core folder links resolve each core name to the profile page that describes it (mednafen_vb is beetle_vb).
2026-10-22 11:04:25 +02:00
Abdessamad Derraz 4501601769 fix: show where each platform's pack goes
Platform pages labelled base_destination, the root the platform's own list writes from, as the BIOS path, so EmuDeck read bios/ where the pack goes into ~/Emulation/bios/. The row now gives the registry's extract_to, the folder the README and the pack guide name. A platform that names no file (MinUI and its forks) showed 0/0 coverage and an empty systems table; its page now lists each core folder with the files the pack puts in it.
2026-10-22 10:56:35 +02:00
Abdessamad Derraz fa7769bea7 chore: merge the pro-1000 logo database 2026-10-22 10:49:47 +02:00
Abdessamad Derraz 480c400958 feat: collect the pro-1000 logo database
Both pairs from the Real3D SDK disc (_SETUP.1): Bayou 0x64130009 at
Assets/, Orlando 0x64130005 in .variants/. The .pmem size check against
the .cmem header keeps a pair from mixing models.
2026-10-22 10:49:19 +02:00
Abdessamad Derraz e0b9f3d45b chore: regenerate database and manifests 2026-10-22 10:48:41 +02:00
Abdessamad Derraz f110f34f8c fix: rebuild sys68k_cpu30.zip from its recipe
The archive held 33 members of other sets (H19, Mockingboard...) next to its five CPU-30 ROMs. Every extra member is held elsewhere in the collection. Rebuilt as TorrentZip from the five members MAME 0.289's listxml names, checked by crc32 and sha1.
2026-10-22 08:18:37 +02:00
Abdessamad Derraz 45c442b413 chore: merge the pro1000 set and clone check 2026-10-22 08:16:15 +02:00
Abdessamad Derraz 36f7d60d88 feat: fail on a declared archive with no copy
The layout check skipped any archive it found no copy of, and it looked
copies up by name only, so 23 MAME device sets held through the clone map
were never checked and pro1000.zip was never reported absent.
2026-10-22 08:15:45 +02:00
Abdessamad Derraz bf6106ce23 chore: collect the real3d pro-1000 firmware set
p1_p4.bin and p2.bin come from Group13 of the InstallShield archive on
the PRO-1000 SDK CD (archive.org item real3d, real3d.iso sha1
042fbf36). Both match the crc32 Config/Games.xml declares. Built as
TorrentZip.
2026-10-22 08:15:41 +02:00
Abdessamad Derraz 3e6da220b8 chore: name the remedy for an unheld pin 2026-10-22 08:06:29 +02:00
Abdessamad Derraz ccac829b54 chore: regenerate database and manifests 2026-10-22 07:59:31 +02:00
Abdessamad Derraz e3e78dfe9a chore: merge name the doukutsu-rs content file 2026-10-22 07:53:54 +02:00
Abdessamad Derraz 4ae169ad11 chore: merge collect the naomi.zip emuelec pins 2026-10-22 07:53:54 +02:00
Abdessamad Derraz 361a3840e0 chore: regenerate database, manifests and exports 2026-10-22 07:52:13 +02:00
Abdessamad Derraz e1aac191e7 fix: skip platforms with no native list
export_native counted MinUI, NextUI and MyMinUI as failures although the registry marks them native_list: none: their code names no BIOS file, so there is no list of theirs to correct.
2026-10-22 07:52:08 +02:00
Abdessamad Derraz 48f3042740 feat: collect the naomi.zip emuelec pins
EmuELEC pins bios/dc/naomi.zip at md5 e63d892c since its batocera-systems
of 2019-10-25 (8952db90), and AmberELEC inherits the entry. The archive is
an older MAME naomi set (20 members, dcnaodev.bios, epr-21578b) kept
verbatim from BatoceraPLUS/Batocera.PLUS-bios naomi.zip (602a91e9).
2026-10-22 07:29:52 +02:00
Abdessamad Derraz e2d21cd955 feat: name the doukutsu-rs content file 2026-10-22 07:13:34 +02:00
Abdessamad Derraz 18b0c556bf feat: collect the dinothawr game manifest
dinothawr.game is the content file or, without content, system_dir/dinothawr/dinothawr.game. The copy is the one at the pinned revision, which references bg.apng; the 2013 buildbot archive carries an older manifest.
2026-10-22 07:13:34 +02:00
Abdessamad Derraz c9e40eff0b feat: collect tyrian enemy sprite banks
A type 5 level event loads newsh<char>.shp through shapeFile[34] with dir_fopen_die. The 31 banks the Tyrian 2.1 levels name are listed, those of episode 1 required, and taken from the freeware tyrian21.zip. newsh1 and newsh6 load on every run and are required.
2026-10-22 07:13:30 +02:00
Abdessamad Derraz 899da5fabe feat: list flashback data reminiscence opens
The DOS data the engine reads from the content directory becomes structured game_data entries: level, global, monster, cutscene and subtitle files, the demo archive and CD probe, the Sega CD voice file and the Amiga music modules.
2026-10-22 07:13:22 +02:00
Abdessamad Derraz 1263f71e78 chore: merge the bios set layouts 2026-10-22 07:02:57 +02:00
Abdessamad Derraz d768a11cbd feat: check every declared archive layout is held 2026-10-22 06:33:52 +02:00
Abdessamad Derraz a08950ab26 docs: per-system cores settle the category 2026-10-22 06:31:08 +02:00
Abdessamad Derraz cd7d993cac feat: settle entries by their system's cores
A system that lists the cores it runs is settled by those cores alone, so an unprofiled core of another system no longer leaves its entries open. Readers whose core runs the entry's system are named first, and cores that only share the file name are listed as such.
2026-10-22 06:30:56 +02:00
Abdessamad Derraz 4bc90cf06e chore: merge the elec core names 2026-10-22 06:29:22 +02:00
Abdessamad Derraz 9648b9fc3b feat: read elec ports and per-system cores
EmuELEC's ports system has one emulator, `ports`, the dispatch to a
script ports.yaml generates. The scraper now reads each port's engine
(the libretro core handed to emuelecRunEmu.sh with -C, else port_exe),
so devilutionx, sonic2013, soniccd, sonic-mania, reminiscence and
rigelengine are examined. Standalone emulators keep the spelling the
launch code dispatches on instead of invented lowercase forms, and
media players and runtimes go to the overrides' remove_cores.

Each system of the AmberELEC, EmuELEC and KNULLI lists now carries the
cores its ES list offers it, in menu order, under `cores:`.
2026-10-22 06:28:24 +02:00
Abdessamad Derraz d55a43bd68 feat: name elec and knulli builds in profiles
EmuELEC, AmberELEC and KNULLI launch standalone emulators by the name
their launch code dispatches on (HATARISA, PPSSPPSDL, FBNEOSA) and ship
32-bit or patched builds of libretro cores under their own .so names
(flycast_32b, mupen64plus_next_alt, genesis_plus_gx_cart_special,
mame0139, flycast-xtreme). Each name joins the profile of the project
its package builds. fceumm_mod reads gg.rom, not gamegenie.nes, and
never opens it, so it gets its own profile.
2026-10-22 06:28:14 +02:00
Abdessamad Derraz a0b27d612d fix: align tests with the ten-value pack result
Two test modules still unpacked nine values from verify_pack_against_platform. The category evidence joined readers with semicolons, which the prose rule refuses on generated pages, and three comments used clause semicolons.
2026-10-22 06:23:15 +02:00
Abdessamad Derraz 8ba65de1ca chore: merge the game data filter 2026-10-22 06:19:55 +02:00
Abdessamad Derraz aed958ccd1 docs: document the game data filter 2026-10-22 06:19:13 +02:00
Abdessamad Derraz 48a9a61819 feat: let the installer skip game data
install.py --no-game-data leaves out the files and omissions the manifest
marks game data, in an install, --check and --dry-run, and names them with
their category. The --events summary gains left_out, one group per
category with every destination. A list without categories is refused.
2026-10-22 06:19:10 +02:00
Abdessamad Derraz 8b952968d6 feat: add a --no-game-data pack narrowing
The install manifest marks each game data file "category": "game_data":
a platform entry only game data profile entries read, or a core file its
profile declares game data. Firmware carries no category. Every manifest
says "categorized": true so the installer can refuse an older list.

generate_pack.py --no-game-data cuts those files from the platform list
and the core profiles before the build, names each one with the cores that
read it as game data, and tags the pack _NoGameData through _narrowings.
verify.py and the pack check take the same cut, so --verify-packs and the
report describe the pack the builder wrote. Modes without a platform
(--emulator, --system alone, --from-md5) and --all-variants refuse it.
2026-10-22 06:19:05 +02:00
Abdessamad Derraz 519bcb8a3f docs: cite the awbios layout in mame4droid 2026-10-22 06:18:24 +02:00
Abdessamad Derraz 2d7e3b9c48 feat: collect the bios set layouts profiles name
Each profile's contents list names one version of a MAME, AdvanceMAME,
FBA or MAME4droid set. MAME 0.278-0.289 sets come from the archive.org
non-merged romsets; the 0.37b5-0.139 sets are TorrentZip builds of the
listed members, taken from the 0.78 reference set, MAME 0.149 and the
MAME4droid 0.139 romset.
2026-10-22 06:18:24 +02:00
Abdessamad Derraz 630c3758f5 docs: every entry carries its category 2026-10-22 05:46:14 +02:00
Abdessamad Derraz be9036f2b2 feat: document the category of every entry
Held entries carry their category and readers too, not only missing ones, so each platform page says which cores read every file it lists and where the code does it. Severity still applies to firmware gaps only.
2026-10-22 05:46:09 +02:00
Abdessamad Derraz a75ea05b86 feat: document what settles each category
Each missing platform entry now carries its evidence: the profile entries that read it with their source reference, the cores of its system examined without finding a reader, or why the question stays open. verify --verbose prints it, --json carries it and the platform pages show it.
2026-10-22 05:43:06 +02:00
Abdessamad Derraz f66adfdcbc feat: categorize missing platform entries
A platform list can name a game's data files or a file no core it runs opens. Verify gives each missing entry a category read from the profiles of the platform's cores: firmware, game data or unread. Only firmware gaps carry a severity and fail --strict; the others are counted on their own line, and the pack check no longer counts them as pack errors. Missing firmware stays a conformance error.
2026-10-22 05:38:57 +02:00
Abdessamad Derraz 7e2f753c96 chore: merge the galgames bios set 2026-10-22 05:28:55 +02:00
Abdessamad Derraz 27b7354eab chore: replace galgames.zip with the bios set
The archive held MAME's galgame set (sw97.lst), not the Galaxy Games
BIOS root galgames (src/mame/ces/galgames.cpp:1301). The new archive
holds the six v1.71/v1.80/v1.90 ROMs, TorrentZip, identical to the
MAME 0.289 romset on archive.org (item mame-0.289).
2026-10-22 05:28:20 +02:00
Abdessamad Derraz bd4da5caff chore: merge the rigelengine profile 2026-10-22 04:38:30 +02:00
Abdessamad Derraz 241b50c749 feat: collect duke nukem ii shareware data
From archive.org msdos_DUKE2_shareware DUKE2.zip (md5 bc30f5520e452bac6866deb37ef918b2), the release RigelEngine points to. The archive holds neither LCR.MNI nor O1.MNI, the registered markers.
2026-10-22 04:38:00 +02:00
Abdessamad Derraz 515758e9c6 feat: add rigelengine profile
Duke Nukem II engine. NUKEM2.CMP validates the game path and holds every asset; the five intro movies are skipped when absent.
2026-10-22 04:37:55 +02:00
Abdessamad Derraz ec4c11a2b2 feat: add windows script 5.7 for future pinball 2026-10-22 04:28:43 +02:00
Abdessamad Derraz b7b407698f fix: count files the collection lacks apart
The pack check failed a pack for a declared file nothing in the collection resolves to, though the builder cannot ship it and verify already reports it missing. Such destinations are now counted as not in the collection; a held file absent from the pack stays an error.
2026-10-22 04:28:43 +02:00
Abdessamad Derraz e05844e611 chore: merge the handheld port 2026-10-22 04:12:09 +02:00
Abdessamad Derraz 841017c887 chore: merge the minui family platforms 2026-10-22 04:09:17 +02:00
Abdessamad Derraz c7be31699f docs: document the minui family platforms 2026-10-22 04:04:40 +02:00
Abdessamad Derraz 43bdf83973 feat: add minui, nextui and myminui platforms
minarch hands every core SDCARD_PATH/Bios/<TAG> as its system directory
and opens no file in it. The scrapers read each pak's launch.sh (core,
tag, devices), each device's core makefile (the project a library is
built from: MyMinUI's dosbox_libretro.so is dosbox-pure) and the minarch
statement, at a pinned commit. The installer recognises the card from
.system/version.txt and refuses a folder inside it.
2026-10-22 04:04:36 +02:00
Abdessamad Derraz d0802c5360 feat: place core files per handed system dir
A platform can hand each libretro core a system directory of its own
(core_system_dirs). platform_layouts then gives one view per directory,
so the gap report, the builder, the manifest, slots and cross_reference
place a core's files below each folder it is handed, and a core handed
none gets no file. Resolution strips the folder again and searches the
collection by the core's own path.
2026-10-22 04:04:31 +02:00