Commit Graph
4968 Commits
Author SHA1 Message Date
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 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 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 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 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 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
Abdessamad Derraz c182cfa948 feat: profile amiberry 7.1.1 built by AmberELEC
AmberELEC builds amiberry c53d6db (CMakeLists.txt declares 7.1.1). Its
ROM path is rom_path, else roms/ below the home directory
(AMIBERRY_HOME_DIR, ~/Amiberry, or the working directory in portable
mode), scanned at its root by the ROM database. The WHDLoad booter
reads whdboot/ below $XDG_DATA_HOME/amiberry. EmuELEC's 452783a adds
13 PPC board ROMs to the database and hashes flash images otherwise,
so it gets its own profile. AmberELEC reaches its Kickstarts through
the .uae kickstart_rom_file paths, the fixed_name records.
2026-11-09 20:58:25 +01:00
Abdessamad Derraz 9d72fe4546 feat: profile amiberry 5.6.5 built by ROCKNIX
ROCKNIX builds amiberry 5c54536 (target.h declares 5.6.5). Every file
it reads lies below its start path, the working directory: the ROM
database dumps, aros-ext.bin, aros-rom.bin and rom.key in kickstarts/,
the WHDLoad booter files in whdboot/. Profiled from that revision,
pin_frozen with pin_build on ROCKNIX's package.mk.

The ROCKNIX scraper records the folder its start script enters and the
kickstarts link it carries there by copying /usr/config/amiberry, so
<cwd>/kickstarts binds to the BIOS root. A standalone + libretro profile
under a name the platform's own build answers to no longer resolves
there: ROCKNIX's amiberry is 5.6.5, not 8.5.0.
2026-11-09 20:58:13 +01:00
Abdessamad Derraz 297ec74bd9 chore: merge sudachi folder and ps4 fonts 2026-11-09 20:33:36 +01:00
Abdessamad Derraz b9d0613cc3 feat: collect the shadps4 system fonts
45 fonts from a PS4 firmware 11.00 dump (archive.org item
sony-ps4-system-font), checked against the item's md5 and sha1 and,
for 44 of them, byte for byte against the separate ps4font upload.
Each sits in the folder the console keeps it in: shadPS4 mounts
fonts/font and fonts/font2 as two guest folders (emulator.cpp:640-661),
so the ten font2 fonts move there and the seven font2 files the mount
also serves get entries.
2026-11-09 20:32:54 +01:00
Abdessamad Derraz e93ff86bf1 chore: merge integ configs root and switch folders
The configs root place joins roms and emulator folders in the split
handed directories, and RetroBat's portable folder table keeps both
sides. Batocera, KNULLI and RetroBat records regenerated.
2026-11-09 20:16:41 +01:00
Abdessamad Derraz 4b17bf0460 fix: read xroar coco3 ROMs from RetroBat coco
RetroBat passes XRoar -rompath bios/coco for the coco system, and its
es_features offers the CoCo 3 machines there. The per-system record now
carries those machines (machines:), and an entry whose name the
platform list does not declare is launched for the system offering
its own profile system as a machine, by _norm_system_id. coco3.rom and
coco3p.rom move from bios/dragon to bios/coco. RetroBat offers no
MC-10 machine, so the mc10 ROMs keep the default bios/dragon.
2026-11-09 20:15:47 +01:00
Abdessamad Derraz ada5f01cd1 feat: bind retrobat sudachi portable folder
Sudachi.Generator.cs:28-30 creates user/ beside sudachi.exe, and
sudachi reads it as PORTABLE_DIR (path_util.cpp:92, fs_paths.h:9) in
place of %APPDATA%. Its keys now go below emulators/sudachi/user/.
2026-11-09 20:14:41 +01:00
Abdessamad Derraz 24eab97bc7 chore: merge configs root and switch folders 2026-11-09 20:09:05 +01:00
Abdessamad Derraz a02d30f90c fix: wait for the Confirm count in the tap test
Confirm has no Install row until its dry run ends, so an Enter sent
on its title alone fell on "Counting the files" and did nothing on
the runner. The test now waits for "Counted again for these choices",
drawn once the Install row exists.
2026-11-09 20:06:44 +01:00
Abdessamad Derraz 7b90d94ebe chore: merge origin/main 2026-11-09 20:01:25 +01:00
Abdessamad Derraz 339297c75c chore: merge integ-2026-11-09 placement round
Both binding sides kept: roms_place, named handles and environment
variable directories from integ run through the pool and per-system
binding of this branch. Batocera, KNULLI and RetroBat launcher records
regenerated from the merged extractors.
2026-11-09 19:58:11 +01:00
Abdessamad Derraz 111a93440f feat: bind retrobat switch portable folders
RetroBat's generators create user/ beside yuzu.exe and eden.exe and
portable/ beside Ryujinx.exe, which the emulators read in place of
%APPDATA% (PORTABLE_DIR, Ryujinx AppDataManager.cs:12, 60). Their keys
now go below emulators/<key>/.
2026-11-09 19:54:00 +01:00