From 11da070128b14a2eaf98c5bf906639c5ee0f4156 Mon Sep 17 00:00:00 2001 From: Abdessamad Derraz <3028866+Abdess@users.noreply.github.com> Date: Fri, 4 Sep 2026 14:41:44 +0200 Subject: [PATCH] chore: recale the profile refs onto their pins Upstream moved under 145 profiles: 679 refs shifted and 452 followed a renamed file, against 6,483 that still anchor where they were written. The recale rewrites the located ranges only, keeping the annotations and the sentences that carry them, and 106 pins advance in the same commit because refs and source_commit name one revision or the profile describes two at once. Nothing here was guessed. The 183 refs that are CHANGED, GONE or AMBIGUOUS are untouched, and the 57 profiles holding them keep their old pin until someone reads the diff: profile_sync refuses to recale a profile while any of its refs needs a re-read. trident kept its pin too, its annotated ref being one the writer will not rewrite. --- emulators/aps3e.yml | 78 ++++++++++++++++---------------- emulators/arduous.yml | 6 +-- emulators/ares.yml | 2 +- emulators/atari800.yml | 16 +++---- emulators/beetle_pcfx.yml | 4 +- emulators/beetle_saturn.yml | 8 ++-- emulators/beetle_vb.yml | 2 +- emulators/blastem.yml | 8 ++-- emulators/bluemsx.yml | 4 +- emulators/boytacean.yml | 16 +++---- emulators/bsnes.yml | 8 ++-- emulators/bsnes_mercury.yml | 2 +- emulators/cap32.yml | 26 +++++------ emulators/cdi2015.yml | 2 +- emulators/cemu.yml | 2 +- emulators/citra2018.yml | 2 +- emulators/clownmdemu.yml | 6 +-- emulators/craft.yml | 2 +- emulators/daphne.yml | 6 +-- emulators/desmume.yml | 2 +- emulators/desmume2015.yml | 8 ++-- emulators/dice.yml | 2 +- emulators/dirksimple.yml | 2 +- emulators/dolphin.yml | 12 ++--- emulators/dosbox-staging.yml | 26 +++++------ emulators/dosbox-x.yml | 64 +++++++++++++------------- emulators/dosbox_core.yml | 6 +-- emulators/dosbox_svn.yml | 6 +-- emulators/dosbox_svn_ce.yml | 8 ++-- emulators/duckstation.yml | 4 +- emulators/ecwolf.yml | 6 +-- emulators/eka2l1.yml | 4 +- emulators/emux_chip8.yml | 2 +- emulators/emux_gb.yml | 12 ++--- emulators/emux_nes.yml | 2 +- emulators/emux_sms.yml | 8 ++-- emulators/ep128emu.yml | 6 +-- emulators/fake08.yml | 10 ++-- emulators/fbalpha2012_neogeo.yml | 6 +-- emulators/fbneo_cps12.yml | 2 +- emulators/fceumm.yml | 2 +- emulators/fixgb.yml | 2 +- emulators/fixnes.yml | 2 +- emulators/freeintv.yml | 6 +-- emulators/freej2me.yml | 2 +- emulators/frodo.yml | 2 +- emulators/galaksija.yml | 2 +- emulators/gam4980.yml | 2 +- emulators/gambatte.yml | 2 +- emulators/gearboy.yml | 6 +-- emulators/gearcoleco.yml | 8 ++-- emulators/geargrafx.yml | 10 ++-- emulators/gearsystem.yml | 10 ++-- emulators/genesis_plus_gx.yml | 2 +- emulators/geolith.yml | 26 +++++------ emulators/gopher2600.yml | 22 ++++----- emulators/gopher64.yml | 6 +-- emulators/gpsp.yml | 2 +- emulators/gsplus.yml | 4 +- emulators/gw.yml | 6 +-- emulators/izapple2.yml | 2 +- emulators/kemulator.yml | 4 +- emulators/kronos.yml | 44 +++++++++--------- emulators/lightspark.yml | 6 +-- emulators/lowresnx.yml | 6 +-- emulators/lrps2.yml | 8 ++-- emulators/lutro.yml | 2 +- emulators/mame.yml | 66 +++++++++++++-------------- emulators/mame2000.yml | 2 +- emulators/mame2003.yml | 12 ++--- emulators/mame2003_midway.yml | 2 +- emulators/mame2003_plus.yml | 2 +- emulators/mame2010.yml | 2 +- emulators/mame2015.yml | 2 +- emulators/mame2016.yml | 2 +- emulators/mamearcade.yml | 32 ++++++------- emulators/mamemess.yml | 50 ++++++++++---------- emulators/mednafen_gba.yml | 2 +- emulators/mednafen_pce_fast.yml | 2 +- emulators/mednafen_supafaust.yml | 6 +-- emulators/mesen-s.yml | 2 +- emulators/mesence.yml | 10 ++-- emulators/mess2015.yml | 2 +- emulators/meteor.yml | 2 +- emulators/mkxp_z.yml | 14 +++--- emulators/mu.yml | 2 +- emulators/mupen64plus-ae.yml | 78 ++++++++++++++++---------------- emulators/native32emu.yml | 2 +- emulators/nekop2.yml | 4 +- emulators/nestopia.yml | 16 +++---- emulators/nicaiemu.yml | 2 +- emulators/np2kai.yml | 18 ++++---- emulators/nxengine.yml | 12 ++--- emulators/openmsx.yml | 2 +- emulators/opera.yml | 2 +- emulators/parallel-launcher.yml | 36 +++++++-------- emulators/parallel_n64.yml | 4 +- emulators/pcem.yml | 2 +- emulators/pcsx2.yml | 8 ++-- emulators/pcsx2x6.yml | 2 +- emulators/pcsx_rearmed.yml | 2 +- emulators/prboom.yml | 6 +-- emulators/primehack.yml | 4 +- emulators/project64.yml | 2 +- emulators/prosystem.yml | 2 +- emulators/puae.yml | 8 ++-- emulators/puae2021.yml | 12 ++--- emulators/punes.yml | 4 +- emulators/px68k.yml | 14 +++--- emulators/qemu.yml | 2 +- emulators/retro8.yml | 6 +-- emulators/rvvm.yml | 6 +-- emulators/scummvm.yml | 2 +- emulators/shadps4.yml | 54 +++++++++++----------- emulators/smsplus.yml | 6 +-- emulators/snes9x.yml | 4 +- emulators/snes9x2002.yml | 6 +-- emulators/snes9x2005.yml | 6 +-- emulators/snes9x2005_plus.yml | 6 +-- emulators/snes9x2010.yml | 2 +- emulators/spmp8000emu.yml | 2 +- emulators/squirreljme.yml | 2 +- emulators/stella2023.yml | 4 +- emulators/supermodel.yml | 10 ++-- emulators/swanstation.yml | 4 +- emulators/tamalibretro.yml | 2 +- emulators/testgl_ff.yml | 2 +- emulators/testsw.yml | 2 +- emulators/testsw_vram.yml | 2 +- emulators/tsugaru.yml | 2 +- emulators/uae4arm.yml | 14 +++--- emulators/ume2015.yml | 2 +- emulators/vba_next.yml | 2 +- emulators/vbam.yml | 2 +- emulators/vecx.yml | 2 +- emulators/vemulator.yml | 2 +- emulators/vice.yml | 10 ++-- emulators/vice_x64.yml | 2 +- emulators/vircon32.yml | 8 ++-- emulators/vita3k.yml | 6 +-- emulators/vitaquake2.yml | 8 ++-- emulators/x1.yml | 2 +- emulators/x16emu.yml | 2 +- emulators/xemu.yml | 2 +- emulators/yabasanshiro.yml | 2 +- 145 files changed, 624 insertions(+), 624 deletions(-) diff --git a/emulators/aps3e.yml b/emulators/aps3e.yml index 05f18925..44d1f835 100644 --- a/emulators/aps3e.yml +++ b/emulators/aps3e.yml @@ -20,8 +20,8 @@ notes: | rather than pulled as a submodule, and a JNI layer of about six thousand lines replaces the Qt front end. The vendored tree reports itself as 0.0.41-alpha.1 at RPCS3 commit 40e9ee5a. - ref: aps3e/app/src/main/cpp/rpcs3/rpcs3/git-version.h:3, - aps3e/app/src/main/cpp/rpcs3/rpcs3/rpcs3_version.cpp:29 + ref: app/src/main/cpp/rpcs3/rpcs3/git-version.h:3, + app/src/main/cpp/rpcs3/rpcs3/rpcs3_version.cpp:29 Source drops land on successive branches, not on the default one. Release 2.41 of 2026-07-30 is the commit titled 2.41 at the head of main4; the lightweight @@ -31,7 +31,7 @@ notes: | the only gradle file committed is app/build.gradle.bak, which carries the placeholder 1.19a and is renamed and completed with the signing block at build time. - ref: aps3e/README.md, aps3e/app/build.gradle.bak:16 + ref: aps3e/README.md, app/build.gradle.bak:16 Emulator paths derive from APS3E_DATA_DIR, set by the Java layer to the external files directory of the package. The config directory holds dev_flash, @@ -39,8 +39,8 @@ notes: | custom font directory sits at the data root, and the custom GPU driver directory sits in internal storage because the external filesystem cannot carry an executable mapping. - ref: aps3e/app/src/main/cpp/aps3e_rp3_impl.cpp:127-133, - aps3e/app/src/main/java/aenu/aps3e/Application.java:21-64 + ref: app/src/main/cpp/aps3e_rp3_impl.cpp:139-145, + app/src/main/java/aenu/aps3e/Application.java:21-64 The PS3 firmware is required and nothing runs without it. Three independent gates enforce it: the game list refuses to launch an entry when the marker @@ -51,11 +51,11 @@ notes: | EmulatorActivity, which does not pass through the game list. The shipped configuration leaves Libraries Control empty, so liblv2.sprx keeps its default entry in the module list and the check fires. - ref: aps3e/app/src/main/java/aenu/aps3e/MainActivity.java:143-145, - aps3e/app/src/main/java/aenu/aps3e/MainActivity.java:187-190, - aps3e/app/src/main/java/aenu/aps3e/QuickStartActivity.java:316-318, - aps3e/app/src/main/cpp/rpcs3/rpcs3/Emu/System.cpp:2747-2767, - aps3e/app/src/main/cpp/rpcs3/rpcs3/Emu/Cell/lv2/sys_prx.cpp:86, + ref: app/src/main/java/aenu/aps3e/MainActivity.java:144-146, + app/src/main/java/aenu/aps3e/MainActivity.java:188-191, + app/src/main/java/aenu/aps3e/QuickStartActivity.java:317-319, + app/src/main/cpp/rpcs3/rpcs3/Emu/System.cpp:2755-2775, + app/src/main/cpp/rpcs3/rpcs3/Emu/Cell/lv2/sys_prx.cpp:86, aps3e/app/src/main/assets/config/config.yml Overlay text is drawn from a font list chosen by the Font File Selection @@ -67,17 +67,17 @@ notes: | come from the firmware rather than from a separate download. Custom points all three classes at one file and reverts to From Firmware when that path no longer exists. - ref: aps3e/app/src/main/cpp/aps3e_rp3_impl.cpp:192-222, - aps3e/app/src/main/cpp/rpcs3/rpcs3/Emu/RSX/Overlays/overlay_fonts.cpp:113-118 + ref: app/src/main/cpp/aps3e_rp3_impl.cpp:204-234, + app/src/main/cpp/rpcs3/rpcs3/Emu/RSX/Overlays/overlay_fonts.cpp:113-118 Vulkan is reached through a loader chosen before the emulator starts. The global config YAML is read directly for Use Custom Driver and Custom Driver Library Path, and the named library is dlopened when both are set and the path exists; otherwise the system libvulkan.so is used. Drivers are imported either as a bare shared object or as a zip whose meta.json names the library. - ref: aps3e/app/src/main/cpp/aps3e_emu.cpp:875-899, - aps3e/app/src/main/cpp/vkapi.cpp:21, - aps3e/app/src/main/java/aenu/aps3e/EmulatorSettings.java:1229-1324 + ref: app/src/main/cpp/aps3e_emu.cpp:945-969, + app/src/main/cpp/vkapi.cpp:21, + app/src/main/java/aenu/aps3e/EmulatorSettings.java:1232-1327 Encrypted disc images are supported by a loader that has no counterpart in the desktop code line. Launching an ISO makes the Java layer look for a sidecar key @@ -86,20 +86,20 @@ notes: | as a hex string, or exactly 16 bytes, read as raw bytes, and installed as an AES-128 decryption context. A 3k3y watermark at offset 0xF70 is recognised separately and needs no key. - ref: aps3e/app/src/main/java/aenu/aps3e/Utils.java:170-190, - aps3e/app/src/main/java/aenu/aps3e/EmulatorActivity.java:147-153, - aps3e/app/src/main/cpp/rpcs3/rpcs3/Loader/iso.cpp:354-399, - aps3e/app/src/main/cpp/rpcs3/rpcs3/Loader/iso.cpp:508-554 + ref: app/src/main/java/aenu/aps3e/Utils.java:185-205, + app/src/main/java/aenu/aps3e/EmulatorActivity.java:148-154, + app/src/main/cpp/rpcs3/rpcs3/Loader/iso.cpp:354-399, + app/src/main/cpp/rpcs3/rpcs3/Loader/iso.cpp:508-554 One import entry point takes EDAT, RAP and PKG. A RAP is copied verbatim into the exdata folder of user 00000001 and rejected unless it is exactly 16 bytes. An EDAT is parsed for its NPD header, rejected below 0x90 bytes or without the NPD magic, and written to the same folder under the content id the header carries. A PKG goes through the package reader and lands in dev_hdd0. - ref: aps3e/app/src/main/java/aenu/aps3e/MainActivity.java:594-605, - aps3e/app/src/main/java/aenu/aps3e/Emulator.java:820-844, - aps3e/app/src/main/cpp/aps3e_emu.cpp:801-829, - aps3e/app/src/main/cpp/aps3e_emu.cpp:783-793 + ref: app/src/main/java/aenu/aps3e/MainActivity.java:647-658, + app/src/main/java/aenu/aps3e/Emulator.java:820-844, + app/src/main/cpp/aps3e_emu.cpp:871-899, + app/src/main/cpp/aps3e_emu.cpp:853-863 patch.yml, compatibility_table.json and database_config.json ship inside the APK as assets and are not user supplied. @@ -119,7 +119,7 @@ files: SCEPKG keys and their inner TARs extracted over dev_flash. The Java layer creates dev_flash/.installed once the native call returns true. No digest of the file itself is compared against anything. - source_ref: "aps3e/app/src/main/cpp/aps3e_emu.cpp:587-757, aps3e/app/src/main/cpp/emulator_aps3e.cpp:1045, aps3e/app/src/main/java/aenu/aps3e/MainActivity.java:538-570, aps3e/app/src/main/res/values/strings.xml:108-110" + source_ref: "app/src/main/cpp/aps3e_emu.cpp:657-827, app/src/main/cpp/emulator_aps3e.cpp:1078, app/src/main/java/aenu/aps3e/MainActivity.java:591-623, app/src/main/res/values/strings.xml:120-122" - name: ".dkey" aliases: [".key"] @@ -133,7 +133,7 @@ files: and passed down as a second descriptor. 32 bytes are read as a hex string and converted, 16 bytes are taken as raw; any other length fails the key check. An image whose odd regions are encrypted does not boot without it. - source_ref: "aps3e/app/src/main/java/aenu/aps3e/Utils.java:170-190, aps3e/app/src/main/cpp/rpcs3/rpcs3/Loader/iso.cpp:354-399, aps3e/app/src/main/cpp/rpcs3/rpcs3/Loader/iso.cpp:850-870" + source_ref: "app/src/main/java/aenu/aps3e/Utils.java:185-205, app/src/main/cpp/rpcs3/rpcs3/Loader/iso.cpp:354-399, app/src/main/cpp/rpcs3/rpcs3/Loader/iso.cpp:850-870" - name: ".rap" required: false @@ -146,7 +146,7 @@ files: dev_hdd0/home/00000001/exdata under the name it was given. The import is refused unless the source is exactly 16 bytes. SELF decryption looks the matching file up in that folder by content id, with a lowercase extension. - source_ref: "aps3e/app/src/main/java/aenu/aps3e/MainActivity.java:596-600, aps3e/app/src/main/java/aenu/aps3e/Emulator.java:820-844, aps3e/app/src/main/cpp/rpcs3/rpcs3/Crypto/unself.cpp:1271-1286, aps3e/app/src/main/cpp/rpcs3/rpcs3/Emu/system_utils.cpp:391" + source_ref: "app/src/main/java/aenu/aps3e/MainActivity.java:649-653, app/src/main/java/aenu/aps3e/Emulator.java:820-844, app/src/main/cpp/rpcs3/rpcs3/Crypto/unself.cpp:1271-1286, app/src/main/cpp/rpcs3/rpcs3/Emu/system_utils.cpp:391" - name: ".edat" required: false @@ -158,7 +158,7 @@ files: Imported through the same entry. The NPD header is read and the file refused below 0x90 bytes or when the magic is not NPD, then written whole to dev_hdd0/home/00000001/exdata under the content id the header declares. - source_ref: "aps3e/app/src/main/java/aenu/aps3e/MainActivity.java:601-605, aps3e/app/src/main/cpp/aps3e_emu.cpp:801-829, aps3e/app/src/main/cpp/emulator_aps3e.cpp:1052, aps3e/app/src/main/cpp/rpcs3/rpcs3/Emu/system_utils.cpp:413" + source_ref: "app/src/main/java/aenu/aps3e/MainActivity.java:654-658, app/src/main/cpp/aps3e_emu.cpp:871-899, app/src/main/cpp/emulator_aps3e.cpp:1085, app/src/main/cpp/rpcs3/rpcs3/Emu/system_utils.cpp:413" - name: ".ttf" aliases: [".ttc", ".otf"] @@ -172,7 +172,7 @@ files: classes at once, and only while Font File Selection is Custom. The setting reverts to From Firmware when the stored path no longer resolves, so the firmware faces cover the absence. - source_ref: "aps3e/app/src/main/java/aenu/aps3e/EmulatorSettings.java:1326-1346, aps3e/app/src/main/cpp/aps3e_rp3_impl.cpp:203-215, aps3e/app/src/main/cpp/rpcs3/rpcs3/Emu/system_config.h:401-402" + source_ref: "app/src/main/java/aenu/aps3e/EmulatorSettings.java:1329-1349, app/src/main/cpp/aps3e_rp3_impl.cpp:215-227, app/src/main/cpp/rpcs3/rpcs3/Emu/system_config.h:401-402" - name: ".so" aliases: [".zip"] @@ -186,19 +186,19 @@ files: from the global config YAML before the emulator initialises and dlopened in place of the system loader. The system libvulkan.so is used when Use Custom Driver is off, the path is empty, or the file is gone. - source_ref: "aps3e/app/src/main/java/aenu/aps3e/EmulatorSettings.java:1229-1324, aps3e/app/src/main/cpp/aps3e_emu.cpp:875-899, aps3e/app/src/main/cpp/vkapi.cpp:21, aps3e/app/src/main/cpp/rpcs3/rpcs3/Emu/system_config.h:209-211" + source_ref: "app/src/main/java/aenu/aps3e/EmulatorSettings.java:1232-1327, app/src/main/cpp/aps3e_emu.cpp:945-969, app/src/main/cpp/vkapi.cpp:21, app/src/main/cpp/rpcs3/rpcs3/Emu/system_config.h:209-211" # Layout produced by extracting PS3UPDAT.PUP, and the paths this tree reads from it. dev_flash: path: "config/dev_flash/" - source_ref: "aps3e/app/src/main/cpp/rpcs3/rpcs3/Emu/vfs_config.h:15, aps3e/app/src/main/cpp/aps3e_rp3_impl.cpp:127-129" + source_ref: "app/src/main/cpp/rpcs3/rpcs3/Emu/vfs_config.h:15, app/src/main/cpp/aps3e_rp3_impl.cpp:139-141" note: >- Mounted at /dev_flash and rooted at the config directory. Written only by the firmware installer, which extracts the dev_flash_ packages of the PUP into it. sys_external: path: "dev_flash/sys/external/" - source_ref: "aps3e/app/src/main/cpp/rpcs3/rpcs3/Emu/Cell/PPUModule.cpp:2608-2610, aps3e/app/src/main/cpp/rpcs3/rpcs3/Emu/Cell/lv2/sys_prx.cpp:207" + source_ref: "app/src/main/cpp/rpcs3/rpcs3/Emu/Cell/PPUModule.cpp:2608-2610, app/src/main/cpp/rpcs3/rpcs3/Emu/Cell/lv2/sys_prx.cpp:207" note: >- Firmware SPRX modules. liblv2.sprx gates the boot and pulls the rest in; each module can be forced to LLE or HLE through Libraries Control, which @@ -208,12 +208,12 @@ dev_flash: sys_internal: path: "dev_flash/sys/internal/" - source_ref: "aps3e/app/src/main/cpp/rpcs3/rpcs3/Emu/Cell/lv2/sys_prx.cpp:33-34" + source_ref: "app/src/main/cpp/rpcs3/rpcs3/Emu/Cell/lv2/sys_prx.cpp:33-34" note: "Internal modules, libfs_utility_init.sprx among them." fonts: path: "dev_flash/data/font/" - source_ref: "aps3e/app/src/main/cpp/rpcs3/rpcs3/Emu/Cell/Modules/cellFont.cpp:226-241, aps3e/app/src/main/cpp/rpcs3/rpcs3/Emu/Cell/Modules/cellFont.cpp:281, aps3e/app/src/main/cpp/rpcs3/rpcs3/Emu/RSX/Overlays/overlay_fonts.cpp:117-118" + source_ref: "app/src/main/cpp/rpcs3/rpcs3/Emu/Cell/Modules/cellFont.cpp:226-241, app/src/main/cpp/rpcs3/rpcs3/Emu/Cell/Modules/cellFont.cpp:281, app/src/main/cpp/rpcs3/rpcs3/Emu/RSX/Overlays/overlay_fonts.cpp:117-118" note: >- Faces cellFontOpenFontset maps by type, and the directory the overlay searches for its own list. A fontset the emulator does not implement falls @@ -239,12 +239,12 @@ dev_flash: certs: path: "dev_flash/data/cert/" - source_ref: "aps3e/app/src/main/cpp/rpcs3/rpcs3/Emu/Cell/Modules/cellSsl.cpp:110" + source_ref: "app/src/main/cpp/rpcs3/rpcs3/Emu/Cell/Modules/cellSsl.cpp:110" note: "Root certificates cellSsl enumerates." vsh: path: "dev_flash/vsh/" - source_ref: "aps3e/app/src/main/cpp/rpcs3/rpcs3/util/sysinfo.cpp:651-653, aps3e/app/src/main/cpp/rpcs3/rpcs3/Emu/Cell/PPUThread.cpp:4433-4441, aps3e/app/src/main/cpp/rpcs3/rpcs3/Emu/RSX/Overlays/overlay_user_list_dialog.cpp:207" + source_ref: "app/src/main/cpp/rpcs3/rpcs3/util/sysinfo.cpp:651-653, app/src/main/cpp/rpcs3/rpcs3/Emu/Cell/PPUThread.cpp:4433-4441, app/src/main/cpp/rpcs3/rpcs3/Emu/RSX/Overlays/overlay_user_list_dialog.cpp:207" note: >- vsh/etc/version.txt supplies the installed firmware version, compared against the PS3_SYSTEM_VER a title declares. vsh/module/eseibrd.sprx is @@ -253,20 +253,20 @@ dev_flash: ps1emu: path: "dev_flash/ps1emu/" - source_ref: "aps3e/app/src/main/cpp/rpcs3/rpcs3/Emu/System.cpp:2171" + source_ref: "app/src/main/cpp/rpcs3/rpcs3/Emu/System.cpp:2179" note: "ps1_newemu.self, the argv[0] of a PS1 Classics boot." pspemu: path: "dev_flash/pspemu/" - source_ref: "aps3e/app/src/main/cpp/rpcs3/rpcs3/Emu/System.cpp:2199" + source_ref: "app/src/main/cpp/rpcs3/rpcs3/Emu/System.cpp:2207" note: "psp_emulator.self, the argv[0] of a PSP minis boot." dev_flash2: path: "config/dev_flash2/" - source_ref: "aps3e/app/src/main/cpp/rpcs3/rpcs3/Emu/vfs_config.h:16, aps3e/app/src/main/cpp/rpcs3/rpcs3/Emu/Cell/lv2/sys_fs.cpp:28" + source_ref: "app/src/main/cpp/rpcs3/rpcs3/Emu/vfs_config.h:16, app/src/main/cpp/rpcs3/rpcs3/Emu/Cell/lv2/sys_fs.cpp:28" note: "CELL_FS_FAT on CELL_FS_IOS:BUILTIN_FLSH2. Mount point only, created empty." dev_flash3: path: "config/dev_flash3/" - source_ref: "aps3e/app/src/main/cpp/rpcs3/rpcs3/Emu/vfs_config.h:17, aps3e/app/src/main/cpp/rpcs3/rpcs3/Emu/Cell/lv2/sys_fs.cpp:27" + source_ref: "app/src/main/cpp/rpcs3/rpcs3/Emu/vfs_config.h:17, app/src/main/cpp/rpcs3/rpcs3/Emu/Cell/lv2/sys_fs.cpp:27" note: "CELL_FS_FAT on CELL_FS_IOS:BUILTIN_FLSH3. Mount point only, created empty." diff --git a/emulators/arduous.yml b/emulators/arduous.yml index 2e2ebd9c..eb6a9433 100644 --- a/emulators/arduous.yml +++ b/emulators/arduous.yml @@ -4,7 +4,7 @@ core_classification: pure_libretro source: "https://github.com/libretro/arduous" upstream: "https://github.com/jmaroeder/arduous" profiled_date: "2026-03-23" -source_commit: "882ea139758fef5e5d711324d138d812abd5c10c" +source_commit: "798e3950f1de7c69455bc988d55eafeebac5a1eb" core_version: "0.1.0" display_name: "Arduboy (Arduous)" cores: @@ -14,8 +14,8 @@ systems: notes: | ATmega32U4 AVR simulator built on simavr with SSD1306 OLED display - emulation. MCU hardcoded at 16 MHz (arduous.h:70-71). Game content + emulation. MCU hardcoded at 16 MHz (include/arduous/arduous.h:70-71). Game content (.hex) parsed via in-tree ihex reader and written directly into - simavr flash (arduous.cpp:169-179). No system directory access. + simavr flash (src/arduous/arduous.cpp:169-179). No system directory access. files: [] diff --git a/emulators/ares.yml b/emulators/ares.yml index f90f7ab2..fe175fdb 100644 --- a/emulators/ares.yml +++ b/emulators/ares.yml @@ -61,7 +61,7 @@ notes: | Firmware path resolution: settings.paths.firmware (user override) or {userData}/ares/Firmware/ (default). Per-system firmware assigned in Settings > Firmware dialog or via scan-by-hash. - ref: desktop-ui/settings/settings.hpp:85-97, desktop-ui/desktop-ui.cpp:68-75 + ref: desktop-ui/settings/settings.hpp:87-99, desktop-ui/desktop-ui.cpp:68-75 Systems with fully embedded firmware (no user files needed): Game Boy (boot.rom), Game Boy Color (boot.rom), Mega Drive (TMSS), diff --git a/emulators/atari800.yml b/emulators/atari800.yml index b89b0832..3c952027 100644 --- a/emulators/atari800.yml +++ b/emulators/atari800.yml @@ -4,7 +4,7 @@ core_classification: official_port source: "https://github.com/libretro/libretro-atari800" upstream: "https://github.com/atari800/atari800" profiled_date: "2026-03-23" -source_commit: "9d3bcf283502512052e21c6f1453fbdf7aa3122b" +source_commit: "4e7fbc73765c1a9670c7506616046ad1d4ccda51" core_version: "3.1.0" display_name: "Atari - 400/800/600XL/800XL/130XE/5200 (Atari800)" cores: [atari800] @@ -44,7 +44,7 @@ files: note: > Atari 5200 BIOS (original). Mapped at $F800-$FFFF. Altirra 5200 OS is used when this file is absent. - source_ref: "atari800/src/sysrom.c:99-100, atari800/src/sysrom.c:257" + source_ref: "atari800/src/sysrom.c:103-104, atari800/src/sysrom.c:290" # -- Atari BASIC ROM -- # Atari BASIC interpreter (8 KB). Three known revisions: @@ -64,7 +64,7 @@ files: note: > Atari BASIC Rev C. Required for 400/800 software that needs BASIC. Altirra BASIC is used as fallback. Enable via core option atari800_opt2. - source_ref: "atari800/src/sysrom.c:101-103, atari800/src/sysrom.c:259" + source_ref: "atari800/src/sysrom.c:105-107, atari800/src/sysrom.c:292" # -- Atari 400/800 OS A -- # Original Atari 400/800 OS (10 KB). Two known CRC32 values: @@ -82,7 +82,7 @@ files: note: > Atari 400/800 OS Rev A. Altirra OS 800 is used as fallback. Auto-select order: OS B NTSC, OS A NTSC, OS A PAL, custom, Altirra. - source_ref: "atari800/src/sysrom.c:85-86, atari800/src/sysrom.c:252" + source_ref: "atari800/src/sysrom.c:89-90, atari800/src/sysrom.c:285" # -- Atari 400/800 OS B -- # OS revision B (10 KB), NTSC: CRC32 0x0e86d61d @@ -103,7 +103,7 @@ files: Note: .info lists md5 a3e8d617c95d08031fe1b20d541434b2 which is a different dump (crc32 3e28a1fe) -- both in repo, the CRC32-matched version is the one sysrom.c auto-detects. - source_ref: "atari800/src/sysrom.c:87, atari800/src/sysrom.c:253" + source_ref: "atari800/src/sysrom.c:91, atari800/src/sysrom.c:286" # -- Atari XL/XE OS -- # XL/XE OS (16 KB). Many revisions known by CRC32 in sysrom.c: @@ -124,7 +124,7 @@ files: note: > Atari XL/XE OS. Used for 800XL, 130XE, and XEGS modes. Altirra XL OS is used as fallback. - source_ref: "atari800/src/sysrom.c:88-97, atari800/src/sysrom.c:255" + source_ref: "atari800/src/sysrom.c:92-101, atari800/src/sysrom.c:288" # -- Atari XL/XE/XEGS OS v4 (BB01R4) -- # XEGS-specific OS revision BB01R4 (16 KB), CRC32: 0x1eaf4002 @@ -139,7 +139,7 @@ files: validation: [crc32] note: > Atari XEGS OS Rev 4 (BB01R4). Preferred OS for XEGS machine mode. - source_ref: "atari800/src/sysrom.c:96" + source_ref: "atari800/src/sysrom.c:100" # -- XEGS Missile Command built-in game -- # The XEGS had Missile Command in ROM (8 KB), CRC32: 0xbdca01fb @@ -154,7 +154,7 @@ files: note: > XEGS built-in Missile Command ROM. Only used in XEGS machine mode. No built-in replacement exists for this ROM. - source_ref: "atari800/src/sysrom.c:104" + source_ref: "atari800/src/sysrom.c:108" # Known ROM revisions from sysrom.c (CRC32 identifiers): # diff --git a/emulators/beetle_pcfx.yml b/emulators/beetle_pcfx.yml index 9ddf1ce8..0ab9d98b 100644 --- a/emulators/beetle_pcfx.yml +++ b/emulators/beetle_pcfx.yml @@ -5,7 +5,7 @@ cores: [mednafen_pcfx, pcfx] source: "https://github.com/libretro/beetle-pcfx-libretro" upstream: "https://mednafen.github.io/" profiled_date: "2026-03-24" -source_commit: "650c30ea2203636a1716675854d11c608ed6eacc" +source_commit: "0580dee757adfdb9bf8b9c24693dde5f3d0a78a1" core_version: "v0.9.36.5" display_name: "NEC - PC-FX (Beetle PC-FX)" systems: @@ -13,7 +13,7 @@ systems: notes: > Libretro port of Mednafen's PC-FX module. Setting "pcfx.bios" resolves - to "pcfx.rom" (settings.c:92). LoadCommon() loads the file, validates + to "pcfx.rom" (mednafen/settings.c:92). LoadCommon() loads the file, validates size (1048576 bytes), and maps it at 0xFFF00000. Core won't start without it. No hash validation. Upstream Mednafen also supports an FX-SCSI ROM (pcfx.fxscsi setting, developer-only) not present in diff --git a/emulators/beetle_saturn.yml b/emulators/beetle_saturn.yml index 2d31886a..cdbd5982 100644 --- a/emulators/beetle_saturn.yml +++ b/emulators/beetle_saturn.yml @@ -5,7 +5,7 @@ core: mednafen_saturn_libretro source: "https://github.com/libretro/beetle-saturn-libretro" upstream: "https://mednafen.github.io/" profiled_date: "2026-03-24" -source_commit: "84461434f249c1b5cd10c83ae922feae84e1acf8" +source_commit: "b5c8a465d8128d5bc8a6ad9bc0db561068127181" core_version: "v0.9.45.1" display_name: "Sega - Saturn (Beetle Saturn)" cores: @@ -36,7 +36,7 @@ files: size: 524288 validation: [size] note: "Saturn BIOS v1.01 (Japan). Used when region is JP or Asia NTSC." - source_ref: "mednafen/ss/ss.c:1761 (region filename), mednafen/ss/ss.c:1784-1899 (open, size check, read, sha256)" + source_ref: "mednafen/ss/ss.c:1761 (region filename), mednafen/ss/ss.c:1786-1903 (open, size check, read, sha256)" - name: "mpr-17933.bin" system: sega-saturn @@ -45,7 +45,7 @@ files: size: 524288 validation: [size] note: "Saturn BIOS (NA/EU). Used for all non-JP/Asia-NTSC regions." - source_ref: "mednafen/ss/ss.c:1763 (region filename), mednafen/ss/ss.c:1784-1899 (open, size check, read, sha256)" + source_ref: "mednafen/ss/ss.c:1763 (region filename), mednafen/ss/ss.c:1786-1903 (open, size check, read, sha256)" - name: "mpr-18811-mx.ic1" system: sega-saturn @@ -65,5 +65,5 @@ files: system: sega-saturn required: false size: 262144 - note: "Action Replay 4M Plus firmware. Unfinished in source (ar4mp.c:22-24), needs CPU UBC emulation. Cart type not exposed in core options." + note: "Action Replay 4M Plus firmware. Unfinished in source (mednafen/ss/cart/ar4mp.c:22-24), needs CPU UBC emulation. Cart type not exposed in core options." source_ref: "mednafen/ss/cart.c:218 (CART_AR4MP case), mednafen/ss/cart/ar4mp.c:150 (CART_AR4MP_Init)" diff --git a/emulators/beetle_vb.yml b/emulators/beetle_vb.yml index 9a604752..fd2d8eea 100644 --- a/emulators/beetle_vb.yml +++ b/emulators/beetle_vb.yml @@ -14,7 +14,7 @@ notes: | Libretro port of Mednafen's Virtual Boy emulation module. No external BIOS or firmware files. The Virtual Boy has no boot ROM; the V810 CPU executes directly from the game ROM mapped at - 0x07000000. Load() in libretro.cpp:1787 takes only ROM data. + 0x07000000. Load() in libretro.cpp:1810 takes only ROM data. Upstream Mednafen supports an optional vb.pal palette file (Documentation/vb.html); the libretro port handles palette via core options instead. diff --git a/emulators/blastem.yml b/emulators/blastem.yml index 0020aaa2..4de844f5 100644 --- a/emulators/blastem.yml +++ b/emulators/blastem.yml @@ -26,7 +26,7 @@ notes: | Even if a TMSS-enabled model were forced, read_bundled_file() in the libretro build only serves rom.db and returns NULL for tmss.md, so TMSS - ROM loading would fail (fatal_error at genesis.c:1923). + ROM loading would fail (fatal_error at genesis.c:1933). Sega CD / Mega CD is not supported (only a TODO comment in system.c:16). No BIOS files are required or loaded by the libretro core. @@ -43,7 +43,7 @@ files: required: false hle_fallback: true note: "ROM feature database (game-specific mapper/save config). Embedded in core, external is optional override." - source_ref: "libblastem.c:532-542 read_bundled_file()" + source_ref: "libblastem.c:1149-1172 read_bundled_file()" # TMSS ROM — only used in standalone mode with tmss-enabled model # libretro build returns NULL for tmss.md (libblastem.c:541) @@ -53,7 +53,7 @@ files: mode: standalone size: 2048 note: "TMSS startup ROM. Standalone only (models md1va6, md2va1+). Libretro core uses md1va3 (tmss off), no way to change." - source_ref: "genesis.c:3027-3040" + source_ref: "genesis.c:3037-3050" analysis: tmss: @@ -64,7 +64,7 @@ analysis: rom_filename: tmss.md rom_size: 2048 # 2 KB config_path: "system\0tmss_path\0" - source_ref: "genesis.c:1910" + source_ref: "genesis.c:1920" note: | TMSS ROM is loaded from tmss.md (configurable via system/tmss_path). Models with tmss=on: md1va6, md2va1, md2va2, md3va1, md3va2. diff --git a/emulators/bluemsx.yml b/emulators/bluemsx.yml index a0d2c13a..c4a41fa0 100644 --- a/emulators/bluemsx.yml +++ b/emulators/bluemsx.yml @@ -4,7 +4,7 @@ core_classification: community_fork source: "https://github.com/libretro/blueMSX-libretro" upstream: "http://bluemsx.msxblue.com/" profiled_date: "2026-03-23" -source_commit: "0f32f52c48d3e772bfdf0379756f81f00b4e08bc" +source_commit: "e3086eb5d36d77fa11704cf53dc176686e70127d" core_version: "SVN" display_name: "MSX/SVI/ColecoVision/SG-1000 (blueMSX)" cores: @@ -60,7 +60,7 @@ data_directories: # buildbot source: https://buildbot.libretro.com/assets/system/blueMSX.zip # ref: libretro.c:1118-1119 — system_dir/Machines/ + system_dir/Databases/ - ref: bluemsx - source_ref: "libretro.c:1118-1119" + source_ref: "libretro.c:1119-1120" files: # ============================================================ diff --git a/emulators/boytacean.yml b/emulators/boytacean.yml index 80347ede..b075bdd7 100644 --- a/emulators/boytacean.yml +++ b/emulators/boytacean.yml @@ -19,12 +19,12 @@ notes: | Libretro: all boot ROMs compiled into binary as static byte arrays in src/data.rs. load_boot_static() copies from arrays. No filesystem access, no RETRO_ENVIRONMENT_GET_SYSTEM_DIRECTORY. No external files. - ref: core.rs:402 instance.load(true) -> gb.rs:1311 -> load_boot_static + ref: frontends/libretro/src/core.rs:402 instance.load(true) -> src/gb.rs:1361 -> load_boot_static Standalone (SDL): also defaults to embedded boot ROMs via load(true). User can override via --boot-rom-path CLI argument with any boot ROM file. load_boot_file() with hardcoded ./res/boot/*.bin paths exists in - gb.rs:1361 but is not called from any frontend. + src/gb.rs:1411 but is not called from any frontend. Boot ROM defaults: DmgBootix (DMG), CgbBoytacean (CGB) — open-source. @@ -36,7 +36,7 @@ files: mode: standalone size: 256 note: "Original Nintendo DMG boot ROM" - source_ref: "src/gb.rs:1400, src/data.rs:14" + source_ref: "src/gb.rs:1450, src/data.rs:14" - name: sgb_boot.bin system: nintendo-gb @@ -45,7 +45,7 @@ files: mode: standalone size: 256 note: "Super Game Boy boot ROM" - source_ref: "src/gb.rs:1401, src/data.rs:29" + source_ref: "src/gb.rs:1451, src/data.rs:29" - name: dmg_bootix.bin system: nintendo-gb @@ -54,7 +54,7 @@ files: mode: standalone size: 256 note: "Open-source DMG boot ROM from Bootix (default DMG)" - source_ref: "src/gb.rs:1402, src/data.rs:44" + source_ref: "src/gb.rs:1452, src/data.rs:44" - name: mgb_bootix.bin system: nintendo-gb @@ -63,7 +63,7 @@ files: mode: standalone size: 256 note: "Open-source MGB (Pocket) boot ROM from Bootix" - source_ref: "src/gb.rs:1403, src/data.rs:59" + source_ref: "src/gb.rs:1453, src/data.rs:59" - name: cgb_boot.bin system: nintendo-gbc @@ -72,7 +72,7 @@ files: mode: standalone size: 2304 note: "Original Nintendo CGB boot ROM" - source_ref: "src/gb.rs:1404, src/data.rs:74" + source_ref: "src/gb.rs:1454, src/data.rs:74" - name: cgb_boytacean.bin system: nintendo-gbc @@ -81,4 +81,4 @@ files: mode: standalone size: 2304 note: "Custom open-source CGB boot ROM (default CGB)" - source_ref: "src/gb.rs:1405, src/data.rs:177" + source_ref: "src/gb.rs:1418, src/data.rs:177" diff --git a/emulators/bsnes.yml b/emulators/bsnes.yml index 1d3065e0..dcc4a6a9 100644 --- a/emulators/bsnes.yml +++ b/emulators/bsnes.yml @@ -5,7 +5,7 @@ source: "https://github.com/libretro/bsnes-libretro" upstream: "https://github.com/bsnes-emu/bsnes" logo: "https://raw.githubusercontent.com/bsnes-emu/bsnes/master/bsnes/target-bsnes/resource/bsnes.svg" profiled_date: "2026-04-05" -source_commit: "9c1285dda7dd6bb9a9951d37bcee8794ada640e6" +source_commit: "6d19eef5835a792e241e33194b4c1e9b75405b88" core_version: "115" display_name: "Nintendo - SNES / SFC (bsnes)" cores: [bsnes] @@ -201,13 +201,13 @@ files: system: nintendo-super-game-boy required: false note: "Super Game Boy 1 cartridge ROM, loaded when playing .gb/.gbc via SGB mode" - source_ref: "bsnes/target-libretro/libretro.cpp:926-935 (system_dir + sgb_bios), bsnes/target-libretro/libretro.cpp:393 (core option bsnes_sgb_bios)" + source_ref: "bsnes/target-libretro/libretro.cpp:937-946 (system_dir + sgb_bios), bsnes/target-libretro/libretro.cpp:393 (core option bsnes_sgb_bios)" - name: "SGB2.sfc" system: nintendo-super-game-boy required: false note: "Super Game Boy 2 cartridge ROM, uses dedicated oscillator for accurate GB speed" - source_ref: "bsnes/target-libretro/libretro.cpp:926-935 (system_dir + sgb_bios), bsnes/target-libretro/libretro.cpp:393 (core option bsnes_sgb_bios)" + source_ref: "bsnes/target-libretro/libretro.cpp:937-946 (system_dir + sgb_bios), bsnes/target-libretro/libretro.cpp:393 (core option bsnes_sgb_bios)" # -- BS-X Satellaview BIOS -- # Required for loading .bs (BS Memory) format games. @@ -217,7 +217,7 @@ files: system: nintendo-satellaview required: true note: "BS-X Satellaview BIOS ROM, loaded from system_dir when running .bs games" - source_ref: "bsnes/target-libretro/libretro.cpp:944-951 (system_dir + BS-X.bin hardcoded, .bs extension branch)" + source_ref: "bsnes/target-libretro/libretro.cpp:955-962 (system_dir + BS-X.bin hardcoded, .bs extension branch)" notes: hle_available: true diff --git a/emulators/bsnes_mercury.yml b/emulators/bsnes_mercury.yml index c0f09c8c..afd6d308 100644 --- a/emulators/bsnes_mercury.yml +++ b/emulators/bsnes_mercury.yml @@ -4,7 +4,7 @@ core_classification: enhanced_fork source: "https://github.com/libretro/bsnes-mercury" upstream: "https://byuu.org/higan" profiled_date: "2026-03-25" -source_commit: "d83bf7ab607e09131731b3a81825f986f91c1f84" +source_commit: "ea22363fb0c1ebe92e7a70cdf55e9bb43f9207be" core_version: "v094 (Mercury)" display_name: "Nintendo - SNES / SFC (bsnes-mercury)" cores: [bsnes_mercury_accuracy, bsnes_mercury_balanced, bsnes_mercury_performance] diff --git a/emulators/cap32.yml b/emulators/cap32.yml index ec9ad80c..67eaefe1 100644 --- a/emulators/cap32.yml +++ b/emulators/cap32.yml @@ -20,31 +20,31 @@ notes: | All system ROMs are compiled directly into the core binary as C header arrays in cap32/rom/*.h. No external BIOS files are required. - Embedded ROMs (cap32/cap32.c:342-345): + Embedded ROMs (cap32/cap32.c:345-348): - cap32/rom/464.h: OS_BASIC10[32768] - CPC 464 OS + BASIC 1.0 - cap32/rom/6128.h: OS_BASIC11[32768] - CPC 6128 OS + BASIC 1.1 - cap32/rom/amsdos.h: AMSDOS[16384] - AMSDOS disk controller ROM - cap32/rom/6128p.h: OS_6128P - CPC+ system cartridge ROM - cap32/rom/cpm.h: cpmROM - CP/M boot snapshot (128KB) - ROM selection in emulator_select_ROM() (cap32/cap32.c:1072-1100): + ROM selection in emulator_select_ROM() (cap32/cap32.c:1075-1103): - CPC 464: OS_BASIC10 (32KB) - CPC 664: OS_BASIC10 (32KB) + AMSDOS in slot 7 - CPC 6128: OS_BASIC11 (32KB) + AMSDOS in slot 7 - CPC+: OS_6128P loaded as system cartridge via cpr_load() The standalone (non-libretro) version references external filenames - cpc464.rom, cpc664.rom, cpc6128.rom, amsdos.rom in cap32.c:349-352 - via config file loading (cap32.c:1828-1840), but the libretro port - does not use this path. The libretro init (libretro-core.c:1512) has + cpc464.rom, cpc664.rom, cpc6128.rom, amsdos.rom in cap32/cap32.c:352-355 + via config file loading (cap32/cap32.c:1831-1843), but the libretro port + does not use this path. The libretro init (libretro/libretro-core.c:1526) has a "TODO: future use to load custom bios" comment that is not implemented. Keyboard layout patches are applied to the ROM in memory for French - and Spanish layouts via rom_mods.h (cap32.c:1102-1126). + and Spanish layouts via rom_mods.h (cap32/cap32.c:1105-1129). CP/M support loads a pre-built snapshot (cpm.h) into memory via - snapshot_load_mem() in slots.c:87. + snapshot_load_mem() in cap32/slots.c:90. files: # Standalone loads from rom_path/ — libretro embeds all as C arrays @@ -55,7 +55,7 @@ files: mode: standalone size: 32768 note: "CPC 464 OS + BASIC 1.0" - source_ref: "src/cap32.cpp:217, rom/cpc464.rom" + source_ref: "src/cap32.cpp:213, rom/cpc464.rom" - name: cpc664.rom system: amstrad-cpc required: false @@ -76,7 +76,7 @@ files: mode: standalone size: 16384 note: "AMSDOS disc ROM (sideways slot 7)" - source_ref: "src/cap32.cpp:1238" + source_ref: "src/cap32.cpp:1250" - name: system.cpr system: amstrad-cpc required: false @@ -90,16 +90,16 @@ files: mode: standalone size: 8192 note: "Multiface 2 ROM" - source_ref: "caprice32/rom/MF2.rom, src/cap32.cpp:1316-1335" + source_ref: "caprice32/rom/MF2.rom, src/cap32.cpp:1328-1347" platform_details: bios_mapping: - source_ref: "cap32/cap32.c:1072-1100, cap32/cap32.c:342-345" + source_ref: "cap32/cap32.c:1075-1103, cap32/cap32.c:345-348" note: | All ROMs are embedded. emulator_select_ROM() copies the appropriate ROM array into the pbROM buffer based on CPC.model. No filesystem lookup occurs in the libretro port. The retro_system_bios_directory - variable is set up in libretro-core.c:1499-1510 but only used for + variable is set up in libretro/libretro-core.c:1513-1524 but only used for a future custom BIOS feature that is not yet implemented. embedded_roms: @@ -113,7 +113,7 @@ platform_details: cpmROM (128KB+) - CP/M boot snapshot including SNA header model_rom_map: - source_ref: "cap32/cap32.c:1072-1100" + source_ref: "cap32/cap32.c:1075-1103" note: | CPC 464: OS_BASIC10 only (no disk support) CPC 664: OS_BASIC10 + AMSDOS in ROM slot 7 diff --git a/emulators/cdi2015.yml b/emulators/cdi2015.yml index 7965de2e..c1f7a67c 100644 --- a/emulators/cdi2015.yml +++ b/emulators/cdi2015.yml @@ -4,7 +4,7 @@ core_classification: frozen_snapshot source: "https://github.com/libretro/mame2015-libretro" upstream: "https://github.com/mamedev/mame/tree/mame0160" profiled_date: "2026-03-23" -source_commit: "283e04b03c121db9be12632d6bad2fc3e8707248" +source_commit: "0eab132212b28896baeac7d8f2cd8ac25e227752" core_version: "0.160" display_name: "Philips CDi (CDi 2015)" cores: [cdi2015] diff --git a/emulators/cemu.yml b/emulators/cemu.yml index f7d0040a..a4b194f4 100644 --- a/emulators/cemu.yml +++ b/emulators/cemu.yml @@ -3,7 +3,7 @@ type: standalone source: "https://github.com/cemu-project/Cemu" logo: "https://raw.githubusercontent.com/cemu-project/Cemu/main/dist/linux/info.cemu.Cemu.png" profiled_date: "2026-03-18" -source_commit: "daacdda0bab55dd78a2b5aac2c12d6ebe8c8e868" +source_commit: "51250c02dea9ec9333e4725a17c0eac705128ff0" core_version: "2.6" display_name: "Cemu (Wii U)" cores: diff --git a/emulators/citra2018.yml b/emulators/citra2018.yml index eb3d1101..87539d95 100644 --- a/emulators/citra2018.yml +++ b/emulators/citra2018.yml @@ -4,7 +4,7 @@ core_classification: frozen_snapshot source: "https://github.com/libretro/citra2018" upstream: "https://github.com/citra-emu/citra" profiled_date: "2026-03-23" -source_commit: "29183a99b9771b128a36304c7d734daf5bfd5051" +source_commit: "04fafd55252072ba148b87f20d8509ff1a91086e" core_version: "Git" display_name: "Nintendo - 3DS (Citra 2018)" cores: [citra2018] diff --git a/emulators/clownmdemu.yml b/emulators/clownmdemu.yml index 79feb704..b277eb41 100644 --- a/emulators/clownmdemu.yml +++ b/emulators/clownmdemu.yml @@ -4,7 +4,7 @@ core_classification: official_port source: "https://github.com/Clownacy/clownmdemu-libretro" upstream: "https://github.com/Clownacy/clownmdemu" profiled_date: "2026-03-23" -source_commit: "3b278c900c278678763d96087f1d343a6aed6e58" +source_commit: "935d6fc060eb82172dac29e880fe9b877fbdb640" core_version: "Git" display_name: "Sega - MD/CD (ClownMDEmu)" cores: @@ -32,6 +32,6 @@ analysis: boot_rom_source: "https://github.com/Clownacy/clownmdemu-mcd-boot" boot_rom_location: "source/mega-cd-boot-rom.c (16384 uint16 entries = 32 KB)" bus_mapping: "0x400000-0x41FFFF (address & 0x20000 == 0)" - source_ref: "bus-main-m68k.c:19-21, bus-main-m68k.c:501-513" + source_ref: "source/bus-main-m68k.c:19-21, source/bus-main-m68k.c:510-522" bios_hle: true - hle_source_ref: "bus-sub-m68k.c:64 (MegaCDBIOSCall)" + hle_source_ref: "source/bus-sub-m68k.c:64 (MegaCDBIOSCall)" diff --git a/emulators/craft.yml b/emulators/craft.yml index dc23361a..de3bce0e 100644 --- a/emulators/craft.yml +++ b/emulators/craft.yml @@ -4,7 +4,7 @@ core_classification: pure_libretro source: "https://github.com/libretro/Craft" upstream: "https://github.com/fogleman/Craft" profiled_date: "2026-03-23" -source_commit: "675c5b2fc690d2e80f6099f46407bf23827c59d4" +source_commit: "e9f3b9108077db019885a384429437d0b6a3904b" core_version: "v1" display_name: "Minecraft (Craft)" cores: [craft] diff --git a/emulators/daphne.yml b/emulators/daphne.yml index 665035aa..b1fbca2a 100644 --- a/emulators/daphne.yml +++ b/emulators/daphne.yml @@ -4,7 +4,7 @@ core_classification: community_fork source: "https://github.com/libretro/daphne" upstream: "https://github.com/mirror/daphne-emu" profiled_date: "2026-03-23" -source_commit: "1586978f7b71f40675f8d0a08d9872ecd2415422" +source_commit: "6f1695dd1f376060666eec0a416ff56bb6c9cccc" core_version: "Git" display_name: "Arcade (Daphne)" cores: @@ -16,7 +16,7 @@ notes: | LaserDisc arcade game emulator. Port of Daphne 1.0 (Matt Ownby) to libretro. Each game loads its own arcade ROM set from a ZIP file named after the game (e.g. lair.zip). ROMs are loaded from a content-relative directory structure - (homedir/roms/) with CRC32 verification (game.cpp:767-781). The core never + (homedir/roms/) with CRC32 verification (daphne/daphne-1.0-src/game/game.cpp:767-781). The core never accesses the RetroArch system directory. Additional per-game data (framefiles, sound samples, overlay BMPs) is also loaded relative to the content directory. @@ -26,4 +26,4 @@ exclusion_note: > .info declares no firmware (firmware_count absent). Code confirmed: the core never calls RETRO_ENVIRONMENT_GET_SYSTEM_DIRECTORY. All files (ROM ZIPs, framefiles, sound, pics) load from the content directory via g_homedir - (libretro.cpp:1153, set to rom_path/..). No shared system BIOS or firmware. + (daphne/libretro/libretro.cpp:1153, set to rom_path/..). No shared system BIOS or firmware. diff --git a/emulators/desmume.yml b/emulators/desmume.yml index ba6a8547..26df94bf 100644 --- a/emulators/desmume.yml +++ b/emulators/desmume.yml @@ -4,7 +4,7 @@ core_classification: community_fork source: "https://github.com/libretro/desmume" upstream: "https://github.com/TASEmulators/desmume" profiled_date: "2026-03-23" -source_commit: "ae0f7f51f96d9b5741b47b425505a4a4224b91fa" +source_commit: "8f6b32cb9a5e310bd38520e7087ce7fa14765f15" core_version: "SVN" display_name: "Nintendo - DS (DeSmuME)" cores: [desmume] diff --git a/emulators/desmume2015.yml b/emulators/desmume2015.yml index d856fa1a..98a60e05 100644 --- a/emulators/desmume2015.yml +++ b/emulators/desmume2015.yml @@ -4,17 +4,17 @@ core_classification: frozen_snapshot source: "https://github.com/libretro/desmume2015" upstream: "https://github.com/TASEmulators/desmume" profiled_date: "2026-03-23" -source_commit: "af397ff3d1f208c27f3922cc8f2b8e08884ba893" +source_commit: "422b688009ccb9f2917c086a8fe79c8cecb030ae" core_version: "SVN (2015 snapshot)" display_name: "Nintendo - DS (DeSmuME 2015)" cores: [desmume2015] systems: [nintendo-ds] -exclusion_note: ".info declares firmware_count=3 but libretro frontend never enables external BIOS loading (UseExtBIOS defaults false in NDSSystem.h:497, never set in libretro.cpp)" +exclusion_note: ".info declares firmware_count=3 but libretro frontend never enables external BIOS loading (UseExtBIOS defaults false in desmume/src/NDSSystem.h:497, never set in libretro.cpp)" notes: | Frozen 2015 snapshot of DeSmuME. The core emulator code supports external - BIOS/firmware (PrepareBiosARM7/ARM9 in NDSSystem.cpp:1974-2050), but - UseExtBIOS defaults to false (NDSSystem.h:497) and the libretro frontend + BIOS/firmware (PrepareBiosARM7/ARM9 in desmume/src/NDSSystem.cpp:1957-2033), but + UseExtBIOS defaults to false (desmume/src/NDSSystem.h:497) and the libretro frontend never sets it — no desmume_use_external_bios core option exists in this version. Uses HLE BIOS stubs when external BIOS not loaded. diff --git a/emulators/dice.yml b/emulators/dice.yml index c8004ae3..da99528a 100644 --- a/emulators/dice.yml +++ b/emulators/dice.yml @@ -4,7 +4,7 @@ core_classification: community_fork source: "https://github.com/mittonk/dice-libretro" upstream: "https://sourceforge.net/projects/dice/" profiled_date: "2026-03-23" -source_commit: "72d66a67a296b004fa0bb7a57dbab9cfcec462b9" +source_commit: "b11714fc4eb5b671ba15f2ec7b98c7ae909f7a4c" core_version: "v0.4.2" display_name: "Arcade (DICE)" cores: diff --git a/emulators/dirksimple.yml b/emulators/dirksimple.yml index e637c96a..b6f045ca 100644 --- a/emulators/dirksimple.yml +++ b/emulators/dirksimple.yml @@ -4,7 +4,7 @@ core_classification: official_port source: "https://github.com/icculus/DirkSimple" upstream: "https://github.com/icculus/DirkSimple" profiled_date: "2026-03-23" -source_commit: "5aea3e2951ed641908a7bd2ca09019614003b5e3" +source_commit: "d5d75f97af34690010166a786ee41e15dd142c15" core_version: "0.2" display_name: "Laserdisc arcade game (DirkSimple)" cores: [dirksimple] diff --git a/emulators/dolphin.yml b/emulators/dolphin.yml index 05d3cf81..829941fc 100644 --- a/emulators/dolphin.yml +++ b/emulators/dolphin.yml @@ -5,7 +5,7 @@ source: "https://github.com/libretro/dolphin" upstream: "https://github.com/dolphin-emu/dolphin" logo: "https://raw.githubusercontent.com/dolphin-emu/dolphin/master/Data/dolphin-emu.svg" profiled_date: "2026-03-23" -source_commit: "b4c88b46ad26227ebde585111de691db1b0a151a" +source_commit: "e1e6d25fa1392b7d1bc05bf800c71b807a2bd2e0" core_version: "Git" display_name: "Nintendo - GameCube / Wii (Dolphin)" cores: @@ -111,7 +111,7 @@ files: system: sega-triforce required: true note: "SegaBoot, the Triforce system disc image. Read on every Triforce boot, min(size, 2 MiB) copied into the firmware buffer, nothing validated" - source_ref: "Source/Core/Core/HW/DVD/AMMediaboard.cpp:159,512,531-551, Source/Core/Core/HW/DVD/DVDInterface.cpp:292-294, Source/Core/Core/System.h:147" + source_ref: "Source/Core/Core/HW/DVD/AMMediaboard.cpp:160, 512, 531-551, Source/Core/Core/HW/DVD/DVDInterface.cpp:292-294, Source/Core/Core/System.h:147" # -- GBA BIOS (for GC-GBA link) -- # Used by integrated mGBA core for GameCube-GBA connectivity. @@ -217,7 +217,7 @@ files: required: false mode: standalone note: "Realtek 8723A BT firmware for Wiimote passthrough" - source_ref: "Source/Core/Core/IOS/USB/Bluetooth/RealtekFirmwareLoader.cpp:387" + source_ref: "Source/Core/Core/IOS/USB/Bluetooth/RealtekFirmwareLoader.cpp:414" - name: "rtl8723b_fw.bin" path: "Load/Firmware/rtl_bt/rtl8723b_fw.bin" @@ -231,7 +231,7 @@ files: required: false mode: standalone note: "Realtek 8723D BT firmware for Wiimote passthrough" - source_ref: "Source/Core/Core/IOS/USB/Bluetooth/RealtekFirmwareLoader.cpp:391" + source_ref: "Source/Core/Core/IOS/USB/Bluetooth/RealtekFirmwareLoader.cpp:418" - name: "rtl8761a_fw.bin" path: "Load/Firmware/rtl_bt/rtl8761a_fw.bin" @@ -259,14 +259,14 @@ files: required: false mode: standalone note: "Realtek 8821C BT firmware for Wiimote passthrough" - source_ref: "Source/Core/Core/IOS/USB/Bluetooth/RealtekFirmwareLoader.cpp:399" + source_ref: "Source/Core/Core/IOS/USB/Bluetooth/RealtekFirmwareLoader.cpp:426" - name: "rtl8822b_fw.bin" path: "Load/Firmware/rtl_bt/rtl8822b_fw.bin" required: false mode: standalone note: "Realtek 8822B BT firmware for Wiimote passthrough" - source_ref: "Source/Core/Core/IOS/USB/Bluetooth/RealtekFirmwareLoader.cpp:403" + source_ref: "Source/Core/Core/IOS/USB/Bluetooth/RealtekFirmwareLoader.cpp:430" - name: "rtl8822cu_fw.bin" path: "Load/Firmware/rtl_bt/rtl8822cu_fw.bin" diff --git a/emulators/dosbox-staging.yml b/emulators/dosbox-staging.yml index a5e5557c..9cab5f6a 100644 --- a/emulators/dosbox-staging.yml +++ b/emulators/dosbox-staging.yml @@ -3,7 +3,7 @@ type: standalone core_classification: enhanced_fork source: "https://github.com/dosbox-staging/dosbox-staging" upstream: "https://github.com/dosbox-staging/dosbox-staging" -source_commit: "cd81dcbc72773a4bd559b305c8b6ad3196cd09dc" +source_commit: "639aba29163f5acff84774bf4397dcfe53a4986d" profiled_date: "2026-08-08" core_version: "0.84.0-alpha" display_name: "DOS (DOSBox Staging)" @@ -26,27 +26,27 @@ notes: | No system BIOS: the PC BIOS, video BIOS fonts, keyboard layouts and codepage tables are implemented in code. - ref: int10_memory.cpp:160, dos_keyboard_layout_data.h + ref: src/ints/int10_memory.cpp:160, dos_keyboard_layout_data.h MIDI devices that need external data are mt32, soundcanvas and fluidsynth. A device that fails to initialise throws, MIDI_Init warns and retries with mididevice = port, then disables MIDI output. Emulation continues either way. - ref: midi.cpp:794-850 + ref: src/midi/midi.cpp:794-850 MT-32/CM-32L: libmt32emu identifies every candidate by file size then SHA1, so file names carry no meaning; a directory scan caches which ROM ids each directory holds and logs anything unrecognised. - ref: mt32_lasynth_model.cpp:36-97, munt ROMInfo.cpp:206-213 + ref: src/midi/mt32_lasynth_model.cpp:36-97, munt ROMInfo.cpp:206-213 A model needs one control ROM and one PCM ROM, supplied either as a full image (addROMFile) or as the two chip dumps merged in memory (mergeAndAddROMFiles): control halves are byte-interleaved, PCM halves are concatenated. - ref: mt32_lasynth_model.cpp:114-151, munt ROMInfo.cpp:312-331 + ref: src/midi/mt32_lasynth_model.cpp:114-151, munt ROMInfo.cpp:312-331 model = auto resolves the first available of cm32l_102, cm32l_100, cm32ln_100, mt32_107, mt32_106, mt32_105, mt32_104, mt32_bluer, mt32_207, mt32_206, mt32_204, mt32_203; the aliases cm32l, mt32, mt32_old and mt32_new restrict that list. MIXER /LISTMIDI prints what was found. - ref: mt32.cpp:278-331, 504-557 + ref: src/midi/mt32.cpp:278-331, 504-557 Search order is romdir, then mt32-roms in the configuration directory, then the platform locations (C:\mt32-rom-data on Windows; ~/Library/Audio/Sounds/MT32-Roms and /usr/{local/,}share/mt32-rom-data on @@ -54,7 +54,7 @@ notes: | $XDG_DATA_DIRS/mt32-rom-data and $XDG_CONFIG_HOME/dosbox/mt32-roms on Linux). A relative romdir resolves against the working directory, so a game folder can carry its own set. - ref: mt32.cpp:385-396, 416-485 + ref: src/midi/mt32.cpp:385-396, 416-485 Sound Canvas: the SC-55 is emulated by the Nuked SC55 CLAP plugin, loaded from a plugins directory next to the executable, in the configuration @@ -62,7 +62,7 @@ notes: | directory candidates, canonicalises the ones that exist and exports them as SOUNDCANVAS_ROM_PATH; the plugin appends the per-model subdirectory, hashes every file under 4 MB it finds there and matches SHA256 against its table. - ref: soundcanvas.cpp:326-373, support.cpp:351-379, + ref: src/midi/soundcanvas.cpp:326-373, src/misc/support.cpp:351-379, Nuked-SC55-CLAP nuked_sc55.cpp:117-215, Nuked-SC55-CLAP rom_loader.cpp:32-63, Nuked-SC55-CLAP rom_io.cpp:271-564 @@ -70,22 +70,22 @@ notes: | sc55_200, sc55mk2_101, sc55mk2_100 in that order by matching plugin names. The plugin publishes six descriptors: SC-55 v1.00, v1.10, v1.20, v1.21, v2.00 and SC-55mk2 v1.01. - ref: soundcanvas.cpp:55-71, 80-147, Nuked-SC55-CLAP plugin.cpp:23-90 + ref: src/midi/soundcanvas.cpp:55-71, 80-147, Nuked-SC55-CLAP plugin.cpp:23-90 FluidSynth: the soundfont setting names a file, tried as given and with .sf2 appended, in soundfont_dir, then soundfonts in the configuration directory, then the platform locations. fluid_synth_sfload is the only check. The SoundFont name from the RIFF INFO chunk and the file stem select reverb, chorus and filter presets for four known banks. - ref: fluidsynth.cpp:107-230, 672-689, 816-883, 1229-1252 + ref: src/midi/fluidsynth.cpp:107-230, 672-689, 816-883, 1229-1252 Bundled data ships with the program and is read from the resources directory next to the executable: FreeDOS codepages and keyboard layouts, translations, shaders and shader presets, CGA colour presets, drive noise samples, the mounted Y: drive utilities, the web interface and the manual pages. - ref: support.cpp:300-320, dos_code_page.cpp:1828, dos_keyboard_layout.cpp:70, - messages.cpp:1073, shader_manager.cpp:236,404, int10_modes.cpp:2302, - disk_noise.cpp:187, autoexec.cpp:759 + ref: src/misc/support.cpp:300-320, src/dos/dos_code_page.cpp:1828, src/dos/dos_keyboard_layout.cpp:70, + src/misc/messages.cpp:1073, src/gui/render/shader_manager.cpp:236,404, src/ints/int10_modes.cpp:2302, + src/audio/disk_noise.cpp:187, src/shell/autoexec.cpp:759 BIOSTEST.COM loads an arbitrary BIOS image at F000:0 and is compiled only when the debugger is enabled, which is off by default. diff --git a/emulators/dosbox-x.yml b/emulators/dosbox-x.yml index 6653ecd6..dec8c833 100644 --- a/emulators/dosbox-x.yml +++ b/emulators/dosbox-x.yml @@ -25,13 +25,13 @@ notes: | olivetti/m24/att6300, pc3270, ega, ega200, jega, mcga, vgaonly, the S3, Tseng, Paradise and ATI SVGA cards, the vesa variants, and pc98/pc9801/pc9821. fm_towns is marked STUB in the same list. - ref: dosbox.cpp:1526-1562 + ref: src/dosbox.cpp:1530-1566 No system BIOS: the PC BIOS, VGA BIOS, video fonts, keyboard layouts, codepage tables, the Z: drive utilities including GLIDE2X.OVL, and the TTF text font are compiled in. ref: int10_memory.cpp, dos_keyboard_layout_data.h, dos_codepages.h, - src/builtin/glide2x.cpp:2861, output_ttf.cpp:664 + src/builtin/glide2x.cpp:2861, src/output/output_ttf.cpp:664 Files named without a directory are searched in the working directory, the program directory, the user configuration directory and the resource @@ -39,37 +39,37 @@ notes: | or ~/.config/dosbox-x, and the resource directory is $XDG_DATA_HOME/dosbox-x, then /usr/local/share/dosbox-x, then /usr/share/dosbox-x. Windows uses C:\DOSBox-X. - ref: int10.cpp:1442-1485, cross.cpp:120-167 + ref: src/ints/int10.cpp:1442-1485, src/misc/cross.cpp:128-175 MT-32: libmt32emu is built from src/libs/mt32. Only four file names are ever opened, and each candidate is identified by exact file size then SHA1, so the name says nothing about the contents. addROMFile matches against the full image list only, which rejects the interleaved chip dumps. - ref: midi_mt32.h:74-109, c_interface.cpp:442-462, ROMInfo.cpp:206-215 + ref: src/gui/midi_mt32.h:74-109, src/libs/mt32/c_interface/c_interface.cpp:442-462, src/libs/mt32/ROMInfo.cpp:206-215 mt32.model = auto opens CM32L_CONTROL.ROM then MT32_CONTROL.ROM, and CM32L_PCM.ROM then MT32_PCM.ROM; cm32l keeps only the CM32L names, mt32 only the MT32 names. The directory is mt32.romdir, then the working directory, then the resource directory, then the configuration directory. A missing pair logs the accepted file names and disables the device. - ref: midi_mt32.h:246-275, dosbox.cpp:3571-3576 + ref: src/gui/midi_mt32.h:246-275, src/dosbox.cpp:3577-3582 FluidSynth reads fluid.soundfont; fluid_synth_sfload is the only check. With the setting empty it probes /usr/share/soundfonts/default.sf2, /usr/share/sounds/sf2/FluidR3_GM.sf2 and GeneralUser_GS.sf2 on Linux, and C:\soundfonts\default.sf2 then the two same names under C:\DOSBox-X on Windows. - ref: midi_synth.h:342-384, 462-480 + ref: src/gui/midi_synth.h:342-384, 462-480 PC-98 character generator, tried in order: FONT.ROM as generated by T98Tools, then the FONTX2 files named by pc-98 fontx sbcs and pc-98 fontx dbcs, then the file named by pc-98 anex86 font or ANEX86.BMP followed by FREECG98.BMP, then the built-in FREECG single-byte font and the built-in Japanese double-byte font. Each stage fills only what the previous one left empty. - ref: int10.cpp:1882-1893, 1652-1675 + ref: src/ints/int10.cpp:1882-1893, 1652-1675 PC-98 sound board BIOS: with pc-98 sound bios set, SOUND.ROM is read from the working directory into CC000h. Without it a callback Sound BIOS is installed at CEE0:0000 answering INT D2h. - ref: pc98_fm.cpp:367-385, 416-434 + ref: src/hardware/pc98_fm.cpp:367-385, 416-434 DOS/V and CJK text: fontxsbcs, fontxsbcs16, fontxsbcs24, fontxdbcs, fontxdbcs14 and fontxdbcs24 name font files. LoadFontxFile reads a FONTX2 @@ -77,28 +77,28 @@ notes: | identified by its size, which covers ASC16 and ASCFONT.15 from UCDOS and ETen Chinese DOS, ASC24, HZK14, HZK16, HZK24 and STDFONT.15 and STDFONT.24. Unset settings fall back to the built-in font data. - ref: int_dosv.cpp:654-749, 1631-1710, dosbox.cpp:2533-2568 + ref: src/ints/int_dosv.cpp:654-749, 1631-1710, src/dosbox.cpp:2539-2574 BOOT -bios loads a BIOS image at the top of the first megabyte, truncated to 128 KB, or 96 KB on PC-98 where it also looks for .itf.rom, .ITF.ROM, itf.rom and ITF.ROM to serve the bank switched Initial Firmware Test region through port 43Dh. - ref: dos_programs.cpp:2244-2332 + ref: src/dos/dos_programs.cpp:2250-2338 BIOSTEST.COM loads an image of up to 64 KB at F000:0 and restarts the CPU at the reset vector; it is compiled only when the debugger is enabled. The settings call binary on reset and call binary on boot load blobs of up to 128 KB into the ROM BIOS area for CPU testing. - ref: dos_programs.cpp:3581-3640, bios.cpp:13142-13215 + ref: src/dos/dos_programs.cpp:3587-3646, src/ints/bios.cpp:13280-13353 Glide passthrough loads glide2x.dll, libglide2x.so or libglide2x.dylib. - ref: glide.cpp:353-359, dosbox.cpp:3471-3473 + ref: src/hardware/glide.cpp:353-359, src/dosbox.cpp:3477-3479 ttf.font, ttf.fontbold, ttf.fontital and ttf.fontboit name a TTF, OTF, FON or TTC font resolved through the same search order plus the system font directories. Unset, the TTF output uses the built-in font, except on PC-98 or a double-byte code page where SarasaGothicFixed.ttf is tried first. - ref: output_ttf.cpp:318-473, 653-668 + ref: src/output/output_ttf.cpp:318-473, 653-668 Shipped in the resource directory: FREECG98.BMP, wqy_11pt.bdf, wqy_12pt.bdf, Nouveau_IBM.ttf, SarasaGothicFixed.ttf and the two reference configuration @@ -109,9 +109,9 @@ notes: | the customcodepage translation table, .kl layout files and the KEYBOARD.SYS to KEYBRD4.SYS libraries read from a mounted drive, the glshaders directory and the .lng translations. - ref: bios.cpp:11389-11398, sdlmain.cpp:7001-7008, - dos.cpp:4397-4420, dos_keyboard_layout.cpp:300-340, - render.cpp:1538-1545, messages.cpp:294-320 + ref: src/ints/bios.cpp:11463-11472, src/gui/sdlmain.cpp:7010-7017, + src/dos/dos.cpp:4402-4425, src/dos/dos_keyboard_layout.cpp:300-340, + src/gui/render.cpp:1538-1545, src/misc/messages.cpp:294-320 files: # -- MT-32 and CM-32L control ROMs -- @@ -260,7 +260,7 @@ files: note: > any SF2 or SF3 file loads; fluid.soundfont names it and fluid_synth_sfload is the only check - source_ref: "src/gui/midi_synth.h:346-384, src/gui/midi_synth.h:462-473, src/dosbox.cpp:3710" + source_ref: "src/gui/midi_synth.h:346-384, src/gui/midi_synth.h:462-473, src/dosbox.cpp:3716" # -- PC-98 character generator -- @@ -274,7 +274,7 @@ files: 256 8x8 cells at 0x0, 256 8x16 cells at 0x800, 96 by 92 16x16 cells at 0x1800; a file of any other length is rejected. Enabled by pc-98 try font rom, on by default - source_ref: "src/ints/int10.cpp:1487-1549, src/dosbox.cpp:2477-2478" + source_ref: "src/ints/int10.cpp:1487-1549, src/dosbox.cpp:2483-2484" - name: "ANEX86.BMP" description: "PC-98 character generator, Anex86 bitmap" @@ -285,7 +285,7 @@ files: pixel, no compression, inverse colour scheme; the first row is the 8x16 single-width set and the rest is 16x16 full-width. Also reachable through the pc-98 anex86 font setting, which is tried before FONT.ROM - source_ref: "src/ints/int10.cpp:1555-1647, src/dosbox.cpp:2481-2484" + source_ref: "src/ints/int10.cpp:1555-1647, src/dosbox.cpp:2487-2490" - name: "FREECG98.BMP" description: "PC-98 character generator, free generated bitmap" @@ -335,32 +335,32 @@ files: description: "Printer Roman typeface" required: false note: "also the fallback typeface for any unmapped LQ selection" - source_ref: "src/hardware/parport/printer.cpp:320-321, src/hardware/parport/printer.cpp:336-337, src/dosbox.cpp:4597" + source_ref: "src/hardware/parport/printer.cpp:320-321, src/hardware/parport/printer.cpp:336-337, src/dosbox.cpp:4621" - name: "sansserif.ttf" path: "FONTS/sansserif.ttf" description: "Printer Sans Serif typeface" required: false - source_ref: "src/hardware/parport/printer.cpp:323-324, src/dosbox.cpp:4597" + source_ref: "src/hardware/parport/printer.cpp:323-324, src/dosbox.cpp:4621" - name: "courier.ttf" path: "FONTS/courier.ttf" description: "Printer Courier typeface" required: false - source_ref: "src/hardware/parport/printer.cpp:326-327, src/dosbox.cpp:4597" + source_ref: "src/hardware/parport/printer.cpp:326-327, src/dosbox.cpp:4621" - name: "script.ttf" path: "FONTS/script.ttf" description: "Printer Script typeface" required: false - source_ref: "src/hardware/parport/printer.cpp:329-330, src/dosbox.cpp:4597" + source_ref: "src/hardware/parport/printer.cpp:329-330, src/dosbox.cpp:4621" - name: "ocra.ttf" path: "FONTS/ocra.ttf" description: "Printer OCR-A typeface" required: false note: "serves both the OCR-A and OCR-B selections" - source_ref: "src/hardware/parport/printer.cpp:332-334, src/dosbox.cpp:4597" + source_ref: "src/hardware/parport/printer.cpp:332-334, src/dosbox.cpp:4621" # -- PC-98 sound board BIOS -- @@ -373,7 +373,7 @@ files: note: > 16 KB read into CC000h from the working directory only, when pc-98 sound bios and pc-98 load sound bios rom file are both set - source_ref: "src/hardware/pc98_fm.cpp:367-385, src/dosbox.cpp:2378-2386" + source_ref: "src/hardware/pc98_fm.cpp:367-385, src/dosbox.cpp:2384-2392" # -- Video BIOS ROM images -- # Loaded in place of the built-in INT 10h when vga bios use rom image is set. @@ -387,7 +387,7 @@ files: max_size: 65536 validation: [size] note: "default file name for machine = svga_et4000" - source_ref: "src/dosbox.cpp:938-982, src/dosbox.cpp:2745-2757" + source_ref: "src/dosbox.cpp:942-986, src/dosbox.cpp:2751-2763" - name: "TRIO64 (Ver. 1.5-07) [VGA] (S3 Incorporated).bin" description: "S3 Trio64 video BIOS" @@ -398,7 +398,7 @@ files: max_size: 65536 validation: [size] note: "default file name for machine = svga_s3" - source_ref: "src/dosbox.cpp:943-945, src/dosbox.cpp:2745-2757" + source_ref: "src/dosbox.cpp:947-949, src/dosbox.cpp:2751-2763" - name: "ibm-vga.bin" description: "IBM VGA option ROM of 10/27/86, laid out as mapped at C000:0" @@ -411,7 +411,7 @@ files: read by LOADROM.COM from a mounted local drive; accepted when the file starts with 55 AA, byte 3 masked with 0xFC equals 0xE8 and the string IBM appears at offset 0x1E, and the machine is EGA or better - source_ref: "src/dos/dos_programs.cpp:3523-3549, src/dos/dos_programs.cpp:3560-3565" + source_ref: "src/dos/dos_programs.cpp:3529-3555, src/dos/dos_programs.cpp:3566-3571" # -- IBM ROM BASIC -- @@ -428,7 +428,7 @@ files: 32 KB to 64 KB in 4 KB steps; LOADROM.COM maps the same image at F600:0 when it is exactly 32768 bytes, starts with E9 8F 7E and carries the string IBM at offset 0x4CD4 - source_ref: "src/ints/bios.cpp:13074-13094, src/dos/dos_programs.cpp:3550-3554, src/dosbox.cpp:1931-1933" + source_ref: "src/ints/bios.cpp:13212-13232, src/dos/dos_programs.cpp:3556-3560, src/dosbox.cpp:1937-1939" # -- PCjr -- @@ -443,7 +443,7 @@ files: read during PCjr cartridge boot; bytes 0x3000 to 0xDFFF are copied to physical F3000. A short read leaves the region untouched and the cartridge still boots - source_ref: "src/dos/dos_programs.cpp:3061-3070" + source_ref: "src/dos/dos_programs.cpp:3067-3076" # -- Whole system BIOS images -- @@ -454,7 +454,7 @@ files: loaded at the top of the first megabyte, rounded up to a paragraph and truncated to 128 KB, or to 96 KB on PC-98; a larger image is clamped rather than rejected - source_ref: "src/dos/dos_programs.cpp:2244-2293" + source_ref: "src/dos/dos_programs.cpp:2250-2299" - name: "ITF.ROM" description: "PC-98 Initial Firmware Test BIOS" @@ -465,4 +465,4 @@ files: served through the port 43Dh bank switch alongside a BOOT -bios image; .itf.rom is tried before the bare name so one directory can hold several - source_ref: "src/dos/dos_programs.cpp:2295-2326" + source_ref: "src/dos/dos_programs.cpp:2301-2332" diff --git a/emulators/dosbox_core.yml b/emulators/dosbox_core.yml index 10ceac52..8cebcf3c 100644 --- a/emulators/dosbox_core.yml +++ b/emulators/dosbox_core.yml @@ -12,11 +12,11 @@ systems: [dos] notes: | No BIOS required. MT-32 and SoundFont support is optional for MIDI music. MT-32 ROMs loaded by exact filename from system directory. - mt32.romdir = system_dir (libretro.cpp:652). CM-32L is default type. + mt32.romdir = system_dir (libretro/src/libretro.cpp:653). CM-32L is default type. ref: src/gui/midi_mt32.cpp:35,51-66 - MUNT identifies ROMs by SHA1+size (ROMInfo.cpp:171-180). + MUNT identifies ROMs by SHA1+size (libretro/deps/munt/mt32emu/src/ROMInfo.cpp:171-180). FluidSynth reads .sf2/.sf3/.dls/.gig from system/soundfonts/. - ref: libretro/src/libretro.cpp:1086-1097 + ref: libretro/src/libretro.cpp:1099-1110 BASSMIDI reads .sf2/.sfz from system/soundfonts/, requires BASS + BASSMIDI shared libs in system dir (dlopen'd at runtime). ref: libretro/src/midi_bassmidi.cpp:232-254 diff --git a/emulators/dosbox_svn.yml b/emulators/dosbox_svn.yml index d5f9e42f..7464c8fc 100644 --- a/emulators/dosbox_svn.yml +++ b/emulators/dosbox_svn.yml @@ -14,13 +14,13 @@ notes: | (WITH_FAKE_SDL=1) instead of real SDL, for broader platform compat. ref: libretro/Makefile.libretro, libretro/fakesdl/ - No MT-32 emulation. src/midi/munt referenced in Makefile.common:15 + No MT-32 emulation. src/midi/munt referenced in libretro/Makefile.common:15 does not exist, no MUNT submodule. MIDI is hardware-only (ALSA, CoreAudio, CoreMIDI, Win32, OSS) + retro_midi_interface. ref: src/gui/midi.cpp - system_directory set and logged (libretro.cpp:1399-1401), never used - to load files. Config uses retro_save_directory (cross.cpp:61-71). + system_directory set and logged (libretro/libretro.cpp:1411-1413), never used + to load files. Config uses retro_save_directory (src/misc/cross.cpp:61-71). Keyboard layouts and codepages embedded in binary. ref: dos_keyboard_layout_data.h, dos_codepages.h diff --git a/emulators/dosbox_svn_ce.yml b/emulators/dosbox_svn_ce.yml index 66e75ac1..33f9beb7 100644 --- a/emulators/dosbox_svn_ce.yml +++ b/emulators/dosbox_svn_ce.yml @@ -12,15 +12,15 @@ systems: [dos] notes: | Same codebase as dosbox_svn, builds against real SDL 1.2 + SDL_net instead of the fake SDL shim (WITH_FAKE_SDL not set). - ref: libretro/Makefile.libretro:238 + ref: libretro/Makefile.libretro:244 - No MT-32 emulation. src/midi/munt referenced in Makefile.common:15 + No MT-32 emulation. src/midi/munt referenced in libretro/Makefile.common:15 does not exist, no MUNT submodule. MIDI is hardware-only (ALSA, CoreAudio, CoreMIDI, Win32, OSS) + retro_midi_interface. ref: src/gui/midi.cpp - system_directory set and logged (libretro.cpp:1399-1401), never used - to load files. Config uses retro_save_directory (cross.cpp:61-73). + system_directory set and logged (libretro/libretro.cpp:1411-1413), never used + to load files. Config uses retro_save_directory (src/misc/cross.cpp:61-73). Keyboard layouts and codepages embedded in binary. ref: dos_keyboard_layout_data.h, dos_codepages.h diff --git a/emulators/duckstation.yml b/emulators/duckstation.yml index e0fd4a55..b0a30590 100644 --- a/emulators/duckstation.yml +++ b/emulators/duckstation.yml @@ -19,7 +19,7 @@ notes: | Accepts PS1 (512 KB), PS2 (4 MB), and PS3 (0x3E66F0) BIOS images. ref: src/core/bios.h:24-26 (BIOS_SIZE, BIOS_SIZE_PS2, BIOS_SIZE_PS3) - Only the first 512 KB are mapped (bios.cpp:212). + Only the first 512 KB are mapped (src/core/bios.cpp:212). 105 known BIOS entries: 24 PS1 + 80 PS2 (identified by MD5) + 1 OpenBIOS (by signature). ref: src/core/bios.cpp:34-139 (s_image_info_by_hash) @@ -30,7 +30,7 @@ notes: | only by the two settings screens, which fall back to the real filename when it is null. ref: src/core/bios.h:41-43 (field declarations) - ref: src/duckstation-qt/biossettingswidget.cpp:150, src/core/fullscreenui_settings.cpp:3219 + ref: src/duckstation-qt/biossettingswidget.cpp:150, src/core/fullscreenui_settings.cpp:3239 Lower priority = preferred. PS2 deprioritized (>= 100) for dynamic fast boot. Late PAL deprioritized (>= 150) due to additional regional checks. OpenBIOS detected by signature at offset 0x78, not by hash. diff --git a/emulators/ecwolf.yml b/emulators/ecwolf.yml index 46f248c6..8fda6180 100644 --- a/emulators/ecwolf.yml +++ b/emulators/ecwolf.yml @@ -24,11 +24,11 @@ notes: | "embedded" when that fails. The system directory is still passed to SelectGame, but for the game data search, not for the engine package. ref: src/libretro/ecwolf_pk3_data.c, src/wl_iwad.cpp:664-672, - src/libretro/libretro.cpp:990-992 + src/libretro/libretro.cpp:1009-1011 Standalone: ecwolf.pk3 searched in progdir (binary directory). - ref: wl_main.cpp:1295 (progdir passed to SelectGame) - Also: INSTALL_PREFIX/share/ecwolf/ on Linux (wl_iwad.cpp:648) + ref: src/libretro/wl_main.cpp:1271 (progdir passed to SelectGame) + Also: INSTALL_PREFIX/share/ecwolf/ on Linux (src/wl_iwad.cpp:648) Game data files (vswap, gamemaps, vgagraph, audiot) loaded from content directory, not system directory. Auto-detects game variant by scanning diff --git a/emulators/eka2l1.yml b/emulators/eka2l1.yml index 38259dee..72c2b6a4 100644 --- a/emulators/eka2l1.yml +++ b/emulators/eka2l1.yml @@ -3,7 +3,7 @@ type: standalone source: "https://github.com/EKA2L1/EKA2L1" upstream: "https://github.com/EKA2L1/EKA2L1" profiled_date: "2026-03-26" -source_commit: "46ef1ebdcfbd7454c080d0f1efb5fb54cfa7f622" +source_commit: "f8a9a0a380d62f82a463bcc299f2b9250b819674" core_version: "continuous" display_name: "EKA2L1 (Symbian OS / N-Gage)" cores: @@ -51,4 +51,4 @@ files: required: true mode: standalone description: "Symbian OS phone ROM dump. One per device, placed in roms/{firmware_code}/ subdirectory." - source_ref: "src/emu/system/src/epoc.cpp:1225,754-759, src/emu/system/include/system/consts.h:23-25" + source_ref: "src/emu/system/src/epoc.cpp:1288, src/emu/system/src/epoc.cpp:794-799, src/emu/system/include/system/consts.h:23-25" diff --git a/emulators/emux_chip8.yml b/emulators/emux_chip8.yml index eea2c643..a918f870 100644 --- a/emulators/emux_chip8.yml +++ b/emulators/emux_chip8.yml @@ -4,7 +4,7 @@ core_classification: official_port source: "https://github.com/libretro/emux" upstream: "https://github.com/sronsse/emux" profiled_date: "2026-03-23" -source_commit: "120362977493765032cba7bed9c7aee1ff5b8579" +source_commit: "3e558cb15157fcb1944846a845547d369605c963" core_version: "0.1" display_name: "CHIP-8 (Emux CHIP-8)" cores: diff --git a/emulators/emux_gb.yml b/emulators/emux_gb.yml index 4dcc0a9c..de7063d6 100644 --- a/emulators/emux_gb.yml +++ b/emulators/emux_gb.yml @@ -4,7 +4,7 @@ core_classification: official_port source: "https://github.com/libretro/emux" upstream: "https://github.com/sronsse/emux" profiled_date: "2026-03-23" -source_commit: "02f7ba42bedad6882ce47f24c8fc3af7eaac79ae" +source_commit: "3e558cb15157fcb1944846a845547d369605c963" core_version: "0.1" display_name: "Nintendo - Game Boy / Color (Emux GB)" cores: @@ -14,13 +14,13 @@ systems: notes: | emux is a multi-system emulator by Sebastien Ronsse. The libretro port - renamed the boot ROM from DMG_ROM.bin (upstream, gb_mapper.c:32) to - dmg_boot.bin (libretro, gb_mapper.c:35) to match RetroArch conventions. + renamed the boot ROM from DMG_ROM.bin (upstream, controllers/mapper/gb_mapper.c:32) to + dmg_boot.bin (libretro, controllers/mapper/gb_mapper.c:35) to match RetroArch conventions. Boot ROM loaded via file_map(PATH_SYSTEM, "dmg_boot.bin", 0, 256) in - gb_mapper_init (gb_mapper.c:225-228). Returns false on failure — no HLE + gb_mapper_init (controllers/mapper/gb_mapper.c:225-228). Returns false on failure — no HLE fallback. Mapped at 0x0000-0x00FF, overlays ROM0 until BOOT_LOCK (0xFF50) - is written non-zero (lock_writeb, gb_mapper.c:97-106). + is written non-zero (lock_writeb, controllers/mapper/gb_mapper.c:97-106). No hash validation. Code accepts any 256+ byte file. is_experimental=true. No save states, rewind, or netplay. @@ -33,4 +33,4 @@ files: required: true size: 256 source_ref: "controllers/mapper/gb_mapper.c:35 (bootrom_path), controllers/mapper/gb_mapper.h:13 (BOOTROM_SIZE=256), controllers/mapper/gb_mapper.c:225-232 (file_map + error)" - note: "Upstream name DMG_ROM.bin, renamed by libretro port (gb_mapper.c:33-34)." + note: "Upstream name DMG_ROM.bin, renamed by libretro port (controllers/mapper/gb_mapper.c:33-34)." diff --git a/emulators/emux_nes.yml b/emulators/emux_nes.yml index ebcdb9c9..b97df551 100644 --- a/emulators/emux_nes.yml +++ b/emulators/emux_nes.yml @@ -4,7 +4,7 @@ core_classification: official_port source: "https://github.com/libretro/emux" upstream: "https://github.com/sronsse/emux" profiled_date: "2026-03-23" -source_commit: "120362977493765032cba7bed9c7aee1ff5b8579" +source_commit: "3e558cb15157fcb1944846a845547d369605c963" core_version: "0.1" display_name: "Nintendo - NES / Famicom (Emux NES)" cores: diff --git a/emulators/emux_sms.yml b/emulators/emux_sms.yml index 881bc621..0dd78013 100644 --- a/emulators/emux_sms.yml +++ b/emulators/emux_sms.yml @@ -4,7 +4,7 @@ core_classification: official_port source: "https://github.com/libretro/emux" upstream: "https://github.com/sronsse/emux" profiled_date: "2026-03-23" -source_commit: "02f7ba42bedad6882ce47f24c8fc3af7eaac79ae" +source_commit: "3e558cb15157fcb1944846a845547d369605c963" core_version: "0.1" display_name: "Sega - Master System (Emux SMS)" cores: @@ -18,9 +18,9 @@ notes: | adds g_ram_data/g_ram_size exposure in mach/sms.c for RETRO_MEMORY_SYSTEM_RAM). BIOS loaded via file_map(PATH_SYSTEM, "bios.sms", 0, BIOS_SIZE) in - sms_mapper_init (sms_mapper.c:162-165). Returns false on failure — no HLE + sms_mapper_init (controllers/mapper/sms_mapper.c:162-165). Returns false on failure — no HLE fallback. Mapped at 0x0000, overlays cartridge ROM until bios_disable bit - set in slot control register (sms_mapper.c:79-82). + set in slot control register (controllers/mapper/sms_mapper.c:79-82). No hash validation. Code accepts any file >= 8192 bytes. is_experimental=true. No save states, rewind, or netplay. @@ -33,4 +33,4 @@ files: size: 8192 validation: [size] source_ref: "controllers/mapper/sms_mapper.c:12 (BIOS_SIZE=0x2000), :61 (bios_path), :162-170 (file_map + NULL check → return false)" - note: "Mapped at 0x0000, overlays cartridge ROM until bios_disable bit set. file_map rejects files < 8192 bytes (file.c:59)." + note: "Mapped at 0x0000, overlays cartridge ROM until bios_disable bit set. file_map rejects files < 8192 bytes (main/file.c:59)." diff --git a/emulators/ep128emu.yml b/emulators/ep128emu.yml index c4b76574..26c1ce49 100644 --- a/emulators/ep128emu.yml +++ b/emulators/ep128emu.yml @@ -232,7 +232,7 @@ files: system: videoton-tvc has_builtin: true note: "TVC extension ROM v2.2. Loaded alongside tvc22_sys.rom." - source_ref: "core/core.cpp:366-367" + source_ref: "core/core.cpp:330" - name: tvcfileio.rom path: ep128emu/roms/tvcfileio.rom @@ -243,7 +243,7 @@ files: has_builtin: true bundled: true note: "TVC direct file I/O extension. Used for TVC64_FILE mode. Source included in roms/ directory." - source_ref: "core/core.cpp:370-371" + source_ref: "core/core.cpp:334" - name: tvc_dos12d.rom path: ep128emu/roms/tvc_dos12d.rom @@ -253,7 +253,7 @@ files: system: videoton-tvc has_builtin: true note: "TVC DOS 1.2d. Loaded for TVC64_DISK mode." - source_ref: "core/core.cpp:375-376" + source_ref: "core/core.cpp:339" # ============================================================ # Amstrad CPC diff --git a/emulators/fake08.yml b/emulators/fake08.yml index 27a171b5..77b58903 100644 --- a/emulators/fake08.yml +++ b/emulators/fake08.yml @@ -4,7 +4,7 @@ core_classification: game_engine source: "https://github.com/jtothebell/fake-08" upstream: "https://github.com/jtothebell/fake-08" profiled_date: "2026-03-23" -source_commit: "3e89519ca4b4eaf65be9e8cb982ea2c1ccd34e5d" +source_commit: "814991a2571ad3970e386cef48f3b148aa1c27b9" core_version: "v0.0.2.19" display_name: "PICO-8 (FAKE-08)" cores: @@ -18,17 +18,17 @@ notes: | available (3DS, Vita, Switch, Wii U, various handhelds). The core retrieves RETRO_ENVIRONMENT_GET_SYSTEM_DIRECTORY in - retro_set_environment() (libretro.cpp:162-163) but never uses the value. + retro_set_environment() (platform/libretro/libretro.cpp:162-163) but never uses the value. No file is loaded from the system directory. The PICO-8 boot sequence, global Lua functions, and default cart menu are compiled directly into the binary as string constants (p8GlobalLuaFunctions.h, DefaultCart.h). When no ROM is passed (supports_no_game = true), the core queues its - built-in BIOS cart "__FAKE08-BIOS.p8" (libretro.cpp:751). This is not + built-in BIOS cart "__FAKE08-BIOS.p8" (platform/libretro/libretro.cpp:751). This is not an external file -- it is generated internally by the VM. The core accepts .p8 (text) and .png (cartridge-as-image) formats - (libretro.cpp:258). Content is loaded either via the libretro data buffer + (platform/libretro/libretro.cpp:258). Content is loaded either via the libretro data buffer or full path depending on the _NEED_FULL_PATH_ compile flag. exclusion_note: "all engine resources compiled into binary via include_bytes!" @@ -49,4 +49,4 @@ platform_details: The FAKE-08 VM reimplements the PICO-8 API (128x128 screen, 16 colors, 4-channel audio, Lua scripting) entirely in C++. The built-in BIOS provides a cart browser and error display. Audio runs at 22050 Hz - with save state support via custom serialization (libretro.cpp:517-736). + with save state support via custom serialization (platform/libretro/libretro.cpp:517-736). diff --git a/emulators/fbalpha2012_neogeo.yml b/emulators/fbalpha2012_neogeo.yml index 5e8ce905..0a9bd750 100644 --- a/emulators/fbalpha2012_neogeo.yml +++ b/emulators/fbalpha2012_neogeo.yml @@ -4,7 +4,7 @@ core_classification: frozen_snapshot source: "https://github.com/libretro/fbalpha2012_neogeo" upstream: "https://www.fbalpha.com" profiled_date: "2026-03-23" -source_commit: "ce4949b1557cc7134e736342801ed25b2f3bd790" +source_commit: "e092097037d494c50d17c5144a2758d68538061b" core_version: "v0.2.97.29" display_name: "Arcade (FB Alpha 2012 Neo Geo)" cores: @@ -17,7 +17,7 @@ notes: | Exists for RAM-constrained platforms. Most users should use FBNeo. Neo Geo requires a BIOS ROM set (neogeo.zip) placed alongside game ROMs. - The BIOS set contains ~35 variants (d_neogeo.cpp:903-981), all BRF_BIOS: + The BIOS set contains ~35 variants (src/burn/drv/neogeo/d_neogeo.cpp:903-981), all BRF_BIOS: 68K main BIOS (BRF_SELECT, one active at a time): asia-s3.rom 0x91b64be3 MVS Asia/Europe ver. 6 (default) @@ -50,7 +50,7 @@ notes: | neocd.bin 0xdf9de490 Neo Geo CD BIOS neogeo.zip is a parent ROM set, loaded from g_rom_dir alongside game ZIPs. - g_system_dir is set (libretro.cpp:3016) but never used for file loading. + g_system_dir is set (src/burner/libretro/libretro.cpp:3016) but never used for file loading. The .info note "BIOS files must be inside the ROM directory" is accurate here: neogeo.zip must be in the same directory as game ROM ZIPs. diff --git a/emulators/fbneo_cps12.yml b/emulators/fbneo_cps12.yml index be540f8b..afd9b9f6 100644 --- a/emulators/fbneo_cps12.yml +++ b/emulators/fbneo_cps12.yml @@ -4,7 +4,7 @@ core_classification: official_port source: "https://github.com/libretro/FBNeo" upstream: "https://github.com/finalburnneo/FBNeo" profiled_date: "2026-03-23" -source_commit: "ef1f64b7023bc511858e96b8961f99c18a09f112" +source_commit: "a251c76229f1637e433b93e29845039752771b6d" core_version: "v1.0.0.2" display_name: "Arcade (FinalBurn Neo) (CPS-1 / CPS-2)" cores: diff --git a/emulators/fceumm.yml b/emulators/fceumm.yml index bfc74774..4a1b9ae1 100644 --- a/emulators/fceumm.yml +++ b/emulators/fceumm.yml @@ -4,7 +4,7 @@ core_classification: community_fork source: "https://github.com/libretro/libretro-fceumm" upstream: "https://sourceforge.net/projects/fceumm/" profiled_date: "2026-03-23" -source_commit: "b5e3566515c27dc66c9c20572171673126532e06" +source_commit: "236ccdfc911e84c60fea6b9d0699c2d440a8de14" core_version: "SVN" display_name: "Nintendo - NES / Famicom (FCEUmm)" cores: diff --git a/emulators/fixgb.yml b/emulators/fixgb.yml index 1ddb6bd0..3dbfcd4a 100644 --- a/emulators/fixgb.yml +++ b/emulators/fixgb.yml @@ -4,7 +4,7 @@ core_classification: official_port source: "https://github.com/libretro/fixGB" upstream: "https://github.com/FIX94/fixGB" profiled_date: "2026-03-23" -source_commit: "ecbaee13b64a0308539e73d0eec1847925898e5d" +source_commit: "3ab80f3ebf600664c81fa2b0f163ba3f558cf52e" core_version: "Alpha v0.8.2" display_name: "Nintendo - Game Boy / Color (fixGB)" cores: diff --git a/emulators/fixnes.yml b/emulators/fixnes.yml index 0bc202f0..dda25193 100644 --- a/emulators/fixnes.yml +++ b/emulators/fixnes.yml @@ -4,7 +4,7 @@ core_classification: official_port source: "https://github.com/libretro/fixNES" upstream: "https://github.com/FIX94/fixNES" profiled_date: "2026-03-23" -source_commit: "d5d8cba579e139fec823f64636a972d1acdf782c" +source_commit: "a692bda786a5c6f3cdc10d5a263830990d25c627" core_version: "Alpha v1.3.1" display_name: "Nintendo - NES / Famicom (fixNES)" cores: diff --git a/emulators/freeintv.yml b/emulators/freeintv.yml index bed8ded8..1a2ab47b 100644 --- a/emulators/freeintv.yml +++ b/emulators/freeintv.yml @@ -16,7 +16,7 @@ notes: | contributed by Joe Zbiciak (jzIntv), mask ROM embedded in source (src/ivoice.c:337-510, 4097-byte static array). No external ivoice ROM. - BIOS loading in retro_init() (src/libretro.c:1166-1174). Paths joined + BIOS loading in retro_init() (src/libretro.c:1175-1183). Paths joined directly to system directory, no subdirectory. loadExec() reads exec.bin as big-endian 16-bit words into 0x1000-0x1FFF. @@ -35,11 +35,11 @@ files: required: true size: 8192 note: "Executive ROM. Big-endian 16-bit words loaded at 0x1000-0x1FFF." - source_ref: "src/intv.c:47-71, src/libretro.c:1169" + source_ref: "src/intv.c:51-96, src/libretro.c:1178" - name: "grom.bin" system: intellivision required: true size: 2048 note: "Graphics ROM. Raw bytes loaded at 0x3000-0x37FF." - source_ref: "src/intv.c:73-98, src/libretro.c:1173" + source_ref: "src/intv.c:98-144, src/libretro.c:1182" diff --git a/emulators/freej2me.yml b/emulators/freej2me.yml index 837ec36c..88bc3ffe 100644 --- a/emulators/freej2me.yml +++ b/emulators/freej2me.yml @@ -4,7 +4,7 @@ core_classification: official_port source: "https://github.com/hex007/freej2me" upstream: "https://github.com/hex007/freej2me" profiled_date: "2026-03-23" -source_commit: "b1c4cf13e012938f9d5270621fddea60e5554858" +source_commit: "fae9304b85ac1c61d0117f6c8efe528612388278" core_version: "GIT" display_name: "Mobile - J2ME (FreeJ2ME)" cores: diff --git a/emulators/frodo.yml b/emulators/frodo.yml index a138c992..17f1311e 100644 --- a/emulators/frodo.yml +++ b/emulators/frodo.yml @@ -5,7 +5,7 @@ cores: [frodo] source: "https://github.com/libretro/frodo-libretro" upstream: "https://github.com/cebix/frodo4" profiled_date: "2026-03-23" -source_commit: "29dd1864b89d903ed93f1d86d85636ef9e194359" +source_commit: "9fb971b072215632f94ba86406c429dd8965dd93" core_version: "v4.2" display_name: "Commodore - C64 (Frodo)" systems: [commodore-c64] diff --git a/emulators/galaksija.yml b/emulators/galaksija.yml index 43db4fb4..d094c0dd 100644 --- a/emulators/galaksija.yml +++ b/emulators/galaksija.yml @@ -4,7 +4,7 @@ core_classification: official_port source: "https://github.com/libretro/galaxy-libretro" upstream: "https://github.com/nikp123/Galaksija-Emulator" profiled_date: "2026-03-23" -source_commit: "4e197680d2dc9f8159d3a5565fcc4bbdd0e905ea" +source_commit: "185758296c17f59cba832511139381a197986474" core_version: "v0.1" display_name: "Elektronika Inženjering - Galaksija (Galaksija)" cores: diff --git a/emulators/gam4980.yml b/emulators/gam4980.yml index 514fb07b..71aeec45 100644 --- a/emulators/gam4980.yml +++ b/emulators/gam4980.yml @@ -4,7 +4,7 @@ core_classification: pure_libretro source: "https://github.com/ThisBoringWorld/gam4980" upstream: "https://codeberg.org/iyzsong/gam4980" profiled_date: "2026-03-23" -source_commit: "2fbed643f61c6bde758f179c93d6f0595ef0a7e6" +source_commit: "eeaa531b55e7127ab4b5e0bdc5ceba686df59c6a" core_version: "0.2" display_name: "GAM4980" cores: diff --git a/emulators/gambatte.yml b/emulators/gambatte.yml index 0af774d1..aceb9b4e 100644 --- a/emulators/gambatte.yml +++ b/emulators/gambatte.yml @@ -4,7 +4,7 @@ core_classification: community_fork source: "https://github.com/libretro/gambatte-libretro" upstream: "https://github.com/sinamas/gambatte" profiled_date: "2026-03-23" -source_commit: "96174369b3c30d9fc57c926fa3379c273dc6a9a5" +source_commit: "d9d6cd06382d1ced30de34d56d3609452323dab1" core_version: "v0.5.0" display_name: "Nintendo - Game Boy / Color (Gambatte)" cores: diff --git a/emulators/gearboy.yml b/emulators/gearboy.yml index 67bbf3bd..480d598c 100644 --- a/emulators/gearboy.yml +++ b/emulators/gearboy.yml @@ -4,7 +4,7 @@ core_classification: official_port source: "https://github.com/drhelius/Gearboy" upstream: "https://github.com/drhelius/Gearboy" profiled_date: "2026-03-23" -source_commit: "5cb627121bc01e9704545d436f8393453bbc479f" +source_commit: "88226e000896890d5b847f51e7fb9754317ae5f0" core_version: "3.4.1" display_name: "Nintendo - Game Boy / Color (Gearboy)" cores: @@ -27,7 +27,7 @@ files: required: false hle_fallback: true validation: [size] - source_ref: "platforms/libretro/libretro.cpp:828, platforms/libretro/libretro.cpp:359, platforms/libretro/libretro.cpp:359" + source_ref: "platforms/libretro/libretro.cpp:833, platforms/libretro/libretro.cpp:365, platforms/libretro/libretro.cpp:365" - name: cgb_boot.bin description: Game Boy Color bootrom @@ -35,4 +35,4 @@ files: required: false hle_fallback: true validation: [size] - source_ref: "platforms/libretro/libretro.cpp:829, platforms/libretro/libretro.cpp:360, platforms/libretro/libretro.cpp:360" + source_ref: "platforms/libretro/libretro.cpp:834, platforms/libretro/libretro.cpp:366, platforms/libretro/libretro.cpp:366" diff --git a/emulators/gearcoleco.yml b/emulators/gearcoleco.yml index 58fd9f5b..2bec6605 100644 --- a/emulators/gearcoleco.yml +++ b/emulators/gearcoleco.yml @@ -18,13 +18,13 @@ notes: | Without it, the core renders a static placeholder image (kNoBiosImage from no_bios.h) and games do not execute. - The libretro wrapper (libretro.cpp:293-306) tries "colecovision.rom" first, + The libretro wrapper (platforms/libretro/libretro.cpp:295-308) tries "colecovision.rom" first, then falls back to "coleco.rom". Both resolve to the same LoadBios() call - in Memory.cpp:228-259 which validates size == 0x2000 (8192 bytes) only. + in src/Memory.cpp:256-287 which validates size == 0x2000 (8192 bytes) only. No hash check is performed. On reset, BIOS byte at offset 0x69 is patched for region selection: - 0x3C for NTSC, 0x32 for PAL (Memory.cpp:178-181). + 0x3C for NTSC, 0x32 for PAL (src/Memory.cpp:206-209). SGM (Super Game Module) expanded RAM requires no additional BIOS files. @@ -35,4 +35,4 @@ files: required: true size: 8192 validation: [size] - source_ref: "platforms/libretro/libretro.cpp:446-468, src/Memory.cpp:202-255" + source_ref: "platforms/libretro/libretro.cpp:448-470, src/Memory.cpp:230-283" diff --git a/emulators/geargrafx.yml b/emulators/geargrafx.yml index 0df6391d..5ae297f4 100644 --- a/emulators/geargrafx.yml +++ b/emulators/geargrafx.yml @@ -41,7 +41,7 @@ files: size: 262144 required: true validation: [size, crc32] - source_ref: "platforms/libretro/libretro.cpp:581, platforms/libretro/libretro.cpp:599-601, src/media.cpp:339-436, src/defines.h:52, src/game_db.h:50, src/game_db.h:52" + source_ref: "platforms/libretro/libretro.cpp:608, platforms/libretro/libretro.cpp:623-625, src/media.cpp:387-484, src/defines.h:52, src/game_db.h:50, src/game_db.h:53" note: > Default BIOS for CD-ROM games (cdrom_bios Auto or System Card 3). game_db.h recognizes Japan (CRC32 6D9A73EF) and USA (CRC32 2B5B75FE) @@ -52,7 +52,7 @@ files: size: 262144 required: false validation: [size, crc32] - source_ref: "platforms/libretro/libretro.cpp:580, platforms/libretro/libretro.cpp:590-591, src/media.cpp:339-436, src/game_db.h:48-49, src/game_db.h:51" + source_ref: "platforms/libretro/libretro.cpp:607, platforms/libretro/libretro.cpp:617-618, src/media.cpp:387-484, src/game_db.h:48-49, src/game_db.h:52" note: > cdrom_bios = 'System Card 2'. For older CD-ROM2 titles. game_db.h recognizes three variants: v2.0 Japan (CRC32 52520BC6), v2.1 Japan @@ -63,7 +63,7 @@ files: size: 262144 required: false validation: [size, crc32] - source_ref: "platforms/libretro/libretro.cpp:579, platforms/libretro/libretro.cpp:587-588, src/media.cpp:339-436, src/game_db.h:47" + source_ref: "platforms/libretro/libretro.cpp:606, platforms/libretro/libretro.cpp:614-615, src/media.cpp:387-484, src/game_db.h:47" note: > cdrom_bios = 'System Card 1'. Very early CD-ROM2 games only. CRC32 3F9F95A4. @@ -73,9 +73,9 @@ files: size: 32768 required: false validation: [size, crc32] - source_ref: "platforms/libretro/libretro.cpp:582, platforms/libretro/libretro.cpp:596-597, platforms/libretro/libretro.cpp:481-482, src/media.cpp:339-436, src/defines.h:53, src/game_db.h:53-54" + source_ref: "platforms/libretro/libretro.cpp:609, platforms/libretro/libretro.cpp:609-610, platforms/libretro/libretro.cpp:508-509, src/media.cpp:387-484, src/defines.h:53, src/game_db.h:54-55" note: > - Always loaded alongside the selected System Card BIOS (libretro.cpp:618). + Always loaded alongside the selected System Card BIOS (platforms/libretro/libretro.cpp:642). Required for Game Express CD-ROM titles. game_db.h recognizes Blue Version (CRC32 51A12D90) and Green Version (CRC32 16AAF05A). diff --git a/emulators/gearsystem.yml b/emulators/gearsystem.yml index 228e6677..10f5360d 100644 --- a/emulators/gearsystem.yml +++ b/emulators/gearsystem.yml @@ -34,17 +34,17 @@ files: - name: "bios.sms" system: sega-mastersystem required: false - source_ref: "platforms/libretro/libretro.cpp:534, platforms/libretro/libretro.cpp:537 (load_bootroms)" + source_ref: "platforms/libretro/libretro.cpp:568, platforms/libretro/libretro.cpp:571 (load_bootroms)" - name: "bios.gg" system: sega-gamegear required: false - source_ref: "platforms/libretro/libretro.cpp:814, platforms/libretro/libretro.cpp:537 (load_bootroms)" + source_ref: "platforms/libretro/libretro.cpp:858, platforms/libretro/libretro.cpp:571 (load_bootroms)" platform_details: mastersystem: bios_filename: "bios.sms" - source_ref: "src/Memory.cpp:223-228" + source_ref: "src/Memory.cpp:225-230" note: | Boot ROM loaded via LoadBootromSMS() -> LoadBootroom(path, false). Raw binary read, stored in m_pBootromSMS. Bank count computed as @@ -52,7 +52,7 @@ platform_details: gamegear: bios_filename: "bios.gg" - source_ref: "src/Memory.cpp:230-235" + source_ref: "src/Memory.cpp:232-237" note: | Boot ROM loaded via LoadBootromGG() -> LoadBootroom(path, true). Raw binary read, stored in m_pBootromGG. Same bank computation. @@ -61,5 +61,5 @@ platform_details: sg1000: bios_filename: null note: | - No BIOS support. Memory.cpp:379 returns false from IsBootromEnabled() + No BIOS support. src/Memory.cpp:381 returns false from IsBootromEnabled() when IsSG1000() or IsGameGearInSMSMode() is true. diff --git a/emulators/genesis_plus_gx.yml b/emulators/genesis_plus_gx.yml index ad839413..3b1b39d5 100644 --- a/emulators/genesis_plus_gx.yml +++ b/emulators/genesis_plus_gx.yml @@ -4,7 +4,7 @@ core_classification: community_fork source: "https://github.com/libretro/Genesis-Plus-GX" upstream: "https://github.com/ekeeke/Genesis-Plus-GX" profiled_date: "2026-03-23" -source_commit: "84fcf2ec8e6b8d901c2fec55c884f285f93a1679" +source_commit: "a7985a9c4278ac352f8ca7bb4d3cc6b36e9e3e7d" core_version: "v1.7.4" display_name: "Sega - MS/GG/MD/CD (Genesis Plus GX)" cores: diff --git a/emulators/geolith.yml b/emulators/geolith.yml index 56b02e40..17157bde 100644 --- a/emulators/geolith.yml +++ b/emulators/geolith.yml @@ -21,13 +21,13 @@ notes: | from MAME-format ZIP archives in the system directory. Cartridge content opens aes.zip (System Type = AES, default) or neogeo.zip - (MVS and Universe BIOS) (libretro/libretro.c:1231-1234). CD content opens + (MVS and Universe BIOS) (libretro/libretro.c:1243-1246). CD content opens neocd.zip (Front/Top Loader) or neocdz.zip (CDZ, default, and CD Universe - BIOS) (libretro/libretro.c:1222-1230); Front/Top Loader additionally reads + BIOS) (libretro/libretro.c:1234-1242); Front/Top Loader additionally reads 000-lo.lo from neocdz.zip, so neocdz.zip is needed in every CD mode - (libretro/libretro.c:1241-1248). The Irritating Maze in MVS mode loads + (libretro/libretro.c:1253-1260). The Irritating Maze in MVS mode loads 236-bios.sp1 from irrmaze.zip for trackball support; without it the game - runs but the trackball does not work (libretro/libretro.c:1300-1311). + runs but the trackball does not work (libretro/libretro.c:1312-1323). Inside the opened archive, members are extracted by exact filename (src/geo.c:174-271). One 68K BIOS is selected by system type and region @@ -50,9 +50,9 @@ notes: | The core performs no hash or size validation on System ROMs. CD BIOS family detection and the optional CD speed hack patches use byte patterns and - apply only when the 68K BIOS is at least 512 KiB (src/geo_cd.c:1837-1859, + apply only when the 68K BIOS is at least 512 KiB (src/geo_cd.c:1888-1910, 1904-1924). Upstream declares the expected archive MD5s through the Jolly - Good API BIOS list (jg.c:212-223); the md5 fields on the archives below + Good API BIOS list (jg.c:220-231); the md5 fields on the archives below are copied from it. files: @@ -64,35 +64,35 @@ files: required: true md5: "ad9585c72130c56f04ae26aae87c289d" note: "Neo Geo AES System ROMs. Opened when System Type is AES (default)." - source_ref: "libretro/libretro.c:1231-1234, jg.c:213-214" + source_ref: "libretro/libretro.c:1243-1246, jg.c:221-222" - name: "neogeo.zip" system: snk-neogeo-mvs required: true md5: "00dad01abdbf8ea9e79ad2fe11bdb182" note: "Neo Geo MVS System ROMs. Opened for MVS and Universe BIOS modes." - source_ref: "libretro/libretro.c:1231-1234, jg.c:215-216" + source_ref: "libretro/libretro.c:1243-1246, jg.c:223-224" - name: "neocd.zip" system: snk-neogeo-cd required: false md5: "006a881532f2caffc3fe9fb5593f2ed5" note: "Neo Geo CD Front/Top Loader System ROMs. Opened only when CD System is front or top loader." - source_ref: "libretro/libretro.c:1222-1229, jg.c:217-218" + source_ref: "libretro/libretro.c:1234-1241, jg.c:225-226" - name: "neocdz.zip" system: snk-neogeo-cd required: true md5: "b31a246b69493c35194fe0bac120dc37" note: "Neo Geo CDZ System ROMs. Opened for CDZ (default) and CD Universe BIOS; also supplies 000-lo.lo to Front/Top Loader mode." - source_ref: "libretro/libretro.c:1222-1248, jg.c:219-220" + source_ref: "libretro/libretro.c:1234-1260, jg.c:227-228" - name: "irrmaze.zip" system: snk-neogeo-mvs required: false md5: "0e369df30a70e45547cef9e4078dc511" note: "The Irritating Maze auxiliary BIOS. Loaded in MVS mode for trackball support; on failure the game runs without trackball." - source_ref: "libretro/libretro.c:1300-1311, jg.c:221-222" + source_ref: "libretro/libretro.c:1312-1323, jg.c:229-230" # ----------------------------------------------------------- # aes.zip members @@ -249,7 +249,7 @@ files: size: 131072 crc32: "5a86cff2" note: "Zoom lookup table. Read from neocdz.zip in every CD mode, including Front/Top Loader." - source_ref: "src/geo.c:234-243, 273-285, libretro/libretro.c:1241-1248" + source_ref: "src/geo.c:234-243, 273-285, libretro/libretro.c:1253-1260" # ----------------------------------------------------------- # irrmaze.zip member @@ -259,4 +259,4 @@ files: system: snk-neogeo-mvs required: false note: "The Irritating Maze auxiliary 68K BIOS, replaces the MVS BIOS to enable trackball input." - source_ref: "src/geo.c:286-299, libretro/libretro.c:1300-1311" + source_ref: "src/geo.c:286-299, libretro/libretro.c:1312-1323" diff --git a/emulators/gopher2600.yml b/emulators/gopher2600.yml index a96681ff..6fb79533 100644 --- a/emulators/gopher2600.yml +++ b/emulators/gopher2600.yml @@ -19,32 +19,32 @@ notes: | with nothing supplied. Supercharger emulation is the only path that reads a BIOS. NewSupercharger - branches three ways (supercharger.go:93-119). A tape held as WAV or MP3 sets + branches three ways (hardware/memory/cartridge/supercharger/supercharger.go:93-119). A tape held as WAV or MP3 sets Loader.IsSoundData and calls loadBIOS, and the error is returned, so the cartridge fails to attach without the file. A demo unit image calls loadBIOS and substitutes fastloadOnlyBIOS() on failure. Everything else, including the usual Supercharger BIN, takes fastloadOnlyBIOS() without ever looking for the file: a 2048 byte stub holding a touch of the tape load register and the CPU - jump table (bios.go:151-166). + jump table (hardware/memory/cartridge/supercharger/bios.go:151-166). loadBIOS reads the current working directory, then the directory holding the - tape or BIN, then the configuration directory (bios.go:53-116). Each candidate + tape or BIN, then the configuration directory (hardware/memory/cartridge/supercharger/bios.go:53-116). Each candidate name is tried in turn and the content is gated on MD5 before the caller checks the 2048 byte length, so a file under the right name with the wrong content is - refused. ReqSpec selects the PAL table and the PAL hash (bios.go:56-59); + refused. ReqSpec selects the PAL table and the PAL hash (hardware/memory/cartridge/supercharger/bios.go:56-59); ReqSpec comes from the television specification, the stella.pro entry or the filename (cartridgeloader/loader.go:194-201). The demo unit is recognised by MD5 of the 256 bytes at 0x300 of the loaded - image (demounit.go:58,78). When that image carries more than 2048 bytes it + image (hardware/memory/cartridge/supercharger/demounit.go:58,78). When that image carries more than 2048 bytes it holds the Schweber chip and the carousel together; otherwise the eight ROMs are read from the directory of the loaded file (demounit_controller.go: 178-200). A read error or a length other than 8192 logs and returns nil, and the peripheral is left unplugged. stella.pro is Stella's cartridge properties database, read from the - configuration directory (properties.go:28,48-58). It is loaded by - NewDebugger (debugger.go:356), which drives play as well as debug + configuration directory (properties/properties.go:28,48-58). It is loaded by + NewDebugger (debugger/debugger.go:356), which drives play as well as debug (gopher2600.go:261,307,326), so it applies to the plain `gopher2600 ` invocation. A missing file is logged and start-up continues; the ROM selector then falls back to the filename and no television specification is inferred @@ -52,10 +52,10 @@ notes: | The ROM selector also reads a Named_Boxarts directory from the configuration directory, listing it at start-up and fuzzy matching the cartridge name - against the entries before reading one image (win_rom_select.go:92,127-138, + against the entries before reading one image (gui/sdlimgui/win_rom_select.go:92,127-138, 678-689). It holds the box art of the libretro-thumbnails Atari 2600 set, pinned upstream at commit 4ea759821724d6c7bcf2f46020d79fc4270ed2f6 - (win_rom_select.go:91). Its content is whatever the user copies in and no + (gui/sdlimgui/win_rom_select.go:91). Its content is whatever the user copies in and no name is fixed by the code, so it carries no file entry here. Fonts, shaders, bevels, the CPU instruction table and the Movie Cart core are @@ -65,7 +65,7 @@ notes: | elf_nvram, regression, patches and setupDB. ARM map files and DWARF sources are read from a project build tree beside the ROM. AtariVox speech calls the festival binary as a process, with the path taken from preferences - (atarivox_preferences.go:51). + (hardware/preferences/atarivox_preferences.go:51). files: - name: "Supercharger BIOS.bin" @@ -107,7 +107,7 @@ files: Recognised by the MD5 of the 256 bytes at 0x300, so the name is the one the dump carries rather than one the code fixes. The carousel ROMs are only read once this image has been accepted. - source_ref: "hardware/memory/cartridge/supercharger/demounit.go:56-78, hardware/memory/cartridge/supercharger/supercharger.go:107,115, hardware/memory/cartridge/fingerprint.go:333" + source_ref: "hardware/memory/cartridge/supercharger/demounit.go:56-78, hardware/memory/cartridge/supercharger/supercharger.go:107, 115, hardware/memory/cartridge/fingerprint.go:346" - name: "Starpath Demonstration Unit 1P.bin" system: atari-2600 diff --git a/emulators/gopher64.yml b/emulators/gopher64.yml index abf2780e..e8086244 100644 --- a/emulators/gopher64.yml +++ b/emulators/gopher64.yml @@ -48,21 +48,21 @@ notes: | Everything else under the configuration, data and cache directories is written by the emulator: config.json and cheats.json (src/ui/config.rs:99-111,134-146), retroachievements.json (src/lib.rs:209; src/retroachievements.rs:37,61), - ice_config.json from the netplay server response (src/ui/netplay.rs:713-716, + ice_config.json from the netplay server response (src/ui/netplay.rs:715-718, src/netplay.rs:419), the eeprom, sram, flash, mempak, sdcard and romsave saves and the savestates (src/ui/storage.rs:212-232; src/savestates.rs:179,236). For a netplay launch the GUI serialises the cheats to the cache directory, passes them to a re-exec of itself through the hidden --cheats flag and deletes the file afterwards (src/ui/gui.rs:583-593,600-615,630; src/lib.rs:141-147). portable.txt is tested for existence only, to move those three directories - beside the executable (src/ui.rs:164-178). + beside the executable (src/ui.rs:186-200). Compiled-in data: the cheat database (src/cheats.rs:31), the No-Intro Nintendo 64 export that names entries in the ROM browser (src/ui/gui.rs:688-690), the RobotoMono face handed to SDL_ttf from memory (src/ui/video.rs:109, src/ui/input_profile.rs:99), the parallel-rdp SPIR-V modules (parallel-rdp/spirv.hpp and parallel-rdp/spirv_crt.hpp, used at - parallel-rdp/interface.cpp:4-5,615) and the Slint translations bundled at + parallel-rdp/interface.cpp:4-5,619) and the Slint translations bundled at build time (build.rs:11). files: [] diff --git a/emulators/gpsp.yml b/emulators/gpsp.yml index f9e2010a..c9d29d73 100644 --- a/emulators/gpsp.yml +++ b/emulators/gpsp.yml @@ -4,7 +4,7 @@ core_classification: community_fork source: "https://github.com/libretro/gpsp" upstream: "https://github.com/davidgfnet/gpsp" profiled_date: "2026-03-23" -source_commit: "5b6e751f4abf368509146cd143c949c1946ac1ae" +source_commit: "8d268a6bb2cd799f8f2791ebb544a7ef550cfc6f" core_version: "Git" display_name: "Nintendo - Game Boy Advance (gpSP)" cores: diff --git a/emulators/gsplus.yml b/emulators/gsplus.yml index 9a4ec684..5da57221 100644 --- a/emulators/gsplus.yml +++ b/emulators/gsplus.yml @@ -31,7 +31,7 @@ files: aliases: [ROM.01, ROM.03, APPLE2GS.ROM, APPLE2GS.ROM2, xgs.rom, XGS.ROM, Rom03gd, 342-0077-b] required: true description: "Apple IIGS system ROM" - source_ref: "gsplus/src/config.c:131,403-406,1092-1149" + source_ref: "gsplus/src/config.c:136, gsplus/src/config.c:477-480, gsplus/src/config.c:1260-1317" note: "Accepted sizes: 32768 (Apple //e), 131072 (ROM 01), 262144 (ROM 03)" validation: [size] @@ -42,5 +42,5 @@ files: size: 256 description: "Disk II controller PROM (slot 6)" validation: [size] - source_ref: "gsplus/src/config.c:414-415,1168-1220" + source_ref: "gsplus/src/config.c:488-489, gsplus/src/config.c:1336-1388" note: "Built-in PROM generated from XOR diffs against main ROM" diff --git a/emulators/gw.yml b/emulators/gw.yml index 7bc03a3d..3e0c005d 100644 --- a/emulators/gw.yml +++ b/emulators/gw.yml @@ -4,7 +4,7 @@ core_classification: pure_libretro source: "https://github.com/libretro/gw-libretro" upstream: "http://www.madrigaldesign.it/sim/" profiled_date: "2026-03-25" -source_commit: "435e5cfd4bf6aea03a84259e9b8dba3daf3ff5bd" +source_commit: "91d599b951e7bfe7e040347f58667cba20074adc" core_version: "Git" display_name: "Handheld Electronic (GW)" cores: @@ -17,11 +17,11 @@ notes: | source code via pas2lua. Each game is a self-contained .mgw archive (bzip2 compressed tar v7) containing Lua scripts, sprites, and sound data. - retro_get_system_info (libretro.c:187-194) sets valid_extensions to "mgw", + retro_get_system_info (src/libretro.c:187-194) sets valid_extensions to "mgw", need_fullpath to false, and block_extract to false. The core reads content entirely from the retro_game_info buffer passed by the frontend. - retro_load_game (libretro.c:256-310) passes the content buffer to + retro_load_game (src/libretro.c:256-310) passes the content buffer to gwrom_init() which decompresses and parses the tar archive in memory. gwlua_create() then initializes the Lua VM from the archive entries. diff --git a/emulators/izapple2.yml b/emulators/izapple2.yml index 4220220e..983e9b43 100644 --- a/emulators/izapple2.yml +++ b/emulators/izapple2.yml @@ -4,7 +4,7 @@ core_classification: embedded_hle source: "https://github.com/ivanizag/izapple2" upstream: "https://github.com/ivanizag/izapple2" profiled_date: "2026-08-08" -source_commit: "01deea8a97b19ac782a1d11fe1e8d07f07b6c835" +source_commit: "1b563d7668b331bc06d6d11c093ee1a14fe242be" core_version: "v2.4.0" display_name: "Apple - Apple II (izapple2)" cores: diff --git a/emulators/kemulator.yml b/emulators/kemulator.yml index 78297d6e..664c7e6b 100644 --- a/emulators/kemulator.yml +++ b/emulators/kemulator.yml @@ -61,7 +61,7 @@ notes: | the JVM default soundbank in place. VlcDir points at a VLC installation that vlcj scans for libvlc. ref: src/media/emulator/media/EmulatorMIDI.java:26-36, - src/main/emulator/ui/swt/Property.java:1864-1905 + src/main/emulator/ui/swt/Property.java:1860-1901 files: - name: M7_EmuSmw7.dll @@ -190,7 +190,7 @@ files: validation: [existence] description: "Device presets: screen sizes, key maps, platform identities" note: "Devices.load reads the PresetsPath setting, /res/presets.xml by default, as a jar resource and falls back to a disk read when the resource is absent, which is how a user-supplied preset file is picked up." - source_ref: "src/main/emulator/Settings.java:133, src/main/emulator/Devices.java:25-50, src/main/emulator/Emulator.java:641" + source_ref: "src/main/emulator/Settings.java:131, src/main/emulator/Devices.java:25-50, src/main/emulator/Emulator.java:638" - name: en.txt system: j2me diff --git a/emulators/kronos.yml b/emulators/kronos.yml index 9843e777..50806472 100644 --- a/emulators/kronos.yml +++ b/emulators/kronos.yml @@ -4,7 +4,7 @@ core_classification: official_port source: "https://github.com/libretro/yabause" upstream: "https://github.com/FCare/Kronos" profiled_date: "2026-03-24" -source_commit: "65af22e96beb6d9b0b9a50a81a39c86a6d604c1c" +source_commit: "8926b0c6c347f8c5c755911ddb0ac695420ffbf8" core_version: "v2.6.0" display_name: "Sega - Saturn/ST-V (Kronos)" cores: @@ -37,7 +37,7 @@ notes: | ROM cartridge DB: utils/src/db.c lines 43-45. Standalone supports MPEG card ROM loading (Video CD card); disabled in - libretro port (mpegpath = NULL in libretro.c:1578). + libretro port (mpegpath = NULL in yabause/src/libretro/libretro.c:1578). archive_prefix: kronos @@ -53,7 +53,7 @@ files: size: 524288 validation: [size] note: "Primary Saturn BIOS. Any region accepted. Searched in kronos/ subdir first." - source_ref: "libretro.c:1619-1623" + source_ref: "yabause/src/libretro/libretro.c:1619-1623" # ----------------------------------------------------------- # Saturn BIOS - Japan v1.01 (fallback) @@ -66,7 +66,7 @@ files: size: 524288 validation: [size] note: "Saturn BIOS v1.01 (Japan). Fallback if saturn_bios.bin missing." - source_ref: "libretro.c:1627" + source_ref: "yabause/src/libretro/libretro.c:1627" # ----------------------------------------------------------- # Saturn BIOS - NA/EU (fallback) @@ -79,7 +79,7 @@ files: size: 524288 validation: [size] note: "Saturn BIOS (NA/EU). Last fallback for Saturn mode." - source_ref: "libretro.c:1631" + source_ref: "yabause/src/libretro/libretro.c:1631" # ----------------------------------------------------------- # ST-V Arcade BIOS (stvbios.zip) - MAME romset @@ -88,7 +88,7 @@ files: system: sega-stv required: true note: "MAME-style ZIP containing ST-V region BIOS EPROMs. Searched in kronos/ subdir first." - source_ref: "libretro.c:1608-1617, ctrl/src/stv.c:112-136" + source_ref: "yabause/src/libretro/libretro.c:1608-1617, yabause/src/ctrl/src/stv.c:112-136" # ----------------------------------------------------------- # ST-V BIOS blobs inside stvbios.zip @@ -103,7 +103,7 @@ files: size: 524288 crc32: "f688ae60" validation: [crc32] - source_ref: "stv.c:120" + source_ref: "yabause/src/ctrl/src/stv.c:120" - name: "epr-20091.ic8" archive: stvbios.zip @@ -113,7 +113,7 @@ files: size: 524288 crc32: "59ed40f4" validation: [crc32] - source_ref: "stv.c:121" + source_ref: "yabause/src/ctrl/src/stv.c:121" - name: "epr-19730.ic8" archive: stvbios.zip @@ -123,7 +123,7 @@ files: size: 524288 crc32: "d0e0889d" validation: [crc32] - source_ref: "stv.c:122" + source_ref: "yabause/src/ctrl/src/stv.c:122" - name: "epr-17951a.ic8" archive: stvbios.zip @@ -133,7 +133,7 @@ files: size: 524288 crc32: "2672f9d8" validation: [crc32] - source_ref: "stv.c:123" + source_ref: "yabause/src/ctrl/src/stv.c:123" - name: "epr-17740a.ic8" archive: stvbios.zip @@ -143,7 +143,7 @@ files: size: 524288 crc32: "3e23c81f" validation: [crc32] - source_ref: "stv.c:124" + source_ref: "yabause/src/ctrl/src/stv.c:124" - name: "epr-17740.ic8" archive: stvbios.zip @@ -153,7 +153,7 @@ files: size: 524288 crc32: "5c5aa63d" validation: [crc32] - source_ref: "stv.c:125" + source_ref: "yabause/src/ctrl/src/stv.c:125" # Europe - name: "epr-17954a.ic8" @@ -164,7 +164,7 @@ files: size: 524288 crc32: "f7722da3" validation: [crc32] - source_ref: "stv.c:126" + source_ref: "yabause/src/ctrl/src/stv.c:126" # USA - name: "epr-17952a.ic8" @@ -175,7 +175,7 @@ files: size: 524288 crc32: "d1be2adf" validation: [crc32] - source_ref: "stv.c:127" + source_ref: "yabause/src/ctrl/src/stv.c:127" - name: "epr-17741a.ic8" archive: stvbios.zip @@ -185,7 +185,7 @@ files: size: 524288 crc32: "4166c663" validation: [crc32] - source_ref: "stv.c:128" + source_ref: "yabause/src/ctrl/src/stv.c:128" # Taiwan - name: "epr-19854.ic8" @@ -196,7 +196,7 @@ files: size: 524288 crc32: "e09d1f60" validation: [crc32] - source_ref: "stv.c:129" + source_ref: "yabause/src/ctrl/src/stv.c:129" - name: "epr-17953a.ic8" archive: stvbios.zip @@ -206,7 +206,7 @@ files: size: 524288 crc32: "a4c47570" validation: [crc32] - source_ref: "stv.c:130" + source_ref: "yabause/src/ctrl/src/stv.c:130" - name: "epr-17742a.ic8" archive: stvbios.zip @@ -216,7 +216,7 @@ files: size: 524288 crc32: "02daf123" validation: [crc32] - source_ref: "stv.c:131" + source_ref: "yabause/src/ctrl/src/stv.c:131" # Debug / Dev - name: "stv110.bin" @@ -226,7 +226,7 @@ files: size: 524288 crc32: "3dfeda92" validation: [crc32] - source_ref: "stv.c:132" + source_ref: "yabause/src/ctrl/src/stv.c:132" - name: "stv1061.bin" archive: stvbios.zip @@ -235,7 +235,7 @@ files: size: 524288 crc32: "728dbca3" validation: [crc32] - source_ref: "stv.c:133" + source_ref: "yabause/src/ctrl/src/stv.c:133" # ----------------------------------------------------------- # ROM Cartridges (game-specific, loaded from system_dir) @@ -246,7 +246,7 @@ files: size: 2097152 validation: [size] note: "ROM cartridge for The King of Fighters '95. Auto-detected via game DB." - source_ref: "utils/src/db.c:43-44, yabause/src/cs0.c:1207-1216" + source_ref: "yabause/src/utils/src/db.c:43-44, yabause/src/cs0.c:1207-1216" - name: "mpr-19367-mx.ic1" system: sega-saturn @@ -254,4 +254,4 @@ files: size: 2097152 validation: [size] note: "ROM cartridge for Ultraman: Hikari no Kyojin Densetsu. Auto-detected via game DB." - source_ref: "utils/src/db.c:45, yabause/src/cs0.c:1207-1216" + source_ref: "yabause/src/utils/src/db.c:45, yabause/src/cs0.c:1207-1216" diff --git a/emulators/lightspark.yml b/emulators/lightspark.yml index c85682da..e43117b7 100644 --- a/emulators/lightspark.yml +++ b/emulators/lightspark.yml @@ -24,7 +24,7 @@ notes: | Startup reads nothing. The two GLSL shaders sit in the tree as src/lightspark.frag and src/lightspark.vert but the preprocessor pulls them into string literals, "directly include shader source to avoid filesystem - access" (src/backends/rendering.cpp:1042-1045,1062-1065), which is also how + access" (src/backends/rendering.cpp:1039-1042,1059-1062), which is also how 0.8.7 builds them. The face given to nanoVG for text is Roboto Medium, decoded at runtime from a base85 array in the binary (src/launcher.cpp:1567, src/platforms/engineutils.cpp:500-502), and the launcher icon face is embedded @@ -35,7 +35,7 @@ notes: | Fonts named by the content go through fontconfig, which answers with whatever face the host has installed: FcFontMatch then FcPatternGetString(FC_FILE) hands - a path straight to nvgCreateFont (src/backends/cachedsurface.cpp:135-156). No + a path straight to nvgCreateFont (src/backends/cachedsurface.cpp:147-168). No name, path, size or hash is fixed anywhere, README:27-30 marks fontconfig itself optional, and an unmatched family leaves nanoVGFontID at -1 and falls back to the embedded face. @@ -44,7 +44,7 @@ notes: | commit and at 0.8.7 (src/parsing/textfile.cpp:74-106). fontPath holds "TimesNewRoman.ttf" on Windows (src/backends/rendering.cpp:102) but reaches only cairo_select_font_face, which takes a family name rather than a path, and - only under ENABLE_CAIRO (src/backends/rendering.cpp:1277), left FALSE by + only under ENABLE_CAIRO (src/backends/rendering.cpp:1274), left FALSE by CMakeLists.txt. Files the player writes rather than expects: lightspark.conf, an INI carrying diff --git a/emulators/lowresnx.yml b/emulators/lowresnx.yml index 008d85e5..6c624c6c 100644 --- a/emulators/lowresnx.yml +++ b/emulators/lowresnx.yml @@ -4,7 +4,7 @@ core_classification: official_port source: "https://github.com/timoinutilis/lowres-nx" upstream: "https://github.com/timoinutilis/lowres-nx" profiled_date: "2026-03-25" -source_commit: "85c80181d26bb5c2147ebc76bfc48bce9f8d73a8" +source_commit: "35adc1a215e975be964b2ef4b652117acd7beba1" core_version: "v1.2" display_name: "LowRes NX" cores: @@ -19,8 +19,8 @@ notes: | the same repository. retro_load_game() copies the .nx source code into memory - (libretro_main.c:490-493) and compiles it with the built-in interpreter. - The boot intro is a string constant embedded in boot_intro.c:26. Default + (libretro/libretro_main.c:490-493) and compiles it with the built-in interpreter. + The boot intro is a string constant embedded in core/boot_intro.c:26. Default characters and charsets are compiled-in C arrays. The core never calls RETRO_ENVIRONMENT_GET_SYSTEM_DIRECTORY. No BIOS, firmware, or external files required. diff --git a/emulators/lrps2.yml b/emulators/lrps2.yml index c5bbf6d8..52c50e5e 100644 --- a/emulators/lrps2.yml +++ b/emulators/lrps2.yml @@ -9,7 +9,7 @@ bios_mode: agnostic source: "https://github.com/libretro/ps2" upstream: "https://github.com/PCSX2/pcsx2" profiled_date: "2026-03-25" -source_commit: "60c9c5793efc46ddca70736f30f639a1d22674b8" +source_commit: "0e9057b73bd128a775aa9e59310d68692838e96c" core_version: "Git" display_name: "Sony - PlayStation 2 (LRPS2)" cores: [lrps2, pcsx2] @@ -89,7 +89,7 @@ files: path: "pcsx2/resources/GameIndex.yaml" required: false description: "game compatibility database" - source_ref: "pcsx2/GameDatabase.cpp:47, pcsx2/GameDatabase.cpp:904" + source_ref: "pcsx2/GameDatabase.cpp:48, pcsx2/GameDatabase.cpp:981" note: > YAML database of per-game patches, settings overrides, and compatibility fixes. OSD warning shown if missing. Some games may not boot or have issues without it. @@ -98,7 +98,7 @@ files: path: "pcsx2/resources/cheats_ws.zip" required: false description: "widescreen patches archive" - source_ref: "pcsx2/VMManager.cpp:357-370" + source_ref: "pcsx2/VMManager.cpp:375-388" note: > ZIP archive of per-game widescreen (16:9) patches in pnach format. Only loaded when widescreen patches are enabled via core options. @@ -108,7 +108,7 @@ files: path: "pcsx2/resources/cheats_ni.zip" required: false description: "no-interlacing patches archive" - source_ref: "pcsx2/VMManager.cpp:392-405" + source_ref: "pcsx2/VMManager.cpp:410-423" note: > ZIP archive of per-game no-interlacing patches in pnach format. Only loaded when no-interlacing patches are enabled via core options. diff --git a/emulators/lutro.yml b/emulators/lutro.yml index e157e57c..7464dcb5 100644 --- a/emulators/lutro.yml +++ b/emulators/lutro.yml @@ -17,7 +17,7 @@ notes: | standalone upstream. retro_load_game() calls lutro_load(info->path) to load the game - directory or archive (libretro.c:216). The core exposes + directory or archive (libretro.c:241). The core exposes love.filesystem.getAppdataDirectory to games as the system_dir (filesystem.c:296) but does not load any files from it itself. No BIOS, firmware, or system files required. diff --git a/emulators/mame.yml b/emulators/mame.yml index 76a7a962..6db494f1 100644 --- a/emulators/mame.yml +++ b/emulators/mame.yml @@ -269,7 +269,7 @@ files: required: true category: bios_zip system: igs-pgm - source_ref: "src/mame/igs/pgm.cpp:5545" + source_ref: "src/mame/igs/pgm.cpp:5548" contents: - name: pgm_p02s.u20 size: 131072 @@ -689,7 +689,7 @@ files: required: true category: bios_zip system: sega-stv - source_ref: "src/mame/sega/stv.cpp:4068" + source_ref: "src/mame/sega/stv.cpp:4067" contents: - name: epr-23603.ic8 size: 524288 @@ -1436,7 +1436,7 @@ files: required: true category: bios_zip system: namco-system573 - source_ref: "src/mame/konami/ksys573.cpp:6415" + source_ref: "src/mame/konami/ksys573.cpp:6541" contents: - name: 700a01.22g description: Standard @@ -1484,7 +1484,7 @@ files: required: true category: bios_zip system: konami-gv - source_ref: "src/mame/konami/konamigv.cpp:1447" + source_ref: "src/mame/konami/konamigv.cpp:1450" contents: - name: 999a01.7e size: 524288 @@ -1513,7 +1513,7 @@ files: required: true category: bios_zip system: konami-twinkle - source_ref: "src/mame/konami/twinkle.cpp:1636" + source_ref: "src/mame/konami/twinkle.cpp:1624" - name: bubsys.zip required: true @@ -1572,7 +1572,7 @@ files: required: true category: bios_zip system: capcom-zn1 - source_ref: "src/mame/sony/zn.cpp:5969" + source_ref: "src/mame/sony/zn.cpp:5971" contents: - name: m534002c-13.ic353 description: japan @@ -1593,7 +1593,7 @@ files: required: true category: bios_zip system: capcom-zn2 - source_ref: "src/mame/sony/zn.cpp:6055" + source_ref: "src/mame/sony/zn.cpp:6057" contents: - name: m534002c-59.ic353 size: 524288 @@ -1607,7 +1607,7 @@ files: - name: coh1000t.zip required: true category: bios_zip - source_ref: "src/mame/sony/zn.cpp:5989" + source_ref: "src/mame/sony/zn.cpp:5991" contents: - name: m534002c-14.ic353 size: 524288 @@ -1621,7 +1621,7 @@ files: - name: coh1000a.zip required: true category: bios_zip - source_ref: "src/mame/sony/zn.cpp:6015" + source_ref: "src/mame/sony/zn.cpp:6017" contents: - name: m534002c-15.ic353 size: 524288 @@ -1635,7 +1635,7 @@ files: - name: coh1000w.zip required: true category: bios_zip - source_ref: "src/mame/sony/zn.cpp:6024" + source_ref: "src/mame/sony/zn.cpp:6039" contents: - name: msm27c402zb.ic353 size: 524288 @@ -1649,7 +1649,7 @@ files: - name: coh1001l.zip required: true category: bios_zip - source_ref: "src/mame/sony/zn.cpp:6028" + source_ref: "src/mame/sony/zn.cpp:6043" contents: - name: m534002c-17.ic353 size: 524288 @@ -1663,7 +1663,7 @@ files: - name: coh1002v.zip required: true category: bios_zip - source_ref: "src/mame/sony/zn.cpp:6032" + source_ref: "src/mame/sony/zn.cpp:6034" contents: - name: coh-1002v.ic353 size: 524288 @@ -1677,7 +1677,7 @@ files: - name: coh1002e.zip required: true category: bios_zip - source_ref: "src/mame/sony/zn.cpp:6038" + source_ref: "src/mame/sony/zn.cpp:6040" contents: - name: m27c402cz-54.ic353 size: 524288 @@ -1691,7 +1691,7 @@ files: - name: coh1002m.zip required: true category: bios_zip - source_ref: "src/mame/sony/zn.cpp:6089" + source_ref: "src/mame/sony/zn.cpp:6091" contents: - name: m534002c-61.ic353 size: 524288 @@ -2117,7 +2117,7 @@ files: - name: crysbios.zip required: true category: bios_zip - source_ref: "src/mame/misc/crystal.cpp:845" + source_ref: "src/mame/misc/crystal.cpp:854" contents: - name: mx27l1000.u14 description: AMG0110B PCB @@ -3159,7 +3159,7 @@ files: required: true category: bios_zip system: apple2gs - source_ref: "src/mame/apple/apple2gs.cpp:3868-3882" + source_ref: "src/mame/apple/apple2gs.cpp:3853-3867" contents: - name: 341s0632-2.bin description: ADB microcontroller ROM (M50740/50741) @@ -3714,7 +3714,7 @@ files: required: true category: bios_zip system: fm7 - source_ref: "src/mame/fujitsu/fm7.cpp:2188-2209" + source_ref: "src/mame/fujitsu/fm7.cpp:2186-2207" contents: - name: fbasic300.rom description: F-BASIC 3.00 ROM @@ -3741,7 +3741,7 @@ files: required: true category: bios_zip system: fm7 - source_ref: "src/mame/fujitsu/fm7.cpp:2207-2228" + source_ref: "src/mame/fujitsu/fm7.cpp:2209-2230" contents: - name: initiate.rom description: Initiate ROM (boot sequencer) @@ -3768,7 +3768,7 @@ files: required: false category: bios_zip system: fm7 - source_ref: "src/mame/fujitsu/fm7.cpp:2170-2186" + source_ref: "src/mame/fujitsu/fm7.cpp:2169-2184" note: "FM-NEW7 clone, inherits shared ROMs from fm7.zip parent" contents: - name: fbasic302.rom @@ -4276,7 +4276,7 @@ files: - name: ekara.zip required: true category: bios_zip - source_ref: "src/mame/tvgames/xavix.cpp:2930" + source_ref: "src/mame/tvgames/xavix.cpp:2956" contents: - name: ekara.bin size: 1048576 @@ -4296,7 +4296,7 @@ files: - name: ekaraj.zip required: true category: bios_zip - source_ref: "src/mame/tvgames/xavix.cpp:2932" + source_ref: "src/mame/tvgames/xavix.cpp:2906" contents: - name: ekarajapan.bin size: 1048576 @@ -4306,7 +4306,7 @@ files: - name: ekarag.zip required: true category: bios_zip - source_ref: "src/mame/tvgames/xavix.cpp:2933" + source_ref: "src/mame/tvgames/xavix.cpp:2959" contents: - name: ekaragermany.bin size: 2097152 @@ -4326,7 +4326,7 @@ files: - name: isinger.zip required: true category: bios_zip - source_ref: "src/mame/tvgames/xavix.cpp:2936" + source_ref: "src/mame/tvgames/xavix.cpp:2962" contents: - name: kr_isinger.bin size: 1048576 @@ -4336,7 +4336,7 @@ files: - name: ekaraphs.zip required: true category: bios_zip - source_ref: "src/mame/tvgames/xavix.cpp:2939" + source_ref: "src/mame/tvgames/xavix.cpp:2965" contents: - name: ekaraheadset.bin size: 2097152 @@ -4346,7 +4346,7 @@ files: - name: epitch.zip required: true category: bios_zip - source_ref: "src/mame/tvgames/xavix.cpp:3027" + source_ref: "src/mame/tvgames/xavix.cpp:3028" contents: - name: ekarajapan.bin size: 1048576 @@ -4366,7 +4366,7 @@ files: - name: ddrfammt.zip required: true category: bios_zip - source_ref: "src/mame/tvgames/xavix.cpp:2948" + source_ref: "src/mame/tvgames/xavix.cpp:2922" contents: - name: ekara_ddr_ha010_81947.bin size: 2097152 @@ -4376,7 +4376,7 @@ files: - name: popira.zip required: true category: bios_zip - source_ref: "src/mame/tvgames/xavix.cpp:2951" + source_ref: "src/mame/tvgames/xavix.cpp:2936" contents: - name: popira.bin size: 1048576 @@ -4386,7 +4386,7 @@ files: - name: popirak.zip required: true category: bios_zip - source_ref: "src/mame/tvgames/xavix.cpp:2953" + source_ref: "src/mame/tvgames/xavix.cpp:2927" contents: - name: kr_main.u2 size: 1048576 @@ -4396,7 +4396,7 @@ files: - name: popira2.zip required: true category: bios_zip - source_ref: "src/mame/tvgames/xavix.cpp:2956" + source_ref: "src/mame/tvgames/xavix.cpp:2930" contents: - name: popira2.bin size: 2097152 @@ -4406,7 +4406,7 @@ files: - name: taikodp.zip required: true category: bios_zip - source_ref: "src/mame/tvgames/xavix.cpp:2959" + source_ref: "src/mame/tvgames/xavix.cpp:2933" contents: - name: taikodepopira.bin size: 2097152 @@ -4416,7 +4416,7 @@ files: - name: jpopira.zip required: true category: bios_zip - source_ref: "src/mame/tvgames/xavix.cpp:2962" + source_ref: "src/mame/tvgames/xavix.cpp:2936" contents: - name: jumpingpopira.bin size: 2097152 @@ -4430,7 +4430,7 @@ files: - name: evio.zip required: true category: bios_zip - source_ref: "src/mame/tvgames/xavix.cpp:2965" + source_ref: "src/mame/tvgames/xavix.cpp:2966" contents: - name: evio.bin size: 2097152 @@ -4450,7 +4450,7 @@ files: - name: gcslottv.zip required: true category: bios_zip - source_ref: "src/mame/tvgames/xavix.cpp:2972" + source_ref: "src/mame/tvgames/xavix.cpp:2946" contents: - name: sammyslotunit.bin size: 2097152 diff --git a/emulators/mame2000.yml b/emulators/mame2000.yml index dad93055..82839c03 100644 --- a/emulators/mame2000.yml +++ b/emulators/mame2000.yml @@ -4,7 +4,7 @@ core_classification: frozen_snapshot source: "https://github.com/libretro/mame2000-libretro" upstream: "https://www.mamedev.org" profiled_date: "2026-03-24" -source_commit: "f099ba44c7664906fd7e01cbed89d13a7e32dee1" +source_commit: "181b42e5da0d2f0c7a2e59244f23633ed594de2e" core_version: "0.37b5" display_name: "Arcade (MAME 2000)" diff --git a/emulators/mame2003.yml b/emulators/mame2003.yml index abae2b84..092d2220 100644 --- a/emulators/mame2003.yml +++ b/emulators/mame2003.yml @@ -4,7 +4,7 @@ core_classification: frozen_snapshot source: "https://github.com/libretro/mame2003-libretro" upstream: "https://www.mamedev.org" profiled_date: "2026-03-24" -source_commit: "6c32fa9fc005d7e924909c6ff4684da9abb00ceb" +source_commit: "259339e92d5f63e4b293ce0d42a069f9e8ba2a6a" core_version: "0.78" display_name: "Arcade (MAME 2003)" @@ -65,14 +65,14 @@ files: path: "mame2003/history.dat" required: false category: game_data - source_ref: "src/datafile.c:327, src/datafile.c:578" + source_ref: "src/datafile.c:327, src/datafile.c:563" note: "game history and information database" - name: mameinfo.dat path: "mame2003/mameinfo.dat" required: false category: game_data - source_ref: "src/datafile.c:327, src/datafile.c:637-641" + source_ref: "src/datafile.c:327, src/datafile.c:622-626" note: "game technical information database" # SNK Neo Geo MVS/AES @@ -146,14 +146,14 @@ files: required: true category: bios_zip system: sega-megaplay - source_ref: "src/drivers/segac2.c:4483" + source_ref: "src/drivers/segac2.c:4468" # Sega Mega Tech - name: megatech.zip required: true category: bios_zip system: sega-megatech - source_ref: "src/drivers/segac2.c:4405" + source_ref: "src/drivers/segac2.c:4390" # DECO Cassette - name: decocass.zip @@ -188,7 +188,7 @@ files: required: true category: bios_zip system: konami-gx - source_ref: "src/drivers/konamigx.c:3392" + source_ref: "src/drivers/konamigx.c:3369" # Century Electronics CVS - name: cvs.zip diff --git a/emulators/mame2003_midway.yml b/emulators/mame2003_midway.yml index c41bb78b..ba015227 100644 --- a/emulators/mame2003_midway.yml +++ b/emulators/mame2003_midway.yml @@ -4,7 +4,7 @@ core_classification: frozen_snapshot source: "https://github.com/libretro/mame2003_midway" upstream: "https://www.mamedev.org" profiled_date: "2026-03-24" -source_commit: "52d8432b13fb2be032abccdf465b9fee94078080" +source_commit: "e657f70b6dc67b4f7f9255bc796c5d5ce168d69c" core_version: "0.78" display_name: "Arcade (MAME 2003 Midway)" diff --git a/emulators/mame2003_plus.yml b/emulators/mame2003_plus.yml index 4a67f476..9b2eaceb 100644 --- a/emulators/mame2003_plus.yml +++ b/emulators/mame2003_plus.yml @@ -5,7 +5,7 @@ source: "https://github.com/libretro/mame2003-plus-libretro" upstream: "https://www.mamedev.org" logo: "https://raw.githubusercontent.com/mamedev/mame/master/docs/source/images/MAMElogo.svg" profiled_date: "2026-03-24" -source_commit: "d6bf36f65f36853120d7e97cdf4fa3720de66728" +source_commit: "3a2f7f39b1733a8e6b2dca6f1197f18b9a74867b" core_version: "2003-Plus" display_name: "Arcade (MAME 2003-Plus)" mame_version: "0.78 (plus backports)" diff --git a/emulators/mame2010.yml b/emulators/mame2010.yml index ebf2ea9b..a6d9b4b0 100644 --- a/emulators/mame2010.yml +++ b/emulators/mame2010.yml @@ -5,7 +5,7 @@ source: "https://github.com/libretro/mame2010-libretro" upstream: "https://github.com/mamedev/mame/tree/mame0139" logo: "https://raw.githubusercontent.com/mamedev/mame/master/docs/source/images/MAMElogo.svg" profiled_date: "2026-03-22" -source_commit: "484456818393505dd4367e6e4c116c573c04a1ec" +source_commit: "dff8aadd1c3f38215af3955746d6e19abe0ddcea" core_version: "0.139" display_name: "Arcade (MAME 2010)" mame_version: "0.139" diff --git a/emulators/mame2015.yml b/emulators/mame2015.yml index ac2ee16a..2d437122 100644 --- a/emulators/mame2015.yml +++ b/emulators/mame2015.yml @@ -5,7 +5,7 @@ source: "https://github.com/libretro/mame2015-libretro" upstream: "https://github.com/mamedev/mame/tree/mame0160" logo: "https://raw.githubusercontent.com/mamedev/mame/master/docs/source/images/MAMElogo.svg" profiled_date: "2026-03-24" -source_commit: "283e04b03c121db9be12632d6bad2fc3e8707248" +source_commit: "0eab132212b28896baeac7d8f2cd8ac25e227752" core_version: "0.160" display_name: "Arcade (MAME 2015)" mame_version: "0.160" diff --git a/emulators/mame2016.yml b/emulators/mame2016.yml index 52891f4b..1d9e8413 100644 --- a/emulators/mame2016.yml +++ b/emulators/mame2016.yml @@ -5,7 +5,7 @@ source: "https://github.com/libretro/mame2016-libretro" upstream: "https://github.com/mamedev/mame/tree/mame0174" logo: "https://raw.githubusercontent.com/mamedev/mame/master/docs/source/images/MAMElogo.svg" profiled_date: "2026-03-22" -source_commit: "3529f4e2cb8e74c88d83bc9fc9d695f78dc9a975" +source_commit: "e3d45e2ba59bac384aa1619687004e504f317b92" core_version: "0.174" cores: diff --git a/emulators/mamearcade.yml b/emulators/mamearcade.yml index 81a0f175..c5c3bf90 100644 --- a/emulators/mamearcade.yml +++ b/emulators/mamearcade.yml @@ -4,7 +4,7 @@ core_classification: official_port source: "https://github.com/libretro/mame" upstream: "https://github.com/mamedev/mame" profiled_date: "2026-03-24" -source_commit: "c1ff660dbddd5b134f549b4881499699cee1ebb6" +source_commit: "4fc9a9312baaf34963847f884961ad9793fbbc1d" upstream_commit: "728d957663041fbc943806bf151584acd03e2160" core_version: "0.287" display_name: "Arcade (MAME/Arcade)" @@ -219,7 +219,7 @@ files: required: true category: bios_zip system: igs-pgm - source_ref: "src/mame/igs/pgm.cpp:5545" + source_ref: "src/mame/igs/pgm.cpp:5548" contents: - name: pgm_p02s.u20 size: 131072 @@ -643,7 +643,7 @@ files: required: true category: bios_zip system: sega-stv - source_ref: "src/mame/sega/stv.cpp:4068" + source_ref: "src/mame/sega/stv.cpp:4067" contents: - name: epr-23603.ic8 size: 524288 @@ -1168,7 +1168,7 @@ files: required: true category: bios_zip system: namco-system573 - source_ref: "src/mame/konami/ksys573.cpp:6415" + source_ref: "src/mame/konami/ksys573.cpp:6541" contents: - name: 700a01.22g description: Standard @@ -1217,7 +1217,7 @@ files: required: true category: bios_zip system: konami-gv - source_ref: "src/mame/konami/konamigv.cpp:1447" + source_ref: "src/mame/konami/konamigv.cpp:1450" contents: - name: 999a01.7e size: 524288 @@ -1247,7 +1247,7 @@ files: required: true category: bios_zip system: konami-twinkle - source_ref: "src/mame/konami/twinkle.cpp:1636" + source_ref: "src/mame/konami/twinkle.cpp:1624" - name: bubsys.zip required: true @@ -1277,7 +1277,7 @@ files: required: true category: bios_zip system: capcom-zn1 - source_ref: "src/mame/sony/zn.cpp:5969" + source_ref: "src/mame/sony/zn.cpp:5971" contents: - name: m534002c-13.ic353 description: japan @@ -1298,7 +1298,7 @@ files: required: true category: bios_zip system: capcom-zn2 - source_ref: "src/mame/sony/zn.cpp:6055" + source_ref: "src/mame/sony/zn.cpp:6057" contents: - name: m534002c-59.ic353 size: 524288 @@ -1313,7 +1313,7 @@ files: required: true category: bios_zip system: taito-fx1 - source_ref: "src/mame/sony/zn.cpp:5989" + source_ref: "src/mame/sony/zn.cpp:5991" contents: - name: m534002c-14.ic353 size: 524288 @@ -1328,7 +1328,7 @@ files: required: true category: bios_zip system: acclaim-zn1 - source_ref: "src/mame/sony/zn.cpp:6015" + source_ref: "src/mame/sony/zn.cpp:6017" contents: - name: m534002c-15.ic353 size: 524288 @@ -1343,7 +1343,7 @@ files: required: true category: bios_zip system: atari-zn1 - source_ref: "src/mame/sony/zn.cpp:6024" + source_ref: "src/mame/sony/zn.cpp:6039" contents: - name: msm27c402zb.ic353 size: 524288 @@ -1358,7 +1358,7 @@ files: required: true category: bios_zip system: atlus-zn1 - source_ref: "src/mame/sony/zn.cpp:6028" + source_ref: "src/mame/sony/zn.cpp:6043" contents: - name: m534002c-17.ic353 size: 524288 @@ -1373,7 +1373,7 @@ files: required: true category: bios_zip system: videosystem-zn1 - source_ref: "src/mame/sony/zn.cpp:6032" + source_ref: "src/mame/sony/zn.cpp:6034" contents: - name: coh-1002v.ic353 size: 524288 @@ -1388,7 +1388,7 @@ files: required: true category: bios_zip system: eighting-zn1 - source_ref: "src/mame/sony/zn.cpp:6038" + source_ref: "src/mame/sony/zn.cpp:6040" contents: - name: m27c402cz-54.ic353 size: 524288 @@ -1403,7 +1403,7 @@ files: required: true category: bios_zip system: tecmo-tps - source_ref: "src/mame/sony/zn.cpp:6089" + source_ref: "src/mame/sony/zn.cpp:6091" contents: - name: m534002c-61.ic353 size: 524288 @@ -1774,7 +1774,7 @@ files: required: true category: bios_zip system: brezzasoft-crystal - source_ref: "src/mame/misc/crystal.cpp:845" + source_ref: "src/mame/misc/crystal.cpp:854" contents: - name: mx27l1000.u14 description: AMG0110B PCB diff --git a/emulators/mamemess.yml b/emulators/mamemess.yml index de2984db..19a3a6f3 100644 --- a/emulators/mamemess.yml +++ b/emulators/mamemess.yml @@ -251,7 +251,7 @@ files: - name: ekara.zip required: true category: bios_zip - source_ref: "src/mame/tvgames/xavix.cpp:2930" + source_ref: "src/mame/tvgames/xavix.cpp:2956" contents: - name: ekara.bin size: 1048576 @@ -271,7 +271,7 @@ files: - name: ekaraj.zip required: true category: bios_zip - source_ref: "src/mame/tvgames/xavix.cpp:2932" + source_ref: "src/mame/tvgames/xavix.cpp:2906" contents: - name: ekarajapan.bin size: 1048576 @@ -281,7 +281,7 @@ files: - name: ekarag.zip required: true category: bios_zip - source_ref: "src/mame/tvgames/xavix.cpp:2933" + source_ref: "src/mame/tvgames/xavix.cpp:2959" contents: - name: ekaragermany.bin size: 2097152 @@ -301,7 +301,7 @@ files: - name: isinger.zip required: true category: bios_zip - source_ref: "src/mame/tvgames/xavix.cpp:2936" + source_ref: "src/mame/tvgames/xavix.cpp:2962" contents: - name: kr_isinger.bin size: 1048576 @@ -311,7 +311,7 @@ files: - name: ekaraphs.zip required: true category: bios_zip - source_ref: "src/mame/tvgames/xavix.cpp:2939" + source_ref: "src/mame/tvgames/xavix.cpp:2965" contents: - name: ekaraheadset.bin size: 2097152 @@ -321,7 +321,7 @@ files: - name: epitch.zip required: true category: bios_zip - source_ref: "src/mame/tvgames/xavix.cpp:3027" + source_ref: "src/mame/tvgames/xavix.cpp:3028" contents: - name: ekarajapan.bin size: 1048576 @@ -342,7 +342,7 @@ files: - name: ddrfammt.zip required: true category: bios_zip - source_ref: "src/mame/tvgames/xavix.cpp:2948" + source_ref: "src/mame/tvgames/xavix.cpp:2922" contents: - name: ekara_ddr_ha010_81947.bin size: 2097152 @@ -352,7 +352,7 @@ files: - name: popira.zip required: true category: bios_zip - source_ref: "src/mame/tvgames/xavix.cpp:2951" + source_ref: "src/mame/tvgames/xavix.cpp:2936" contents: - name: popira.bin size: 1048576 @@ -362,7 +362,7 @@ files: - name: popirak.zip required: true category: bios_zip - source_ref: "src/mame/tvgames/xavix.cpp:2953" + source_ref: "src/mame/tvgames/xavix.cpp:2927" contents: - name: kr_main.u2 size: 1048576 @@ -372,7 +372,7 @@ files: - name: popira2.zip required: true category: bios_zip - source_ref: "src/mame/tvgames/xavix.cpp:2956" + source_ref: "src/mame/tvgames/xavix.cpp:2930" contents: - name: popira2.bin size: 2097152 @@ -382,7 +382,7 @@ files: - name: taikodp.zip required: true category: bios_zip - source_ref: "src/mame/tvgames/xavix.cpp:2959" + source_ref: "src/mame/tvgames/xavix.cpp:2933" contents: - name: taikodepopira.bin size: 2097152 @@ -392,7 +392,7 @@ files: - name: jpopira.zip required: true category: bios_zip - source_ref: "src/mame/tvgames/xavix.cpp:2962" + source_ref: "src/mame/tvgames/xavix.cpp:2936" contents: - name: jumpingpopira.bin size: 2097152 @@ -406,7 +406,7 @@ files: - name: evio.zip required: true category: bios_zip - source_ref: "src/mame/tvgames/xavix.cpp:2965" + source_ref: "src/mame/tvgames/xavix.cpp:2966" contents: - name: evio.bin size: 2097152 @@ -426,7 +426,7 @@ files: - name: gcslottv.zip required: true category: bios_zip - source_ref: "src/mame/tvgames/xavix.cpp:2972" + source_ref: "src/mame/tvgames/xavix.cpp:2946" contents: - name: sammyslotunit.bin size: 2097152 @@ -482,7 +482,7 @@ files: required: true category: bios_zip system: apple2 - source_ref: "src/mame/apple/apple2.cpp:774" + source_ref: "src/mame/apple/apple2.cpp:665" contents: - name: a2.chr description: Character generator ROM @@ -513,7 +513,7 @@ files: required: true category: bios_zip system: apple2 - source_ref: "src/mame/apple/apple2.cpp:900" + source_ref: "src/mame/apple/apple2.cpp:803" contents: - name: 341-0036.chr description: Character generator ROM @@ -548,7 +548,7 @@ files: required: true category: bios_zip system: apple2 - source_ref: "src/mame/apple/apple2e.cpp:5563" + source_ref: "src/mame/apple/apple2e.cpp:5566" contents: - name: 342-0133-a.chr description: Character generator ROM @@ -571,7 +571,7 @@ files: required: true category: bios_zip system: apple2 - source_ref: "src/mame/apple/apple2e.cpp:5669" + source_ref: "src/mame/apple/apple2e.cpp:5688" contents: - name: 342-0265-a.chr description: Enhanced character generator ROM @@ -656,7 +656,7 @@ files: required: true category: bios_zip system: apple2gs - source_ref: "src/mame/apple/apple2gs.cpp:3868-3882" + source_ref: "src/mame/apple/apple2gs.cpp:3853-3867" contents: - name: 341s0632-2.bin description: ADB microcontroller ROM (M50740/50741) @@ -1325,7 +1325,7 @@ files: required: true category: bios_zip system: fm7 - source_ref: "src/mame/fujitsu/fm7.cpp:2188-2209" + source_ref: "src/mame/fujitsu/fm7.cpp:2186-2207" contents: - name: fbasic300.rom description: F-BASIC 3.00 ROM @@ -1352,7 +1352,7 @@ files: required: true category: bios_zip system: fm7 - source_ref: "src/mame/fujitsu/fm7.cpp:2207-2228" + source_ref: "src/mame/fujitsu/fm7.cpp:2209-2230" contents: - name: initiate.rom description: Initiate ROM (boot sequencer) @@ -1379,7 +1379,7 @@ files: required: false category: bios_zip system: fm7 - source_ref: "src/mame/fujitsu/fm7.cpp:2170-2186" + source_ref: "src/mame/fujitsu/fm7.cpp:2169-2184" note: "FM-NEW7 clone, inherits shared ROMs from fm7.zip parent" contents: - name: fbasic302.rom @@ -1578,7 +1578,7 @@ files: required: true category: bios_zip system: pc60 - source_ref: "src/mame/nec/pc6001.cpp:1896-1916" + source_ref: "src/mame/nec/pc6001.cpp:1742-1765" contents: - name: basicrom.62 description: BASIC ROM @@ -1632,7 +1632,7 @@ files: required: true category: bios_zip system: pc60 - source_ref: "src/mame/nec/pc6001.cpp:1938-1954" + source_ref: "src/mame/nec/pc6001.cpp:1793-1824" contents: - name: systemrom1.64 description: System ROM 1 @@ -1651,7 +1651,7 @@ files: required: false category: bios_zip system: pc60 - source_ref: "src/mame/nec/pc6001.cpp:1956-1987" + source_ref: "src/mame/nec/pc6001.cpp:1826-1870" contents: - name: systemrom1.68 description: System ROM 1 diff --git a/emulators/mednafen_gba.yml b/emulators/mednafen_gba.yml index c88f0314..c14b5f01 100644 --- a/emulators/mednafen_gba.yml +++ b/emulators/mednafen_gba.yml @@ -4,7 +4,7 @@ core_classification: frozen_snapshot source: "https://github.com/libretro/beetle-gba-libretro" upstream: "https://mednafen.github.io/" profiled_date: "2026-03-24" -source_commit: "145d4884ad246e3c16765f6d69decb2a4359b6ae" +source_commit: "b158166237b17253188cfdbe73a8a0b9fe4b3a8c" core_version: "v0.9.36" display_name: "Nintendo - Game Boy Advance (Beetle GBA)" cores: diff --git a/emulators/mednafen_pce_fast.yml b/emulators/mednafen_pce_fast.yml index 4edee4fa..7271291a 100644 --- a/emulators/mednafen_pce_fast.yml +++ b/emulators/mednafen_pce_fast.yml @@ -4,7 +4,7 @@ core_classification: community_fork source: "https://github.com/libretro/beetle-pce-fast-libretro" upstream: "https://mednafen.github.io/" profiled_date: "2026-03-24" -source_commit: "b211204c7026dff6e86e79b00185512e2421fff8" +source_commit: "95fbd9c51bf0e35aa376a7774e9c02ff927cd991" core_version: "v1.31.0.0" display_name: "NEC - PC Engine / CD (Beetle PCE FAST)" cores: [mednafen_pce_fast, pce_fast, beetle_pce_fast] diff --git a/emulators/mednafen_supafaust.yml b/emulators/mednafen_supafaust.yml index 7e6b2701..21ef670d 100644 --- a/emulators/mednafen_supafaust.yml +++ b/emulators/mednafen_supafaust.yml @@ -4,7 +4,7 @@ core_classification: community_fork source: "https://github.com/libretro/supafaust" upstream: "https://mednafen.github.io/" profiled_date: "2026-03-24" -source_commit: "e25f66765938d33f9ad5850e8d6cd597e55b7299" +source_commit: "642d1d1b6684aa7e306a02a89885f3f5456a5157" core_version: "1.29.0" display_name: "Nintendo - SNES / SFC (Beetle Supafaust)" cores: [mednafen_supafaust, supafaust] @@ -19,7 +19,7 @@ systems: [nintendo-snes] notes: > Port of Mednafen's snes_faust module. All special chip firmware emulated via HLE with synthesized data ROMs. No external firmware loading. - source_ref: dsp1.cpp:120-177, dsp2.cpp:118-140, cx4.cpp:1548-1656, - cart.cpp:129-584, libretro.cpp:496-742 + source_ref: mednafen/snes_faust/cart/dsp1.cpp:120-177, mednafen/snes_faust/cart/dsp2.cpp:118-140, mednafen/snes_faust/cart/cx4.cpp:1548-1656, + mednafen/snes_faust/cart.cpp:129-584, libretro.cpp:496-742 files: [] diff --git a/emulators/mesen-s.yml b/emulators/mesen-s.yml index 40f26c97..24117c8d 100644 --- a/emulators/mesen-s.yml +++ b/emulators/mesen-s.yml @@ -8,7 +8,7 @@ core_classification: official_port source: "https://github.com/libretro/Mesen-S" upstream: "https://github.com/SourMesen/Mesen-S" profiled_date: "2026-03-24" -source_commit: "d4fca31a6004041d99b02199688f84c009c55967" +source_commit: "9e4fdeb9b336470bc96beb8765b2e79c86a2da1e" core_version: "0.4.0" cores: [mesen-s, mesen_s] systems: [nintendo-snes, nintendo-gb, nintendo-gbc, nintendo-super-game-boy, nintendo-satellaview] diff --git a/emulators/mesence.yml b/emulators/mesence.yml index 52b50340..b4d8f5f9 100644 --- a/emulators/mesence.yml +++ b/emulators/mesence.yml @@ -4,7 +4,7 @@ core_classification: enhanced_fork source: "https://github.com/nesdev-org/MesenCE" upstream: "https://github.com/SourMesen/Mesen2" profiled_date: "2026-08-06" -source_commit: "bec4fe632cb21ec97ad2b39cd6fdc826ecd02753" +source_commit: "af2342818ca81a93b346146802047760400fc7b1" core_version: "2.2.1" display_name: "Multi-System (MesenCE)" cores: [mesence, mesen2] @@ -47,21 +47,21 @@ notes: | file listed below, or from a split pair .program.rom + .data.rom (FirmwareHelper.h AttemptLoadDspFirmware). ROM dumps with the firmware appended to the game ROM need no external file (LoadDspFirmware embedded - path, FirmwareHelper.h:131-135). + path, Core/Shared/FirmwareHelper.h:131-135). GB/GBC/SGB boot ROM images are compiled into the core (Core/Gameboy/GbBootRom.h:8,49,99); the external files below override them. Super Game Boy mode falls back to the plain GB core when SGB1.sfc/SGB2.sfc - is missing (BaseCartridge.cpp:698-717). + is missing (Core/SNES/BaseCartridge.cpp:698-717). Satellaview data broadcasts are read from /Satellaview/ as - BSX-.bin (BsxStream.cpp:67-74). Five stream files and + BSX-.bin (Core/SNES/Coprocessors/BSX/BsxStream.cpp:67-74). Five stream files and MesenNesDB.txt ship inside the application binary (Dependencies.zip) and are extracted to the home folder at startup; user-provided replacements are preserved (UI/Utilities/DependencyHelper.cs:14-66). NES and SNES cheat databases (CheatDb.Nes.json, CheatDb.Snes.json) are read directly from the embedded archive and never touch the filesystem - (DependencyHelper.cs GetFileContent, CheatDatabaseViewModel.cs:33). + (DependencyHelper.cs GetFileContent, UI/ViewModels/CheatDatabaseViewModel.cs:33). HdPacks are per-game texture/audio replacements under /HdPacks/, game content rather than system files. diff --git a/emulators/mess2015.yml b/emulators/mess2015.yml index fa27410d..e31b9ac6 100644 --- a/emulators/mess2015.yml +++ b/emulators/mess2015.yml @@ -4,7 +4,7 @@ core_classification: frozen_snapshot source: "https://github.com/libretro/mame2015-libretro" upstream: "https://github.com/mamedev/mame/tree/mame0160" profiled_date: "2026-03-24" -source_commit: "283e04b03c121db9be12632d6bad2fc3e8707248" +source_commit: "0eab132212b28896baeac7d8f2cd8ac25e227752" core_version: "0.160" display_name: "Multi (MESS 2015)" mame_version: "0.159" diff --git a/emulators/meteor.yml b/emulators/meteor.yml index 75554b58..507e18a3 100644 --- a/emulators/meteor.yml +++ b/emulators/meteor.yml @@ -4,7 +4,7 @@ core_classification: community_fork source: "https://github.com/libretro/meteor-libretro" upstream: "https://github.com/blastrock/meteor" profiled_date: "2026-03-24" -source_commit: "e533d300d0561564451bde55a2b73119c768453c" +source_commit: "9ea6c358eae6acd1a346647d96b832ccaffad0aa" core_version: "v1.4" display_name: "Nintendo - Game Boy Advance (Meteor)" cores: diff --git a/emulators/mkxp_z.yml b/emulators/mkxp_z.yml index 57611e6d..3cea7053 100644 --- a/emulators/mkxp_z.yml +++ b/emulators/mkxp_z.yml @@ -6,7 +6,7 @@ source_branch: libretro source_ref: "PR #255 to mkxp-z/mkxp-z" upstream: "https://github.com/mkxp-z/mkxp-z" profiled_date: "2026-03-24" -source_commit: "f4bc5aacee7875526ac7053cb61c0dc2357cac17" +source_commit: "650cb0888a07d0b5044e131160ddfa53feaf595b" core_version: "f4bc5aa" display_name: "RPG Maker XP/VX/VX Ace (mkxp-z)" cores: @@ -30,39 +30,39 @@ files: category: game_data path: "mkxp-z/RTP/Standard/" required: false - source_ref: "src/core.cpp:1042-1085, src/core.cpp:1087-1158" + source_ref: "src/core.cpp:1081-1124, src/core.cpp:1126-1197" - name: "RPGVX" description: "RPG Maker VX Run-Time Package" category: game_data path: "mkxp-z/RTP/RPGVX/" required: false - source_ref: "src/core.cpp:1042-1085, src/core.cpp:1087-1158" + source_ref: "src/core.cpp:1081-1124, src/core.cpp:1126-1197" - name: "RPGVXAce" description: "RPG Maker VX Ace Run-Time Package" category: game_data path: "mkxp-z/RTP/RPGVXAce/" required: false - source_ref: "src/core.cpp:1042-1085, src/core.cpp:1087-1158" + source_ref: "src/core.cpp:1081-1124, src/core.cpp:1126-1197" - name: "Fonts" description: "Fallback font directory (.otf/.ttf)" category: game_data path: "mkxp-z/Fonts/" required: false - source_ref: "src/core.cpp:1160-1172" + source_ref: "src/core.cpp:1199-1211" - name: "Preload" description: "Ruby scripts loaded before game scripts" category: game_data path: "mkxp-z/Scripts/Preload/" required: false - source_ref: "src/core.cpp:876-907" + source_ref: "src/core.cpp:891-934" - name: "Postload" description: "Ruby scripts loaded after game scripts (RGSS3 only)" category: game_data path: "mkxp-z/Scripts/Postload/" required: false - source_ref: "src/core.cpp:886-917" + source_ref: "src/core.cpp:901-956" diff --git a/emulators/mu.yml b/emulators/mu.yml index 5c31330f..b899e1f8 100644 --- a/emulators/mu.yml +++ b/emulators/mu.yml @@ -4,7 +4,7 @@ core_classification: pure_libretro source: "https://github.com/libretro/Mu" upstream: "https://github.com/meepingsnesroms/Mu" profiled_date: "2026-03-24" -source_commit: "de05588fcb1adca6738dc4cf6a2e6e6c447bf2f2" +source_commit: "f9d34a0006440aef8dca0db2a0d896438fcab2cb" core_version: "v1.3.3" display_name: "Palm OS (Mu)" cores: [mu] diff --git a/emulators/mupen64plus-ae.yml b/emulators/mupen64plus-ae.yml index abeb60af..f10e4e7a 100644 --- a/emulators/mupen64plus-ae.yml +++ b/emulators/mupen64plus-ae.yml @@ -4,7 +4,7 @@ core_classification: community_fork source: "https://github.com/mupen64plus-ae/mupen64plus-ae" upstream: "https://github.com/mupen64plus-ae/mupen64plus-ae" profiled_date: "2026-08-12" -source_commit: "25cfb7a0cf27517f796fb2baf92606f3ae9417f3" +source_commit: "33bf7021549d7873e976884370fbd1a8e7333bc7" core_version: "3.0.249 (beta)" display_name: "Nintendo - Nintendo 64 (Mupen64Plus AE)" cores: @@ -25,94 +25,94 @@ notes: | audio, touchscreen and raphnet input plugins, and a miniupnp bridge for netplay (settings.gradle:1). ES-DE launches it for both n64 and n64dd with an ACTION_VIEW intent carrying a storage access uri, which the splash screen - forwards to the gallery (AndroidManifest.xml:80-101, SplashActivity.java:134). + forwards to the gallery (app/src/main/AndroidManifest.xml:80-101, app/src/main/java/paulscode/android/mupen64plusae/SplashActivity.java:134). Cartridge boot needs no boot ROM. The PIF boot sequence is simulated - (device/pif/bootrom_hle.c:48, entered from device/r4300/interrupt.c:445,496 - and main/main.c:1875) and the CIC-NUS-6105 challenge is answered by an - algorithm rather than a stored table (device/pif/n64_cic_nus_6105.c:93). + (mupen64plus-core/upstream/src/device/pif/bootrom_hle.c:48, entered from mupen64plus-core/upstream/src/device/r4300/interrupt.c:445,496 + and mupen64plus-core/upstream/src/main/main.c:1875) and the CIC-NUS-6105 challenge is answered by an + algorithm rather than a stored table (mupen64plus-core/upstream/src/device/pif/n64_cic_nus_6105.c:93). Nothing fills the PIF ROM window from a file. Which 64DD IPL is used is not decided by the code. Two settings hold a path and both end up as the same working file dd_rom.n64: the global one, titled 64DD IPL (J), read when the launched file is itself a disk, and a per game one, titled 64DD IPL, read when a cartridge is launched with a disk attached - and only while the support64dd toggle is on (CoreService.java:606-620, - GlobalPrefs.java:421,727, GamePrefs.java:579-599, - CoreInterface.java:144,231,459-488). The core offers a callback that would + and only while the support64dd toggle is on (app/src/main/java/paulscode/android/mupen64plusae/jni/CoreService.java:606-620, + app/src/main/java/paulscode/android/mupen64plusae/persistent/GlobalPrefs.java:421,727, app/src/main/java/paulscode/android/mupen64plusae/persistent/GamePrefs.java:579-599, + app/src/main/java/paulscode/android/mupen64plusae/jni/CoreInterface.java:144,231,459-488). The core offers a callback that would name the image per disk region and the front end leaves it null - (CoreInterface.java:223, main/main.c:1082-1086), so whichever image sits in + (app/src/main/java/paulscode/android/mupen64plusae/jni/CoreInterface.java:223, mupen64plus-core/upstream/src/main/main.c:1082-1086), so whichever image sits in the slot is the one loaded. A disk is recognised only when its system data header matches and carries one of three region words, 0xe848d316 for Japan, 0x2263ee56 for the United States and 0x00000000 for development - (RomHeader.java:180-220); the word sets a country code used for the ROM + (app/src/main/java/paulscode/android/mupen64plusae/util/RomHeader.java:180-220); the word sets a country code used for the ROM database and cheat lookup, never for picking the IPL. Launching a bare disk with the global slot empty stops before the core starts - (CoreService.java:638-639), and since disk only games still need a cartridge + (app/src/main/java/paulscode/android/mupen64plusae/jni/CoreService.java:638-639), and since disk only games still need a cartridge image the application feeds the m64p_test_rom.v64 asset in its place - (CoreService.java:643-644). Disk content inside a .zip or .7z is unpacked to - the working directory first (CoreInterface.java:490-522). + (app/src/main/java/paulscode/android/mupen64plusae/jni/CoreService.java:643-644). Disk content inside a .zip or .7z is unpacked to + the working directory first (app/src/main/java/paulscode/android/mupen64plusae/jni/CoreInterface.java:490-522). Transfer Pak carts come from four per player path settings copied into the working directory as playerN_gb_rom.gb and playerN_gb_ram.gb - (CoreService.java:566-575, GamePrefs.java:933-960, - CoreInterface.java:142-143,175-189,235-236,420-457). The core rejects a cart - under 32 KiB and an unknown type byte at 0x147 (device/gb/gb_cart.c:996-1009) + (app/src/main/java/paulscode/android/mupen64plusae/jni/CoreService.java:566-575, app/src/main/java/paulscode/android/mupen64plusae/persistent/GamePrefs.java:933-960, + app/src/main/java/paulscode/android/mupen64plusae/jni/CoreInterface.java:142-143,175-189,235-236,420-457). The core rejects a cart + under 32 KiB and an unknown type byte at 0x147 (mupen64plus-core/upstream/src/device/gb/gb_cart.c:996-1009) and fixes no name, size or hash, so neither the cart nor its save carries an entry here. Seven data files ship inside the package, each keyed to a version number and unpacked on first start into the private files directory, which is also what - the core is told is SharedDataPath (ExtractAssetsOrCleanupTask.java:63-73, - SplashActivity.java:90,399-402, AppData.java:391-403, - NativeConfigFiles.java:111). mupen64plus.ini is the ROM database, read by the - core (main/rom.c:473-490 from api/frontend.c:106) and by the gallery - (SplashActivity.java:447). mupencheat.default is copied over + the core is told is SharedDataPath (app/src/main/java/paulscode/android/mupen64plusae/task/ExtractAssetsOrCleanupTask.java:63-73, + app/src/main/java/paulscode/android/mupen64plusae/SplashActivity.java:90,399-402, app/src/main/java/paulscode/android/mupen64plusae/persistent/AppData.java:391-403, + app/src/main/java/paulscode/android/mupen64plusae/jni/NativeConfigFiles.java:111). mupen64plus.ini is the ROM database, read by the + core (mupen64plus-core/upstream/src/main/rom.c:473-490 from mupen64plus-core/upstream/src/api/frontend.c:106) and by the gallery + (app/src/main/java/paulscode/android/mupen64plusae/SplashActivity.java:447). mupencheat.default is copied over Profiles/customCheats.txt into mupencheat.txt and parsed in Java - (SplashActivity.java:443, CheatUtils.java:88-96, GamePrefsActivity.java:548); + (app/src/main/java/paulscode/android/mupen64plusae/SplashActivity.java:443, app/src/main/java/paulscode/android/mupen64plusae/cheat/CheatUtils.java:88-96, app/src/main/java/paulscode/android/mupen64plusae/persistent/GamePrefsActivity.java:548); the core's own cheat.c opens no file. font.ttf is reached by GLideN64 only after /system/fonts/DroidSans.ttf fails, that name being what the front end - writes as the configured font (TextDrawer.cpp:209-210,222-228, - NativeConfigFiles.java:291); the core's OSD, the other upstream reader of - that name (osd/osd.c:40), is absent from the Android source list - (mupen64plus-core.mk:24-101). RiceVideoLinux.ini holds rice's per ROM + writes as the configured font (mupen64plus-video-gliden64/upstream/src/TextDrawer.cpp:209-210,222-228, + app/src/main/java/paulscode/android/mupen64plusae/jni/NativeConfigFiles.java:291); the core's OSD, the other upstream reader of + that name (mupen64plus-core/upstream/src/osd/osd.c:40), is absent from the Android source list + (mupen64plus-core/mupen64plus-core.mk:24-101). RiceVideoLinux.ini holds rice's per ROM settings (rice Config.cpp:38,933-953), Glide64mk2.ini glide64mk2's (glide64mk2 Main.cpp:1581-1586), and gln64.conf with gln64rom.conf gln64's global and per ROM settings (gln64 Config.cpp:245-252,296-302). Two more assets are read straight out of the package and never unpacked: m64p_test_rom.v64, and GLideN64.custom.ini, whose per ROM overrides the front - end reads itself and writes into mupen64plus.cfg (AppData.java:396-397, - ConfigFile.java:225-229, NativeConfigFiles.java:223,227). GLideN64 also asks + end reads itself and writes into mupen64plus.cfg (app/src/main/java/paulscode/android/mupen64plusae/persistent/AppData.java:396-397, + app/src/main/java/paulscode/android/mupen64plusae/persistent/ConfigFile.java:225-229, app/src/main/java/paulscode/android/mupen64plusae/jni/NativeConfigFiles.java:223,227). GLideN64 also asks the core for GLideN64.custom.ini in SharedDataPath, where it was never placed, so that native lookup finds nothing - (mupenplus/Config_mupenplus.cpp:332-344). The touchscreen skins, the shader + (mupen64plus-video-gliden64/upstream/src/mupenplus/Config_mupenplus.cpp:332-344). The touchscreen skins, the shader sources and the controller, touchscreen and emulation profile templates are - used from the package the same way (AppData.java:392,401-403, - GlobalPrefs.java:530, ShaderLoader.java:85). + used from the package the same way (app/src/main/java/paulscode/android/mupen64plusae/persistent/AppData.java:392,401-403, + app/src/main/java/paulscode/android/mupen64plusae/persistent/GlobalPrefs.java:530, app/src/main/java/paulscode/android/mupen64plusae/game/ShaderLoader.java:85). Optional content with no canonical artifact: hi-res texture packs under the - user data directory, imported from a user archive (GlobalPrefs.java:469, + user data directory, imported from a user archive (app/src/main/java/paulscode/android/mupen64plusae/persistent/GlobalPrefs.java:469, ExtractTexturesFragment.java), the _HIRESTEXTURES.htc and .hts caches the plugin builds from them, read back for their storage flag - (NativeConfigFiles.java:365-376), customCheats.txt, custom touchscreen skins - and cover art (GlobalPrefs.java:481,486-487), and alp_screen.vert with + (app/src/main/java/paulscode/android/mupen64plusae/jni/NativeConfigFiles.java:365-376), customCheats.txt, custom touchscreen skins + and cover art (app/src/main/java/paulscode/android/mupen64plusae/persistent/GlobalPrefs.java:481,486-487), and alp_screen.vert with alp_screen.frag, which angrylion-plus opens as working directory relative paths before falling back to its embedded shaders (angrylion-plus output/vdac.c:119-127,167-174,246-247). Written rather than obtained: mupen64plus.cfg and the plugin sections in it, the mempak, eeprom, flashram and sram saves given default content when absent - (main/main.c:1015-1078,1619-1622) and the 64DD disk save in whichever of the - two formats SaveDiskFormat selects (main/main.c:365,1176-1235), savestates + (mupen64plus-core/upstream/src/main/main.c:1015-1078,1619-1622) and the 64DD disk save in whichever of the + two formats SaveDiskFormat selects (mupen64plus-core/upstream/src/main/main.c:365,1176-1235), savestates with the rcheevos progress file written beside them - (CoreService.java:335,407-413), screenshots, the texture dump and cache + (app/src/main/java/paulscode/android/mupen64plusae/jni/CoreService.java:335,407-413), screenshots, the texture dump and cache directories, the GLideN64 shader cache and romInfoCache.cfg - (GlobalPrefs.java:466-487, NativeConfigFiles.java:108-111). + (app/src/main/java/paulscode/android/mupen64plusae/persistent/GlobalPrefs.java:466-487, app/src/main/java/paulscode/android/mupen64plusae/jni/NativeConfigFiles.java:108-111). Two files in the tree this build never reads. cxd4's rsp_conf.bin: its reader is the zilmar variant of update_conf behind #if !defined(M64P_PLUGIN_API), - and the build defines that macro (mupen64plus-rsp-cxd4.mk:8), so the variant + and the build defines that macro (mupen64plus-rsp-cxd4/mupen64plus-rsp-cxd4.mk:8), so the variant compiled takes its settings from the core config API and ignores the filename it is handed (mupen64plus-rsp-cxd4 module.c:83-93,239,637-659). And parallel-rdp's shader directory, registered as a filesystem protocol only diff --git a/emulators/native32emu.yml b/emulators/native32emu.yml index 3a1f8c82..8dfcf2d2 100644 --- a/emulators/native32emu.yml +++ b/emulators/native32emu.yml @@ -4,7 +4,7 @@ core_classification: pure_libretro source: "https://github.com/AloysHF/Native32Emu" upstream: "https://github.com/AloysHF/Native32Emu" profiled_date: "2026-09-03" -source_commit: "f445ea34ba42ecb5b3d7fe7b5f28d544a8b0a2ea" +source_commit: "59a918ac2a001dbae9cb279fe95e75f830793220" core_version: "1.3.0" display_name: "Sunplus - Native32 (Native32Emu)" cores: diff --git a/emulators/nekop2.yml b/emulators/nekop2.yml index feb79ecc..15f1db0b 100644 --- a/emulators/nekop2.yml +++ b/emulators/nekop2.yml @@ -4,7 +4,7 @@ core_classification: community_fork source: "https://github.com/libretro/libretro-meowPC98" upstream: "https://np2.yui.ne.jp (dead; source preserved in libretro repo)" profiled_date: "2026-03-24" -source_commit: "0ba5965247834317fd1026dc19d302677849b9e4" +source_commit: "5fdbb2187f6b14ca7bf668dd52b36c820b989995" core_version: "0.86" display_name: "NEC - PC-98 (Neko Project II)" cores: [nekop2] @@ -67,7 +67,7 @@ files: PC-98 font bitmap (288 KB). Required for correct Japanese kanji display. Without this, only basic ASCII renders using built-in 8x8 data. FONT.ROM (V98 format) is also accepted. - source_ref: "libretro/libretro.c:862, font/font.c:113, font/fontdata.c:12" + source_ref: "libretro/libretro.c:872, font/font.c:113, font/fontdata.c:12" # -- Sound BIOS ROM -- # Loaded by soundrom_load() via loadsoundrom() in sound/soundrom.c:21-55. diff --git a/emulators/nestopia.yml b/emulators/nestopia.yml index 761c1d01..317c2528 100644 --- a/emulators/nestopia.yml +++ b/emulators/nestopia.yml @@ -43,7 +43,7 @@ files: validation: [crc32] md5: "ca30b50f880eb660a320674ed365ef7a" sha1: "57fe1bdee955bb48d357e463ccbf129496930b62" - source_ref: "libretro/libretro.cpp:1730-1758 (FDS load), source/core/NstFds.cpp:61-131 (Bios class, CRC32 validation)" + source_ref: "libretro/libretro.cpp:2111-2139 (FDS load), source/core/NstFds.cpp:57-127 (Bios class, CRC32 validation)" note: "Mapped at 0xE000-0xFFFF (8 KB). retro_load_game returns false if missing when loading .fds files. CRC32 checked: Famicom 0x5E607DCF, Twin Famicom 0x4DF24A6C." # --- NES game database (optional, overrides baked-in copy) --- @@ -52,7 +52,7 @@ files: description: "Nestopia game database for region and mapper autodetection" required: false hle_fallback: true - source_ref: "libretro/libretro.cpp:1682-1712 (database load), libretro/nstdatabase.hpp (baked-in fallback)" + source_ref: "libretro/libretro.cpp:2063-2093 (database load), libretro/nstdatabase.hpp (baked-in fallback)" note: "XML database matching games by SHA1+CRC32. Used for region, mapper, mirroring, and 4-player adapter detection. Built-in fallback exists so this file is optional." # --- Custom palette (optional, core option nestopia_palette = Custom) --- @@ -62,7 +62,7 @@ files: required: false hle_fallback: true size: 192 - source_ref: "libretro/libretro.cpp:1660-1681 (palette load)" + source_ref: "libretro/libretro.cpp:2041-2062 (palette load)" note: "64 RGB triplets (64 x 3 bytes = 192 bytes). Loaded unconditionally at startup; applied only when nestopia_palette core option is set to Custom. Falls back to built-in Royaltea palette. Multiple valid palettes exist so no canonical hash." # --- ADPCM audio samples (optional, game-specific) --- @@ -71,32 +71,32 @@ files: description: "Moero Pro Yakyuu audio samples (16 .wav files, 00.wav-15.wav)" required: false category: game_data - source_ref: "libretro/libretro.cpp:196-242 (load_wav), libretro/libretro.cpp:302 (LOAD_SAMPLE_MOERO_PRO_YAKYUU callback), source/core/NstSoundPlayer.hpp:53 (16 samples)" + source_ref: "libretro/libretro.cpp:183-391 (load_wav), libretro/libretro.cpp:451 (LOAD_SAMPLE_MOERO_PRO_YAKYUU callback), source/core/NstSoundPlayer.hpp:49 (16 samples)" - name: "nestopia/samples/moepro88/" system: nintendo-nes description: "Moero Pro Yakyuu '88 audio samples (20 .wav files, 00.wav-19.wav)" required: false category: game_data - source_ref: "libretro/libretro.cpp:196-242 (load_wav), libretro/libretro.cpp:304 (LOAD_SAMPLE_MOERO_PRO_YAKYUU_88 callback), source/core/NstSoundPlayer.hpp:54 (20 samples)" + source_ref: "libretro/libretro.cpp:183-391 (load_wav), libretro/libretro.cpp:453 (LOAD_SAMPLE_MOERO_PRO_YAKYUU_88 callback), source/core/NstSoundPlayer.hpp:50 (20 samples)" - name: "nestopia/samples/mptennis/" system: nintendo-nes description: "Moero Pro Tennis audio samples (19 .wav files, 00.wav-18.wav)" required: false category: game_data - source_ref: "libretro/libretro.cpp:196-242 (load_wav), libretro/libretro.cpp:306 (LOAD_SAMPLE_MOERO_PRO_TENNIS callback), source/core/NstSoundPlayer.hpp:55 (19 samples)" + source_ref: "libretro/libretro.cpp:183-391 (load_wav), libretro/libretro.cpp:455 (LOAD_SAMPLE_MOERO_PRO_TENNIS callback), source/core/NstSoundPlayer.hpp:51 (19 samples)" - name: "nestopia/samples/terao/" system: nintendo-nes description: "Terao no Dosukoi Oozumou audio samples (6 .wav files, 00.wav-05.wav)" required: false category: game_data - source_ref: "libretro/libretro.cpp:196-242 (load_wav), libretro/libretro.cpp:308 (LOAD_SAMPLE_TERAO_NO_DOSUKOI_OOZUMOU callback), source/core/NstSoundPlayer.hpp:56 (6 samples)" + source_ref: "libretro/libretro.cpp:183-391 (load_wav), libretro/libretro.cpp:457 (LOAD_SAMPLE_TERAO_NO_DOSUKOI_OOZUMOU callback), source/core/NstSoundPlayer.hpp:52 (6 samples)" - name: "nestopia/samples/ftaerobi/" system: nintendo-nes description: "Aerobics Studio audio samples (8 .wav files, 00.wav-07.wav)" required: false category: game_data - source_ref: "libretro/libretro.cpp:196-242 (load_wav), libretro/libretro.cpp:310 (LOAD_SAMPLE_AEROBICS_STUDIO callback), source/core/NstSoundPlayer.hpp:57 (8 samples)" + source_ref: "libretro/libretro.cpp:183-391 (load_wav), libretro/libretro.cpp:459 (LOAD_SAMPLE_AEROBICS_STUDIO callback), source/core/NstSoundPlayer.hpp:53 (8 samples)" diff --git a/emulators/nicaiemu.yml b/emulators/nicaiemu.yml index f32a1160..de220ba9 100644 --- a/emulators/nicaiemu.yml +++ b/emulators/nicaiemu.yml @@ -4,7 +4,7 @@ core_classification: pure_libretro source: "https://github.com/AloysHF/NicaiEmu" upstream: "https://github.com/AloysHF/NicaiEmu" profiled_date: "2026-09-03" -source_commit: "d0b1a959e3756209e6f56b167bb6e5509805b275" +source_commit: "43d016098be7e468cabfd46fa6b45047637d6c3a" core_version: "0.1.0" display_name: "MStar - Nicai (NicaiEmu)" cores: diff --git a/emulators/np2kai.yml b/emulators/np2kai.yml index e8d89901..e06c46df 100644 --- a/emulators/np2kai.yml +++ b/emulators/np2kai.yml @@ -46,7 +46,7 @@ files: note: > PC-9801 system BIOS ROM (96 KB). The core boots without it using the built-in BIOS simulator, but some software requires the real BIOS. - source_ref: "bios/bios.c:430-436, common/strres.c:60" + source_ref: "bios/bios.c:440-446, common/strres.c:60" # -- Font file -- # Path set in libretro.c:1813 as "/np2kai/font.bmp". @@ -62,7 +62,7 @@ files: PC-98 font bitmap. Required for correct Japanese kanji display. Without this, only basic ASCII renders using built-in 8x8 data. FONT.ROM (V98 format) is also accepted. - source_ref: "sdl/libretro/libretro.c:1813, font/font.c:86-125, font/fontdata.c:11" + source_ref: "sdl/libretro/libretro.c:1830, font/font.c:86-125, font/fontdata.c:11" # -- Sound BIOS ROM -- # Loaded by soundrom_load() in soundrom.c:93-106 via loadsoundrom(). @@ -90,42 +90,42 @@ files: required: false aliases: ["2608_BD.WAV"] note: "YM2608 OPNA rhythm sample: bass drum" - source_ref: "sound/rhythmc.c:11,60-71, sound/fmgen/fmgen_opna.cpp:1431" + source_ref: "sound/rhythmc.c:11, 60-71, sound/fmgen/fmgen_opna.cpp:1433" - name: "2608_sd.wav" path: "np2kai/2608_sd.wav" required: false aliases: ["2608_SD.WAV"] note: "YM2608 OPNA rhythm sample: snare drum" - source_ref: "sound/rhythmc.c:12, sound/fmgen/fmgen_opna.cpp:1432" + source_ref: "sound/rhythmc.c:12, sound/fmgen/fmgen_opna.cpp:1434" - name: "2608_top.wav" path: "np2kai/2608_top.wav" required: false aliases: ["2608_TOP.WAV"] note: "YM2608 OPNA rhythm sample: top cymbal" - source_ref: "sound/rhythmc.c:13, sound/fmgen/fmgen_opna.cpp:1432" + source_ref: "sound/rhythmc.c:13, sound/fmgen/fmgen_opna.cpp:1434" - name: "2608_hh.wav" path: "np2kai/2608_hh.wav" required: false aliases: ["2608_HH.WAV"] note: "YM2608 OPNA rhythm sample: hi-hat" - source_ref: "sound/rhythmc.c:14, sound/fmgen/fmgen_opna.cpp:1432" + source_ref: "sound/rhythmc.c:14, sound/fmgen/fmgen_opna.cpp:1434" - name: "2608_tom.wav" path: "np2kai/2608_tom.wav" required: false aliases: ["2608_TOM.WAV"] note: "YM2608 OPNA rhythm sample: tom" - source_ref: "sound/rhythmc.c:15, sound/fmgen/fmgen_opna.cpp:1432" + source_ref: "sound/rhythmc.c:15, sound/fmgen/fmgen_opna.cpp:1434" - name: "2608_rim.wav" path: "np2kai/2608_rim.wav" required: false aliases: ["2608_RIM.WAV", "2608_RYM.WAV"] note: "YM2608 OPNA rhythm sample: rim shot. fmgen also accepts 2608_RYM.WAV." - source_ref: "sound/rhythmc.c:16, sound/fmgen/fmgen_opna.cpp:1431-1441" + source_ref: "sound/rhythmc.c:16, sound/fmgen/fmgen_opna.cpp:1433-1443" # -- IDE BIOS ROM -- # Loaded by ideio.c:1913-1931. Tried in order: ide.rom, d8000.rom, @@ -140,7 +140,7 @@ files: note: > IDE controller BIOS ROM (8 KB). For IDE HDD boot support. Without this, a simulated IDE BIOS is used. - source_ref: "cbus/ideio.c:1913-1941" + source_ref: "cbus/ideio.c:1944-1972" # -- SCSI BIOS ROM -- # Loaded by scsiio.c:219. 16 KB (0x4000). Falls back to scsibios[] stub. diff --git a/emulators/nxengine.yml b/emulators/nxengine.yml index d041221e..79c8c01c 100644 --- a/emulators/nxengine.yml +++ b/emulators/nxengine.yml @@ -17,23 +17,23 @@ notes: | The core requires the freeware Cave Story distribution placed in {system_dir}/nxengine/. When launched without content, it looks for - Doukutsu.exe there (libretro.cpp:257-262). When launched with a .exe - content file, it uses the parent directory of that file (libretro.cpp:240). + Doukutsu.exe there (nxengine/libretro/libretro.cpp:273-278). When launched with a .exe + content file, it uses the parent directory of that file (nxengine/libretro/libretro.cpp:256). At startup (main.cpp:75-90), the core opens Doukutsu.exe and extracts: ORG music (extractorg.c), PXT sound effects (extractpxt.c), stage tile attributes (extractstages.c), 18 credit BMPs + pixel.bmp (endpic/), - and the wavetable (cachefiles.c:464-485). All kept in memory. + and the wavetable (nxengine/extract-auto/cachefiles.c:464-485). All kept in memory. The data/ directory (399 files from the freeware release) is loaded into - an in-memory cache at init (cachefiles.c:38-439, 497-540). All subsequent + an in-memory cache at init (nxengine/extract-auto/cachefiles.c:38-439, 497-540). All subsequent file access goes through this cache. The core verifies data/ by checking for data/npc.tbl (main.cpp:47-58). The font is compiled-in (bitmap_font.h). The upstream standalone version uses font.ttf via SDL_ttf. - Valid content extension: .exe (libretro.cpp:112). + Valid content extension: .exe (nxengine/libretro/libretro.cpp:128). files: - name: "Doukutsu.exe" @@ -45,7 +45,7 @@ files: size: 1478656 md5: "38695d3d69d7a0ada8178072dad4c58b" sha1: "bb2d0441e073da9c584f23c2ad8c7ab8aac293bf" - source_ref: "main.cpp:77-78 (opened for extraction), nxengine/libretro/libretro.cpp:258 (existence check)" + source_ref: "main.cpp:77-78 (opened for extraction), nxengine/libretro/libretro.cpp:274 (existence check)" note: "Placed in system/nxengine/. The core extracts ORG music, PXT sounds, stage tile attributes, BMP graphics, and wavetable from this binary at each launch." - name: "data/" diff --git a/emulators/openmsx.yml b/emulators/openmsx.yml index 1191b2a9..4e41ab45 100644 --- a/emulators/openmsx.yml +++ b/emulators/openmsx.yml @@ -3,7 +3,7 @@ type: standalone source: "https://github.com/openMSX/openMSX" upstream: "https://github.com/openMSX/openMSX" profiled_date: "2026-03-26" -source_commit: "632d46cc00015bc37be6cbb63cacb70e90434094" +source_commit: "74b12f3c9305264c36ce45a744b43f4609ae71c7" core_version: "21.0" display_name: "MSX / ColecoVision / Spectravideo (openMSX)" cores: diff --git a/emulators/opera.yml b/emulators/opera.yml index b663cc01..0ccaa1c3 100644 --- a/emulators/opera.yml +++ b/emulators/opera.yml @@ -6,7 +6,7 @@ cores: [opera] source: "https://github.com/libretro/opera-libretro" upstream: "https://sourceforge.net/projects/freedo/" profiled_date: "2026-03-24" -source_commit: "636a8dd6340bce7073168ddefd29841fc5e2d213" +source_commit: "a501a278d057b952d1ad6165549c59ab178ca497" core_version: "1.0.0" display_name: "The 3DO Company - 3DO (Opera)" systems: diff --git a/emulators/parallel-launcher.yml b/emulators/parallel-launcher.yml index 53a78a11..f6f56c34 100644 --- a/emulators/parallel-launcher.yml +++ b/emulators/parallel-launcher.yml @@ -4,7 +4,7 @@ core_classification: launcher source: "https://gitlab.com/parallel-launcher/parallel-launcher" upstream: "https://gitlab.com/parallel-launcher/parallel-n64" profiled_date: "2026-08-08" -source_commit: "8f2924c213f7c98118ab5a86fc21c452b77a7057" +source_commit: "8dc2a83770c57bc00e1b1fae0aed71f2120cc875" upstream_commit: "11574ac28d27faaaef4b5bc3c1ca50fb2ed98b83" core_version: "9.0.5" display_name: "Nintendo - Nintendo 64 (Parallel Launcher)" @@ -18,42 +18,42 @@ systems: notes: | Qt front end that installs and drives its own RetroArch and its own fork of ParaLLEl N64. RetroArch is fetched from buildbot.libretro.com as a stable - release archive (retroarch-updater.cpp:24-30). The core, + release archive (src/updaters/retroarch-updater.cpp:24-30). The core, parallel_n64_next_libretro, is fetched from parallel-launcher.ca - (updates.cpp:190-213) into retro-data/cores. Core version at this profiling + (src/core/updates.cpp:190-213) into retro-data/cores. Core version at this profiling is 2.28. Neither lands in a user RetroArch install. The system directory the core reads from is retro-data/system under the launcher's own data directory, - written into a private retroarch.cfg on every launch (retroarch.cpp:100-129). + written into a private retroarch.cfg on every launch (src/core/retroarch.cpp:100-129). RetroArch is spawned as `-L --config ` - (retroarch.cpp:760-781). The launcher also rewrites the core's .info into - retro-data/info at every startup (main.cpp:149-156), which is how RetroArch + (src/core/retroarch.cpp:760-781). The launcher also rewrites the core's .info into + retro-data/info at every startup (src/main.cpp:149-156), which is how RetroArch learns of the 64DD firmware entry. Content is restricted to cartridge formats at every entry point: command line - and file associations take .z64 .n64 .v64 .bps (main.cpp:65-94), the add-ROM - dialog the same (main-window.cpp:607-616), the library scanner *.[nvz]64 - (rom-finder.cpp:271-278), romhacking.com downloads .z64 (sync.cpp:238). A .bps - is patched to a cartridge ROM before launch (play.cpp:721-757). No --subsystem + and file associations take .z64 .n64 .v64 .bps (src/main.cpp:65-94), the add-ROM + dialog the same (src/ui/main-window.cpp:607-616), the library scanner *.[nvz]64 + (src/core/rom-finder.cpp:271-278), romhacking.com downloads .z64 (src/rhdc/core/sync.cpp:238). A .bps + is patched to a cartridge ROM before launch (src/ui/play.cpp:721-757). No --subsystem argument is passed either, so neither route into the core's disk path opens: - the header check at libretro.c:545-548 and the cart-and-disk subsystem at - libretro.c:104-114. + the header check at libretro/libretro.c:545-548 and the cart-and-disk subsystem at + libretro/libretro.c:104-114. Graphics plugin is chosen per ROM among ParaLLEl-RDP, Glide64, angrylion, - GLideN64, Rice, glN64 and OGRE (settings.hpp:13-22, retroarch.cpp:55-64). + GLideN64, Rice, glN64 and OGRE (src/core/settings.hpp:13-22, src/core/retroarch.cpp:55-64). Selecting glN64 also reads gles2n64.conf from the system directory root at plugin init, and writes it out with defaults when it is absent - (glN64Config.c:246-254, Config_WriteConfig at glN64Config.c:95). + (gles2n64/src/glN64Config.c:246-254, Config_WriteConfig at gles2n64/src/glN64Config.c:95). Three paths the fork computes but never reads. GLideN64 builds without FreeType here, so the font file name it resolves for on-screen text is - assigned and dropped (TextDrawer.cpp:145-188). Its per-game ini is compiled in + assigned and dropped (mupen64plus-video-gliden64/src/TextDrawer.cpp:145-188). Its per-game ini is compiled in as a header and the external copy is skipped because the launcher writes INI - Behaviour as disabled on every launch (retroarch.cpp:468, - Config_mupenplus.cpp:170-241, libretro.c:2030-2040). Rice's ini reader and - writer sit behind #if 0 (RiceConfig.cpp:453-463, Video.cpp:327-333). + Behaviour as disabled on every launch (src/core/retroarch.cpp:468, + mupen64plus-video-gliden64/src/mupenplus/Config_mupenplus.cpp:170-241, libretro/libretro.c:2030-2040). Rice's ini reader and + writer sit behind #if 0 (gles2rice/src/RiceConfig.cpp:453-463, gles2rice/src/Video.cpp:327-333). files: - name: "64DD_IPL.bin" diff --git a/emulators/parallel_n64.yml b/emulators/parallel_n64.yml index c38a6489..129008ac 100644 --- a/emulators/parallel_n64.yml +++ b/emulators/parallel_n64.yml @@ -16,12 +16,12 @@ files: required: false description: "64DD IPL ROM" note: "Only loaded when a 64DD disk image (.ndd) is present via subsystem API. Core fails to load disk games without it." - source_ref: "libretro/libretro.c:723" + source_ref: "libretro/libretro.c:848" notes: hle_available: true hle_note: > - PIF boot ROM is fully HLE'd (mupen64plus-core/src/device/pif/bootrom_hle.c:48). CIC + PIF boot ROM is fully HLE'd (mupen64plus-core/src/device/pif/bootrom_hle.c:51). CIC challenge/response handled in software (n64_cic_nus_6105.c). No BIOS files needed for standard cartridge games. dd_note: > diff --git a/emulators/pcem.yml b/emulators/pcem.yml index 3f3e3907..21ae0162 100644 --- a/emulators/pcem.yml +++ b/emulators/pcem.yml @@ -4,7 +4,7 @@ core_classification: community_fork source: "https://github.com/libretro/libretro-pcem" upstream: "https://github.com/sarah-walker-pcem/pcem" profiled_date: "2026-03-24" -source_commit: "1955c2127990cfdf4c594b35b466e8503d626fa7" +source_commit: "95890058d3cb4b07c455cd1d16e010a115300cee" core_version: "v11 (PCem-mooch, based on PCem v10.1)" display_name: "PC (PCem)" cores: [pcem] diff --git a/emulators/pcsx2.yml b/emulators/pcsx2.yml index bb3876ac..2d2ed8f0 100644 --- a/emulators/pcsx2.yml +++ b/emulators/pcsx2.yml @@ -7,7 +7,7 @@ upstream: "https://github.com/PCSX2/pcsx2" cores: - pcsx2 profiled_date: "2026-03-30" -source_commit: "5c611f85e13ba250a69c155c678482b219b10d48" +source_commit: "aaf03c18b677905b3df4568d14efee7f58734049" core_version: "Git" display_name: "Sony - PlayStation 2 (PCSX2)" systems: [sony-playstation-2] @@ -57,19 +57,19 @@ files: path: pcsx2/resources/GameIndex.yaml required: false mode: libretro - source_ref: "pcsx2/GameDatabase.cpp:46, pcsx2/GameDatabase.cpp:888" + source_ref: "pcsx2/GameDatabase.cpp:46, pcsx2/GameDatabase.cpp:896" note: "Game compatibility database. OSD warning if missing." - name: cheats_ws.zip path: pcsx2/resources/cheats_ws.zip required: false mode: libretro - source_ref: "pcsx2/VMManager.cpp:345-358" + source_ref: "pcsx2/VMManager.cpp:346-359" note: "Widescreen patches archive." - name: cheats_ni.zip path: pcsx2/resources/cheats_ni.zip required: false mode: libretro - source_ref: "pcsx2/VMManager.cpp:380-393" + source_ref: "pcsx2/VMManager.cpp:381-394" note: "No-interlacing patches archive." diff --git a/emulators/pcsx2x6.yml b/emulators/pcsx2x6.yml index 37673253..8143d0cb 100644 --- a/emulators/pcsx2x6.yml +++ b/emulators/pcsx2x6.yml @@ -5,7 +5,7 @@ bios_mode: agnostic source: "https://github.com/PS2Homebrew-arcade/pcsx2x6" upstream: "https://github.com/PCSX2/pcsx2" profiled_date: "2026-08-08" -source_commit: "e69b265ef4bc98565deffb7c4a4b7d08143d4cf9" +source_commit: "55e3b5a46faf0775b59109ba7d2db53d0268ee0f" upstream_commit: "5c611f85e13ba250a69c155c678482b219b10d48" core_version: "v0.2.20" display_name: "Namco - System 246 / 256 (PCSX2x6)" diff --git a/emulators/pcsx_rearmed.yml b/emulators/pcsx_rearmed.yml index 6a08d893..74b2499b 100644 --- a/emulators/pcsx_rearmed.yml +++ b/emulators/pcsx_rearmed.yml @@ -4,7 +4,7 @@ core_classification: embedded_hle source: "https://github.com/libretro/pcsx_rearmed" upstream: "https://github.com/notaz/pcsx_rearmed" profiled_date: "2026-03-25" -source_commit: "da2cb8ecd17fd0932ab6d94774c0522beebce6e3" +source_commit: "05c4dbfa8e4d994820b278345316ce8cbed4209f" core_version: "r25" display_name: "Sony - PlayStation (PCSX ReARMed)" cores: [pcsx_rearmed, pcsx_rearmed_neon, pcsx_rearmed_interpreter] diff --git a/emulators/prboom.yml b/emulators/prboom.yml index 34619552..da38be46 100644 --- a/emulators/prboom.yml +++ b/emulators/prboom.yml @@ -23,7 +23,7 @@ notes: | in the repository root. Without prboom.wad the core falls back to hardcoded internal defaults - (d_main.c:1073-1074), so the file is technically optional but expected + (src/d_main.c:1084-1085), so the file is technically optional but expected for correct rendering of menus, HUD digits, and extended features. File search order (libretro.c I_FindFile, line 1742): @@ -33,7 +33,7 @@ notes: | 4. Parent folders of WAD directory (recursive, if enabled) The core accepts .wad, .iwad, .pwad, and .lmp extensions. Game IWADs - it recognizes (d_main.c:140-152): doom2f.wad, doom2.wad, plutonia.wad, + it recognizes (src/d_main.c:141-153): doom2f.wad, doom2.wad, plutonia.wad, tnt.wad, freedoom2.wad, doom.wad, doomu.wad, freedoom1.wad, freedoom.wad, doom1.wad. @@ -51,5 +51,5 @@ files: md5: "72ae1b47820fcc93cc0df9c428d0face" sha1: "5f4aed208301449c2e9514edfd325fe9dead76fa" crc32: "a5751b99" - source_ref: "src/d_main.c:1402-1440 (PACKAGE .wad load), libretro/libretro.c:3974-4050 (I_FindFile search), src/config.h:39 (PACKAGE=prboom)" + source_ref: "src/d_main.c:1413-1451 (PACKAGE .wad load), libretro/libretro.c:4053-4129 (I_FindFile search), src/config.h:39 (PACKAGE=prboom)" note: "Searched in system/prboom/ then system/. Falls back to internal defaults if missing, but menus and HUD may render incorrectly without it." diff --git a/emulators/primehack.yml b/emulators/primehack.yml index 8e5249de..a3a11da1 100644 --- a/emulators/primehack.yml +++ b/emulators/primehack.yml @@ -4,7 +4,7 @@ core_classification: enhanced_fork source: "https://github.com/shiiion/dolphin" upstream: "https://github.com/dolphin-emu/dolphin" profiled_date: "2026-03-26" -source_commit: "5e7cc91d8c9a43ca189b288937f65c9763af9c22" +source_commit: "53f53e0f5bad27ad62a807cb93b136d84f68777f" core_version: "1.0.8" display_name: "PrimeHack (Dolphin fork for Metroid Prime)" cores: @@ -184,7 +184,7 @@ files: mode: standalone hle_fallback: true note: "Wii System Menu WAD. Installed to NAND via Tools > Install WAD, needed for Wii Menu boot" - source_ref: "Source/Core/DolphinQt/MenuBar.cpp:331, Source/Core/DolphinQt/MenuBar.cpp:1461-1469" + source_ref: "Source/Core/DolphinQt/MenuBar.cpp:335, Source/Core/DolphinQt/MenuBar.cpp:1582-1590" # -- NAND Certificates (auto-extracted) -- - name: "clientca.pem" diff --git a/emulators/project64.yml b/emulators/project64.yml index 8fe7813e..df050619 100644 --- a/emulators/project64.yml +++ b/emulators/project64.yml @@ -4,7 +4,7 @@ core_classification: other source: "https://github.com/project64/project64" upstream: "https://github.com/project64/project64" profiled_date: "2026-08-12" -source_commit: "6188e9a88dd2e7487df346fecc445716654e18ec" +source_commit: "7720a946203e67db58fbf27e23b6dc193e3cf485" core_version: "Dev-4.0.0" display_name: "Nintendo - Nintendo 64 (Project64)" cores: diff --git a/emulators/prosystem.yml b/emulators/prosystem.yml index e820a7d6..4b2cf49d 100644 --- a/emulators/prosystem.yml +++ b/emulators/prosystem.yml @@ -4,7 +4,7 @@ core_classification: community_fork source: "https://github.com/libretro/prosystem-libretro" upstream: "https://github.com/gstanton/ProSystem1_3" profiled_date: "2026-03-24" -source_commit: "363b6dfbd3e240762e022c2b4897b4fe55722be3" +source_commit: "8a88014287c7a01cd568067e5a557d0a2b2a051f" core_version: "1.3e" display_name: "Atari - 7800 (ProSystem)" cores: diff --git a/emulators/puae.yml b/emulators/puae.yml index 5feea865..49b36c79 100644 --- a/emulators/puae.yml +++ b/emulators/puae.yml @@ -56,7 +56,7 @@ notes: | capsimg.so/capsimg.dll is an optional shared library for IPF floppy image support (SPS/CAPS format). Not a BIOS file, loaded dynamically at runtime. - Source: libretro/libretro-core.h:140-245, libretro/libretro-core.c:5610-5750, + Source: libretro/libretro-core.h:140-245, libretro/libretro-core.c:5611-5751, libretro/libretro-core.c:6044-6093 files: @@ -243,14 +243,14 @@ files: system: commodore-amiga required: false note: "Amiga Forever ROM decryption key. Copied to saves/WHDLoad/Devs/Kickstarts/ for WHDLoad." - source_ref: "libretro/libretro-core.c:5967-5978" + source_ref: "libretro/libretro-core.c:5968-5979" - name: "WHDLoad.key" system: commodore-amiga required: false unsourceable: "per-user signed registration key, never distributed generically, WHDLoad free since v18.2" note: "WHDLoad license key. Copied to saves/WHDLoad/L/ for registered WHDLoad use." - source_ref: "libretro/libretro-core.c:5983-5996" + source_ref: "libretro/libretro-core.c:5984-5997" - name: "WHDLoad.prefs" system: commodore-amiga @@ -290,4 +290,4 @@ platform_details: amiga_forever: "amiga-os-{version}.rom" tosec: "Kickstart v{version} rev {rev} ({year})(Commodore)({model}).rom" scan_prefixes: ["kick", "amiga-os", "KS ROM"] - source_ref: "libretro/libretro-core.c:2649-2676" + source_ref: "libretro/libretro-core.c:2650-2677" diff --git a/emulators/puae2021.yml b/emulators/puae2021.yml index f536b896..0012f6c9 100644 --- a/emulators/puae2021.yml +++ b/emulators/puae2021.yml @@ -60,8 +60,8 @@ notes: | capsimg.so/capsimg.dll is an optional shared library for IPF floppy image support (SPS/CAPS format). Not a BIOS file, loaded dynamically at runtime. - Source: libretro/libretro-core.h:140-245, libretro/libretro-core.c:5534-5700, - libretro/libretro-core.c:5786-5945 + Source: libretro/libretro-core.h:140-245, libretro/libretro-core.c:5459-5625, + libretro/libretro-core.c:5711-5870 files: # ------------------------------------------------------- @@ -247,20 +247,20 @@ files: system: commodore-amiga required: false note: "Amiga Forever ROM decryption key. Copied to saves/WHDLoad/Devs/Kickstarts/ for WHDLoad." - source_ref: "libretro/libretro-core.c:5885-5896" + source_ref: "libretro/libretro-core.c:5810-5821" - name: "WHDLoad.key" system: commodore-amiga required: false unsourceable: "per-user signed registration key, never distributed generically, WHDLoad free since v18.2" note: "WHDLoad license key. Copied to saves/WHDLoad/L/ for registered WHDLoad use." - source_ref: "libretro/libretro-core.c:5901-5914" + source_ref: "libretro/libretro-core.c:5826-5839" - name: "WHDLoad.prefs" system: commodore-amiga required: false note: "WHDLoad preferences. Copied to saves/WHDLoad/S/ when present." - source_ref: "libretro/libretro-core.c:5918-5941" + source_ref: "libretro/libretro-core.c:5843-5866" model_kickstart_map: A500: {kickstart: "kick34005.A500", ext: null} @@ -294,4 +294,4 @@ platform_details: amiga_forever: "amiga-os-{version}.rom" tosec: "Kickstart v{version} rev {rev} ({year})(Commodore)({model}).rom" scan_prefixes: ["kick", "amiga-os", "KS ROM"] - source_ref: "libretro/libretro-core.c:2617-2656" + source_ref: "libretro/libretro-core.c:2597-2636" diff --git a/emulators/punes.yml b/emulators/punes.yml index e33e4321..8583263c 100644 --- a/emulators/punes.yml +++ b/emulators/punes.yml @@ -4,7 +4,7 @@ core_classification: other source: "https://github.com/punesemu/puNES" upstream: "https://github.com/punesemu/puNES" profiled_date: "2026-08-08" -source_commit: "2ed5b1b2cffcde48ff36f359091756d17d8fe193" +source_commit: "b1758ec26a3d6da10abf50dc184fa837236c5f61" core_version: "0.112" display_name: "Nintendo - NES / Famicom (puNES)" cores: @@ -41,7 +41,7 @@ notes: | the Vs. System PPU type and the region, so Vs. System titles need no external file. The uPD7756 ADPCM samples of mappers 018, 086 and 072 come from the Misc ROM area of the NES 2.0 dump itself - (src/core/mappers/mapper_018.c:51, mapper_086.c:56, mapper_072.c:45). + (src/core/mappers/mapper_018.c:51, src/core/mappers/mapper_086.c:56, src/core/mappers/mapper_072.c:45). loadWaveFiles, which would read /samples//NN.wav (src/core/mappers/waveFile.cpp:76-84), is declared and defined but called from nowhere in the tree, so no wave file is ever opened. diff --git a/emulators/px68k.yml b/emulators/px68k.yml index b41a2fab..811d41f1 100644 --- a/emulators/px68k.yml +++ b/emulators/px68k.yml @@ -4,7 +4,7 @@ core_classification: community_fork source: "https://github.com/libretro/px68k-libretro" upstream: "https://github.com/hissorii/px68k" profiled_date: "2026-03-25" -source_commit: "cc45b55983b4d30c961a313a77df9bcf9461dc63" +source_commit: "0ad84d7058a12b7db4f7f7a906e87fad4e2f26f6" core_version: "0.15+" display_name: "Sharp - X68000 (PX68k)" cores: @@ -50,7 +50,7 @@ files: X68000 IPL ROM (original model). 128 KB, loaded at IPL buffer offset 0x20000. The core tries iplrom.dat first, then iplrom30.dat, iplromco.dat, iplromxv.dat in order. At least one must be present or the core fails to start. - source_ref: "libretro.c:850-867" + source_ref: "libretro.c:874-891" - name: "iplrom30.dat" path: "keropi/iplrom30.dat" @@ -60,7 +60,7 @@ files: note: > X68030 IPL ROM. Alternative to iplrom.dat for X68030 model emulation. Only used if iplrom.dat is not found. - source_ref: "libretro.c:851" + source_ref: "libretro.c:875" - name: "iplromco.dat" path: "keropi/iplromco.dat" @@ -70,7 +70,7 @@ files: note: > X68000 Compact IPL ROM. Alternative to iplrom.dat. Only used if iplrom.dat and iplrom30.dat are not found. - source_ref: "libretro.c:851" + source_ref: "libretro.c:875" - name: "iplromxv.dat" path: "keropi/iplromxv.dat" @@ -80,7 +80,7 @@ files: note: > X68000 XVI IPL ROM. Last fallback in the IPL search order. Only used if the three other IPL variants are not found. - source_ref: "libretro.c:851" + source_ref: "libretro.c:875" # Font ROM -- character generator ROM for text rendering. @@ -92,7 +92,7 @@ files: X68000 character generator ROM. 768 KB, provides the font glyphs for text display. If missing, the core falls back to cgrom.tmp (user-generated font cache). Core fails to start if neither file exists. - source_ref: "libretro.c:853, libretro.c:881-891" + source_ref: "libretro.c:877, libretro.c:912-922" - name: "cgrom.tmp" path: "keropi/cgrom.tmp" @@ -101,7 +101,7 @@ files: note: > Alternative font file, used as fallback when cgrom.dat is absent. Typically a font cache generated by the emulator itself on other platforms. - source_ref: "libretro.c:854, libretro.c:884-888" + source_ref: "libretro.c:878, libretro.c:915-919" notes: subdirectory: > diff --git a/emulators/qemu.yml b/emulators/qemu.yml index aa3510ad..97713594 100644 --- a/emulators/qemu.yml +++ b/emulators/qemu.yml @@ -4,7 +4,7 @@ core_classification: community_fork source: "https://github.com/io12/qemu-libretro" upstream: "https://github.com/qemu/qemu" profiled_date: "2026-03-25" -source_commit: "486f2d58930f7f0bea5717b6fc06e7fa3dd109ed" +source_commit: "aaba4471880587540314f82419d920431d55b769" core_version: "0.1.0" display_name: "QEMU" cores: [qemu] diff --git a/emulators/retro8.yml b/emulators/retro8.yml index 11dc1550..b5346029 100644 --- a/emulators/retro8.yml +++ b/emulators/retro8.yml @@ -4,7 +4,7 @@ core_classification: game_engine source: "https://github.com/libretro/retro8" upstream: "https://github.com/Jakz/retro8" profiled_date: "2026-03-25" -source_commit: "a235ff8e3ca1b44bcf88293748d5a492c76a2c7b" +source_commit: "ddc06a142398ee9755894b3f0bb17c8dc428151d" core_version: "0.1b" display_name: "PICO-8 (Retro8)" cores: @@ -15,9 +15,9 @@ systems: notes: | Open-source PICO-8 fantasy console reimplementation by Jacopo Santoni. Runs .p8 and .p8.png cartridge files. The PICO-8 font is compiled into the - binary as a byte array (gen/pico_font.h, loaded in gfx.cpp:9). The Lua API + binary as a byte array (gen/pico_font.h, loaded in src/vm/gfx.cpp:9). The Lua API shim is compiled as a string constant (gen/lua_api.h, loaded in - lua_bridge.cpp:1126). The core never calls GET_SYSTEM_DIRECTORY and performs + src/vm/lua_bridge.cpp:1126). The core never calls GET_SYSTEM_DIRECTORY and performs no file I/O from the system directory. exclusion_note: "all engine resources (font, Lua API, color palette, audio synth) compiled into the binary" diff --git a/emulators/rvvm.yml b/emulators/rvvm.yml index 286eb599..f48695ef 100644 --- a/emulators/rvvm.yml +++ b/emulators/rvvm.yml @@ -45,7 +45,7 @@ files: - name: "fw_payload.bin" path: "rvvm/fw_payload.bin" required: true - source_ref: "src/bindings/libretro/libretro.c:309-314, src/rvvm.c:621-628" + source_ref: "src/bindings/libretro/libretro.c:309-314, src/core/rvvm.c:625-632" note: > M-mode firmware loaded at 0x80000000. Typically OpenSBI with U-Boot payload (fw_payload.bin) or standalone (fw_jump.bin). Referenced by @@ -54,7 +54,7 @@ files: - name: "Image" path: "rvvm/Image" required: false - source_ref: "src/bindings/libretro/libretro.c:316-318, src/rvvm.c:630-638" + source_ref: "src/bindings/libretro/libretro.c:316-318, src/core/rvvm.c:634-642" note: > S-mode kernel payload loaded at offset 0x200000 (rv64) or 0x400000 (rv32) from RAM base. Only needed with fw_jump.bin as bootrom. @@ -64,7 +64,7 @@ files: path: "rvvm/machine.dtb" required: false mode: standalone - source_ref: "src/main.c:222, src/rvvm.c:641-648" + source_ref: "src/main.c:214, src/core/rvvm.c:645-652" note: > Custom Flattened Device Tree. The core auto-generates a DTB based on machine configuration. The libretro binding does not parse a dtb= key diff --git a/emulators/scummvm.yml b/emulators/scummvm.yml index 21ff4298..f233f225 100644 --- a/emulators/scummvm.yml +++ b/emulators/scummvm.yml @@ -89,7 +89,7 @@ files: - name: "Roland_SC-55.sf2" path: "scummvm/extra/Roland_SC-55.sf2" required: false - source_ref: "backends/platform/libretro/include/libretro-defs.h:32, backends/platform/libretro/src/libretro-os-utils.cpp:196" + source_ref: "backends/platform/libretro/include/libretro-defs.h:32, backends/platform/libretro/src/libretro-os-utils.cpp:197" note: > Roland SC-55 SoundFont for General MIDI playback. This is the default soundfont (DEFAULT_SOUNDFONT_FILENAME). Bundled in official ScummVM diff --git a/emulators/shadps4.yml b/emulators/shadps4.yml index c094a2f0..c63d6929 100644 --- a/emulators/shadps4.yml +++ b/emulators/shadps4.yml @@ -3,7 +3,7 @@ type: standalone source: "https://github.com/shadps4-emu/shadPS4" upstream: "https://github.com/shadps4-emu/shadPS4" profiled_date: "2026-03-26" -source_commit: "891612c865f84fabbf6218e57278ce9e5a7722f0" +source_commit: "97c8feab184a9a5d358b36a46ee754584ac83b92" core_version: "pre-release 2026-08-08" display_name: "shadPS4 (PlayStation 4)" cores: @@ -50,179 +50,179 @@ files: hle_fallback: true path: "shadps4/sys_modules/" description: "PS4 C standard library" - source_ref: "src/core/linker.cpp:79-90" + source_ref: "src/core/linker.cpp:80-91" - name: "libSceNgs2.sprx" required: false hle_fallback: true path: "shadps4/sys_modules/" description: "PS4 next-generation audio system" - source_ref: "src/core/libraries/sysmodule/sysmodule_internal.cpp:213" + source_ref: "src/core/libraries/sysmodule/sysmodule_internal.cpp:217" - name: "libSceUlt.sprx" required: false path: "shadps4/sys_modules/" description: "PS4 user-level threading library" note: "No HLE implementation; the module is stubbed when absent." - source_ref: "src/core/libraries/sysmodule/sysmodule_internal.cpp:214" + source_ref: "src/core/libraries/sysmodule/sysmodule_internal.cpp:218" - name: "libSceRtc.sprx" required: false hle_fallback: true path: "shadps4/sys_modules/" description: "PS4 real-time clock library" - source_ref: "src/core/libraries/sysmodule/sysmodule_internal.cpp:215" + source_ref: "src/core/libraries/sysmodule/sysmodule_internal.cpp:221" - name: "libSceJpegDec.sprx" required: false path: "shadps4/sys_modules/" description: "PS4 JPEG decoder" note: "No HLE implementation; the module is stubbed when absent." - source_ref: "src/core/libraries/sysmodule/sysmodule_internal.cpp:216" + source_ref: "src/core/libraries/sysmodule/sysmodule_internal.cpp:222" - name: "libSceJpegEnc.sprx" required: false hle_fallback: true path: "shadps4/sys_modules/" description: "PS4 JPEG encoder" - source_ref: "src/core/libraries/sysmodule/sysmodule_internal.cpp:217" + source_ref: "src/core/libraries/sysmodule/sysmodule_internal.cpp:223" - name: "libScePngEnc.sprx" required: false hle_fallback: true path: "shadps4/sys_modules/" description: "PS4 PNG encoder" - source_ref: "src/core/libraries/sysmodule/sysmodule_internal.cpp:218" + source_ref: "src/core/libraries/sysmodule/sysmodule_internal.cpp:225" - name: "libSceJson.sprx" required: false path: "shadps4/sys_modules/" description: "PS4 JSON parser" note: "No HLE implementation; the module is stubbed when absent." - source_ref: "src/core/libraries/sysmodule/sysmodule_internal.cpp:219" + source_ref: "src/core/libraries/sysmodule/sysmodule_internal.cpp:226" - name: "libSceJson2.sprx" required: false path: "shadps4/sys_modules/" description: "PS4 JSON v2 parser" note: "No HLE implementation; the module is stubbed when absent." - source_ref: "src/core/libraries/sysmodule/sysmodule_internal.cpp:220" + source_ref: "src/core/libraries/sysmodule/sysmodule_internal.cpp:227" - name: "libSceCesCs.sprx" required: false path: "shadps4/sys_modules/" description: "PS4 character encoding conversion" note: "No HLE implementation; the module is stubbed when absent." - source_ref: "src/core/libraries/sysmodule/sysmodule_internal.cpp:221" + source_ref: "src/core/libraries/sysmodule/sysmodule_internal.cpp:228" - name: "libSceAt9Enc.sprx" required: false path: "shadps4/sys_modules/" description: "PS4 ATRAC9 encoder" note: "No HLE implementation; the module is stubbed when absent." - source_ref: "src/core/libraries/sysmodule/sysmodule_internal.cpp:222" + source_ref: "src/core/libraries/sysmodule/sysmodule_internal.cpp:229" - name: "libSceAudiodec.sprx" required: false path: "shadps4/sys_modules/" description: "PS4 audio decoder" note: "No HLE implementation; the module is stubbed when absent." - source_ref: "src/core/libraries/sysmodule/sysmodule_internal.cpp:223" + source_ref: "src/core/libraries/sysmodule/sysmodule_internal.cpp:230" - name: "libSceAudiodecCpu.sprx" required: false path: "shadps4/sys_modules/" description: "PS4 CPU audio decoder" note: "No HLE implementation; the module is stubbed when absent." - source_ref: "src/core/libraries/sysmodule/sysmodule_internal.cpp:224" + source_ref: "src/core/libraries/sysmodule/sysmodule_internal.cpp:231" - name: "libSceAudiodecCpuDdp.sprx" required: false path: "shadps4/sys_modules/" description: "PS4 CPU Dolby Digital Plus decoder" note: "No HLE implementation; the module is stubbed when absent." - source_ref: "src/core/libraries/sysmodule/sysmodule_internal.cpp:225" + source_ref: "src/core/libraries/sysmodule/sysmodule_internal.cpp:232" - name: "libSceAudiodecCpuM4aac.sprx" required: false path: "shadps4/sys_modules/" description: "PS4 CPU AAC decoder" note: "No HLE implementation; the module is stubbed when absent." - source_ref: "src/core/libraries/sysmodule/sysmodule_internal.cpp:226" + source_ref: "src/core/libraries/sysmodule/sysmodule_internal.cpp:233" - name: "libSceAudiodecCpuDtsHdLbr.sprx" required: false path: "shadps4/sys_modules/" description: "PS4 CPU DTS-HD LBR decoder" note: "No HLE implementation; the module is stubbed when absent." - source_ref: "src/core/libraries/sysmodule/sysmodule_internal.cpp:227" + source_ref: "src/core/libraries/sysmodule/sysmodule_internal.cpp:234" - name: "libSceAudiodecCpuHevag.sprx" required: false path: "shadps4/sys_modules/" description: "PS4 CPU HEVAG decoder" note: "No HLE implementation; the module is stubbed when absent." - source_ref: "src/core/libraries/sysmodule/sysmodule_internal.cpp:228" + source_ref: "src/core/libraries/sysmodule/sysmodule_internal.cpp:235" - name: "libSceFont.sprx" required: false hle_fallback: true path: "shadps4/sys_modules/" description: "PS4 font rendering library" - source_ref: "src/core/libraries/sysmodule/sysmodule_internal.cpp:229" + source_ref: "src/core/libraries/sysmodule/sysmodule_internal.cpp:236" - name: "libSceFontFt.sprx" required: false hle_fallback: true path: "shadps4/sys_modules/" description: "PS4 FreeType font library" - source_ref: "src/core/libraries/sysmodule/sysmodule_internal.cpp:230" + source_ref: "src/core/libraries/sysmodule/sysmodule_internal.cpp:237" - name: "libSceFreeTypeOt.sprx" required: false path: "shadps4/sys_modules/" description: "PS4 FreeType OpenType library" note: "No HLE implementation; the module is stubbed when absent." - source_ref: "src/core/libraries/sysmodule/sysmodule_internal.cpp:231" + source_ref: "src/core/libraries/sysmodule/sysmodule_internal.cpp:238" - name: "libSceFreeTypeOl.sprx" required: false path: "shadps4/sys_modules/" description: "PS4 FreeType outline library" note: "No HLE implementation; the module is stubbed when absent." - source_ref: "src/core/libraries/sysmodule/sysmodule_internal.cpp:232" + source_ref: "src/core/libraries/sysmodule/sysmodule_internal.cpp:239" - name: "libSceFreeTypeOptOl.sprx" required: false path: "shadps4/sys_modules/" description: "PS4 FreeType optimised outline library" note: "No HLE implementation; the module is stubbed when absent." - source_ref: "src/core/libraries/sysmodule/sysmodule_internal.cpp:233" + source_ref: "src/core/libraries/sysmodule/sysmodule_internal.cpp:240" - name: "libSceRudp.sprx" required: false hle_fallback: true path: "shadps4/sys_modules/" description: "PS4 reliable UDP library" - source_ref: "src/core/libraries/sysmodule/sysmodule_internal.cpp:234" + source_ref: "src/core/libraries/sysmodule/sysmodule_internal.cpp:243" - name: "libSceWkFontConfig.sprx" required: false path: "shadps4/sys_modules/" description: "PS4 WebKit font configuration" note: "No HLE implementation; the module is stubbed when absent." - source_ref: "src/core/libraries/sysmodule/sysmodule_internal.cpp:235" + source_ref: "src/core/libraries/sysmodule/sysmodule_internal.cpp:244" - name: "libSceSystemGesture.sprx" required: false hle_fallback: true path: "shadps4/sys_modules/" description: "PS4 system gesture recognition" - source_ref: "src/core/libraries/sysmodule/sysmodule_internal.cpp:236" + source_ref: "src/core/libraries/sysmodule/sysmodule_internal.cpp:249" - name: "libSceXml.sprx" required: false path: "shadps4/sys_modules/" description: "PS4 XML parser" note: "No HLE implementation; the module is stubbed when absent." - source_ref: "src/core/libraries/sysmodule/sysmodule_internal.cpp:237" + source_ref: "src/core/libraries/sysmodule/sysmodule_internal.cpp:250" diff --git a/emulators/smsplus.yml b/emulators/smsplus.yml index 476d11b3..fafb0cc3 100644 --- a/emulators/smsplus.yml +++ b/emulators/smsplus.yml @@ -23,7 +23,7 @@ notes: | Standalone ports also support Sord M5 (behind SORDM5_EMU compile flag, not compiled in libretro build). - BIOS loading in bios_init() (smsplus_libretro.c:203-252). bios.sms is + BIOS loading in bios_init() (source/ports/libretro/smsplus_libretro.c:211-260). bios.sms is always attempted but only activated when core option smsplus_sms_bios is "auto" (default: disabled). BIOS.col is loaded only for ColecoVision ROMs and required for them. Standalone ports use BIOS.sms (uppercase) @@ -39,7 +39,7 @@ files: description: "Sega Master System boot ROM" required: false aliases: ["BIOS.sms"] - source_ref: "smsplus_libretro.c:211-229" + source_ref: "source/ports/libretro/smsplus_libretro.c:219-237" note: | Loaded into bios.rom (up to 1 MB allocated). Only active when core option smsplus_sms_bios is "auto". Displays SMS startup screen @@ -50,7 +50,7 @@ files: description: "ColecoVision BIOS ROM" required: true size: 8192 - source_ref: "smsplus_libretro.c:232-248" + source_ref: "source/ports/libretro/smsplus_libretro.c:240-256" note: | Required for ColecoVision games. Read as 0x2000 (8192) bytes into coleco.rom. Without this file, retro_load_game() returns false for diff --git a/emulators/snes9x.yml b/emulators/snes9x.yml index b97bc196..17bf37ca 100644 --- a/emulators/snes9x.yml +++ b/emulators/snes9x.yml @@ -5,7 +5,7 @@ source: "https://github.com/libretro/snes9x" upstream: "https://github.com/snes9xgit/snes9x" logo: "https://raw.githubusercontent.com/snes9xgit/snes9x/master/gtk/data/snes9x.svg" profiled_date: "2026-03-25" -source_commit: "ed750a49d0583a8d8fed40c50239efd13a86dfd3" +source_commit: "890b5d445538fe790aa3add3d5702c80f551e0ae" core_version: "1.61" display_name: "Nintendo - SNES / SFC (Snes9x)" systems: [nintendo-snes, nintendo-satellaview, nintendo-sufami-turbo] @@ -42,7 +42,7 @@ files: required: false size: 262144 validation: [size] - source_ref: "libretro/libretro.cpp:1461, libretro/libretro.cpp:1546, memmap.cpp:1720" + source_ref: "libretro/libretro.cpp:1506, libretro/libretro.cpp:1546, memmap.cpp:1720" note: "Needed for Sufami Turbo multi-cart games." notes: diff --git a/emulators/snes9x2002.yml b/emulators/snes9x2002.yml index 0908b9a0..f5ba71aa 100644 --- a/emulators/snes9x2002.yml +++ b/emulators/snes9x2002.yml @@ -4,7 +4,7 @@ core_classification: frozen_snapshot source: "https://github.com/libretro/snes9x2002" upstream: "https://github.com/snes9xgit/snes9x" profiled_date: "2026-03-25" -source_commit: "a0709ec7dcd6de2fbebb43106bd757b649e3b7cf" +source_commit: "5bd8bd6d449be8a2ef7909e1aeb2bd8c9c0da8cb" core_version: "7.2.0" display_name: "Nintendo - SNES / SFC (Snes9x 2002)" cores: @@ -16,9 +16,9 @@ systems: notes: | Frozen snapshot of Snes9x 1.39 via PocketSNES, optimized for ARM. - SPC700 IPL ROM (64 bytes) embedded in globals.c:283 as APUROM[64]. + SPC700 IPL ROM (64 bytes) embedded in src/globals.c:283 as APUROM[64]. All ROM I/O via memstream (snes9x.h:54-57). The core never calls GET_SYSTEM_DIRECTORY and performs no file I/O from the system directory. -exclusion_note: "SPC700 IPL ROM embedded in binary (globals.c:283); no system_directory access" +exclusion_note: "SPC700 IPL ROM embedded in binary (src/globals.c:283); no system_directory access" files: [] diff --git a/emulators/snes9x2005.yml b/emulators/snes9x2005.yml index 9d6d6f6f..1895dcd1 100644 --- a/emulators/snes9x2005.yml +++ b/emulators/snes9x2005.yml @@ -4,7 +4,7 @@ core_classification: frozen_snapshot source: "https://github.com/libretro/snes9x2005" upstream: "https://github.com/ShadauxCat/CATSFC" profiled_date: "2026-03-25" -source_commit: "74d871db9b4dba6dbe6c5ecebc88cbf255be5349" +source_commit: "deb49d80d1836e3e737480a326e31a54c46c04ae" core_version: "v1.36" display_name: "Nintendo - SNES / SFC (Snes9x 2005)" cores: @@ -16,8 +16,8 @@ systems: notes: | Frozen snapshot of Snes9x 1.43 via CATSFC (NDS/PSP port by ShadauxCat/Nebuleon). - SPC700 IPL ROM (64 bytes) embedded in globals.c:191 as APUROM[64]. - DSP-1 ROM data (1024 x uint16) embedded in dsp1emu.c:8 as DSP1ROM[1024]. + SPC700 IPL ROM (64 bytes) embedded in source/globals.c:191 as APUROM[64]. + DSP-1 ROM data (1024 x uint16) embedded in source/dsp1emu.c:8 as DSP1ROM[1024]. All coprocessors (DSP-1/2/4, CX4, ST010/011/018, SuperFX, SPC7110, SA-1, OBC-1) are pure HLE. The core never calls GET_SYSTEM_DIRECTORY and performs no file I/O from the system directory. diff --git a/emulators/snes9x2005_plus.yml b/emulators/snes9x2005_plus.yml index dfa8afc5..7ae72149 100644 --- a/emulators/snes9x2005_plus.yml +++ b/emulators/snes9x2005_plus.yml @@ -4,7 +4,7 @@ core_classification: frozen_snapshot source: "https://github.com/libretro/snes9x2005" upstream: "https://github.com/ShadauxCat/CATSFC" profiled_date: "2026-03-25" -source_commit: "74d871db9b4dba6dbe6c5ecebc88cbf255be5349" +source_commit: "deb49d80d1836e3e737480a326e31a54c46c04ae" core_version: "v1.36" display_name: "Nintendo - SNES / SFC (Snes9x 2005 Plus)" cores: @@ -17,8 +17,8 @@ systems: notes: | Same codebase as Snes9x 2005 built with USE_BLARGG_APU=1 for more accurate audio. Frozen snapshot of Snes9x 1.43 via CATSFC (NDS/PSP port by ShadauxCat/Nebuleon). - SPC700 IPL ROM (64 bytes) embedded in apu_blargg.c:3272 as APUROM[64]. - DSP-1 ROM data (1024 x uint16) embedded in dsp1emu.c:8 as DSP1ROM[1024]. + SPC700 IPL ROM (64 bytes) embedded in source/apu_blargg.c:3272 as APUROM[64]. + DSP-1 ROM data (1024 x uint16) embedded in source/dsp1emu.c:8 as DSP1ROM[1024]. All coprocessors (DSP-1/2/4, CX4, ST010/011/018, SuperFX, SPC7110, SA-1, OBC-1) are pure HLE. The core never calls GET_SYSTEM_DIRECTORY and performs no file I/O from the system directory. diff --git a/emulators/snes9x2010.yml b/emulators/snes9x2010.yml index b6e192e3..a2081f31 100644 --- a/emulators/snes9x2010.yml +++ b/emulators/snes9x2010.yml @@ -4,7 +4,7 @@ core_classification: frozen_snapshot source: "https://github.com/libretro/snes9x2010" upstream: "https://github.com/snes9xgit/snes9x" profiled_date: "2026-03-25" -source_commit: "214cb51f22ddec66952c304fe1e5e01fd83a9ac6" +source_commit: "7db129b1ecdccb38cb4d7184bcbed39beed79656" core_version: "v1.52.4" display_name: "Nintendo - SNES / SFC (Snes9x 2010)" cores: diff --git a/emulators/spmp8000emu.yml b/emulators/spmp8000emu.yml index eb52dc4f..8aea3db3 100644 --- a/emulators/spmp8000emu.yml +++ b/emulators/spmp8000emu.yml @@ -4,7 +4,7 @@ core_classification: pure_libretro source: "https://github.com/AloysHF/SPMP8000Emu" upstream: "https://github.com/AloysHF/SPMP8000Emu" profiled_date: "2026-09-03" -source_commit: "00f5985b639a036cd255770fb56abc98fcde7513" +source_commit: "350c965a9909c4515eeebd190a2a57d2d5bf707a" core_version: "1.0.0" display_name: "Sunplus - SPMP8000 (SPMP8000Emu)" cores: diff --git a/emulators/squirreljme.yml b/emulators/squirreljme.yml index f67b2691..582c2793 100644 --- a/emulators/squirreljme.yml +++ b/emulators/squirreljme.yml @@ -4,7 +4,7 @@ core_classification: official_port source: "https://github.com/SquirrelJME/SquirrelJME" upstream: "https://github.com/SquirrelJME/SquirrelJME" profiled_date: "2026-03-25" -source_commit: "72a06de002d720ec35c299ce7379273f0420d330" +source_commit: "b283f27c70b842dbb34bb91f704bfeb7dc5f3e16" core_version: "0.3.0" display_name: "Java ME (SquirrelJME)" cores: [squirreljme] diff --git a/emulators/stella2023.yml b/emulators/stella2023.yml index 0091a144..49becdb9 100644 --- a/emulators/stella2023.yml +++ b/emulators/stella2023.yml @@ -4,7 +4,7 @@ core_classification: frozen_snapshot source: "https://github.com/libretro/stella2023" upstream: "https://github.com/stella-emu/stella" profiled_date: "2026-03-25" -source_commit: "878a9c8d5f03ef0b7cd190b5713d6bf31c48df38" +source_commit: "ba52c43b9eda950eb0c0eec69cda9b17dee8c39b" core_version: "7.0_pre" display_name: "Atari - 2600 (Stella 2023)" cores: @@ -20,7 +20,7 @@ notes: | The Atari 2600 has no BIOS ROM; TIA, RIOT, and 6507 CPU are fully emulated in software. The SuperCharger (Starpath) BIOS is emulated via - a built-in dummy ROM (ourDummyROMCode in CartAR.cxx:279). The game + a built-in dummy ROM (ourDummyROMCode in src/emucore/CartAR.cxx:279). The game properties database is compiled into DefProps.hxx; external loading is disabled in the libretro port (OSystemLIBRETRO returns CompositeKeyValueRepositoryNoop for the property repository). diff --git a/emulators/supermodel.yml b/emulators/supermodel.yml index 3324e958..51b1c204 100644 --- a/emulators/supermodel.yml +++ b/emulators/supermodel.yml @@ -3,7 +3,7 @@ type: standalone source: https://github.com/trzy/Supermodel upstream: https://github.com/trzy/Supermodel profiled_date: "2026-03-26" -source_commit: "d6dec3dcf0922459801907950d966e5767c674de" +source_commit: "24d2ffcfc7f14229337f05f4920fe26b56633d9d" core_version: "0.3a" display_name: "Supermodel (Sega Model 3)" cores: @@ -39,7 +39,7 @@ files: bundled: true description: "ROM set definitions" note: "Parsed at startup into the game database. Every ROM region, file name and CRC32 the loader matches against comes from here, so an unreadable file leaves no set to resolve and the launch returns before the emulator is built. The path is a config key, so -game-xml-file moves it." - source_ref: "Src/OSD/SDL/Main.cpp:114, 1498, 1939, 2297-2307, Src/GameLoader.cpp:551-561, 1016-1019" + source_ref: "Src/OSD/SDL/Main.cpp:117, Src/OSD/SDL/Main.cpp:1506, Src/OSD/SDL/Main.cpp:1963, Src/OSD/SDL/Main.cpp:2326-2336, Src/GameLoader.cpp:549-559, Src/GameLoader.cpp:1014-1017" - name: p1crosshair.bmp path: "Assets/p1crosshair.bmp" @@ -48,7 +48,7 @@ files: bundled: true description: "Player 1 light gun crosshair texture" note: "Both bitmaps are read on every launch whatever CrosshairStyle holds, since the load runs before the style decides anything, and a null surface aborts startup ahead of the Model 3 object. 32 bit BMP with alpha, sides a multiple of 2." - source_ref: "Src/OSD/SDL/Crosshair.cpp:34-51, Src/OSD/SDL/Main.cpp:2350-2356, Assets/DIR.txt" + source_ref: "Src/OSD/SDL/Crosshair.cpp:34-51, Src/OSD/SDL/Main.cpp:2379-2385, Assets/DIR.txt" - name: p2crosshair.bmp path: "Assets/p2crosshair.bmp" @@ -57,7 +57,7 @@ files: bundled: true description: "Player 2 light gun crosshair texture" note: "Read in the same call as the player 1 bitmap and equally fatal when it fails to load." - source_ref: "Src/OSD/SDL/Crosshair.cpp:35, 49-51, Src/OSD/SDL/Main.cpp:2350-2356" + source_ref: "Src/OSD/SDL/Crosshair.cpp:35, 49-51, Src/OSD/SDL/Main.cpp:2379-2385" - name: Music.xml path: "Config/Music.xml" @@ -65,7 +65,7 @@ files: bundled: true description: "Custom MPEG music track map" note: "Consulted only for a game with a DSB1 or DSB2 board, and skipped when the file is absent. Maps an MPEG ROM offset to an MP3 the user supplies." - source_ref: "Src/OSD/SDL/Main.cpp:115, 940, Src/Sound/MPEG/MpegAudio.cpp:88-108" + source_ref: "Src/OSD/SDL/Main.cpp:118, Src/OSD/SDL/Main.cpp:943, Src/Sound/MPEG/MpegAudio.cpp:88-108" exclusion_note: > The Sega Model 3 arcade hardware has no shared system BIOS. Each game board diff --git a/emulators/swanstation.yml b/emulators/swanstation.yml index e16a8f34..764850c6 100644 --- a/emulators/swanstation.yml +++ b/emulators/swanstation.yml @@ -4,7 +4,7 @@ core_classification: community_fork source: "https://github.com/libretro/swanstation" upstream: "https://github.com/stenzek/duckstation" profiled_date: "2026-03-25" -source_commit: "5430a4a53b89fa5827c97b84ada29d23317245bc" +source_commit: "7f69c199ed88d5723f71dd3a6e9c1b7a45b535a6" core_version: "v0.1" display_name: "Sony - PlayStation (SwanStation)" cores: [swanstation] @@ -20,7 +20,7 @@ notes: | Auto-detects BIOS by scanning system_dir for files of known sizes. ref: src/core/host_interface.cpp:136-194 (FindBIOSImageInDirectory) Accepts PS1 (512 KB), PS2 (4 MB), and PS3 (0x3E66F0) BIOS images. - Only the first 512 KB are loaded (bios.cpp:84, Image(BIOS_SIZE)). + Only the first 512 KB are loaded (src/core/bios.cpp:84, Image(BIOS_SIZE)). ref: src/core/bios.h:9 (BIOS_SIZE=0x80000, BIOS_SIZE_PS2=0x400000, BIOS_SIZE_PS3=0x3E66F0) 27 known BIOS entries identified by MD5 hash. diff --git a/emulators/tamalibretro.yml b/emulators/tamalibretro.yml index afbb6d3a..3447ff1c 100644 --- a/emulators/tamalibretro.yml +++ b/emulators/tamalibretro.yml @@ -5,7 +5,7 @@ source: "https://github.com/celerizer/tamalibretro" upstream: "https://github.com/jcrona/tamalib" source_ref: "main.c:345-365 (retro_load_game)" profiled_date: "2026-03-25" -source_commit: "ec83dc1a5ea8bdbcd02cee81779c6dbe0e996ed2" +source_commit: "ea8dd612eaab375a04f976149dc693cb5d208b27" core_version: "1.0" display_name: "Bandai - Tamagotchi P1 (TamaLIBretro)" cores: [tamalibretro] diff --git a/emulators/testgl_ff.yml b/emulators/testgl_ff.yml index 1462bd02..51854f55 100644 --- a/emulators/testgl_ff.yml +++ b/emulators/testgl_ff.yml @@ -5,7 +5,7 @@ source: "https://github.com/libretro/libretro-samples" upstream: null source_ref: "video/opengl/libretro_test_gl_fixedfunction/libretro_gl_ff_test.c" profiled_date: "2026-03-25" -source_commit: "bce193bc1b8c9a3da43b2ead0158a69e28b37ed8" +source_commit: "caebf22a8d7ea12b353f2b44f4040f77c97fd7f8" core_version: "v1" display_name: "TestGL (FF)" cores: diff --git a/emulators/testsw.yml b/emulators/testsw.yml index b1b97231..4148e8b2 100644 --- a/emulators/testsw.yml +++ b/emulators/testsw.yml @@ -5,7 +5,7 @@ source: "https://github.com/libretro/libretro-samples" source_ref: "video/software/rendering/libretro-test.c" upstream: null profiled_date: "2026-03-25" -source_commit: "bce193bc1b8c9a3da43b2ead0158a69e28b37ed8" +source_commit: "caebf22a8d7ea12b353f2b44f4040f77c97fd7f8" core_version: "v1" display_name: "TestSW" cores: diff --git a/emulators/testsw_vram.yml b/emulators/testsw_vram.yml index 45690d04..2615231b 100644 --- a/emulators/testsw_vram.yml +++ b/emulators/testsw_vram.yml @@ -5,7 +5,7 @@ source: "https://github.com/libretro/libretro-samples" upstream: "https://github.com/libretro/libretro-samples" source_ref: "video/software/rendering_direct_to_vram/libretro-test.c" profiled_date: "2026-03-25" -source_commit: "bce193bc1b8c9a3da43b2ead0158a69e28b37ed8" +source_commit: "caebf22a8d7ea12b353f2b44f4040f77c97fd7f8" core_version: "v1" display_name: "TestSW VRAM" cores: diff --git a/emulators/tsugaru.yml b/emulators/tsugaru.yml index 4d90f42d..1c0857e2 100644 --- a/emulators/tsugaru.yml +++ b/emulators/tsugaru.yml @@ -4,7 +4,7 @@ type: standalone source: "https://github.com/captainys/TOWNSEMU" upstream: "https://github.com/captainys/TOWNSEMU" profiled_date: "2026-03-26" -source_commit: "8ecfa27759919586e33f674038ed73d36e56c2b6" +source_commit: "ee0c2673252d6879e78a5de6b560e2d2b125e2b8" cores: - tsugaru systems: diff --git a/emulators/uae4arm.yml b/emulators/uae4arm.yml index eb18149a..3b71642d 100644 --- a/emulators/uae4arm.yml +++ b/emulators/uae4arm.yml @@ -5,7 +5,7 @@ cores: [uae4arm] source: "https://github.com/libretro/uae4arm-libretro" upstream: "https://github.com/PandTomB/uae4arm" profiled_date: "2026-03-25" -source_commit: "16f63d30b98aa8070a996f25f64df6dfff82938b" +source_commit: "26f444f01771f0dfa2fa652906ff8222e92e476e" core_version: "v0.5" display_name: "Commodore - Amiga (UAE4ARM)" systems: @@ -30,34 +30,34 @@ files: description: "Amiga 500 Kickstart v1.3 rev 34.005" required: false hle_fallback: true - source_ref: "libretro/core/libretro-core.cpp:77, 828, src/memory.cpp:745-760" + source_ref: "libretro/core/libretro-core.cpp:82, libretro/core/libretro-core.cpp:833, src/memory.cpp:745-760" - name: "kick40063.A600" description: "Amiga 600 Kickstart v3.1 rev 40.063" required: false hle_fallback: true - source_ref: "libretro/core/libretro-core.cpp:78, 784" + source_ref: "libretro/core/libretro-core.cpp:83, libretro/core/libretro-core.cpp:789" - name: "kick40068.A1200" description: "Amiga 1200 Kickstart v3.1 rev 40.068" required: false hle_fallback: true - source_ref: "libretro/core/libretro-core.cpp:85, libretro/core/libretro-core.cpp:410" + source_ref: "libretro/core/libretro-core.cpp:84, libretro/core/libretro-core.cpp:415" - name: "kick34005.CDTV" description: "CDTV extended ROM v1.00 rev 34.005" required: false - source_ref: "libretro/core/libretro-core.cpp:80, 829, src/memory.cpp:640-662" + source_ref: "libretro/core/libretro-core.cpp:85, libretro/core/libretro-core.cpp:834, src/memory.cpp:640-662" - name: "kick40060.CD32" description: "CD32 Kickstart v3.1 rev 40.060" required: false - source_ref: "libretro/core/libretro-core.cpp:81, 851, src/memory.cpp:745-760" + source_ref: "libretro/core/libretro-core.cpp:86, libretro/core/libretro-core.cpp:856, src/memory.cpp:745-760" - name: "kick40060.CD32.ext" description: "CD32 extended ROM rev 40.060" required: false - source_ref: "libretro/core/libretro-core.cpp:82, 852, src/memory.cpp:644-662" + source_ref: "libretro/core/libretro-core.cpp:87, libretro/core/libretro-core.cpp:857, src/memory.cpp:644-662" - name: "rom.key" description: "Cloanto Amiga Forever decryption key" diff --git a/emulators/ume2015.yml b/emulators/ume2015.yml index 77758d74..047bf758 100644 --- a/emulators/ume2015.yml +++ b/emulators/ume2015.yml @@ -5,7 +5,7 @@ source: "https://github.com/libretro/mame2015-libretro" upstream: "https://github.com/mamedev/mame/tree/mame0159" logo: "https://raw.githubusercontent.com/mamedev/mame/master/docs/source/images/MAMElogo.svg" profiled_date: "2026-03-25" -source_commit: "283e04b03c121db9be12632d6bad2fc3e8707248" +source_commit: "0eab132212b28896baeac7d8f2cd8ac25e227752" core_version: "0.159" display_name: "Multi (UME 2015)" mame_version: "0.159" diff --git a/emulators/vba_next.yml b/emulators/vba_next.yml index d2180848..2065750a 100644 --- a/emulators/vba_next.yml +++ b/emulators/vba_next.yml @@ -28,7 +28,7 @@ notes: | jumps to 0x08000000 (ROM entry), skipping boot animation (src/gba.c:13134-13151). - Upstream VBA-M CPUInit (src/core/gba/gba.cpp:3674-3702) is functionally + Upstream VBA-M CPUInit (src/core/gba/gba.cpp:5137-5165) is functionally identical. No divergences in BIOS handling. files: diff --git a/emulators/vbam.yml b/emulators/vbam.yml index a33830a3..991563d7 100644 --- a/emulators/vbam.yml +++ b/emulators/vbam.yml @@ -4,7 +4,7 @@ core_classification: official_port source: "https://github.com/libretro/vbam-libretro" upstream: "https://github.com/visualboyadvance-m/visualboyadvance-m" profiled_date: "2026-03-25" -source_commit: "e8b2875d6cad10fc3c7c9f57bb5f1acc324d7c10" +source_commit: "115defb3a318258ab84746d45258a1aec19d0b4b" core_version: "2.1.4" display_name: "Nintendo - Game Boy Advance (VBA-M)" cores: diff --git a/emulators/vecx.yml b/emulators/vecx.yml index 8fe0866a..2132e02c 100644 --- a/emulators/vecx.yml +++ b/emulators/vecx.yml @@ -4,7 +4,7 @@ core_classification: community_fork source: "https://github.com/libretro/libretro-vecx" upstream: "https://github.com/jhawthorn/vecx" profiled_date: "2026-03-25" -source_commit: "eacee1f6f029688b043ed802cece29dd3c320e21" +source_commit: "8f671cc9d737f2890c3ce19e177e2984dcae121f" core_version: "SVN" display_name: "GCE - Vectrex (vecx)" cores: diff --git a/emulators/vemulator.yml b/emulators/vemulator.yml index fb62bbfb..dee7a02d 100644 --- a/emulators/vemulator.yml +++ b/emulators/vemulator.yml @@ -4,7 +4,7 @@ core_classification: official_port source: "https://github.com/libretro/vemulator-libretro" upstream: "closed-source Android app (removed from Google Play ~2020)" profiled_date: "2026-03-25" -source_commit: "45d7556667549bb1c1b84d27fbffb7d2a633f5d3" +source_commit: "27a062f6ae532e5028e4fb54f523cc689e78146a" core_version: "0.1" display_name: "VeMUlator" cores: diff --git a/emulators/vice.yml b/emulators/vice.yml index 388c7438..7358ef92 100644 --- a/emulators/vice.yml +++ b/emulators/vice.yml @@ -74,7 +74,7 @@ notes: | Source: retrodep/embedded/*.c (embedded ROM tables), vice/src/*/rom.h (ROM name defines), vice/src/drive/driverom.h (drive ROMs), retrodep/ui.c:274-315 (JiffyDOS loading), retrodep/ui.c:258-271 (SCPU kernal), - libretro/libretro-core.c:2800-2865 (core options for JiffyDOS/SCPU) + libretro/libretro-core.c:2801-2866 (core options for JiffyDOS/SCPU) files: # ------------------------------------------------------- @@ -1082,7 +1082,7 @@ files: hle_fallback: true embedded: false note: "SuperCPU DOS v1.40 external kernal. Optional, selected via core option. Goes in system/vice/SCPU64/." - source_ref: "retrodep/ui.c:266, libretro/libretro-core.c:2825" + source_ref: "retrodep/ui.c:266, libretro/libretro-core.c:2826" - name: "vice/SCPU64/scpu-dos-2.04.bin" system: commodore-c64 @@ -1090,7 +1090,7 @@ files: hle_fallback: true embedded: false note: "SuperCPU DOS v2.04 external kernal. Optional, selected via core option. Goes in system/vice/SCPU64/." - source_ref: "retrodep/ui.c:263, libretro/libretro-core.c:2827" + source_ref: "retrodep/ui.c:263, libretro/libretro-core.c:2828" # ------------------------------------------------------- # Drive ROMs (shared across all cores with True Drive Emulation) @@ -1274,7 +1274,7 @@ files: hle_fallback: true embedded: false note: "JiffyDOS C64 kernal replacement. Optional, proprietary. Requires True Drive Emulation + 1541/1571/1581 drive." - source_ref: "retrodep/ui.c:302, libretro/libretro-core.c:2855" + source_ref: "retrodep/ui.c:302, libretro/libretro-core.c:2856" - name: "vice/JiffyDOS_SX-64.bin" system: commodore-c64 @@ -1290,7 +1290,7 @@ files: hle_fallback: true embedded: false note: "JiffyDOS C128 kernal replacement. Optional, proprietary. C128 core only." - source_ref: "retrodep/ui.c:309, libretro/libretro-core.c:2857" + source_ref: "retrodep/ui.c:309, libretro/libretro-core.c:2858" - name: "vice/JiffyDOS_1541-II.bin" system: commodore-c64 diff --git a/emulators/vice_x64.yml b/emulators/vice_x64.yml index a23c1e35..c3ff46e0 100644 --- a/emulators/vice_x64.yml +++ b/emulators/vice_x64.yml @@ -4,7 +4,7 @@ core_classification: community_fork source: "https://github.com/libretro/vice-libretro" upstream: "https://sourceforge.net/projects/vice-emu/" profiled_date: "2026-03-25" -source_commit: "8818c3a39146b9a26df23a1e4880b4420f93a255" +source_commit: "c8c242db75a559246d6d51017e6dd4ecd75d6a9f" core_version: "3.10" display_name: "Commodore - C64 (VICE x64, fast)" cores: [vice_x64, x64] diff --git a/emulators/vircon32.yml b/emulators/vircon32.yml index a234be03..63ab55d1 100644 --- a/emulators/vircon32.yml +++ b/emulators/vircon32.yml @@ -4,7 +4,7 @@ core_classification: official_port source: "https://github.com/vircon32/vircon32-libretro" upstream: "https://github.com/vircon32/ComputerSoftware" profiled_date: "2026-03-25" -source_commit: "3a1b4ae3fb75c1216fab9cc8715e9a122c461a3a" +source_commit: "dd78c5cea1fcaa382b7492d0d813d6c1534914d7" core_version: "2026.2.18" display_name: "Vircon32" cores: @@ -33,7 +33,7 @@ notes: | (ROMFileFormat::BiosSignature). It must contain exactly 1 texture and 1 sound. The loader validates the signature, file structure, and version compatibility before loading program ROM, video ROM and audio ROM - (V32Console.cpp:259-431). + (ConsoleLogic/V32Console.cpp:259-431). The external BIOS file allows users to replace the boot animation with a custom one. Game compatibility is not affected by BIOS choice. @@ -70,7 +70,7 @@ platform_details: Console.LoadBiosData(). bios_format: - source_ref: "VirconDefinitions/FileFormats.hpp, V32Console.cpp:259-431" + source_ref: "VirconDefinitions/FileFormats.hpp, ConsoleLogic/V32Console.cpp:259-431" note: | A V32 BIOS ROM file must have: - BiosSignature in the header (distinct from CartridgeSignature) @@ -81,7 +81,7 @@ platform_details: cartridge_format: extensions: "v32" - source_ref: "V32Console.cpp:468-696" + source_ref: "ConsoleLogic/V32Console.cpp:468-696" note: | Cartridges use CartridgeSignature with up to 256 textures and 1024 sounds. Program ROM can be up to 128M words (512 MB). diff --git a/emulators/vita3k.yml b/emulators/vita3k.yml index 36c0f655..74411dce 100644 --- a/emulators/vita3k.yml +++ b/emulators/vita3k.yml @@ -3,7 +3,7 @@ type: standalone source: "https://github.com/Vita3K/Vita3K" upstream: "https://github.com/Vita3K/Vita3K" profiled_date: "2026-03-29" -source_commit: "80075ce556a9d5c2c8fbe27f70625fb539d3bbba" +source_commit: "69fd32ef9d00be3f92330b7330d00225e06b598d" core_version: "0.2.1" display_name: "Vita3K (PS Vita)" cores: @@ -47,7 +47,7 @@ files: notes: | Standalone PS Vita emulator. No libretro core. Firmware installed via File > Install Firmware or CLI --firmware flag. - PUP files validated by SCEUF magic header only (pup.cpp:119), no hash check. + PUP files validated by SCEUF magic header only (vita3k/packages/src/pup.cpp:119), no hash check. After install, four partitions are extracted: os0 (FAT, kernel modules), vs0 (FAT, system modules/apps), sa0 (FAT, fonts), pd0 (exFAT, system data/BGM). @@ -55,6 +55,6 @@ notes: | vs0:sys/external/{name}.suprx (firmware). Auto-LLE modules include libhttp, libssl, libult, libsas, libpgf, libfios2, libsystemgesture, libSceXml, libSceSqlite, librudp, libatrac, libface, libsmart, - libsceavplayer, libSceJson, and more (load_module.cpp:142-162). + libsceavplayer, libSceJson, and more (vita3k/module/src/load_module.cpp:142-162). A third optional preinst firmware PUP (pd0 partition: system BGM, resources) is available from Sony but not commonly required for game compatibility. diff --git a/emulators/vitaquake2.yml b/emulators/vitaquake2.yml index 6e860ccd..fffd4114 100644 --- a/emulators/vitaquake2.yml +++ b/emulators/vitaquake2.yml @@ -16,14 +16,14 @@ notes: > (Ground Zero expansion, compiled with -DROGUE), vitaquake2-xatrix (The Reckoning, compiled with -DXATRIX), and vitaquake2-zaero (Zaero mod, compiled with -DZAERO). Each core validates that the content path contains its expected game directory name - (libretro.c:2073-2085,2173) and refuses to load mismatched content. The core + (libretro/libretro.c:2173-2185,2284) and refuses to load mismatched content. The core accepts .pak extensions (retro_get_system_info sets valid_extensions = "pak"). Content is loaded from the PAK file path - the parent of the game subdirectory - becomes basedir (libretro.c:2206-2209), then FS_InitFilesystem (files.c:778) + becomes basedir (libretro/libretro.c:2317-2320), then FS_InitFilesystem (qcommon/files.c:871) adds baseq2/ and loads pak0.pak through pak9.pak sequentially from each game directory. For expansion cores, retro_run passes "+set game rogue|xatrix|zaero" - (libretro.c:2232-2239) so the engine loads both baseq2/ and the expansion - directory. PAK0_CHECKSUM 0x40e614e0 (files.c:30) matches the retail pak0.pak + (libretro/libretro.c:2461-2468) so the engine loads both baseq2/ and the expansion + directory. PAK0_CHECKSUM 0x40e614e0 (qcommon/files.c:30) matches the retail pak0.pak but is only used for directory CRC validation, not as a load gate. PAK files are game data (maps, textures, models, sounds) from the retail game, not engine firmware. No files are required in the RetroArch system directory. diff --git a/emulators/x1.yml b/emulators/x1.yml index fd673a20..e2533cda 100644 --- a/emulators/x1.yml +++ b/emulators/x1.yml @@ -4,7 +4,7 @@ core_classification: community_fork source: "https://github.com/libretro/xmil-libretro" upstream: "http://amethyst.yui.ne.jp/svn/x1/xmil/trunk/" profiled_date: "2026-03-25" -source_commit: "3e7960a433c3bca820f8b8f5511a2b92bd666829" +source_commit: "3106aa54ffb244cca4019a6e95dacaa698781bc3" core_version: "0.60a" display_name: "Sharp X1 (X Millennium)" cores: diff --git a/emulators/x16emu.yml b/emulators/x16emu.yml index 8ec30336..52db5bb8 100644 --- a/emulators/x16emu.yml +++ b/emulators/x16emu.yml @@ -2,7 +2,7 @@ emulator: x16emu type: standalone upstream: "https://github.com/X16Community/x16-emulator" profiled_date: "2026-03-26" -source_commit: "49b1fbd6d058cc8c6f126ed86d9b6ccfaaa8335b" +source_commit: "77f2bab332e24c5456f9844a6c7ddd203f6198e6" core_version: "r50" display_name: "Commander X16 (x16emu)" cores: diff --git a/emulators/xemu.yml b/emulators/xemu.yml index 6a3d307d..f26d34aa 100644 --- a/emulators/xemu.yml +++ b/emulators/xemu.yml @@ -3,7 +3,7 @@ type: standalone source: "https://github.com/xemu-project/xemu" logo: "https://raw.githubusercontent.com/xemu-project/xemu/master/data/xemu_64x64.png" profiled_date: "2026-03-18" -source_commit: "295c13e972338879ff74a3e9f0dd57b35e148c60" +source_commit: "d73326b62199c6dd952ef512947710e1333a49d3" core_version: "0.8.x" display_name: "xemu (Xbox)" cores: diff --git a/emulators/yabasanshiro.yml b/emulators/yabasanshiro.yml index 67718059..688ed909 100644 --- a/emulators/yabasanshiro.yml +++ b/emulators/yabasanshiro.yml @@ -4,7 +4,7 @@ core_classification: official_port source: "https://github.com/libretro/yabause/tree/yabasanshiro" upstream: "https://github.com/devmiyax/yabause" profiled_date: "2026-03-25" -source_commit: "8926b0c6c347f8c5c755911ddb0ac695420ffbf8" +source_commit: "09ed8e5b2e97e7a848ea2514545c34c7b809e399" core_version: "v2.6.8" display_name: "Sega - Saturn (YabaSanshiro)" cores: