From 8ab9602d4b32b9c4a266404ccbb3a7ed751502a8 Mon Sep 17 00:00:00 2001 From: Benjamin Date: Mon, 23 Feb 2026 16:59:28 -0700 Subject: [PATCH] Fixed W11 mod loading for <= Yakuza 6 --- ShinRyuModManager-CE/Program.cs | 12 +++++++++++- ShinRyuModManager-CE/ShinRyuModManager-CE.csproj | 2 +- .../UserInterface/Assets/changelog.md | 8 +++++++- Utils/Constants.cs | 1 + Utils/GamePath.cs | 2 ++ 5 files changed, 22 insertions(+), 3 deletions(-) diff --git a/ShinRyuModManager-CE/Program.cs b/ShinRyuModManager-CE/Program.cs index 19b5ba5..acd1db9 100644 --- a/ShinRyuModManager-CE/Program.cs +++ b/ShinRyuModManager-CE/Program.cs @@ -74,6 +74,8 @@ private static void Main(string[] args) { if (!OperatingSystem.IsWindows()) { IsRebuildMloSupported = false; } + + HandleLoader(); // Check if there are any args, if so, run in CLI mode // Unfortunately, no one way to detect left Ctrl while being cross-platform @@ -102,6 +104,8 @@ private static async Task MainCli(string[] args) { Log.Information("Shin Ryu Mod Manager-CE v{Version}", AssemblyVersion.GetVersion()); Log.Information("By TheTrueColonel (a port of SRMM Studio's work)"); + HandleLoader(); + // Parse arguments var list = new List(args); @@ -384,6 +388,12 @@ internal static bool ShouldBeExternalOnly() { return _externalModsOnly && Directory.Exists(GamePath.ExternalModsPath); } + private static void HandleLoader() { + if (GamePath.CurrentGame <= Game.Yakuza6 && !File.Exists(Constants.DINPUT8DLL)) { + File.Move(Constants.VERSIONDLL, Constants.DINPUT8DLL); + } + } + private static List ScanMods(ProfileMask activeProfiles = ProfileMask.All) { var mods = new List(); @@ -405,7 +415,7 @@ private static List ScanMods(ProfileMask activeProfiles = ProfileMask.A } internal static bool MissingDll() { - return File.Exists(Constants.VERSIONDLL); + return File.Exists(Constants.VERSIONDLL) || File.Exists(Constants.DINPUT8DLL); } internal static bool MissingAsi() { diff --git a/ShinRyuModManager-CE/ShinRyuModManager-CE.csproj b/ShinRyuModManager-CE/ShinRyuModManager-CE.csproj index 566398a..9c2d672 100644 --- a/ShinRyuModManager-CE/ShinRyuModManager-CE.csproj +++ b/ShinRyuModManager-CE/ShinRyuModManager-CE.csproj @@ -14,7 +14,7 @@ true - 1.4.8 + 1.4.9 $(AssemblyVersion) ShinRyuModManager-CE SRMM Studio diff --git a/ShinRyuModManager-CE/UserInterface/Assets/changelog.md b/ShinRyuModManager-CE/UserInterface/Assets/changelog.md index 7c467fd..abdbc5b 100644 --- a/ShinRyuModManager-CE/UserInterface/Assets/changelog.md +++ b/ShinRyuModManager-CE/UserInterface/Assets/changelog.md @@ -1,4 +1,10 @@ -> ### **%{color:gold} Version 1.4.8 %** ### +> ### **%{color:gold} Version 1.4.9 %** ### +* Implemented changes from SRMM 4.8.2 (Fixed mods not loading for Yakuza 6 and earlier) + * Windows 11 just wants to be complicated + +--- + +> ### **%{color:orange} Version 1.4.8 %** ### * Implemented changes from SRMM 4.8.1 (Fixed mods not loading for Kiwami 3) * Delete `winmm.dll` and `dinput8.dll` from your game directory diff --git a/Utils/Constants.cs b/Utils/Constants.cs index d37aecc..9856bc2 100644 --- a/Utils/Constants.cs +++ b/Utils/Constants.cs @@ -9,6 +9,7 @@ public static class Constants { public const string MLO = "YakuzaParless.mlo"; public const string ASI = "YakuzaParless.asi"; public const string VERSIONDLL = "version.dll"; + public const string DINPUT8DLL = "dinput8.dll"; public const string PARLESS_NAME = ".parless paths"; public const string EXTERNAL_MODS = "_externalMods"; public const string VORTEX_MANAGED_FILE = "__folder_managed_by_vortex"; diff --git a/Utils/GamePath.cs b/Utils/GamePath.cs index a7dbbbe..c6f8976 100644 --- a/Utils/GamePath.cs +++ b/Utils/GamePath.cs @@ -17,6 +17,7 @@ public static class GamePath { public static string LibrariesPath { get; } public static string LocalLibrariesPath { get; } public static string GameExe { get; } + public static bool IsGOG { get; } static GamePath() { FullGamePath = Environment.CurrentDirectory; @@ -26,6 +27,7 @@ static GamePath() { ExternalModsPath = Path.Combine(ModsPath, Constants.EXTERNAL_MODS); LibrariesPath = Path.Combine(FullGamePath, LIBRARIES); LocalLibrariesPath = Path.Combine(LibrariesPath, Constants.LIBRARIES_INFO_REPO_FILE_PATH); + IsGOG = File.Exists("galaxy64.dll"); // Try to get game foreach (var file in Directory.GetFiles(FullGamePath, "*.exe")) {