Commit Graph
575 Commits
Author SHA1 Message Date
Abdessamad Derraz 9f1dbaa6c2 chore: merge audit fixes (packcli)
# Conflicts:
#	README.md
#	scripts/generate_pack.py
#	scripts/pipeline.py
2026-10-21 05:51:12 +02:00
Abdessamad Derraz 43c6df58ee chore: merge audit fixes (region)
# Conflicts:
#	install.ps1
#	install.sh
2026-10-21 05:48:59 +02:00
Abdessamad Derraz 06ae666f92 fix: describe WinUAE kickstarts by its own code
Every entry took its names from RetroBat's Uae.Generator.cs, which
the RetroBat launchers: records already hold. Kickstarts are now
labels of the ROM scan, and kick.rom, the name the loader opens under
its data path, is listed.
2026-10-21 05:23:14 +02:00
Abdessamad Derraz e318bb4503 fix: read pcsx_rearmed us slot as the default
CheckCdrom sets PSX_REGION_US before it reads the licence, and only
"Inc." or "Euro pe" move it (libpcsxcore/misc.c:422-453). A Latin
American disc boots the US slot, so its four BIOS images carry
latin-america and --region br,jp keeps them.
2026-10-21 05:20:03 +02:00
Abdessamad Derraz 4e8d375074 fix: serve australian mega cd discs their pal bios
BlastEm and Kega Fusion pick the European Mega CD BIOS for every disc
whose region code is the PAL one, Australian discs included: BlastEm
reads E or bit 8 of the header region (romdb.c:176-215), Fusion the
security byte 0x64 at 0x20B. Both now carry oceania, and a repo-wide
test holds every European Mega CD BIOS to it.

