The installer page gains a section on copying from an old card, the
found event, the error stage for a --from folder, and the reasons a
check gives for a Mac ._ file and a name in capitals. The first
install page says in a few lines how to copy the BIOS files from an
old card.
--from FOLDER (repeatable, a ZIP accepted) reads an old SD card, a
backup or a Downloads folder: files indexed by size, hashed only when
a size matches an entry, ZIP members included. Each file is copied,
checked again once written, and the source is never modified. Mac ._
files, system folders and links leading out of the folder are skipped.
An install also puts in place the files it finds misplaced in the BIOS
folder (bios/bios/, a pack extracted one level too deep, a name in
capitals, a ZIP never extracted, one folder up), leaving the user's
copy where it is. --check and --dry-run say what a run would copy.
Events gain one kind, found, sent before the copy, which a downloaded
event then reports. The end of the run says where each file came from.
Each manifest carries system_titles, the name the site prints for every system its files list (Sony PlayStation, not sony-playstation or psx), so the installer can show it. Older installers ignore the field.
Build scripts now fetch PinMAME 652249e2; its cited lines only shifted. Music accepts an absolute script path, and PUP packs gain a PUPSOUNDS/ sound bank.
Adds the Memory Expansion Card ROM, the //c keyboard photo and the Monitor II and drive artwork, updates the //e keyboard photo, and follows the Virtual ][ list into VirtualIISoundCatalog.h with the Import sounds folder.
The converter now reads Plus.j2d of a JJ2+ install for the textured layers a level names, listed as an optional Source file. A Content tree holding Prebaked.pak skips the conversion, and a user Content directory beside Cache is searched first for content, music and translations. The rest of the loaders moved without a change in what they open.
hf.mpq now has its own CMake option, BUILD_MOD_MPQS, beside BUILD_ASSETS_MPQ. The loaders moved by two lines after a romfs search path was added for 3DS and Switch. Same files.
Upstream rebuilt the mediaclientaudio and scdv patch DLLs and added an epoc6 export to mediaclientaudio.dll.map. Two compatibility scripts were added, pottery_startup_fix.lua and wave_crash_fix.lua, and the first requires eka2l1.mem, now listed. The libretro fork only changed its link options. Refs into libmanager.cpp, graphics_ogl.cpp, screen.cpp and fbs.cpp are read on the standalone tree.
Firmware search and checks unchanged, the libretro code moved by seven lines. kAdamFirmwareMetadata no longer carries a SHA-1 per role, so the two sha1 fields go: the code knows size and CRC32 only.
Upstream replaced zn.c with the current MAME layout. The BIOS sets are now named after the board BIOS (coh1000c, coh3002c, coh1000t, coh1002m, coh1002v, coh1000a, coh1001l, coh1000w, coh1002e) and each carries its CAT702 key. Atlus, Time Warner and Raizing sets are dumped. New namcoc76.zip (Namco System 11 C76) and optional model1io.zip and model1io2.zip (Model 2 I/O boards). hiscore.dat changed, dotron.zip artwork added.
The pin already carried Cargo.toml version 0.13.2; HEAD only touches CI and the changelog. Prose citations now name load() at gb.rs:1377, load_boot_static at 1414 and load_boot_file at 1427.
The pin sat on master, the Dojo 6 line, while the releases are tagged
on the dojo branch (flyinghead f13d7ad plus the Dojo commits). At
dojo-7.8 (745815c): UseReios defaults to on, the boot ROM and flash
logic lives in hw/flashrom/nvmem.cpp, dc_nvmem.bin.net and the netplay
reios override are gone, font.bin is a compiled-in resource, BIOS ROMs
are matched by CRC32 then name, airlbios.zip is read by the two Airline
Pilots sets, and System SP (segasp.zip) is a platform. naomi.zip and
naomi2.zip gain the g, b, Korea and multi-region members.
Pin d409fe7, the commit of the v0.3a-20261022-git-d409fe7 Supermodel
Dojo release, built from the dojo branch. The branch merges trzy at
98fcbff, which adds Real3D Pro-1000 emulation: pro1000.zip (cpu_rom,
init_rom) and the optional Assets/3dlogo.cmem and .pmem. Games.xml now
holds 64 sets. The launcher in Frontend/ is replaced by an in-emulator
GUI, and ROMs/ and Replays/ are path types on every platform.
v1.8.0 (4e899aa) searches the system directory, then the directory of
the loaded game, each for the loose BIOS and then stvbios.zip
(ss.cpp:1540-1582). Same files, sizes and hashes.
The pin 53f53e0 is the 1.0.9 tag commit, and the build names itself
from git describe (Common/Version.cpp). 1.0.9 ships a single Windows
zip whose Sys/ fonts and codehandler.bin match the declared hashes.
The 20251112 APKs are built from tag commit 9198dc2. HEAD 302b0c3 is a
sibling commit off the same base that only adds shader caches under
cache/, so src/ and every ref are identical at both.
The pin b2ff53f is release 2.5-4 (tag 65f1d85) plus a README commit, versionName 2.5 in app/build.gradle. Bare Java file names in the notes now carry their app/src/main/java path. No file changed.
The port now merges PCSX2 ab0b401f and embeds patches.zip, packed from the pcsx2_patches submodule (pcsx2/CMakeLists.txt:1183-1205, pcsx2/Patch.cpp:292-331). The resources copy is read only with PCEE2_EXTERNAL_RESOURCES set. Same files.
Disk images now open through the frontend VFS (Libretro/libretro.c:149-162, src/disk.c:13-65). No system file. core_version is the pin's commit date, the source carries only the git rev.
Same four files. A CD BIOS outside the two CRC32 constants is accepted on a plausible run address (libretro.c:5706-5781), and a custom cart boot ROM must be exactly 131072 bytes (libretro.c:6010-6050). core_version follows CORE_BASE_VERSION in the Makefile.
Same five firmware sets and CRCs. On Auto a 1.44 MB floppy now selects the HG, the first model with a three-mode drive (src/geartowns_core.cpp:1968-1976).
libjavam3g.so rebuilt from changed m3g render context sources, hashed
from the 1.8.2-dev-1973 build. The config screen now copies picked
shaders and sound banks into their directories.
Base directory falls back to a Steam, GOG or Epic install when it has no
game data. The embedded pak gained crosshairs and a console background.
QuakeEX.kpf documented: it serves rerelease localization when no loose copy exists.
supertux runs only on EmuELEC, which builds 37cddf24 (v0.6.3), and
advanced_drastic only on KNULLI, which builds eaf41ab. Both pins stay on
those builds.
chocolate-doom, supertuxkart and fheroes2 run only on EmuELEC, piemu only
on AmberELEC, alephone only on RetroPie. Each of those builds a fixed
revision (package.mk PKG_VERSION, or the release-20250829 tag), so the
pin stays on it and profile_sync judges the profile against itself.
Every cited block was read again at HEAD: no ref left to review, no
file name or hash literal added to a cited file since the pin
(--detect-new-files --watch-hashes), refs recaled with their pins.
Profiles built by a platform at a fixed commit, or whose bump would
leave prose under an older pin, stay where they were.
The prose guard read citations under the pins a profile held before the
write. A bump that moves upstream_commit alone could then leave prose the
report had judged in the fork under the new upstream pin: ten profiles
(dolphin-mmjr2, hatari, xenios among them) came out of a bump with prose
to read again. The written file is now read again and the original bytes
put back when a citation is left under an older pin.
A pin_frozen reason was printed as a tag name ("pinned to tag EmuELEC,
the only platform..."); it now reads "pin held (...)".
check_version read latest_tag as the first entry of GitHub's REST
listing, which sorts by name (nesoid: 2.5 before 2.5-4, gargoyle:
stable-20090825 before 2026.1.1), and found the declared tag only on that
first page of 100. The newest tag now comes from GraphQL by commit date,
and the declared one is asked for by name on GitHub, GitLab and Forgejo.
The clean-tree guard of the write modes looked at the whole emulators
directory: a loop of --emulator X --rebase-refs refused every profile
after the first it wrote. It now looks at the selected profiles only.
bump_commit advanced any profile whose refs all anchored at HEAD. On a
built_by profile the pin is the commit a platform compiles (mame0258,
mame0278, gsplus-legacy at recalbox gsplus.mk:8-9), so HEAD is a build
nobody ships under that name. The bump now refuses those profiles.
Control characters from names, folders and the installer's own text
are shown as ?, on screen and in the lines left after it. The terminal
mode and the signal handlers come back even when the last write fails
or a second signal arrives. A stop from outside hands the terminal
back, the second Ctrl-C is announced, speed reads the last seconds,
values are glued to their options, and counts read before a change of
options say so.