Exemple #1
0
        private void SetupSettings()
        {
            string iniFile = Path.Combine(_path, "settings.ini");

            if (File.Exists(iniFile))
            {
                try
                {
                    using (var ini = new IniFile(iniFile))
                    {
                        Uri relRoot = new Uri(_path, UriKind.Absolute);

                        string biosPath = AppConfig.GetFullPath("bios");
                        if (!string.IsNullOrEmpty(biosPath))
                        {
                            ini.WriteValue("BIOS", "SearchDirectory", biosPath.Replace("\\", "\\\\"));
                        }

                        if (SystemConfig.isOptSet("ratio") && !string.IsNullOrEmpty(SystemConfig["ratio"]))
                        {
                            ini.WriteValue("Display", "AspectRatio", SystemConfig["ratio"]);
                        }
                        else
                        {
                            ini.WriteValue("Display", "AspectRatio", "Auto (Game Native)");
                        }

                        if (SystemConfig.isOptSet("internal_resolution") && !string.IsNullOrEmpty(SystemConfig["internal_resolution"]))
                        {
                            ini.WriteValue("GPU", "ResolutionScale", SystemConfig["internal_resolution"]);
                        }
                        else
                        {
                            ini.WriteValue("GPU", "ResolutionScale", "5");
                        }

                        if (SystemConfig.isOptSet("gfxbackend") && !string.IsNullOrEmpty(SystemConfig["gfxbackend"]))
                        {
                            ini.WriteValue("GPU", "Renderer", SystemConfig["gfxbackend"]);
                        }
                        else
                        {
                            ini.WriteValue("GPU", "Renderer", "Vulkan");
                        }

                        if (SystemConfig.isOptSet("Texture_Enhancement") && !string.IsNullOrEmpty(SystemConfig["Texture_Enhancement"]))
                        {
                            ini.WriteValue("GPU", "TextureFilter", SystemConfig["Texture_Enhancement"]);
                        }
                        else
                        {
                            ini.WriteValue("GPU", "TextureFilter", "Nearest");
                        }

                        if (SystemConfig.isOptSet("interlace") && !string.IsNullOrEmpty(SystemConfig["interlace"]))
                        {
                            ini.WriteValue("GPU", "DisableInterlacing", SystemConfig["interlace"]);
                        }
                        else
                        {
                            ini.WriteValue("GPU", "DisableInterlacing", "true");
                        }

                        if (SystemConfig.isOptSet("NTSC_Timings") && !string.IsNullOrEmpty(SystemConfig["NTSC_Timings"]))
                        {
                            ini.WriteValue("GPU", "ForceNTSCTimings", SystemConfig["NTSC_Timings"]);
                        }
                        else
                        {
                            ini.WriteValue("GPU", "ForceNTSCTimings", "false");
                        }

                        if (SystemConfig.isOptSet("Widescreen_Hack") && !string.IsNullOrEmpty(SystemConfig["Widescreen_Hack"]))
                        {
                            ini.WriteValue("GPU", "WidescreenHack", SystemConfig["Widescreen_Hack"]);
                        }
                        else
                        {
                            ini.WriteValue("GPU", "WidescreenHack", "false");
                        }

                        if (SystemConfig.isOptSet("Disable_Dithering") && !string.IsNullOrEmpty(SystemConfig["Disable_Dithering"]))
                        {
                            ini.WriteValue("GPU", "TrueColor", SystemConfig["Disable_Dithering"]);
                        }
                        else
                        {
                            ini.WriteValue("GPU", "TrueColor", "false");
                        }

                        if (SystemConfig.isOptSet("Scaled_Dithering") && !string.IsNullOrEmpty(SystemConfig["Scaled_Dithering"]))
                        {
                            ini.WriteValue("GPU", "ScaledDithering", SystemConfig["Scaled_Dithering"]);
                        }
                        else
                        {
                            ini.WriteValue("GPU", "ScaledDithering", "false");
                        }

                        if (SystemConfig.isOptSet("VSync") && !string.IsNullOrEmpty(SystemConfig["VSync"]))
                        {
                            ini.WriteValue("Display", "VSync", SystemConfig["VSync"]);
                        }
                        else
                        {
                            ini.WriteValue("Display", "VSync", "true");
                        }

                        if (SystemConfig.isOptSet("Linear_Filtering") && !string.IsNullOrEmpty(SystemConfig["Linear_Filtering"]))
                        {
                            ini.WriteValue("Display", "LinearFiltering", SystemConfig["Linear_Filtering"]);
                        }
                        else
                        {
                            ini.WriteValue("Display", "LinearFiltering", "true");
                        }

                        if (SystemConfig.isOptSet("Integer_Scaling") && !string.IsNullOrEmpty(SystemConfig["Integer_Scaling"]))
                        {
                            ini.WriteValue("Display", "IntegerScaling", SystemConfig["Integer_Scaling"]);
                        }
                        else
                        {
                            ini.WriteValue("Display", "IntegerScaling", "false");
                        }

                        ini.WriteValue("Main", "ConfirmPowerOff", "false");
                        ini.WriteValue("Main", "StartFullscreen", "true");
                        ini.WriteValue("Main", "ApplyGameSettings", "true");
                        ini.WriteValue("Main", "RenderToMainWindow", "true");
                        ini.WriteValue("Main", "EnableDiscordPresence", "false");
                        ini.WriteValue("Display", "Fullscreen", "true");
                    }
                }
                catch { }
            }
        }
