Beispiel #1
0
        public static void CreateConfig(IGame game)
        {
            var gameConfigDir = GameHelper.GetGameConfigDir(game);

            DeleteConfigDir(game);
            Directory.CreateDirectory(gameConfigDir);

            CreateUiConfigFile(gameConfigDir, game);
            CopyOtherSettings(gameConfigDir);

            SetGameConfigParams(game);
        }
Beispiel #2
0
        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);
        }
Beispiel #3
0
        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;
        }
Beispiel #4
0
        private static void DeleteConfigDir(IGame game)
        {
            var gameConfigDir = GameHelper.GetGameConfigDir(game);

            SystemDeleteDir(gameConfigDir);
        }