Commit Graph
2694 Commits
Author SHA1 Message Date
Abdessamad Derraz d49fcfd59e chore: merge audit fixes (profile sources)
The flycast standalone paths (eb04fb50) stay out until the packs read the
platforms' launcher links. Two rosalies-mupen-gui aliases that only
RetroBat's launcher writes leave the profile, now that its layer
records them.
2026-10-21 11:55:22 +02:00
Abdessamad Derraz d6a0639330 chore: merge audit fixes (packrules)
# Conflicts:
#	scripts/packextras.py
2026-10-21 11:52:28 +02:00
Abdessamad Derraz cd589b2742 chore: merge audit fixes (mame) 2026-10-21 11:48:30 +02:00
Abdessamad Derraz 7030ef3350 chore: merge audit fixes (sysnames) 2026-10-21 11:48:30 +02:00
Abdessamad Derraz 7967e7a9fd chore: merge audit fixes (retrobat) 2026-10-21 11:48:30 +02:00
Abdessamad Derraz 8643d4a4ea chore: merge audit fixes (site)
# Conflicts:
#	emulators/flycast.yml
#	emulators/primehack.yml
2026-10-21 11:48:30 +02:00
Abdessamad Derraz 370ea21a17 fix: deploy the site on every script it loads 2026-10-21 11:46:01 +02:00
Abdessamad Derraz 6ae0dcbbf1 fix: read the manifest's extras lookup in tests
The manifest's core extras now go through ExtraResolver, which calls validated_choice: the test reads that path instead of a direct call.
2026-10-21 11:36:39 +02:00
Abdessamad Derraz 65d9a652ce chore: regenerate mame device sets with systems
Offline from the 0.289 listxml: 258 sets under one system, 93 under several, 903 loaded by no machine an entry places.
2026-10-21 11:33:39 +02:00
Abdessamad Derraz 56e8cbe046 feat: file mame device sets by their machines
The -listxml names, for every machine, its parent (romof), the devices of its default configuration (device_ref) and the cards its slots offer (slotoption). A machine takes the system of the first set on its romof chain a written entry lists, and passes it to each device it can instantiate. A device set reached from one system gets system:, from several the new per-entry systems:, from none neither, and keeps serving every system of the profile. The gap report, the core extras and slots read the entry's own systems, so generate_pack --system and the installer pick by them.
2026-10-21 11:33:39 +02:00
Abdessamad Derraz ef69687fe1 fix: replay held omissions in install regions
The builder keeps a held regional fallback when the requested file is
missing (since 2026-10-17), and the comment beside the manifest's
omissions still said the opposite. A file the builder holds but the
manifest cannot download sat in omitted_files counted unheld, so the
installer kept a fallback the pack drops. Such an omission now carries
held: true and narrow() counts it held, as the builder does.
2026-10-21 11:18:53 +02:00
Abdessamad Derraz 7ca6adca56 fix: check narrowed packs against their own list
After --all-variants, --verify-packs printed "hashes checked during the
build" for the platform-only, truth and required-only packs and compared
none of them, so one missing a file its narrowed list requires passed.
Each pack is now held to the platform list narrowed the way it was built:
source and required_only, read from its name, reach the baseline, the
region grouping and the replay of the core extras.
2026-10-21 11:17:30 +02:00
Abdessamad Derraz 8b8d94e331 fix: name moved repositories by their new name
profile_sync --all reported 18 repositories the forge answers under another owner or name. Each pin resolves in the renamed repository, so the URLs change and the pins stay. flycast2021 builds from metallic77/flycast 603814c9 (ROCKNIX package.mk), whose upstream libretro/flycast now answers as libretro/parallel-dc with 4c293f30 still in its master history.
2026-10-21 11:10:46 +02:00
Abdessamad Derraz 185734d397 fix: re-profile ymir at HEAD of both builds
StrikerX3/Ymir answers as ymir-emu/Ymir, and the buildbot builds the libretro branch of warmenhoven/Emir, PR #746 having closed unmerged. The libretro build now reads all three BIOS names and picks one by region (apps/ymir-libretro/src/libretro.cpp:584-712, 1285-1306).
2026-10-21 11:10:39 +02:00
Abdessamad Derraz b65f94dd33 fix: re-profile pdark at its renamed repository
fgsfdsfgs/perfect_dark answers as perfect-dark-pc-port/perfect_dark. At 32a1cb9f the home path test reads the size lookup correctly, so data beside the executable is the last fallback (port/src/fs.c:96-121).
2026-10-21 11:10:39 +02:00
Abdessamad Derraz 85c4f55544 chore: regenerate database, manifests and exports 2026-10-21 11:10:38 +02:00
Abdessamad Derraz 96674273c0 fix: write the pipeline export to exports/ 2026-10-21 11:10:38 +02:00
Abdessamad Derraz db0e10b687 fix: count data directory readers in truth
LRPS2 reads pcsx2/resources/GameIndex.yaml through its data directory
and declares no file entry for it, so the truth entry other cores build
named armsx2 and yaps2 alone and hash_conflict missed LRPS2's copy. A
core whose data directory holds a file at an entry's path now folds in
as a reader with the cached copy's hashes, unless the profile lists what
it reads under that tree (yaps2, pcee2).
2026-10-21 11:07:40 +02:00
Abdessamad Derraz 95b359ffa7 fix: keep drastic aliases the packs resolve by
DraStic opens only nds_bios_arm9.bin, nds_bios_arm7.bin and nds_firmware.bin, and the collection holds those dumps under other names. Without the aliases the ROCKNIX and RetroPie packs lose all three files the emulator reads, and no launcher record fills those places.
2026-10-21 10:53:54 +02:00
Abdessamad Derraz 3fe88332e7 feat: accept platform system names in --system
generate_pack and verify read --system beside --platform through common.resolve_system_arg, built on platform_system_names, the mapping the manifest's system_names comes from. verify --platform --system now reports on the narrowed pack. Unknown names are refused with suggestions before the database is read.
2026-10-21 10:52:40 +02:00
Abdessamad Derraz 95e77ded63 fix: re-profile dosbox-x soundfont search at HEAD
Find_SoundFont (src/gui/midi_synth.h:82-134) now searches the working, resource and program directories before the system ones and adds GeneralUser-GS.sf2. Pin moved to 029bd65c with the shifted refs.
2026-10-21 10:51:14 +02:00
Abdessamad Derraz eb04fb50cc fix: add flycast standalone data directory paths
The standalone build reads BIOS files from its data directory root, not from dc/ (core/oslib/oslib.cpp:118-196, core/stdclass.cpp:95-125, core/linux-dist/main.cpp:74-99). Each entry now carries standalone_path.
2026-10-21 10:50:12 +02:00
Abdessamad Derraz 3ca746478d fix: keep only aliases the emulator opens
Aliases equal to a name a platform launcher chooses were read in each emulator's code at its pin. Removed where the code opens no such name: xemu Complex_4627v1.03.bin (the core offers Complex_4627_v1.03.bin), mednafen gecard.pce, dosbox bios.rom, raze Roland_SC-55.sf2, nine DraStic names, and clk's upper-case MSX names, whose paths now read msx.rom, msx2.rom and msx2ext.rom as ROMCatalogue.cpp:777-841 names them. Kept aliases now name the code list they come from in the entry note.
2026-10-21 10:50:08 +02:00
Abdessamad Derraz 9a0501d9d3 fix: count an uncached release asset as fetched
verify resolved offline, so a release asset absent from bios/ and the
cache read as missing while an online build fetched and packed it. verify
now reads the database record of the registered path and counts such a
declaration present, listed as fetched at build time. --offline keeps the
old count, and the offline pipeline passes it to its verify step.
2026-10-21 10:50:03 +02:00
Abdessamad Derraz a4310a1dee fix: source ares sfc base cartridges from ares
SGB1.sfc, SGB2.sfc, STBIOS.bin and BS-X.bin cited EmuDeck's launcher. ares names none of them: the file opened as the Super Famicom game is the base cartridge, identified by the SHA-256 in mia's database or by its header (desktop-ui/emulator/super-famicom.cpp:158-217, mia/medium/super-famicom.cpp:42-62, 88-95, 570-602).
2026-10-21 10:49:16 +02:00
Abdessamad Derraz b4e5e42c97 fix: leave out core files the core refuses by size
A core extra resolved by name shipped on existence platforms even when
the core's own size check turns the copy away. The RetroPie pack carried
the 128 KB Apple IIGS ROM as Basilisk II's ROM (min 512 KB). The builder,
the manifest and verify now read validation.core_size_refusal, which
accepts a copy any version of the same profile slot takes.
2026-10-21 10:46:52 +02:00
Abdessamad Derraz 7ae3a63fad fix: file mame entries under listed systems
mame.yml filed BBC Micro, Elektronika BK, Enterprise and Vectrex sets under systems its systems: list lacked, so a --system pick of those never reached the profile. The three Astrocade sets were filed under astrocde while mame.yml and groovymame.yml list bally-astrocade, the id a pick of Batocera's astrocade matches. Full packs keep the same files.
2026-10-21 10:46:40 +02:00
Abdessamad Derraz 2e63f2de7b fix: file naomi and viper bios sets by system
naomi.cpp:10918-10921 declares hod2bios, f355dlx, f355bios and airlbios on the naomi machine config as NAOMI BIOS roots, viper.cpp:3213 declares kviper as the Viper BIOS. Every other MAME profile listing them already files them under sega-naomi and konami-viper.
2026-10-21 10:44:07 +02:00
Abdessamad Derraz 448540dced feat: extract retrobat guarded bios ini writes
emulatorLauncher writes a BIOS path into an emulator's configuration
only when the file exists: string x = Path.Combine(bios, "name");
if (File.Exists(x)) ini.WriteValue(section, key, x). The extractor now
records each such write as a fixed_name launcher record, with the
enclosing if and early-return conditions, and a key that receives the
bios folder itself as passes_path. A path reassigned before the check,
or a write under a loop or an else, is not read.

