Commit Graph
5004 Commits
Author SHA1 Message Date
Abdessamad Derraz 372d41e3b4 fix: replay outer roots as the pack builds them
The ZIP replay in packextras.hidden_extras now skips roms, emulators and configs entries as the builder does, so verify and pack integrity stop counting files only the installer places. The consistency check treats the Android .nomedia marker as a pack note. MAME4droid's hiscore.dat leaves bios/: the app unpacks it from its own files.zip. VVVVVV's Make and Play data.zip is collected as a release asset, which EmuELEC declares as required.
2026-11-10 01:33:10 +01:00
Abdessamad Derraz 2dc427d5d0 chore: merge origin/main 2026-11-10 00:50:05 +01:00
Abdessamad Derraz baa89556d9 fix: drop the parent of an id nothing names
No platform or profile files a system under neo-geo-pocket-color since profiles name it snk-ngpc: its SYSTEM_PARENTS entry pointed at an id without a name.
2026-11-10 00:04:52 +01:00
Abdessamad Derraz 57399b967a fix: drop amiberry copies its install provides
bundled_only.py --strict listed 14 copies in bios/Commodore/Amiga/
.variants that only the per-build amiberry profiles reach, each through
a bundled entry. Four are the AROS ROMs, and those entries say
not_bundled_on: ROCKNIX, AmberELEC and Recalbox package amiberry
without them, so their packs bring them from the collection. The tool
read bundled alone and listed them, and now keeps a copy a
not_bundled_on entry reaches. The ten others (WHDLoad, boot-data.zip,
whdload_db.xml of 5.6.5 to 8.0.0) no platform, profile or manifest
needs: removed. database.json is to be regenerated with the
collection's release assets.
2026-11-09 23:32:02 +01:00
Abdessamad Derraz a8b9853474 fix: guard openmsx roms on its user folder layout
The test's premise was stale, not the profile: openmsx.yml now writes
share/systemroms below openMSX's user folder, the file pool's first
place, and each platform's binding moves it. The test keeps guarding
the same thing: every entry under share/systemroms, and on RetroBat,
which sets OPENMSX_HOME to bios/openmsx, placed in the
openMSX/share/systemroms folder its own list declares.
2026-11-09 23:30:12 +01:00
Abdessamad Derraz c8d61fd103 fix: name rs232.rom as openmsx's code names it
AHashScanLabelNamesNoOtherDump read openmsx-libretro's rs232.rom as
fmsx's name for another dump: share/extensions/rs232.xml:18-22 names
it, so it joins CODE_NAMED. test_standalone_links called unittest.main()
before the amiberry classes, which a direct run skipped.
2026-11-09 23:28:05 +01:00
Abdessamad Derraz 9ff1c87e0f chore: refresh the source path record
The record was stale, not the test: today's pins (fheroes2 at 6c51acf,
the openmsx and linuxloader ports, the dropped EmuELEC pin_build trees
and other sessions' advances) left 15 pinned trees unrecorded and one
recorded tree pinned by nothing. Written by sitesources.py --fetch: 683
trees held, 26 not cached (gitlab.com rate limits, yuzu's mirror
answering HTTP 451).
2026-11-09 23:28:05 +01:00
Abdessamad Derraz 4a576a8409 fix: count a required set once on emulator pages
Since the groups model, load_emulator_profiles marks every member of a
required set required, and the page counted each one: DuckStation,
which needs one BIOS of the game's region among the 105 images of its
ps-bios set, read "105 required, 0 optional". The site counts a
required set once and says one file fills it, and a set whose members
the code picks by region reads as one choice. The tests were not keyed
by a count but by the profile's name, through raw YAML that no longer
carries the derived requirement: they now read the profile as the site
does, take the count from the set, and keep their guard against a
get-all-of-them reading. Fourteen other profiles with required sets
(kronos, pom2, picodrive...) were overcounted the same way.
2026-11-09 23:24:50 +01:00
Abdessamad Derraz dc5fc93f23 docs: say what RomM is in fewer words
The page lists FinalBurn Neo among the Spectrum readers now that its files sit under sinclair-zx-spectrum, two words over the ceiling RomM keeps from before its rows were tables.
2026-11-09 23:14:48 +01:00
Abdessamad Derraz bfa79d6788 fix: name the Neo Geo Pocket systems by their ids
Phase 0 files snk-neogeo-pocket and neo-geo-pocket-color under snk-ngp and snk-ngpc. The No-Intro catalogs, their importer map and the campaign list now use those ids, the games index is regenerated, and the site's name table drops the eleven entries the new aliases leave unread.
2026-11-09 23:12:26 +01:00
Abdessamad Derraz c23dec1d1b fix: drop a stale version cite from fheroes2
The EmuELEC paragraph cited version.txt:1, a line that moved from
1.0.11 to 1.1.18 under the same text. version_basis already says where
the version is read, and profile_sync now reads the profile clean.
2026-11-09 23:07:15 +01:00
Abdessamad Derraz 5404e6513c feat: profile fheroes2 at 1.1.18
At 6c51acf the engine also looks in the user config and data folders,
reads resurrection.h2d only in H2D format 3 holding the 68 files it
carries (h2d.cpp:107-145, h2d_file.cpp:39-88), and plays MIDI music with
the sound fonts of files/soundfonts and files/timidity/timidity.cfg. The
pinned 1.0.11 container, format 0 with 7 files, stops the start: the
entry now names the engine's own file. The sound font, the timidity
configuration and instruments and the translations join the profile,
all shipped with the engine. Refs re-read at the new pin, version
read from version.txt.
2026-11-09 23:06:37 +01:00
Abdessamad Derraz 594e31cd6a docs: describe the outer root fields
roms_directory, emulators_directory and configs_directory described
themselves but not their fields, which the data page lists.
2026-11-09 23:01:22 +01:00
Abdessamad Derraz 314b15b4ad fix: type role libretro cores as libretro
2048 and gong (game), radio and video_processor (utility) and the test
cores (test) are libretro builds, but their role sat in type:, which
resolve_platform_cores filters on: all_libretro left them out, so no
platform resolved them and RetroArch's manifest named none, the
--installed-cores gap of issue 87. The role moves to role:, and type
stays libretro: type keeps saying how a profile is built and run, which
the resolver reads, while teaching the resolver that three role values
mean libretro would make type a classification again. The site and
coverage leave test cores out by role. fluidsynth, a library and no
libretro core, keeps type utility. A test keeps every buildbot core
named by RetroArch's resolution.
2026-11-09 23:01:22 +01:00
Abdessamad Derraz b4152f9aaf fix: unfreeze fheroes2 and hode pins
Their pin_frozen said EmuELEC alone ships them, but they are port
engines of emuelec-ports, which no package, options file or Makefile of
a v4.8 image pulls in: no platform ships either. pin_frozen and
pin_build go, the notes say which revision EmuELEC's tree builds, and
the normal pin rules apply.
2026-11-09 22:49:17 +01:00
Abdessamad Derraz 96d57223e1 fix: designate libretro builds for installable
An installable core joined the platform's names, so the standalone
profile under the same name was designated too: Batocera, which can
download the linuxloader core and runs no standalone Linux Loader,
resolved both. A downloadable core now designates libretro profiles
only, as all_libretro reads them.
2026-11-09 22:49:01 +01:00
Abdessamad Derraz 96605d7d1b feat: profile the openmsx and linuxloader cores
The buildbot's openmsx and linuxloader cores come from libretro's own
ports on git.libretro.com, not from the standalone projects: openMSX
21.0 reading <system>/openmsx/share, and Linux Loader v3.0.14 run as a
child process from <system>/linuxloader, which the core carries. Each
gets its own libretro profile, read at its commit: openmsx-libretro
lists the 105 system ROM contents of the twelve real machines and the
extensions its options offer, linuxloader-libretro the runtime the
core carries, the game-folder files and the libgcc DLL the buildbot's
Windows build lacks. No buildbot core name is left without a libretro
profile.
2026-11-09 22:49:01 +01:00
Abdessamad Derraz c77aa7eed6 chore: merge integ installable fix 2026-11-09 22:32:23 +01:00
Abdessamad Derraz 55211acb37 fix: type amiberry 8.5.0 as the code builds it
The 8.5.0 source builds a standalone Amiberry and the libretro core, so
the profile is standalone + libretro again. A standalone name a build the
platform compiles itself answers to keeps meaning that build: RetroBat's
standalone amiberry is 8.3.0, and 8.5.0 runs there as the core only.
2026-11-09 22:23:05 +01:00
Abdessamad Derraz 8a4b7aa8e6 fix: keep buildbot cores a standalone name hides
Batocera's x86_64 RetroArch downloads the amiberry, cemu and xemu cores
although the image builds standalone emulators of those names. They now
stay in installable_cores, run both ways, and reach only the boards whose
downloader offers them.
2026-11-09 22:22:57 +01:00
Abdessamad Derraz 5ccf0edadd chore: point the shipped-build guard at knulli
EmuELEC v4.8 ships no RigelEngine: rigelengine is a dependency of
emuelec-ports, which no package, options file or Makefile of an image
pulls in. The guard now reads advanced_drastic, which KNULLI alone
ships, and still refuses a bump until the profile says why its pin
moves.
2026-11-09 22:22:08 +01:00
Abdessamad Derraz bc8669c45c fix: keep a buildbot core beside its standalone
installable_cores removed every buildbot name the image builds, so a
libretro core sharing its name with a standalone package was lost:
Batocera runs amiberry standalone and its x86_64 boards fetch
amiberry_libretro. A name now compares within its build mode, and the
resolver and the layouts treat such a core as the emulator's libretro
build, run both ways. Batocera gains amiberry, azahar, cannonball, cemu,
dosbox, ecwolf, eduke32, fsuae, openmsx, rpcs3, supermodel, vita3k, xemu
and ymir as installable, KNULLI cannonball.
2026-11-09 22:22:03 +01:00
Abdessamad Derraz d337e11c64 chore: regenerate the install lists
Data trees fetched again and the merged installer phase 0 and platform quirks applied.
2026-11-09 22:18:31 +01:00
Abdessamad Derraz 577b654a9d feat: place retrobat's amiberry 8.3.0 roms
RetroBat writes rom_path and whdboot_path below its amiberry emulator
folder and copies the kickstarts and rom.key it finds in bios into that
ROMs folder. The copies and both folders are launcher records, and the
8.3.0 standalone entries go to the emulators tree where the build reads
them.
2026-11-09 22:15:42 +01:00
Abdessamad Derraz 96faec98a4 chore: merge integ board rule 2026-11-09 21:55:49 +01:00
Abdessamad Derraz 78e6134c75 feat: resolve each platform to its own amiberry
A platform that builds Amiberry itself runs that revision under the name,
on every board it builds: RetroPie 5.7.2 and 6.3.3, Recalbox 8.2.2,
Batocera 7.1.1-332, KNULLI 7.1.1. The 8.5.0 profile is the buildbot
libretro core. It now names the ROM table's own file names and hashes
the keyboard MCU images.
2026-11-09 21:55:42 +01:00
Abdessamad Derraz ebc658f3f0 refactor: regenerate amiberry 5.6.5 and 8.0.0 2026-11-09 21:55:32 +01:00
Abdessamad Derraz 5603edcb10 feat: build amiberry 7.1.1 for knulli too 2026-11-09 21:55:32 +01:00
Abdessamad Derraz c83219da4d feat: profile amiberry 8.3.0 built by retrobat 2026-11-09 21:55:32 +01:00
Abdessamad Derraz 2d20712856 feat: profile amiberry 8.2.2 built by recalbox 2026-11-09 21:55:32 +01:00
Abdessamad Derraz 513384fa4d feat: read recalbox's amiberry rom_path 2026-11-09 21:55:32 +01:00
Abdessamad Derraz a41fb285ed feat: profile amiberry 7.1.1-332 for batocera 2026-11-09 21:55:32 +01:00
Abdessamad Derraz 42f78ec8ff feat: profile amiberry 6.3.3 built by retropie 2026-11-09 21:55:32 +01:00
Abdessamad Derraz ab5016852f feat: profile amiberry 5.7.2 built by retropie 2026-11-09 21:55:32 +01:00
Abdessamad Derraz ea2ba7c6db chore: collect each amiberry build's whdboot files
WHDLoad, boot-data.zip, the game databases and AROS as shipped by the
Amiberry revisions Batocera, KNULLI, Recalbox, RetroBat and RetroPie build.
2026-11-09 21:55:25 +01:00
Abdessamad Derraz ceee9ffbe7 chore: merge board rule and installable cores 2026-11-09 21:54:24 +01:00
Abdessamad Derraz 4ad7179bac chore: merge the platform quirks integration
# Conflicts:
#	install.ps1
#	install.sh
#	install/launchers/index.json
2026-11-09 21:54:06 +01:00
Abdessamad Derraz 20885afe04 fix: keep the cores knulli's retroarch installs
KNULLI's RetroArch is Batocera's build with its core downloader on.
Its armv7 hard-float boards (atm7039, r16, rk3128) fetch from buildbot
linux/armhf: atm7039's shipped retroarch.cfg hides the menu entry but
leaves the URL, and Settings offers the entry back. Its aarch64 boards
get no buildbot URL. ecwolf, squirreljme, stella2014 and vemulator come
back as installable cores, and openmsx, which no buildbot list carries,
stays out.
2026-11-09 21:53:50 +01:00
Abdessamad Derraz 828d1527ee fix: keep the cores batocera's retroarch installs
Batocera builds RetroArch with its core downloader (configure defaults,
qb/config.params.sh:149-150), shown in the menu since it is no Lakka
build (config.def.h:743-745), and configgen sets no URL, so the compiled
one applies: buildbot linux/x86_64 or linux/armhf, none on aarch64
(config.def.h:1855-1861). The targets scraper names that list per board
(downloads, an armv7-A CPU read from arch/Config.in.arm), the builder
and the published target lists add it, and the platform names the union
as installable_cores. applewin, gong, squirreljme and vemulator come
back that way. A build option that compiles the downloader out, or a
shipped retroarch.cfg that blanks its URL, turns it off.
2026-11-09 21:53:15 +01:00
Abdessamad Derraz 0ea7a349df fix: journey tests wait for the plain titles
The setup screen is titled Where to install? and Confirm says Counted again for these choices since the plain-words pass.
2026-11-09 21:37:38 +01:00
Abdessamad Derraz a7e757598f fix: list the libretro cores rocknix installs
ROCKNIX listed retroarch, which stood for every libretro profile (351
resolved), while its devices build 124 libretro packages. The platform
list now names the cores those packages install on at least one device.