Exemple #2
0
        private static void ConfigureKeyboard(IniFile ini, InputConfig keyboard)
        {
            if (keyboard == null)
            {
                return;
            }

            ini.WriteValue("General", "emulate", "Wii U GamePad");
            ini.WriteValue("General", "api", "Keyboard");
            ini.WriteValue("General", "controller", null);

            ini.WriteValue("Controller", "rumble", "0");
            ini.WriteValue("Controller", "leftRange", "1");
            ini.WriteValue("Controller", "rightRange", "1");
            ini.WriteValue("Controller", "leftDeadzone", "0.15");
            ini.WriteValue("Controller", "rightDeadzone", "0.15");
            ini.WriteValue("Controller", "buttonThreshold", "0.5");

            Action <string, InputKey> writeIni = (v, k) =>
            {
                var a = keyboard[k];
                if (a != null)
                {
                    byte value = SdlToKeyCode(a.Id);
                    ini.WriteValue("Controller", v, "key_" + value.ToString());
                }
                else if (ini.GetValue("Controller", v) != null && ini.GetValue("Controller", v).StartsWith("button"))
                {
                    ini.WriteValue("Controller", v, "");
                }
            };

            writeIni("1", InputKey.a);
            writeIni("2", InputKey.b);
            writeIni("3", InputKey.x);
            writeIni("4", InputKey.y);

            writeIni("5", InputKey.pageup);
            writeIni("6", InputKey.pagedown);

            writeIni("7", InputKey.lefttrigger);
            writeIni("8", InputKey.righttrigger);

            writeIni("9", InputKey.start);
            writeIni("10", InputKey.select);

            writeIni("11", InputKey.up);
            writeIni("12", InputKey.down);
            writeIni("13", InputKey.left);
            writeIni("14", InputKey.right);

            if (ini.GetValue("Controller", "15") != null && ini.GetValue("Controller", "15").StartsWith("button"))
            {
                ini.WriteValue("Controller", "15", null);
            }

            if (ini.GetValue("Controller", "16") != null && ini.GetValue("Controller", "16").StartsWith("button"))
            {
                ini.WriteValue("Controller", "16", null);
            }

            writeIni("17", InputKey.joystick1up);
            writeIni("18", InputKey.joystick1up);
            writeIni("19", InputKey.joystick1left);
            writeIni("20", InputKey.joystick1left);

            writeIni("21", InputKey.joystick2up);
            writeIni("22", InputKey.joystick2up);
            writeIni("23", InputKey.joystick2left);
            writeIni("24", InputKey.joystick2left);

            writeIni("26", InputKey.hotkeyenable);
        }
        private static void generateControllerConfig_any(string filename, string anyDefKey, Dictionary <InputKey, string> anyMapping, Dictionary <string, string> anyReverseAxes, Dictionary <string, string> anyReplacements, Dictionary <string, string> extraOptions = null)
        {
            string path    = Program.AppConfig.GetFullPath("dolphin");
            string iniFile = Path.Combine(path, "User", "Config", filename);

            int nsamepad = 0;

            Dictionary <string, int> double_pads = new Dictionary <string, int>();

            using (IniFile ini = new IniFile(iniFile, true))
            {
                foreach (var pad in Program.Controllers)
                {
                    string gcpad = anyDefKey + pad.Index;
                    ini.ClearSection(gcpad);

                    if (pad.Input == null)
                    {
                        continue;
                    }

                    // SIDevice0 = 7 -> Keyb GCKeyNew.ini
                    // SIDevice1 = 6 -> controlleur standard GCPadNew.ini

                    string tech       = "XInput";
                    string deviceName = "Gamepad";

                    if (pad.Input.Type == "keyboard")
                    {
                        tech       = "DInput";
                        deviceName = "Keyboard Mouse";
                    }
                    else if (!pad.Input.IsXInputDevice())
                    {
                        var di = pad.Input.GetDirectInputInfo();
                        if (di == null)
                        {
                            continue;
                        }

                        tech       = "DInput";
                        deviceName = di.Name;
                    }

                    if (double_pads.ContainsKey(tech + "/" + deviceName))
                    {
                        nsamepad = double_pads[tech + "/" + deviceName];
                    }
                    else
                    {
                        nsamepad = 0;
                    }

                    double_pads[tech + "/" + deviceName] = nsamepad + 1;

                    ini.WriteValue(gcpad, "Device", tech + "/" + nsamepad.ToString() + "/" + deviceName);

                    if (extraOptions != null)
                    {
                        foreach (var xtra in extraOptions)
                        {
                            ini.WriteValue(gcpad, xtra.Key, xtra.Value);
                        }
                    }

                    foreach (var x in anyMapping)
                    {
                        string keyName = x.Value;

                        if (pad.Input.Type == "keyboard")
                        {
                            var value = x.Value;

                            if (x.Key == InputKey.a)
                            {
                                value = "Buttons/A";
                            }
                            else if (x.Key == InputKey.b)
                            {
                                value = "Buttons/B";
                            }
                            else if (x.Key == InputKey.up)
                            {
                                value = "Main Stick/Up";
                            }
                            else if (x.Key == InputKey.down)
                            {
                                value = "Main Stick/Down";
                            }
                            else if (x.Key == InputKey.left)
                            {
                                value = "Main Stick/Left";
                            }
                            else if (x.Key == InputKey.right)
                            {
                                value = "Main Stick/Right";
                            }

                            if (x.Key == InputKey.joystick1left || x.Key == InputKey.joystick1up)
                            {
                                continue;
                            }

                            var input = pad.Input[x.Key];
                            if (input == null)
                            {
                                continue;
                            }

                            var name = ToDolphinKey(input.Id);
                            ini.WriteValue(gcpad, value, name);
                        }
                        else if (tech == "XInput")
                        {
                            var mapping = pad.Input.GetXInputMapping(x.Key);
                            if (mapping != XINPUTMAPPING.UNKNOWN && xInputMapping.ContainsKey(mapping))
                            {
                                ini.WriteValue(gcpad, x.Value, xInputMapping[mapping]);
                            }

                            string reverseAxis;
                            if (anyReverseAxes.TryGetValue(x.Value, out reverseAxis))
                            {
                                mapping = pad.Input.GetXInputMapping(x.Key, true);
                                if (mapping != XINPUTMAPPING.UNKNOWN && xInputMapping.ContainsKey(mapping))
                                {
                                    ini.WriteValue(gcpad, reverseAxis, xInputMapping[mapping]);
                                }
                            }
                        }
                        else
                        {
                            var input = pad.Input[x.Key];
                            if (input == null)
                            {
                                continue;
                            }

                            if (input.Type == "button")
                            {
                                if (input.Id == 0) // Invert A & B
                                {
                                    ini.WriteValue(gcpad, x.Value, "`Button 1`");
                                }
                                else if (input.Id == 1) // Invert A & B
                                {
                                    ini.WriteValue(gcpad, x.Value, "`Button 0`");
                                }
                                else
                                {
                                    ini.WriteValue(gcpad, x.Value, "`Button " + input.Id.ToString() + "`");
                                }
                            }
                            else if (input.Type == "hat")
                            {
                                string hat = "`Hat " + input.Id + " N`";

                                if (input.Value == 2) // SDL_HAT_RIGHT
                                {
                                    hat = "`Hat " + input.Id + " E`";
                                }
                                else if (input.Value == 4) // SDL_HAT_DOWN
                                {
                                    hat = "`Hat " + input.Id + " S`";
                                }
                                else if (input.Value == 8) // SDL_HAT_LEFT
                                {
                                    hat = "`Hat " + input.Id + " W`";
                                }

                                ini.WriteValue(gcpad, x.Value, hat);
                            }
                            else if (input.Type == "axis")
                            {
                                Func <Input, bool, string> axisValue = (inp, revertAxis) =>
                                {
                                    string axis = "`Axis ";

                                    if (inp.Id == 2 || inp.Id == 5)
                                    {
                                        axis += "Z";
                                    }
                                    else if (inp.Id == 0 || inp.Id == 3)
                                    {
                                        axis += "X";
                                    }
                                    else
                                    {
                                        axis += "Y";
                                    }

                                    if (inp.Id == 3 || inp.Id == 4)
                                    {
                                        axis += "r";
                                    }

                                    if (inp.Id == 5)
                                    {
                                        revertAxis = !revertAxis;
                                    }

                                    if ((!revertAxis && inp.Value > 0) || (revertAxis && inp.Value < 0))
                                    {
                                        axis += "+";
                                    }
                                    else
                                    {
                                        axis += "-";
                                    }

                                    return(axis + "`");
                                };

                                ini.WriteValue(gcpad, x.Value, axisValue(input, false));

                                string reverseAxis;
                                if (anyReverseAxes.TryGetValue(x.Value, out reverseAxis))
                                {
                                    ini.WriteValue(gcpad, reverseAxis, axisValue(input, true));
                                }
                            }
                        }
                    }

                    if (tech == "XInput")
                    {
//                        ini.WriteValue(gcpad, "Main Stick/Modifier", "`Thumb L`");
//                      ini.WriteValue(gcpad, "C-Stick/Modifier" , "`Thumb R`");
                        ini.WriteValue(gcpad, "Main Stick/Dead Zone", "5.0000000000000000");
                        ini.WriteValue(gcpad, "C-Stick/Dead Zone", "5.0000000000000000");
                        ini.WriteValue(gcpad, "Rumble/Motor", "`Motor L``Motor R`");
                    }
                }

                ini.Save();
            }
        }
