aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/src/knowngames.h20
-rw-r--r--src/src/organizercore.cpp11
-rw-r--r--src/src/prefixsetuprunner.cpp3
3 files changed, 23 insertions, 11 deletions
diff --git a/src/src/knowngames.h b/src/src/knowngames.h
index a29e5dc..42679b7 100644
--- a/src/src/knowngames.h
+++ b/src/src/knowngames.h
@@ -29,35 +29,35 @@ inline constexpr KnownGame KNOWN_GAMES[] = {
R"(Software\SureAI\Enderal SE)", "installed path", "Enderal Special Edition"},
{"Fallout 3", "22300", "1454315831", "adeae8bbfc94427db57c7dfecce3f1d4",
"Fallout3", "Fallout3", nullptr,
- R"(Software\Bethesda Softworks\Fallout3)", "Installed Path", "Fallout 3"},
+ R"(Software\Bethesda Softworks\Fallout3)", "installed path", "Fallout 3"},
{"Fallout 4", "377160", "1998527297", "61d52ce4d09d41e48800c22784d13ae8",
"Fallout4", "Fallout4", nullptr,
- R"(Software\Bethesda Softworks\Fallout4)", "Installed Path", "Fallout 4"},
+ R"(Software\Bethesda Softworks\Fallout4)", "installed path", "Fallout 4"},
{"Fallout 4 VR", "611660", nullptr, nullptr,
"Fallout4VR", nullptr, nullptr,
- R"(Software\Bethesda Softworks\Fallout 4 VR)", "Installed Path", "Fallout 4 VR"},
+ R"(Software\Bethesda Softworks\Fallout 4 VR)", "installed path", "Fallout 4 VR"},
{"Fallout New Vegas", "22380", "1454587428", "5daeb974a22a435988892319b3a4f476",
"FalloutNV", "FalloutNV", nullptr,
- R"(Software\Bethesda Softworks\FalloutNV)", "Installed Path", "Fallout New Vegas"},
+ R"(Software\Bethesda Softworks\FalloutNV)", "installed path", "Fallout New Vegas"},
{"Morrowind", "22320", "1440163901", nullptr,
"Morrowind", nullptr, nullptr,
- R"(Software\Bethesda Softworks\Morrowind)", "Installed Path", "Morrowind"},
+ R"(Software\Bethesda Softworks\Morrowind)", "installed path", "Morrowind"},
{"Oblivion", "22330", "1458058109", nullptr,
"Oblivion", "Oblivion", nullptr,
- R"(Software\Bethesda Softworks\Oblivion)", "Installed Path", "Oblivion"},
+ R"(Software\Bethesda Softworks\Oblivion)", "installed path", "Oblivion"},
{"Skyrim", "72850", nullptr, nullptr,
"Skyrim", "Skyrim", nullptr,
- R"(Software\Bethesda Softworks\Skyrim)", "Installed Path", "Skyrim"},
+ R"(Software\Bethesda Softworks\Skyrim)", "installed path", "Skyrim"},
{"Skyrim Special Edition", "489830", "1711230643", "ac82db5035584c7f8a2c548d98c86b2c",
"Skyrim Special Edition", "Skyrim Special Edition", nullptr,
- R"(Software\Bethesda Softworks\Skyrim Special Edition)", "Installed Path",
+ R"(Software\Bethesda Softworks\Skyrim Special Edition)", "installed path",
"Skyrim Special Edition"},
{"Skyrim VR", "611670", nullptr, nullptr,
"Skyrim VR", nullptr, nullptr,
- R"(Software\Bethesda Softworks\Skyrim VR)", "Installed Path", "Skyrim VR"},
+ R"(Software\Bethesda Softworks\Skyrim VR)", "installed path", "Skyrim VR"},
{"Starfield", "1716740", nullptr, nullptr,
"Starfield", nullptr, nullptr,
- R"(Software\Bethesda Softworks\Starfield)", "Installed Path", "Starfield"},
+ R"(Software\Bethesda Softworks\Starfield)", "installed path", "Starfield"},
// CD Projekt RED Games
{"The Witcher 3", "292030", "1495134320", nullptr,
"The Witcher 3", nullptr, nullptr,
diff --git a/src/src/organizercore.cpp b/src/src/organizercore.cpp
index 330eeae..701e169 100644
--- a/src/src/organizercore.cpp
+++ b/src/src/organizercore.cpp
@@ -2316,8 +2316,17 @@ bool OrganizerCore::checkGameRegistryKey()
registryPath = prefix.readHklmValue(wow64Key, valueName);
}
+ // Normalize trailing separators before comparing — Steam writes paths with
+ // a trailing backslash, so the registry value may differ only in that.
+ auto stripTrailingSep = [](QString s) {
+ while (s.endsWith('\\') || s.endsWith('/'))
+ s.chop(1);
+ return s;
+ };
+
if (registryPath.isEmpty() ||
- registryPath.compare(winePath, Qt::CaseInsensitive) != 0) {
+ stripTrailingSep(registryPath).compare(stripTrailingSep(winePath),
+ Qt::CaseInsensitive) != 0) {
const QString displayRegPath = registryPath.isEmpty()
? tr("<not set>") : registryPath;
diff --git a/src/src/prefixsetuprunner.cpp b/src/src/prefixsetuprunner.cpp
index 81824e1..74d59bc 100644
--- a/src/src/prefixsetuprunner.cpp
+++ b/src/src/prefixsetuprunner.cpp
@@ -1306,7 +1306,10 @@ bool PrefixSetupRunner::stepGameDetection()
const QString& rVal = game.registry_value;
// Convert Linux path to Wine Z: drive path with escaped backslashes.
+ // Trailing backslash required — game launchers expect it (matches Steam's format).
QString winePath = "Z:" + QString(installPath).replace('/', "\\\\");
+ if (!winePath.endsWith("\\\\"))
+ winePath += "\\\\";
regContent += QStringLiteral(
"[HKEY_LOCAL_MACHINE\\%1]\n\"%2\"=\"%3\"\n\n"