Files
libretro/emulators/solarus-2.0.0.yml
T
Abdessamad Derraz 3199bc2a55 fix: state standalone versions from their code
Each standalone profile records where its version is read: the source
at its pin (clk 2026-07-23-136-g9020107, shadps4 0.20.1 WIP, eden
v0.2.0-401-g26a03d2), the APK, binary or archive read (kind package),
or, where no reading can be made, kind unverified with the reason: a
host the tools cannot read, a forge gone or not answering, no build
recorded as read, a pin on another branch. Those keep their value,
unconfirmed.
2026-10-27 19:21:40 +01:00

61 lines
2.8 KiB
YAML

emulator: Solarus 2.0.0
type: standalone
core_classification: game_engine
source: "https://gitlab.com/solarus-games/solarus"
upstream: "https://gitlab.com/solarus-games/solarus"
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
systems:
- solarus
mode: standalone
notes: |
Solarus engine at tag v2.0.0+cicd1, which RetroBat installs as solarus2
beside its older solarus package. That tag adds only CI changes to v2.0.0.
libsolarus.dll in that package reports Solarus 2.0.0 (49d1d46) and its
gamecontrollerdb.txt is the one this tree carries. emulatorlauncher
runs `solarus-run.exe -fullscreen=yes|no <rom>` from the package folder on a
.solarus or .zip quest (emulatorLauncher Generators/Solarus.Generator.cs:20-48).
The quest arrives as the last non-option argument, and otherwise falls back
to SOLARUS_DEFAULT_QUEST, "." by default (src/core/MainLoop.cpp:108-121,
cmake/AddOptions.cmake:8). open_quest mounts that path through PhysFS
directly, then tries <path>/data, <path>/data.solarus and
<path>/data.solarus.zip, each both relative and under PHYSFS_getBaseDir
(src/core/QuestFiles.cpp:151-165). The quest counts as found once quest.dat
resolves (src/core/QuestFiles.cpp:230-234). Everything else the game uses
comes out of that mount.
Startup reads one file from outside the quest. System::initialize probes
SDL_GetBasePath() then SOLARUS_DATADIR_PATH for gamecontrollerdb.txt and
hands whichever it finds to SDL through SDL_HINT_GAMECONTROLLERCONFIG_FILE
(src/core/System.cpp:70-98). At this tag the file is installed into the data
directory without a build option to turn it off
(cmake/AddInstallTargets.cmake:22-26).
files:
- name: gamecontrollerdb.txt
system: solarus
category: game_data
required: false
bundled: true
size: 564391
sha1: "24cb6032438d26d9fa7d4ba3775b0f1088b58e4c"
md5: "bdd985f10866d9eeb5cf4f1dc01a5d2c"
description: "SDL gamepad mappings applied on top of the built-in table"
source_ref: "src/core/System.cpp:70-98, cmake/AddDefines.cmake:44, cmake/AddInstallTargets.cmake:22-26"
note: >-
Looked up next to the executable first, then under SOLARUS_DATADIR_PATH,
share/solarus by default (cmake/AddInstallDirs.cmake:14). Both probes are
guarded by an existence test, and neither hitting leaves SDL on its
built-in mappings.