Exemple #4
0
        private void SetupConfig(string path)
        {
            string iniFile = Path.Combine(path, "memstick", "PSP", "SYSTEM", "ppsspp.ini");

            if (!File.Exists(iniFile))
            {
                return;
            }

            try
            {
                using (var ini = new IniFile(iniFile, true))
                {
                    ini.WriteValue("Graphics", "FullScreen", "True");

                    //if (SystemConfig.isOptSet("showFPS") && SystemConfig.getOptBoolean("showFPS"))
                    if (SystemConfig.isOptSet("DrawFramerate") && SystemConfig.getOptBoolean("DrawFramerate"))
                    {
                        ini.WriteValue("Graphics", "ShowFPSCounter", "3");
                    }
                    else
                    {
                        ini.WriteValue("Graphics", "ShowFPSCounter", "0");
                    }

                    if (SystemConfig.isOptSet("frameskip") && SystemConfig.getOptBoolean("frameskip"))
                    {
                        ini.WriteValue("Graphics", "FrameSkip", SystemConfig["frameskip"]);
                    }
                    else
                    {
                        ini.WriteValue("Graphics", "FrameSkip", "0");
                    }

                    if (SystemConfig.isOptSet("frameskiptype") && !string.IsNullOrEmpty(SystemConfig["frameskiptype"]))
                    {
                        ini.WriteValue("Graphics", "FrameSkipType", SystemConfig["frameskiptype"]);
                    }
                    else
                    {
                        ini.WriteValue("Graphics", "FrameSkipType", "0");
                    }

                    if (SystemConfig.isOptSet("internalresolution") && !string.IsNullOrEmpty(SystemConfig["internalresolution"]))
                    {
                        ini.WriteValue("Graphics", "InternalResolution", SystemConfig["internalresolution"]);
                    }
                    else
                    {
                        ini.WriteValue("Graphics", "InternalResolution", "0");
                    }

                    if (SystemConfig.isOptSet("rewind") && SystemConfig.getOptBoolean("rewind"))
                    {
                        ini.WriteValue("General", "RewindFlipFrequency", "300");
                    }
                    else
                    {
                        ini.WriteValue("General", "RewindFlipFrequency", "0");
                    }
                }
            }

            catch { }
        }
