AmberELEC and ROCKNIX install a retroarch.cfg whose system_directory
points every core at the BIOS folder. retroarch.yml (type utility, no
file, no system) reads that key, and ROCKNIX's systemfiles_in_content_dir,
at the RetroArch each one compiles: v1.22.2 and bdba046f. all_libretro
never picks a utility profile, and lists naming retroarch gain no file.
A libretro core option a frontend record writes stays the core's to
read: RetroDECK's pcsx2_bios keeps lrps2 as its reader.
RetroBat installs its stable archives, so each config_reads entry is
read at the build the binary names: Hatari 2.4.1, hatariB 0.3,
Hatari2014 at ab55c3e from the buildbot, Kronos 2.7.0 and Ymir 0.3.3.
SSF ships PreviewVer R28 and YabaSanshiro 1.20.32 has no public
source: binary_sha256 names the file their address refs are read in.
The seven RetroBat records citing an option list now hold.
Where each shipped build finds the config a platform installs and reads
every key it opens a file from, read at the build the platform ships:
duckstation (EmuELEC, ROCKNIX, RetroBat), xemu, armsx2, hatari, melonDS,
dsperate, NanoBoyAdvance, mednafen (ROCKNIX's sydarn fork) and ares,
gzdoom, xroar, lrps2 and the amiberry builds at their pins. pin_build
names the builds ROCKNIX, EmuELEC and AmberELEC compile, revision the
ones RetroBat and Flathub install unpinned.
tests/test_launcher_evidence.py covers the rule, the extractor helpers,
the invariants and the chains that move placements.
Readme claims give way to the boot routine of SSF.exe R38: the Saturn
BIOS must read 0x80000 bytes, a failed read or NoBIOS falls back to the
embedded boot ROM, so the BIOS is optional with an HLE fallback, and
ST-V reads its EPROM whatever NoBIOS says.
The -home, -palette, DEFAULT.Z80 and Sam Coupe claims now cite the
option table and loaders of the Speccy 5.9 desktop binary. Quotes with
no code behind them are gone.
Notes now cite code for the fpRam directory, the registry keys and the
Tables path, and drop the manual, installer and Batocera changelog
wording. The code spells the directory fpRam.
The four camera plugins link OpenCV statically. Refs now cite the
CascadeClassifier::load call, its path built from the plugin directory
and the three-entry table, and the empty detector that follows a
failed load.
The step from the frame's create handler down to Memory::Init was
inferred from the error message. Refs now give the chain through
AfxWinMain, InitInstance, the message map, VM::Init and the device
vtable, and the notes say where the SRAM machine index is set.
The media board ROM ref now cites the XBE directory build, the boot.id
exists test that makes the system Chihiro and the gate that skips the
ROM checks in TeknoParrot's cxbxr-emu.dll.
Each built-in ROM resource of Caprice.exe 26.4 is listed with the sha1
of its bytes and the dump it equals in this and other profiles. The
release date taken from History.txt is gone.
The flag, star, FAQ and notice assets cited format strings only. They
now name the decompiled methods that build each asset path and open it
through the AssetManager or a WebView, in all three builds.
Import and .rdata citations now name the loader, LoadLibrary, cascade
and SQLite call sites in BAM.dll and its plugins. TrackIR.dll keeps the
NPClient.dll Future Pinball loads, Kinect10.dll is imported by the two
Kinect plugins only, and the PostFX, iCom and OpenVR configs gain
entries.
Import directory lines and manual pages gave way to the IAT ranges and
the calls that use each library in Future Pinball.exe 1.9.1.20101231.
fpLatestTables.xml is written by the program, not by libcurl.
EmuELEC starts AdvanceMAME for arcade, mame and cps1-3 (es_systems.json).
advmame.sh sets dir_rom to /storage/roms/arcade for arcade and keeps
/storage/roms/mame for every other system (advmame.sh:26-30, 80), so an
arcade set is read in both. A binding gave each entry one place: an entry
launched both for a system a record names and for one it does not now
takes the place of each, in the pack, the manifest and verify. A system
the platform's list or machines put the entry under stands for the
entry's own ids, so XRoar's coco3.rom stays in RetroBat's bios/coco alone.
The AdvanceMAME sets are filed under arcade as well as their board.
A second-pass copy outside the BIOS tree now carries its layout path and
resolves by it, as the first pass does: EmuELEC's roms/mame/stvbios.zip
took bios/Arcade/MAME's set by that tail, roms/arcade/stvbios.zip the
Arcade/Arcade one.
Manifests: EmuELEC gains the 29 sets in roms/arcade, each the file
roms/mame holds. roms/mame/stvbios.zip changes from bios/Arcade/MAME to
bios/Arcade/Arcade/stvbios.zip, the copy the entry resolves to. Nothing
else moves.
libretro/mame hands MAME the rompath <content folder>;<system>/mame/bios;
<system>/mame/roms (src/osd/libretro/libretro-internal/retro_init.cpp:580-597
at 5f5a0774, 573-579 at dc1a9653 for 0.258, 582-588 at fba50741 for 0.278,
CORE_NAME "mame" in libretro_shared.h). The system folder itself is never
searched, and every pack put the sets there. The mame, mame0258, mame0278,
mamearcade and mamemess profiles now lay their sets out in mame/bios, the
standalone build keeping the top of its rompath. The release profile writer
and the device and set merge write the same paths on new entries.
RetroBat offers MAME as the libretro core mame and as the standalone mame64
(es_systems.cfg), two names of one profile, and laid out only the
standalone build. A libretro name whose profile the platform also runs
standalone under another name now makes the profile dual mode.
Manifests: mame/bios gains 1453 sets on RetroArch, Lakka, RetroPie,
EmuDeck and RetroDECK, 1427 on Batocera, KNULLI, RetroBat, ROCKNIX,
AmberELEC and EmuELEC, 78 on Recalbox. Root copies only these cores
claimed leave: 1373 on RetroArch and Lakka, 1372 on RetroPie, 1349 on
ROCKNIX, 1347 on AmberELEC, 1365 on EmuELEC, 240 on RetroDECK, 26 on
EmuDeck, 9 on Recalbox. Batocera, KNULLI and RetroBat keep theirs for the
standalone rompath. RetroBat gains the libretro layout: mame/hash (725),
mame/samples/floppy (19) and mame/plugins (71). The root copies other cores
still claim now hold the copy those cores resolve (38 on RetroArch).
Recalbox drops three Arcade/Arcade copies (coh3002t, pumpitup, naomi2)
that only the root claim reached, mame/bios holding the copies with every
member the 0.258 and 0.278 sets list. No set is lost.
Each EDK2 code image was run through a .qemu_cmd_line with -bios in the buildbot qemu_libretro.so (linux x86_64, 2026-07-27, 06ad814b) under scripts/core_probe.py, every pc-bios file staged in system/qemu.
edk2-aarch64-code.fd and edk2-arm-code.fd reach the TianoCore boot screen on -M virt with ramfb. edk2-x86_64-code.fd makes QEMU exit at once, as bios-256k.bin on the same command line does not: the x86 images are 3653632 bytes, not a multiple of 64 KiB, and x86_bios_rom_init refuses them (hw/i386/x86-common.c:1000-1002), the i386 and secure images included. edk2-riscv-code.fd leaves a black screen: it is S-mode code for pflash0 (docs/system/riscv/virt.rst:59-70).
The x86 and RISC-V images are read only as pflash drives, opened by path from the content folder, so the five entries are removed.
The ref named the DLL string table. It now cites the functions in
pepflashplayer.dll 32.0.0.371 that join the plugin directory with
pepper.vch and hand the path to the Flash Access DRM callback.
The v5.2 release assets a7800-linux-v5.2.tgz, a7800-osx-v5.2.tgz and a7800-win-v5.2.zip each carry hash/a7800.xml, equal to the file at the pin apart from line endings, and a7800.ini sets hashpath to hash. The pin is an ancestor of the v5.2 tag.
The IWAD entries cited one set of lines for both builds, read from the standalone tree. The libretro tree's d_iwad.cpp, d_main.cpp and iwadinfo.txt differ (its Names block lists doomxbox.wad and doom2xbox.wad once, not twice), so each entry now carries a standalone and a libretro ref, the second mapped line by line on the libretro pin. The libretro ref also cites the embedded game_support.pk3 and the -iwad the core passes for the content.
The core is built by libretro-gitlab-build.sh (Makefile.libretro-gitlab, the MAKEFILE of .gitlab-ci.yml) with a --target-list of 17 softmmu targets, and neither hppa-softmmu nor microblaze-softmmu is among them. hw/hppa/machine.c and hw/microblaze/ are not compiled, so nothing reads hppa-firmware.img, hppa-firmware64.img or the two Petalogix device trees. The four entries and the hppa system are removed.
Seven refs named a whole binary. They now cite the firmware check in
the RPCS3 build, the media board and JVS loaders in cxbxr-emu.dll, and
AMMediaboard.cpp at the commit the CrediarDolphin build reports. The
media board ROM is size checked, and the two JVS messages trade places.
The four entries had no ref. Each now names the slot declaration, the
dump reader and the md5 test for the PAL Anvil BIOS in the RetroBat
PhoenixEmuProject.exe. The Jaguar boot ROM is optional, the core starts
the cartridge itself, and the 3DO font slot gains an entry.
Refs were file offsets of help text and RTTI names. They now name the
ROM directory scan, the ROM slot loader with its AMSDOS header test and
the cartridge loader in Caprice.exe 26.4. The built-in ROMs are RCDATA
resources and cartridges come from a file dialog.
Refs were bare string addresses. They now name the functions the
shipped PDB gives for the media board boot, the JVS image loader, the
EEPROM and key readers and the wm2_loader.dll load. EEPROM.bin is
resized to 256 bytes before the check, so size leaves validation.
Refs cited history.txt, the readmes and the import directory. They now
name the font scan, the mask loader and the 55-entry effect table with
its loaders in the unpacked MFME.exe 20.1.0.0. Meter.wav takes the case
the table uses, and RelayOn.wav and RelayOff.wav gain entries.
Four Torch ROM entries named only their Roms_Torch.cfg line. They now cite BeebEmTorch.vbs passing -Roms Roms_Torch.cfg, BeebWin taking that file from the user data folder, RomConfigFile::Load, and BeebReadRoms opening each paged ROM.
background.jpg cited flash.html and qml.qrc only. It now cites the main.qml lines that open flash.html from the application folder, and the QML image that reads the compiled copy.
defaults.prp cited abuse.lsp, which does not name it. dev_init opens it at every start through property_manager::load, which skips a missing file, so it is optional. It holds the level editor window positions and is written back after an -edit session. english.lsp now cites the abuse.lsp load the engine runs and the install rule.
Refs were bare string addresses. They now name the functions in the
r2.5.2.0 binary that build, open and size check each file, matched to
the r2.5.2.2 symbol names. Eight files the binary loads gain entries:
microphone, Lua scripts, cheats, slot-2 GBA, DLDI image and logos.
The .dsd and .raw entries rested on the shader format text. They now
name the .dfx parser, the shader source loader and the texture reader in
libdrastic_arm64.so r2.6.0.4a. Readme citations give way to code, and
the shader log is <name>.dsd.log.
hiscore.zip and xm.zip named only their hash/a7800.xml entries. They now cite the cart_list software list of the driver, the hash path that holds the XML, its open in softlist_dev.cpp, and the ROM search by list and set name in romload.cpp.
The entry cited only the configure line that packs every *.rom into the release. The General Sound loader opens GS_ROM_NAME, fixed to gs105a.rom (src/soundchips/gs.h:34), and no code names gs104.rom, so ZEsarUX never reads it under its name.
The three C64DTV ROM entries named only their file in vice/data. They now cite the BasicName, KernalName and ChargenName resources that name them, the c64rom loaders those resources call, and the embedded table that answers the names in the libretro build.