Esempio n. 1
0
    def generate(self, system, rom, playersControllers):
        if not system.config['configfile']:
            dolphinSettings = UnixSettings(rhgamestationFiles.dolphinIni,
                                           separator=' ')
            dolphinControllers.generateControllerConfig(
                system, playersControllers)
            dolphinGFX = UnixSettings(rhgamestationFiles.dolphinGFX,
                                      separator=' ')
            #Draw or not FPS
            showFPS = "True" if system.config['showFPS'] == 'true' else "False"
            dolphinGFX.save("ShowFPS", showFPS)

            # Disable analytics
            dolphinSettings.save("PermissionAsked", "True")
            dolphinSettings.save("Enabled", "True")
            dolphinSettings.save("AutoHideCursor", "True")
            dolphinSettings.save("WiimoteContinuousScanning", "True")
            dolphinSettings.save("ConfirmStop", "False")

        commandArray = [
            rhgamestationFiles.rhgamestationBins[system.config['emulator']],
            "-e", rom
        ]
        if 'args' in system.config and system.config['args'] is not None:
            commandArray.extend(system.config['args'])
        return Command.Command(videomode=system.config['videomode'],
                               array=commandArray,
                               env={
                                   "XDG_CONFIG_HOME": rhgamestationFiles.CONF,
                                   "XDG_DATA_HOME": rhgamestationFiles.SAVES
                               })
    def generate(self, system, rom, playersControllers, gameResolution):
        dolphinControllers.generateControllerConfig(system, playersControllers,
                                                    rom)

        dolphinSettings = UnixSettings(gamestationFiles.dolphinIni,
                                       separator=' ')

        #Draw or not FPS
        if system.config['showFPS'] == 'true':
            dolphinSettings.save("ShowLag", "True")
            dolphinSettings.save("ShowFrameCount", "True")
        else:
            dolphinSettings.save("ShowLag", "False")
            dolphinSettings.save("ShowFrameCount", "False")

        # don't ask about statistics
        dolphinSettings.save("PermissionAsked", "True")

        # don't confirm at stop
        dolphinSettings.save("ConfirmStop", "False")

        # language (for gamecube at least)
        dolphinSettings.save("SelectedLanguage",
                             getGameCubeLangFromEnvironment())
        dolphinSettings.save("GameCubeLanguage",
                             getGameCubeLangFromEnvironment())

        # update GFX
        dolphinGFXSettings = ConfigParser.ConfigParser()
        # To prevent ConfigParser from converting to lower case
        dolphinGFXSettings.optionxform = str
        dolphinGFXSettings.read(gamestationFiles.dolphinGfxIni)

        if not dolphinGFXSettings.has_section("Settings"):
            dolphinGFXSettings.add_section("Settings")
        dolphinGFXSettings.set(
            "Settings", "AspectRatio",
            getGfxRatioFromConfig(system.config, gameResolution))
        cfgfile = open(gamestationFiles.dolphinGfxIni, 'w+')
        dolphinGFXSettings.write(cfgfile)
        cfgfile.close()

        # update SYSCONF
        try:
            dolphinSYSCONF.update(system.config,
                                  gamestationFiles.dolphinSYSCONF,
                                  gameResolution)
        except Exception:
            pass  # don't fail in case of SYSCONF update

        commandArray = [
            gamestationFiles.gamestationBins[system.config['emulator']], "-e",
            rom
        ]
        return Command.Command(array=commandArray,
                               env={
                                   "XDG_CONFIG_HOME": gamestationFiles.CONF,
                                   "XDG_DATA_HOME": gamestationFiles.SAVES
                               })