Exemple #5
0
        private static void ConfigureJoystick(IniFile ini, InputConfig joy, int playerIndex)
        {
            if (joy == null)
            {
                return;
            }

            string api;
            string guid = string.Empty;

            if (joy.IsXInputDevice())
            {
                api  = "XInput";
                guid = "0";
            }
            else
            {
                api = "DirectInput";
                Guid gd = joy.GetJoystickInstanceGuid();
                if (gd == Guid.Empty)
                {
                    return;
                }

                guid = gd.ToString().ToUpper();
            }

            if (playerIndex == 0)
            {
                ini.WriteValue("General", "emulate", "Wii U GamePad");
            }
            else
            {
                ini.WriteValue("General", "emulate", "Wii U Classic Controller");
            }

            ini.WriteValue("General", "api", api);
            ini.WriteValue("General", "controller", guid);

            ini.WriteValue("Controller", "rumble", "0");
            ini.WriteValue("Controller", "leftRange", "1");
            ini.WriteValue("Controller", "rightRange", "1");
            ini.WriteValue("Controller", "leftDeadzone", "0.15");
            ini.WriteValue("Controller", "rightDeadzone", "0.15");
            ini.WriteValue("Controller", "buttonThreshold", "0.5");

            Action <string, InputKey, bool> writeIni = (v, k, r) =>
            { var val = GetInputValue(joy, k, api, r); ini.WriteValue("Controller", v, val); };                 // if (val != null)

            writeIni("1", InputKey.a, false);
            writeIni("2", InputKey.b, false);
            writeIni("3", InputKey.x, false);
            writeIni("4", InputKey.y, false);

            writeIni("5", InputKey.pageup, false);
            writeIni("6", InputKey.pagedown, false);

            writeIni("7", InputKey.lefttrigger, false);
            writeIni("8", InputKey.righttrigger, false);

            writeIni("9", InputKey.start, false);
            writeIni("10", InputKey.select, false);

            writeIni("11", InputKey.up, false);
            writeIni("12", InputKey.down, false);
            writeIni("13", InputKey.left, false);
            writeIni("14", InputKey.right, false);

            if (api == "XInput")
            {
                ini.WriteValue("Controller", "15", "button_100");
                ini.WriteValue("Controller", "16", "button_200");
            }
            else
            {
                ini.WriteValue("Controller", "15", null);
                ini.WriteValue("Controller", "16", null);
            }

            writeIni("17", InputKey.joystick1up, false);
            writeIni("18", InputKey.joystick1up, true);
            writeIni("19", InputKey.joystick1left, false);
            writeIni("20", InputKey.joystick1left, true);

            writeIni("21", InputKey.joystick2up, false);
            writeIni("22", InputKey.joystick2up, true);
            writeIni("23", InputKey.joystick2left, false);
            writeIni("24", InputKey.joystick2left, true);

            /*
             * if (joy[InputKey.select] != null && !joy[InputKey.select].Equals(joy[InputKey.hotkey]))
             *  writeIni("26", InputKey.hotkey, false);
             * else*/
            ini.WriteValue("Controller", "26", null);
        }
