Commit Graph
4960 Commits
Author SHA1 Message Date
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
Abdessamad Derraz 7e22c38113 feat: place shadps4 files below the configs root
Batocera and KNULLI start shadPS4 from CONFIGS/shadps4, so its user
folder sits below /userdata/system/configs. The scrapers read that root
from batoceraPaths and write configs_root with its source_ref. The
manifest names it configs_directory, and install.py honours it through
the same checks as roms_directory: character rules, at most two ups,
the ancestor match and the lexical bound.
2026-11-09 19:53:49 +01:00
Abdessamad Derraz 9d955bb980 feat: add the shadps4 system fonts
The font library opens each SST font by its dumped or PS4 name in
fonts/, fonts/font/ and fonts/font2/ and falls back to the Noto fonts it
embeds, so the 38 entries are optional with an HLE fallback.
2026-11-09 19:53:35 +01:00
Abdessamad Derraz 5bf8aa8a3e fix: place amiberry ROMs in rom_path
The standalone Amiberry scans rom_path, ROMs below its content root by
default, for the ROMs of its database, without descending into
folders, and reads rom.key beside the Kickstart and the MT-32 ROMs
from mt32-roms. Those entries now carry standalone_path relative to
it, the four Kickstart labels holding slashes flattened. The kick*.rom
names stay the libretro build's.

Batocera's config_directories reads its rom_path save, KNULLI reuses
it. On Batocera, KNULLI and RetroPie the ROMs move from the BIOS root
to bios/amiga.
2026-11-09 19:48:22 +01:00
Abdessamad Derraz 8ec0c5482c fix: place xroar ROMs in each rompath
XRoar reads a ROM by name from the directories of rompath. The entries
take their file name as path, relative to ~/.xroar/roms or
${prefix}/share/xroar/roms, and rompath and -rompath are declared as
search lists.

Batocera records its rompath line, Recalbox -rompath bios/<system>
(the placeholder its extractor already writes), RetroBat its -rompath
as two records, bios/dragon and bios/coco for coco. An entry whose
name the platform list does not declare follows the launch its
profile system is listed under: Recalbox lists mc10.rom under
trs80coco, so alice.rom is read there.

Batocera ROMs move from the BIOS root to bios/xroar, Recalbox ROMs to
bios/dragon and bios/trs80coco, RetroBat ROMs to bios/dragon and
bios/coco. RetroDECK and RetroPie keep them at the BIOS root.
2026-11-09 19:41:40 +01:00
Abdessamad Derraz de0bdbd84e fix: drop defaults the build has no package for
KNULLI's configgen-defaults.yml picks suyu for the Switch, which its
es_systems.yml does not offer and no package of its tree, its batocera
submodule or its buildroot builds: KNULLI does not ship suyu. A default
es_systems.yml does not offer now counts only when a package of the
build's trees has that name, or when its launcher runs a program from
the BIOS folder (Batocera's lexaloffle). Batocera's lists are unchanged
by the rule. suyu leaves KNULLI's cores, and the XDG_DATA_HOME record
that served it goes.
2026-11-09 19:35:04 +01:00
Abdessamad Derraz e6dbbe69ed fix: place openmsx system ROMs through filepool
openMSX reads share/systemroms below OPENMSX_HOME or ~/.openMSX and
every filepool entry by SHA1. The profile paths drop RetroBat's
openmsx/ prefix and declare those directories and the filepool.

Batocera's config_directories reads the filepool lines its generator
writes, KNULLI reuses it. RetroBat records OPENMSX_HOME, RetroPie the
moveConfigDir of ~/.openMSX that its systemroms link lies in, and the
configure --prefix of xroar that its roms link lies in.

Batocera and KNULLI system ROMs move from openmsx/share/systemroms to
openmsx/, beside the files their own lists declare, RetroPie's to
BIOS/openmsx, the folder linked as share/systemroms.
2026-11-09 19:32:00 +01:00
Abdessamad Derraz cd38b9ed10 feat: bind standalone layouts per system and pool
A launcher record can name the systems it is written for, and then
replaces there what the records naming none hand: RetroBat passes XRoar
-rompath bios/coco for coco and bios/dragon otherwise. An entry is
launched for the systems it names and those the platform declares a
file of its name under. A {system} search_dir gives one directory per
platform system, a colon search path each of its directories.

standalone_pools names settings a program reads as a list of
directories, each searched like a layout subfolder (openMSX filepool,
XRoar rompath). Any entry serves: the one the platform list fills
comes first, then the first of the BIOS tree. A handle above a
declared directory lands it where its link points (configure
--prefix). Record order now survives the standalone set.
2026-11-09 19:30:06 +01:00
Abdessamad Derraz 5c5c7cd79c fix: read shadps4 sys_modules from its user folder
sys_modules/ is below shadPS4's user folder: user/ in the working
directory, else the XDG data folder (path_util.cpp:88-124). Batocera
and KNULLI start it from /userdata/system/configs/shadps4, so their
packs no longer carry bios/shadps4/sys_modules, which nothing read, and
name the modules instead. EmuDeck keeps its link at
bios/shadps4/sys_modules, and RetroBat places them in
emulators/shadps4/user/sys_modules.
2026-11-09 19:29:18 +01:00