The targets scraper read a package's name as its core: vice-lr installs
vice_x128, vice_x64, vice_xpet, vice_xplus4 and vice_xvic, which reached
no device. It now reads each package's makeinstall_target, the file
copied to ${INSTALL}/usr/lib/libretro under its target name, through
TARGET_ARCH and ENABLE_32BIT (pcsx_rearmed-lr, desmume-lr). 155
profiles resolve, each built by a device, and no device loses one.
2026-11-09 21:27:51 +01:00
Abdessamad Derraz ebba4c9c89 fix: list only what an emuelec image carries
The 29 port engines depend on emuelec-ports, which no package of a
released image depends on, and flycast-dojo is in no device list: the
targets scraper already says so (UNBUILT). The platform list and the
launcher records now hold what at least one device image carries. Each
system keeps the list es_systems.json gives it, which says whose files
its entries ask for: VVVVVV's data.zip is still never served xrick's.
2026-11-09 21:27:38 +01:00
Abdessamad Derraz 0aa551dba7 fix: list only what a batocera board builds
No Batocera board turns on BATOCERA_CORES_STILL_COMMERCIALIZED or
BATOCERA_CORES_EXPERIMENTAL (Config.in:109, 1670), so citron, ryujinx,
applewin and eka2l1 are not built, and freej2me, gong, squirreljme, uqm
and vemulator are selected by no Kconfig file at batocera-43.1. Read
with every sourced Kconfig file, the Pi 4 boards gain dxx-rebirth,
sonic2013, soniccd and xroar (mesa3d-rpi4 gives them OpenGL).
2026-11-09 21:26:40 +01:00
Abdessamad Derraz f362a54b12 fix: list only what a knulli board builds
KNULLI's es_systems.yml is Batocera's model: it lists every emulator
its configgen knows, and its Config.in selects many of them only on
x86_64 boards, which KNULLI has none of. The platform list now holds
what at least one board selects, read by the targets scraper, plus a
program the launcher runs from the BIOS folder (lexaloffle). 59 cores
and 44 standalone emulators leave the list, with their launcher records.

