Each PCSX2 fork declares how its LoadBiosVersion reads the table:
the strncmp length on RESET, the NUL test on names, EXTINFO, and what a
read past the end does, from the source at the pin or the shipped
libemucore.so for NetherSX2 and its Turnip builds. The Recalbox libretro
PCSX2 and PCEE2 check no size, so their 4 to 8 MB bounds are gone, and
the PCEE2 and ARMSX2 arcade images require the COH-H zone.
DEV9 opens eeprom.dat and flash.dat by bare name (pcsx2/DEV9/DEV9.cpp:144
at f0523f8a, AetherSX2 DEV9/flash.cpp:89, PCSX2 1.6 dev9ghzdrk/flash.cpp:73),
so the process working directory answers, never the BIOS folder. Only
yaps2 said so: the other PCSX2 profiles had the file packed into the BIOS
folder and the RetroDECK export add it there.
PCSX2 and its forks keep the first 4 to 8 MB image with a romdir in
the BIOS folder (pcsx2/ps2/BiosTools.cpp:258-282, 317-332 at f0523f8a),
and PCSX2 1.6 lists the same test in its BIOS picker
(BiosSelectorPanel.cpp:151-177). The names are labels. Without found_by
the truth model read ps2-0230a-20080220.bin as a name the core opens, and
the RetroDECK export added it as a required file.
Each standalone profile records where its version is read: the source
at its pin (clk 2026-07-23-136-g9020107, shadps4 0.20.1 WIP, eden
v0.2.0-401-g26a03d2), the APK, binary or archive read (kind package),
or, where no reading can be made, kind unverified with the reason: a
host the tools cannot read, a forge gone or not answering, no build
recorded as read, a pin on another branch. Those keep their value,
unconfirmed.
100 emulator names the two platforms run had no profile, so their packs carried nothing for them. Each was read from the platform's own launcher or scriptmodule: the same program as an existing profile takes the name in cores:, a different build gets its own profile read from that version, a launcher or self-contained game goes to remove_cores, and the rest are new profiles written from their source or shipped binary. The files they need that the collection lacked are collected from the upstream distributions. Bungie and splitwolf trees are read by path and stay out of dedup.
Profiles, the wiki, comments, docstrings, command output and schema descriptions carried em-dashes, clause-joining semicolons, unicode arrows, box-drawing banners and check-mark glyphs. Each sentence was rewritten rather than having its character swapped. Hashes, paths, source_ref values and every cited file:line are unchanged, which a comparison of each parsed profile against the previous revision confirms.
validate_pr comments now say PASS and FAIL in words, and source_ref values in a profile's structured blocks render as code. test_prose_style fails if any of these comes back, in tracked files or in the generated site.