Esempio n. 3
0
    def generate(self, system, rom, playersControllers):
        dolphinControllers.generateControllerConfig(system, playersControllers,
                                                    rom)

        dolphinSettings = UnixSettings(recalboxFiles.dolphinIni, separator=' ')
        #Draw or not FPS
        if system.config['showFPS'] == 'true':
            dolphinSettings.save("ShowLag", "True")
            dolphinSettings.save("ShowFrameCount", "True")
        else:
            dolphinSettings.save("ShowLag", "False")
            dolphinSettings.save("ShowFrameCount", "False")

        # don't ask about statistics
        dolphinSettings.save("PermissionAsked", "True")

        # don't confirm at stop
        dolphinSettings.save("ConfirmStop", "False")

        # language (for gamecube at least)
        dolphinSettings.save("SelectedLanguage",
                             getDolphinLangFromEnvironment())

        # update SYSCONF
        try:
            dolphinSYSCONF.update(system.config, recalboxFiles.dolphinSYSCONF)
        except Exception:
            pass  # don't fail in case of SYSCONF update

        commandArray = [
            recalboxFiles.recalboxBins[system.config['emulator']], "-e", rom
        ]
        if 'args' in system.config and system.config['args'] is not None:
            commandArray.extend(system.config['args'])
        return Command.Command(videomode=system.config['videomode'],
                               array=commandArray,
                               env={
                                   "XDG_CONFIG_HOME": recalboxFiles.CONF,
                                   "XDG_DATA_HOME": recalboxFiles.SAVES
                               })
    def generate(self, system, rom, playersControllers):
        dolphinControllers.generateControllerConfig(system, playersControllers)

        dolphinSettings = UnixSettings(recalboxFiles.dolphinIni, separator=' ')
        #Draw or not FPS
        if system.config['showFPS'] == 'true':
            dolphinSettings.save("ShowLag", "True")
            dolphinSettings.save("ShowFrameCount", "True")
        else:
            dolphinSettings.save("ShowLag", "False")
            dolphinSettings.save("ShowFrameCount", "False")

        commandArray = [
            recalboxFiles.recalboxBins[system.config['emulator']], "-e", rom
        ]
        if 'args' in system.config and system.config['args'] is not None:
            commandArray.extend(system.config['args'])
        return Command.Command(videomode=system.config['videomode'],
                               array=commandArray,
                               env={
                                   "XDG_CONFIG_HOME": recalboxFiles.CONF,
                                   "XDG_DATA_HOME": recalboxFiles.SAVES
                               })