The targets scraper follows Config.in and every file it sources, so a
select a package declares itself counts (Batocera's mesa3d-rpi4 gives
the Pi 4 OpenGL). A sourced file absent at the pin is named and read as
empty: KNULLI 20260511 sources package/utils/vtree/Config.in, added in
June.
2026-11-09 21:26:09 +01:00
Abdessamad Derraz b356d58406 chore: merge installer phase 0
# Conflicts:
#	README.md
#	install.ps1
#	install.sh
#	install/launchers/index.json
#	wiki/installer.md
2026-11-09 21:14:01 +01:00
Abdessamad Derraz 0a4b87d9c9 chore: merge origin/main 2026-11-09 21:01:24 +01:00
Abdessamad Derraz a8f218a680 chore: merge origin/main 2026-11-09 21:01:10 +01:00
Abdessamad Derraz e4f8bb336a fix: read a wrapped BIOS folder line whole
A long checkout path wraps "BIOS folder:" after the label, and the
test joined the lines without the space it dropped. It now compares
without spaces, which holds for either wrap point.
2026-11-09 21:00:45 +01:00
Abdessamad Derraz aeccdf6e11 chore: merge amiberry builds 2026-11-09 20:59:15 +01:00
Abdessamad Derraz bc386e0561 feat: profile amiberry 8.0.0 built by EmuELEC
EmuELEC 4.8 builds amiberry 452783a (CMakeLists.txt declares 8.0.0).
Same paths as 7.1.1, a ROM database with the PPC flash images, which
the scan hashes with their config bytes cleared, so no file hash is
declared for them. Tests check that ROCKNIX, AmberELEC and EmuELEC
resolve their own build, the other platforms the 8.5.0 profile, and
that ROCKNIX places its kickstarts at the BIOS root.
2026-11-09 20:58:25 +01:00