Generators read at 48cdc616: KegaFusion (SCD and 32X keys, GenesisBIOS
given the folder), Jgenesis, MelonDS (DS), Mupen64, Project64, mGBA.
The RetroBat paragraph of the Kega Fusion profile now lives in the
launcher layer.
2026-10-21 10:42:09 +02:00
Abdessamad Derraz c6b5e8b220 chore: merge upstream revision pins 2026-10-21 10:37:27 +02:00
Abdessamad Derraz 0d3fde9b0d fix: pin primehack refs to its dolphin base
Seven CommonPaths.h refs were written in March against a 2025 layout (bfef65a9..8cbfee21, IPL.bin at 138), and SYSCONF was later set to 118 from the current file, so no revision held all eight. They now cite d8558142, the merge base of shiiion/dolphin@53f53e0f with dolphin-emu master, where each define sits on the cited line, and upstream_commit names it.
2026-10-21 10:34:54 +02:00
Abdessamad Derraz 4dbf3babcb fix: cite eightyone files from the repo root
EightyOne/Source/ROMs/... answers 404 at charlierobson/EightyOne@4de3cdb8. Source/ROMs/{FDCs/interface1.edition1,spectrum48.arabic,tk90,tk95}.rom hash to the md5 each entry declares. The notes refs drop the clone-directory prefix too and name their repository.
2026-10-21 10:34:54 +02:00
Abdessamad Derraz cc550c21e7 fix: cite port refs in the port's repository
These refs were labelled upstream but land in the port at source_commit: flycast sb_mem.cpp:55-59,196-231, reios.cpp:737 and naomi_roms.h:87-94 in libretro/flycast@bde196bf (filestream_open, get_rom_names), lrps2 BiosTools.cpp:189-229,339-340 and CDVD.cpp:196-245 in libretro/ps2@6eabf224 (RETRO_VFS reads absent from PCSX2), mesence bios.col at FirmwareTypeExtensions.cs:70 in MesenCE@20f497c9 (line 62 in Mesen2).
2026-10-21 10:34:54 +02:00
Abdessamad Derraz 755030d1e9 fix: record groovymame as mame 0.289
source_commit 953db38f is the tip of branch groovymame0289, its makefile:1513 writes BARE_BUILD_VERSION "0.289", and the compare with mamedev tag mame0289 is 83 ahead, 0 behind, with no file under src/mame or src/devices. The notes described the earlier pin e3fa1305 (branch groovymame0288).
2026-10-21 10:34:46 +02:00
Abdessamad Derraz a492e68045 fix: read a tagged upstream at its tag only
detect_pinned_tag matched core_version against every view, so an upstream_commit set to the release tag a port was cut from (triforce on Dolphin 2407, dosbox_pure on 1.0-preview7, GroovyMAME on mame0289) froze the whole profile: the port was no longer compared with its HEAD and bump_commit refused. Only the documented build's repository freezes the profile now. An upstream on its tag is self-checked at that tag, is not reported orphaned, and a bump leaves upstream_commit on it.
2026-10-21 10:34:46 +02:00
Abdessamad Derraz fd1d1b7b96 chore: merge round 2 fixes (pins)
# Conflicts:
#	install.ps1
#	install.sh
2026-10-21 10:31:09 +02:00
Abdessamad Derraz 052f837e69 chore: merge round 2 fixes (integrity) 2026-10-21 10:31:04 +02:00
Abdessamad Derraz 055627f39c chore: merge round 2 fixes (tooling) 2026-10-21 10:31:04 +02:00
Abdessamad Derraz 6409757c39 chore: merge round 2 fixes (docs)
# Conflicts:
#	CONTRIBUTING.md
#	scripts/check_release_assets.py
#	scripts/generate_readme.py
2026-10-21 10:31:04 +02:00
Abdessamad Derraz ce1f165d2f chore: merge round 2 fixes (tests)
# Conflicts:
#	install.ps1
#	install.py
#	install.sh
2026-10-21 10:29:19 +02:00
Abdessamad Derraz ccf61b96d7 fix: report names a RetroPie sentence gains
flycast now reads naomi2.zip, which the RetroArch list RetroPie inherits
already declares. The render added it to the flycast help sentences but
landed_changes counted additions only for entries the platform layer
lacks, so the report missed a name the diff carries. names_anew lets an
exporter whose unit is not the entry say so.
2026-10-21 10:26:04 +02:00
Abdessamad Derraz 040302f75c docs: drop a clause semicolon from flycast notes 2026-10-21 10:26:04 +02:00
Abdessamad Derraz d87e1035ed chore: drop a clause semicolon in profile_sync 2026-10-21 10:24:39 +02:00
Abdessamad Derraz f15fa46d85 feat: offer the one-liner where users land
The download page had no Android line and no Windows form with
options, and platform and system pages offered only ZIP parts. One
generator now writes the Linux, Windows and Android commands for the
download page and the platform, emulator and system pages. A system
section lists each platform's command under the system id its install
manifest records, the only names --system accepts.
2026-10-21 10:20:19 +02:00
Abdessamad Derraz 4129536121 chore: pin upstream revisions read by date or tag
dosbox_pure takes the upstream tag its core_version names (1.0-preview7), triforce the Dolphin release its tree reports (2407). The others take the upstream commit at profiled_date, the revision profile_sync already compared them against: the standalone build for standalone + libretro profiles, and for cannonball and jl-mod the cited lines land there and not at the fork's merge base. Every upstream-role ref lands on its declared value at the pin.
2026-10-21 10:18:07 +02:00
Abdessamad Derraz c8c4f3f486 chore: merge round 2 fixes (installer) 2026-10-21 10:17:44 +02:00
Abdessamad Derraz ccd1ff3b0b docs: describe each setup by what it is
The which-pack page called RetroPie the largest community with the most
guides, Batocera an easy setup and Recalbox good for a first build,
claims nothing in the repository measures. Each row now says what the
setup is, with board names taken from the platform target lists.
2026-10-21 10:17:04 +02:00
Abdessamad Derraz b89383ba68 fix: open the gap page on what is missing
The page opened on a slogan and four tiles that read Verified (100%)
for 5,437 of 5,438 files and Missing 0, above a table of red cells. It
now opens on what it covers and one sentence that says every count of
the platforms' own lists and points to the emulator files below.
2026-10-21 10:16:14 +02:00
Abdessamad Derraz 69965ebb25 feat: link each platform and system to its data
An emulator page linked its YAML and api/v1 JSON, platform and system
pages nothing. Each platform page now links its YAML, its own
api/v1/platforms/<id>.json and its install manifest, and each system
page its api/v1/systems/<slug>.json, both validated by the envelope
schema.
2026-10-21 10:15:11 +02:00
Abdessamad Derraz d7afac0993 chore: merge round 2 fixes (profile names) 2026-10-21 10:14:59 +02:00