Esempio n. 5
0
    def generate(self, system, rom, playersControllers, gameResolution):
        if not os.path.exists(os.path.dirname(recalboxFiles.dolphinIni)):
            os.makedirs(os.path.dirname(recalboxFiles.dolphinIni))

        dolphinControllers.generateControllerConfig(system, playersControllers,
                                                    rom)

        # dolphin.ini
        dolphinSettings = ConfigParser.ConfigParser()
        # To prevent ConfigParser from converting to lower case
        dolphinSettings.optionxform = str
        if os.path.exists(recalboxFiles.dolphinIni):
            dolphinSettings.read(recalboxFiles.dolphinIni)

        # sections
        if not dolphinSettings.has_section("General"):
            dolphinSettings.add_section("General")
        if not dolphinSettings.has_section("Core"):
            dolphinSettings.add_section("Core")
        if not dolphinSettings.has_section("Interface"):
            dolphinSettings.add_section("Interface")
        if not dolphinSettings.has_section("Analytics"):
            dolphinSettings.add_section("Analytics")

        # draw or not FPS
        if system.config['showFPS'] == 'true':
            dolphinSettings.set("General", "ShowLag", "True")
            dolphinSettings.set("General", "ShowFrameCount", "True")
        else:
            dolphinSettings.set("General", "ShowLag", "False")
            dolphinSettings.set("General", "ShowFrameCount", "False")

        # don't ask about statistics
        dolphinSettings.set("Analytics", "PermissionAsked", "True")

        # don't confirm at stop
        dolphinSettings.set("Interface", "ConfirmStop", "False")

        # language (for gamecube at least)
        dolphinSettings.set("Core", "SelectedLanguage",
                            getGameCubeLangFromEnvironment())
        dolphinSettings.set("Core", "GameCubeLanguage",
                            getGameCubeLangFromEnvironment())

        # wiimote scanning
        dolphinSettings.set("Core", "WiimoteContinuousScanning", "True")

        # gamecube pads forced as standard pad
        dolphinSettings.set("Core", "SIDevice0", "6")
        dolphinSettings.set("Core", "SIDevice1", "6")
        dolphinSettings.set("Core", "SIDevice2", "6")
        dolphinSettings.set("Core", "SIDevice3", "6")

        # save dolphin.ini
        with open(recalboxFiles.dolphinIni, 'w') as configfile:
            dolphinSettings.write(configfile)

        # gfx.ini
        dolphinGFXSettings = ConfigParser.ConfigParser()
        # To prevent ConfigParser from converting to lower case
        dolphinGFXSettings.optionxform = str
        dolphinGFXSettings.read(recalboxFiles.dolphinGfxIni)

        if not dolphinGFXSettings.has_section("Settings"):
            dolphinGFXSettings.add_section("Settings")
        dolphinGFXSettings.set(
            "Settings", "AspectRatio",
            getGfxRatioFromConfig(system.config, gameResolution))

        # save gfx.ini
        with open(recalboxFiles.dolphinGfxIni, 'w') as configfile:
            dolphinGFXSettings.write(configfile)

        # update SYSCONF
        try:
            dolphinSYSCONF.update(system.config, recalboxFiles.dolphinSYSCONF,
                                  gameResolution)
        except Exception:
            pass  # don't fail in case of SYSCONF update

        commandArray = [
            recalboxFiles.recalboxBins[system.config['emulator']], "-e", rom
        ]
        return Command.Command(array=commandArray,
                               env={
                                   "XDG_CONFIG_HOME": recalboxFiles.CONF,
                                   "XDG_DATA_HOME": recalboxFiles.SAVES
                               })
    def generate(self, system, rom, playersControllers, gameResolution):
        if not os.path.exists(os.path.dirname(batoceraFiles.dolphinIni)):
            os.makedirs(os.path.dirname(batoceraFiles.dolphinIni))

        # Dir required for saves
        if not os.path.exists(batoceraFiles.dolphinData + "/StateSaves"):
            os.makedirs(batoceraFiles.dolphinData + "/StateSaves")

        dolphinControllers.generateControllerConfig(system, playersControllers, rom)

        ## dolphin.ini ##

        dolphinSettings = ConfigParser.ConfigParser()
        # To prevent ConfigParser from converting to lower case
        dolphinSettings.optionxform = str
        if os.path.exists(batoceraFiles.dolphinIni):
            dolphinSettings.read(batoceraFiles.dolphinIni)

        # Sections
        if not dolphinSettings.has_section("General"):
            dolphinSettings.add_section("General")
        if not dolphinSettings.has_section("Core"):
            dolphinSettings.add_section("Core")
        if not dolphinSettings.has_section("Interface"):
            dolphinSettings.add_section("Interface")
        if not dolphinSettings.has_section("Analytics"):
            dolphinSettings.add_section("Analytics")

        # Draw or not FPS
        if system.isOptSet("showFPS") and system.getOptBoolean("showFPS"):
            dolphinSettings.set("General", "ShowLag",        '"True"')
            dolphinSettings.set("General", "ShowFrameCount", '"True"')
        else:
            dolphinSettings.set("General", "ShowLag",        '"False"')
            dolphinSettings.set("General", "ShowFrameCount", '"False"')

        # Don't ask about statistics
        dolphinSettings.set("Analytics", "PermissionAsked", '"True"')

        # PanicHandlers displaymessages
        dolphinSettings.set("Interface", "UsePanicHandlers",        '"False"')
        dolphinSettings.set("Interface", "OnScreenDisplayMessages", '"True"')

        # Don't confirm at stop
        dolphinSettings.set("Interface", "ConfirmStop", '"False"')

        # Enable Cheats
        if system.isOptSet("enable_cheats") and system.getOptBoolean("enable_cheats"):
            dolphinSettings.set("Core", "EnableCheats", '"True"')
        else:
            dolphinSettings.set("Core", "EnableCheats", '"False"')

        # Speed up disc transfert rate
        if system.isOptSet("enable_fastdisc") and system.getOptBoolean("enable_fastdisc"):
            dolphinSettings.set("Core", "FastDiscSpeed", '"True"')
        else:
            dolphinSettings.set("Core", "FastDiscSpeed", '"False"')

        # Dual Core
        if system.isOptSet("dual_core") and not system.getOptBoolean("dual_core"):
            dolphinSettings.set("Core", "CPUThread", '"False"')
        else:
            dolphinSettings.set("Core", "CPUThread", '"True"')

        # Gpu Sync
        if system.isOptSet("gpu_sync") and system.getOptBoolean("gpu_sync"):
            dolphinSettings.set("Core", "SyncGPU", '"True"')
        else:
            dolphinSettings.set("Core", "SyncGPU", '"False"')

        # Language (for gamecube at least)
        dolphinSettings.set("Core", "SelectedLanguage", getGameCubeLangFromEnvironment())
        dolphinSettings.set("Core", "GameCubeLanguage", getGameCubeLangFromEnvironment())

        # Enable MMU
        if system.isOptSet("enable_mmu") and system.getOptBoolean("enable_mmu"):
            dolphinSettings.set("Core", "MMU", '"True"')
        else:
            dolphinSettings.set("Core", "MMU", '"False"')

        # Backend - Default OpenGL
        if system.isOptSet("gfxbackend") and system.config["gfxbackend"] == 'Vulkan':
            dolphinSettings.set("Core", "GFXBackend", '"Vulkan"')
        else:
            dolphinSettings.set("Core", "GFXBackend", '"OGL"')

        # Wiimote scanning
        dolphinSettings.set("Core", "WiimoteContinuousScanning", '"True"')

        # Gamecube pads forced as standard pad
        dolphinSettings.set("Core", "SIDevice0", '"6"')
        dolphinSettings.set("Core", "SIDevice1", '"6"')
        dolphinSettings.set("Core", "SIDevice2", '"6"')
        dolphinSettings.set("Core", "SIDevice3", '"6"')

        # Save dolphin.ini
        with open(batoceraFiles.dolphinIni, 'w') as configfile:
            dolphinSettings.write(configfile)

        ## gfx.ini ##

        dolphinGFXSettings = ConfigParser.ConfigParser()
        # To prevent ConfigParser from converting to lower case
        dolphinGFXSettings.optionxform = str
        dolphinGFXSettings.read(batoceraFiles.dolphinGfxIni)

        # Add Default Sections
        if not dolphinGFXSettings.has_section("Settings"):
            dolphinGFXSettings.add_section("Settings")
        if not dolphinGFXSettings.has_section("Hacks"):
            dolphinGFXSettings.add_section("Hacks")
        if not dolphinGFXSettings.has_section("Enhancements"):
            dolphinGFXSettings.add_section("Enhancements")             
        if not dolphinGFXSettings.has_section("Hardware"):
            dolphinGFXSettings.add_section("Hardware")  
            
        dolphinGFXSettings.set("Settings", "AspectRatio", getGfxRatioFromConfig(system.config, gameResolution))

        # Show fps
        if system.isOptSet("showFPS") and system.getOptBoolean("showFPS"):
            dolphinGFXSettings.set("Settings", "ShowFPS", '"True"')
        else:
            dolphinGFXSettings.set("Settings", "ShowFPS", '"False"')

        # HiResTextures
        if system.isOptSet('hires_textures') and not system.getOptBoolean('hires_textures'):
            dolphinGFXSettings.set("Settings", "HiresTextures",      '"False"')
            dolphinGFXSettings.set("Settings", "CacheHiresTextures", '"False"')
        else:
            dolphinGFXSettings.set("Settings", "HiresTextures",      '"True"')
            dolphinGFXSettings.set("Settings", "CacheHiresTextures", '"True"')

        # Widescreen Hack
        if system.isOptSet('widescreen_hack') and system.getOptBoolean('widescreen_hack'):
            # Prefer Cheats than Hack 
            if system.isOptSet('enable_cheats') and system.getOptBoolean('enable_cheats'):
                dolphinGFXSettings.set("Settings", "wideScreenHack", '"False"')
            else:
                dolphinGFXSettings.set("Settings", "wideScreenHack", '"True"')
        else:
            dolphinGFXSettings.set("Settings", "wideScreenHack", '"False"')

        # Various performance hacks - Default Off
        if system.isOptSet('perf_hacks') and system.getOptBoolean('perf_hacks'):
            dolphinGFXSettings.set("Hacks", "BBoxEnable", '"False"')
            dolphinGFXSettings.set("Hacks", "DeferEFBCopies", '"True"')
            dolphinGFXSettings.set("Hacks", "EFBEmulateFormatChanges", '"False"')
            dolphinGFXSettings.set("Hacks", "EFBScaledCopy", '"True"')
            dolphinGFXSettings.set("Hacks", "EFBToTextureEnable", '"True"')
            dolphinGFXSettings.set("Hacks", "SkipDuplicateXFBs", '"True"')
            dolphinGFXSettings.set("Hacks", "XFBToTextureEnable", '"True"')
            dolphinGFXSettings.set("Enhancements", "ForceFiltering", '"True"')
            dolphinGFXSettings.set("Enhancements", "ArbitraryMipmapDetection", '"True"')
            dolphinGFXSettings.set("Enhancements", "DisableCopyFilter", '"True"')
            dolphinGFXSettings.set("Enhancements", "ForceTrueColor", '"True"')            
        else:
            if dolphinGFXSettings.has_section("Hacks"):
                dolphinGFXSettings.remove_option("Hacks", "BBoxEnable")
                dolphinGFXSettings.remove_option("Hacks", "DeferEFBCopies")
                dolphinGFXSettings.remove_option("Hacks", "EFBEmulateFormatChanges")
                dolphinGFXSettings.remove_option("Hacks", "EFBScaledCopy")
                dolphinGFXSettings.remove_option("Hacks", "EFBToTextureEnable")
                dolphinGFXSettings.remove_option("Hacks", "SkipDuplicateXFBs")
                dolphinGFXSettings.remove_option("Hacks", "XFBToTextureEnable")
            if dolphinGFXSettings.has_section("Enhancements"):
                dolphinGFXSettings.remove_option("Enhancements", "ForceFiltering")
                dolphinGFXSettings.remove_option("Enhancements", "ArbitraryMipmapDetection")
                dolphinGFXSettings.remove_option("Enhancements", "DisableCopyFilter")
                dolphinGFXSettings.remove_option("Enhancements", "ForceTrueColor")  

        # Internal resolution settings
        if system.isOptSet('internalresolution'):
            dolphinGFXSettings.set("Settings", "InternalResolution", system.config["internalresolution"])
        else:
            dolphinGFXSettings.set("Settings", "InternalResolution", '"1"')

        # VSync
        if system.isOptSet('vsync'):
            dolphinGFXSettings.set("Hardware", "VSync", system.getOptBoolean('vsync'))
        else:
            dolphinGFXSettings.set("Hardware", "VSync", '"True"')

        # Anisotropic filtering
        if system.isOptSet('anisotropic_filtering'):
            dolphinGFXSettings.set("Enhancements", "MaxAnisotropy", system.config["anisotropic_filtering"])
        else:
            dolphinGFXSettings.set("Enhancements", "MaxAnisotropy", '"0"')

		# Anti aliasing
        if system.isOptSet('antialiasing'):
            dolphinGFXSettings.set("Settings", "MSAA", system.config["antialiasing"])
        else:
            dolphinGFXSettings.set("Settings", "MSAA", '"0"')

		# Save gfx.ini
        with open(batoceraFiles.dolphinGfxIni, 'w') as configfile:
            dolphinGFXSettings.write(configfile)

        # Update SYSCONF
        try:
            dolphinSYSCONF.update(system.config, batoceraFiles.dolphinSYSCONF, gameResolution)
        except Exception:
            pass # don't fail in case of SYSCONF update

        commandArray = ["dolphin-emu", "-e", rom]
        if system.isOptSet('platform'):
            commandArray = ["dolphin-emu-nogui", "-p", system.config["platform"], "-e", rom]

        return Command.Command(array=commandArray, env={"XDG_CONFIG_HOME":batoceraFiles.CONF, "XDG_DATA_HOME":batoceraFiles.SAVES, "QT_QPA_PLATFORM":"xcb"})
