The game database now merges resources/emucorex_overrides.yaml over
GameIndex.yaml (GameDatabase.cpp:1274-1278), and a libvulkan_malisx2.so
driver is kept only on the Mali GPUs GpuDriverCompatibility.kt:204-208
lists. tfx.glsl changed upstream. Both convert.glsl entries now carry
the size and sha1 of the vendored tree.
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.
--check-version said only that core_version names a tag other than the
pin. It now counts the pin against that tag (after it, before it, or off
its history), and names the latest release when the pin already contains
it. Of 52 warnings, 43 are builds between releases; ares, boytacean,
nesoid and primehack name an older release than their code, vkquake and
vkquake2 a later one.
A single 429 from git.libretro.com on cemu's tree ended profile_sync --all
with a traceback and no report for the other 646 profiles. upstream now
waits a 429 out (Retry-After up to 120 s, else 5, 20, 60 s), as
base_scraper already did, and stops asking a host that outlasts the
waits. profile_sync reports that profile as rate limited, fails the run,
and carries on with the other forges.
The test released the held downloads after a fixed pause. Under load the stop arrived after the release, all three files landed and nothing was stopped. It now waits for the run to say it is stopping.