From 8f55e145c0eec900828eaded6e07099ef5c8e5c8 Mon Sep 17 00:00:00 2001 From: danyalzia Date: Tue, 17 Sep 2013 11:33:32 +0500 Subject: [PATCH 1/5] Update variables --- Core/Config.h | 1 + 1 file changed, 1 insertion(+) diff --git a/Core/Config.h b/Core/Config.h index 2a9a3a736f..9d1d6dea22 100644 --- a/Core/Config.h +++ b/Core/Config.h @@ -70,6 +70,7 @@ public: bool bStretchToDisplay; bool bVSync; int iFrameSkip; + bool bFrameSkipUnthrottle; int iWindowX; int iWindowY; From 5550d386d45b28ac167db64e88c70168121d4f95 Mon Sep 17 00:00:00 2001 From: danyalzia Date: Tue, 17 Sep 2013 11:36:09 +0500 Subject: [PATCH 2/5] Update Config.cpp --- Core/Config.cpp | 2 ++ 1 file changed, 2 insertions(+) diff --git a/Core/Config.cpp b/Core/Config.cpp index 52a5df7fa5..0f4b587733 100644 --- a/Core/Config.cpp +++ b/Core/Config.cpp @@ -147,6 +147,7 @@ void Config::Load(const char *iniFileName, const char *controllerIniFilename) graphics->Get("FrameSkip", &iFrameSkip, 0); graphics->Get("FrameRate", &iFpsLimit, 0); + graphics->Get("FrameSkipUnthrottle", &bFrameSkipUnthrottle, true); graphics->Get("ForceMaxEmulatedFPS", &iForceMaxEmulatedFPS, 60); #ifdef USING_GLES2 graphics->Get("AnisotropyLevel", &iAnisotropyLevel, 0); @@ -312,6 +313,7 @@ void Config::Save() { graphics->Set("InternalResolution", iInternalResolution); graphics->Set("FrameSkip", iFrameSkip); graphics->Set("FrameRate", iFpsLimit); + graphics->Set("FrameSkipUnthrottle", bFrameSkipUnthrottle); graphics->Set("ForceMaxEmulatedFPS", iForceMaxEmulatedFPS); graphics->Set("AnisotropyLevel", iAnisotropyLevel); graphics->Set("VertexCache", bVertexCache); From 6e22a26b2323436c0aed261b01ea5a09c50eca67 Mon Sep 17 00:00:00 2001 From: danyalzia Date: Tue, 17 Sep 2013 11:38:16 +0500 Subject: [PATCH 3/5] Update GameSettingsScreen.cpp --- UI/GameSettingsScreen.cpp | 1 + 1 file changed, 1 insertion(+) diff --git a/UI/GameSettingsScreen.cpp b/UI/GameSettingsScreen.cpp index ea9ea13adf..e211473936 100644 --- a/UI/GameSettingsScreen.cpp +++ b/UI/GameSettingsScreen.cpp @@ -114,6 +114,7 @@ void GameSettingsScreen::CreateViews() { graphicsSettings->Add(new CheckBox(&cap60FPS_, gs->T("Force max 60 FPS (helps GoW)"))); static const char *customSpeed[] = {"Unlimited", "25%", "50%", "75%", "100%", "125%", "150%", "200%", "300%"}; graphicsSettings->Add(new PopupMultiChoice(&iAlternateSpeedPercent_, gs->T("Alternative Speed"), customSpeed, 0, ARRAY_SIZE(customSpeed), gs, screenManager())); + graphicsSettings->Add(new CheckBox(&g_Config.bFrameSkipUnthrottle, gs->T("Frame Skipping in Unthrottle"))); graphicsSettings->Add(new ItemHeader(gs->T("Features"))); graphicsSettings->Add(new CheckBox(&g_Config.bHardwareTransform, gs->T("Hardware Transform"))); From 036a180708d6930e58f506ffbc4cb3b4a0708f58 Mon Sep 17 00:00:00 2001 From: danyalzia Date: Tue, 17 Sep 2013 11:41:12 +0500 Subject: [PATCH 4/5] Update sceDisplay.cpp --- Core/HLE/sceDisplay.cpp | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/Core/HLE/sceDisplay.cpp b/Core/HLE/sceDisplay.cpp index b1980bff82..6a5f9720be 100644 --- a/Core/HLE/sceDisplay.cpp +++ b/Core/HLE/sceDisplay.cpp @@ -409,10 +409,9 @@ void DoFrameTiming(bool &throttle, bool &skipFrame, float timestep) { // we have nothing to do here. bool doFrameSkip = g_Config.iFrameSkip != 0; - // On non windows, which is always vsync locked, we need to force frameskip when - // unthrottled. -#ifndef _WIN32 - if (!throttle) { + + + if (!throttle && g_Config.bFrameSkipUnthrottle) { doFrameSkip = true; skipFrame = true; if (numSkippedFrames >= 7) { @@ -420,7 +419,7 @@ void DoFrameTiming(bool &throttle, bool &skipFrame, float timestep) { } return; } -#endif + if (!throttle && !doFrameSkip) return; From 1160737d0bb07d14cd21f59b3cd95b274bd701f7 Mon Sep 17 00:00:00 2001 From: danyalzia Date: Tue, 17 Sep 2013 15:57:07 +0500 Subject: [PATCH 5/5] Update GameSettingsScreen.cpp --- UI/GameSettingsScreen.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/UI/GameSettingsScreen.cpp b/UI/GameSettingsScreen.cpp index e211473936..11c39d16d3 100644 --- a/UI/GameSettingsScreen.cpp +++ b/UI/GameSettingsScreen.cpp @@ -114,7 +114,7 @@ void GameSettingsScreen::CreateViews() { graphicsSettings->Add(new CheckBox(&cap60FPS_, gs->T("Force max 60 FPS (helps GoW)"))); static const char *customSpeed[] = {"Unlimited", "25%", "50%", "75%", "100%", "125%", "150%", "200%", "300%"}; graphicsSettings->Add(new PopupMultiChoice(&iAlternateSpeedPercent_, gs->T("Alternative Speed"), customSpeed, 0, ARRAY_SIZE(customSpeed), gs, screenManager())); - graphicsSettings->Add(new CheckBox(&g_Config.bFrameSkipUnthrottle, gs->T("Frame Skipping in Unthrottle"))); + graphicsSettings->Add(new ItemHeader(gs->T("Features"))); graphicsSettings->Add(new CheckBox(&g_Config.bHardwareTransform, gs->T("Hardware Transform")));