Fusion picks its export Master System BIOS from the CountryOrder
setting or a CRC32 list, never from the cart, so bios_U.sms and
bios_E.sms carry no region.
2026-10-21 05:20:00 +02:00
Abdessamad Derraz 7e6b80d501 fix: keep amiberry to the names its code reads
kick02019.AROS and its .ext were Recalbox configgen names, shipped at
the BIOS root of four packs whose code never opens them. Recalbox
keeps them through its own amiga/bios declarations. amiga-os-310.rom
is a ROM scan label, now found_by content.
2026-10-21 05:19:56 +02:00
Abdessamad Derraz 247093d7d2 fix: name BizHawk firmware by its own database
BizHawk finds firmware by SHA-1 scan or a user specification, so the
profile is found_by content. 38 entries used the names RetroBat's
generator writes; they now carry FirmwareDatabase.cs recommended
names, and the pooled NDS firmware entry is split per option.
2026-10-21 05:17:34 +02:00
Abdessamad Derraz 7fdf17f77e docs: drop launcher prose from hatari tos.img
8dc485dc moved the TOS names into each platform's launchers: records,
but the tos.img notes still described the Batocera, Recalbox and
RetroBat generators and an aliases field the entry no longer has.
2026-10-21 05:13:34 +02:00
Abdessamad Derraz 742b1f584f fix: keep sonic3-air notes to the engine's code
The three data package notes cited Batocera's sonic3-air.mk:40, a
package recipe outside the declared repository, so profile_sync
reported it absent for good. The engine data note now cites
EngineMain.cpp by its full path.
2026-10-21 05:12:35 +02:00
Abdessamad Derraz 8931d738dc fix: read fbalpha2012 hiscore.dat from save dir
HiscoreInit opens <g_save_dir>/hiscore.dat (hiscore.cpp:411). Without
load_from the entry was packed at bios/hiscore.dat and took the slot
mame2000 reads on RetroDECK, which now gets its sha1-pinned file.
2026-10-21 05:11:36 +02:00
Abdessamad Derraz 37a5bd05ff docs: state .info facts in profile notes
Ten notes and comments called .info entries phantom, misleading or
incorrectly written. They now say what the .info declares and what
the code reads, and a prose test refuses those verdicts in profiles.
2026-10-21 05:10:45 +02:00
Abdessamad Derraz b44d57a32f fix: pin nicaiemu to the last nicaiemu build
The repository was renamed to CoolbarEmu (PR #78) and its buildbot
recipe now builds coolbaremu. Hold the profile on 4c9b73f7, the last
revision built as nicaiemu, and document the orientation list it reads
from the system directory.
2026-10-21 05:08:00 +02:00
Abdessamad Derraz 5fc2423ca5 fix: apply --required-only to data directories
The Required packs and manifests carried every data tree, the FreeIntv
overlays included. A data_directories entry now accepts required: false,
and the platform, emulator and manifest walks leave such a tree out under
--required-only. FreeIntv reads its overlays only with the multi-screen
option and draws a placeholder keypad without one (src/libretro.c:294-296,
350-369).
2026-10-21 05:05:49 +02:00
Abdessamad Derraz 8dc485dcd5 fix: move Hatari's TOS names to the launcher layer
The 43 tos.img aliases in hatari.yml and 10 in hatarib.yml were names Batocera, Recalbox and RetroBat launchers pass to Hatari (hatariGenerator.py, Hatari.Generator.cs, libretroCores.py), now recorded in each platform's launchers: records. With standalone Hatari profiled, those records attach. Measured on Batocera, RetroBat, Recalbox, ROCKNIX and RetroPie: verify statuses, manifest files, omissions and Hatari entries are identical before and after.
2026-10-20 22:03:20 +02:00
Abdessamad Derraz 40e9ed58ad feat: profile standalone Hatari
Batocera (v2.6.1, hatari.mk), RetroBat (v2.4.1 release), Recalbox and ROCKNIX run standalone Hatari, which the profile did not describe, so their launcher records had no build to attach to. Standalone Hatari reads tos.img from its data directory by default (src/configuration.c:810-812, src/paths.c:316-330), retries a missing name with .img, .rom and .tos (src/file.c:275-308, 481-520), and exits when no TOS loads (src/main.c:191-201). The profile is now standalone + libretro, with the keymap file and the window icon as standalone entries and BOOT.ST scoped to libretro.
2026-10-20 21:59:32 +02:00
Abdessamad Derraz ec1a441f4a fix: drop Recalbox launcher names from gsplus
apple2gs1.rom and apple2gs3.rom come only from Recalbox's gsplusGenerator.py:107-110, 140, a platform launcher now recorded in platforms/recalbox.yml. No platform resolves gsplus.yml (Recalbox, Batocera and RetroBat run gsplus-legacy), and verify and the manifests of Recalbox, RetroDECK, ROCKNIX and EmuDeck are identical before and after.
2026-10-20 21:48:43 +02:00
Abdessamad Derraz c445c18bdc fix: map RetroPie's standalone builds to profiles
RetroPie builds minivmac/minivmac, winterheart/quasi88 and TurtleBazooka/px68k under the package names minivmac, quasi88 and px68k (scriptmodules/emulators/minivmac.sh:12, quasi88.sh:12, px68k.sh:12). With built_by retropie and those names in cores, RetroPie resolves them to minivmac37, quasi88kai and px68k-sdl, while its libretro builds stay reached through retroarch. Measured: RetroPie keeps 532 of 532 platform files OK and gains the 14 files the standalone builds read; no other platform's resolution changes.
2026-10-20 21:46:16 +02:00
Abdessamad Derraz 6295bf4545 refactor: drop the RetroBat LaserActive v1.02 name
RetroBat's ares launcher tries v1.05, v1.02 then v1.01 (Ares.Generator.cs:371-437), now recorded under launchers: in platforms/retrobat.yml. ares itself identifies the image by sha256. No file carries the name, so the database is unchanged.
2026-10-20 21:26:48 +02:00
Abdessamad Derraz ebfe987de7 fix: pin BizHawk on the 2.11.1 it ships
The profile was pinned at 427556b5 (2.11) while the platform transcribes 2.11.1. In 2.11.1 FirmwareDatabase.cs rates one option per slot Ideal (MCD_eu_100, MCD_jp_100p, SCD_m1_us_110, SMS v1.3, gbaNormal and others), adds TI83_110.rom and a doom2.wad slot (DSDA.cs:85-99), and resizes the TI-83 Plus ROMs. The Ideal option of each slot is the required one, refs into the 12 changed files are remapped, and the 40 firmware files 2.11.1 names that the collection lacked are collected, each sha1-verified (LA_us_102.bin matches No-Intro [BIOS] LaserActive (USA) (v1.02)).
2026-10-20 19:21:31 +02:00
Abdessamad Derraz a8732ca9df feat: profile the GSplus legacy build
Recalbox builds digarok/gsplus-legacy-archive (gsplus.mk:8-9), Batocera a fork of it whose loading code matches, and RetroBat runs its gsplus-win-sdl release (GsPlus.Generator.cs:26-30). digarok/gsplus, which gsplus.yml documents, is a later KEGS 1.38 import sharing no history with it. The legacy build reads ROM, ROM1, ROM3, ROM01, ROM03, ROM.01, ROM.03 at 128 or 256 KB (src/config.c:863-908), refuses to start without one, and reads c600.rom, parallel.rom and printer fonts as optional.
2026-10-20 16:57:24 +02:00
Abdessamad Derraz dfdb887fb8 fix: say which cores find their BIOS by content
DuckStation (bios.cpp:208, 397-427), SwanStation (host_interface.cpp:
136-194), rustation (lib.rs:107-160), FS-UAE (rommgr.cpp:92-151),
ares (firmware.cpp:116-136) and Altirra (uifirmwarescan.cpp:29-113)
scan a folder and identify firmware by hash; Ymir does in its
standalone build only. FS-UAE still opens rom.key by name
(rommgr.cpp:1397-1498). The export then stops writing their labels
into platform lists: Batocera's psx block goes from 106 entries to 10,
and System.dat's scph5000.bin keeps its own hashes.
2026-10-20 16:49:16 +02:00
Abdessamad Derraz 1b50170922 fix: give MAME and FBNeo data files their system
Entries without a system in multi-system profiles were left unattributed by the truth model, and four System.dat additions left the export. Each system is read from the core's code at its pin. hiscore.dat, cheats and history serve every running machine (mame2000 cpuintrf.c:664-666, mame2003 cpuexec.c:280-282, mame2003_plus cpuexec.c:296-298, fbneo hiscore.cpp:154-161 gated on BDF_HISCORE_SUPPORTED), all arcade in those builds, so arcade. BIOS sets take the id their driver gives in the other MAME profiles, and bctvidbs is barcrest-mpu4 everywhere. Files serving several systems of one build (groovymame data files, raine) keep no system. Core resolution is unchanged on every platform.
2026-10-20 16:45:54 +02:00
Abdessamad Derraz 194ed23ded feat: list the 1,254 MAME 0.289 device sets
Generated by mame_hash_scraper --devices from mame0289lx.zip, the release asset whose sha256 matches GitHub's digest. Each set is optional: the core runs without it, and only a machine using the device needs it. 1,252 cite their ROM block, two are written without a ref because two blocks hold the same ROMs. Two note citations now carry their full upstream path.
2026-10-20 15:12:23 +02:00
Abdessamad Derraz 60dfba51f3 feat: profile px68k SDL standalone
IPL search order iplrom, iplromxv, iplromco, iplrom30 and font cgrom30, cgrom30.tmp, cgrom, cgrom.tmp (SDL/SDL2/winx68k.cpp:277-331), SCSI ROMs (:140-271), all from $HOME/.keropi (SDL/prop.c:172-194). One IPL and one font are required: without them the CPU loop never starts.
2026-10-20 15:07:21 +02:00
Abdessamad Derraz f61c3d9ca5 feat: profile QUASI88kai standalone
The ROM list is src/memory.cpp:87-100. A missing ROM is filled with 0xFF and the emulator starts, so only N88.ROM, N88SUB.ROM and N88EXT0.ROM, without which nothing boots, are required. The directory is QUASI88_ROM_DIR, else <home>/rom (src/file-op.cpp:444-521). The CMake ROMDIR setting only appears in the help text.
2026-10-20 15:07:21 +02:00
Abdessamad Derraz 78fd70ae50 feat: profile Mini vMac 37 standalone
The SDL build reads vMac.ROM, fixed at build time to the Mac Plus ROM name and 128 KB (setup/SPCNFGAP.i:60-63), and checks it against three Mac Plus checksums (src/CONTROLM.h:1344-1388). Search order: --rom, the executable's directory, mnvm_rom/ under the SDL pref path, the working directory (src/OSGLUSDL.c:546-620).
2026-10-20 15:07:21 +02:00
Abdessamad Derraz a5c66bab46 fix: geargrafx reads PAC firmware for LaserActive
load_pac_bios runs only for .mmi content (platforms/libretro/libretro.cpp:507, 521-522), so pac-n1, pce-lp1 and pac-n10 carry system laseractive, and the system cards nec-pc-engine-cd.
2026-10-20 14:56:38 +02:00
Abdessamad Derraz 50beb0ca27 fix: o2em reads one BIOS, chosen by an option
o2em_bios defaults to o2rom.bin and only the chosen file is opened (libretro_core_options.h:52-64, libretro.c:989). Loading fails when it is missing or under 1024 bytes (libretro.c:160-189, 1043-1044). The four files share a variant group, o2rom.bin stays required, the others are optional. Only the first 1024 bytes are read and an unknown CRC still loads, so size becomes min_size and crc32 leaves validation.
2026-10-20 14:56:38 +02:00
Abdessamad Derraz 920f0eb67c fix: give mame2010's system-less sets their system
hiscore.dat and cheat.zip serve every machine (machine.c:361-363), so arcade. The other twenty BIOS sets take the system ids the other MAME profiles give the same sets, from their drivers (naomi.c:4654-4661 for hod2bios, f355bios, airlbios). mac2bios is declared in macs.c:514, 740, not suprnova.c.
2026-10-20 14:56:38 +02:00
Abdessamad Derraz 07f1e881f1 fix: give each DOSBox-X file the system it serves
The profile set no system on its entries, so the truth model filed every one under the only profile system a platform has (nec-pc-98 on Batocera, truth.py:487-499). system.rom boots only on PCjr (dos_programs.cpp:2995-2996), MIDI ROMs and SoundFonts serve every machine (mpu401.cpp:678-793), FONT.ROM and the PC-98 bitmaps serve PC-98, the VGA and ROM BASIC images serve the IBM PC. The system BIOS image boots either kind and keeps no system.
2026-10-20 14:56:38 +02:00
Abdessamad Derraz 63556b4873 fix: fuse runs without its model ROMs
A Pentagon, Pentagon 512/1024 or Scorpion reset returns an error when a ROM is missing (fuse/machines/pentagon.c:131-139, pentagon512.c:76-91, pentagon1024.c:72-87, scorpion.c:76-78), machine_select_machine fails (fuse/machine.c:237) and machine_select falls back to the built-in 48K machine (fuse/machine.c:150-162). The core keeps running, so the eight model ROMs are optional.
2026-10-20 14:42:30 +02:00
Abdessamad Derraz cc31f9f863 fix: put ide250.zip under openMSX's systemroms
Every other openMSX entry documents the default file pool folder, share/systemroms. Batocera adds bios/openmsx to the pool and its pack keeps the destination it declares.
2026-10-20 14:35:28 +02:00
Abdessamad Derraz e05ce9c643 fix: list the MAME sets platforms run
Sets the platforms' MAME launches load: CoCo, SCV, BBC, Electron, Mac, Dragon 64, Archimedes and others, each with its members' crc32 from libretro/mame at the pin. The note now states the version the commits pin (0.289) instead of a hand-kept count.
2026-10-20 14:26:24 +02:00
Abdessamad Derraz 48969cabbd fix: list the Amiga and Mac images cores open
amiga-os-310.rom and Recalbox's kick02019.AROS pair are opened by amiberry's ROM scan (amiberry_gui.cpp, rommgr.cpp at the pin). MinivMacBootv2.dsk is opened by minivmac.
2026-10-20 14:26:24 +02:00
Abdessamad Derraz 43fee39139 fix: list the PS3 ps1_rom.bin swanstation reads
SwanStation hashes the first 512 KB of the 4 MB PS3 ps1_rom.bin, which is its table entry c02a6fbb (bios.cpp:70). Two refs pointed one line off: the hashes are on lines 66 and 71 at the pin.
2026-10-20 14:26:24 +02:00
Abdessamad Derraz 5129b967e6 fix: list the PS2 images PCSX2 builds accept
ps2-0250j-20100415.bin passes the folder scan of pcsx2, armsx2 and yaps2. EmuDeck's SCPH-70004 .BIN, .ROM1 and .ROM2 are aliases in pcsx2, and the .rom1 note now says the stat is case-sensitive.
2026-10-20 14:26:24 +02:00
Abdessamad Derraz b55e48b0bc fix: list LaserActive and Mega CD images for ares
RetroBat's ares launcher writes the LaserActive BIOS paths into ares's settings, and ares loads them with no hash check. Three EmuDeck Mega CD md5s are images ares's sha256 table names, so their md5 sits beside the sha256.
2026-10-20 14:26:24 +02:00
Abdessamad Derraz fb9198937a fix: name the ROMs Recalbox gives GSplus
Recalbox's GSplus launcher passes apple2gs1.rom or apple2gs3.rom as the ROM path. They are aliases of ROM.
2026-10-20 14:26:24 +02:00
Abdessamad Derraz b8fcdd68c1 fix: name the flash ROMs platforms give xemu
RetroDECK, ROCKNIX and EmuDeck write Complex.bin or Complex_4627v1.03.bin into xemu's flash ROM path, and Batocera points chihiro at cerbios.bin. They are aliases of Complex_4627.bin.
2026-10-20 14:26:24 +02:00
Abdessamad Derraz 20216858a4 fix: list the IPL images Ymir identifies
Ymir standalone identifies an IPL by its XXH128 with seed kIPLHashSeed (memory_defs.hpp:10) against ipl_db.cpp:9-17. Each image's digest was recomputed with that seed and falls on the cited row.
2026-10-20 14:26:24 +02:00
Abdessamad Derraz bc2fe238e7 fix: list the MSX ROMs blueMSX and openMSX read
blueMSX names Msx2pe, Msx2pexte, pesadelo and svi328a in its machine configs. openMSX declares the sha1 of nine RetroBat system ROMs in its machine XMLs, and unpacks IDE250.DAT from ide250.zip.
2026-10-20 14:26:24 +02:00
Abdessamad Derraz 85db3cad72 fix: list the ROMs xroar's ROM lists name
xroar finds ROMs through its ROM lists and adds .rom itself: disk10, ddos10, ddos40, dplus48 and d64rom1 are named there (src/xroar.c:714).
2026-10-20 14:26:24 +02:00
Abdessamad Derraz 186ad0fafa fix: list the ROMs atari800 finds by checksum
atari800 scans the system folder and recognises each OS and BASIC ROM by CRC32 (sysrom.c:104, 317-420), whatever its name. RetroDECK's ROM_* names are those config keys. Eleven entries carry md5, crc32 and size, under the label altirra already uses for the same dump where one exists.
2026-10-20 14:26:24 +02:00
Abdessamad Derraz b3545d3cc4 fix: name the TOS images launchers pass to Hatari
Batocera, Recalbox and RetroBat choose the TOS file and pass its name to standalone Hatari (--tos, szTosImageFileName) or to hatariB (hatarib_tos): hatariGenerator.py:74-75, 158-193 (Batocera), Hatari.Generator.cs:144-154 (RetroBat). The libretro build still opens tos.img only. The names are aliases of tos.img.
2026-10-20 14:26:24 +02:00
Abdessamad Derraz 7a3cbc657d docs: describe other projects by facts only
Profile notes and wiki pages called .info entries phantom or incorrect, and labelled an upstream list a known defect. They now state what each file declares and what the code reads. The wiki claimed Batocera prefix-matches truncated md5s; its script compares the full string (batocera-systems:1088), which the page now says. The gaps column reads "Not read by profiles" and notes that a profile may be incomplete.
2026-10-20 13:33:53 +02:00
Abdessamad Derraz 4f5349c8fd fix: blastem's U region covers Latin America
The Sega CD region code U is the Americas, as for the other profiles' US Mega CD BIOS.
2026-10-20 11:27:07 +02:00
Abdessamad Derraz b298ec6773 feat: profile Recalbox's uae4all core
Recalbox compiles uae4all from Chips-fr/uae4all-rpi (libretro-uae4all.mk:8-9), a libretro core that reads kick34005.A500 from the system directory and nothing else. built_by makes the name resolve to it on Recalbox only.
2026-10-20 10:37:33 +02:00
Abdessamad Derraz 74514930d0 fix: list MAME's hash, plugins and floppy sounds
The libretro core passes system/mame/{hash,plugins,samples} (retro_init.cpp:111-155). Software lists are required in mamemess, where softlists are on by default. The trees and the 19 floppy samples are collected from libretro/mame at the pin.
2026-10-20 10:37:33 +02:00
Abdessamad Derraz 57d5c3ffd0 fix: list the artwork mame2003-plus ships
Seven artwork zips from the core's metadata/artwork are read from mame2003-plus/artwork/ when Display Artwork is on, the default (artwork.c:2242-2258).
2026-10-20 10:37:32 +02:00
Abdessamad Derraz e9dfcc97a7 fix: list the WHDBoot files amiberry needs
The libretro core copies whdboot from the system directory and uses a candidate only when WHDLoad, JST, AmiQuit, boot-data, the game database and the five RTB files are all there (amiberry.cpp:11510-11584). The core zip has none of them, so they are collected.
2026-10-20 10:37:32 +02:00