Commit Graph
3035 Commits
Author SHA1 Message Date
Abdessamad Derraz fe3aac477d chore: hold supertux and advanced_drastic pins
supertux runs only on EmuELEC, which builds 37cddf24 (v0.6.3), and
advanced_drastic only on KNULLI, which builds eaf41ab. Both pins stay on
those builds.
2026-10-23 15:52:15 +02:00
Abdessamad Derraz d3fe3a4f0c chore: hold five pins on the build they ship
chocolate-doom, supertuxkart and fheroes2 run only on EmuELEC, piemu only
on AmberELEC, alephone only on RetroPie. Each of those builds a fixed
revision (package.mk PKG_VERSION, or the release-20250829 tag), so the
pin stays on it and profile_sync judges the profile against itself.
2026-10-23 15:51:08 +02:00
Abdessamad Derraz 8458e92281 chore: advance 135 profile pins to upstream HEAD
Every cited block was read again at HEAD: no ref left to review, no
file name or hash literal added to a cited file since the pin
(--detect-new-files --watch-hashes), refs recaled with their pins.
Profiles built by a platform at a fixed commit, or whose bump would
leave prose under an older pin, stay where they were.
2026-10-23 15:51:08 +02:00
Abdessamad Derraz d1a6e96820 fix: check the prose a bump leaves behind
The prose guard read citations under the pins a profile held before the
write. A bump that moves upstream_commit alone could then leave prose the
report had judged in the fork under the new upstream pin: ten profiles
(dolphin-mmjr2, hatari, xenios among them) came out of a bump with prose
to read again. The written file is now read again and the original bytes
put back when a citation is left under an older pin.

