Commit Graph
3988 Commits
Author SHA1 Message Date
Abdessamad Derraz 059d7e5007 fix: repin hatari on the rewritten main branch
libretro/hatari rewrote main on 2026-11-04: it is now hatari/hatari
c453b85f with 23 port commits on top, and the old pin 50929946 survives
only as the tip of main-old. Every citation is read again at 25f488b1 and
c453b85f. The libretro build now reads files through
src/retro/file_retro.c, with no .gz or archive unpacking, and a missing
tos.img clears bUseTos in retro_init instead of a have_bios gate in
retro_run, so the core runs the built-in test stub.
2026-11-05 12:29:20 +01:00
Abdessamad Derraz d5e5146819 feat: hold bumps of profiles one platform ships
A bulk advance moved fheroes2, supertux and supermariowar past the
revision EmuELEC compiles, and nothing stopped it: bump_commit refused
built_by only. It now leaves a profile a single registered platform ships
until it carries pin_frozen or the new pin_follows, which says that
platform builds the branch tip.

hode, bermuda, bennugd-monolithic and ccleste are held on the
PKG_VERSION of their EmuELEC v4.8 package.mk, equal to their pins.
rigelengine was one commit past it (README.md only) and goes back to
f05996f9.
2026-11-05 12:23:41 +01:00
Abdessamad Derraz 394ef44e57 fix: one system slug for bermuda syndrome
bermuda.yml (the EmuELEC build) and bsyndrome.yml (RetroBat's bs.exe)
document the same cyxx/bermuda engine under two slugs, bermuda-syndrome
and bsyndrome, so the site gave the game two system pages. bsyndrome now
files its entries under bermuda-syndrome.
2026-11-05 12:23:41 +01:00
Abdessamad Derraz bef8b50669 fix: compare --changed with the project main line
In a fork's clone origin/main is the fork: once pushed it is HEAD, and
profile_sync --changed --strict checked nothing and passed while the PR's
CI then failed. The default base is now the line validate_pr.py reads:
upstream/main or origin/main when that remote is the project, the
project's main fetched otherwise.
2026-11-05 12:16:28 +01:00
Abdessamad Derraz cb4649bb23 fix: mark openmsx system roms as found by sha1
openMSX reaches a ROM in share/systemroms through its file pool by SHA1
alone. A filename is only looked up beside the machine's XML
(src/memory/Rom.cc:121-170, HardwareConfig.cc:279-280,
FileContext.cc:152-156 at a557de7b). The labels read as names the core
opens, and the export added 15 of them to KNULLI and 2 to Batocera.
2026-11-05 12:15:08 +01:00
Abdessamad Derraz 2009f38256 fix: dev9 files load from the working directory
DEV9 opens eeprom.dat and flash.dat by bare name (pcsx2/DEV9/DEV9.cpp:144
at f0523f8a, AetherSX2 DEV9/flash.cpp:89, PCSX2 1.6 dev9ghzdrk/flash.cpp:73),
so the process working directory answers, never the BIOS folder. Only
yaps2 said so: the other PCSX2 profiles had the file packed into the BIOS
folder and the RetroDECK export add it there.
2026-11-05 12:14:17 +01:00
Abdessamad Derraz f0e488c558 fix: mark ps2 bios images as found by content
PCSX2 and its forks keep the first 4 to 8 MB image with a romdir in
the BIOS folder (pcsx2/ps2/BiosTools.cpp:258-282, 317-332 at f0523f8a),
and PCSX2 1.6 lists the same test in its BIOS picker
(BiosSelectorPanel.cpp:151-177). The names are labels. Without found_by
the truth model read ps2-0230a-20080220.bin as a name the core opens, and
the RetroDECK export added it as a required file.
2026-11-05 12:10:34 +01:00
Abdessamad Derraz 7722e96f5a docs: describe each core without other profiles
Notes compared a core with another profile of this directory (unlike
beetle_pce, unlike the other engines in this directory), which means
nothing once a profile is read alone, and shouted NOT, ALL and MUST. The
facts stay, the comparisons and capitals go. Comparisons with a core's
own upstream remain.
2026-11-05 12:06:17 +01:00
Abdessamad Derraz 4175aeefd3 fix: profile redream from its public tree
The profile declared libretro/redream, which answers 404, with no pin and
no source_ref: profile_sync skipped it and the boot.bin md5 came from the
libretro docs. It now reads inolen/redream at ffb73022, the last public
tree, whose libretro core opens dc/boot.bin and dc/flash.bin in the system
directory. boot.bin is checked against four md5 and the flash against its
size, and both fall back to the high level BIOS, so neither is required.
2026-11-05 12:04:41 +01:00
Abdessamad Derraz 593260a5ed fix: name orphaned pins on the triage line
needs_review counts an orphaned pin and a moved repository, but the
triage line only added stale prose and unchecked refs, so pcem read
"1 to review" for an upstream_commit outside its branch history.
2026-11-05 11:59:33 +01:00
Abdessamad Derraz 739f651a16 feat: check refs into a submodule
idtech4a++ cites xash3d-fwgs filesystem/filesystem.c, starship and
ghostship Torch src/Companion.cpp: files of submodules of the declared
repository. No blob of the declared tree answers, so the parts stayed
external and a bump moved the submodule commit with nothing checked.
A project word now also resolves to the one submodule named after it,
and a file under a submodule is read in the repository .gitmodules
names, at the commit the declared revision pins it to.
2026-11-05 11:58:22 +01:00
Abdessamad Derraz d5c4cd3575 fix: read ti99sim version from its changelog
core_version went null although doc/CHANGES.html at the pin opens on
Version 0.16.0. ti99sim cites v0.16.0 and v0.0.11 parts side by side,
and with no documented version every part read as another program:
profile_sync reported 6 external, 0 to review, nothing checked. The v0.16.0
parts are anchored at the pin again, the v0.0.11 parts stay external.
2026-11-05 11:55:52 +01:00
Abdessamad Derraz fd93381c3e fix: drop region tags chosen by machine model
XRoar reads the Dragon 200-E and Alice ROMs for those machine configs
(src/xroar.c:437-444, 552-558 at 1.12.1), and VICE the Japanese kernal
and chargen for the C64 JAP and VIC-1001 models: a (Japan) file name
selects the NTSC model (libretro-core.c:2018-2034). No code branches on a
territory for these files, so region: is removed, as profiling.md rules
for a model enum.
2026-11-05 11:54:06 +01:00
Abdessamad Derraz 34ef0cda1d fix: clk western sms bios answers latin america
CLK reads every export cartridge as Europe or USA and boots the western
BIOS for any region but Japan (StaticAnalyser.cpp:49-66,
MasterSystem.cpp:137-140). The tag named brazil without its parent, so
--region mx dropped the BIOS from the Batocera pack.
2026-11-05 11:51:53 +01:00
Abdessamad Derraz f5140aad0c fix: declare the higan Super GameBoy.sfc folder
higan and nSide look program.rom up in the option's folder, SGB.sfc/,
then Super GameBoy.sfc/. Only the SGB1.sfc/ and SGB2.sfc/ folders were
entries, and both names are files bsnes, Mesen-S and ares read from the
same system directory, so no pack could give the higan cores a Super
Game Boy. SGB.sfc/ collides with SuperSnes9x's sgb.sfc on a
case-insensitive file system. Super GameBoy.sfc/ collides with nothing.
2026-11-05 11:50:27 +01:00
Abdessamad Derraz 1a7389076d fix: file the xbox dashboard under the console
x1-box and hakuX both import the retail partition C tree. It sat in
hakuX's tree, so for x1-box the C/xbox.xtf tail was set aside as foreign
and the name step served Xenia's Xbox 360 dashboard font. xbox.xtf and
xboxdash.xbe now live in bios/Microsoft/Xbox/C/ and resolve by path for
both. msdash.xbe stays: its bytes are cxbx-reloaded's xboxdash.xbe, whose
path the RetroBat manifest names.
2026-11-05 11:49:27 +01:00
Abdessamad Derraz cfc2515909 fix: check the zipped_file member before composite
A one-member archive whose member carries the zipped_file md5 under
another name has that md5 as its composite. The name step returned it as
md5_composite_exact, which slots and the site take as content proof, while
Batocera looks the member up by name and finds nothing.
2026-11-05 11:45:58 +01:00
Abdessamad Derraz 08cf4dd914 fix: skip other casings in a foreign tree
reminiscence's Flashback module reunion resolved to skyline's
zoneinfo/Indian/Reunion through the case-insensitive name step, and the
emulator pack shipped the time-zone file. Another casing found only in
another emulator's tree says nothing about the entry.
2026-11-05 11:42:29 +01:00
Abdessamad Derraz d38cd58036 feat: scrape recalbox rom folders per board
GitLab refused the hundred raw reads per IP. A GitLab directory is now
read from one archive request, else a shallow sparse git fetch, and the
cache keeps its file list so offline runs know what is absent.

Each board builds system.ini against its defconfig: a core whose package
the board does not enable is dropped (pisnes was the SNES default
everywhere), and a system with no core is not built. The row names the
default most boards share, board_defaults the others. A files: list
names whole files and is carried as files through the index and the
installer.

A folder no name resolves, run by a core of several machines, now holds
those machines: thomson, multivision and pcv2 had no fallback, so their
games got no file. Arcade-indexed cores keep naming files per set.
2026-11-04 16:48:34 +01:00
Abdessamad Derraz a05fc599d9 fix: read recalbox board sections as romfs does
board_cores walked only the plain [core.N] sections and replaced a board
section whole. romfs2 systemholder.py reads a slot present as
[core.N.<board>] alone (gb and gbc bsnes on x86_64) and each key from the
board section, then <key>.<board>, then the plain key. The committed
target lists are unchanged on all seven boards.
2026-11-04 16:48:34 +01:00
Abdessamad Derraz 9d3458d47a chore: merge generated page refresh 2026-11-04 05:54:14 +01:00
Abdessamad Derraz 33add072cb chore: merge installer page refresh 2026-11-04 05:52:02 +01:00
Abdessamad Derraz fa9fbbed9e fix: a cited module may be a package
python -m runs a package by its __main__.py: scripts.scraper.romfolders is one.
2026-11-04 05:51:40 +01:00
Abdessamad Derraz 8848f3e6f6 chore: merge tools page refresh 2026-11-04 05:49:49 +01:00
Abdessamad Derraz 058bb13884 docs: list pipeline step 4e
The games index step came in with main. The installer samples test now reads step 7 in the list form the pipeline steps test holds.
2026-11-04 05:45:29 +01:00
Abdessamad Derraz 0bd206da4d chore: merge main into Sony pages 2026-11-04 05:11:58 +01:00
Abdessamad Derraz 1077d77125 fix: reset console pages in the index tests
A Sony fixture split by console recorded its pages in the shared map, and the index tests that ran after it linked PlayStation to the split page. They now start from an empty map, and the fixture clears it when done.
2026-11-04 04:47:01 +01:00
Abdessamad Derraz 36788a3cac fix: hold the site tests to Sony console pages
Tests that built a maker's page with sections used Sony, which now gives each console a page: they use Sega, which keeps its sections. A Sony fixture split by console leaked its recorded pages into the index tests that followed. Built-page checks read the cards on the console pages and the opening lines on the Sony summary.
2026-11-04 04:21:26 +01:00
Abdessamad Derraz 531edaa1ad feat: give every Sony console its own page
A section shares its page's search fields, and "playstation 3 bios" found the PlayStation page before the Sony page that held the PS3. CONSOLE_PAGES splits Sony by console whatever the size. The search gate now expects the PlayStation 3 page in the top two for that query, the order of words being something Pagefind does not weigh, and the page first for "ps3 bios".
2026-11-04 03:55:07 +01:00
Abdessamad Derraz fd7dd0efe5 fix: games tools write whole files, name options
The games importers wrote through fixed .part names, the new options had
no help text, and romfolders stopped on the first setup the offline cache
lacked. RetroArch's rom folder map is regenerated from its source spec
(path null, as the schema says). The installer's Python 3.8 job imports
the games tests without pyyaml, so the region rules load lazily.
2026-11-03 22:46:17 +01:00
Abdessamad Derraz af2e930d32 chore: merge games on card installer mode 2026-11-03 21:06:04 +01:00
Abdessamad Derraz c75fd661e8 fix: read fbneo console sets by driver name
In a console folder an FBNeo set is looked up under its driver name
(msx_1942), the bare name being the arcade set's. A run given its list as
a file reads the games index from beside it or the cache only when
--for-games was not asked. The installer keeps to Python 3.8 syntax, and
the testing guide names test_install_games.
2026-11-03 19:12:42 +01:00
Abdessamad Derraz 8ba0a8c3f6 chore: merge main 2026-11-03 19:12:38 +01:00
Abdessamad Derraz 52fc01109e chore: regenerate manifests after the data merges
Same files per platform. The manifests catch up with the per-system MAME
filing, the platform system join and declared_in, and name sfiii2a.zip as
missing. The games index fallback sets and the installer page samples
follow.
2026-11-03 19:05:39 +01:00
Abdessamad Derraz 2e9175a8e9 feat: install for the games on the card
--for-games reads the card's rom folders through install/games/ and keeps
what the games need: per system what its default core reads, one region
where the content proves it (crc32 and size, a disc serial, a header the
core reads), an arcade set's BIOS parents. A game not recognised gets
every BIOS of its system and is named. --required-only keeps only what
starts. The plan and the line menu open on it when the card holds games,
everything one press away. A cache keeps what reading a card found.
2026-11-03 18:51:21 +01:00
Abdessamad Derraz ff1f94e473 feat: read 0.78 era arcade parents from code
mame2000, mame2003 and mame2003-plus carry a DAT their code moved past. Their parents and BIOS sets now come from src/driver.c and src/drivers/ at the pin, named by the src tree sha. The DAT is still read to report gaps. FBNeo DATs are read one namespace each, console sets keyed by driver. A BIOS with no dumped ROM is no longer listed.
2026-11-03 18:46:45 +01:00
Abdessamad Derraz f25062f84e feat: declare namcoc76 bios for mame2003
Tekken and Tekken 2 name namcoc76 as parent in namcos11.c at the pin. Each game also loads c76.bin as ROM_LOAD_OPTIONAL, so the archive is optional.
2026-11-03 18:46:40 +01:00
Abdessamad Derraz b69b33178b feat: publish board sets and sets with no bios
The games index now names, per arcade core, the game sets that load no
BIOS set and every BIOS set, so a set on a card the DAT does not know is
told apart from one that needs nothing. Each board default core of a rom
folder gets its own fallback set, and index.json maps every folder name
a setup uses to its systems, for a games folder on a computer.
2026-11-03 18:17:03 +01:00
Abdessamad Derraz 1271b338f4 fix: keep listxml machines larger than a read 2026-11-03 18:07:08 +01:00
Abdessamad Derraz d955e86a5b docs: list the games index test modules 2026-11-03 17:56:16 +01:00
Abdessamad Derraz c2ad67e4fa feat: publish the games index with install lists 2026-11-03 17:45:03 +01:00
Abdessamad Derraz eaf0fbdd19 chore: merge main 2026-11-03 17:37:46 +01:00
Abdessamad Derraz 1aa36258b2 feat: scrape the rom folders of each setup 2026-11-03 17:37:33 +01:00
Abdessamad Derraz 87354043c9 fix: tests follow joined sgb ids and ps3 search
nintendo-sgb and nintendo-super-game-boy are one id now, so the flat
declared-set test uses two ids no alias joins. The search weighs "3" as
nothing: "playstation 3 bios" is held to the top three results.
2026-11-03 17:36:00 +01:00
Abdessamad Derraz 249b189ec9 feat: index arcade sets by bios parent 2026-11-03 16:36:26 +01:00
Abdessamad Derraz dc337c893c feat: add region and per-game file rules 2026-11-03 16:36:26 +01:00
Abdessamad Derraz 8d8689c2e4 feat: import game catalogs and header rules 2026-11-03 16:36:22 +01:00
Abdessamad Derraz 0939cf4d77 fix: cut emulator parts by the words rows show
MAME's first card part showed 1,931 words against the 1,693 ceiling once
888 entries named their system: each row gained a "for <system>" badge
while parts were cut by card count. Parts are now cut by the words each
row shows with its card closed, balanced, at most 1,350 a part and still
at most 180 entries. MAME goes from 9 parts to 10, no part disappears.
2026-11-03 15:58:03 +01:00
Abdessamad Derraz c90c43fd46 chore: merge redump, mame and fbneo data fixes 2026-11-03 15:35:29 +01:00
Abdessamad Derraz 8844b30fb2 fix: read the folder tail on a crowded screen 2026-11-03 15:32:42 +01:00