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.
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.
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.
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.
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.
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).
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).
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.
np2pi reads 0x4000 bytes of scsi.rom as the SCSI BIOS (cbus/scsiio.c:
208-233). The only 16 KB copy of that name is Clock Signal's Apple II
card ROM, which the name step served and the RetroPie manifest installed.
The entry now carries unsourceable: and np2pi falls back on its stub.
NanoBoyAdvance opens general.bios_path, default bios.bin (src/platform/core/src/config.cpp:36 at 3bb6f478). gba_bios.bin is the path ROCKNIX's config.toml sets, recorded under launchers: in rocknix.yml.
Without the alias the entry met only PCem's and QEMU's bios.bin, 64 and 128 KB, which BIOSLoader refuses (bios.cpp:17-48). verify counted it held by name, so the launcher layer left it alone and the ROCKNIX pack gained PCem's image. A hashless entry whose every same-named copy fails its size is now not held, and the gba_bios.bin ROCKNIX declares settles it.
_holding_members kept every same-named copy when the best held nothing,
so galgames.zip, a lone assembler listing, resolved by name for mame,
groovymame and mame4droid-2024, and awbios.zip for mame4droid. Such a
copy now resolves as hash_mismatch.
mame2003_plus declared its contents by name only, while fileio.c:1031-1040
loads a member by CRC when the name is absent. The 61 members now carry
the CRC their driver declares, so stvbios, megatech and the six ZN sets
keep matching the archives the collection holds.
Dolphin and its forks map the Brazilian disc country code B, and the
SYSCONF countries of the Americas, to NTSC-U (DiscIO/Enums.cpp), whose
boot ROM is read from GC/USA. Tagged north-america alone, the IPL a
Brazilian disc boots left a --region brazil,europe pack. GC/USA/IPL.bin
in six profiles and triforce's IPL_TRI.bin now carry latin-america.
upstream_commit is the merge base the compare API gives between each port at its source_commit and the upstream default branch. holani and melonds_ds take the revision their build fetches (tag 0.9.9, and the melonDS branch whose merge base is 906e9ebb). The upstream-role refs land on their declared values there, except mesence bios.col, whose line 70 is in MesenCE's own FirmwareTypeExtensions.cs.
sms_cart_region_detect returns REGION_USA for any cartridge outside its
CRC list whose header is not Japanese, so Genesis Plus GX and its two
forks open bios_U.sms for Australian and Brazilian cartridges as well.
Tagged north-america and europe only, --region australia,japan dropped
it from the pack. The tag now adds latin-america and oceania.
Basilisk II opens rom_path or ROM_FILE_NAME "ROM" (BasiliskII/src/Unix/main_unix.cpp:109, 685) and never mac.rom. RetroPie's basilisk.sh:56 passes $romdir/macintosh/mac.rom with --rom, recorded under launchers: in retropie.yml.
load_dd_rom builds only <system>/Mupen64plus/IPL.n64 (mupen64plus-core/src/main/main.c:958-961 at 12edd2c7). 64DD_IPL.bin is Batocera's standalone mupen64plus name (mupenConfig.py:188-192), held in batocera.yml files and launchers. standalone_path described a build this libretro profile does not have.
Fusion.exe fixes only us_scd1_9210.bin, jp_mcd1_9111.bin and eu_mcd1_9210.bin (0x44b662-0x44b74d). bios_CD_U/J/E.bin are the names RetroBat's generator writes into Fusion.ini (KegaFusion.Generator.cs:105-116), and platforms/retrobat.yml declares all three.
The loader at speccy 0x3d970 gzopens only the name it is given and clears the model bit when that fails. ZXS16.ROM is passed with mask 1 (0x3dcb2), ZXS48.ROM separately with mask 2 (0x3dcc8), and the binary holds no 48.rom string (Speccy59-Ubuntu-x86-bin). The aliases let a root 48.rom settle the 16K ROM, which the gap report now lists.
The buildbot builds the stella core from stella-emu/stella master
(src/os/libretro), not from stella2014 code, and stella2023 claimed the
stella name. stella.yml now documents that tree at 2c3d7023: the KidVid
tapes are read from a stella folder under the save directory, loose or
in KidVidAudio.zip, and played. stella2023 keeps its own name only.
mame2000 opens hiscore.dat, history.dat and mameinfo.dat from IMAMEBASEPATH, the content directory (src/libretro/fileio.c:1002-1014, libretro.c:1044-1052). mame2014 and mame2015 open hiscore.dat through emu_file with no search path, the working directory (src/emu/hiscore.c:330-337, fileio.c:141-143). With no load_from the entries claimed system/ and the packs shipped files neither core opens there. ANoteOutsideTheSystemDirCarriesLoadFrom holds libretro notes and load_from together.
ares finds firmware by sha256 (desktop-ui/settings/firmware.cpp:116-136) and names no file. Its FDS entry (RP2C33-01, crc32 1c7ae5d5) was labelled disksys.rom, the name nestopia, fceumm and four more cores read for RP2C33A-01A: ROCKNIX and EmuDeck got ares's revision at disksys.rom. It now carries MAME's member name rp2c33-01.bin.
The LaserActive v1.05 entry, the PAC-S10, PAC-N10, PAC-N1, PCE-LP1 and Neo Geo Pocket aliases are names RetroBat's launcher passes (Ares.Generator.cs:435-555): mega-ld.cpp:16-17 holds only the v1.04 US and v1.02 Japan hashes. RetroBat declares each name in its own list.
AHashScanLabelNamesNoOtherDump compares every found_by: content label with other profiles' entries of that name through the hash indexes.
Ten profile notes graded a .info (correct, accurate, still, missing, omits). Each now says what the file declares and what the code reads. test_no_grade_on_another_projects_file reads every profile line that names a .info, core-info or System.dat.
Each upstream URL names a mamedev/mame tag; upstream_commit is the commit that tag points at. Every upstream-role ref lands on its declared set name or hash there.
The tmss.md note lived under three pins, so profile_sync could not
tell which revision its three citations describe and refused any bump.
At 1e0de94d libblastem.c:514-529 is the tmss.md and bios_MD.bin lookup,
genesis.c:3036-3051 the fatal_error without a TMSS ROM and 3054-3065
the mirror loop, as the note says. prose_written_at names that pin.
libretro/ppsspp answers as libretro-mirrors/ppsspp-old, a 2020 tree
frozen in 2022. The buildbot builds ppsspp from hrydgard/ppsspp master,
whose libretro/ directory holds the wrapper, so the profile is read
again at 58935bbf and pinned there.
The asset directory, PPGe atlas and font lookup are cited where they
sit now. The notes record the NAND under the save directory that a
disc's firmware updater fills, and the modules it replaces.
libretro/flycast now answers as libretro/parallel-dc, a separate core.
The buildbot builds flycast from flyinghead/flycast master
(libretro-super recipes, cores-linux-x64-generic), so the profile is
read again at 34ad8c82 and pinned there.
At that revision the Dreamcast boot ROM is dc_boot.bin or dc_bios.bin,
the flash is dc_nvmem.bin, arcade platforms read no flat boot ROM, the
system font is compiled in, and NAOMI 2 and System SP load naomi2.zip
and segasp.zip. Archive members carry the CRC the loader looks up.
Each MT-32 entry cites the SHA-1 line and the ROMInfo line of one
mt32emu.h. dosbox_pure wrote them under two repository words, so the
ROMInfo line was self-checked alone and read MOVED onto the SHA-1 line.
Both now sit in the port that carries the file, and in the upstream for
dosbox-pure-unleashed, whose tree has no src/gui.
A recale that lands on a line a sibling part already cites goes to
review, and a part settled by its anchor keeps that anchor's repository.
DecideNAND (MelonDS.cs:684-706) keeps, for a DSi title, only the NAND
slots whose bit is set in header byte 0x1B0. The six DSi_Nand entries
now carry that territory, so --region keeps one 240 MB image, not six.
AUS answers oceania, as every other Australian slot does.
The buildbot serves nicaiemu_libretro (frozen at 4c9b73f7, last built
2026-10-16 05:15) beside coolbaremu_libretro. They are two builds: each
reads its own orientation list from the system directory, so both
profiles stay, each with its own core name. Both read the same .cbe
archives from the same workspace, which builds a standalone binary at
both revisions: one system id and one build type for the two.
Pin moves to 2de3bf8 (v8.4.2). roms/aros-ext.bin, roms/aros-rom.bin and whdboot/game-data/whdload_db.json changed upstream and are collected at that revision. The WHDLoad database is matched on the archive SHA1 first and refreshed from the bundled copy when newer. kick02019.AROS and its .ext are names the Recalbox launcher writes, so the profile now documents the kickstart_rom_file settings instead.
Pins move to libretro/hatari 5092994 and hatari/hatari 90949cf. The port now reads floppy.raw from the system directory (floppy_sound.c:146-186), documented as an optional user sample. Upstream decodes IPF without capsimage, the icon block moved by four lines, and the launcher file names leave the tos.img note for the platform layer.
The Dolphin Sys, PPSSPP assets and blueMSX trees stay required, and the
profiles now cite why. blueMSX finds no machine without Machines/, the
C-BIOS ones included, and the load fails (Src/Board/Machine.c:637-656,
libretro.c:1447-1449). Its tree reference cited libretro.c:1119-1120,
which at the pinned revision is the Sunrise IDE option, and now cites
1196-1197. PPSSPP has no internal font without flash0/font, so
sceFontOpen fails for games using the system fonts
(Core/HLE/sceFont.cpp:805-864, 984-986). Dolphin loads no GameCube font
without Sys/GC/ or an IPL dump and warns that games may crash
(Source/Core/Core/HW/EXI/EXI_DeviceIPL.cpp:328-340).
FirmwareDatabase.cs:405-410 declares NDS+NAND_JPN, EUR, USA, AUS, CHN
and KOR, each with a placeholder hash and 251658240 + 64 bytes. In DSi
mode DecideNAND takes the first one set, limited to the regions a
DSi-enhanced header allows, and stops the load with none
(MelonDS.cs:114, 304, 484, 684-706). DSi mode is off by default, so the
entries are optional, like DSi_Firmware.bin and the DSi BIOS slots.
A missing extended ROM only raises a notice (memory.cpp:1833-1849), but
the machine then runs on the Kickstart alone. cdstrap, cd.device,
cdtv.device and cdfs.library are resident modules of the CD32 and CDTV
extended ROMs and absent from their Kickstarts, the CD32 and base CDTV
models have no floppy drive (cfgfile.cpp:9375-9379, 9405-9406), so no CD
is read or booted. Both entries stay required. The AROS replacement
stands in only for a missing Kickstart (memory.cpp:3055-3063), so the
CDTV entry loses hle_fallback.
FreeIntv declared no data tree while its alias freeintv_ts_overlay,
the same code, declared freeintv_overlays. The core reads
freeintv_overlays/<rom>.png only with the multi-screen option and draws
its embedded keypad image without one (src/libretro.c:278-280, 294,
321-325), so the tree is optional. A test holds every alias to the trees
of its core.
Each core picks its US image for a disc licensed by Sony Computer
Entertainment America, and DuckStation, SwanStation and Beetle PSX
also for a disc whose region they cannot read. Tagged north-america
alone, a --region brazil,jp pack withdrew those images.
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.
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.
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.