A pin_frozen reason was printed as a tag name ("pinned to tag EmuELEC,
the only platform..."); it now reads "pin held (...)".
2026-10-23 15:50:51 +02:00
Abdessamad Derraz 9dd2a3d95f fix: date-order tags and scope the write guard
check_version read latest_tag as the first entry of GitHub's REST
listing, which sorts by name (nesoid: 2.5 before 2.5-4, gargoyle:
stable-20090825 before 2026.1.1), and found the declared tag only on that
first page of 100. The newest tag now comes from GraphQL by commit date,
and the declared one is asked for by name on GitHub, GitLab and Forgejo.

The clean-tree guard of the write modes looked at the whole emulators
directory: a loop of --emulator X --rebase-refs refused every profile
after the first it wrote. It now looks at the selected profiles only.
2026-10-23 15:40:56 +02:00
Abdessamad Derraz 18fc5ce53f fix: leave platform-built pins to a reader
bump_commit advanced any profile whose refs all anchored at HEAD. On a
built_by profile the pin is the commit a platform compiles (mame0258,
mame0278, gsplus-legacy at recalbox gsplus.mk:8-9), so HEAD is a build
nobody ships under that name. The bump now refuses those profiles.
2026-10-23 15:35:51 +02:00
Abdessamad Derraz 54b2d31fa3 docs: keep two installer pages within budget 2026-10-23 15:34:33 +02:00
Abdessamad Derraz de6f616bb9 docs: split a docstring sentence in profile_sync 2026-10-23 15:34:11 +02:00
Abdessamad Derraz a293887145 feat: place the pin against its version tag
--check-version said only that core_version names a tag other than the
pin. It now counts the pin against that tag (after it, before it, or off
its history), and names the latest release when the pin already contains
it. Of 52 warnings, 43 are builds between releases; ares, boytacean,
nesoid and primehack name an older release than their code, vkquake and
vkquake2 a later one.
2026-10-23 15:24:21 +02:00
Abdessamad Derraz d458cf653a fix: wait out a 429 and keep the pass going
A single 429 from git.libretro.com on cemu's tree ended profile_sync --all
with a traceback and no report for the other 646 profiles. upstream now
waits a 429 out (Retry-After up to 120 s, else 5, 20, 60 s), as
base_scraper already did, and stops asking a host that outlasts the
waits. profile_sync reports that profile as rate limited, fails the run,
and carries on with the other forges.
2026-10-23 15:02:48 +02:00
Abdessamad Derraz f2faf4d9ed fix: release held files once the run stops
The test released the held downloads after a fixed pause. Under load the stop arrived after the release, all three files landed and nothing was stopped. It now waits for the run to say it is stopping.
2026-10-23 14:55:01 +02:00
Abdessamad Derraz fd5fc6c567 chore: list the round 4 link tests 2026-10-23 14:48:08 +02:00
Abdessamad Derraz 8b4cc0db41 chore: one folder for fbalpha 2012 samples 2026-10-23 14:47:59 +02:00
Abdessamad Derraz c4e58b54bd feat: link arcade boards and program folders 2026-10-23 14:45:02 +02:00
Abdessamad Derraz bb4569593e fix: follow libretro/ps2 to parallel-ps2 2026-10-23 14:44:52 +02:00
Abdessamad Derraz 2f653c2228 chore: merge the installer audit fixes 2026-10-23 14:36:05 +02:00
Abdessamad Derraz 6d7304725f chore: one folder for fbalpha 2012 samples
The three committed samples sat under FBAlpha 2012 while the four
release assets and the profile use fba2012/samples. The folder check
now folds Alpha to A and also reads database paths, which list the
release assets the index never holds.
2026-10-23 14:35:22 +02:00
Abdessamad Derraz 6c52d24a30 feat: arcade boards and the 28 unlinked ids
siterender.arcade_board(sha1) names the board a set archive is the
BIOS of, from the profiles' bios_zip entries and their contents CRC32s,
never the folder. board_slug(id) gives the section slug. A board links
once the system pages call record_board_section(), so no page links a
section nobody wrote. Thirteen ids whose files sit in one program's
folder get a reviewed parent, mz800 the Sharp MZ section. The link
test counts set archives.
2026-10-23 14:32:34 +02:00
Abdessamad Derraz 778d2d56e6 fix: give the bare platform menu its default
With nothing detected, the menu had no Enter default, while --help and
the --dest menu name RetroArch as the fallback. Its title now also says
why the question is asked.
2026-10-23 14:21:45 +02:00
Abdessamad Derraz 19b4ef5de4 fix: describe only the chosen systems in events
--system nintendo-gba wrote system events for gb, gbc and ds, each made
of the few SkyEmu files the choice kept. With systems chosen, only those
are described.
2026-10-23 14:21:24 +02:00
Abdessamad Derraz 2670b11c2b fix: count files shared by systems apart
The systems step and --list-systems gave 3do 1704 files, 349 MB, of
which 1689 are MAME hash and plugin files six systems carry. Each line
now shows the system's own files, and the shared ones beside them.
2026-10-23 14:19:18 +02:00
Abdessamad Derraz b535262637 docs: show the --dest forms and the all-good line
The step for another folder now gives the command with --dest for each
system, the PowerShell one in its script block form. The check line that
means all good is shown whole, since an empty folder also reads 0 hash
mismatches. The port archive is said to come with releases cut after the
port, which v2026.10.10, the latest, predates.
2026-10-23 14:16:40 +02:00
Abdessamad Derraz e118fd58ea fix: honour an empty NO_COLOR as unset
An empty NO_COLOR turned colour off, which no-color.org reads as unset.
FORCE_COLOR and CLICOLOR_FORCE now paint a pipe. --check with several
platforms asks which to check rather than "Install for:", and
--list-platforms says when nothing is detected here.
2026-10-23 14:15:59 +02:00
Abdessamad Derraz 75a6356959 feat: say network failures in plain words
Offline, the run printed "[Errno -2] Name or service not known". The
common failures now read as words, the raw text kept under --verbose.
A refused certificate under a clock set before the installer was written
is reported as reason clock, with the date it reads, and no trusted
certificate list on the machine as reason no_ca, naming SSL_CERT_FILE.
Neither is retried, and verification is never turned off.
2026-10-23 14:14:08 +02:00
Abdessamad Derraz 83973e1415 fix: point a declined download at the c entry
Saying no to a large download sent a beginner to --help. When the
question about what to install was asked, the line now names the c
entry, and i with its size when installed cores were found.
2026-10-23 14:10:27 +02:00
Abdessamad Derraz ebfa0cbb31 fix: say what minui and file-less cores get
--list-platforms said the MinUI layout was not written yet while
--from-pack and --dest wrote it. On the device the card root is now
found and its version.txt names the file list, and a card without one
gets the --platform and --dest to use. A core with no file of its own
says its files are the platform's, always kept, instead of 0 files.
2026-10-23 14:08:28 +02:00
Abdessamad Derraz fba84410cc fix: round 3 data leftovers 2026-10-23 14:06:46 +02:00
Abdessamad Derraz e041fac351 feat: suggest systems by short name
--system gba, psx or ps1 was refused with no suggestion on RetroArch.
Short names now suggest the ids they stand for, never taken in their
place, and two aliases of one system name it once. --platform muos and
the other systems --list-platforms names stand for the file list they
get, and the run says which.
2026-10-23 13:55:09 +02:00
Abdessamad Derraz 41839b7784 fix: advise only a core that --core accepts
The size hint drew from every core of the system and named ares, which
loads no file of its own, so --core ares was refused. It now picks among
the names --core resolves against.
2026-10-23 13:50:54 +02:00
Abdessamad Derraz 84646d00a6 fix: read a typed folder and quit with 130
A folder typed in quotes at the BIOS folder question was used with its
quotes, and its missing parents were created without the question
--dest asks. The quotes go, ~ and variables expand on every system, and
a default folder that does not exist is named as such, not as found.
q at a menu now leaves with 130 like Ctrl+C, and Ctrl+C before anything
started no longer offers to carry on.
2026-10-23 13:50:16 +02:00
Abdessamad Derraz 15f69a2212 chore: file QEMU, Roland, Chihiro and Oric
QEMU's 79 files go to QEMU/QEMU and Roland's four loose ROMs to MT-32
and CM-32L. The mt32-roms, soundcanvas-roms and sounddata trees stay as
the code addresses them. Chihiro joins Sega and the Oric joins
Tangerine, the names the site and libretro already use. No destination
held other bytes.

The three QEMU EDK2 images are release assets, and their .gitignore
lines follow them. Database and manifests are regenerated together.
verify --all and cross_reference give the same output once moved paths
are mapped.
2026-10-23 13:49:37 +02:00
Abdessamad Derraz 9062931522 docs: list the source ref target checks
The testing guide names test_source_ref_targets, and trident's note on
its submodule reads as two sentences.
2026-10-23 13:48:30 +02:00
Abdessamad Derraz 69179c95de fix: count only the files a stopped run wrote
A run stopped after 8 of 118 files said 118 were installed. The count
now comes from the downloads that finished, and a refused folder writes
one downloaded event per file, as the events table says.
2026-10-23 13:30:11 +02:00
Abdessamad Derraz 36427edbb2 fix: point source refs at paths held at the pin
trident cites the Panda3DS fork 3dsTrident vendors as a submodule, now
its upstream at the submodule pin 69095ee6. pce-emu, uqm and stonesoup
wrote paths from a subdirectory (PCE.emu/, sc2/, crawl-ref/), nesoid
named two Java files without their directory; lines unchanged, each read
at the pin.

The pages no longer take a binary citation (DesktopKinect.dll, an
address continuing a BAM.dll range) for a source path, and a Forgejo
tree is read page by page: mirrors/Ryujinx holds 4704 entries, 1000 a
page.
2026-10-23 13:11:48 +02:00
Abdessamad Derraz aeb68fe753 fix: credit readers the file their pack resolves
The name step tried the destination's basename alongside the entry's
own names. With dsi_nand.bin absent from a checkout, nand.bin from
dsi/nand.bin let the Wii NAND outrank the entry's own DSi variant, and
the site named melonDS Nightly a reader of it. The basename is now tried
only when no own name answers.

FileConsumers also resolved profile entries without the archive members
the emulator pack passes, so gngeopi and neo-emu were credited with the
MAME neogeo.zip instead of the archive their pack carries.
2026-10-23 13:03:39 +02:00
Abdessamad Derraz c2875a3851 fix: attach profile aliases by held content
A profile entry without a hash matched the collection by name, but
only primary names were looked up, and which copy of identical bytes is
primary follows path order. After the refile, project64's
64DD_IPL_v12_JPN.bin was a copy, so 64dd_ipl_J.bin and 64dd_ipl_U.bin left
the name index. The lookup now counts every copy's name, and a name held
by two contents still names neither.
2026-10-23 12:58:06 +02:00
Abdessamad Derraz 9b998f698f fix: skip schema checks without jsonschema 2026-10-23 12:27:24 +02:00
Abdessamad Derraz 2a29ca309c fix: settle round 3 checks across packages 2026-10-23 11:58:23 +02:00
Abdessamad Derraz f0e7d87def fix: settle the round 3 site packages together 2026-10-23 11:12:12 +02:00
Abdessamad Derraz d168ceb8a8 feat: round 3 reference and data 2026-10-23 11:02:31 +02:00
Abdessamad Derraz 62d0d62968 feat: round 3 emulator pages 2026-10-23 11:02:31 +02:00
Abdessamad Derraz c1cd15c10d feat: round 3 system pages 2026-10-23 11:02:30 +02:00
Abdessamad Derraz 53de4868df docs: round 3 wiki copy 2026-10-23 11:02:29 +02:00
Abdessamad Derraz 703f05657f feat: round 3 entry pages 2026-10-23 11:02:29 +02:00
Abdessamad Derraz b1cbadc335 feat: round 3 navigation and search 2026-10-23 11:02:28 +02:00
Abdessamad Derraz a152b6d5d9 feat: round 3 components 2026-10-23 11:02:27 +02:00
Abdessamad Derraz f59217e645 fix: round 3 theme 2026-10-23 11:02:27 +02:00
Abdessamad Derraz f5eb31f910 feat: system sections start with their own files
The start line keeps entries read for the section's own system, groups a section holding several, names files the way most setups do, links an Arcade-filed set the system requires and says when no file is needed. Cards of MAME and FBNeo sets name the releases whose recipe matches their members. Console headings lose their icon, Arcade gets its own group on the index, and install boxes count toward the weight that splits a heavy manufacturer page.
2026-10-23 10:56:39 +02:00
Abdessamad Derraz 863b119528 feat: load tile logos past the first row lazily
Home on a phone over 4G: 217.3 KiB to 134.5 KiB on first load, 19 images to 10.
2026-10-23 10:56:35 +02:00
Abdessamad Derraz cdffbcdfe4 feat: share cards for manufacturer pages
One card per systems page, titled with the manufacturer and listing its consoles as far as three lines hold. Rendered once and committed like the platform cards.
2026-10-23 10:56:33 +02:00