Exemple #6
0
        private void SetupGfxConfig(string path)
        {
            string iniFile = Path.Combine(path, "User", "Config", "GFX.ini");

            if (!File.Exists(iniFile))
            {
                return;
            }

            try
            {
                using (var ini = new IniFile(iniFile, true))
                {
                    if (SystemConfig.isOptSet("ratio"))
                    {
                        if (SystemConfig["ratio"] == "4/3")
                        {
                            ini.WriteValue("Settings", "AspectRatio", "2");
                        }
                        else if (SystemConfig["ratio"] == "16/9")
                        {
                            ini.WriteValue("Settings", "AspectRatio", "1");
                        }
                        else
                        {
                            ini.WriteValue("Settings", "AspectRatio", "0");
                        }
                    }
                    else
                    {
                        ini.WriteValue("Settings", "AspectRatio", "0");
                    }

                    // draw or not FPS
                    if (SystemConfig.isOptSet("DrawFramerate") && SystemConfig.getOptBoolean("DrawFramerate"))
                    {
                        ini.WriteValue("Settings", "ShowFPS", "True");
                    }
                    else
                    {
                        ini.WriteValue("Settings", "ShowFPS", "False");
                    }

                    if (_bezelFileInfo != null)
                    {
                        ini.WriteValue("Settings", "BorderlessFullscreen", "True");
                    }
                    else
                    {
                        ini.WriteValue("Settings", "BorderlessFullscreen", "False");
                    }

                    ini.WriteValue("Hardware", "VSync", SystemConfig["VSync"] != "false" ? "True" : "False");

                    // search for custom textures
                    ini.WriteValue("Settings", "HiresTextures", "True");
                    ini.WriteValue("Settings", "CacheHiresTextures", "True");

                    if (SystemConfig.isOptSet("internalresolution") && !string.IsNullOrEmpty(SystemConfig["internalresolution"]))
                    {
                        ini.WriteValue("Settings", "InternalResolution", SystemConfig["internalresolution"]);
                    }
                    else if (SystemConfig.isOptSet("internal_resolution") && !string.IsNullOrEmpty(SystemConfig["internal_resolution"]))
                    {
                        ini.WriteValue("Settings", "InternalResolution", SystemConfig["internal_resolution"]);
                    }
                    else
                    {
                        ini.WriteValue("Settings", "InternalResolution", "0");
                    }

                    // HiResTextures - Default On
                    if (SystemConfig.isOptSet("hires_textures"))
                    {
                        if (!SystemConfig.getOptBoolean("hires_textures"))
                        {
                            ini.WriteValue("Settings", "HiresTextures", "False");
                            ini.WriteValue("Settings", "CacheHiresTextures", "False");
                        }
                        else
                        {
                            ini.WriteValue("Settings", "HiresTextures", "True");
                            ini.WriteValue("Settings", "CacheHiresTextures", "True");
                        }
                    }

                    // anisotropic filtering - Auto 0
                    if (SystemConfig.isOptSet("anisotropic_filtering"))
                    {
                        ini.WriteValue("Enhancements", "MaxAnisotropy", SystemConfig["anisotropic_filtering"]);
                    }
                    else
                    {
                        ini.WriteValue("Enhancements", "MaxAnisotropy", "0");
                    }

                    // anisotropic filtering - Auto 0
                    if (SystemConfig.isOptSet("antialiasing"))
                    {
                        ini.WriteValue("Settings", "MSAA", "0x0000000" + SystemConfig["antialiasing"]);
                    }
                    else
                    {
                        ini.WriteValue("Settings", "MSAA", "0x00000001");
                    }

                    // SSAA = True

                    // widescreen hack but only if enable cheats is not enabled - Default Off
                    if (SystemConfig.isOptSet("widescreen_hack"))
                    {
                        if (SystemConfig.getOptBoolean("widescreen_hack"))
                        {
                            ini.WriteValue("Settings", "wideScreenHack", "True");
                        }
                        else
                        {
                            ini.Remove("Settings", "wideScreenHack");
                        }
                    }

                    // various performance hacks - Default Off
                    if (SystemConfig.isOptSet("perf_hacks"))
                    {
                        if (SystemConfig.getOptBoolean("perf_hacks"))
                        {
                            ini.WriteValue("Hacks", "BBoxEnable", "False");
                            ini.WriteValue("Hacks", "DeferEFBCopies", "True");
                            ini.WriteValue("Hacks", "EFBEmulateFormatChanges", "False");
                            ini.WriteValue("Hacks", "EFBScaledCopy", "True");
                            ini.WriteValue("Hacks", "EFBToTextureEnable", "True");
                            ini.WriteValue("Hacks", "SkipDuplicateXFBs", "True");
                            ini.WriteValue("Hacks", "XFBToTextureEnable", "True");
                            ini.WriteValue("Enhancements", "ForceFiltering", "True");
                            ini.WriteValue("Enhancements", "ArbitraryMipmapDetection", "True");
                            ini.WriteValue("Enhancements", "DisableCopyFilter", "True");
                            ini.WriteValue("Enhancements", "ForceTrueColor", "True");
                        }
                        else
                        {
                            ini.Remove("Hacks", "BBoxEnable");
                            ini.Remove("Hacks", "DeferEFBCopies");
                            ini.Remove("Hacks", "EFBEmulateFormatChanges");
                            ini.Remove("Hacks", "EFBScaledCopy");
                            ini.Remove("Hacks", "EFBToTextureEnable");
                            ini.Remove("Hacks", "SkipDuplicateXFBs");
                            ini.Remove("Hacks", "XFBToTextureEnable");
                            ini.Remove("Enhancements", "ForceFiltering");
                            ini.Remove("Enhancements", "ArbitraryMipmapDetection");
                            ini.Remove("Enhancements", "DisableCopyFilter");
                            ini.Remove("Enhancements", "ForceTrueColor");
                        }
                    }
                }
            }
            catch { }
        }
