static void xsettings_cb(const char* name, XSettingsAction a, XSettingsSetting* s, void* data) { if(s->type != XSETTINGS_TYPE_INT) return; if(block_xsettings_cb) return; if(CHECK_SETTING(KEY_VOLUME, s, a)) { vol_val = s->data.v_int; if(vol_slide) vol_slide->value(vol_val); } if(CHECK_SETTING(KEY_PITCH, s, a)) { pitch_val = s->data.v_int; if(pitch_slide) pitch_slide->value(pitch_val); } if(CHECK_SETTING(KEY_DURATION, s, a)) { dur_val = s->data.v_int; if(dur_slide) dur_slide->value(dur_val); } }
void VideoConfig::GameIniLoad() { bool gfx_override_exists = false; // XXX: Again, bad place to put OSD messages at (see delroth's comment above) // XXX: This will add an OSD message for each projection hack value... meh #define CHECK_SETTING(section, key, var) do { \ decltype(var) temp = var; \ if (iniFile.GetIfExists(section, key, &var) && var != temp) { \ std::string msg = StringFromFormat("Note: Option \"%s\" is overridden by game ini.", key); \ OSD::AddMessage(msg, 7500); \ gfx_override_exists = true; \ } \ } while (0) IniFile iniFile = SConfig::GetInstance().LoadGameIni(); CHECK_SETTING("Video_Hardware", "VSync", bVSync); CHECK_SETTING("Video_Settings", "wideScreenHack", bWidescreenHack); CHECK_SETTING("Video_Settings", "AspectRatio", iAspectRatio); CHECK_SETTING("Video_Settings", "Crop", bCrop); CHECK_SETTING("Video_Settings", "UseXFB", bUseXFB); CHECK_SETTING("Video_Settings", "UseRealXFB", bUseRealXFB); CHECK_SETTING("Video_Settings", "SafeTextureCacheColorSamples", iSafeTextureCache_ColorSamples); CHECK_SETTING("Video_Settings", "HiresTextures", bHiresTextures); CHECK_SETTING("Video_Settings", "ConvertHiresTextures", bConvertHiresTextures); CHECK_SETTING("Video_Settings", "CacheHiresTextures", bCacheHiresTextures); CHECK_SETTING("Video_Settings", "EnablePixelLighting", bEnablePixelLighting); CHECK_SETTING("Video_Settings", "FastDepthCalc", bFastDepthCalc); CHECK_SETTING("Video_Settings", "MSAA", iMultisamples); CHECK_SETTING("Video_Settings", "SSAA", bSSAA); int tmp = -9000; CHECK_SETTING("Video_Settings", "EFBScale", tmp); // integral if (tmp != -9000) { if (tmp != SCALE_FORCE_INTEGRAL) { iEFBScale = tmp; } else // Round down to multiple of native IR { switch (iEFBScale) { case SCALE_AUTO: iEFBScale = SCALE_AUTO_INTEGRAL; break; case SCALE_1_5X: iEFBScale = SCALE_1X; break; case SCALE_2_5X: iEFBScale = SCALE_2X; break; default: break; } } } CHECK_SETTING("Video_Settings", "DisableFog", bDisableFog); CHECK_SETTING("Video_Enhancements", "ForceFiltering", bForceFiltering); CHECK_SETTING("Video_Enhancements", "MaxAnisotropy", iMaxAnisotropy); // NOTE - this is x in (1 << x) CHECK_SETTING("Video_Enhancements", "PostProcessingShader", sPostProcessingShader); // These are not overrides, they are per-game stereoscopy parameters, hence no warning iniFile.GetIfExists("Video_Stereoscopy", "StereoConvergence", &iStereoConvergence, 20); iniFile.GetIfExists("Video_Stereoscopy", "StereoEFBMonoDepth", &bStereoEFBMonoDepth, false); iniFile.GetIfExists("Video_Stereoscopy", "StereoDepthPercentage", &iStereoDepthPercentage, 100); CHECK_SETTING("Video_Stereoscopy", "StereoMode", iStereoMode); CHECK_SETTING("Video_Stereoscopy", "StereoDepth", iStereoDepth); CHECK_SETTING("Video_Stereoscopy", "StereoSwapEyes", bStereoSwapEyes); CHECK_SETTING("Video_Hacks", "EFBAccessEnable", bEFBAccessEnable); CHECK_SETTING("Video_Hacks", "BBoxEnable", bBBoxEnable); CHECK_SETTING("Video_Hacks", "ForceProgressive", bForceProgressive); CHECK_SETTING("Video_Hacks", "EFBToTextureEnable", bSkipEFBCopyToRam); CHECK_SETTING("Video_Hacks", "EFBScaledCopy", bCopyEFBScaled); CHECK_SETTING("Video_Hacks", "EFBEmulateFormatChanges", bEFBEmulateFormatChanges); CHECK_SETTING("Video", "ProjectionHack", iPhackvalue[0]); CHECK_SETTING("Video", "PH_SZNear", iPhackvalue[1]); CHECK_SETTING("Video", "PH_SZFar", iPhackvalue[2]); CHECK_SETTING("Video", "PH_ZNear", sPhackvalue[0]); CHECK_SETTING("Video", "PH_ZFar", sPhackvalue[1]); CHECK_SETTING("Video", "PerfQueriesEnable", bPerfQueriesEnable); if (gfx_override_exists) OSD::AddMessage("Warning: Opening the graphics configuration will reset settings and might cause issues!", 10000); }
void VideoConfig::GameIniLoad() { bool gfx_override_exists = false; // XXX: Again, bad place to put OSD messages at (see delroth's comment above) // XXX: This will add an OSD message for each projection hack value... meh #define CHECK_SETTING(section, key, var) do { \ decltype(var) temp = var; \ if (iniFile.GetIfExists(section, key, &var) && var != temp) { \ char buf[256]; \ snprintf(buf, sizeof(buf), "Note: Option \"%s\" is overridden by game ini.", key); \ OSD::AddMessage(buf, 7500); \ gfx_override_exists = true; \ } \ } while (0) IniFile iniFile = SConfig::GetInstance().m_LocalCoreStartupParameter.LoadGameIni(); CHECK_SETTING("Video_Hardware", "VSync", bVSync); CHECK_SETTING("Video_Settings", "wideScreenHack", bWidescreenHack); CHECK_SETTING("Video_Settings", "AspectRatio", iAspectRatio); CHECK_SETTING("Video_Settings", "Crop", bCrop); CHECK_SETTING("Video_Settings", "UseXFB", bUseXFB); CHECK_SETTING("Video_Settings", "UseRealXFB", bUseRealXFB); CHECK_SETTING("Video_Settings", "SafeTextureCacheColorSamples", iSafeTextureCache_ColorSamples); CHECK_SETTING("Video_Settings", "DLOptimize", iCompileDLsLevel); CHECK_SETTING("Video_Settings", "HiresTextures", bHiresTextures); CHECK_SETTING("Video_Settings", "AnaglyphStereo", bAnaglyphStereo); CHECK_SETTING("Video_Settings", "AnaglyphStereoSeparation", iAnaglyphStereoSeparation); CHECK_SETTING("Video_Settings", "AnaglyphFocalAngle", iAnaglyphFocalAngle); CHECK_SETTING("Video_Settings", "EnablePixelLighting", bEnablePixelLighting); CHECK_SETTING("Video_Settings", "FastDepthCalc", bFastDepthCalc); CHECK_SETTING("Video_Settings", "MSAA", iMultisampleMode); int tmp = -9000; CHECK_SETTING("Video_Settings", "EFBScale", tmp); // integral if (tmp != -9000) { if (tmp != SCALE_FORCE_INTEGRAL) { iEFBScale = tmp; } else // Round down to multiple of native IR { switch (iEFBScale) { case SCALE_AUTO: iEFBScale = SCALE_AUTO_INTEGRAL; break; case SCALE_1_5X: iEFBScale = SCALE_1X; break; case SCALE_2_5X: iEFBScale = SCALE_2X; break; default: break; } } } CHECK_SETTING("Video_Settings", "DstAlphaPass", bDstAlphaPass); CHECK_SETTING("Video_Settings", "DisableFog", bDisableFog); CHECK_SETTING("Video_Settings", "OMPDecoder", bOMPDecoder); CHECK_SETTING("Video_Enhancements", "ForceFiltering", bForceFiltering); CHECK_SETTING("Video_Enhancements", "MaxAnisotropy", iMaxAnisotropy); // NOTE - this is x in (1 << x) CHECK_SETTING("Video_Enhancements", "PostProcessingShader", sPostProcessingShader); CHECK_SETTING("Video_Enhancements", "Enable3dVision", b3DVision); CHECK_SETTING("Video_Hacks", "EFBAccessEnable", bEFBAccessEnable); CHECK_SETTING("Video_Hacks", "DlistCachingEnable", bDlistCachingEnable); CHECK_SETTING("Video_Hacks", "EFBCopyEnable", bEFBCopyEnable); CHECK_SETTING("Video_Hacks", "EFBToTextureEnable", bCopyEFBToTexture); CHECK_SETTING("Video_Hacks", "EFBScaledCopy", bCopyEFBScaled); CHECK_SETTING("Video_Hacks", "EFBCopyCacheEnable", bEFBCopyCacheEnable); CHECK_SETTING("Video_Hacks", "EFBEmulateFormatChanges", bEFBEmulateFormatChanges); CHECK_SETTING("Video", "ProjectionHack", iPhackvalue[0]); CHECK_SETTING("Video", "PH_SZNear", iPhackvalue[1]); CHECK_SETTING("Video", "PH_SZFar", iPhackvalue[2]); CHECK_SETTING("Video", "PH_ExtraParam", iPhackvalue[3]); CHECK_SETTING("Video", "PH_ZNear", sPhackvalue[0]); CHECK_SETTING("Video", "PH_ZFar", sPhackvalue[1]); CHECK_SETTING("Video", "UseBBox", bUseBBox); CHECK_SETTING("Video", "PerfQueriesEnable", bPerfQueriesEnable); if (gfx_override_exists) OSD::AddMessage("Warning: Opening the graphics configuration will reset settings and might cause issues!", 10000); }
void VideoConfig::GameIniLoad() { bool gfx_override_exists = false; // XXX: Again, bad place to put OSD messages at (see delroth's comment above) // XXX: This will add an OSD message for each projection hack value... meh #define CHECK_SETTING(section, key, var) do { \ decltype(var) temp = var; \ if (iniFile.GetIfExists(section, key, &var) && var != temp) { \ std::string msg = StringFromFormat("Note: Option \"%s\" is overridden by game ini.", key); \ OSD::AddMessage(msg, 7500); \ gfx_override_exists = true; \ } \ } while (0) IniFile iniFile = SConfig::GetInstance().LoadGameIni(); CHECK_SETTING("Video_Hardware", "VSync", bVSync); CHECK_SETTING("Video_Settings", "wideScreenHack", bWidescreenHack); CHECK_SETTING("Video_Settings", "AspectRatio", iAspectRatio); CHECK_SETTING("Video_Settings", "Crop", bCrop); CHECK_SETTING("Video_Settings", "UseXFB", bUseXFB); CHECK_SETTING("Video_Settings", "UseRealXFB", bUseRealXFB); CHECK_SETTING("Video_Settings", "SafeTextureCacheColorSamples", iSafeTextureCache_ColorSamples); CHECK_SETTING("Video_Settings", "HiresTextures", bHiresTextures); CHECK_SETTING("Video_Settings", "HiresMaterialMaps", bHiresMaterialMaps); CHECK_SETTING("Video_Settings", "ConvertHiresTextures", bConvertHiresTextures); CHECK_SETTING("Video_Settings", "CacheHiresTextures", bCacheHiresTextures); CHECK_SETTING("Video_Settings", "CacheHiresTexturesonGPU", bCacheHiresTexturesGPU); CHECK_SETTING("Video_Settings", "EnablePixelLighting", bEnablePixelLighting); CHECK_SETTING("Video_Settings", "ForcePhongShading", bForcePhongShading); CHECK_SETTING("Video_Settings", "FastDepthCalc", bFastDepthCalc); CHECK_SETTING("Video_Settings", "MSAA", iMultisampleMode); CHECK_SETTING("Video_Settings", "SSAA", bSSAA); int tmp = -9000; CHECK_SETTING("Video_Settings", "EFBScale", tmp); // integral if (tmp != -9000) { if (tmp != SCALE_FORCE_INTEGRAL) { iEFBScale = tmp; } else // Round down to multiple of native IR { switch (iEFBScale) { case SCALE_AUTO: iEFBScale = SCALE_AUTO_INTEGRAL; break; case SCALE_1_5X: iEFBScale = SCALE_1X; break; case SCALE_2_5X: iEFBScale = SCALE_2X; break; default: break; } } } CHECK_SETTING("Video_Settings", "DisableFog", bDisableFog); CHECK_SETTING("Video_Settings", "EnableOpenCL", bEnableOpenCL); CHECK_SETTING("Video_Enhancements", "ForceFiltering", bForceFiltering); CHECK_SETTING("Video_Enhancements", "MaxAnisotropy", iMaxAnisotropy); // NOTE - this is x in (1 << x) CHECK_SETTING("Video_Enhancements", "PostProcessingShader", sPostProcessingShader); CHECK_SETTING("Video_Enhancements", "StereoMode", iStereoMode); CHECK_SETTING("Video_Enhancements", "StereoDepth", iStereoDepth); CHECK_SETTING("Video_Enhancements", "StereoConvergence", iStereoConvergence); CHECK_SETTING("Video_Enhancements", "StereoSwapEyes", bStereoSwapEyes); CHECK_SETTING("Video_Enhancements", "UseScalingFilter", bUseScalingFilter); CHECK_SETTING("Video_Enhancements", "TextureScalingType", iTexScalingType); CHECK_SETTING("Video_Enhancements", "TextureScalingFactor", iTexScalingFactor); CHECK_SETTING("Video_Enhancements", "UseDePosterize", bTexDeposterize); //these are not overrides, they are per-game settings, hence no warning IniFile::Section* enhancements = iniFile.GetOrCreateSection("Enhancements"); for (size_t i = 0; i < oStereoPresets.size(); ++i) { enhancements->Get(StringFromFormat("StereoConvergence_%zu", i), &oStereoPresets[i].depth, iStereoConvergence); enhancements->Get(StringFromFormat("StereoDepth_%zu", i), &oStereoPresets[i].convergence, iStereoDepth); } enhancements->Get("StereoActivePreset", &iStereoActivePreset, 0); iStereoConvergence = oStereoPresets[iStereoActivePreset].convergence; iStereoDepth = oStereoPresets[iStereoActivePreset].depth; CHECK_SETTING("Video_Stereoscopy", "StereoEFBMonoDepth", bStereoEFBMonoDepth); CHECK_SETTING("Video_Stereoscopy", "StereoDepthPercentage", iStereoDepthPercentage); CHECK_SETTING("Video_Stereoscopy", "StereoConvergenceMinimum", iStereoConvergenceMinimum); CHECK_SETTING("Video_Hacks", "EFBAccessEnable", bEFBAccessEnable); CHECK_SETTING("Video_Hacks", "EFBFastAccess", bEFBFastAccess); CHECK_SETTING("Video_Hacks", "ForceProgressive", bForceProgressive); CHECK_SETTING("Video_Hacks", "EFBToTextureEnable", bSkipEFBCopyToRam); CHECK_SETTING("Video_Hacks", "EFBScaledCopy", bCopyEFBScaled); CHECK_SETTING("Video_Hacks", "EFBEmulateFormatChanges", bEFBEmulateFormatChanges); CHECK_SETTING("Video_Hacks", "BoundingBoxMode", iBBoxMode); CHECK_SETTING("Video", "ProjectionHack", iPhackvalue[0]); CHECK_SETTING("Video", "PH_SZNear", iPhackvalue[1]); CHECK_SETTING("Video", "PH_SZFar", iPhackvalue[2]); CHECK_SETTING("Video", "PH_ExtraParam", iPhackvalue[3]); CHECK_SETTING("Video", "PH_ZNear", sPhackvalue[0]); CHECK_SETTING("Video", "PH_ZFar", sPhackvalue[1]); CHECK_SETTING("Video", "ZTPSpeedupHack", bZTPSpeedHack); CHECK_SETTING("Video", "PerfQueriesEnable", bPerfQueriesEnable); CHECK_SETTING("Video", "FullAsyncShaderCompilation", bFullAsyncShaderCompilation); CHECK_SETTING("Video", "WaitForShaderCompilation", bWaitForShaderCompilation); CHECK_SETTING("Video", "PredictiveFifo", bPredictiveFifo); if (gfx_override_exists) OSD::AddMessage("Warning: Opening the graphics configuration will reset settings and might cause issues!", 10000); }