public static void CreateConfig(IGame game) { var gameConfigDir = GameHelper.GetGameConfigDir(game); DeleteConfigDir(game); Directory.CreateDirectory(gameConfigDir); CreateUiConfigFile(gameConfigDir, game); CopyOtherSettings(gameConfigDir); SetGameConfigParams(game); }
private static void ApplyRemoteConfig(IGame game, string remoteConfigDir) { CreateConfig(game); var targetGameConfigDir = GameHelper.GetGameConfigDir(game); foreach (var file in Directory.GetFiles(remoteConfigDir)) { if (file.ToLower().Contains("readme")) { continue; } File.Copy(file, $"{targetGameConfigDir}\\{Path.GetFileName(file)}", overwrite: true); } var remoteFile = $"{targetGameConfigDir}\\{ConfiguratorModel.RemoteConfigDummyFileName}"; if (!File.Exists(remoteFile)) { File.Create($"{targetGameConfigDir}\\{ConfiguratorModel.RemoteConfigDummyFileName}").Dispose(); } var iniParser = new FileIniDataParser(); var targetUiConfigFilePath = $"{targetGameConfigDir}\\{ConfiguratorModel.Pcsx2UiFileName}"; var uiTweaksFilePath = $"{targetGameConfigDir}\\PCSX2_ui-tweak.ini"; var targetUiConfig = iniParser.ReadFile(targetUiConfigFilePath); targetUiConfig.Global["EnablePresets"] = "disabled"; targetUiConfig.Global["EnableGameFixes"] = "enabled"; targetUiConfig.Global["EnableSpeedHacks"] = "enabled"; targetUiConfig["GSWindow"]["Zoom"] = "101.00"; if (File.Exists(uiTweaksFilePath)) { var uiTweakConfig = iniParser.ReadFile(uiTweaksFilePath); targetUiConfig.Merge(uiTweakConfig); } var baseUiConfig = iniParser.ReadFile($"{ConfiguratorModel.Pcsx2InisDir}\\{ConfiguratorModel.Pcsx2UiFileName}"); var cheatsDir = baseUiConfig["Folders"]["Cheats"]; cheatsDir = !Path.IsPathRooted(cheatsDir) ? $"{ConfiguratorModel.Pcsx2AbsoluteDir}\\{cheatsDir}" : cheatsDir; foreach (var file in Directory.GetFiles(targetGameConfigDir, "*.pnach")) { File.Move(file, $"{cheatsDir}\\{Path.GetFileName(file)}"); } iniParser.WriteFile(targetUiConfigFilePath, targetUiConfig, Encoding.UTF8); }
private static void SetGameConfigParams(IGame game) { var pcsx2AppPath = ConfiguratorModel.Pcsx2RelativeAppPath; var pcsx2CommandLine = ConfiguratorModel.Pcsx2CommandLine; var gameConfigDir = GameHelper.GetGameConfigDir(game); var configCommandLine = $"--cfgpath \"{gameConfigDir}\""; if (!GameHelper.IsGameUsingRocketLauncher(game)) { game.CommandLine = string.IsNullOrEmpty(game.CommandLine) ? $"{pcsx2CommandLine} {configCommandLine}" : game.CommandLine; } else { Task.Run(() => { var rocketLauncherPath = PluginHelper.DataManager.GetEmulatorById(game.EmulatorId).ApplicationPath; var rocketLauncherDir = Path.GetDirectoryName(!Path.IsPathRooted(rocketLauncherPath) ? $"{ConfiguratorModel.LaunchBoxDir}\\{rocketLauncherPath}" : rocketLauncherPath); var iniParser = new FileIniDataParser(); var rocketLauncherPcsx2ConfigPath = $"{rocketLauncherDir}\\Modules\\PCSX2\\PCSX2.ini"; var rocketLauncherPcsx2Config = File.Exists(rocketLauncherPcsx2ConfigPath) ? iniParser.ReadFile(rocketLauncherPcsx2ConfigPath) : new IniData(); rocketLauncherPcsx2Config["Settings"]["cfgpath"] = SettingsModel.GameConfigsDir; iniParser.WriteFile(rocketLauncherPcsx2ConfigPath, rocketLauncherPcsx2Config, Encoding.UTF8); }); } game.ConfigurationPath = pcsx2AppPath; game.ConfigurationCommandLine = configCommandLine; }
private static void DeleteConfigDir(IGame game) { var gameConfigDir = GameHelper.GetGameConfigDir(game); SystemDeleteDir(gameConfigDir); }