Exemple #7
0
        private void SetupGeneralConfig(string path, string system)
        {
            string iniFile = Path.Combine(path, "User", "Config", "Dolphin.ini");

            if (!File.Exists(iniFile))
            {
                return;
            }

            try
            {
                using (var ini = new IniFile(iniFile, true))
                {
                    ini.WriteValue("Display", "Fullscreen", "True");

                    // draw or not FPS
                    if (SystemConfig.isOptSet("DrawFramerate") && SystemConfig.getOptBoolean("DrawFramerate"))
                    {
                        ini.WriteValue("General", "ShowLag", "True");
                        ini.WriteValue("General", "ShowFPSCounter", "True");
                    }
                    else
                    {
                        ini.WriteValue("General", "ShowLag", "False");
                        ini.WriteValue("General", "ShowFrameCount", "False");
                    }

                    // don't ask about statistics
                    ini.WriteValue("Analytics", "PermissionAsked", "True");

                    // don't confirm at stop
                    ini.WriteValue("Interface", "ConfirmStop", "False");

                    // language (for gamecube at least)
                    ini.WriteValue("Core", "SelectedLanguage", getGameCubeLangFromEnvironment());
                    ini.WriteValue("Core", "GameCubeLanguage", getGameCubeLangFromEnvironment());

                    // backend - Default
                    if (SystemConfig.isOptSet("gfxbackend"))
                    {
                        ini.WriteValue("Core", "GFXBackend", SystemConfig["gfxbackend"]);
                    }
                    else
                    {
                        ini.WriteValue("Core", "GFXBackend", "Vulkan");
                    }

                    // Cheats - default false
                    if (SystemConfig.isOptSet("enable_cheats"))
                    {
                        if (SystemConfig.getOptBoolean("enable_cheats"))
                        {
                            ini.WriteValue("Core", "EnableCheats", "True");
                        }
                        else
                        {
                            ini.WriteValue("Core", "EnableCheats", "False");
                        }
                    }

                    // Fast Disc Speed - Default Off
                    if (SystemConfig.isOptSet("enable_fastdisc"))
                    {
                        if (SystemConfig.getOptBoolean("enable_fastdisc"))
                        {
                            ini.WriteValue("Core", "FastDiscSpeed", "True");
                        }
                        else
                        {
                            ini.WriteValue("Core", "FastDiscSpeed", "False");
                        }
                    }

                    // Enable MMU - Default On
                    if (!SystemConfig.isOptSet("enable_mmu") || SystemConfig.getOptBoolean("enable_mmu"))
                    {
                        ini.WriteValue("Core", "MMU", "True");
                    }
                    else
                    {
                        ini.WriteValue("Core", "MMU", "False");
                    }

                    // gamecube pads forced as standard pad
                    bool emulatedWiiMote = (system == "wii" && Program.SystemConfig.isOptSet("emulatedwiimotes") && Program.SystemConfig.getOptBoolean("emulatedwiimotes"));

                    // wiimote scanning
                    if (emulatedWiiMote || system == "gamecube")
                    {
                        ini.WriteValue("Core", "WiimoteContinuousScanning", "False");
                    }
                    else
                    {
                        ini.WriteValue("Core", "WiimoteContinuousScanning", "True");
                    }

                    if (_triforce)
                    {
                        ini.WriteValue("Core", "SerialPort1", "6");
                        ini.WriteValue("Core", "SIDevice0", "11");
                        ini.WriteValue("Core", "SIDevice1", "0");
                        ini.WriteValue("Core", "SIDevice2", "0");
                        ini.WriteValue("Core", "SIDevice3", "0");
                    }
                    else if (!((Program.SystemConfig.isOptSet("disableautocontrollers") && Program.SystemConfig["disableautocontrollers"] == "1")))
                    {
                        for (int i = 0; i < 4; i++)
                        {
                            var ctl = Controllers.FirstOrDefault(c => c.PlayerIndex == i + 1);

                            if (ctl != null && ctl.Config != null && !emulatedWiiMote)
                            {
                                /*if (ctl.Input.Type == "keyboard")
                                 *  ini.WriteValue("Core", "SIDevice" + i, "7");
                                 * else*/
                                ini.WriteValue("Core", "SIDevice" + i, "6");
                            }
                            else
                            {
                                ini.WriteValue("Core", "SIDevice" + i, "0");
                            }
                        }
                    }
                }
            }

            catch { }
        }