Esempio n. 7
0
    def generate(self, system, rom, playersControllers, gameResolution):
        if not os.path.exists(os.path.dirname(batoceraFiles.dolphinIni)):
            os.makedirs(os.path.dirname(batoceraFiles.dolphinIni))

        dolphinControllers.generateControllerConfig(system, playersControllers,
                                                    rom)

        # dolphin.ini
        dolphinSettings = ConfigParser.ConfigParser()
        # To prevent ConfigParser from converting to lower case
        dolphinSettings.optionxform = str
        if os.path.exists(batoceraFiles.dolphinIni):
            dolphinSettings.read(batoceraFiles.dolphinIni)

        # sections
        if not dolphinSettings.has_section("General"):
            dolphinSettings.add_section("General")
        if not dolphinSettings.has_section("Core"):
            dolphinSettings.add_section("Core")
        if not dolphinSettings.has_section("Interface"):
            dolphinSettings.add_section("Interface")
        if not dolphinSettings.has_section("Analytics"):
            dolphinSettings.add_section("Analytics")

        # draw or not FPS
        if system.isOptSet('showFPS') and system.getOptBoolean('showFPS'):
            dolphinSettings.set("General", "ShowLag", "True")
            dolphinSettings.set("General", "ShowFrameCount", "True")
        else:
            dolphinSettings.set("General", "ShowLag", "False")
            dolphinSettings.set("General", "ShowFrameCount", "False")

        # don't ask about statistics
        dolphinSettings.set("Analytics", "PermissionAsked", "True")

        # don't confirm at stop
        dolphinSettings.set("Interface", "ConfirmStop", "False")

        # language (for gamecube at least)
        dolphinSettings.set("Core", "SelectedLanguage",
                            getGameCubeLangFromEnvironment())
        dolphinSettings.set("Core", "GameCubeLanguage",
                            getGameCubeLangFromEnvironment())

        # wiimote scanning
        dolphinSettings.set("Core", "WiimoteContinuousScanning", "True")

        # gamecube pads forced as standard pad
        dolphinSettings.set("Core", "SIDevice0", "6")
        dolphinSettings.set("Core", "SIDevice1", "6")
        dolphinSettings.set("Core", "SIDevice2", "6")
        dolphinSettings.set("Core", "SIDevice3", "6")

        # save dolphin.ini
        with open(batoceraFiles.dolphinIni, 'w') as configfile:
            dolphinSettings.write(configfile)

        # gfx.ini
        dolphinGFXSettings = ConfigParser.ConfigParser()
        # To prevent ConfigParser from converting to lower case
        dolphinGFXSettings.optionxform = str
        dolphinGFXSettings.read(batoceraFiles.dolphinGfxIni)

        if not dolphinGFXSettings.has_section("Settings"):
            dolphinGFXSettings.add_section("Settings")
        dolphinGFXSettings.set(
            "Settings", "AspectRatio",
            getGfxRatioFromConfig(system.config, gameResolution))

        # show fps
        if system.isOptSet('showFPS') and system.getOptBoolean('showFPS'):
            dolphinGFXSettings.set("Settings", "ShowFPS", "True")
        else:
            dolphinGFXSettings.set("Settings", "ShowFPS", "False")

        if system.isOptSet('enable_cheats') and system.getOptBoolean(
                'enable_cheats'):
            dolphinGFXSettings.set("Core", "EnableCheats", "True")
        else:
            dolphinGFXSettings.set("Core", "EnableCheats", "False")

        # for to search for custom textures
        if system.isOptSet('hires_textures') and system.getOptBoolean(
                'hires_textures'):
            dolphinGFXSettings.set("Settings", "HiresTextures", "True")
            dolphinGFXSettings.set("Settings", "CacheHiresTextures", "True")
        else:
            dolphinGFXSettings.set("Settings", "HiresTextures", "False")
            dolphinGFXSettings.set("Settings", "CacheHiresTextures", "False")

        # widescreen hack but only if enable cheats is not enabled
        if (system.isOptSet('widescreen_hack')
                and system.getOptBoolean('widescreen_hack')
                and system.isOptSet('enable_cheats')
                and not system.getOptBoolean('enable_cheats')):
            dolphinGFXSettings.set("Settings", "wideScreenHack", "True")
        else:
            dolphinGFXSettings.remove_option("Settings", "wideScreenHack")

        # various performance hacks
        if system.isOptSet('perf_hacks') and system.getOptBoolean(
                'perf_hacks'):
            if not dolphinGFXSettings.has_section("Hacks"):
                dolphinGFXSettings.add_section("Hacks")
            if not dolphinGFXSettings.has_section("Enhancements"):
                dolphinGFXSettings.add_section("Enhancements")
            dolphinGFXSettings.set("Hacks", "BBoxEnable", "False")
            dolphinGFXSettings.set("Hacks", "DeferEFBCopies", "True")
            dolphinGFXSettings.set("Hacks", "EFBEmulateFormatChanges", "False")
            dolphinGFXSettings.set("Hacks", "EFBScaledCopy", "True")
            dolphinGFXSettings.set("Hacks", "EFBToTextureEnable", "True")
            dolphinGFXSettings.set("Hacks", "SkipDuplicateXFBs", "True")
            dolphinGFXSettings.set("Hacks", "XFBToTextureEnable", "True")
            dolphinGFXSettings.set("Enhancements", "ForceFiltering", "True")
            dolphinGFXSettings.set("Enhancements", "ArbitraryMipmapDetection",
                                   "True")
            dolphinGFXSettings.set("Enhancements", "DisableCopyFilter", "True")
            dolphinGFXSettings.set("Enhancements", "ForceTrueColor", "True")
        else:
            if dolphinGFXSettings.has_section("Hacks"):
                dolphinGFXSettings.remove_option("Hacks", "BBoxEnable")
                dolphinGFXSettings.remove_option("Hacks", "DeferEFBCopies")
                dolphinGFXSettings.remove_option("Hacks",
                                                 "EFBEmulateFormatChanges")
                dolphinGFXSettings.remove_option("Hacks", "EFBScaledCopy")
                dolphinGFXSettings.remove_option("Hacks", "EFBToTextureEnable")
                dolphinGFXSettings.remove_option("Hacks", "SkipDuplicateXFBs")
                dolphinGFXSettings.remove_option("Hacks", "XFBToTextureEnable")
            if dolphinGFXSettings.has_section("Enhancements"):
                dolphinGFXSettings.remove_option("Enhancements",
                                                 "ForceFiltering")
                dolphinGFXSettings.remove_option("Enhancements",
                                                 "ArbitraryMipmapDetection")
                dolphinGFXSettings.remove_option("Enhancements",
                                                 "DisableCopyFilter")
                dolphinGFXSettings.remove_option("Enhancements",
                                                 "ForceTrueColor")

        # internal resolution settings
        if system.isOptSet('internalresolution'):
            dolphinGFXSettings.set("Settings", "InternalResolution",
                                   system.config["internalresolution"])
        else:
            dolphinGFXSettings.set("Settings", "InternalResolution", "0")

        # vsync
        if system.isOptSet('vsync'):
            dolphinGFXSettings.set("Hardware", "VSync", system.config["vsync"])
        else:
            dolphinGFXSettings.set("Hardware", "VSync", "False")

        # anisotropic filtering
        if system.isOptSet('anisotropic_filtering'):
            dolphinGFXSettings.set("Enhancements", "MaxAnisotropy",
                                   system.config["anisotropic_filtering"])
        else:
            dolphinGFXSettings.set("Enhancements", "MaxAnisotropy", "0")

# anti aliasing
        if system.isOptSet('antialiasing'):
            dolphinGFXSettings.set("Settings", "MSAA",
                                   system.config["antialiasing"])
        else:
            dolphinGFXSettings.set("Settings", "MSAA", "0")

# save gfx.ini
        with open(batoceraFiles.dolphinGfxIni, 'w') as configfile:
            dolphinGFXSettings.write(configfile)

        # update SYSCONF
        try:
            dolphinSYSCONF.update(system.config, batoceraFiles.dolphinSYSCONF,
                                  gameResolution)
        except Exception:
            pass  # don't fail in case of SYSCONF update

        commandArray = [
            batoceraFiles.batoceraBins[system.config['emulator']], "-platform",
            "xcb", "-e", rom
        ]
        return Command.Command(array=commandArray,
                               env={
                                   "XDG_CONFIG_HOME": batoceraFiles.CONF,
                                   "XDG_DATA_HOME": batoceraFiles.SAVES
                               })