Commit Graph
667 Commits
Author SHA1 Message Date
Abdessamad Derraz c1c3808e1e fix: tell the installer user what blocks a write 2026-10-17 12:41:45 +02:00
Abdessamad Derraz b151b21fcf fix: name an archive the resolver cannot read 2026-10-17 12:38:11 +02:00
Abdessamad Derraz 62a090be2f fix: list exclusion notes only when asked 2026-10-17 12:37:34 +02:00
Abdessamad Derraz f6b808b1d9 feat: let verify fail on a missing required file 2026-10-17 12:36:35 +02:00
Abdessamad Derraz 4544006aff feat: wait out a forge rate limit while scraping 2026-10-17 12:34:12 +02:00
Abdessamad Derraz ae0a918f74 fix: evaluate batocera's kconfig per board
The target scraper treated every select in Config.in as unconditional
and never set the symbols Buildroot sets, so nearly every board listed
the same 171 cores and xroar, which needs OpenGL, reached none. Selects
now fire from their own config, to a fixed point, from the flags each
board file sets, with Buildroot's arch and OpenGL provider rules read at
the commit Batocera pins. A board that builds no image is no target.
2026-10-17 12:33:44 +02:00
Abdessamad Derraz 9980a694e4 refactor: read pack counts in one branch
Also gives the platform typo test a scratch directory it removes.
2026-10-17 12:32:20 +02:00
Abdessamad Derraz b6331a765a fix: name the platform a typo was meant to be 2026-10-17 12:28:27 +02:00
Abdessamad Derraz 2645626684 feat: map raspberry pi models to batocera boards 2026-10-17 12:24:19 +02:00
Abdessamad Derraz c2ea021699 fix: file retrobat systems with batocera's slugs 2026-10-17 12:03:54 +02:00
Abdessamad Derraz e540dac996 fix: give one native system id one slug
RetroDECK filed coco as tandy-coco and Dragon as dragon-32-64, MiSTer
filed COCO3 as tandy-coco and Recalbox kept its raw ids, so none of
them met xroar's coco, coco3 and dragon64 and its ROMs reached no
system. The scraper maps now agree and a test holds every shared
native id to one system.
2026-10-17 11:59:38 +02:00
Abdessamad Derraz 27ddd47b20 fix: name one file per search chain for RetroPie 2026-10-17 11:54:56 +02:00
Abdessamad Derraz ec4a06e872 fix: name a System.dat addition by its path 2026-10-17 11:54:05 +02:00
Abdessamad Derraz db179faf82 fix: write no platform size beside a truth hash 2026-10-17 11:53:18 +02:00
Abdessamad Derraz 5f62597e6f fix: keep two cores' revisions of a name apart
The truth model merged a pathless entry into another core's entry of
the same name even when their contents disagreed, so the export wrote
one core's size next to the other core's md5.
2026-10-17 11:52:40 +02:00
Abdessamad Derraz 5a01a45d6b chore: hold every target core name to a profile 2026-10-17 11:50:21 +02:00
Abdessamad Derraz 6cc969e043 fix: judge path conflicts by the builder verdict 2026-10-17 11:47:42 +02:00
Abdessamad Derraz 7ed5ed3cee fix: keep archives whole in verify's region filter 2026-10-17 10:43:54 +02:00
Abdessamad Derraz 83d8f62f68 fix: map bizhawk's ares to its n64 core only
BizHawk embeds ares as Ares64, its N64 core, whose 64DD IPL its own
FirmwareDatabase declares. Mapped to the whole ares profile, it pulled
thirty systems into the BizHawk pack and made slots accuse
FirmwareDatabase.cs of a wrong MSX.rom it never declared for ares.
2026-10-17 10:39:27 +02:00
Abdessamad Derraz af4b43d64c fix: tell a pack note by its name, not its path 2026-10-17 10:38:18 +02:00
Abdessamad Derraz ccb35b9b82 refactor: read the preferred-entry rule from packresolve 2026-10-17 10:38:18 +02:00
Abdessamad Derraz 5f47b77112 fix: judge prose of profiles pinned per build mode 2026-10-17 10:32:04 +02:00
Abdessamad Derraz 86043ed931 fix: count drift since the pin in profile triage 2026-10-17 10:31:48 +02:00
Abdessamad Derraz a9be4532af fix: report a refused forge as unread, not gone 2026-10-17 10:31:42 +02:00
Abdessamad Derraz 921de6a1a6 fix: refuse a truth pack a platform cannot fill 2026-10-17 10:31:02 +02:00
Abdessamad Derraz 7a6e494597 fix: name custom and system packs by their selection
Two --from-md5 runs with different hash lists wrote the same file, the
second replacing the first, and a pack limited to thirty systems built
a name longer than a file name may be. The custom pack now carries a
digest of its hash list, and a long system list keeps its first system,
a count and a digest, as the emulator pack does.
2026-10-17 10:28:11 +02:00
Abdessamad Derraz 4f43442036 fix: serve dolphin's PAL IPL for australia
Dolphin files the Australian country code under Region::PAL, whose
IPL lives in GC/EUR. Tagged europe alone, --region australia dropped
it and kept the American IPL, which Dolphin never reads for those
discs.
2026-10-17 09:20:13 +02:00
Abdessamad Derraz 1afe428e16 fix: credit any accepted version in the gap report 2026-10-17 08:55:02 +02:00
Abdessamad Derraz 45b58d2417 fix: write the truth model and clone map atomically 2026-10-17 08:54:29 +02:00
Abdessamad Derraz 53625156d6 fix: key the zip member index on all its inputs 2026-10-17 08:52:21 +02:00
Abdessamad Derraz d1807af791 fix: stop the scan on an unreadable database 2026-10-17 08:52:04 +02:00
Abdessamad Derraz e3c5d97b94 fix: free a path the builder refuses to fill
verify counted a declaration whose hash the frontend refuses as
occupying its path, while the builder leaves it out and a core file
takes the place; the report then called that core file missing from
the pack. It now reads the builder's verdict. The hidden-extras tests
move to RetroArch and RetroBat, which still fold case, and test the
same-bytes twin again instead of skipping.
2026-10-17 08:51:45 +02:00
Abdessamad Derraz 6e8f2df24f fix: keep both cases on lakka and retropie
Both run on Linux but inherited RetroArch's case folding, so a core
file differing from a platform name only by case left their packs:
MesenCE's bios.col and np2kai's lowercase 2608_*.wav, which those
cores open with that exact case. They are now case-sensitive, the
shared groups fold only where the platform does, and Lakka gets its
own pack instead of sharing RetroArch's.
2026-10-17 08:38:16 +02:00
Abdessamad Derraz 08b239f22a fix: resolve a name with its directory as a path 2026-10-17 08:29:34 +02:00
Abdessamad Derraz 51f3249a7d fix: give a shared core slot to the pinned claim
hypseus-singe asks for gamecontrollerdb.txt by name alone and, first
in profile order, took the BIOS root of Batocera, RetroBat and
RetroPie with C-Dogs' small table while Solarus pins its own by sha1.
A destination two cores claim now goes to the one naming its content.
2026-10-17 08:27:08 +02:00
Abdessamad Derraz 6810e8df9a fix: never prove a file by another emulator's tree
lrps2 names no hash for its GameIndex.yaml, and the only full-tail
copy was ARMSX2's: it counted as path proof and replaced the file
RetroArch pins on desktop targets, which have no ARMSX2. Upstream
PCSX2 took ARMSX2's patches.zip by name the same way. A copy in
another emulator's tree now proves nothing at any tail length, and
LRPS2's own GameIndex comes from the tree the buildbot publishes.
2026-10-17 08:12:24 +02:00
Abdessamad Derraz 24d161604b fix: let retrodeck's components name its cores
The registry list added clk and gsplus, which RetroDECK does not ship
as components, current or archived, and overrode the list the scraper
reads from the component manifests.
2026-10-17 04:45:13 +02:00
Abdessamad Derraz e09a37d21e feat: keep platform-built cores out of all_libretro
Recalbox compiles libretro/mame at 0.258 and 0.278 itself; typed
libretro, both profiles were resolved for every all_libretro platform
although the buildbot RetroArch installs from has neither. A profile
now names the platforms that build it (built_by), and is reached only
when a platform lists it by name.
2026-10-17 04:44:25 +02:00
Abdessamad Derraz d9ef6ad0ad feat: read retrobat's cores from its es_systems
RetroBat's platform file carried no core list, and a registry list
copied from Batocera stood in with ports RetroBat never runs and none
of its standalone emulators marked as such. The scraper now reads
es_systems.cfg at the release tag: libretro cores, and every other
emulator as standalone.
2026-10-17 03:40:09 +02:00
Abdessamad Derraz 6280f4c370 feat: read recalbox's cores from its system files
es_bios.xml names only the cores that need a BIOS, so a hand-kept
registry list stood in, with mame and mamemess that Recalbox does not
ship and without vice, ymir, vircon32 and others it does. The scraper
now reads each system.ini of recalbox-romfs2 at the scraped tag, and
the registry list is gone.
2026-10-17 03:31:11 +02:00
Abdessamad Derraz a4da6d205f feat: profile the MAME releases recalbox builds
Recalbox ships libretro/mame built at 0.258 and at 0.278, and no
profile described either release. mame_hash_scraper gains --release,
which reads the BIOS root sets at one mamedev tag and writes a profile
pinned to it; mame0258 and mame0278 are generated from it, every
source_ref anchored at its tag.
2026-10-17 03:31:11 +02:00
Abdessamad Derraz 6f0692aada chore: build a group's test pack under its given name 2026-10-17 02:52:49 +02:00
Abdessamad Derraz decd70b19e feat: pack every core batocera offers in es
Batocera's cores were read from configgen-defaults.yml, one per system,
and a hand-kept registry list overrode even that; DOSBox Staging,
melonDS DS and nine other cores a user can pick in ES were outside the
pack, while mamemess, which Batocera does not ship, was in. The
scraper now reads es_systems.yml, the registry list is gone, and the
target scraper names standalone emulators (amiberry, fsuae, vice)
instead of only the machines listed under them.
2026-10-17 02:26:14 +02:00
Abdessamad Derraz e5b8cede92 fix: agree on missing files in system packs
The emulator pack recorded only loose files as a path's occupant, so a
path an archive or data tree had filled was reported missing even with
the same bytes in the ZIP, and an archive several profiles ask for was
counted once per profile. verify registered neither, and credited one
profile's file at a path holding another's. Both now record archives
and tree members in pack order; --system snk-neogeo-mvs went from 113
missing in the pack and 51 in verify to 59 on both sides.
2026-10-17 02:20:25 +02:00
Abdessamad Derraz cb41a52b17 fix: skip region-dropped extras in the hidden report 2026-10-17 02:03:26 +02:00
Abdessamad Derraz 24f7ade261 fix: block a pin bump when git history is unreadable
realign_prose read a failing git log as an empty history and stopped
silently at an unreadable revision, so the stale-prose check answered
"nothing to move" and let --bump-commit through. It now reports such
citations to read again instead of passing them.
2026-10-17 02:00:39 +02:00
Abdessamad Derraz 03784eeceb fix: count instruction notes in pack_files 2026-10-17 01:59:50 +02:00
Abdessamad Derraz 42950a553c feat: refresh data trees once per online pipeline
Step 2 refreshed the data directories, then the pack build and the
manifest build refreshed them again, so a tree tracking a moving
branch could differ between the pack and the manifest. generate_pack
gains --no-refresh-data, which packs the cached trees and still
fetches release assets; the online pipeline passes it to both builds.
2026-10-17 01:59:20 +02:00
Abdessamad Derraz e26516fc0e fix: write a group's pack under the group's name
The RetroArch and Lakka pack was built under RetroArch's own name and
renamed afterwards, which overwrote then carried away a --platform
retroarch pack in the same directory, and failed on Windows where
os.rename refuses an existing target.
2026-10-17 01:58:15 +02:00
Abdessamad Derraz 29fb1a58e4 fix: name long emulator packs within a file name
--system snes joined 23 emulator names into the ZIP name and died
with ENAMETOOLONG before writing anything. The system pack now passes
its own name in, and an --emulator selection too long to join keeps
its first name, a count and a digest of the selection.
2026-10-17 01:57:53 +02:00