diff --git a/emulators/2600-emu.yml b/emulators/2600-emu.yml
index 21eb79ad0..4a889f7a3 100644
--- a/emulators/2600-emu.yml
+++ b/emulators/2600-emu.yml
@@ -7,6 +7,10 @@ profiled_date: "2026-08-11"
source_commit: "1c12fac5ce49badaadff2e2f210dcc30b89f4943"
upstream_commit: "289a40f1b63022b8bbe5b722061c660009d5de2c"
core_version: "1.5.85"
+version_basis:
+ kind: file
+ path: "EmuFramework/metadata/conf.mk"
+ pattern: '^metadata_version\s*=\s*(\S+)'
display_name: "Atari - 2600 (2600.emu)"
mode: standalone
cores:
diff --git a/emulators/2ship.yml b/emulators/2ship.yml
index 8b8c6e53a..dfe5b4dac 100644
--- a/emulators/2ship.yml
+++ b/emulators/2ship.yml
@@ -6,6 +6,10 @@ upstream: "https://github.com/2ship2harkinian/2ship2harkinian"
source_commit: "8a24047fbce8915993804e7819f4df4fa591551f"
profiled_date: "2026-10-20"
core_version: "5.0.1"
+version_basis:
+ kind: tag
+ tag: "5.0.1"
+ distance: 0
display_name: "The Legend of Zelda: Majora's Mask (2 Ship 2 Harkinian)"
cores: [2ship]
systems: [2ship]
diff --git a/emulators/3dsen.yml b/emulators/3dsen.yml
index 01eb8faa0..50d413574 100644
--- a/emulators/3dsen.yml
+++ b/emulators/3dsen.yml
@@ -8,6 +8,9 @@ version_source:
pattern: '
[Vv](?:ersion\s*)?(\d+(?:\.\d+)+)'
profiled_date: "2026-08-07"
core_version: "1.1"
+version_basis:
+ kind: unverified
+ why: no_artifact
display_name: "3dSen (3D NES)"
cores:
- 3dsen
diff --git a/emulators/a7800.yml b/emulators/a7800.yml
index c6a9cc7c5..efbcab113 100644
--- a/emulators/a7800.yml
+++ b/emulators/a7800.yml
@@ -7,6 +7,10 @@ profiled_date: "2026-08-08"
source_commit: "7a2afdc1ea08fc331b16b750d8c1f02d4ef62fc8"
upstream_commit: "39eb9e44c394df9aec8186f2d2ef7517ace232e1"
core_version: "5.2"
+version_basis:
+ kind: file
+ path: "makefile"
+ pattern: '#define BARE_BUILD_VERSION \\?"([^"\\]+)'
display_name: "Atari - 7800 (A7800)"
cores:
- a7800
diff --git a/emulators/abuse.yml b/emulators/abuse.yml
index b0d2c799d..e2def0df1 100644
--- a/emulators/abuse.yml
+++ b/emulators/abuse.yml
@@ -6,6 +6,10 @@ upstream: "https://github.com/Xenoveritas/abuse"
profiled_date: "2026-10-04"
source_commit: "c855a923cd7fb27b629b4e1af78b1fcc5f263d01"
core_version: "v0.9.1"
+version_basis:
+ kind: tag
+ tag: "v0.9.1"
+ distance: 0
display_name: "Abuse"
cores: [abuse]
systems: []
diff --git a/emulators/ace-dl.yml b/emulators/ace-dl.yml
index a3efc25a7..53fa25297 100644
--- a/emulators/ace-dl.yml
+++ b/emulators/ace-dl.yml
@@ -8,6 +8,10 @@ version_source:
pattern: 'New release [^<]* - (\d{4}/\d{2}/\d{2})'
profiled_date: "2026-10-20"
core_version: "2026/10/16"
+version_basis:
+ kind: package
+ url: "https://roudoudou.com/ACE-DL/"
+ artifact: "BNDGEN.tar.gz (ACE-DL Linux x86-64 build), release date on the download page"
display_name: "Amstrad - CPC/Plus (ACE-DL)"
cores:
- ace-dl
diff --git a/emulators/advanced_drastic.yml b/emulators/advanced_drastic.yml
index 541d8251c..620b41e0a 100644
--- a/emulators/advanced_drastic.yml
+++ b/emulators/advanced_drastic.yml
@@ -8,6 +8,10 @@ profiled_date: "2026-10-22"
source_commit: "eaf41ab9bc8adcc15c010bf9517bc94c38e7bffd"
pin_frozen: "KNULLI, the only platform that ships it, builds this revision (KNULLI package/emulators/advanced_drastic/advanced_drastic.mk:7 at tag 20260511). Later commits are not part of that build."
core_version: "r2.5.2.0"
+version_basis:
+ kind: file
+ path: "drastic"
+ pattern: "Version (r[0-9][0-9.]+[0-9])"
display_name: "Nintendo - DS (advanced_drastic)"
cores:
- "advanced_drastic"
diff --git a/emulators/aethersx2.yml b/emulators/aethersx2.yml
index ba3a0c004..ae3851eb9 100644
--- a/emulators/aethersx2.yml
+++ b/emulators/aethersx2.yml
@@ -8,6 +8,11 @@ profiled_date: "2026-08-11"
source_commit: "1d1f795dfc70e38da67724c7298779260f513889"
upstream_commit: "f0523f8acb1d3a765ee73b74cffec63093569199"
core_version: "1.5-3939"
+version_basis:
+ kind: package
+ url: "https://web.archive.org/web/20230320102332/https://www.aethersx2.com/archive/desktop/mac/AetherSX2-v1.5-3939-mac.zip"
+ pattern: 'AetherSX2-v([0-9.]+-[0-9]+)-mac\.zip'
+ artifact: "AetherSX2-v1.5-3939-mac.zip"
display_name: "Sony - PlayStation 2 (AetherSX2)"
cores:
- aethersx2
diff --git a/emulators/ags.yml b/emulators/ags.yml
index ff986e7e5..6aa46a1fa 100644
--- a/emulators/ags.yml
+++ b/emulators/ags.yml
@@ -5,7 +5,11 @@ source: "https://github.com/adventuregamestudio/ags"
source_branch: release-3.6.0
source_commit: "6802bad8dc3189462003d4a169fc591f64cfb9b6"
profiled_date: "2026-10-20"
-core_version: "3.6.0.60"
+core_version: "v3.6.0.60"
+version_basis:
+ kind: tag
+ tag: "v3.6.0.60"
+ distance: 0
display_name: "Adventure Game Studio (AGS)"
cores:
- ags
diff --git a/emulators/alephone.yml b/emulators/alephone.yml
index a44938d6c..d0dfaf1a6 100644
--- a/emulators/alephone.yml
+++ b/emulators/alephone.yml
@@ -6,7 +6,11 @@ upstream: "https://github.com/Aleph-One-Marathon/alephone"
profiled_date: "2026-10-20"
source_commit: "07a9c36aff403d143a0608815f725631a01e382c"
pin_frozen: "RetroPie, the only platform that ships it, builds the release-20250829 tag at this commit (scriptmodules/ports/alephone.sh, _get_branch_alephone). Debian 10 and older get release-20250302."
-core_version: "1.11 (20250829)"
+core_version: "release-20250829"
+version_basis:
+ kind: tag
+ tag: "release-20250829"
+ distance: 0
display_name: "Marathon (Aleph One)"
cores:
- alephone
diff --git a/emulators/altirra.yml b/emulators/altirra.yml
index 6497c0a66..0c8f070e9 100644
--- a/emulators/altirra.yml
+++ b/emulators/altirra.yml
@@ -8,6 +8,11 @@ version_source:
pattern: 'Current version
\s*\s*Altirra (\d+\.\d+)'
profiled_date: "2026-08-11"
core_version: "4.40"
+version_basis:
+ kind: package
+ url: "https://www.virtualdub.org/downloads/Altirra-4.40-src.7z"
+ pattern: 'Altirra-(\d+\.\d+)-src\.7z'
+ artifact: "Altirra-4.40-src.7z"
display_name: "Atari - 400/800/1200XL/XL/XE/XEGS/5200 (Altirra)"
cores: [altirra]
found_by: content
diff --git a/emulators/aps3e.yml b/emulators/aps3e.yml
index 8ab2d6ddc..92b387d3c 100644
--- a/emulators/aps3e.yml
+++ b/emulators/aps3e.yml
@@ -8,7 +8,11 @@ profiled_date: "2026-10-06"
source_commit: "c6ca18217f2f1563235f83d94df78e35423a1720"
upstream_commit: "1f080485b95db2700c5cf244b1314f73b6cf564e"
upstream_frozen: "RPCS3 is vendored whole under app/src/main/cpp/rpcs3 at this commit, the tree the 2.43 release reports as 20071-1f080485."
-core_version: "2.43"
+core_version: "1.37-47-gc6ca182"
+version_basis:
+ kind: tag
+ tag: "1.37"
+ distance: 47
display_name: "Sony - PlayStation 3 (aPS3e)"
cores:
- aps3e
diff --git a/emulators/arcadeduck.yml b/emulators/arcadeduck.yml
index 829d83610..1df81f16e 100644
--- a/emulators/arcadeduck.yml
+++ b/emulators/arcadeduck.yml
@@ -6,7 +6,11 @@ upstream: "https://github.com/stenzek/duckstation"
source_commit: "80cdb6da6b51d687192a6346efe4499b10fe4faf"
upstream_commit: "526b4a128827ecaef037134095cd95f431b52d06"
profiled_date: "2026-10-26"
-core_version: "0.6.0"
+core_version: "0.6.0-dev"
+version_basis:
+ kind: file
+ path: "src/scmversion/arcadeduck_version.h"
+ pattern: '#define\s+ARCADEDUCK_SEMANTIC_VERSION\s+"([^"]+)"'
display_name: "Arcade - Sony ZN-1, Namco System 11, Konami GV/GQ (ArcadeDuck)"
cores:
- arcadeduck
diff --git a/emulators/arcadeflashweb.yml b/emulators/arcadeflashweb.yml
index 3a3803863..9d2931b9c 100644
--- a/emulators/arcadeflashweb.yml
+++ b/emulators/arcadeflashweb.yml
@@ -6,6 +6,10 @@ upstream: "https://github.com/aureyoboss/ArcadeFlashWeb"
profiled_date: "2026-08-11"
source_commit: "5de66e0cd69b48721a094887a28d042f71ddad08"
core_version: "1.0.2"
+version_basis:
+ kind: file
+ path: "src/ArcadeFlashWeb.pro"
+ pattern: '^VERSION\s*\+?=\s*(\S+)'
display_name: "Adobe Flash (ArcadeFlashWeb)"
cores:
- arcadeflashweb
diff --git a/emulators/ares.yml b/emulators/ares.yml
index 274cc2eed..be9726309 100644
--- a/emulators/ares.yml
+++ b/emulators/ares.yml
@@ -4,7 +4,12 @@ source: "https://github.com/ares-emulator/ares"
upstream: "https://github.com/ares-emulator/ares"
profiled_date: "2026-10-23"
source_commit: "d400eee9764fe22a8de0247a52757d2021d0539c"
-core_version: "v148"
+core_version: "v148-143-gd400eee"
+version_basis:
+ kind: tag
+ match: "v[0-9]*"
+ tag: "v148"
+ distance: 143
display_name: "ares"
cores: [ares, "ares-sa"]
mode: standalone
diff --git a/emulators/armsx1.yml b/emulators/armsx1.yml
index a0c75a604..c54c7fc9d 100644
--- a/emulators/armsx1.yml
+++ b/emulators/armsx1.yml
@@ -7,6 +7,10 @@ upstream: "https://github.com/allkern/psxe"
profiled_date: "2026-10-26"
source_commit: "d96a5b8ad6ccccb40a431488aa89b06f0318c217"
core_version: "0.3.6"
+version_basis:
+ kind: file
+ path: "android/app/build.gradle"
+ pattern: 'armsxVersionName\s*=\s*\(project\.findProperty\(.armsx\.versionName.\)\s*\?:\s*.([^\x27"]+).'
display_name: "Sony - PlayStation (ARMSX1)"
verification: md5
found_by: content
diff --git a/emulators/ax360e.yml b/emulators/ax360e.yml
index 2dd253705..57b01d8a6 100644
--- a/emulators/ax360e.yml
+++ b/emulators/ax360e.yml
@@ -8,7 +8,9 @@ profiled_date: "2026-08-11"
source_commit: "b8c1838f21761ac463724e24105eda97b990e704"
upstream_commit: "dc561e4df578c903087f9bdf56ff61d9ef9f2a93"
upstream_frozen: "The xenia-canary tree vendored under app/src/main/cpp/xenia-canary is canary_experimental at this commit."
-core_version: "1.18"
+core_version: null
+version_basis:
+ kind: none
display_name: "Microsoft - Xbox 360 (aX360e)"
cores:
- ax360e
diff --git a/emulators/azahar-sdl.yml b/emulators/azahar-sdl.yml
index 3a146374e..126f775b3 100644
--- a/emulators/azahar-sdl.yml
+++ b/emulators/azahar-sdl.yml
@@ -5,7 +5,11 @@ source: "https://github.com/johndoe6345789/azahar_libretro"
profiled_date: "2026-10-22"
source_commit: "c8d39853c1ebacc5657e51d601713a09404ca8a7"
pin_frozen: "KNULLI, the only platform that ships it, builds this revision (KNULLI package/emulators/azahar/azahar.mk:7 at tag 20260511). Later commits are not part of that build."
-core_version: "Git"
+core_version: "2122-rc1-178-gc8d3985"
+version_basis:
+ kind: tag
+ tag: "2122-rc1"
+ distance: 178
display_name: "Nintendo - 3DS (Azahar SDL2)"
mode: standalone
cores: ["azahar"]
diff --git a/emulators/azaharplus.yml b/emulators/azaharplus.yml
index 107d3f637..27344f222 100644
--- a/emulators/azaharplus.yml
+++ b/emulators/azaharplus.yml
@@ -5,7 +5,11 @@ source: "https://github.com/AzaharPlus/AzaharPlus"
upstream: "https://github.com/AzaharPlus/AzaharPlus"
profiled_date: "2026-08-08"
source_commit: "cf9068844820f819a6eabbeeeb6a70d546e3e85a"
-core_version: "2126.0-A"
+core_version: "AZAHAR_PLUS_2126_2_A"
+version_basis:
+ kind: tag
+ tag: "AZAHAR_PLUS_2126_2_A"
+ distance: 0
display_name: "Nintendo - 3DS (AzaharPlus)"
cores:
- azaharplus
diff --git a/emulators/basiliskii.yml b/emulators/basiliskii.yml
index 23cf2b01d..718468f7b 100644
--- a/emulators/basiliskii.yml
+++ b/emulators/basiliskii.yml
@@ -5,6 +5,11 @@ upstream: "https://github.com/cebix/macemu"
profiled_date: "2026-08-08"
source_commit: "96e512bd6376e78a2869f16dcc8a9028bce5ee72"
core_version: "1.0"
+version_basis:
+ kind: file
+ path: "BasiliskII/src/include/version.h"
+ pattern: 'const int VERSION_MAJOR = (\d+);\s*\nconst int VERSION_MINOR = (\d+);'
+ format: "{1}.{2}"
display_name: "Apple - Macintosh 68k (Basilisk II)"
cores:
- basiliskii
diff --git a/emulators/beebem.yml b/emulators/beebem.yml
index 2ae84f1b7..d0bd0654c 100644
--- a/emulators/beebem.yml
+++ b/emulators/beebem.yml
@@ -6,6 +6,10 @@ upstream: "https://github.com/stardot/beebem-windows"
profiled_date: "2026-08-11"
source_commit: "a982ba6a74af09e801c296b29d514dbd4da09b94"
core_version: "4.19"
+version_basis:
+ kind: file
+ path: "Src/Version.h"
+ pattern: '#define\s+VERSION_STRING\s+"([^"]+)'
display_name: "Acorn - BBC Micro (BeebEm)"
cores: [beebem]
systems:
diff --git a/emulators/bennugd-monolithic.yml b/emulators/bennugd-monolithic.yml
index ff6cf19ae..3af70c233 100644
--- a/emulators/bennugd-monolithic.yml
+++ b/emulators/bennugd-monolithic.yml
@@ -4,7 +4,11 @@ core_classification: game_engine
source: "https://github.com/christianhaitian/bennugd-monolithic"
profiled_date: "2026-10-22"
source_commit: "60ee3389efcf9b402d66035e87f33d17d70cbd83"
-core_version: "git"
+core_version: "1.0.0"
+version_basis:
+ kind: file
+ path: "projects/cmake/include/common_defs.cmake"
+ pattern: '-DVERSION="([^"]+)"'
display_name: "Bennu Game Development (bennugd-monolithic)"
cores:
- "bgdi"
diff --git a/emulators/bermuda.yml b/emulators/bermuda.yml
index aceebc460..491a432e8 100644
--- a/emulators/bermuda.yml
+++ b/emulators/bermuda.yml
@@ -5,6 +5,10 @@ source: "https://github.com/cyxx/bermuda"
profiled_date: "2026-10-22"
source_commit: "cf6bdb68d53a1618967da565a44c931b15daf791"
core_version: "0.1.7"
+version_basis:
+ kind: file
+ path: "main_libretro.cpp"
+ pattern: 'static\s+const\s+char\s+\*kVersion\s+=\s+"([^"]+)'
display_name: "Bermuda Syndrome (bs)"
cores:
- "bs"
diff --git a/emulators/bigpemu.yml b/emulators/bigpemu.yml
index 7f0ecbf10..7c3d28564 100644
--- a/emulators/bigpemu.yml
+++ b/emulators/bigpemu.yml
@@ -7,6 +7,12 @@ version_source:
pattern: 'Current Version: ([0-9.]+)'
profiled_date: "2026-10-20"
core_version: "1.221"
+version_basis:
+ kind: package
+ url: "https://www.richwhitehouse.com/jaguar/builds/BigPEmu_Linux64_v1221.tar.gz"
+ pattern: 'BigPEmu_Linux64_v(\d)(\d+)\.tar\.gz'
+ format: "{1}.{2}"
+ artifact: "BigPEmu_Linux64_v1221.tar.gz"
display_name: "BigPEmu (Atari Jaguar)"
cores:
- bigpemu
diff --git a/emulators/bizhawk.yml b/emulators/bizhawk.yml
index 4b0647243..2d727fc13 100644
--- a/emulators/bizhawk.yml
+++ b/emulators/bizhawk.yml
@@ -5,6 +5,10 @@ source: "https://github.com/TASEmulators/BizHawk"
source_commit: "bdddf4a58aa1a022afb11dc73294a81a5aa7bbd5"
profiled_date: "2026-10-20"
core_version: "2.11.1"
+version_basis:
+ kind: tag
+ tag: "2.11.1"
+ distance: 0
display_name: "Multi-system (BizHawk EmuHawk)"
cores:
- bizhawk
diff --git a/emulators/bstone.yml b/emulators/bstone.yml
index 643dd76a7..d7f4dbb2e 100644
--- a/emulators/bstone.yml
+++ b/emulators/bstone.yml
@@ -6,6 +6,10 @@ upstream: "https://github.com/bibendovsky/bstone"
profiled_date: "2026-10-04"
source_commit: "e65a6b40b960a409d7ea840580c2431f56fb6fd4"
core_version: "v1.3.4"
+version_basis:
+ kind: tag
+ tag: "v1.3.4"
+ distance: 0
display_name: "Blake Stone (BStone)"
cores: [bstone]
systems: [blake-stone]
diff --git a/emulators/bsyndrome.yml b/emulators/bsyndrome.yml
index 7fa271a45..48021079f 100644
--- a/emulators/bsyndrome.yml
+++ b/emulators/bsyndrome.yml
@@ -6,6 +6,10 @@ upstream: "https://github.com/cyxx/bermuda"
source_commit: "c3aaa0337daca116eab5804456673bd01396bbb4"
profiled_date: "2026-10-20"
core_version: "0.1.7"
+version_basis:
+ kind: tag
+ tag: "0.1.7"
+ distance: 0
display_name: "Bermuda Syndrome (bs)"
cores: [bsyndrome]
systems: [bsyndrome]
diff --git a/emulators/c64-emu.yml b/emulators/c64-emu.yml
index f437bcfb3..91c6a7db3 100644
--- a/emulators/c64-emu.yml
+++ b/emulators/c64-emu.yml
@@ -7,6 +7,10 @@ profiled_date: "2026-08-11"
source_commit: "1c12fac5ce49badaadff2e2f210dcc30b89f4943"
upstream_commit: "46b1bc4393251f838ce3dadd241c1f567d9371d1"
core_version: "1.5.85"
+version_basis:
+ kind: file
+ path: "EmuFramework/CMakeLists.txt"
+ pattern: 'project\(\s*EmuFramework\s+VERSION\s+([0-9.]+)'
display_name: "Commodore - C64 (C64.emu)"
mode: standalone
cores:
diff --git a/emulators/capriceforever.yml b/emulators/capriceforever.yml
index 0abad5171..aa49293db 100644
--- a/emulators/capriceforever.yml
+++ b/emulators/capriceforever.yml
@@ -5,6 +5,10 @@ source: "https://www.retrobat.org/repo/win64/stable/emulators/capriceforever.7z"
upstream: closed-source
profiled_date: "2026-10-20"
core_version: "26.4"
+version_basis:
+ kind: package
+ url: "https://www.retrobat.org/repo/win64/stable/emulators/capriceforever.7z"
+ artifact: "capriceforever.7z, Caprice.exe version resource ProductVersion"
display_name: "Amstrad - CPC / PLUS (CaPriCe Forever)"
cores:
- capriceforever
diff --git a/emulators/capricerpi.yml b/emulators/capricerpi.yml
index 31d354280..75743e032 100644
--- a/emulators/capricerpi.yml
+++ b/emulators/capricerpi.yml
@@ -5,7 +5,11 @@ source: "https://github.com/KaosOverride/CapriceRPI"
upstream: "https://sourceforge.net/projects/caprice32/"
source_commit: "7d86ebdc6a5e645220c6f30cf407ac57c3256054"
profiled_date: "2026-10-20"
-core_version: "1.3c"
+core_version: "V1.3d"
+version_basis:
+ kind: file
+ path: "src/cap32.h"
+ pattern: '#define\s+VERSION_STRING\s+"\s*(V[0-9][^ ]*)'
display_name: "Amstrad - CPC (CapriceRPI)"
cores:
- capricerpi
diff --git a/emulators/catacombgl.yml b/emulators/catacombgl.yml
index 44d52027e..051201f8e 100644
--- a/emulators/catacombgl.yml
+++ b/emulators/catacombgl.yml
@@ -6,6 +6,11 @@ upstream: "https://github.com/ArnoAnsems/CatacombGL"
profiled_date: "2026-10-04"
source_commit: "d11ba549382278cbc67ba6171faf8af338e29f77"
core_version: "0.5.7 Beta"
+version_basis:
+ kind: file
+ path: "src/Engine/EngineCore.cpp"
+ pattern: 'versionMajor\s*=\s*(\d+);\s*\n.*versionMinor\s*=\s*(\d+);\s*\n.*versionLevel\s*=\s*(\d+);\s*\n.*versionPhase\s*=\s*"([^"]+)"'
+ format: "{1}.{2}.{3} {4}"
display_name: "Catacomb 3-D (CatacombGL)"
cores: [catacombgl]
systems: [catacomb-3d, catacomb-adventure]
diff --git a/emulators/ccleste.yml b/emulators/ccleste.yml
index 716025b45..2422cc459 100644
--- a/emulators/ccleste.yml
+++ b/emulators/ccleste.yml
@@ -4,7 +4,11 @@ core_classification: game_engine
source: "https://github.com/lemon32767/ccleste"
profiled_date: "2026-10-22"
source_commit: "261d96f15af430b8111abc7a5250229246654f52"
-core_version: "git"
+core_version: "v1.4.0"
+version_basis:
+ kind: tag
+ tag: "v1.4.0"
+ distance: 0
display_name: "Celeste Classic (ccleste)"
cores:
- "ccleste"
diff --git a/emulators/cdogs.yml b/emulators/cdogs.yml
index fd0acf3da..679a2eb5b 100644
--- a/emulators/cdogs.yml
+++ b/emulators/cdogs.yml
@@ -6,6 +6,11 @@ upstream: "https://github.com/cxong/cdogs-sdl"
profiled_date: "2026-10-27"
source_commit: "c70d1feaf9d89cf80e23265b256d9a364848e6ea"
core_version: "2.5.0"
+version_basis:
+ kind: file
+ path: "CMakeLists.txt"
+ pattern: 'set\(VERSION_MAJOR "(\d+)"\)\s*\nset\(VERSION_MINOR "(\d+)"\)\s*\nset\(VERSION_PATCH "(\d+)"\)'
+ format: "{1}.{2}.{3}"
display_name: "C-Dogs"
cores: [cdogs, cdogs-sdl]
systems: []
diff --git a/emulators/cgenius.yml b/emulators/cgenius.yml
index a94708f0c..4ca0e5e17 100644
--- a/emulators/cgenius.yml
+++ b/emulators/cgenius.yml
@@ -5,7 +5,11 @@ source: "https://gitlab.com/Dringgstein/Commander-Genius"
upstream: "https://gitlab.com/Dringgstein/Commander-Genius"
profiled_date: "2026-10-27"
source_commit: "58a3c4fd0782fa2a087e38a039599b2ecf69ccc9"
-core_version: "v3.6.4"
+core_version: "3.6.4-Release"
+version_basis:
+ kind: file
+ path: "version.h"
+ pattern: '#define\s+CGVERSION\s+"([^"]+)"'
display_name: "Commander Genius"
cores: [cgenius, "CGeniusExe"]
systems: [commander-keen]
diff --git a/emulators/chihiro-ds.yml b/emulators/chihiro-ds.yml
index f5866a55a..1a0c0d505 100644
--- a/emulators/chihiro-ds.yml
+++ b/emulators/chihiro-ds.yml
@@ -5,6 +5,10 @@ source: "https://www.retrobat.org/repo/win64/stable/emulators/chihiro-ds.7z"
upstream: closed-source
profiled_date: "2026-10-20"
core_version: "1.0 (Mar 14 2025)"
+version_basis:
+ kind: package
+ url: "https://www.retrobat.org/repo/win64/stable/emulators/chihiro-ds.7z"
+ artifact: "chihiro-ds.7z, build string in cxbx.exe and cxbxr-emu.dll"
display_name: "Sega - Chihiro (Chihiro-DS)"
cores:
- chihiro-gun
diff --git a/emulators/chocolate-doom.yml b/emulators/chocolate-doom.yml
index 2cd08418f..b3f416c2e 100644
--- a/emulators/chocolate-doom.yml
+++ b/emulators/chocolate-doom.yml
@@ -6,6 +6,10 @@ profiled_date: "2026-10-22"
source_commit: "72d9e9318c4ccc61dab29bb9cc30bc8a9a93266d"
pin_frozen: "EmuELEC, the only platform that ships it, builds this revision (EmuELEC packages/sx05re/emuelec-ports/chocolate-doom/package.mk:5). Later commits are not part of that build."
core_version: "3.0.0"
+version_basis:
+ kind: file
+ path: "configure.ac"
+ pattern: 'AC_INIT\(Chocolate\s+Doom,\s+([0-9][\w.+-]*)'
display_name: "Doom (Chocolate Doom)"
cores:
- "Chocolate-Doom"
diff --git a/emulators/citra-mmj.yml b/emulators/citra-mmj.yml
index 3a079f61e..a9458d166 100644
--- a/emulators/citra-mmj.yml
+++ b/emulators/citra-mmj.yml
@@ -6,6 +6,10 @@ upstream: "https://github.com/weihuoya/citra"
profiled_date: "2026-08-11"
source_commit: "9198dc24df2eb534b8fe7fa1c5c457081a7244ab"
core_version: "20251112"
+version_basis:
+ kind: tag
+ tag: "20251112"
+ distance: 0
display_name: "Nintendo - 3DS (Citra MMJ)"
cores:
- citra-mmj
diff --git a/emulators/citron.yml b/emulators/citron.yml
index 2ff13f8f5..d4b5a25ed 100644
--- a/emulators/citron.yml
+++ b/emulators/citron.yml
@@ -6,6 +6,9 @@ upstream: "https://git.citron-emu.org/citron-emu/Citron"
profiled_date: "2026-03-26"
upstream_gone: "git.citron-emu.org no longer resolves, and git.citron-emu.com redirects to an unrelated survey site, the domain having been taken. Observed 2026-09-04, no mirror found."
core_version: "2026.03.12"
+version_basis:
+ kind: unverified
+ why: host_gone
display_name: "Citron (Nintendo Switch)"
cores:
- citron
diff --git a/emulators/clk.yml b/emulators/clk.yml
index fc04a8c9b..a0259ca14 100644
--- a/emulators/clk.yml
+++ b/emulators/clk.yml
@@ -4,7 +4,11 @@ source: "https://github.com/TomHarte/CLK"
upstream: "https://github.com/TomHarte/CLK"
profiled_date: "2026-03-26"
source_commit: "9020107b563b68595ffdb6ef18aacdec85c78d69"
-core_version: "2026-07-28"
+core_version: "2026-07-23-136-g9020107"
+version_basis:
+ kind: tag
+ tag: "2026-07-23"
+ distance: 136
display_name: "Clock Signal"
cores: [clk]
systems:
diff --git a/emulators/colem.yml b/emulators/colem.yml
index e13f8f719..c958b3368 100644
--- a/emulators/colem.yml
+++ b/emulators/colem.yml
@@ -8,6 +8,12 @@ version_source:
pattern: 'The Latest Version of ColEm is (\d+(?:\.\d+)+)'
profiled_date: "2026-08-08"
core_version: "5.6"
+version_basis:
+ kind: package
+ url: "https://fms.komkon.org/ColEm/ColEm56-Source.zip"
+ pattern: 'ColEm(\d)(\d+)-Source\.zip'
+ format: "{1}.{2}"
+ artifact: "ColEm56-Source.zip"
display_name: "Coleco - ColecoVision / Adam (ColEm)"
cores:
- colem
diff --git a/emulators/coolcv.yml b/emulators/coolcv.yml
index b0927cec8..2a8920e4a 100644
--- a/emulators/coolcv.yml
+++ b/emulators/coolcv.yml
@@ -5,6 +5,10 @@ source: "https://files.retropie.org.uk/archives/coolcv.tar.gz"
upstream: "http://nanochess.org/"
profiled_date: "2026-10-20"
core_version: "0.6.2"
+version_basis:
+ kind: package
+ url: "https://files.retropie.org.uk/archives/coolcv.tar.gz"
+ artifact: "coolcv.tar.gz, latest entry of coolcv.txt"
display_name: "Coleco - ColecoVision / Adam (CoolCV)"
cores:
- coolcv
diff --git a/emulators/corsixth.yml b/emulators/corsixth.yml
index 06b6dc9cf..e5a4f5009 100644
--- a/emulators/corsixth.yml
+++ b/emulators/corsixth.yml
@@ -5,7 +5,11 @@ source: "https://github.com/CorsixTH/CorsixTH"
upstream: ~
profiled_date: "2026-10-04"
source_commit: "e5668b9b2a6f59c492b2446821528d67f5d0ee53"
-core_version: "0.70.1"
+core_version: "v0.70.1-263-ge5668b9"
+version_basis:
+ kind: tag
+ tag: "v0.70.1"
+ distance: 263
display_name: "Theme Hospital (CorsixTH)"
cores: [corsixth]
systems: [theme-hospital]
diff --git a/emulators/cpcemu.yml b/emulators/cpcemu.yml
index 4ef0637dd..d98a99f02 100644
--- a/emulators/cpcemu.yml
+++ b/emulators/cpcemu.yml
@@ -8,6 +8,11 @@ version_source:
pattern: 'CPCemu (\d+(?:\.\d+)+) released'
profiled_date: "2026-08-08"
core_version: "3.0.2"
+version_basis:
+ kind: package
+ url: "https://cpc-emu.org/Release/2025-04-24/cpcemu_portable-win32-x86-3.0.2.zip"
+ pattern: 'cpcemu_portable-win32-x86-(\d+(?:\.\d+)+)\.zip'
+ artifact: "cpcemu_portable-win32-x86-3.0.2.zip"
display_name: "Amstrad - CPC (CPCemu)"
cores:
- cpcemu
diff --git a/emulators/cspect.yml b/emulators/cspect.yml
index c203099b6..fde57e9e5 100644
--- a/emulators/cspect.yml
+++ b/emulators/cspect.yml
@@ -8,6 +8,10 @@ version_source:
pattern: 'v(\d+(?:\.\d+)+)'
profiled_date: "2026-08-11"
core_version: "3.3.1.0"
+version_basis:
+ kind: package
+ url: "https://mdf200.itch.io/cspect"
+ artifact: "CSpect zip from itch.io, CSpect.exe and ReadMe.txt"
display_name: "Sinclair - ZX Spectrum Next (#CSpect)"
verification: existence
cores: [cspect]
diff --git a/emulators/cxbx-reloaded-2023.yml b/emulators/cxbx-reloaded-2023.yml
index cbab84656..b213b70e2 100644
--- a/emulators/cxbx-reloaded-2023.yml
+++ b/emulators/cxbx-reloaded-2023.yml
@@ -5,6 +5,10 @@ source: "https://github.com/Cxbx-Reloaded/Cxbx-Reloaded"
profiled_date: "2026-10-20"
source_commit: "31ff15ba1d91a9a00221546c665efb133889f53a"
core_version: "CI-31ff15b"
+version_basis:
+ kind: tag
+ tag: "CI-31ff15b"
+ distance: 0
display_name: "Microsoft - Xbox / Sega Chihiro (Cxbx-Reloaded 31ff15b)"
cores:
- chihiro
diff --git a/emulators/cxbx-reloaded.yml b/emulators/cxbx-reloaded.yml
index 7ff643890..e7716e748 100644
--- a/emulators/cxbx-reloaded.yml
+++ b/emulators/cxbx-reloaded.yml
@@ -6,6 +6,10 @@ upstream: "https://github.com/Cxbx-Reloaded/Cxbx-Reloaded"
profiled_date: "2026-08-11"
source_commit: "585c49a50af1255ab155099e06f24505f9c5a800"
core_version: "CI-585c49a"
+version_basis:
+ kind: tag
+ tag: "CI-585c49a"
+ distance: 0
display_name: "Microsoft - Xbox / Sega Chihiro (Cxbx-Reloaded)"
cores:
- cxbx-reloaded
diff --git a/emulators/daedalusx64.yml b/emulators/daedalusx64.yml
index b465f1c2c..526976ff1 100644
--- a/emulators/daedalusx64.yml
+++ b/emulators/daedalusx64.yml
@@ -5,7 +5,11 @@ source: "https://github.com/DaedalusX64/daedalus"
profiled_date: "2026-10-17"
source_commit: "f17e9ed86f3806fadeb69abd29c9526ab2d4bd1b"
pin_frozen: "ROCKNIX 20261001 builds this revision. Later upstream commits are not part of that build."
-core_version: "Git"
+core_version: "1.1.8-837-gf17e9ed"
+version_basis:
+ kind: tag
+ tag: "1.1.8"
+ distance: 837
display_name: "Nintendo - 64 (DaedalusX64)"
cores:
- "daedalusx64"
diff --git a/emulators/darkplaces.yml b/emulators/darkplaces.yml
index 5d9e56e45..f0a8655c8 100644
--- a/emulators/darkplaces.yml
+++ b/emulators/darkplaces.yml
@@ -6,7 +6,11 @@ upstream: "https://github.com/xonotic/darkplaces"
source_branch: div0-stable
profiled_date: "2026-10-20"
source_commit: "ddabe55ae766087df0b82d214ca4b6d79a443345"
-core_version: "div0-stable"
+core_version: "xonotic-v0.8.6-2-gddabe55"
+version_basis:
+ kind: tag
+ tag: "xonotic-v0.8.6"
+ distance: 2
display_name: "Quake (DarkPlaces)"
cores:
- darkplaces-quake
diff --git a/emulators/demul.yml b/emulators/demul.yml
index 0664138f5..25227d87f 100644
--- a/emulators/demul.yml
+++ b/emulators/demul.yml
@@ -6,6 +6,9 @@ version_source:
pattern: '
\[[^\]]*\] DEmul (\d+\.\d+)'
profiled_date: "2026-03-26"
core_version: "0.7"
+version_basis:
+ kind: unverified
+ why: no_artifact
display_name: "Sega - Dreamcast/NAOMI/Hikaru (Demul)"
cores:
- demul
diff --git a/emulators/devilutionx.yml b/emulators/devilutionx.yml
index 038e0c468..0c7dfcb13 100644
--- a/emulators/devilutionx.yml
+++ b/emulators/devilutionx.yml
@@ -6,6 +6,10 @@ upstream: ~
profiled_date: "2026-10-04"
source_commit: "9d4871587e1a8d9606f97a43d85e939b82f77900"
core_version: "1.6.0-dev"
+version_basis:
+ kind: file
+ path: "VERSION"
+ pattern: '^(\S+)$'
display_name: "Diablo (DevilutionX)"
cores: [devilutionx]
systems: [diablo]
diff --git a/emulators/dgen.yml b/emulators/dgen.yml
index d48858408..2fd22f363 100644
--- a/emulators/dgen.yml
+++ b/emulators/dgen.yml
@@ -5,6 +5,9 @@ source: "https://sourceforge.net/p/dgen/dgen"
profiled_date: "2026-10-20"
source_commit: "1c196e63d3e35704a97a2cef60def9df3c9fd1ce"
core_version: "1.33"
+version_basis:
+ kind: unverified
+ why: host_unsupported
display_name: "Sega - Mega Drive - Genesis (DGen/SDL)"
mode: standalone
cores:
diff --git a/emulators/dhewm3.yml b/emulators/dhewm3.yml
index 38a002c37..35b19d0db 100644
--- a/emulators/dhewm3.yml
+++ b/emulators/dhewm3.yml
@@ -6,6 +6,10 @@ upstream: "https://github.com/dhewm/dhewm3"
profiled_date: "2026-10-04"
source_commit: "455b88e8dff2be822f08eb498f51b383e851fa38"
core_version: "1.5.5"
+version_basis:
+ kind: tag
+ tag: "1.5.5"
+ distance: 0
display_name: "dhewm3"
cores: []
systems: [doom3]
diff --git a/emulators/dolphin-mmjr.yml b/emulators/dolphin-mmjr.yml
index ce9095ae6..932b85f63 100644
--- a/emulators/dolphin-mmjr.yml
+++ b/emulators/dolphin-mmjr.yml
@@ -7,6 +7,10 @@ profiled_date: "2026-08-11"
source_commit: "1b095b64857c2eabb49a42cc56ffd9d7881bc263"
upstream_commit: "0f4c971326ae9389b3ad55b0fefacb708d148f4d"
core_version: "11460 - bankaimaster999"
+version_basis:
+ kind: file
+ path: "Source/Android/app/build.gradle"
+ pattern: 'return versionNumber \+ "([^"]+)"'
display_name: "Nintendo - GameCube / Wii (Dolphin MMJR)"
cores:
- dolphin-mmjr
diff --git a/emulators/dolphin-mmjr2.yml b/emulators/dolphin-mmjr2.yml
index 83eecabed..16f2e81ea 100644
--- a/emulators/dolphin-mmjr2.yml
+++ b/emulators/dolphin-mmjr2.yml
@@ -7,6 +7,10 @@ profiled_date: "2026-08-11"
source_commit: "4d0fdb8eea616320e967408cf5547c72a95196f3"
upstream_commit: "3eb30c7620b4475b2e0404228ba0d2b238a132f1"
core_version: "2.0-18025"
+version_basis:
+ kind: file
+ path: "Source/Android/app/build.gradle"
+ pattern: 'def getVersion\(\)\s*\{\s*return \u0027([^\u0027]+)\u0027'
display_name: "Nintendo - GameCube / Wii (Dolphin MMJR2)"
cores:
- dolphin-mmjr2
diff --git a/emulators/dosbox-pure-unleashed.yml b/emulators/dosbox-pure-unleashed.yml
index 6d499708b..0a93e2e21 100644
--- a/emulators/dosbox-pure-unleashed.yml
+++ b/emulators/dosbox-pure-unleashed.yml
@@ -8,6 +8,10 @@ upstream_commit: "7f6e8fb7385fa446d1444d671063268520bf9b54"
logo: "https://raw.githubusercontent.com/schellingb/dosbox-pure-unleashed/main/images/logo.png"
profiled_date: "2026-08-08"
core_version: "1.0-preview6"
+version_basis:
+ kind: tag
+ tag: "1.0-preview6"
+ distance: 0
display_name: "DOS (DOSBox Pure Unleashed)"
cores:
- dosbox-pure-unleashed
diff --git a/emulators/dosbox-sdl2.yml b/emulators/dosbox-sdl2.yml
index 205a970e2..c2bba4ae0 100644
--- a/emulators/dosbox-sdl2.yml
+++ b/emulators/dosbox-sdl2.yml
@@ -5,7 +5,11 @@ source: "https://github.com/duganchen/dosbox"
upstream: "https://sourceforge.net/projects/dosbox/"
profiled_date: "2026-10-20"
source_commit: "e6b88ad03202d1f74e329f54f213d3b070bd6202"
-core_version: "0.74-2"
+core_version: "r3911-xbrz-428-ge6b88ad"
+version_basis:
+ kind: tag
+ tag: "r3911-xbrz"
+ distance: 428
display_name: "DOS (DOSBox SDL2)"
cores: [dosbox-sdl2, "DOSBOXSDL2"]
systems: [dos]
diff --git a/emulators/dosbox-staging.yml b/emulators/dosbox-staging.yml
index 1739d9975..689a536d4 100644
--- a/emulators/dosbox-staging.yml
+++ b/emulators/dosbox-staging.yml
@@ -6,6 +6,11 @@ upstream: "https://github.com/dosbox-staging/dosbox-staging"
source_commit: "fa1856c057902be3e08856675d6cc1e7ffe43db6"
profiled_date: "2026-10-26"
core_version: "0.84.0-alpha"
+version_basis:
+ kind: file
+ path: "CMakeLists.txt"
+ pattern: 'project\(dosbox-staging[^)]*?VERSION\s+([0-9.]+)[^)]*\)\s*\n\s*set\(DOSBOX_VERSION \$\{PROJECT_VERSION\}(\S*)\)'
+ format: "{1}{2}"
display_name: "DOS (DOSBox Staging)"
cores:
- dosbox-staging
diff --git a/emulators/dosbox-x.yml b/emulators/dosbox-x.yml
index 62997ce6e..74dae2715 100644
--- a/emulators/dosbox-x.yml
+++ b/emulators/dosbox-x.yml
@@ -5,7 +5,11 @@ source: "https://github.com/joncampbell123/dosbox-x"
upstream: "https://github.com/joncampbell123/dosbox-x"
source_commit: "997f616e0886a835fc3660f2b935688f17f20d42"
profiled_date: "2026-09-17"
-core_version: "2026.08.31"
+core_version: "2026.10.01"
+version_basis:
+ kind: file
+ path: "configure.ac"
+ pattern: 'AC_INIT\(dosbox-x,\s*([0-9.]+)'
display_name: "DOS (DOSBox-X)"
cores:
- dosbox-x
diff --git a/emulators/drastic.yml b/emulators/drastic.yml
index ad8d041fa..a71c488af 100644
--- a/emulators/drastic.yml
+++ b/emulators/drastic.yml
@@ -9,6 +9,10 @@ version_source:
author: "Exophase (Gilead Kutnick)"
profiled_date: "2026-08-11"
core_version: "r2.6.0.4a"
+version_basis:
+ kind: package
+ url: "https://archive.org/details/dra-stic-ds-emulator-r-2.6.0.4a"
+ artifact: "com.dsemu.drastic APK versionName (build 109)"
display_name: "Nintendo - DS (DraStic)"
cores:
- drastic
diff --git a/emulators/dreamm.yml b/emulators/dreamm.yml
index e25f6b715..e22c8ac61 100644
--- a/emulators/dreamm.yml
+++ b/emulators/dreamm.yml
@@ -8,6 +8,11 @@ version_source:
pattern: 'Latest Release: ([0-9.]+)'
profiled_date: "2026-08-08"
core_version: "4.0"
+version_basis:
+ kind: package
+ url: "https://dreamm.aarongiles.com/"
+ pattern: 'dreamm-(\d+(?:\.\d+)+)-win32-x64\.zip'
+ artifact: "dreamm-4.0-win32-x64.zip"
display_name: "LucasArts (DREAMM)"
cores:
- dreamm
diff --git a/emulators/droidarcadia.yml b/emulators/droidarcadia.yml
index da6ad79cc..d2e2202bd 100644
--- a/emulators/droidarcadia.yml
+++ b/emulators/droidarcadia.yml
@@ -9,6 +9,10 @@ version_source:
author: "James Jacobs (Amigan Software)"
profiled_date: "2026-10-24"
core_version: "4.75"
+version_basis:
+ kind: package
+ url: "https://amigan.1emu.net/releases/"
+ artifact: "DroidArcadia-src.rar, release 4.75 on the author's releases page"
display_name: "Emerson Arcadia 2001 / Interton VC 4000 (DroidArcadia)"
cores:
- droidarcadia
diff --git a/emulators/dsda-doom.yml b/emulators/dsda-doom.yml
index 2b864d709..488cfd6f2 100644
--- a/emulators/dsda-doom.yml
+++ b/emulators/dsda-doom.yml
@@ -4,7 +4,11 @@ core_classification: game_engine
source: "https://github.com/dsda-org/dsda-doom"
profiled_date: "2026-10-20"
source_commit: "e443ff7a3e6090a1ff92ad7a426916c4fd35ecc5"
-core_version: "0.29.4"
+core_version: "v0.29.4"
+version_basis:
+ kind: tag
+ tag: "v0.29.4"
+ distance: 0
display_name: "Doom (dsda-doom)"
cores: [dsda-doom]
systems: [doom, heretic, hexen, chex]
diff --git a/emulators/dsmile.yml b/emulators/dsmile.yml
index ef0d55304..0ee13f513 100644
--- a/emulators/dsmile.yml
+++ b/emulators/dsmile.yml
@@ -6,6 +6,10 @@ upstream: "https://github.com/derik-dot-digital/D.Smile"
profiled_date: "2026-08-11"
source_commit: "d4bbc3be27537def21513991647f14ea9a9c2d15"
core_version: "0.4.4"
+version_basis:
+ kind: file
+ path: "app/build.gradle.kts"
+ pattern: 'versionName\s+=\s+"([^"]+)'
display_name: "VTech - V.Smile (D.Smile)"
cores:
- dsmile
diff --git a/emulators/dsperate.yml b/emulators/dsperate.yml
index 3074eef96..9058a2dfa 100644
--- a/emulators/dsperate.yml
+++ b/emulators/dsperate.yml
@@ -5,7 +5,11 @@ source: "https://github.com/beebono/DSperate"
profiled_date: "2026-10-17"
source_commit: "81b73832c2e68e2b10cb5850f0a6d393ffc6fbb7"
pin_frozen: "ROCKNIX 20261001 ships the v2.0.1 release binaries, built by CI from the v2.0.1 tag at this commit."
-core_version: "2.0.1"
+core_version: "v2.0.1"
+version_basis:
+ kind: tag
+ tag: "v2.0.1"
+ distance: 0
display_name: "Nintendo - DS / DSi (DSperate)"
cores:
- "dsperate"
diff --git a/emulators/duckstation-legacy.yml b/emulators/duckstation-legacy.yml
index c892d744e..35e5bf244 100644
--- a/emulators/duckstation-legacy.yml
+++ b/emulators/duckstation-legacy.yml
@@ -5,7 +5,11 @@ source: "https://github.com/stenzek/duckstation"
profiled_date: "2026-10-22"
source_commit: "56ac3d6c324ec4520dac433b071ecab6227fb459"
pin_frozen: "Batocera builds this revision of 4 August 2023 as duckstation-legacy, its package marked not to be bumped, and KNULLI ships the same package."
-core_version: "0.1"
+core_version: "0.1-5612-g56ac3d6"
+version_basis:
+ kind: tag
+ tag: "0.1"
+ distance: 5612
display_name: "Sony - PlayStation (DuckStation legacy)"
cores:
- "duckstation-legacy"
diff --git a/emulators/dusklight.yml b/emulators/dusklight.yml
index aea0a641f..a4e33fbcd 100644
--- a/emulators/dusklight.yml
+++ b/emulators/dusklight.yml
@@ -6,6 +6,10 @@ upstream: "https://github.com/TwilitRealm/dusklight"
source_commit: "40457c6adb381928e4b5fef6ed459ed291edd5e2"
profiled_date: "2026-10-20"
core_version: "v2.0.3"
+version_basis:
+ kind: tag
+ tag: "v2.0.3"
+ distance: 0
display_name: "The Legend of Zelda: Twilight Princess (Dusklight)"
cores: [dusklight]
systems: [dusklight]
diff --git a/emulators/dxx-rebirth.yml b/emulators/dxx-rebirth.yml
index d4c6578aa..c61dec3d4 100644
--- a/emulators/dxx-rebirth.yml
+++ b/emulators/dxx-rebirth.yml
@@ -5,7 +5,12 @@ source: "https://github.com/dxx-rebirth/dxx-rebirth"
upstream: ~
profiled_date: "2026-10-04"
source_commit: "6943b924bea749543ef5729f31a28345e79716d2"
-core_version: "git"
+core_version: "0.61.0"
+version_basis:
+ kind: file
+ path: "SConstruct"
+ pattern: 'VERSION_MAJOR: typing.Final\[int\] = (\d+)\s+VERSION_MINOR: typing.Final\[int\] = (\d+)\s+VERSION_MICRO: typing.Final\[int\] = (\d+)'
+ format: "{1}.{2}.{3}"
display_name: "Descent 1 & 2 (DXX-Rebirth)"
cores: [dxx-rebirth, d1x-rebirth, d2x-rebirth]
systems: [descent, descent2]
diff --git a/emulators/eden.yml b/emulators/eden.yml
index a524b4a1d..dda4dfba1 100644
--- a/emulators/eden.yml
+++ b/emulators/eden.yml
@@ -8,7 +8,11 @@ upstream: "https://git.eden-emu.dev/eden-emu/eden"
source_mirror: "https://codeberg.org/eden-emu/eden"
profiled_date: "2026-03-26"
source_commit: "26a03d2473787abf3223b2d0e65b291eee00c1e1"
-core_version: "0.1.1"
+core_version: "v0.2.0-401-g26a03d2"
+version_basis:
+ kind: tag
+ tag: "v0.2.0"
+ distance: 401
display_name: "Eden (Nintendo Switch)"
cores:
- eden
diff --git a/emulators/eduke32.yml b/emulators/eduke32.yml
index 60ad486b8..0c781d974 100644
--- a/emulators/eduke32.yml
+++ b/emulators/eduke32.yml
@@ -9,6 +9,11 @@ version_source:
profiled_date: "2026-10-04"
source_commit: "ec5824db81817866f70da326d3811bb0f52b3517"
core_version: "20260807-10669-ec5824db8"
+version_basis:
+ kind: package
+ url: "https://dukeworld.com/eduke32/synthesis/20260807-10669-ec5824db8/eduke32_src_20260807-10669-ec5824db8.tar.xz"
+ pattern: 'eduke32_src_(\d{8}-\d+-[0-9a-f]+)\.tar'
+ artifact: "eduke32_src_20260807-10669-ec5824db8.tar.xz"
display_name: "EDuke32"
cores: [eduke32]
systems: [duke3d, nam, napalm, ww2gi]
diff --git a/emulators/emucorev.yml b/emulators/emucorev.yml
index bbabf6e30..2c43a987b 100644
--- a/emulators/emucorev.yml
+++ b/emulators/emucorev.yml
@@ -6,7 +6,11 @@ upstream: "https://github.com/Vita3K/Vita3K"
author: "Oleksandr (sashkinbro)"
profiled_date: "2026-08-11"
source_commit: "b71d8cf5397b1c6394e92eeb48427cd17e542971"
-core_version: "0.1.8"
+core_version: "v0.1.8"
+version_basis:
+ kind: tag
+ tag: "v0.1.8"
+ distance: 0
display_name: "Sony - PlayStation Vita (EmuCoreV)"
cores:
- emucorev
diff --git a/emulators/emucorex.yml b/emulators/emucorex.yml
index 889c28981..f1e4aa854 100644
--- a/emulators/emucorex.yml
+++ b/emulators/emucorex.yml
@@ -9,7 +9,11 @@ source_commit: "bda532f311a77c828a4e6bdb4667d9e92dfdf62f"
prose_written_at: "bda532f311a77c828a4e6bdb4667d9e92dfdf62f"
upstream_commit: "c10a5c9ad951c517dc48b722b5b84eb9bf7fdb42"
upstream_frozen: "The PCSX2 tree vendored in the app is this revision. Later PCSX2 commits are not in the port."
-core_version: "0.5.1"
+core_version: "v0.5.1"
+version_basis:
+ kind: tag
+ tag: "v0.5.1"
+ distance: 0
display_name: "Sony - PlayStation 2 (EmuCoreX)"
cores:
- emucorex
diff --git a/emulators/epsxe.yml b/emulators/epsxe.yml
index 2108dd6a6..44ee5dd1d 100644
--- a/emulators/epsxe.yml
+++ b/emulators/epsxe.yml
@@ -9,6 +9,12 @@ version_source:
author: "calb, _Demo_, Galtor (ePSXe Software S.L.)"
profiled_date: "2026-08-11"
core_version: "2.0.18"
+version_basis:
+ kind: package
+ url: "https://www.epsxe.com/files/ePSXe2018.zip"
+ pattern: 'ePSXe(\d)(\d)(\d+)\.zip'
+ format: "{1}.{2}.{3}"
+ artifact: "ePSXe2018.zip"
display_name: "Sony - PlayStation (ePSXe)"
cores:
- epsxe
diff --git a/emulators/etlegacy.yml b/emulators/etlegacy.yml
index 5dd6473a3..1cb547b8e 100644
--- a/emulators/etlegacy.yml
+++ b/emulators/etlegacy.yml
@@ -5,7 +5,12 @@ source: "https://github.com/etlegacy/etlegacy"
upstream: "https://github.com/etlegacy/etlegacy"
profiled_date: "2026-10-04"
source_commit: "add16a92f4b10c2955136e3ab7868bfc9bff8fad"
-core_version: "2.86.2+git"
+core_version: "2.86.2"
+version_basis:
+ kind: file
+ path: "VERSION.txt"
+ pattern: '^VERSION_MAJOR (\d+)\s*\nVERSION_MINOR (\d+)\s*\nVERSION_PATCH (\d+)'
+ format: "{1}.{2}.{3}"
display_name: "ET: Legacy"
cores: [etlegacy]
systems: [enemyterritory]
diff --git a/emulators/fallout1-ce.yml b/emulators/fallout1-ce.yml
index d1601e0ad..4878f708a 100644
--- a/emulators/fallout1-ce.yml
+++ b/emulators/fallout1-ce.yml
@@ -5,7 +5,11 @@ source: "https://github.com/alexbatalov/fallout1-ce"
upstream: ~
profiled_date: "2026-10-04"
source_commit: "0609bcfd0ec40ff0571d0f57fab2821eb461dc8b"
-core_version: "1.1"
+core_version: "v1.1.0-7-g0609bcf"
+version_basis:
+ kind: tag
+ tag: "v1.1.0"
+ distance: 7
display_name: "Fallout (Community Edition)"
cores: [fallout1-ce, "fallout-ce"]
systems: [fallout]
diff --git a/emulators/fallout2-ce.yml b/emulators/fallout2-ce.yml
index 9af483cba..65f409c2d 100644
--- a/emulators/fallout2-ce.yml
+++ b/emulators/fallout2-ce.yml
@@ -5,7 +5,11 @@ source: "https://github.com/alexbatalov/fallout2-ce"
upstream: ~
profiled_date: "2026-10-04"
source_commit: "e97087b9582f37075db347a89898887320753f8b"
-core_version: "v1.3.0"
+core_version: "1.3.0"
+version_basis:
+ kind: file
+ path: "CMakeLists.txt"
+ pattern: 'MACOSX_BUNDLE_SHORT_VERSION_STRING\s+"([^"]+)"'
display_name: "Fallout 2 (Community Edition)"
cores: [fallout2-ce]
systems: [fallout2]
diff --git a/emulators/fbzx.yml b/emulators/fbzx.yml
index cdd3d55e5..5151c7190 100644
--- a/emulators/fbzx.yml
+++ b/emulators/fbzx.yml
@@ -5,6 +5,10 @@ source: "https://github.com/rastersoft/fbzx"
profiled_date: "2026-10-20"
source_commit: "8d6b4cbe5fec121015e98cf545e9b3b811de2a71"
core_version: "3.9.1"
+version_basis:
+ kind: file
+ path: "src/menus.cpp"
+ pattern: 'print_string\("FBZX \(([0-9][^)"]*)\)"'
display_name: "Sinclair - ZX Spectrum (FBZX)"
mode: standalone
cores:
diff --git a/emulators/fheroes2.yml b/emulators/fheroes2.yml
index 6cd29936c..75f787a71 100644
--- a/emulators/fheroes2.yml
+++ b/emulators/fheroes2.yml
@@ -6,6 +6,10 @@ profiled_date: "2026-10-22"
source_commit: "35ca4c915be00098547d5050412a325dd55cfd7f"
pin_frozen: "EmuELEC, the only platform that ships it, builds this revision (EmuELEC packages/sx05re/emuelec-ports/fheroes2/package.mk:5). Later commits are not part of that build."
core_version: "1.0.11"
+version_basis:
+ kind: file
+ path: "version.txt"
+ pattern: '^(\d[^\s]*)'
display_name: "Heroes of Might and Magic II (fheroes2)"
cores:
- "fheroes2"
diff --git a/emulators/flycast-dojo.yml b/emulators/flycast-dojo.yml
index e3fe22e14..b782d6d89 100644
--- a/emulators/flycast-dojo.yml
+++ b/emulators/flycast-dojo.yml
@@ -9,7 +9,11 @@ upstream_commit: "f13d7ad2dcf141f59a999090dbc0f78be196e665"
upstream_frozen: "The dojo branch carries flyinghead/flycast up to this commit, with the Dojo commits on top and no later merge."
logo: "https://raw.githubusercontent.com/blueminder/flycast-dojo/master/shell/linux/flycast-dojo.png"
profiled_date: "2026-10-27"
-core_version: "dojo-7.9"
+core_version: "dojo-7.9-1-gfa518ac"
+version_basis:
+ kind: tag
+ tag: "dojo-7.9"
+ distance: 1
display_name: "Sega - Dreamcast/Naomi (Flycast Dojo)"
cores:
- flycast-dojo
diff --git a/emulators/fpse-ng.yml b/emulators/fpse-ng.yml
index cfb92408a..acff63142 100644
--- a/emulators/fpse-ng.yml
+++ b/emulators/fpse-ng.yml
@@ -10,6 +10,10 @@ version_source:
author: "Schtruck & LDchen"
profiled_date: "2026-08-11"
core_version: "1.13"
+version_basis:
+ kind: package
+ url: "https://play.google.com/store/apps/details?id=com.emulator.fpse64"
+ artifact: "com.emulator.fpse64 APK versionName (versionCode 245)"
display_name: "Sony - PlayStation (FPseNG)"
cores:
- "fpse-ng"
diff --git a/emulators/fpse.yml b/emulators/fpse.yml
index c476f9758..6ff069202 100644
--- a/emulators/fpse.yml
+++ b/emulators/fpse.yml
@@ -10,6 +10,10 @@ version_source:
author: "Schtruck & LDchen (EMUSOFT)"
profiled_date: "2026-08-11"
core_version: "12.1"
+version_basis:
+ kind: package
+ url: "https://play.google.com/store/apps/details?id=com.emulator.fpse"
+ artifact: "com.emulator.fpse APK versionName (versionCode 940)"
display_name: "Sony - PlayStation (FPse)"
cores:
- fpse
diff --git a/emulators/frotz.yml b/emulators/frotz.yml
index f9b6cdf7e..5fb883341 100644
--- a/emulators/frotz.yml
+++ b/emulators/frotz.yml
@@ -5,7 +5,11 @@ source: "https://gitlab.com/DavidGriffith/frotz"
upstream: "https://gitlab.com/DavidGriffith/frotz"
profiled_date: "2026-10-17"
source_commit: "042d7bcadc1e2a8090cf737c841d8b7fc14b6eff"
-core_version: "2.55pre"
+core_version: "2.56pre"
+version_basis:
+ kind: file
+ path: "Makefile"
+ pattern: '^VERSION\s*=\s*(\S+)'
display_name: "Infocom Z-Machine (SDL Frotz)"
cores:
- "frotz"
diff --git a/emulators/fs-uae.yml b/emulators/fs-uae.yml
index e201471bc..a27c83e40 100644
--- a/emulators/fs-uae.yml
+++ b/emulators/fs-uae.yml
@@ -4,7 +4,11 @@ core_classification: other
source: "https://github.com/FrodeSolheim/fs-uae"
profiled_date: "2026-10-20"
source_commit: "596d803944f6498c305ac48d338f6252cbde7ecb"
-core_version: "3.1.64"
+core_version: "v3.1.64"
+version_basis:
+ kind: tag
+ tag: "v3.1.64"
+ distance: 0
display_name: "Commodore - Amiga (FS-UAE 3.1)"
cores: [fs-uae]
systems: [commodore-amiga]
diff --git a/emulators/fury.yml b/emulators/fury.yml
index a844f8467..2894b01bc 100644
--- a/emulators/fury.yml
+++ b/emulators/fury.yml
@@ -9,6 +9,11 @@ version_source:
profiled_date: "2026-10-04"
source_commit: "ec5824db81817866f70da326d3811bb0f52b3517"
core_version: "20260807-10669-ec5824db8"
+version_basis:
+ kind: package
+ url: "https://dukeworld.com/eduke32/synthesis/latest/"
+ pattern: 'eduke32_src_(\d{8}-\d+-[0-9a-f]+)\.tar'
+ artifact: "eduke32_src_20260807-10669-ec5824db8.tar.xz"
display_name: "Ion Fury"
cores: [fury, ionfury]
systems: [fury]
diff --git a/emulators/future-pinball-fploader.yml b/emulators/future-pinball-fploader.yml
index 7b036a34b..21b5a035f 100644
--- a/emulators/future-pinball-fploader.yml
+++ b/emulators/future-pinball-fploader.yml
@@ -6,6 +6,9 @@ upstream: "https://www.ravarcade.pl/"
profiled_date: "2026-08-11"
source_commit: "e13007994011ae57dd9d9f48674c1f774183914b"
core_version: "1.5-408"
+version_basis:
+ kind: unverified
+ why: no_artifact
display_name: "Future Pinball (BAM)"
cores:
- future-pinball-fploader
diff --git a/emulators/future-pinball.yml b/emulators/future-pinball.yml
index 4f7bd5e8c..2e069ac97 100644
--- a/emulators/future-pinball.yml
+++ b/emulators/future-pinball.yml
@@ -8,6 +8,10 @@ version_source:
pattern: 'The current version is ([0-9.]+)'
profiled_date: "2026-08-11"
core_version: "1.9.1.20101231"
+version_basis:
+ kind: package
+ url: "https://futurepinball.com/home.html"
+ artifact: "Future Pinball release labelled 1.9.1.20101231 on futurepinball.com, Future Pinball.exe"
display_name: "Future Pinball"
cores:
- fpinball
diff --git a/emulators/gargoyle.yml b/emulators/gargoyle.yml
index a61c723f3..cff2a7db1 100644
--- a/emulators/gargoyle.yml
+++ b/emulators/gargoyle.yml
@@ -6,6 +6,10 @@ upstream: "https://github.com/garglk/garglk"
profiled_date: "2026-08-08"
source_commit: "9e06211c20bee35026744424a57f50375cdc29db"
core_version: "2026.1"
+version_basis:
+ kind: file
+ path: "VERSION"
+ pattern: '^(\S+)'
display_name: "Interactive Fiction (Gargoyle)"
cores:
- gargoyle
diff --git a/emulators/gba-emu.yml b/emulators/gba-emu.yml
index 223103328..a75fc36df 100644
--- a/emulators/gba-emu.yml
+++ b/emulators/gba-emu.yml
@@ -7,6 +7,10 @@ profiled_date: "2026-08-11"
source_commit: "1c12fac5ce49badaadff2e2f210dcc30b89f4943"
upstream_commit: "46cc9f6bda114737e99304a4bd8427c038e63084"
core_version: "1.5.85"
+version_basis:
+ kind: file
+ path: "EmuFramework/metadata/conf.mk"
+ pattern: '^metadata_version\s*=\s*(\S+)'
display_name: "Nintendo - Game Boy Advance (GBA.emu)"
mode: standalone
cores:
diff --git a/emulators/gbc-emu.yml b/emulators/gbc-emu.yml
index 55833963b..2be409fcf 100644
--- a/emulators/gbc-emu.yml
+++ b/emulators/gbc-emu.yml
@@ -6,6 +6,10 @@ upstream: "https://github.com/sinamas/gambatte"
profiled_date: "2026-08-11"
source_commit: "1c12fac5ce49badaadff2e2f210dcc30b89f4943"
core_version: "1.5.85"
+version_basis:
+ kind: file
+ path: "EmuFramework/metadata/conf.mk"
+ pattern: '^metadata_version\s*=\s*(\S+)'
display_name: "Nintendo - Game Boy / Color (GBC.emu)"
mode: standalone
cores:
diff --git a/emulators/gemrb.yml b/emulators/gemrb.yml
index 535b6b38d..6ebb4e9ab 100644
--- a/emulators/gemrb.yml
+++ b/emulators/gemrb.yml
@@ -5,7 +5,11 @@ source: "https://github.com/gemrb/gemrb"
upstream: "https://github.com/gemrb/gemrb"
profiled_date: "2026-10-20"
source_commit: "ef32a9a8b837ddf4f3a9508b23710146ada2d5fe"
-core_version: "0.9.2"
+core_version: "v0.9.2"
+version_basis:
+ kind: tag
+ tag: "v0.9.2"
+ distance: 0
display_name: "Infinity Engine (GemRB)"
cores:
- gemrb
diff --git a/emulators/ghostship.yml b/emulators/ghostship.yml
index 0013f1adf..a2dd06aca 100644
--- a/emulators/ghostship.yml
+++ b/emulators/ghostship.yml
@@ -6,6 +6,10 @@ upstream: "https://github.com/HarbourMasters/Ghostship"
source_commit: "deb091c29caff57dd986398087b058f16b11911e"
profiled_date: "2026-10-20"
core_version: "3.0.0"
+version_basis:
+ kind: tag
+ tag: "3.0.0"
+ distance: 0
display_name: "Super Mario 64 (Ghostship)"
cores: [ghostship]
systems: [ghostship]
diff --git a/emulators/gngeopi.yml b/emulators/gngeopi.yml
index 55c20e78d..d73481531 100644
--- a/emulators/gngeopi.yml
+++ b/emulators/gngeopi.yml
@@ -4,7 +4,11 @@ core_classification: community_fork
source: "https://github.com/ymartel06/GnGeo-Pi"
profiled_date: "2026-10-20"
source_commit: "b94571c6097b67cfc9db5eaffb98cdc8bcb55c6e"
-core_version: "0.85"
+core_version: "0.8"
+version_basis:
+ kind: file
+ path: "gngeo/configure.in"
+ pattern: 'AC_INIT\(gngeo,\s*([^)\s]+)\)'
display_name: "SNK - Neo Geo (GnGeo-Pi)"
mode: standalone
cores:
diff --git a/emulators/gopher2600.yml b/emulators/gopher2600.yml
index 742c50099..ba38a7837 100644
--- a/emulators/gopher2600.yml
+++ b/emulators/gopher2600.yml
@@ -5,7 +5,11 @@ source: "https://github.com/JetSetIlly/Gopher2600"
upstream: "https://github.com/JetSetIlly/Gopher2600"
profiled_date: "2026-08-08"
source_commit: "295b9e1c08203453677ea4184e284c0664f5949a"
-core_version: "v0.57.0"
+core_version: "v0.58.0"
+version_basis:
+ kind: file
+ path: "Makefile"
+ pattern: '^version\s*=\s*(\S+)'
display_name: "Atari - 2600 (Gopher2600)"
cores:
- gopher2600
diff --git a/emulators/gopher64.yml b/emulators/gopher64.yml
index 2b0197fee..0440a049d 100644
--- a/emulators/gopher64.yml
+++ b/emulators/gopher64.yml
@@ -5,7 +5,11 @@ source: "https://github.com/gopher64/gopher64"
upstream: "https://github.com/gopher64/gopher64"
profiled_date: "2026-10-23"
source_commit: "87385e77432cd278ac8588c7ed3d5014fc0d6bab"
-core_version: "v1.1.42"
+core_version: "1.1.42"
+version_basis:
+ kind: file
+ path: "Cargo.toml"
+ pattern: 'version\s+=\s+"([^"]+)'
display_name: "Nintendo - Nintendo 64 (gopher64)"
cores:
- gopher64
diff --git a/emulators/gsplus-legacy.yml b/emulators/gsplus-legacy.yml
index 8c12640b5..f63659cd7 100644
--- a/emulators/gsplus-legacy.yml
+++ b/emulators/gsplus-legacy.yml
@@ -8,6 +8,10 @@ profiled_date: "2026-10-20"
source_commit: "480572054518112647c8fae5d7ea7046a6d6ecfb"
pin_frozen: "Recalbox builds this commit (Recalbox package/gsplus/gsplus.mk:8-9 at tag 10.1.1). Batocera builds the applemu fork and RetroBat its release build, as the notes say."
core_version: "0.14"
+version_basis:
+ kind: file
+ path: "CMakeLists.txt"
+ pattern: 'project\(gsplus\s+VERSION\s+([0-9][\w.+-]*)'
display_name: "Apple - Apple IIGS (GSplus legacy)"
systems:
- apple-iigs
diff --git a/emulators/gsplus.yml b/emulators/gsplus.yml
index cf6469ce1..911950623 100644
--- a/emulators/gsplus.yml
+++ b/emulators/gsplus.yml
@@ -5,7 +5,11 @@ source: "https://github.com/digarok/gsplus"
upstream: "https://kegs.sourceforge.net/"
profiled_date: "2026-03-29"
source_commit: "41e71031debbde98e66ea5c5c67498e9b4726a6d"
-core_version: "KEGS 1.38"
+core_version: "1.38.0"
+version_basis:
+ kind: file
+ path: "gsplus/src/CMakeLists.txt"
+ pattern: 'project\(gsplus\s+VERSION\s+([0-9][0-9.]*)'
display_name: "Apple - Apple IIGS (GSplus)"
cores:
- gsplus
diff --git a/emulators/gzdoom.yml b/emulators/gzdoom.yml
index 844fe3765..026507747 100644
--- a/emulators/gzdoom.yml
+++ b/emulators/gzdoom.yml
@@ -6,6 +6,10 @@ upstream: "https://github.com/ZDoom/gzdoom"
profiled_date: "2026-10-04"
source_commit: "c26ce2e6ca2a0c770f140cb25dde0d30073ca8f7"
core_version: "4.15pre"
+version_basis:
+ kind: file
+ path: "src/version.h"
+ pattern: '#define\s+VERSIONSTR\s+"([^"]+)'
display_name: "GZDoom"
cores: ["GZDoom", "gzdoom-sa"]
systems: [doom, heretic, hexen, strife, chex]
diff --git a/emulators/hakux.yml b/emulators/hakux.yml
index 9b56a189e..b8daffc28 100644
--- a/emulators/hakux.yml
+++ b/emulators/hakux.yml
@@ -7,7 +7,11 @@ author: "rfandango"
profiled_date: "2026-08-11"
source_commit: "e64e336d27dc8a56b67f441ec36bfddc1379cb6e"
upstream_commit: "26fcbe54f17e496bdf530dad9f237e74e2f943fc"
-core_version: "0.3.1"
+core_version: "v0.3.1"
+version_basis:
+ kind: tag
+ tag: "v0.3.1"
+ distance: 0
display_name: "Microsoft - Xbox (hakuX)"
cores:
- hakux
diff --git a/emulators/hcl.yml b/emulators/hcl.yml
index 6c40618cb..d7691ffd5 100644
--- a/emulators/hcl.yml
+++ b/emulators/hcl.yml
@@ -5,7 +5,11 @@ source: "https://github.com/ptitSeb/hydracastlelabyrinth"
upstream: "https://github.com/ptitSeb/hydracastlelabyrinth"
profiled_date: "2026-10-04"
source_commit: "e31648688434a789e3056e52cdf1b9a842eeed48"
-core_version: ~
+core_version: "v0.1.0-4-ge316486"
+version_basis:
+ kind: tag
+ tag: "v0.1.0"
+ distance: 4
display_name: "Hydra Castle Labyrinth (hcl)"
cores: [hcl]
systems: []
diff --git a/emulators/hode.yml b/emulators/hode.yml
index 500526c9e..db6e30537 100644
--- a/emulators/hode.yml
+++ b/emulators/hode.yml
@@ -5,6 +5,10 @@ source: "https://github.com/usineur/hode"
profiled_date: "2026-10-22"
source_commit: "59f3c466923c6b8d49e29176ff697a91165e7efc"
core_version: "0.2.9f"
+version_basis:
+ kind: file
+ path: "CMakeLists.txt"
+ pattern: 'nacptool --create "[^"]*" "[^"]*" "([^"]+)"'
display_name: "Heart of Darkness (hode)"
cores:
- "hode"
diff --git a/emulators/hurrican.yml b/emulators/hurrican.yml
index 43d518712..8dcc13220 100644
--- a/emulators/hurrican.yml
+++ b/emulators/hurrican.yml
@@ -5,7 +5,11 @@ source: "https://github.com/HurricanGame/Hurrican"
upstream: "https://github.com/HurricanGame/Hurrican"
profiled_date: "2026-10-04"
source_commit: "0d91d1f2d40f38d21e7f41afc01369ee55649fb6"
-core_version: ~
+core_version: "v1.0.9.3-398-g0d91d1f"
+version_basis:
+ kind: tag
+ tag: "v1.0.9.3"
+ distance: 398
display_name: "Hurrican"
cores: [hurrican]
systems: []
diff --git a/emulators/hypseus-singe.yml b/emulators/hypseus-singe.yml
index c18965f59..261098e32 100644
--- a/emulators/hypseus-singe.yml
+++ b/emulators/hypseus-singe.yml
@@ -7,6 +7,10 @@ source_commit: "a16e2521ee3233ef20c44e562008c47f4b4293df"
upstream_commit: "cd214c6046365047704f8a0563928970b30444e6"
profiled_date: "2026-10-27"
core_version: "v3.0.2"
+version_basis:
+ kind: tag
+ tag: "v3.0.2"
+ distance: 0
display_name: "Arcade (Hypseus Singe)"
cores:
- hypseus-singe
diff --git a/emulators/idtech4a++.yml b/emulators/idtech4a++.yml
index 79573fe57..25130e05c 100644
--- a/emulators/idtech4a++.yml
+++ b/emulators/idtech4a++.yml
@@ -6,7 +6,11 @@ upstream: "https://github.com/glKarin/com.n0n3m4.diii4a"
author: "glKarin"
profiled_date: "2026-09-17"
source_commit: "ce49510f3b0c04969eab8ebe8238416e84e4f0bb"
-core_version: "1.1.0harmattan73"
+core_version: "v1.1.0harmattan73"
+version_basis:
+ kind: tag
+ tag: "v1.1.0harmattan73"
+ distance: 0
display_name: "id Tech engine collection (idTech4A++)"
cores:
- "idtech4a++"
diff --git a/emulators/ikemen.yml b/emulators/ikemen.yml
index eda036bfd..a2c128ec9 100644
--- a/emulators/ikemen.yml
+++ b/emulators/ikemen.yml
@@ -5,7 +5,12 @@ source: "https://github.com/ikemen-engine/Ikemen-GO"
upstream: "https://github.com/ikemen-engine/Ikemen-GO"
profiled_date: "2026-10-04"
source_commit: "e9bfe1125dea88769b265e57bcfaefdb22fa4322"
-core_version: ~
+core_version: "v1.0.0-rc.1-545-ge9bfe11"
+version_basis:
+ kind: tag
+ match: "v*"
+ tag: "v1.0.0-rc.1"
+ distance: 545
display_name: "Ikemen GO"
cores: [ikemen]
systems: []
diff --git a/emulators/ines.yml b/emulators/ines.yml
index 9066a47a3..fe94bcf5d 100644
--- a/emulators/ines.yml
+++ b/emulators/ines.yml
@@ -9,6 +9,10 @@ version_source:
author: "Marat Fayzullin (Garage Research)"
profiled_date: "2026-10-20"
core_version: "6.1.12"
+version_basis:
+ kind: package
+ url: "https://play.google.com/store/apps/details?id=com.fms.ines.free"
+ artifact: "com.fms.ines.free APK versionName (versionCode 6112)"
display_name: "Nintendo - NES / Famicom (iNES)"
cores:
- ines
diff --git a/emulators/infinity.yml b/emulators/infinity.yml
index 127b94351..7a756ed86 100644
--- a/emulators/infinity.yml
+++ b/emulators/infinity.yml
@@ -10,6 +10,10 @@ version_source:
author: "GuoPing He"
profiled_date: "2026-08-11"
core_version: "5"
+version_basis:
+ kind: package
+ url: "https://play.google.com/store/apps/details?id=me.dt2dev.infinity"
+ artifact: "me.dt2dev.infinity APK versionName (versionCode 501)"
display_name: "PICO-8 (Infinity)"
cores:
- infinity
diff --git a/emulators/ioquake3.yml b/emulators/ioquake3.yml
index acf8d129c..58020f253 100644
--- a/emulators/ioquake3.yml
+++ b/emulators/ioquake3.yml
@@ -5,7 +5,11 @@ source: "https://github.com/ioquake/ioq3"
upstream: "https://github.com/ioquake/ioq3"
profiled_date: "2026-10-04"
source_commit: "87a99d18206e878a20289f05ac3c16005dcae5c3"
-core_version: "1.36+git"
+core_version: "1.36"
+version_basis:
+ kind: file
+ path: "cmake/identity.cmake"
+ pattern: 'set\(PROJECT_VERSION\s+([^)\s]+)\)'
display_name: "ioquake3"
cores: [ioquake3]
systems: [quake3, teamarena]
diff --git a/emulators/iortcw.yml b/emulators/iortcw.yml
index 1ec447039..7116d0f85 100644
--- a/emulators/iortcw.yml
+++ b/emulators/iortcw.yml
@@ -5,6 +5,11 @@ source: "https://github.com/iortcw/iortcw"
upstream: "https://github.com/iortcw/iortcw"
profiled_date: "2026-10-04"
source_commit: "438e7d413b5f7277187c35b032eb0ef9093ae778"
+core_version: "1.51d"
+version_basis:
+ kind: file
+ path: "SP/Makefile"
+ pattern: '^VERSION=([0-9][^-\s]*)-SP'
display_name: "ioRTCW"
cores: []
systems: [return-to-castle-wolfenstein]
diff --git a/emulators/iratajaguar.yml b/emulators/iratajaguar.yml
index b40a36c2e..1917a6504 100644
--- a/emulators/iratajaguar.yml
+++ b/emulators/iratajaguar.yml
@@ -9,6 +9,11 @@ version_source:
author: "Maxim Grishin (Altmer)"
profiled_date: "2026-08-11"
core_version: "1.0.7"
+version_basis:
+ kind: package
+ url: "http://www.arts-union.ru/node/23"
+ pattern: 'IrataJaguar_free_(\d+(?:\.\d+)+)\.zip'
+ artifact: "IrataJaguar_free_1.0.7.zip"
display_name: "Atari - Jaguar (IrataJaguar)"
cores:
- iratajaguar
diff --git a/emulators/izapple2.yml b/emulators/izapple2.yml
index 58b69eba4..e01c623ea 100644
--- a/emulators/izapple2.yml
+++ b/emulators/izapple2.yml
@@ -5,7 +5,11 @@ source: "https://github.com/ivanizag/izapple2"
upstream: "https://github.com/ivanizag/izapple2"
profiled_date: "2026-08-08"
source_commit: "4e773baf9f1f3fb692e3f3444eb5f42fddb205ef"
-core_version: "v2.5.0"
+core_version: "v2.5.0-3-g4e773ba"
+version_basis:
+ kind: tag
+ tag: "v2.5.0"
+ distance: 3
display_name: "Apple - Apple II (izapple2)"
cores:
- izapple2
diff --git a/emulators/j2me-loader.yml b/emulators/j2me-loader.yml
index 33f79785d..f1df6771e 100644
--- a/emulators/j2me-loader.yml
+++ b/emulators/j2me-loader.yml
@@ -7,6 +7,10 @@ author: "Nikita Shakarun"
profiled_date: "2026-10-23"
source_commit: "76383ebf348b5d477256fc884dfc55f053b45a86"
core_version: "1.8.2"
+version_basis:
+ kind: file
+ path: "app/build.gradle"
+ pattern: 'versionName\s+"([^"]+)'
display_name: "Mobile - J2ME (J2ME Loader)"
cores:
- j2me-loader
diff --git a/emulators/jgenesis.yml b/emulators/jgenesis.yml
index 579ea3a12..20fe6fdad 100644
--- a/emulators/jgenesis.yml
+++ b/emulators/jgenesis.yml
@@ -6,6 +6,10 @@ upstream: "https://github.com/jsgroth/jgenesis"
profiled_date: "2026-08-08"
source_commit: "0a00c47ba7a16bd6e77ef7e0b6c8fab2fc603cba"
core_version: "0.14.1"
+version_basis:
+ kind: file
+ path: "Cargo.toml"
+ pattern: 'version\s+=\s+"([^"]+)'
display_name: "Multi-System (jgenesis)"
cores:
- jgenesis
diff --git a/emulators/jl-mod.yml b/emulators/jl-mod.yml
index a8aee96d1..927a98b9a 100644
--- a/emulators/jl-mod.yml
+++ b/emulators/jl-mod.yml
@@ -8,6 +8,10 @@ profiled_date: "2026-08-11"
source_commit: "f723a190c0bdb44b31c3bc0ead6f8665c7ea517d"
upstream_commit: "76383ebf348b5d477256fc884dfc55f053b45a86"
core_version: "0.87.1"
+version_basis:
+ kind: file
+ path: "app/build.gradle.kts"
+ pattern: 'versionName\s+=\s+"([^"]+)'
display_name: "Mobile - J2ME (JL-Mod)"
cores:
- jl-mod
diff --git a/emulators/julius.yml b/emulators/julius.yml
index 40a235cab..504f3d47b 100644
--- a/emulators/julius.yml
+++ b/emulators/julius.yml
@@ -5,7 +5,12 @@ source: "https://github.com/bvschaik/julius"
upstream: "https://github.com/bvschaik/julius"
profiled_date: "2026-10-17"
source_commit: "34d1ecd54befb845c0139b371fa8a0438210dac1"
-core_version: "v1.8.0"
+core_version: "1.8.0"
+version_basis:
+ kind: file
+ path: "CMakeLists.txt"
+ pattern: 'set\(PROJECT_VERSION_MAJOR (\d+)\)\s*\nset\(PROJECT_VERSION_MINOR (\d+)\)\s*\nset\(PROJECT_VERSION_PATCH (\d+)\)'
+ format: "{1}.{2}.{3}"
display_name: "Caesar III (Julius)"
cores:
- "julius"
diff --git a/emulators/jynx.yml b/emulators/jynx.yml
index 05c82f717..3acc894d6 100644
--- a/emulators/jynx.yml
+++ b/emulators/jynx.yml
@@ -4,7 +4,11 @@ core_classification: other
source: "https://github.com/jonathan-markland/Jynx"
profiled_date: "2026-10-20"
source_commit: "c1247f2c957b78d3ca6f2b814ee346a298f3573c"
-core_version: "1.0.8"
+core_version: "v1.0.8"
+version_basis:
+ kind: tag
+ tag: "v1.0.8"
+ distance: 0
display_name: "Camputers - Lynx (Jynx)"
cores:
- jynx
diff --git a/emulators/jzintv.yml b/emulators/jzintv.yml
index b34f27c35..c35eb8ddd 100644
--- a/emulators/jzintv.yml
+++ b/emulators/jzintv.yml
@@ -8,6 +8,11 @@ version_source:
pattern: 'jzintv-(\d{8})-src\.zip'
profiled_date: "2026-10-20"
core_version: "20200712"
+version_basis:
+ kind: package
+ url: "http://spatula-city.org/~im14u2c/intv/"
+ pattern: 'jzintv-(\d{8})-src\.zip'
+ artifact: "jzintv-20200712-src.zip"
display_name: "Mattel - Intellivision (jzIntv)"
cores:
- jzintv
diff --git a/emulators/kega-fusion.yml b/emulators/kega-fusion.yml
index 3b17be7eb..cf81fc678 100644
--- a/emulators/kega-fusion.yml
+++ b/emulators/kega-fusion.yml
@@ -6,6 +6,10 @@ upstream: closed-source
author: "Steve Snake"
profiled_date: "2026-10-20"
core_version: "3.64"
+version_basis:
+ kind: package
+ url: "https://www.retrobat.ovh/repo/win64/stable/emulators/kega-fusion.7z"
+ artifact: "kega-fusion.7z, Fusion.exe banner"
display_name: "Sega - Master System / Mega Drive / Mega CD / 32X (Kega Fusion)"
cores:
- kega-fusion
diff --git a/emulators/kegs.yml b/emulators/kegs.yml
index 9293527db..783eae855 100644
--- a/emulators/kegs.yml
+++ b/emulators/kegs.yml
@@ -8,6 +8,11 @@ version_source:
pattern: 'Download the KEGS v(\d+\.\d+) zip'
profiled_date: "2026-08-08"
core_version: "1.38"
+version_basis:
+ kind: package
+ url: "https://kegs.sourceforge.net/kegs.1.38.zip"
+ pattern: 'kegs\.(\d+\.\d+)\.zip'
+ artifact: "kegs.1.38.zip"
display_name: "Apple - Apple IIGS (KEGS)"
cores:
- kegs
diff --git a/emulators/kemulator.yml b/emulators/kemulator.yml
index bf884f844..9b77503d1 100644
--- a/emulators/kemulator.yml
+++ b/emulators/kemulator.yml
@@ -6,7 +6,11 @@ upstream: "https://github.com/shinovon/KEmulator"
author: "shinovon"
profiled_date: "2026-08-11"
source_commit: "1ab219907cfcac0e6313d1b6ccba13ad74015d08"
-core_version: "v2.22"
+core_version: "2.22"
+version_basis:
+ kind: file
+ path: "src/main/emulator/Emulator.java"
+ pattern: 'public static String version = "([^"]+)"'
display_name: "Mobile - J2ME (KEmulator nnmod)"
cores:
- kemulator
diff --git a/emulators/kenji-nx.yml b/emulators/kenji-nx.yml
index 9c9c60a5e..9cbf4c8ec 100644
--- a/emulators/kenji-nx.yml
+++ b/emulators/kenji-nx.yml
@@ -7,6 +7,9 @@ upstream: "https://git.ryujinx.app/projects/Ryubing"
profiled_date: "2026-08-11"
source_commit: "53d32a761e61dc8e9b5c0744199a890fc8d934d5"
core_version: "2.1.0-pr.2"
+version_basis:
+ kind: unverified
+ why: host_unreachable
display_name: "Nintendo - Switch (Kenji-NX)"
cores:
- kenji-nx
diff --git a/emulators/lexaloffle.yml b/emulators/lexaloffle.yml
index ef12e99e6..2ee407462 100644
--- a/emulators/lexaloffle.yml
+++ b/emulators/lexaloffle.yml
@@ -2,6 +2,10 @@ emulator: Lexaloffle
type: standalone
upstream: "https://www.lexaloffle.com/"
profiled_date: "2026-03-26"
+core_version: null
+version_basis:
+ kind: unverified
+ why: no_artifact
display_name: "Lexaloffle - PICO-8 / Voxatron"
cores:
- lexaloffle
diff --git a/emulators/lightspark.yml b/emulators/lightspark.yml
index e2b7a07c1..18a5852f1 100644
--- a/emulators/lightspark.yml
+++ b/emulators/lightspark.yml
@@ -6,6 +6,11 @@ upstream: "https://github.com/lightspark/lightspark"
profiled_date: "2026-08-08"
source_commit: "6f07fd65cb95b88ff73e905bf78a1a8b1ddf6049"
core_version: "0.10.0"
+version_basis:
+ kind: file
+ path: "CMakeLists.txt"
+ pattern: 'SET\(MAJOR_VERSION "(\d+)"\)\s*\nSET\(MINOR_VERSION "(\d+)"\)\s*\nSET\(PATCH_VERSION "(\d+)"\)'
+ format: "{1}.{2}.{3}"
display_name: "Adobe Flash (Lightspark)"
cores:
- lightspark
diff --git a/emulators/lime3ds.yml b/emulators/lime3ds.yml
index 7cfe2e447..04d5ef794 100644
--- a/emulators/lime3ds.yml
+++ b/emulators/lime3ds.yml
@@ -5,7 +5,11 @@ source: "https://github.com/Lime3DS/lime3ds-archive"
upstream: "https://github.com/Lime3DS/lime3ds-archive"
profiled_date: "2026-08-08"
source_commit: "c9dbb5bb40d90dfa6a2b085d152ae6ecf915b2f9"
-core_version: "2119.1"
+core_version: "2119.1-2-gc9dbb5b"
+version_basis:
+ kind: tag
+ tag: "2119.1"
+ distance: 2
display_name: "Nintendo - 3DS (Lime3DS)"
cores:
- lime3ds
diff --git a/emulators/linapple.yml b/emulators/linapple.yml
index 094537ba2..fb57da131 100644
--- a/emulators/linapple.yml
+++ b/emulators/linapple.yml
@@ -7,6 +7,10 @@ profiled_date: "2026-10-20"
source_commit: "7f4b60898d91bfecd6f4d8683a374f38b0564962"
upstream_commit: "9970ef6b668a7cf057ce6d82f100dde6a751f4d3"
core_version: "3.0.0"
+version_basis:
+ kind: file
+ path: "CMakeLists.txt"
+ pattern: 'project\(linapple\s+VERSION\s+([0-9][\w.+-]*)'
display_name: "Apple - Apple II (LinApple)"
cores:
- linapple
diff --git a/emulators/lindbergh-loader.yml b/emulators/lindbergh-loader.yml
index 48b55b29e..b2a746158 100644
--- a/emulators/lindbergh-loader.yml
+++ b/emulators/lindbergh-loader.yml
@@ -5,7 +5,12 @@ source: "https://github.com/lindbergh-loader/lindbergh-loader"
upstream: "https://github.com/lindbergh-loader/lindbergh-loader"
source_commit: "0af606d845b70339c335785c0eba68b47b78df3c"
profiled_date: "2026-08-08"
-core_version: "2.1.4"
+core_version: "2.0.0"
+version_basis:
+ kind: file
+ path: "src/lindbergh/version.h"
+ pattern: '#define MAJOR_VERSION (\d+)\s*\n#define MINOR_VERSION (\d+)\s*\n#define UPDATE_VERSION (\d+)'
+ format: "{1}.{2}.{3}"
display_name: "Sega - Lindbergh (Lindbergh Loader)"
cores:
- lindbergh-loader
diff --git a/emulators/linkboy.yml b/emulators/linkboy.yml
index 7f7e2680d..3a7b18261 100644
--- a/emulators/linkboy.yml
+++ b/emulators/linkboy.yml
@@ -9,6 +9,10 @@ version_source:
author: "Pixel Respawn LLC"
profiled_date: "2026-10-24"
core_version: "4.0.0"
+version_basis:
+ kind: package
+ url: "https://play.google.com/store/apps/details?id=com.pixelrespawn.linkboy"
+ artifact: "com.pixelrespawn.linkboy APK versionName (versionCode 95)"
display_name: "Nintendo - Game Boy / Color / Advance (Linkboy)"
mode: standalone
cores:
diff --git a/emulators/linuxloader.yml b/emulators/linuxloader.yml
index 30b50640a..220dceb93 100644
--- a/emulators/linuxloader.yml
+++ b/emulators/linuxloader.yml
@@ -5,7 +5,11 @@ source: "https://github.com/lindbergh-loader/linuxloader"
upstream: "https://github.com/lindbergh-loader/linuxloader"
source_commit: "9aa6e3e45ccfbbc60eb0f975aa9d3d158a13706c"
profiled_date: "2026-10-20"
-core_version: "3.0.12"
+core_version: "v3.0.12"
+version_basis:
+ kind: tag
+ tag: "v3.0.12"
+ distance: 0
display_name: "Sega - Lindbergh (Linux Loader)"
cores:
- linuxloader
diff --git a/emulators/love-0.10.2.yml b/emulators/love-0.10.2.yml
index e8f6344a9..ca41ff412 100644
--- a/emulators/love-0.10.2.yml
+++ b/emulators/love-0.10.2.yml
@@ -7,6 +7,10 @@ profiled_date: "2026-10-20"
source_commit: "9e139779956ddba89333eece8104bd7b1b4ff2e7"
pin_frozen: "RetroPie, the only platform that ships it, builds the 0.10.2 tag at this commit (RetroPie scriptmodules/ports/love-0.10.2.sh:16). Later releases are packaged separately as love."
core_version: "0.10.2"
+version_basis:
+ kind: tag
+ tag: "0.10.2"
+ distance: 0
display_name: "LOVE 2D game framework (0.10.2)"
cores:
- love-0.10.2
diff --git a/emulators/love.yml b/emulators/love.yml
index 8f195e8c9..3aa22fce8 100644
--- a/emulators/love.yml
+++ b/emulators/love.yml
@@ -6,6 +6,10 @@ upstream: "https://github.com/love2d/love"
profiled_date: "2026-10-20"
source_commit: "6eb8d546736d5915a8b5af30b2cf33456dfdcb1a"
core_version: "11.5"
+version_basis:
+ kind: tag
+ tag: "11.5"
+ distance: 0
display_name: "LOVE 2D game framework"
cores:
- love
diff --git a/emulators/lynx-emu.yml b/emulators/lynx-emu.yml
index eefcc55a3..d37d37c76 100644
--- a/emulators/lynx-emu.yml
+++ b/emulators/lynx-emu.yml
@@ -6,6 +6,10 @@ upstream: "https://mednafen.github.io/"
profiled_date: "2026-08-11"
source_commit: "1c12fac5ce49badaadff2e2f210dcc30b89f4943"
core_version: "1.5.85"
+version_basis:
+ kind: file
+ path: "EmuFramework/metadata/conf.mk"
+ pattern: '^metadata_version\s*=\s*(\S+)'
display_name: "Atari - Lynx (Lynx.emu)"
mode: standalone
cores:
diff --git a/emulators/lzdoom.yml b/emulators/lzdoom.yml
index c29441683..8ca3a0e57 100644
--- a/emulators/lzdoom.yml
+++ b/emulators/lzdoom.yml
@@ -6,6 +6,10 @@ profiled_date: "2026-10-20"
source_commit: "4ce19a12164ebd6802b7fb2f94d700a6e736d0fb"
pin_frozen: "The platforms that ship it run the 3.88 line: RetroPie builds tag 3.88b (RetroPie scriptmodules/ports/lzdoom.sh:15) and AmberELEC a fork of the g3.3mgw branch that still reports 3.88b (AmberELEC packages/games/emulators/lzdoom/package.mk:5). The l4.x releases are a GZDoom 4 based line that no platform ships."
core_version: "3.88b"
+version_basis:
+ kind: tag
+ tag: "3.88b"
+ distance: 0
display_name: "LZDoom"
cores: [lzdoom, "LZDoom"]
systems: [doom, heretic, hexen, strife, chex]
diff --git a/emulators/m64plus-fz.yml b/emulators/m64plus-fz.yml
index b6215173e..a58a793fb 100644
--- a/emulators/m64plus-fz.yml
+++ b/emulators/m64plus-fz.yml
@@ -7,6 +7,10 @@ source_branch: fz-master
profiled_date: "2026-08-11"
source_commit: "f3c381bcc58e4adce897aba323193d3f407e30e3"
core_version: "3.0.335 (beta)"
+version_basis:
+ kind: file
+ path: "build_common/version_common.gradle"
+ pattern: 'versionName\s*=\s*"([^"]+)"'
display_name: "Nintendo - Nintendo 64 (M64Plus FZ)"
cores:
- m64plus-fz
diff --git a/emulators/magicengine.yml b/emulators/magicengine.yml
index 4df3ff8ab..20c2d0a5e 100644
--- a/emulators/magicengine.yml
+++ b/emulators/magicengine.yml
@@ -6,6 +6,10 @@ upstream: closed-source
author: "David Michel, Cedric Michel"
profiled_date: "2026-10-20"
core_version: "1.1.3"
+version_basis:
+ kind: package
+ url: "https://www.retrobat.ovh/repo/win64/stable/emulators/magicengine.7z"
+ artifact: "magicengine.7z, readme.txt"
display_name: "NEC - PC Engine / CD-ROM / SuperGrafx (MagicEngine)"
cores:
- magicengine
diff --git a/emulators/mandarine.yml b/emulators/mandarine.yml
index 3a68a9a78..cabf6b861 100644
--- a/emulators/mandarine.yml
+++ b/emulators/mandarine.yml
@@ -5,7 +5,11 @@ source: "https://github.com/ptyfyre/mandarine-neo"
upstream: "https://github.com/ptyfyre/mandarine-neo"
profiled_date: "2026-08-08"
source_commit: "7f8ec960b6183be4350bca099d23ddd9fc7bcaa3"
-core_version: "1.3.0"
+core_version: "r1.3.0-6-g7f8ec96"
+version_basis:
+ kind: tag
+ tag: "r1.3.0"
+ distance: 6
display_name: "Nintendo - 3DS (Mandarine)"
cores:
- mandarine
diff --git a/emulators/mariani.yml b/emulators/mariani.yml
index 747b12370..b574804b9 100644
--- a/emulators/mariani.yml
+++ b/emulators/mariani.yml
@@ -7,6 +7,10 @@ profiled_date: "2026-08-12"
source_commit: "51893cab7e8a3d1298734848f4fd616f2e1831fb"
upstream_commit: "3e8054b4627624398e4589f7f27b3d40a6b9718e"
core_version: "1.7"
+version_basis:
+ kind: file
+ path: "Mariani.xcodeproj/project.pbxproj"
+ pattern: "MARKETING_VERSION = ([^;]+);"
display_name: "Apple - Apple II (Mariani)"
cores:
- mariani
diff --git a/emulators/mastergear.yml b/emulators/mastergear.yml
index 99519ecff..824418703 100644
--- a/emulators/mastergear.yml
+++ b/emulators/mastergear.yml
@@ -10,6 +10,10 @@ version_source:
author: "Marat Fayzullin (Garage Research)"
profiled_date: "2026-08-12"
core_version: "4.9"
+version_basis:
+ kind: package
+ url: "https://play.google.com/store/apps/details?id=com.fms.mg"
+ artifact: "com.fms.mg APK versionName (versionCode 4900)"
display_name: "Sega - Master System / Game Gear (MasterGear)"
cores:
- mastergear
diff --git a/emulators/md-emu.yml b/emulators/md-emu.yml
index bfc4fb35b..abbc45760 100644
--- a/emulators/md-emu.yml
+++ b/emulators/md-emu.yml
@@ -7,6 +7,10 @@ profiled_date: "2026-08-12"
source_commit: "1c12fac5ce49badaadff2e2f210dcc30b89f4943"
upstream_commit: "f3cb0a5115a2b29426495ae35c2d45c404e650df"
core_version: "1.5.85"
+version_basis:
+ kind: file
+ path: "EmuFramework/metadata/conf.mk"
+ pattern: '^metadata_version\s*=\s*(\S+)'
display_name: "Sega - MS/MD/CD (MD.emu)"
mode: standalone
cores:
diff --git a/emulators/mednafen.yml b/emulators/mednafen.yml
index 2053f6b6f..5cdc34595 100644
--- a/emulators/mednafen.yml
+++ b/emulators/mednafen.yml
@@ -8,6 +8,11 @@ version_source:
pattern: '
Mednafen (\d+(?:\.\d+)+)'
profiled_date: "2026-08-08"
core_version: "1.32.1"
+version_basis:
+ kind: package
+ url: "https://mednafen.github.io/releases/files/mednafen-1.32.1.tar.xz"
+ pattern: 'mednafen-(\d+(?:\.\d+)+)\.tar\.xz'
+ artifact: "mednafen-1.32.1.tar.xz"
display_name: "Mednafen"
cores: [mednafen]
mode: standalone
diff --git a/emulators/melonds-nightly.yml b/emulators/melonds-nightly.yml
index 076121ead..40f1df258 100644
--- a/emulators/melonds-nightly.yml
+++ b/emulators/melonds-nightly.yml
@@ -6,7 +6,11 @@ upstream: "https://github.com/rafaelvcaetano/melonDS-android-lib"
source_commit: "c42995caff0144f37ad9791dc9bc96d82e8a6f65"
upstream_commit: "431ab4bd0003c4356e25fce89640ae1004579b9b"
profiled_date: "2026-08-12"
-core_version: "2.0.1 (NIGHTLY)"
+core_version: "2.0.1"
+version_basis:
+ kind: file
+ path: "buildSrc/src/main/kotlin/AppConfig.kt"
+ pattern: 'const val versionName = "([^"]+)"'
display_name: "Nintendo - DS (melonDS Nightly)"
cores: ["melonds-nightly"]
systems: [nintendo-ds, nintendo-dsi]
diff --git a/emulators/mfme.yml b/emulators/mfme.yml
index 6e5cabfa4..96d373a11 100644
--- a/emulators/mfme.yml
+++ b/emulators/mfme.yml
@@ -5,6 +5,10 @@ source: "https://www.desertislandfruits.com/"
upstream: closed-source
profiled_date: "2026-08-08"
core_version: "20.1"
+version_basis:
+ kind: package
+ url: "https://www.desertislandfruits.com/"
+ artifact: "MFME v20 Windows installer, MFME.exe FileVersion 20.1.0.0"
display_name: "MFME (Fruit Machines)"
cores:
- mfme
diff --git a/emulators/minivmac37.yml b/emulators/minivmac37.yml
index 089bf95fd..5ba128d50 100644
--- a/emulators/minivmac37.yml
+++ b/emulators/minivmac37.yml
@@ -5,6 +5,11 @@ source: "https://github.com/minivmac/minivmac"
profiled_date: "2026-10-20"
source_commit: "6860a9a7f372c461b25dc42974b191a453ebcfb2"
core_version: "37.03"
+version_basis:
+ kind: file
+ path: "setup/SPBASDEF.i"
+ pattern: '#define MajorVersion (\d+)\s*\n#define MinorVersion (\d+)'
+ format: "{1}.{2}"
display_name: "Apple - Macintosh Plus (Mini vMac 37)"
mode: standalone
cores: ["minivmac"]
diff --git a/emulators/model2.yml b/emulators/model2.yml
index 4f4f69ca1..6c13c2335 100644
--- a/emulators/model2.yml
+++ b/emulators/model2.yml
@@ -7,6 +7,9 @@ version_source:
pattern: 'Model 2 Emulator: (\d+\.\d+[a-z]?)'
profiled_date: "2026-03-26"
core_version: "1.1a"
+version_basis:
+ kind: unverified
+ why: no_artifact
display_name: "Model 2 Emulator (Sega Model 2)"
cores:
- model2
diff --git a/emulators/msx-emu.yml b/emulators/msx-emu.yml
index d6b7135db..8a16aa246 100644
--- a/emulators/msx-emu.yml
+++ b/emulators/msx-emu.yml
@@ -6,6 +6,10 @@ upstream: "http://bluemsx.msxblue.com/"
profiled_date: "2026-08-12"
source_commit: "1c12fac5ce49badaadff2e2f210dcc30b89f4943"
core_version: "1.5.85"
+version_basis:
+ kind: file
+ path: "EmuFramework/metadata/conf.mk"
+ pattern: '^metadata_version\s*=\s*(\S+)'
display_name: "MSX/ColecoVision (MSX.emu)"
mode: standalone
cores:
diff --git a/emulators/mupen64plus-ae.yml b/emulators/mupen64plus-ae.yml
index 7ec92b775..132c3405c 100644
--- a/emulators/mupen64plus-ae.yml
+++ b/emulators/mupen64plus-ae.yml
@@ -6,6 +6,10 @@ upstream: "https://github.com/mupen64plus-ae/mupen64plus-ae"
profiled_date: "2026-08-12"
source_commit: "33bf7021549d7873e976884370fbd1a8e7333bc7"
core_version: "3.0.249 (beta)"
+version_basis:
+ kind: file
+ path: "build_common/version_common.gradle"
+ pattern: 'versionName\s*=\s*"([^"]+)"'
display_name: "Nintendo - Nintendo 64 (Mupen64Plus AE)"
cores:
- mupen64plus-ae
diff --git a/emulators/mupen64plus.yml b/emulators/mupen64plus.yml
index cded5323f..280ae6ec6 100644
--- a/emulators/mupen64plus.yml
+++ b/emulators/mupen64plus.yml
@@ -8,6 +8,11 @@ source_commit: "c8ac4862a019d7885b24927d9b4db5dd3e42a528"
upstream_commit: "6dca4c15370ac3e2171ce7b31426695f8f39b460"
upstream_frozen: "AmberELEC builds the core at this revision with the front end at source_commit. Later core commits are not part of that build."
core_version: "2.6.0"
+version_basis:
+ kind: file
+ path: "src/version.h"
+ pattern: '#define\s+CONSOLE_UI_VERSION\s+0x0?((?<=0)[0-9]|[1-9][0-9])0?((?<=0)[0-9]|[1-9][0-9])0?((?<=0)[0-9]|[1-9][0-9])\b'
+ format: "{1}.{2}.{3}"
display_name: "Nintendo - Nintendo 64 (Mupen64Plus)"
cores:
- "mupen64plus"
diff --git a/emulators/my-boy.yml b/emulators/my-boy.yml
index 119663e3c..366c23473 100644
--- a/emulators/my-boy.yml
+++ b/emulators/my-boy.yml
@@ -10,6 +10,10 @@ version_source:
author: "Pixel Respawn LLC"
profiled_date: "2026-10-20"
core_version: "2.0.3"
+version_basis:
+ kind: package
+ url: "https://play.google.com/store/apps/details?id=com.fastemulator.gba"
+ artifact: "com.fastemulator.gba APK versionName (versionCode 90053)"
display_name: "Nintendo - Game Boy Advance (My Boy!)"
mode: standalone
cores:
diff --git a/emulators/my-oldboy.yml b/emulators/my-oldboy.yml
index b49d67645..6754571be 100644
--- a/emulators/my-oldboy.yml
+++ b/emulators/my-oldboy.yml
@@ -10,6 +10,10 @@ version_source:
author: "Pixel Respawn LLC"
profiled_date: "2026-10-20"
core_version: "2.0.0"
+version_basis:
+ kind: package
+ url: "https://play.google.com/store/apps/details?id=com.fastemulator.gbc"
+ artifact: "com.fastemulator.gbc APK versionName (versionCode 90022)"
display_name: "Nintendo - Game Boy / Game Boy Color (My OldBoy!)"
mode: standalone
cores:
diff --git a/emulators/nanoboyadvance.yml b/emulators/nanoboyadvance.yml
index 92546cc99..bbd61b392 100644
--- a/emulators/nanoboyadvance.yml
+++ b/emulators/nanoboyadvance.yml
@@ -5,7 +5,11 @@ source: "https://github.com/nba-emu/NanoBoyAdvance"
profiled_date: "2026-10-17"
source_commit: "3bb6f478f977dbfd3106508536e5fbce90d1898b"
pin_frozen: "ROCKNIX 20261001 builds this revision of the SDL2 frontend (v1.6 plus four commits). Later upstream work is not part of that build."
-core_version: "1.6"
+core_version: "v1.6-4-g3bb6f47"
+version_basis:
+ kind: tag
+ tag: "v1.6"
+ distance: 4
display_name: "Nintendo - Game Boy Advance (NanoBoyAdvance)"
cores:
- "nanoboyadvance"
diff --git a/emulators/neo-emu.yml b/emulators/neo-emu.yml
index f56052f3f..14d2e8762 100644
--- a/emulators/neo-emu.yml
+++ b/emulators/neo-emu.yml
@@ -7,6 +7,10 @@ profiled_date: "2026-08-12"
source_commit: "1c12fac5ce49badaadff2e2f210dcc30b89f4943"
upstream_commit: "ed06739a7202a87cd0992006628e4748aacd1ce5"
core_version: "1.5.85"
+version_basis:
+ kind: file
+ path: "EmuFramework/metadata/conf.mk"
+ pattern: '^metadata_version\s*=\s*(\S+)'
display_name: "SNK - Neo Geo (NEO.emu)"
mode: standalone
cores:
diff --git a/emulators/nes-emu.yml b/emulators/nes-emu.yml
index c115f4c69..e1c9688a2 100644
--- a/emulators/nes-emu.yml
+++ b/emulators/nes-emu.yml
@@ -8,6 +8,10 @@ source_commit: "1c12fac5ce49badaadff2e2f210dcc30b89f4943"
upstream_commit: "d339f1fa0cd8b69cc637a0de3fb3f04cb28748ea"
upstream_frozen: "NES.emu's FCEUX tree is synced at this FCEUX commit of 2025-11-11. Later FCEUX commits are not in the port."
core_version: "1.5.85"
+version_basis:
+ kind: file
+ path: "EmuFramework/metadata/conf.mk"
+ pattern: '^metadata_version\s*=\s*(\S+)'
display_name: "Nintendo - NES / Famicom (NES.emu)"
mode: standalone
cores:
diff --git a/emulators/nesoid.yml b/emulators/nesoid.yml
index e70e17549..73c02e044 100644
--- a/emulators/nesoid.yml
+++ b/emulators/nesoid.yml
@@ -6,7 +6,11 @@ upstream: "https://sourceforge.net/p/nesoid/code"
author: "Yongzh (androidemu.com)"
profiled_date: "2026-08-12"
source_commit: "b2ff53fefa56a668aad4a579af85adc672d7a791"
-core_version: "2.5-4"
+core_version: "2.5"
+version_basis:
+ kind: file
+ path: "app/build.gradle"
+ pattern: 'versionName\s+"([^"]+)"'
display_name: "Nintendo - NES / Famicom (Nesoid)"
mode: standalone
cores:
diff --git a/emulators/nethersx2-turnip-classic.yml b/emulators/nethersx2-turnip-classic.yml
index be8691b44..ee33915d6 100644
--- a/emulators/nethersx2-turnip-classic.yml
+++ b/emulators/nethersx2-turnip-classic.yml
@@ -10,6 +10,11 @@ pin_frozen: "the classic build is this revision. v0.7 ships a newer shim, and it
source_commit: "8e17e584884e19b0a912f1988730d576d6d5aa84"
upstream_commit: "1d1f795dfc70e38da67724c7298779260f513889"
core_version: "2.2n-3668-Turnip-v0.7"
+version_basis:
+ kind: package
+ url: "https://github.com/nckstwrt/NetherSX2-Turnip/releases/download/v0.7/NetherSX2-Classic-v2.2n-3668-Turnip-v0.7.apk"
+ pattern: 'NetherSX2-Classic-v(.+)\.apk'
+ artifact: "NetherSX2-Classic-v2.2n-3668-Turnip-v0.7.apk"
display_name: "Sony - PlayStation 2 (NetherSX2-Turnip Classic)"
mode: standalone
cores:
diff --git a/emulators/nethersx2-turnip.yml b/emulators/nethersx2-turnip.yml
index 8762aed6c..5f71386a0 100644
--- a/emulators/nethersx2-turnip.yml
+++ b/emulators/nethersx2-turnip.yml
@@ -8,7 +8,11 @@ author: "nckstwrt"
profiled_date: "2026-08-12"
source_commit: "3b7cf800ccac4ab5af768aee24b04363bedeb711"
upstream_commit: "1d1f795dfc70e38da67724c7298779260f513889"
-core_version: "2.2n-4248-Turnip-v0.7"
+core_version: "v0.7"
+version_basis:
+ kind: tag
+ tag: "v0.7"
+ distance: 0
display_name: "Sony - PlayStation 2 (NetherSX2-Turnip)"
mode: standalone
cores:
diff --git a/emulators/nethersx2.yml b/emulators/nethersx2.yml
index 1d063c154..b4398c0bf 100644
--- a/emulators/nethersx2.yml
+++ b/emulators/nethersx2.yml
@@ -9,6 +9,11 @@ profiled_date: "2026-10-27"
source_commit: "f5f89b3b76e89a8f684da91cf5ad6e542825c0cb"
upstream_commit: "1d1f795dfc70e38da67724c7298779260f513889"
core_version: "2.2n-4248"
+version_basis:
+ kind: package
+ url: "https://github.com/Trixarian/NetherSX2-patch/releases/download/2.2n/NetherSX2-v2.2n-4248.apk"
+ pattern: 'NetherSX2-v([0-9.]+[a-z]?-[0-9]+)\.apk'
+ artifact: "NetherSX2-v2.2n-4248.apk"
display_name: "Sony - PlayStation 2 (NetherSX2)"
mode: standalone
cores:
diff --git a/emulators/ngp-emu.yml b/emulators/ngp-emu.yml
index 9da8dafdb..32ad37027 100644
--- a/emulators/ngp-emu.yml
+++ b/emulators/ngp-emu.yml
@@ -6,6 +6,10 @@ upstream: "https://mednafen.github.io/"
profiled_date: "2026-08-12"
source_commit: "1c12fac5ce49badaadff2e2f210dcc30b89f4943"
core_version: "1.5.85"
+version_basis:
+ kind: file
+ path: "EmuFramework/metadata/conf.mk"
+ pattern: '^metadata_version\s*=\s*(\S+)'
display_name: "SNK - Neo Geo Pocket / Color (NGP.emu)"
mode: standalone
cores:
diff --git a/emulators/nosgba.yml b/emulators/nosgba.yml
index d82f44116..e3d51e83d 100644
--- a/emulators/nosgba.yml
+++ b/emulators/nosgba.yml
@@ -8,6 +8,10 @@ version_source:
pattern: 'no\$gba v(\d+(?:\.\d+)+)'
profiled_date: "2026-10-24"
core_version: "3.06"
+version_basis:
+ kind: package
+ url: "https://problemkaputt.de/gba.htm"
+ artifact: "no$gba-w.zip, release v3.06 of 14 Apr 2025 on the download page"
display_name: "Nintendo - GBA/DS/DSi (no$gba)"
cores:
- nosgba
diff --git a/emulators/np2pi.yml b/emulators/np2pi.yml
index 66d29cefa..a8d3b5267 100644
--- a/emulators/np2pi.yml
+++ b/emulators/np2pi.yml
@@ -6,6 +6,10 @@ upstream: "https://np2.yui.ne.jp"
profiled_date: "2026-10-20"
source_commit: "2e995768b55e97acfaac32d45fbb8351645cba62"
core_version: "0.83"
+version_basis:
+ kind: file
+ path: "np2ver.h"
+ pattern: '#define\s+NP2VER_CORE\s+"ver\.([0-9][^"]*)"'
display_name: "NEC - PC-98 (np2pi)"
mode: standalone
cores:
diff --git a/emulators/openbor.yml b/emulators/openbor.yml
index 154161259..5cc4787a5 100644
--- a/emulators/openbor.yml
+++ b/emulators/openbor.yml
@@ -5,7 +5,12 @@ source: "https://github.com/DCurrent/openbor"
upstream: "https://github.com/DCurrent/openbor"
profiled_date: "2026-08-12"
source_commit: "65a7f0b41aee87fe4084e538634b4ed73236f871"
-core_version: "4.0 Build 7949"
+core_version: "4.0"
+version_basis:
+ kind: file
+ path: "engine/version.sh"
+ pattern: '^VERSION_MAJOR=(\d+)\s*\nVERSION_MINOR=(\d+)'
+ format: "{1}.{2}"
display_name: "OpenBOR Game Engine"
cores:
- openbor
diff --git a/emulators/opengoal.yml b/emulators/opengoal.yml
index a05787a7c..47eceb1ab 100644
--- a/emulators/opengoal.yml
+++ b/emulators/opengoal.yml
@@ -7,6 +7,10 @@ source_commit: "6445b4a50a7540df512e3c82c62216521421410c"
pin_frozen: "RetroBat, the only platform that ships it, installs this release: the gk.exe of its opengoal.7z package (10 October 2026) is byte identical to the one in opengoal-windows-v0.3.8.zip. Later releases are not part of that package."
profiled_date: "2026-10-20"
core_version: "v0.3.8"
+version_basis:
+ kind: tag
+ tag: "v0.3.8"
+ distance: 0
display_name: "Jak and Daxter (OpenGOAL)"
cores: [opengoal]
systems: [opengoal]
diff --git a/emulators/openjazz.yml b/emulators/openjazz.yml
index aa7e48aa3..67cab5426 100644
--- a/emulators/openjazz.yml
+++ b/emulators/openjazz.yml
@@ -6,6 +6,10 @@ upstream: "https://github.com/AlisterT/openjazz"
profiled_date: "2026-10-04"
source_commit: "a1626f4edd4a7af72c54103021790c56d8ecfced"
core_version: "20260301"
+version_basis:
+ kind: file
+ path: "CMakeLists.txt"
+ pattern: '^project\(OpenJazz\s+VERSION\s+(\S+)'
display_name: "Jazz Jackrabbit (OpenJazz)"
cores: ["OpenJazz"]
systems: [jazz-jackrabbit]
diff --git a/emulators/openjk.yml b/emulators/openjk.yml
index c04ed1abe..0625ac61d 100644
--- a/emulators/openjk.yml
+++ b/emulators/openjk.yml
@@ -5,6 +5,12 @@ source: "https://github.com/JACoders/OpenJK"
upstream: "https://github.com/JACoders/OpenJK"
profiled_date: "2026-10-04"
source_commit: "260c59c2907187af555a676fe0cc798893bf7757"
+core_version: "v0.0.0-951-g260c59c"
+version_basis:
+ kind: tag
+ match: "v*"
+ tag: "v0.0.0"
+ distance: 951
display_name: "OpenJK"
cores: [openjk]
systems: [jediacademy, jediknight2]
diff --git a/emulators/openjkdf2.yml b/emulators/openjkdf2.yml
index a31e42d78..6b741fb4f 100644
--- a/emulators/openjkdf2.yml
+++ b/emulators/openjkdf2.yml
@@ -6,6 +6,10 @@ upstream: "https://github.com/shinyquagsire23/OpenJKDF2"
profiled_date: "2026-10-04"
source_commit: "798f930402525a23b94671d85b97b00390342fa0"
core_version: "0.9.9.0"
+version_basis:
+ kind: file
+ path: "cmake_modules/version.cmake"
+ pattern: 'set\(OPENJKDF2_PROJECT_VERSION\s+([0-9.]+)\)'
display_name: "OpenJKDF2"
cores: []
systems:
diff --git a/emulators/openmohaa.yml b/emulators/openmohaa.yml
index cd6b87e27..9cf083712 100644
--- a/emulators/openmohaa.yml
+++ b/emulators/openmohaa.yml
@@ -6,6 +6,11 @@ upstream: "https://github.com/openmoh/openmohaa"
profiled_date: "2026-10-04"
source_commit: "a2f340195975f4f042e28a60b62561dd9a0b2700"
upstream_commit: "a2f340195975f4f042e28a60b62561dd9a0b2700"
+core_version: "0.83.0"
+version_basis:
+ kind: file
+ path: "cmake/identity.cmake"
+ pattern: 'set\(PROJECT_VERSION\s+([0-9][^)\s]*)\)'
display_name: "OpenMoHAA"
cores: []
systems: [mohaa, mohaa-spearhead, mohaa-breakthrough]
diff --git a/emulators/openmsx.yml b/emulators/openmsx.yml
index 26084c8e8..e8cb758fa 100644
--- a/emulators/openmsx.yml
+++ b/emulators/openmsx.yml
@@ -4,7 +4,11 @@ source: "https://github.com/openMSX/openMSX"
upstream: "https://github.com/openMSX/openMSX"
profiled_date: "2026-03-26"
source_commit: "a557de7b37bc48420b63ec10e7ede953babad4f9"
-core_version: "21.0"
+core_version: "RELEASE_22_0_RC2"
+version_basis:
+ kind: tag
+ tag: "RELEASE_22_0_RC2"
+ distance: 0
display_name: "MSX / ColecoVision / Spectravideo (openMSX)"
cores:
- openmsx
diff --git a/emulators/openttd.yml b/emulators/openttd.yml
index 6a1728cf2..e5b1b7dd2 100644
--- a/emulators/openttd.yml
+++ b/emulators/openttd.yml
@@ -5,6 +5,10 @@ source: "https://github.com/OpenTTD/OpenTTD"
profiled_date: "2026-10-20"
source_commit: "61342620bc4c0971b28b3578379b53d04d2f11f1"
core_version: "14.1"
+version_basis:
+ kind: tag
+ tag: "14.1"
+ distance: 0
display_name: "Transport Tycoon Deluxe (OpenTTD)"
mode: standalone
cores:
diff --git a/emulators/oricutron.yml b/emulators/oricutron.yml
index c2ed07844..28cf5119e 100644
--- a/emulators/oricutron.yml
+++ b/emulators/oricutron.yml
@@ -5,7 +5,12 @@ source: "https://github.com/pete-gordon/oricutron"
upstream: "https://www.petergordon.org.uk/oricutron/"
profiled_date: "2026-08-08"
source_commit: "002279fce9fa756d1d63cdc40ae97939eb7de7ed"
-core_version: "V1_2_14"
+core_version: "1.2.0"
+version_basis:
+ kind: file
+ path: "Makefile"
+ pattern: '^VERSION_MAJ\s*=\s*(\d+)\s*\nVERSION_MIN\s*=\s*(\d+)\s*\nVERSION_REV\s*=\s*(\d+)'
+ format: "{1}.{2}.{3}"
display_name: "Tangerine - Oric (Oricutron)"
cores:
- oricutron
diff --git a/emulators/osmose.yml b/emulators/osmose.yml
index bd1164734..b10fb7273 100644
--- a/emulators/osmose.yml
+++ b/emulators/osmose.yml
@@ -4,7 +4,11 @@ core_classification: community_fork
source: "https://github.com/RetroPie/osmose-rpi"
profiled_date: "2026-10-20"
source_commit: "7775add582ad2595e876ca38d4675510f2df866e"
-core_version: "0.8.1+rpi20130302"
+core_version: "0.8.1+rpi20121122"
+version_basis:
+ kind: file
+ path: "Version.h"
+ pattern: '#define\s+__OSMOSE_VERSION__\s+"OsmOse\s+([^"]+)"'
display_name: "Sega - Master System / Game Gear (Osmose)"
mode: standalone
cores:
diff --git a/emulators/parallel-launcher.yml b/emulators/parallel-launcher.yml
index 253a54e30..1f1222cb6 100644
--- a/emulators/parallel-launcher.yml
+++ b/emulators/parallel-launcher.yml
@@ -6,7 +6,12 @@ upstream: "https://gitlab.com/parallel-launcher/parallel-n64"
profiled_date: "2026-08-08"
source_commit: "8dc2a83770c57bc00e1b1fae0aed71f2120cc875"
upstream_commit: "a9028b23bd5ee8b465eefc64320fd7701f3430fa"
-core_version: "v9.0-6"
+core_version: "9.0.6"
+version_basis:
+ kind: file
+ path: "src/core/version.cpp"
+ pattern: 'CurrentVersion::Application\s*=\s*\{\s*(\d+),\s*(\d+),\s*(\d+)\s*\}'
+ format: "{1}.{2}.{3}"
display_name: "Nintendo - Nintendo 64 (Parallel Launcher)"
cores:
- parallel-launcher
diff --git a/emulators/pce-emu.yml b/emulators/pce-emu.yml
index cfe320bfe..08eadaab3 100644
--- a/emulators/pce-emu.yml
+++ b/emulators/pce-emu.yml
@@ -6,6 +6,10 @@ upstream: "https://mednafen.github.io/"
profiled_date: "2026-08-12"
source_commit: "1c12fac5ce49badaadff2e2f210dcc30b89f4943"
core_version: "1.5.85"
+version_basis:
+ kind: file
+ path: "EmuFramework/metadata/conf.mk"
+ pattern: '^metadata_version\s*=\s*(\S+)'
display_name: "PCE.emu"
cores: ["pce-emu", "PCE.emu", "pceemu", "PCE-EMU", "com.PceEmu"]
systems: [nec-pc-engine, nec-pc-engine-cd, nec-supergrafx]
diff --git a/emulators/pcsx2-legacy.yml b/emulators/pcsx2-legacy.yml
index 737600eae..74ec65c37 100644
--- a/emulators/pcsx2-legacy.yml
+++ b/emulators/pcsx2-legacy.yml
@@ -6,7 +6,11 @@ source: "https://github.com/PCSX2/pcsx2"
upstream: "https://github.com/PCSX2/pcsx2"
profiled_date: "2026-08-08"
source_commit: "aaaf29557fe63870ede815dd6d2e48a98279ca59"
-core_version: "1.6.0"
+core_version: "v1.6.0"
+version_basis:
+ kind: tag
+ tag: "v1.6.0"
+ distance: 0
display_name: "Sony - PlayStation 2 (PCSX2 Legacy)"
cores:
- pcsx2-legacy
diff --git a/emulators/pcsx2.yml b/emulators/pcsx2.yml
index d428e1188..693e6f9f0 100644
--- a/emulators/pcsx2.yml
+++ b/emulators/pcsx2.yml
@@ -8,7 +8,11 @@ cores:
- pcsx2
profiled_date: "2026-03-30"
source_commit: "f0523f8acb1d3a765ee73b74cffec63093569199"
-core_version: "Git"
+core_version: "v2.9.146-1-gf0523f8"
+version_basis:
+ kind: tag
+ tag: "v2.9.146"
+ distance: 1
display_name: "Sony - PlayStation 2 (PCSX2)"
systems: [sony-playstation-2]
diff --git a/emulators/pcsx2x6.yml b/emulators/pcsx2x6.yml
index 616929928..aeb3ea2cb 100644
--- a/emulators/pcsx2x6.yml
+++ b/emulators/pcsx2x6.yml
@@ -8,7 +8,11 @@ profiled_date: "2026-08-08"
source_commit: "583f0e90907d69bb2db670f570d0865260fcc71b"
upstream_commit: "3df128d9f9cd89cfc47d08d94b3439136ba22b33"
prose_written_at: "583f0e90907d69bb2db670f570d0865260fcc71b"
-core_version: "v0.2.22"
+core_version: "v0.2.22-2-g583f0e9"
+version_basis:
+ kind: tag
+ tag: "v0.2.22"
+ distance: 2
display_name: "Namco - System 246 / 256 (PCSX2x6)"
cores:
- pcsx2x6
diff --git a/emulators/pcsx_rearmed_standalone.yml b/emulators/pcsx_rearmed_standalone.yml
index 8924ddcfb..fc12264fc 100644
--- a/emulators/pcsx_rearmed_standalone.yml
+++ b/emulators/pcsx_rearmed_standalone.yml
@@ -5,6 +5,10 @@ source: "https://github.com/notaz/pcsx_rearmed"
profiled_date: "2026-10-20"
source_commit: "8b6c163575e6ce9a0537553e0d4ed4225315955e"
core_version: "r26"
+version_basis:
+ kind: file
+ path: "frontend/libretro.c"
+ pattern: 'info->library_version\s+=\s+"([^"]+)'
display_name: "Sony - PlayStation (PCSX-ReARMed standalone)"
mode: standalone
cores:
diff --git a/emulators/pdark.yml b/emulators/pdark.yml
index c7ac7731b..863e27f03 100644
--- a/emulators/pdark.yml
+++ b/emulators/pdark.yml
@@ -6,7 +6,9 @@ upstream: "https://github.com/perfect-dark-pc-port/perfect_dark"
source_branch: port
source_commit: "32a1cb9f268dd3ac73016801025c6bbbfa20130f"
profiled_date: "2026-10-20"
-core_version: "port 2025-06-14"
+core_version: null
+version_basis:
+ kind: none
display_name: "Perfect Dark (PC port)"
cores: [pdark]
systems: [pdark]
diff --git a/emulators/phoenix.yml b/emulators/phoenix.yml
index 0239cb85c..e56e2dd41 100644
--- a/emulators/phoenix.yml
+++ b/emulators/phoenix.yml
@@ -5,6 +5,10 @@ source: "http://www.arts-union.ru"
upstream: "http://www.arts-union.ru"
profiled_date: "2026-10-20"
core_version: "2.8.JAG"
+version_basis:
+ kind: package
+ url: "https://www.retrobat.ovh/repo/win64/stable/emulators/phoenix.7z"
+ artifact: "phoenix.7z, PhoenixEmuProject.exe version string"
display_name: "3DO, Atari Jaguar (Phoenix)"
mode: standalone
cores:
diff --git a/emulators/piemu.yml b/emulators/piemu.yml
index f5bb484a5..f0b5bdef3 100644
--- a/emulators/piemu.yml
+++ b/emulators/piemu.yml
@@ -7,7 +7,11 @@ profiled_date: "2026-10-22"
source_commit: "0785214f13746bdfd709b1909f007e213b470ba1"
upstream_commit: "23208626e16e53b73fd21a2fbd0c429338625dc4"
pin_frozen: "AmberELEC, the only platform that ships it, builds this revision (AmberELEC packages/games/emulators/piemu/package.mk:5). Later commits are not part of that build."
-core_version: "git"
+core_version: "20030430"
+version_basis:
+ kind: file
+ path: "app.h"
+ pattern: '#define\s+VERSION\s+"([^"]+)"'
display_name: "Aquaplus - P/ECE (P/EMU/SDL)"
cores:
- "piemu"
diff --git a/emulators/pisnes.yml b/emulators/pisnes.yml
index 68a7bd6fd..69f70ecd4 100644
--- a/emulators/pisnes.yml
+++ b/emulators/pisnes.yml
@@ -6,6 +6,10 @@ upstream: "https://sourceforge.net/projects/pisnes/"
profiled_date: "2026-10-20"
source_commit: "a5b427f255f922cfa65e29c4285b3d565a4c9044"
core_version: "1.39"
+version_basis:
+ kind: file
+ path: "snes9x.h"
+ pattern: '#define\s+VERSION\s+"([^"]+)"'
display_name: "Nintendo - SNES (PiSNES)"
mode: standalone
cores:
diff --git a/emulators/pizza-boy-gba.yml b/emulators/pizza-boy-gba.yml
index daf89b967..5c61dd508 100644
--- a/emulators/pizza-boy-gba.yml
+++ b/emulators/pizza-boy-gba.yml
@@ -10,6 +10,10 @@ version_source:
author: "Pizza Emulators"
profiled_date: "2026-10-24"
core_version: "2.8.13"
+version_basis:
+ kind: package
+ url: "https://play.google.com/store/apps/details?id=it.dbtecno.pizzaboygbapro"
+ artifact: "it.dbtecno.pizzaboygbapro APK versionName (versionCode 343)"
display_name: "Nintendo - Game Boy Advance (Pizza Boy GBA)"
mode: standalone
cores:
diff --git a/emulators/pizza-boy-gbc.yml b/emulators/pizza-boy-gbc.yml
index 566895fda..5c74ba3e5 100644
--- a/emulators/pizza-boy-gbc.yml
+++ b/emulators/pizza-boy-gbc.yml
@@ -10,6 +10,10 @@ version_source:
author: "Pizza Emulators"
profiled_date: "2026-10-24"
core_version: "6.0.6"
+version_basis:
+ kind: package
+ url: "https://play.google.com/store/apps/details?id=it.dbtecno.pizzaboypro"
+ artifact: "it.dbtecno.pizzaboypro APK versionName (versionCode 231)"
display_name: "Nintendo - Game Boy / Color (Pizza Boy GBC)"
mode: standalone
cores:
diff --git a/emulators/pizza-boy-sc.yml b/emulators/pizza-boy-sc.yml
index 2658f40ee..b1c7d787b 100644
--- a/emulators/pizza-boy-sc.yml
+++ b/emulators/pizza-boy-sc.yml
@@ -10,6 +10,10 @@ version_source:
author: "Pizza Emulators"
profiled_date: "2026-10-20"
core_version: "1.2.14"
+version_basis:
+ kind: package
+ url: "https://play.google.com/store/apps/details?id=it.dbtecno.pizzaboyscbasic"
+ artifact: "it.dbtecno.pizzaboyscbasic XAPK versionName (versionCode 43)"
display_name: "Sega - MS/GG/MD/CD (Pizza Boy SC)"
mode: standalone
cores:
diff --git a/emulators/plastic.yml b/emulators/plastic.yml
index ba45df4ee..86256d9a9 100644
--- a/emulators/plastic.yml
+++ b/emulators/plastic.yml
@@ -5,7 +5,11 @@ source: "https://github.com/Amjad50/plastic"
upstream: "https://github.com/Amjad50/plastic"
profiled_date: "2026-08-12"
source_commit: "74152adb3acd890d3abee2ff5906408f26a199e2"
-core_version: "0.3.5"
+core_version: "v0.3.5"
+version_basis:
+ kind: tag
+ tag: "v0.3.5"
+ distance: 0
display_name: "Nintendo - NES / Famicom (Plastic)"
cores:
- plastic
diff --git a/emulators/pom2.yml b/emulators/pom2.yml
index 6c4306833..fa75430d7 100644
--- a/emulators/pom2.yml
+++ b/emulators/pom2.yml
@@ -5,7 +5,11 @@ source: "https://github.com/habib256/pom2"
upstream: "https://github.com/habib256/pom2"
profiled_date: "2026-10-23"
source_commit: "dbf7673d0ca938884419335f3d88e9029c15494f"
-core_version: "v0.9.9"
+core_version: "0.9.9"
+version_basis:
+ kind: file
+ path: "CMakeLists.txt"
+ pattern: 'project\(pom2_imgui\s+VERSION\s+([0-9][\w.+-]*)'
display_name: "Apple - Apple II (POM2)"
cores:
- pom2
diff --git a/emulators/ppsspp-1.5.4.yml b/emulators/ppsspp-1.5.4.yml
index 206016ae3..1ba7ad930 100644
--- a/emulators/ppsspp-1.5.4.yml
+++ b/emulators/ppsspp-1.5.4.yml
@@ -6,6 +6,10 @@ profiled_date: "2026-10-20"
source_commit: "a1e74d0d4f89ba3fa2d4fe64bac7a0fa16fc146f"
pin_frozen: "RetroPie, the only platform that ships it, builds the v1.5.4 tag at this commit (RetroPie scriptmodules/emulators/ppsspp-1.5.4.sh:16). Later releases are packaged separately as ppsspp."
core_version: "v1.5.4"
+version_basis:
+ kind: tag
+ tag: "v1.5.4"
+ distance: 0
display_name: "Sony - PlayStation Portable (PPSSPP 1.5.4)"
mode: standalone
cores:
diff --git a/emulators/prboom-plus.yml b/emulators/prboom-plus.yml
index 528debff2..912ff69bd 100644
--- a/emulators/prboom-plus.yml
+++ b/emulators/prboom-plus.yml
@@ -5,7 +5,11 @@ source: "https://github.com/coelckers/prboom-plus"
upstream: "https://github.com/coelckers/prboom-plus"
profiled_date: "2026-08-08"
source_commit: "969515162c5aebea4ad7a125ee178dcad3d576ad"
-core_version: "2.6.66"
+core_version: "v2.6.66"
+version_basis:
+ kind: tag
+ tag: "v2.6.66"
+ distance: 0
display_name: "Doom (PrBoom+)"
cores:
- prboom-plus
diff --git a/emulators/primehack.yml b/emulators/primehack.yml
index acf4a39bf..4003bc560 100644
--- a/emulators/primehack.yml
+++ b/emulators/primehack.yml
@@ -7,6 +7,10 @@ profiled_date: "2026-03-26"
source_commit: "53f53e0f5bad27ad62a807cb93b136d84f68777f"
upstream_commit: "d8558142ead21b3fa39809c4aedb982fbfc85feb"
core_version: "1.0.9"
+version_basis:
+ kind: tag
+ tag: "1.0.9"
+ distance: 0
display_name: "PrimeHack (Dolphin fork for Metroid Prime)"
cores:
- primehack
diff --git a/emulators/project64.yml b/emulators/project64.yml
index dbcd0982d..ce6f6907e 100644
--- a/emulators/project64.yml
+++ b/emulators/project64.yml
@@ -6,6 +6,11 @@ upstream: "https://github.com/project64/project64"
profiled_date: "2026-08-12"
source_commit: "24376e868350792a181d2121fec20d37354559d6"
core_version: "Dev-4.0.0"
+version_basis:
+ kind: file
+ path: "Source/Project64-core/Version.h.in"
+ pattern: '#define VERSION_MAJOR\s+(\d+)\s*\n#define VERSION_MINOR\s+(\d+)\s*\n#define VERSION_REVISION\s+(\d+)[\s\S]*?#define VERSION_PREFIX\s+"([^"]*)"'
+ format: "{4}{1}.{2}.{3}"
display_name: "Nintendo - Nintendo 64 (Project64)"
cores:
- project64
diff --git a/emulators/punes.yml b/emulators/punes.yml
index b8c9e6732..dbad94b43 100644
--- a/emulators/punes.yml
+++ b/emulators/punes.yml
@@ -6,6 +6,11 @@ upstream: "https://github.com/punesemu/puNES"
profiled_date: "2026-08-08"
source_commit: "b1758ec26a3d6da10abf50dc184fa837236c5f61"
core_version: "0.112"
+version_basis:
+ kind: file
+ path: "src/core/version.h"
+ pattern: '#define VER1\s+"(\d+)"[\s\S]*?#define VER2\s+"(\d+)"'
+ format: "{1}.{2}"
display_name: "Nintendo - NES / Famicom (puNES)"
cores:
- punes
diff --git a/emulators/px68k-sdl.yml b/emulators/px68k-sdl.yml
index 87dbbf89c..36c3714bf 100644
--- a/emulators/px68k-sdl.yml
+++ b/emulators/px68k-sdl.yml
@@ -5,6 +5,10 @@ source: "https://github.com/TurtleBazooka/px68k"
profiled_date: "2026-10-23"
source_commit: "bdc3d87efb9f09df88c5c6eb271f9535aaf13210"
core_version: "0.15+K"
+version_basis:
+ kind: file
+ path: "version.txt"
+ pattern: '^PX68K_VERSION=(\S+)'
display_name: "Sharp - X68000 (px68k SDL)"
mode: standalone
cores: ["px68k"]
diff --git a/emulators/pyxel.yml b/emulators/pyxel.yml
index 6e2206488..e15e203a7 100644
--- a/emulators/pyxel.yml
+++ b/emulators/pyxel.yml
@@ -6,6 +6,10 @@ upstream: "https://github.com/kitao/pyxel"
profiled_date: "2026-10-04"
source_commit: "5d8e7b4f37c106684c1e91692772569a32a5e3d4"
core_version: "v2.9.9"
+version_basis:
+ kind: tag
+ tag: "v2.9.9"
+ distance: 0
display_name: "Pyxel"
cores: [pyxel]
systems: []
diff --git a/emulators/quake3.yml b/emulators/quake3.yml
index cb30d9912..496b3fdfc 100644
--- a/emulators/quake3.yml
+++ b/emulators/quake3.yml
@@ -6,6 +6,10 @@ upstream: "https://github.com/ioquake/ioq3"
profiled_date: "2026-10-20"
source_commit: "8d89a2a3c1707bf0f75b2ea26645b872e97c0b95"
core_version: "1.35"
+version_basis:
+ kind: file
+ path: "Makefile"
+ pattern: 'VERSION=([0-9][\w.+-]*)'
display_name: "Quake III Arena (Raspberry Pi port)"
cores: [quake3]
systems: [quake3]
diff --git a/emulators/quasi88kai.yml b/emulators/quasi88kai.yml
index 714e22777..5f149dca2 100644
--- a/emulators/quasi88kai.yml
+++ b/emulators/quasi88kai.yml
@@ -5,6 +5,10 @@ source: "https://github.com/winterheart/quasi88"
profiled_date: "2026-10-20"
source_commit: "0d4e171415cad7ac19ae4ff0dcf8cdcfd825947b"
core_version: "0.7.1"
+version_basis:
+ kind: file
+ path: "CMakeLists.txt"
+ pattern: '^project\(quasi88 VERSION ([0-9.]+)\)'
display_name: "NEC - PC-8800 series (QUASI88kai)"
mode: standalone
cores: ["quasi88"]
diff --git a/emulators/raine.yml b/emulators/raine.yml
index 7d6d22639..df8fff733 100644
--- a/emulators/raine.yml
+++ b/emulators/raine.yml
@@ -7,6 +7,10 @@ profiled_date: "2026-10-20"
source_commit: "8e25d5d8907ae459181610912b0030c955683015"
pin_frozen: "RetroBat, the only platform that ships it, installs this release: the raine.exe of its raine.7z package (8 August 2026) reports 0.97.5 and was built on 16 March 2025, the bump its changelog records (RetroBat CHANGELOG.md:176). Later commits are not part of that package."
core_version: "0.97.5"
+version_basis:
+ kind: file
+ path: "makefile"
+ pattern: 'VERSION\s+=\s+"([^"]+)'
display_name: "Arcade (RAINE)"
mode: standalone
cores:
diff --git a/emulators/raze.yml b/emulators/raze.yml
index 338a101aa..ae88fc8fc 100644
--- a/emulators/raze.yml
+++ b/emulators/raze.yml
@@ -5,6 +5,11 @@ source: "https://github.com/ZDoom/Raze"
upstream: "https://github.com/ZDoom/Raze"
profiled_date: "2026-10-04"
source_commit: "76fe82f5eb318fdeb30ba9fb27093a9a10bc3821"
+core_version: "1.12pre"
+version_basis:
+ kind: file
+ path: "source/core/version.h"
+ pattern: '^#define VERSIONSTR "([^"]+)"'
display_name: "Raze"
cores: []
systems: [duke3d, blood, shadow-warrior, powerslave, exhumed, redneck, nam, ww2gi]
diff --git a/emulators/real3doplayer.yml b/emulators/real3doplayer.yml
index f49bdb826..162002937 100644
--- a/emulators/real3doplayer.yml
+++ b/emulators/real3doplayer.yml
@@ -9,6 +9,11 @@ version_source:
author: "AltmerSoft (Maxim Grishin)"
profiled_date: "2026-08-12"
core_version: "1.0.32"
+version_basis:
+ kind: package
+ url: "http://www.arts-union.ru/node/23"
+ pattern: 'real3DOPlayer_free_(\d+(?:\.\d+)+)\.zip'
+ artifact: "real3DOPlayer_free_1.0.32.zip"
display_name: "The 3DO Company - 3DO (Real3DOPlayer)"
mode: standalone
cores:
diff --git a/emulators/realrtcw.yml b/emulators/realrtcw.yml
index f518b8553..a39081333 100644
--- a/emulators/realrtcw.yml
+++ b/emulators/realrtcw.yml
@@ -7,6 +7,10 @@ profiled_date: "2026-10-20"
source_commit: "ad529d588e4dec717aff0779f9d1555eddc1e2be"
pin_frozen: "RetroBat, the only platform that ships it, installs this release: the RealRTCW.x64.exe of its rtcw.7z package (31 March 2026) reports RealRTCW 5.2. Later releases are not part of that package."
core_version: "5.2"
+version_basis:
+ kind: tag
+ tag: "5.2"
+ distance: 0
display_name: "RealRTCW"
mode: standalone
cores:
diff --git a/emulators/reicast.yml b/emulators/reicast.yml
index df036d350..975bcfa4c 100644
--- a/emulators/reicast.yml
+++ b/emulators/reicast.yml
@@ -6,7 +6,11 @@ upstream: "https://github.com/skmp/reicast-emulator"
profiled_date: "2026-10-17"
source_commit: "ad61f95dd6b4c6218846a25de6194550311a5d28"
pin_frozen: "Recalbox 10.1.1 builds this revision (package/reicast/reicast.mk REICAST_VERSION). Later commits on reicast-emulator are not part of that build."
-core_version: "Git"
+core_version: "r8.1-243-gad61f95"
+version_basis:
+ kind: tag
+ tag: "r8.1"
+ distance: 243
display_name: "Sega - Dreamcast (Reicast)"
cores:
- "reicast"
diff --git a/emulators/rigelengine.yml b/emulators/rigelengine.yml
index 6c877abee..880db6916 100644
--- a/emulators/rigelengine.yml
+++ b/emulators/rigelengine.yml
@@ -5,7 +5,11 @@ source: "https://github.com/lethal-guitar/RigelEngine"
upstream: "https://github.com/lethal-guitar/RigelEngine"
profiled_date: "2026-10-22"
source_commit: "30afeff8f0b105eac77ee0a2fbd54b06e1a49b60"
-core_version: "0.9.1-28-g30afeff8"
+core_version: "0.9.1"
+version_basis:
+ kind: file
+ path: "CMakeLists.txt"
+ pattern: '^project\(RigelEngine VERSION ([0-9.]+)\)'
display_name: "Duke Nukem II (RigelEngine)"
cores: [rigelengine, "RigelEngine"]
systems: [duke-nukem-2]
diff --git a/emulators/rosalies-mupen-gui.yml b/emulators/rosalies-mupen-gui.yml
index 8bfab72d7..310b0c6f7 100644
--- a/emulators/rosalies-mupen-gui.yml
+++ b/emulators/rosalies-mupen-gui.yml
@@ -6,6 +6,10 @@ upstream: "https://github.com/Rosalie241/RMG"
profiled_date: "2026-10-04"
source_commit: "4777ed3f1fb7f1e4a0e70438a27dc4a5e9fb1927"
core_version: "v0.9.0"
+version_basis:
+ kind: file
+ path: "VERSION"
+ pattern: '^(v?[0-9][^\s]*)'
display_name: "Nintendo - Nintendo 64 (Rosalie's Mupen GUI)"
cores:
- rosalies-mupen-gui
diff --git a/emulators/rpcs3.yml b/emulators/rpcs3.yml
index 5f3a0a146..ea5e70862 100644
--- a/emulators/rpcs3.yml
+++ b/emulators/rpcs3.yml
@@ -8,7 +8,12 @@ cores:
- "rpcs3-sa"
profiled_date: "2026-03-30"
source_commit: "c365ea76a552961ff078ea1a46da9d4b07729674"
-core_version: "v0.0.43"
+core_version: "0.0.43"
+version_basis:
+ kind: file
+ path: "rpcs3/rpcs3_version.cpp"
+ pattern: 'utils::version version\{\s*(\d+),\s*(\d+),\s*(\d+),'
+ format: "{1}.{2}.{3}"
display_name: "Sony - PlayStation 3 (RPCS3)"
systems: [sony-playstation-3]
diff --git a/emulators/rpix86.yml b/emulators/rpix86.yml
index ff3530143..62e7d5737 100644
--- a/emulators/rpix86.yml
+++ b/emulators/rpix86.yml
@@ -5,6 +5,10 @@ source: "http://rpix86.patrickaalto.com/rdown.html"
upstream: ~
profiled_date: "2026-10-20"
core_version: "0.19"
+version_basis:
+ kind: package
+ url: "https://files.retropie.org.uk/archives/rpix86.tar.gz"
+ artifact: "rpix86.tar.gz, rpix86 binary banner"
display_name: "DOS (rpix86)"
cores: [rpix86]
systems: [dos]
diff --git a/emulators/ruffle.yml b/emulators/ruffle.yml
index 8a08c4847..2c91a71db 100644
--- a/emulators/ruffle.yml
+++ b/emulators/ruffle.yml
@@ -6,6 +6,10 @@ upstream: "https://github.com/ruffle-rs/ruffle"
profiled_date: "2026-09-17"
source_commit: "fe6cfc545405b888ebb478ce1c211d63147ca49b"
core_version: "0.7.1"
+version_basis:
+ kind: file
+ path: "Cargo.toml"
+ pattern: 'version\s+=\s+"([^"]+)'
display_name: "Adobe Flash (Ruffle)"
cores:
- ruffle
diff --git a/emulators/ryujinx.yml b/emulators/ryujinx.yml
index 4d75ef4ea..50fc96065 100644
--- a/emulators/ryujinx.yml
+++ b/emulators/ryujinx.yml
@@ -5,6 +5,10 @@ upstream: "https://github.com/Ryujinx/Ryujinx"
profiled_date: "2026-03-26"
source_commit: "7d158acc3b5826a08941d6e8d50d3a3897021bcd"
core_version: "1.1.1402"
+version_basis:
+ kind: tag
+ tag: "1.1.1402"
+ distance: 0
display_name: "Ryujinx (Nintendo Switch)"
cores:
- ryujinx
diff --git a/emulators/samcoupe.yml b/emulators/samcoupe.yml
index 18eba3027..46958b976 100644
--- a/emulators/samcoupe.yml
+++ b/emulators/samcoupe.yml
@@ -6,6 +6,10 @@ upstream: "https://github.com/simonowen/simcoupe"
profiled_date: "2026-10-04"
source_commit: "1f966036543991c05022ce4f95cfbfbb0014b187"
core_version: "v1.2.17"
+version_basis:
+ kind: tag
+ tag: "v1.2.17"
+ distance: 0
display_name: "SAM Coupe (SimCoupe)"
cores:
- samcoupe
diff --git a/emulators/saturn-emu.yml b/emulators/saturn-emu.yml
index 5983e977c..bcfb16a67 100644
--- a/emulators/saturn-emu.yml
+++ b/emulators/saturn-emu.yml
@@ -6,6 +6,10 @@ upstream: "https://mednafen.github.io/"
profiled_date: "2026-08-12"
source_commit: "1c12fac5ce49badaadff2e2f210dcc30b89f4943"
core_version: "1.5.85"
+version_basis:
+ kind: file
+ path: "EmuFramework/metadata/conf.mk"
+ pattern: '^metadata_version\s*=\s*(\S+)'
display_name: "Sega - Saturn (Saturn.emu)"
mode: standalone
cores:
diff --git a/emulators/scummvm-sdl1.yml b/emulators/scummvm-sdl1.yml
index 61b43c94c..557b027f5 100644
--- a/emulators/scummvm-sdl1.yml
+++ b/emulators/scummvm-sdl1.yml
@@ -6,7 +6,11 @@ upstream: "https://github.com/scummvm/scummvm"
logo: "https://raw.githubusercontent.com/scummvm/scummvm/master/icons/scummvm.svg"
profiled_date: "2026-10-20"
source_commit: "fed42f2068dcafc6aafa1c28c77e4c88def74b66"
-core_version: "2026.3.0"
+core_version: "v2026.3.0"
+version_basis:
+ kind: tag
+ tag: "v2026.3.0"
+ distance: 0
display_name: "ScummVM (SDL1)"
cores: [scummvm-sdl1]
systems: [scummvm]
diff --git a/emulators/scummvm-standalone.yml b/emulators/scummvm-standalone.yml
index e7bc5aef6..468f14c25 100644
--- a/emulators/scummvm-standalone.yml
+++ b/emulators/scummvm-standalone.yml
@@ -6,6 +6,10 @@ logo: "https://raw.githubusercontent.com/scummvm/scummvm/master/icons/scummvm.sv
profiled_date: "2026-10-24"
source_commit: "21955df19b580dad2807ec55f573b5f348690a81"
core_version: "2026.4.1git"
+version_basis:
+ kind: file
+ path: "base/internal_version.h"
+ pattern: '#define\s+SCUMMVM_VERSION\s+"([^"]+)'
display_name: "ScummVM (SDL2)"
mode: standalone
cores:
diff --git a/emulators/sdl2trs.yml b/emulators/sdl2trs.yml
index 31618b4a9..cf4a452b2 100644
--- a/emulators/sdl2trs.yml
+++ b/emulators/sdl2trs.yml
@@ -6,6 +6,10 @@ upstream: "http://sdltrs.sourceforge.net"
profiled_date: "2026-10-23"
source_commit: "205ddfd78fd00b32b3f730453175dbd70782ce79"
core_version: "1.2.35"
+version_basis:
+ kind: file
+ path: "configure.ac"
+ pattern: '^AC_INIT\(\[sdltrs\],\s*\[([^\]]+)\]'
display_name: "Tandy - TRS-80 (SDL2TRS)"
cores:
- sdl2trs
diff --git a/emulators/sdlpop.yml b/emulators/sdlpop.yml
index 94511bd73..822451fb9 100644
--- a/emulators/sdlpop.yml
+++ b/emulators/sdlpop.yml
@@ -6,6 +6,10 @@ upstream: ~
profiled_date: "2026-10-04"
source_commit: "3c5add5fb7f83d4ceb542823ab66d00146c4271b"
core_version: "1.24 RC"
+version_basis:
+ kind: file
+ path: "src/config.h"
+ pattern: '#define SDLPOP_VERSION "([^"]+)"'
display_name: "Prince of Persia (SDLPoP)"
cores: [sdlpop, "prince"]
systems: [prince-of-persia]
diff --git a/emulators/shadps4.yml b/emulators/shadps4.yml
index d78aa1f34..4256ad93e 100644
--- a/emulators/shadps4.yml
+++ b/emulators/shadps4.yml
@@ -4,7 +4,12 @@ source: "https://github.com/shadps4-emu/shadPS4"
upstream: "https://github.com/shadps4-emu/shadPS4"
profiled_date: "2026-03-26"
source_commit: "3eecea94ddaca360b19f4b800523b609a8b2ffcc"
-core_version: "pre-release 2026-08-08"
+core_version: "0.20.1 WIP"
+version_basis:
+ kind: file
+ path: "CMakeLists.txt"
+ pattern: 'set\(EMULATOR_VERSION_MAJOR "(\d+)"\)\s*\nset\(EMULATOR_VERSION_MINOR "(\d+)"\)\s*\nset\(EMULATOR_VERSION_PATCH "(\d+)"\)[\s\S]*?set\(APP_VERSION "\$\{APP_VERSION_NUM\} ?([^"]*)"\)'
+ format: "{1}.{2}.{3} {4}"
display_name: "shadPS4 (PlayStation 4)"
cores:
- shadps4
diff --git a/emulators/sheepshaver.yml b/emulators/sheepshaver.yml
index 916d9b2d2..cd58251e4 100644
--- a/emulators/sheepshaver.yml
+++ b/emulators/sheepshaver.yml
@@ -6,6 +6,11 @@ upstream: "https://github.com/cebix/macemu"
profiled_date: "2026-08-08"
source_commit: "96e512bd6376e78a2869f16dcc8a9028bce5ee72"
core_version: "2.4"
+version_basis:
+ kind: file
+ path: "SheepShaver/src/include/version.h"
+ pattern: 'const int VERSION_MAJOR = (\d+);\s*\nconst int VERSION_MINOR = (\d+);'
+ format: "{1}.{2}"
display_name: "Apple - Macintosh PowerPC (SheepShaver)"
cores:
- sheepshaver
diff --git a/emulators/simple64.yml b/emulators/simple64.yml
index 8948aad56..f09be5b1d 100644
--- a/emulators/simple64.yml
+++ b/emulators/simple64.yml
@@ -5,7 +5,11 @@ source: "https://github.com/simple64/simple64"
upstream: "https://github.com/simple64/simple64"
profiled_date: "2026-08-08"
source_commit: "d8c969c7b932e3d76e6a25549d76348839dbaefd"
-core_version: "v2024.12.1"
+core_version: "v2024.12.1-5-gd8c969c"
+version_basis:
+ kind: tag
+ tag: "v2024.12.1"
+ distance: 5
display_name: "Nintendo - Nintendo 64 (simple64)"
cores:
- simple64
diff --git a/emulators/singe2.yml b/emulators/singe2.yml
index 3f617744a..0da384e39 100644
--- a/emulators/singe2.yml
+++ b/emulators/singe2.yml
@@ -5,6 +5,11 @@ source: "https://singeengine.com"
upstream: "https://singeengine.com"
profiled_date: "2026-10-20"
core_version: "2.10"
+version_basis:
+ kind: package
+ url: "https://singeengine.com"
+ pattern: 'Singe-v(\d+\.\d+)-Windows'
+ artifact: "Singe-v2.10-Windows-x86_64.exe"
display_name: "Laserdisc (Singe 2)"
mode: standalone
cores:
diff --git a/emulators/sixtyforce.yml b/emulators/sixtyforce.yml
index 153ace7d7..d9d5dc34a 100644
--- a/emulators/sixtyforce.yml
+++ b/emulators/sixtyforce.yml
@@ -8,6 +8,10 @@ version_source:
pattern: 'version (\d+(?:\.\d+)+)
'
profiled_date: "2026-08-12"
core_version: "2.0.2"
+version_basis:
+ kind: package
+ url: "https://sixtyforce.com/download/sixtyforce.zip"
+ artifact: "sixtyforce.zip, sixtyforce.app Info.plist CFBundleShortVersionString"
display_name: "Nintendo - Nintendo 64 (sixtyforce)"
cores:
- sixtyforce
diff --git a/emulators/skyline.yml b/emulators/skyline.yml
index ea0b99926..368ac18ed 100644
--- a/emulators/skyline.yml
+++ b/emulators/skyline.yml
@@ -6,6 +6,9 @@ upstream: "https://archive.softwareheritage.org/browse/revision/dc20a615275f66be
profiled_date: "2026-08-12"
source_commit: "dc20a615275f66bee20a4fd851ef0231daca4f14"
core_version: "0.0.3"
+version_basis:
+ kind: unverified
+ why: host_unsupported
display_name: "Nintendo - Switch (Skyline)"
cores:
- "skyline"
diff --git a/emulators/snes9x-explus.yml b/emulators/snes9x-explus.yml
index fc00ed6e1..19c86b43c 100644
--- a/emulators/snes9x-explus.yml
+++ b/emulators/snes9x-explus.yml
@@ -8,6 +8,10 @@ source_commit: "1c12fac5ce49badaadff2e2f210dcc30b89f4943"
upstream_commit: "b33f2afb33c61d675aaf0319bd3b8cc8d6924d49"
upstream_frozen: "Snes9x is vendored under Snes9x/src/snes9x at this upstream revision, the one the last sync took."
core_version: "1.5.85"
+version_basis:
+ kind: file
+ path: "EmuFramework/metadata/conf.mk"
+ pattern: '^metadata_version\s*=\s*(\S+)'
display_name: "Nintendo - SNES / SFC (Snes9x EX+)"
mode: standalone
cores:
diff --git a/emulators/soh.yml b/emulators/soh.yml
index 7b4f087ad..045497315 100644
--- a/emulators/soh.yml
+++ b/emulators/soh.yml
@@ -7,6 +7,10 @@ source_commit: "cb71e22a79bc5d1f688fa881795bbd93094895fc"
pin_frozen: "RetroBat, the only platform that ships it, installs this release: the soh.exe of its soh.7z package (10 October 2026) reports Ackbar Delta (9.2.3). Later releases are not part of that package."
profiled_date: "2026-10-20"
core_version: "9.2.3"
+version_basis:
+ kind: tag
+ tag: "9.2.3"
+ distance: 0
display_name: "The Legend of Zelda: Ocarina of Time (Ship of Harkinian)"
cores: [soh]
systems: [soh]
diff --git a/emulators/solarus-2.0.0.yml b/emulators/solarus-2.0.0.yml
index 62b17785c..e1baae42a 100644
--- a/emulators/solarus-2.0.0.yml
+++ b/emulators/solarus-2.0.0.yml
@@ -7,6 +7,10 @@ profiled_date: "2026-10-26"
source_commit: "49d1d4686f67ec81c86c90ca30279a4ce06b1729"
pin_frozen: "RetroBat, the only platform that ships it, builds this revision: the solarus2 package its emulator repository lists as 0.25.04.16 carries a libsolarus.dll that reports Solarus 2.0.0 (49d1d46), tag v2.0.0+cicd1. Later tags are not part of that build."
core_version: "2.0.0"
+version_basis:
+ kind: file
+ path: "CMakeLists.txt"
+ pattern: 'project\(solarus-engine\s+VERSION\s+([0-9][^\s)]*)'
display_name: "Solarus Game Engine (2.0.0)"
cores:
- solarus2
diff --git a/emulators/solarus.yml b/emulators/solarus.yml
index 54b056798..00112eee0 100644
--- a/emulators/solarus.yml
+++ b/emulators/solarus.yml
@@ -6,6 +6,10 @@ upstream: "https://gitlab.com/solarus-games/solarus"
profiled_date: "2026-08-08"
source_commit: "86fa2031e1303aaaf9924a2f03dfdb7b7d1cbf4b"
core_version: "2.2.0"
+version_basis:
+ kind: file
+ path: "CMakeLists.txt"
+ pattern: 'project\(solarus-engine\s+VERSION\s+([0-9][^\s)]*)'
display_name: "Solarus Game Engine"
cores:
- solarus
diff --git a/emulators/sonic-mania.yml b/emulators/sonic-mania.yml
index dfff57eee..4b1a93b05 100644
--- a/emulators/sonic-mania.yml
+++ b/emulators/sonic-mania.yml
@@ -5,6 +5,11 @@ source: "https://github.com/RSDKModding/Sonic-Mania-Decompilation"
upstream: "https://github.com/RSDKModding/RSDKv5-Decompilation"
source_commit: "9dc699428420d752af9767bdb13f585ee0881bc0"
upstream_commit: "191d7aea6c262d891244172a8609ac69fbfd7571"
+core_version: "v1.1.1-15-g9dc6994"
+version_basis:
+ kind: tag
+ tag: "v1.1.1"
+ distance: 15
profiled_date: "2026-10-04"
display_name: "Sonic Mania (RSDKv5 Decomp)"
cores: [sonicmania]
diff --git a/emulators/sonic2013.yml b/emulators/sonic2013.yml
index 3fc9f9363..8dfd837fa 100644
--- a/emulators/sonic2013.yml
+++ b/emulators/sonic2013.yml
@@ -5,6 +5,10 @@ source: "https://github.com/RSDKModding/RSDKv4-Decompilation"
upstream: "https://github.com/RSDKModding/RSDKv4-Decompilation"
source_commit: "a7f5195e21fdad7b75e4587e249013feeea9e6f3"
core_version: "1.3.3"
+version_basis:
+ kind: file
+ path: "CMakeLists.txt"
+ pattern: 'set\(DECOMP_VERSION\s+([^\s)]+)\)'
profiled_date: "2026-10-04"
display_name: "Sonic 1 & 2 (2013) (RSDKv4 Decomp)"
cores: [sonicretro]
diff --git a/emulators/sonic3-air.yml b/emulators/sonic3-air.yml
index 4df14d223..c1e6220d9 100644
--- a/emulators/sonic3-air.yml
+++ b/emulators/sonic3-air.yml
@@ -4,6 +4,11 @@ core_classification: game_engine
source: "https://github.com/Eukaryot/sonic3air"
upstream: "https://github.com/Eukaryot/sonic3air"
source_commit: "b0063dfb4b3e69d710e131ab83507cdf8c41910f"
+core_version: "26.08.15.0"
+version_basis:
+ kind: file
+ path: "Oxygen/sonic3air/source/sonic3air/version.inc"
+ pattern: '#define\s+BUILD_STRING\s+"([^"]+)"'
profiled_date: "2026-10-04"
display_name: "Sonic 3 - Angel Island Revisited"
cores: [sonic3air]
diff --git a/emulators/soniccd.yml b/emulators/soniccd.yml
index 65fd5654c..d42016b92 100644
--- a/emulators/soniccd.yml
+++ b/emulators/soniccd.yml
@@ -4,6 +4,11 @@ core_classification: game_engine
source: "https://github.com/RSDKModding/RSDKv3-Decompilation"
upstream: "https://github.com/RSDKModding/RSDKv3-Decompilation"
source_commit: "2a7fd8b70f1b33553e0d6c67491d07e8290b80c1"
+core_version: "1.3.3"
+version_basis:
+ kind: file
+ path: "CMakeLists.txt"
+ pattern: 'set\(DECOMP_VERSION\s+([^\s)]+)\)'
profiled_date: "2026-10-04"
display_name: "Sonic CD (RSDKv3 Decomp)"
cores: [sonicretrocd]
diff --git a/emulators/speccy.yml b/emulators/speccy.yml
index 72b6e64c3..cfa22dd4b 100644
--- a/emulators/speccy.yml
+++ b/emulators/speccy.yml
@@ -9,6 +9,10 @@ version_source:
author: "Marat Fayzullin (Garage Research)"
profiled_date: "2026-10-20"
core_version: "5.9.13"
+version_basis:
+ kind: package
+ url: "https://play.google.com/store/apps/details?id=com.fms.speccy"
+ artifact: "com.fms.speccy APK versionName (versionCode 5913)"
display_name: "Sinclair - ZX Spectrum and Sam Coupe (Speccy)"
verification: existence
cores:
diff --git a/emulators/splitwolf.yml b/emulators/splitwolf.yml
index 6c002829f..e5e3d699b 100644
--- a/emulators/splitwolf.yml
+++ b/emulators/splitwolf.yml
@@ -6,6 +6,9 @@ source_branch: scrubbed
profiled_date: "2026-10-20"
source_commit: "f6c00044cdef00a31c66307d8b7cb1fb4ddf8c67"
core_version: "V1.01"
+version_basis:
+ kind: unverified
+ why: host_unsupported
display_name: "Wolfenstein 3D (SplitWolf)"
cores: [splitwolf]
systems: [wolfenstein3d]
diff --git a/emulators/srb2.yml b/emulators/srb2.yml
index 4079f6ea5..83efa5aab 100644
--- a/emulators/srb2.yml
+++ b/emulators/srb2.yml
@@ -6,6 +6,10 @@ upstream: "https://git.do.srb2.org/STJr/SRB2"
profiled_date: "2026-10-20"
source_commit: "639b58c6d718452ef343a0bc927d043bed9e40d6"
core_version: "2.2.15"
+version_basis:
+ kind: file
+ path: "src/version.h"
+ pattern: '#define\s+SRB2VERSION\s+"([^"]+)'
display_name: "Sonic Robo Blast 2"
cores: [srb2]
systems: []
diff --git a/emulators/ssf.yml b/emulators/ssf.yml
index b0dde7a5a..86a83c144 100644
--- a/emulators/ssf.yml
+++ b/emulators/ssf.yml
@@ -7,6 +7,12 @@ author: "Shima"
profiled_date: "2026-08-12"
source_commit: "432e257c312f705d5f85f298710d152240111da8"
core_version: "PreviewVer R38"
+version_basis:
+ kind: package
+ url: "https://github.com/shimazzz/SEGASaturnEmulator-SSF/releases/download/PreviewVer/SSF_PreviewVer_R38.zip"
+ pattern: 'SSF_(PreviewVer)_(R\d+)\.zip'
+ format: "{1} {2}"
+ artifact: "SSF_PreviewVer_R38.zip"
display_name: "Sega - Saturn/ST-V (SSF)"
cores:
- ssf
diff --git a/emulators/starboard.yml b/emulators/starboard.yml
index 3e858b2bd..912f7c94a 100644
--- a/emulators/starboard.yml
+++ b/emulators/starboard.yml
@@ -7,6 +7,11 @@ author: "force9"
profiled_date: "2026-10-27"
source_commit: "d3a21a9aaeabb90e59d7a48241b293dba3ee9309"
core_version: "0.40.0"
+version_basis:
+ kind: package
+ url: "https://github.com/get-starboard/starboard/releases/download/v0.40.0/Starboard-v0.40.0.apk"
+ pattern: 'Starboard-v([0-9][0-9.]*[0-9])\.apk'
+ artifact: "Starboard-v0.40.0.apk"
display_name: "PortMaster library (Starboard)"
verification: existence
cores:
diff --git a/emulators/starship.yml b/emulators/starship.yml
index a8e1c9154..430796830 100644
--- a/emulators/starship.yml
+++ b/emulators/starship.yml
@@ -5,7 +5,11 @@ source: "https://github.com/HarbourMasters/Starship"
upstream: "https://github.com/HarbourMasters/Starship"
source_commit: "cb19785b51698185a688e17ba1a34c7889195bdb"
profiled_date: "2026-10-20"
-core_version: "2.0.0"
+core_version: "v2.0.0"
+version_basis:
+ kind: tag
+ tag: "v2.0.0"
+ distance: 0
display_name: "Star Fox 64 (Starship)"
cores: [starship]
systems: [starship]
diff --git a/emulators/stratagus.yml b/emulators/stratagus.yml
index feba5891d..acf53ab08 100644
--- a/emulators/stratagus.yml
+++ b/emulators/stratagus.yml
@@ -4,7 +4,11 @@ core_classification: game_engine
source: "https://github.com/Wargus/stratagus"
profiled_date: "2026-10-20"
source_commit: "6b309817027618a12e26e4cf314ad09654495e28"
-core_version: "2.4.3"
+core_version: "v2.4.3"
+version_basis:
+ kind: tag
+ tag: "v2.4.3"
+ distance: 0
display_name: "Stratagus"
cores: [stratagus]
systems: []
diff --git a/emulators/sudachi.yml b/emulators/sudachi.yml
index 2604c85a0..5caf7834f 100644
--- a/emulators/sudachi.yml
+++ b/emulators/sudachi.yml
@@ -6,6 +6,9 @@ upstream_gone: "The emuplace GitHub account answers 404 and sudachi.emuplace.app
profiled_date: "2026-10-20"
source_commit: "c7431bd420d66c54df277ba0a0b71de42cf0a5bf"
core_version: "1.0.15"
+version_basis:
+ kind: unverified
+ why: host_gone
display_name: "Sudachi (Nintendo Switch)"
cores:
- sudachi
diff --git a/emulators/super3.yml b/emulators/super3.yml
index f2e40d0d4..1d0c01b7b 100644
--- a/emulators/super3.yml
+++ b/emulators/super3.yml
@@ -8,6 +8,10 @@ author: "izzy2lost"
profiled_date: "2026-10-27"
source_commit: "c410f82f771b33094b8c1cdbf96ef7c74ec9cff1"
core_version: "1.2.2"
+version_basis:
+ kind: tag
+ tag: "1.2.2"
+ distance: 0
display_name: "Sega - Model 3 (SUPER3)"
verification: existence
cores:
diff --git a/emulators/supermariowar.yml b/emulators/supermariowar.yml
index 223faa533..d2ce65c99 100644
--- a/emulators/supermariowar.yml
+++ b/emulators/supermariowar.yml
@@ -6,6 +6,10 @@ profiled_date: "2026-10-22"
source_commit: "ed60ed45e296ff88a8883cbc51f5bf5aed880636"
pin_frozen: "EmuELEC, the only platform that ships it, builds this revision (EmuELEC packages/sx05re/emuelec-ports/supermariowar/package.mk:5). Later commits are not part of that build."
core_version: "2.0.0"
+version_basis:
+ kind: file
+ path: "CMakeLists.txt"
+ pattern: 'project\(smw\s+VERSION\s+([0-9][^\s)]*)'
display_name: "Super Mario War (smw)"
cores:
- "smw"
diff --git a/emulators/supermodel-dojo.yml b/emulators/supermodel-dojo.yml
index 6ace9207c..2a8b3d8a5 100644
--- a/emulators/supermodel-dojo.yml
+++ b/emulators/supermodel-dojo.yml
@@ -9,6 +9,10 @@ source_commit: "113a48d567c5d49a40292df386fee4a0acaea486"
upstream_commit: "98fcbff223e23b1530c8f899aca2fc4fd5663ab4"
upstream_frozen: "The dojo branch merged trzy/Supermodel at this commit through merge ab1ecae. Later upstream commits are not in the port."
core_version: "v0.3a-20261024-git-113a48d"
+version_basis:
+ kind: tag
+ tag: "v0.3a-20261024-git-113a48d"
+ distance: 0
display_name: "Sega - Model 3 (Supermodel Dojo)"
verification: existence
cores:
diff --git a/emulators/supermodel-legacy.yml b/emulators/supermodel-legacy.yml
index 5dde17f5a..a501a3883 100644
--- a/emulators/supermodel-legacy.yml
+++ b/emulators/supermodel-legacy.yml
@@ -7,6 +7,10 @@ profiled_date: "2026-10-17"
source_commit: "0eef09ba2b74e48fd5cfd388ee69a3743fd5f618"
pin_frozen: "Batocera's supermodel-legacy package builds this revision, held before the renderer moved to OpenGL 4.1. Recaling would repoint these refs at code this build never had."
core_version: "0.3a-WIP"
+version_basis:
+ kind: file
+ path: "Src/Version.h"
+ pattern: '#define\s+SUPERMODEL_VERSION\s+"([^"]+)'
display_name: "Sega - Model 3 (Supermodel Legacy)"
cores:
- "supermodel-legacy"
diff --git a/emulators/supermodel3.yml b/emulators/supermodel3.yml
index d09fad631..aea86ea3a 100644
--- a/emulators/supermodel3.yml
+++ b/emulators/supermodel3.yml
@@ -10,6 +10,10 @@ prose_written_at: "11726c4bad3696a50a8b834eaba6aee3fa08a590"
upstream_commit: "14815455dc28fca2c8662fb1ed99d447ecf8f364"
upstream_frozen: "The fork is rebased on trzy's tree at 1481545, the revision its version string names. Later trzy commits are not in the fork."
core_version: "0.3a-1481545-mm DirtBagXon (Sinden)"
+version_basis:
+ kind: file
+ path: "Src/Version.h"
+ pattern: '#define\s+SUPERMODEL_VERSION\s+"([^"]+)'
display_name: "Sega - Model 3 (Supermodel, Sinden fork)"
verification: existence
cores:
diff --git a/emulators/supertux.yml b/emulators/supertux.yml
index eb42c76dd..c05f1b9d6 100644
--- a/emulators/supertux.yml
+++ b/emulators/supertux.yml
@@ -5,7 +5,12 @@ source: "https://github.com/SuperTux/supertux"
profiled_date: "2026-10-22"
source_commit: "37cddf24a4abfdec7931a84afd9e87fb8ea18767"
pin_frozen: "EmuELEC, the only platform that ships it, builds this revision, v0.6.3 (EmuELEC packages/sx05re/emuelec-ports/supertux/package.mk:5). Later commits are not part of that build."
-core_version: "0.6.3-1020-g37cddf24a"
+core_version: "v0.6.3-1020-g37cddf2"
+version_basis:
+ kind: tag
+ match: "?[0-9]*.[0-9]*.[0-9]*"
+ tag: "v0.6.3"
+ distance: 1020
display_name: "SuperTux (supertux2)"
cores:
- "supertux2"
diff --git a/emulators/supertuxkart.yml b/emulators/supertuxkart.yml
index 5701311e4..9fe306c0f 100644
--- a/emulators/supertuxkart.yml
+++ b/emulators/supertuxkart.yml
@@ -5,7 +5,11 @@ source: "https://github.com/supertuxkart/stk-code"
profiled_date: "2026-10-22"
source_commit: "fab79150111944c9e33396db68eb5de84f2efeaa"
pin_frozen: "EmuELEC, the only platform that ships it, builds this revision (EmuELEC packages/sx05re/emuelec-ports/supertuxkart/package.mk:5). Later commits are not part of that build."
-core_version: "git"
+core_version: "preview-582-gfab7915"
+version_basis:
+ kind: tag
+ tag: "preview"
+ distance: 582
display_name: "SuperTuxKart"
cores:
- "supertuxkart"
diff --git a/emulators/superzsnes.yml b/emulators/superzsnes.yml
index 0a60fad84..622381f47 100644
--- a/emulators/superzsnes.yml
+++ b/emulators/superzsnes.yml
@@ -8,6 +8,11 @@ version_source:
pattern: 'Latest Release Notes \((v[0-9.]+[a-z]?)\)'
profiled_date: "2026-10-20"
core_version: "v0.320"
+version_basis:
+ kind: package
+ url: "https://www.zsnes.com/files/SuperZSNES_v0.320.zip"
+ pattern: 'SuperZSNES_(v\d+\.\d+)\.zip'
+ artifact: "SuperZSNES_v0.320.zip"
display_name: "Nintendo - SNES / SFC (SUPER ZSNES)"
cores:
- superzsnes
diff --git a/emulators/suyu.yml b/emulators/suyu.yml
index b5fe2f853..e95834d14 100644
--- a/emulators/suyu.yml
+++ b/emulators/suyu.yml
@@ -6,6 +6,9 @@ upstream: "https://github.com/suyu-emu/suyu"
profiled_date: "2026-03-26"
upstream_gone: "GitHub withdrew the repository for legal reasons: the API answers HTTP 451. git.suyu.dev still serves a Forgejo page, but its API answers 403 and its raw paths 404, so it carries no readable tree. Observed 2026-09-04."
core_version: "Yuzu EA 4176 based"
+version_basis:
+ kind: unverified
+ why: host_gone
display_name: "Suyu (Nintendo Switch)"
cores:
- suyu
diff --git a/emulators/swan-emu.yml b/emulators/swan-emu.yml
index 74f8823d6..16c1187ef 100644
--- a/emulators/swan-emu.yml
+++ b/emulators/swan-emu.yml
@@ -6,6 +6,10 @@ upstream: "https://mednafen.github.io/"
profiled_date: "2026-08-12"
source_commit: "1c12fac5ce49badaadff2e2f210dcc30b89f4943"
core_version: "1.5.85"
+version_basis:
+ kind: file
+ path: "EmuFramework/metadata/conf.mk"
+ pattern: '^metadata_version\s*=\s*(\S+)'
display_name: "Bandai - WonderSwan / Color (Swan.emu)"
mode: standalone
cores:
diff --git a/emulators/swf-player.yml b/emulators/swf-player.yml
index 3fcc56951..f71f6d1d2 100644
--- a/emulators/swf-player.yml
+++ b/emulators/swf-player.yml
@@ -9,6 +9,10 @@ version_source:
author: "issess.net"
profiled_date: "2026-08-12"
core_version: "1.90 free (build 507)"
+version_basis:
+ kind: package
+ url: "https://play.google.com/store/apps/details?id=com.issess.flashplayer"
+ artifact: "com.issess.flashplayer APK versionName (versionCode 507)"
display_name: "Adobe Flash (SWF Player)"
mode: standalone
cores:
diff --git a/emulators/taradino.yml b/emulators/taradino.yml
index 58640d580..be8621129 100644
--- a/emulators/taradino.yml
+++ b/emulators/taradino.yml
@@ -5,7 +5,11 @@ source: "https://github.com/fabiangreffrath/taradino"
upstream: "https://github.com/fabiangreffrath/taradino"
profiled_date: "2026-10-04"
source_commit: "2b4ea3c6c18caf60959efee1f2534c2122607716"
-core_version: "0.1"
+core_version: "2025.12.22"
+version_basis:
+ kind: file
+ path: "CMakeLists.txt"
+ pattern: 'project\(taradino[^)]*?\bVERSION\s+([0-9][0-9.]*)'
display_name: "Taradino"
cores: [taradino]
systems: [rott]
diff --git a/emulators/teknoparrot.yml b/emulators/teknoparrot.yml
index 7403d1a51..2b2f4c0de 100644
--- a/emulators/teknoparrot.yml
+++ b/emulators/teknoparrot.yml
@@ -7,6 +7,9 @@ author: "TeknoGods"
profiled_date: "2026-10-20"
source_commit: "b75872addc1d5cce81a62f4c1468eab59e2d3cbe"
core_version: "TeknoParrotUI 7ffcdf1"
+version_basis:
+ kind: unverified
+ why: host_gone
display_name: "Arcade - PC-based and Sega/Namco boards (TeknoParrot)"
cores:
- teknoparrot
diff --git a/emulators/theforceengine.yml b/emulators/theforceengine.yml
index 2b3838da9..073e34f48 100644
--- a/emulators/theforceengine.yml
+++ b/emulators/theforceengine.yml
@@ -6,6 +6,10 @@ upstream: "https://github.com/TheForceEngine/TheForceEngine"
profiled_date: "2026-10-04"
source_commit: "cc25205cc94c36a396f6f50295772f6ec83069a2"
core_version: "v1.22.420"
+version_basis:
+ kind: tag
+ tag: "v1.22.420"
+ distance: 0
display_name: "The Force Engine"
cores: [theforceengine, tfe]
systems: [dark-forces, outlaws]
diff --git a/emulators/thextech.yml b/emulators/thextech.yml
index 185e99ef1..5a7844b7a 100644
--- a/emulators/thextech.yml
+++ b/emulators/thextech.yml
@@ -5,6 +5,11 @@ source: "https://github.com/TheXTech/TheXTech"
upstream: "https://github.com/TheXTech/TheXTech"
profiled_date: "2026-10-04"
source_commit: "e07c5bfb92377d315d0ab33177092fa7cadeb84e"
+core_version: "1.8-dev"
+version_basis:
+ kind: file
+ path: "version.cmake"
+ pattern: 'set\(THEXTECH_ANDROID_VERSION_NAME "([^"]+)"\)'
display_name: "TheXTech"
cores: []
systems: [smbx]
diff --git a/emulators/ti99sim-sdl1.yml b/emulators/ti99sim-sdl1.yml
index c1219c58d..563f92548 100644
--- a/emulators/ti99sim-sdl1.yml
+++ b/emulators/ti99sim-sdl1.yml
@@ -6,6 +6,11 @@ source: "https://files.retropie.org.uk/archives/ti99sim-0.15.0.src.tar.gz"
upstream: "https://www.mrousseau.org/programs/ti99sim/"
profiled_date: "2026-10-20"
core_version: "0.15.0"
+version_basis:
+ kind: package
+ url: "https://files.retropie.org.uk/archives/ti99sim-0.15.0.src.tar.gz"
+ pattern: 'ti99sim-(\d+\.\d+\.\d+)\.src\.tar\.gz'
+ artifact: "ti99sim-0.15.0.src.tar.gz"
cores:
- ti99sim-sdl1
systems:
diff --git a/emulators/ti99sim.yml b/emulators/ti99sim.yml
index a2f391be6..1d6d11c6b 100644
--- a/emulators/ti99sim.yml
+++ b/emulators/ti99sim.yml
@@ -5,7 +5,9 @@ source: https://github.com/christianhaitian/ti99sim
upstream: https://www.mrousseau.org/programs/ti99sim/
profiled_date: "2026-03-29"
source_commit: "e3608541943b5258afe45b74e3f78e723df1fcbd"
-core_version: "0.16.0"
+core_version: null
+version_basis:
+ kind: none
cores:
- ti99sim
diff --git a/emulators/touchhle.yml b/emulators/touchhle.yml
index 9c03a91ba..d588e5190 100644
--- a/emulators/touchhle.yml
+++ b/emulators/touchhle.yml
@@ -6,6 +6,10 @@ profiled_date: "2026-10-17"
source_commit: "3c5850585ba55615b17a58c58331b6d6f52d4a9d"
pin_frozen: "ROCKNIX 20261001 builds this revision. Later upstream commits are not part of that build."
core_version: "0.2.3"
+version_basis:
+ kind: file
+ path: "Cargo.toml"
+ pattern: 'version\s+=\s+"([^"]+)'
display_name: "Apple - iPhone OS (touchHLE)"
cores:
- "touchhle"
diff --git a/emulators/tr1x.yml b/emulators/tr1x.yml
index eb91cfa9d..f39b7237e 100644
--- a/emulators/tr1x.yml
+++ b/emulators/tr1x.yml
@@ -6,6 +6,12 @@ source: "https://github.com/LostArtefacts/TRX"
upstream: "https://github.com/LostArtefacts/TRX"
source_commit: "4d55f7d3130f9d04bdc1fefb85bf4d8fa93a22d3"
upstream_commit: "3d39911a1b839c753b6efad236db67d9fb2b273e"
+core_version: "trx-1.11.1-784-g4d55f7d"
+version_basis:
+ kind: tag
+ match: "trx-*"
+ tag: "trx-1.11.1"
+ distance: 784
profiled_date: "2026-10-04"
cores: []
systems:
diff --git a/emulators/tr2x.yml b/emulators/tr2x.yml
index d11bd7717..93fb7238a 100644
--- a/emulators/tr2x.yml
+++ b/emulators/tr2x.yml
@@ -6,6 +6,12 @@ source: "https://github.com/LostArtefacts/TRX"
upstream: "https://github.com/LostArtefacts/TRX"
source_commit: "4d55f7d3130f9d04bdc1fefb85bf4d8fa93a22d3"
upstream_commit: "3d39911a1b839c753b6efad236db67d9fb2b273e"
+core_version: "trx-1.11.1-784-g4d55f7d"
+version_basis:
+ kind: tag
+ match: "trx-*"
+ tag: "trx-1.11.1"
+ distance: 784
profiled_date: "2026-10-23"
cores: []
systems:
diff --git a/emulators/triforce.yml b/emulators/triforce.yml
index 2e1f032a7..f5545d352 100644
--- a/emulators/triforce.yml
+++ b/emulators/triforce.yml
@@ -7,6 +7,11 @@ profiled_date: "2026-08-08"
source_commit: "5c456e8ff0da0235be2cf1d55ba7bb2115b0cae2"
upstream_commit: "b92e354389bb7c0bd114a8631b8af110d3cb3a14"
core_version: "2407"
+version_basis:
+ kind: tag
+ repo: upstream
+ tag: "2407"
+ distance: 0
display_name: "Namco / Sega / Nintendo - Triforce (Dolphin Triforce)"
cores:
- triforce
diff --git a/emulators/tsugaru.yml b/emulators/tsugaru.yml
index f66e7c981..b42da7acf 100644
--- a/emulators/tsugaru.yml
+++ b/emulators/tsugaru.yml
@@ -5,6 +5,11 @@ source: "https://github.com/captainys/TOWNSEMU"
upstream: "https://github.com/captainys/TOWNSEMU"
profiled_date: "2026-03-26"
source_commit: "e27adde120fe06150f3d57a6dc7cba66b5f43a32"
+core_version: "v20260522-179-ge27adde"
+version_basis:
+ kind: tag
+ tag: "v20260522"
+ distance: 179
cores:
- tsugaru
systems:
diff --git a/emulators/uae4all.yml b/emulators/uae4all.yml
index dc5adad66..739c6bd9f 100644
--- a/emulators/uae4all.yml
+++ b/emulators/uae4all.yml
@@ -8,6 +8,10 @@ profiled_date: "2026-10-20"
source_commit: "5c514dd6d8bb374bd22e2ee423bad99539207cbd"
upstream_commit: "0f919a32b6d41a04cbc766c0e6076cda9fa7a63b"
core_version: "2.3.6.2"
+version_basis:
+ kind: file
+ path: "AndroidAppSettings.cfg"
+ pattern: '^AppVersionName="([^"]+)"'
display_name: "Commodore - Amiga (UAE4All2)"
cores: [uae4all]
systems: [commodore-amiga]
diff --git a/emulators/uqm.yml b/emulators/uqm.yml
index 42de16372..a632b9547 100644
--- a/emulators/uqm.yml
+++ b/emulators/uqm.yml
@@ -6,6 +6,11 @@ upstream: "https://sourceforge.net/projects/sc2/"
profiled_date: "2026-10-04"
source_commit: "ff2444088d42e80612fd28f79d368783e244a606"
core_version: "0.8.0"
+version_basis:
+ kind: file
+ path: "sc2/src/uqmversion.h"
+ pattern: '#define UQM_MAJOR_VERSION_S\s+"(\d+)"[\s\S]*?#define UQM_MINOR_VERSION_S\s+"(\d+)"[\s\S]*?#define UQM_PATCH_VERSION_S\s+"(\d+)"[\s\S]*?#define UQM_EXTRA_VERSION\s+"([^"]*)"'
+ format: "{1}.{2}.{3}{4}"
display_name: "The Ur-Quan Masters"
cores: [uqm]
systems: [ur-quan-masters, star-control-2]
diff --git a/emulators/uzdoom.yml b/emulators/uzdoom.yml
index 9fce74fa3..3d44c59b1 100644
--- a/emulators/uzdoom.yml
+++ b/emulators/uzdoom.yml
@@ -5,6 +5,10 @@ source: "https://github.com/UZDoom/UZDoom"
profiled_date: "2026-10-20"
source_commit: "7910df7102033fd7754a317f3254f24101135926"
core_version: "5.0.3"
+version_basis:
+ kind: tag
+ tag: "5.0.3"
+ distance: 0
display_name: "UZDoom"
cores:
- uzdoom
diff --git a/emulators/veesem.yml b/emulators/veesem.yml
index 57abbf5ef..d97a725a5 100644
--- a/emulators/veesem.yml
+++ b/emulators/veesem.yml
@@ -5,7 +5,11 @@ source: "https://github.com/sp1187/veesem"
upstream: "https://github.com/sp1187/veesem"
profiled_date: "2026-08-08"
source_commit: "42fb8f07e7418f16ccfb7364127aef2217dda641"
-core_version: "0.2"
+core_version: "v0.2"
+version_basis:
+ kind: tag
+ tag: "v0.2"
+ distance: 0
display_name: "VTech - V.Smile (veesem)"
cores:
- veesem
diff --git a/emulators/vice-standalone.yml b/emulators/vice-standalone.yml
index cacd11daf..612ac8f1f 100644
--- a/emulators/vice-standalone.yml
+++ b/emulators/vice-standalone.yml
@@ -8,6 +8,11 @@ profiled_date: "2026-10-24"
source_commit: "81546e60c222fe4aef750b890b0dbe3a5ac280d8"
pin_frozen: "ROCKNIX, the only platform that ships it, builds this revision (ROCKNIX projects/ROCKNIX/packages/emulators/standalone/vice-sa/package.mk:5). Later commits are not part of that build."
core_version: "3.8"
+version_basis:
+ kind: file
+ path: "vice/configure.ac"
+ pattern: 'm4_define\(vice_version_major, (\d+)\)\s*m4_define\(vice_version_minor, (\d+)\)\s*m4_define\(vice_version_build, 0\)'
+ format: "{1}.{2}"
display_name: "Commodore - 8-bit computers (VICE SDL2)"
mode: standalone
cores:
diff --git a/emulators/virtual-virtual-boy.yml b/emulators/virtual-virtual-boy.yml
index d12b68939..7950d0cf9 100644
--- a/emulators/virtual-virtual-boy.yml
+++ b/emulators/virtual-virtual-boy.yml
@@ -7,7 +7,11 @@ author: "Simon Gellis"
profiled_date: "2026-08-12"
source_commit: "0bf230bced628d78ff2c149baaf16f6fb8388cec"
upstream_commit: "0bf230bced628d78ff2c149baaf16f6fb8388cec"
-core_version: "1.18.2"
+core_version: "v1.18.2"
+version_basis:
+ kind: tag
+ tag: "v1.18.2"
+ distance: 0
display_name: "Nintendo - Virtual Boy (Virtual Virtual Boy)"
mode: standalone
cores:
diff --git a/emulators/visual-pinball.yml b/emulators/visual-pinball.yml
index 52db2da2b..fe72f75f7 100644
--- a/emulators/visual-pinball.yml
+++ b/emulators/visual-pinball.yml
@@ -7,6 +7,11 @@ profiled_date: "2026-10-27"
source_commit: "63770cd66eee66c84c10ba2f4d2edff918ab85d3"
prose_written_at: "63770cd66eee66c84c10ba2f4d2edff918ab85d3"
core_version: "10.8.1"
+version_basis:
+ kind: file
+ path: "src/core/vpversion.h"
+ pattern: '#define VP_VERSION_MAJOR\s+(\d+)[^\n]*\n#define VP_VERSION_MINOR\s+(\d+)[^\n]*\n#define VP_VERSION_REV\s+(\d+)'
+ format: "{1}.{2}.{3}"
display_name: "Visual Pinball X"
cores:
- vpinball
diff --git a/emulators/vita3k.yml b/emulators/vita3k.yml
index 19be65244..19be9d94f 100644
--- a/emulators/vita3k.yml
+++ b/emulators/vita3k.yml
@@ -4,7 +4,12 @@ source: "https://github.com/Vita3K/Vita3K"
upstream: "https://github.com/Vita3K/Vita3K"
profiled_date: "2026-10-23"
source_commit: "6ec8e6ce31f3d6099b14eb9dd0320c09ef6386b6"
-core_version: "0.2.1"
+core_version: "v0.2.1"
+version_basis:
+ kind: file
+ path: "vita3k/CMakeLists.txt"
+ pattern: 'set\(VITA3K_APP_VER_HI (\d+)\)\nset\(VITA3K_APP_VER_MID (\d+)\)\nset\(VITA3K_APP_VER_LO (\d+)\)\nset\(VITA3K_APP_VERSION "v'
+ format: "v{1}.{2}.{3}"
display_name: "Vita3K (PS Vita)"
cores:
- vita3k
diff --git a/emulators/vkquake.yml b/emulators/vkquake.yml
index 24fbee84a..fd0fd1c16 100644
--- a/emulators/vkquake.yml
+++ b/emulators/vkquake.yml
@@ -6,6 +6,11 @@ upstream: "https://sourceforge.net/projects/quakespasm/"
profiled_date: "2026-10-23"
source_commit: "a6cfba6904e0743dae4235f9dad9711bb5bd27f1"
core_version: "1.37.1"
+version_basis:
+ kind: file
+ path: "Quake/quakever.h"
+ pattern: '#define VKQUAKE_VERSION_MAJOR (\d+)\n#define VKQUAKE_VERSION_MINOR (\d+)\n#define VKQUAKE_VER_PATCH\s+(\d+)'
+ format: "{1}.{2}.{3}"
display_name: "Quake (vkQuake)"
cores: ["vkquake"]
systems: [quake]
diff --git a/emulators/vkquake2.yml b/emulators/vkquake2.yml
index 946317b99..649fb92d6 100644
--- a/emulators/vkquake2.yml
+++ b/emulators/vkquake2.yml
@@ -6,6 +6,10 @@ upstream: "https://github.com/id-Software/Quake-2"
profiled_date: "2026-10-23"
source_commit: "6763f207229f97cffabb6fc2da72017a794b139b"
core_version: "1.5.10"
+version_basis:
+ kind: tag
+ tag: "1.5.10"
+ distance: 0
display_name: "Quake II (vkQuake2)"
cores: ["vkquake2"]
systems: [quake2, xatrix, rogue, ctf]
diff --git a/emulators/vkquake3.yml b/emulators/vkquake3.yml
index 2b94f663e..45c527656 100644
--- a/emulators/vkquake3.yml
+++ b/emulators/vkquake3.yml
@@ -6,6 +6,10 @@ upstream: "https://github.com/ioquake/ioq3"
profiled_date: "2026-10-17"
source_commit: "650bd625eb725446279c6176804b554e2e1c98f3"
core_version: "1.36"
+version_basis:
+ kind: file
+ path: "Makefile"
+ pattern: 'VERSION=([0-9][\w.+-]*)'
display_name: "Quake III Arena (vkQuake3)"
cores: ["vkquake3"]
systems: [quake3, teamarena]
diff --git a/emulators/vvvvvv.yml b/emulators/vvvvvv.yml
index 4ed530e3a..05590f071 100644
--- a/emulators/vvvvvv.yml
+++ b/emulators/vvvvvv.yml
@@ -6,6 +6,11 @@ upstream: "https://github.com/TerryCavanagh/VVVVVV"
profiled_date: "2026-10-23"
source_commit: "40e1ec3bbf2a990a5c600564fe312c2121178a50"
core_version: "v2.5"
+version_basis:
+ kind: file
+ path: "desktop_version/src/ReleaseVersion.h"
+ pattern: '#define MAJOR_VERSION (\d+)\n#define MINOR_VERSION (\d+)\n#define PATCH_VERSION 0\b'
+ format: "v{1}.{2}"
display_name: "VVVVVV"
cores:
- "vvvvvv"
diff --git a/emulators/winuae.yml b/emulators/winuae.yml
index 45daeac6a..602266b95 100644
--- a/emulators/winuae.yml
+++ b/emulators/winuae.yml
@@ -5,6 +5,11 @@ source: "https://github.com/tonioni/WinUAE"
source_commit: "15110cf6606d1188800ea7ad86bf1cbd9c688741"
profiled_date: "2026-10-20"
core_version: "6.1.0 beta 19"
+version_basis:
+ kind: file
+ path: "include/winuae_version.h"
+ pattern: '#define UAEMAJOR (\d+)\n#define UAEMINOR (\d+)\n#define UAESUBREV (\d+)\n\n#define WINUAEPUBLICBETA 1\n\n#if WINUAEPUBLICBETA\n#define WINUAEBETA _T\("(\d+)"\)'
+ format: "{1}.{2}.{3} beta {4}"
display_name: "Commodore - Amiga (WinUAE)"
cores:
- winuae
diff --git a/emulators/wolf4sdl.yml b/emulators/wolf4sdl.yml
index c55166e56..6737502d1 100644
--- a/emulators/wolf4sdl.yml
+++ b/emulators/wolf4sdl.yml
@@ -5,7 +5,11 @@ source: "https://github.com/KS-Presto/Wolf4SDL"
upstream: "https://github.com/KS-Presto/Wolf4SDL"
profiled_date: "2026-10-20"
source_commit: "dc8b250af35fb0ace68db5eb879490b50068c20e"
-core_version: "2.0"
+core_version: "v2.0"
+version_basis:
+ kind: file
+ path: "wl_main.c"
+ pattern: '"Wolf4SDL (v[0-9][0-9.]*[0-9A-Za-z]*)\\n"'
display_name: "Wolfenstein 3D (Wolf4SDL)"
cores: [wolf4sdl]
systems: [wolfenstein3d]
diff --git a/emulators/x1-box.yml b/emulators/x1-box.yml
index 0bf800383..17220ac2c 100644
--- a/emulators/x1-box.yml
+++ b/emulators/x1-box.yml
@@ -8,6 +8,10 @@ profiled_date: "2026-10-26"
source_commit: "e092175b9196438ee2712bf6f45398fe2970b5fe"
upstream_commit: "26fcbe54f17e496bdf530dad9f237e74e2f943fc"
core_version: "1.3.2"
+version_basis:
+ kind: tag
+ tag: "1.3.2"
+ distance: 0
display_name: "Microsoft - Xbox (X1 BOX)"
cores:
- "x1-box"
diff --git a/emulators/x16emu.yml b/emulators/x16emu.yml
index 3d2d52400..d4b011799 100644
--- a/emulators/x16emu.yml
+++ b/emulators/x16emu.yml
@@ -5,6 +5,10 @@ upstream: "https://github.com/X16Community/x16-emulator"
profiled_date: "2026-10-20"
source_commit: "af1024080ced455ea098b007aed43142c99e93da"
core_version: "r49"
+version_basis:
+ kind: tag
+ tag: "r49"
+ distance: 0
display_name: "Commander X16 (x16emu)"
cores:
- x16emu
diff --git a/emulators/xash3d_fwgs.yml b/emulators/xash3d_fwgs.yml
index f4e99b9a1..aecc372d1 100644
--- a/emulators/xash3d_fwgs.yml
+++ b/emulators/xash3d_fwgs.yml
@@ -5,7 +5,11 @@ source: "https://github.com/FWGS/xash3d-fwgs"
upstream: "https://github.com/FWGS/xash3d-fwgs"
profiled_date: "2026-10-04"
source_commit: "27092af50d912432887faa43a1cccddfae569b2d"
-core_version: "0.21+git"
+core_version: "0.21"
+version_basis:
+ kind: file
+ path: "engine/common/com_strings.h"
+ pattern: '#define\s+XASH_VERSION\s+"([^"]+)"'
display_name: "Xash3D FWGS"
cores: [xash3d_fwgs, xash3d]
systems: [halflife, cstrike, czero, czeror, dmc, gearbox, bshift, ricochet, tfc]
diff --git a/emulators/xemu-chihiro.yml b/emulators/xemu-chihiro.yml
index ab82e0e92..a7709ddd6 100644
--- a/emulators/xemu-chihiro.yml
+++ b/emulators/xemu-chihiro.yml
@@ -7,7 +7,12 @@ upstream: "https://github.com/xemu-project/xemu"
profiled_date: "2026-10-20"
source_commit: "98fbd75dd0f3088a4988abc1698feb37b844a41a"
upstream_commit: "25e1ee2fd59a451f2ab57e825b4f8a5414220c8b"
-core_version: "0.8.134-406-g0d44d803b2"
+core_version: "v0.8.134-410-g98fbd75"
+version_basis:
+ kind: tag
+ match: "v*"
+ tag: "v0.8.134"
+ distance: 410
display_name: "Sega - Chihiro (xemu Chihiro)"
cores:
- xemu-chihiro
diff --git a/emulators/xendroid.yml b/emulators/xendroid.yml
index f712a9d2e..f48b11da5 100644
--- a/emulators/xendroid.yml
+++ b/emulators/xendroid.yml
@@ -7,7 +7,11 @@ author: "rfandango"
profiled_date: "2026-09-17"
source_commit: "779680ade075d2d2a4c589c6a8d57a8e26c116c0"
upstream_commit: "d881a29125978b4eea6bf44f6ed8c33f8aea8c33"
-core_version: "0b11201"
+core_version: "XenDroid-0b11201-2-g779680a"
+version_basis:
+ kind: tag
+ tag: "XenDroid-0b11201"
+ distance: 2
display_name: "Microsoft - Xbox 360 (XenDroid)"
cores:
- "xendroid"
diff --git a/emulators/xenia.yml b/emulators/xenia.yml
index 57c49bba9..b0ff32c4f 100644
--- a/emulators/xenia.yml
+++ b/emulators/xenia.yml
@@ -5,7 +5,11 @@ source: "https://github.com/xenia-canary/xenia-canary"
upstream: "https://github.com/xenia-canary/xenia-canary"
profiled_date: "2026-03-26"
source_commit: "72c2afa3ba2b1b232f89de71577251d6edafb1bd"
-core_version: "canary"
+core_version: "72c2afa"
+version_basis:
+ kind: tag
+ tag: "72c2afa"
+ distance: 0
display_name: "Xenia Canary (Xbox 360)"
cores:
- xenia
diff --git a/emulators/xenios.yml b/emulators/xenios.yml
index e1f648ef6..cc9440da6 100644
--- a/emulators/xenios.yml
+++ b/emulators/xenios.yml
@@ -6,7 +6,12 @@ upstream: "https://github.com/has207/xenia-edge"
source_commit: "87b176a078c316fde3adf67a217f0c44615b0e0d"
upstream_commit: "07021f019cf55105bc26c0474e0b0835808353e2"
profiled_date: "2026-08-23"
-core_version: "2.0.1"
+core_version: "v2.0.1-2-g87b176a"
+version_basis:
+ kind: tag
+ match: "v[0-9]*.[0-9]*.[0-9]*"
+ tag: "v2.0.1"
+ distance: 2
display_name: "Microsoft - Xbox 360 (XeniOS)"
cores:
- "xenios"
diff --git a/emulators/xm6pro68k.yml b/emulators/xm6pro68k.yml
index 44f605745..4d847f341 100644
--- a/emulators/xm6pro68k.yml
+++ b/emulators/xm6pro68k.yml
@@ -9,6 +9,10 @@ version_source:
based_on: "XM6 v2.06 by PI."
profiled_date: "2026-10-20"
core_version: "260920"
+version_basis:
+ kind: package
+ url: "https://www.retrobat.ovh/repo/win64/stable/emulators/xm6pro.7z"
+ artifact: "xm6pro.7z, Version.txt"
display_name: "XM6 Pro-68k (Sharp X68000)"
mode: standalone
cores:
diff --git a/emulators/xm6typeg.yml b/emulators/xm6typeg.yml
index c44b057ec..666cf9834 100644
--- a/emulators/xm6typeg.yml
+++ b/emulators/xm6typeg.yml
@@ -9,6 +9,12 @@ version_source:
based_on: "XM6 v2.06 by PI."
profiled_date: "2026-08-10"
core_version: "3.38"
+version_basis:
+ kind: package
+ url: "http://retropc.net/pi/xm6/index.html"
+ pattern: 'xm6_typeg_(\d)(\d+)_\d+\.zip'
+ format: "{1}.{2}"
+ artifact: "xm6_typeg_338_20260223.zip"
display_name: "XM6 TypeG (Sharp X68000)"
mode: standalone
cores:
diff --git a/emulators/xm7.yml b/emulators/xm7.yml
index 6a771ae01..e44af9a08 100644
--- a/emulators/xm7.yml
+++ b/emulators/xm7.yml
@@ -7,6 +7,11 @@ upstream: "http://retropc.net/ryu/xm7/"
profiled_date: "2026-10-20"
source_commit: "2a48dceaf8a3a0de92cf369b039ac5fab2bb351a"
core_version: "V3.4 L61a SDL/Agar 0.3.2pre2"
+version_basis:
+ kind: file
+ path: "linux-sdl/vm/xm7.h"
+ pattern: '#if XM7_VER >= 3\n#define\s+VERSION\s+"(V[^"]+)"[\s\S]*?#else\n#define\s+LEVEL\s+"([^"]+)"[\s\S]*?#else\n#define\s+LOCALVER\s+"(SDL/Agar [^"]+)"'
+ format: "{1} {2} {3}"
cores:
- xm7
systems:
diff --git a/emulators/xroar.yml b/emulators/xroar.yml
index 38d7ff49e..4729f716a 100644
--- a/emulators/xroar.yml
+++ b/emulators/xroar.yml
@@ -7,6 +7,9 @@ version_source:
pattern: 'version\s*([0-9.]+), released'
profiled_date: "2026-10-20"
core_version: "1.12.1"
+version_basis:
+ kind: unverified
+ why: host_unsupported
display_name: "Dragon / CoCo / MC-10 (XRoar)"
cores:
- xroar
diff --git a/emulators/yquake2.yml b/emulators/yquake2.yml
index 19cf021a9..bdb74943d 100644
--- a/emulators/yquake2.yml
+++ b/emulators/yquake2.yml
@@ -5,7 +5,11 @@ source: "https://github.com/yquake2/yquake2"
upstream: "https://github.com/yquake2/yquake2"
profiled_date: "2026-10-04"
source_commit: "9dbf699273e2546f3ad14cff3dee6a51a518cd2a"
-core_version: "8.51+git"
+core_version: "8.71pre"
+version_basis:
+ kind: file
+ path: "src/common/header/common.h"
+ pattern: '#define\s+YQ2VERSION\s+"([^"]+)"'
display_name: "Yamagi Quake II"
cores: [yquake2]
systems: [quake2, xatrix, rogue, ctf]
diff --git a/emulators/yuzu.yml b/emulators/yuzu.yml
index 529a1cb26..e425668bf 100644
--- a/emulators/yuzu.yml
+++ b/emulators/yuzu.yml
@@ -9,6 +9,9 @@ pin_frozen: "The analysed revision, the one the EA 4176 build documented here co
upstream_gone: "GitHub withdrew the repository for legal reasons: the API answers HTTP 451 for both yuzu-emu/yuzu and the yuzu-emu-mirror copy. Observed 2026-09-04. The fork Zenfone-5-X00QD-4-19/yuzu, pushed 2024-03-05, still serves the analysed commit."
source_mirror: "https://github.com/Zenfone-5-X00QD-4-19/yuzu"
core_version: "EA 4176"
+version_basis:
+ kind: unverified
+ why: host_gone
display_name: "Yuzu (Nintendo Switch)"
cores:
- yuzu
diff --git a/emulators/zesarux.yml b/emulators/zesarux.yml
index 728e9d1c3..3017ab21f 100644
--- a/emulators/zesarux.yml
+++ b/emulators/zesarux.yml
@@ -7,6 +7,10 @@ source_commit: "fd354296d851edc24ad1411b8f9342a66d07d460"
prose_written_at: "e1fc8db2957c360c8ff584a2c4d147f70861c3aa"
profiled_date: "2026-10-26"
core_version: "13.1-SN"
+version_basis:
+ kind: file
+ path: "src/cpu.h"
+ pattern: '^#define\s+EMULATOR_VERSION\s+"([^"]+)"'
display_name: "Sinclair - ZX Spectrum and clones (ZEsarUX)"
verification: existence
cores: [zesarux]
diff --git a/emulators/zinc.yml b/emulators/zinc.yml
index 2dbcc21b0..8c45a43af 100644
--- a/emulators/zinc.yml
+++ b/emulators/zinc.yml
@@ -6,6 +6,10 @@ upstream: closed-source
author: "Drunken Muppets"
profiled_date: "2026-10-20"
core_version: "1.1"
+version_basis:
+ kind: package
+ url: "https://www.retrobat.ovh/repo/win64/stable/emulators/zinc.7z"
+ artifact: "zinc.7z, ZiNc.exe banner"
display_name: "Arcade - Sony ZN-1/ZN-2, Namco System 11, Konami GV (ZiNc)"
cores:
- zinc
diff --git a/emulators/zquestclassic.yml b/emulators/zquestclassic.yml
index 10da14d2d..b606049d6 100644
--- a/emulators/zquestclassic.yml
+++ b/emulators/zquestclassic.yml
@@ -6,6 +6,10 @@ upstream: "https://github.com/ZQuestClassic/ZQuestClassic"
source_commit: "4ef771c64666812a1359b8f34fe4d7803868ba13"
profiled_date: "2026-10-20"
core_version: "2.55.17"
+version_basis:
+ kind: tag
+ tag: "2.55.17"
+ distance: 0
display_name: "Zelda Classic (ZQuest Classic)"
cores: [zquestclassic]
systems: [zeldaclassic]