Commit Graph
139 Commits
Author SHA1 Message Date
Abdessamad Derraz 3c856bbc10 fix: lay out both builds of a dual-mode emulator
Batocera, RetroBat, Recalbox and ROCKNIX offer some emulators both as a
libretro core and standalone. Filed as standalone only, the libretro
layout was dropped: libretro Dolphin had no dolphin-emu/Sys/GC files.
Platforms now name dual-mode emulators and each gets both layouts.
2026-10-18 13:19:53 +02:00
Abdessamad Derraz ae3dc63bc3 fix: accept RomM files on size and any hash
RomM's verify_file_hashes compares the size, then md5, sha1 or crc. We
compared md5 alone, so a fixture entry with one mistyped hash was left out
of the pack RomM would accept it from. The rule is declared in romm.yml
and read by verify, the builder and the manifest.
2026-10-18 07:24:33 +02:00
Abdessamad Derraz c3162dcd27 feat: scrape Lakka per-device core lists
Lakka builds LIBRETRO_CORES minus the exclusions each project, device
and GLES image adds. Without a list, --target refused Lakka and its RPi1
pack carried firmware for cores the image does not build.
2026-10-18 06:24:01 +02:00
Abdessamad Derraz d5f40a4515 chore: drop the shared groups no platform reads
Six of the eight shared groups injected nothing: three were
included by no platform, three repeated System.dat entry for entry,
so a correction made in them reached no pack. They are removed with
their scraper wiring, and a test requires every remaining group to
contribute an entry somewhere.
2026-10-18 04:03:01 +02:00
Abdessamad Derraz df288f8c33 fix: drop np2kai font.rom, a fallback of FONT.ROM
The np2kai shared group declared font.rom as a second required file
while NP2kai reads it only when FONT.ROM, which System.dat already
declares, is absent. Case-sensitive platforms packed the font twice.
A shared group may now add a second spelling only where some code
opens that spelling itself, as the two rhythm engines do.
2026-10-18 03:59:37 +02:00
Abdessamad Derraz e4960dd4f8 fix: declare EmuDeck's emulators as standalone 2026-10-18 01:19:52 +02:00
Abdessamad Derraz 27d119cb7f fix: scrape targets at the pinned platform release 2026-10-18 00:01:36 +02:00
Abdessamad Derraz 33562e69aa chore: rescrape the emudeck target lists 2026-10-17 20:44:00 +02:00
Abdessamad Derraz 2c61a909f7 fix: find RetroArch where Windows and macOS keep it 2026-10-17 20:26:02 +02:00
Abdessamad Derraz a8bfadd4c1 feat: list recalbox cores per board
Recalbox builds seven board images with different emulators. The new
target scraper reads each board's defconfig against the package every
system.ini core names. The names that reached no profile are mapped to
the projects Recalbox builds or profiled from their source, and the
mupen64plus video plugins are set aside.
2026-10-17 15:51:39 +02:00
Abdessamad Derraz d9c74888e8 feat: list rocknix cores per device
ROCKNIX builds a different emulator set per SoC, and without a target
list an H700 handheld received the PS2, PS3 and GameCube firmware of
emulators its image lacks. The new target scraper reads the emulators
metapackage per device; seven cores ROCKNIX ships get profiles and the
Super Famicom Box ROMs one of them needs are collected.
2026-10-17 15:38:07 +02:00
Abdessamad Derraz 5cc45794f4 docs: show installer runs as they really print 2026-10-17 15:06:04 +02:00
Abdessamad Derraz 426d3c619d fix: let a platform's only target filter nothing 2026-10-17 14:48:35 +02:00
Abdessamad Derraz 2de8e11489 feat: list retroarch's linux arm64 and x86 targets 2026-10-17 13:41:10 +02:00
Abdessamad Derraz dbcd26d3ab fix: file every platform system under a known id
Thirty platform system ids, such as sufami, pokemini, vsmile, and
Recalbox's comma-joined msx1,msx2, matched no system any profile
names, so no core file was attributed to them and --system missed them.
The scraper maps now carry those names, and a test holds every platform
system to a profile system apart from two named folds.
2026-10-17 12:47:22 +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 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 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 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 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 3395236966 feat: pack the standalone emulators rocknix ships
ROCKNIX was declared libretro-only although it packages duckstation,
dolphin, ppsspp and 33 other emulators standalone, and its BIOS list
was read on the next branch under the latest release's version. The
scraper now reads the release tag and lists RetroArch plus every
standalone package.
2026-10-17 04:45:13 +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 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 346950156c fix: hash recalbox archives by their members 2026-10-16 21:06:55 +02:00
Abdessamad Derraz 7cb2c21dd9 chore: refresh retrobat to 8.3.0 2026-10-16 05:18:31 +02:00
Abdessamad Derraz e26ee44229 fix: export only what the platform declares 2026-10-10 11:15:25 +02:00
Abdessamad Derraz 1a862bc318 fix: retrobat defaults to its installer directory 2026-10-09 22:57:15 +02:00
Abdessamad Derraz 45275811f0 fix: keep the quasi88 group to the extension roms 2026-10-09 22:45:57 +02:00
Abdessamad Derraz a7de9b9c9c fix: read extract folders from the registry 2026-10-06 12:44:32 +02:00
Abdessamad Derraz 6b57377111 fix: name each retropie package once per target 2026-10-06 05:33:18 +02:00
Abdessamad Derraz 240a30f1d7 fix: read retropie targets the way retropie does 2026-10-06 05:22:34 +02:00
Abdessamad Derraz 1373964746 fix: pack windows platforms case-insensitively 2026-10-06 04:29:49 +02:00
Abdessamad Derraz 077351bab3 feat: list retrodeck standalone emulators 2026-10-06 01:43:30 +02:00
Abdessamad Derraz 403c7ff910 fix: register yaps2 resources, check data dir refs 2026-10-06 01:38:39 +02:00
Abdessamad Derraz 6d6cd7d668 fix: map pc-8801, dsi and cd-i system slugs 2026-10-06 01:22:56 +02:00
Abdessamad Derraz f033449766 chore: refresh retroarch targets 2026-10-04 21:46:52 +02:00
Abdessamad Derraz 6453a96d47 feat: read retropie version from its setup script 2026-10-04 17:47:51 +02:00
Abdessamad Derraz d50af62cde feat: fetch cemu game profiles and graphic packs 2026-10-04 16:36:00 +02:00
Abdessamad Derraz 887fc34bf6 feat: lay out standalone files by build mode 2026-10-04 16:35:59 +02:00
Abdessamad Derraz 61688111f0 chore: extend override defaults, bump retroarch pin 2026-10-04 14:58:16 +02:00
Abdessamad Derraz 37c61665d7 chore: refresh platforms and recipes upstream 2026-10-04 14:54:18 +02:00
Abdessamad Derraz 8a2a9c6ffa feat: add freshness tooling and override defaults 2026-10-04 14:54:11 +02:00
Abdessamad Derraz 691ccbfca7 feat: make the native export round-trip a platform file 2026-09-05 17:32:48 +02:00
Abdessamad Derraz 3c85f51314 feat: profile nuance, pcee2 and pokketstation 2026-09-03 22:06:30 +02:00
Abdessamad Derraz 39f61d0527 chore: refresh platform lists and targets by hand 2026-09-03 18:08:02 +02:00
Abdessamad Derraz 562e3fb20c feat: serve the pc engine cards to turbografx-cd 2026-09-03 17:51:34 +02:00
Abdessamad Derraz 597a8ff919 fix: quote rom and core names in yaml
YAML 1.1 reads an unquoted 01 as the integer 1 and 81 as 81, so the
manager set stopped naming the file its driver opens and the API
published "cores": [2048] as a number where consumers match strings.

Ground truth from MAME 0.289 at the revision the profile cites:
src/mame/vtech/crvision.cpp:957 loads "01" and "23".

The root cause was the scraper: _hash_merge wrote these names through an
f-string, so quoting the profiles alone would be undone on the next
refresh. _yaml_scalar now quotes every name, archive and description it
writes.
2026-08-10 13:35:42 +02:00