Each libretro profile records version_basis and core_version is read
there at its pin. snes9x states 1.63 in snes9x.h, nestopia 2.0.0, mgba
0.11.0, vice 3.10, atari800's libretro tree 7.0.0. Cores whose build
takes its version from git carry the nearest tag in describe form
(flycast v2.7-90-ge88b0ce, ppsspp, duckstation, gearcoleco), placeholders
copied from .info files (Git, SVN) are replaced by the code's statement,
and a code that states none is null with kind none.
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.
Sixteen prose citations wrote "file fn() lines N-M", a form the pin
tracker never reads, and four had fallen behind their pins. Each is now
a repository path with the span read at the profile's pin, and a test
refuses the untracked form.
batch re-profiled nekop2 through pokemini. mupen64plus renamed to
mupen64plus_next. new profiles: nes, mupen64plus_next.
validation functions (_build_validation_index, check_file_validation)
consolidated in common.py — single source of truth for verify.py
and generate_pack.py. pipeline 100% consistent on all 6 platforms.
add --emulator, --system, --standalone, --list-emulators, --list-systems
to verify.py and generate_pack.py. packs are RTU with data directories,
regional BIOS variants, and archive support.
validation: field per file (size, crc32, md5, sha1) with conflict
detection. by_path_suffix index in database.json for regional variant
resolution via dest_hint. restructure GameCube IPL to regional subdirs.
66 E2E tests, full pipeline verified.
Every profile now has:
- profiled_date: date of source code analysis
- core_version: version from libretro-core-info .info files
- display_name: human-readable name from .info files
260/260 profiles complete. 294/294 libretro cores covered.
Standalone emulators (cemu, rpcs3, xemu, vita3k) versioned manually.
- Added profiled_date field to all 204 existing profiles for update tracking
- Created 56 alias profiles for cores that share BIOS with a parent
(e.g., mednafen_psx -> beetle_psx, fbalpha2012 -> fbneo)
260 total profiles covering all 294 libretro cores (204 unique + 56 alias).