summaryrefslogtreecommitdiff
path: root/Source
diff options
context:
space:
mode:
authorsl1nk3.s <sl1nk3.s@gmail.com>2009-08-02 17:04:21 +0000
committersl1nk3.s <sl1nk3.s@gmail.com>2009-08-02 17:04:21 +0000
commita9cf2e09d06950505b940262f85bb01403d2dca6 (patch)
treeeb5be41972ca27a37518a05e049ec22b1f6d9d46 /Source
parenta56a07056d917b216f6fde309adc8599d11d4607 (diff)
This should fix the framelimiter, looks a bit inaccurate though (was it like that already ?)
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@3929 8ced0084-cf51-0410-be5f-012b33b47a6e
Diffstat (limited to 'Source')
-rw-r--r--Source/Core/Core/Src/Core.cpp36
1 files changed, 19 insertions, 17 deletions
diff --git a/Source/Core/Core/Src/Core.cpp b/Source/Core/Core/Src/Core.cpp
index 046674085e..6e40c63adc 100644
--- a/Source/Core/Core/Src/Core.cpp
+++ b/Source/Core/Core/Src/Core.cpp
@@ -602,29 +602,31 @@ void Callback_VideoCopiedToXFB(bool video_update)
static Common::Timer Timer;
static u32 frames = 0;
static u32 videoupd = 0;
+ static u64 old_frametime=0;
if (video_update)
videoupd++;
else
+ {
frames++;
-
- // Custom frame limiter
- // ŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻ
- u32 targetfps = (SConfig::GetInstance().m_Framelimit)*5;
- static u64 old_frametime=0;
- u64 new_frametime;
- s16 wait_frametime;
-
- if (targetfps > 0)
- {
- new_frametime = Timer.GetTimeDifference() - old_frametime;
- old_frametime = Timer.GetTimeDifference();
- wait_frametime = (1000/targetfps) - (u16)new_frametime;
- if (targetfps < 35)
- wait_frametime--;
- if (wait_frametime > 0)
- Common::SleepCurrentThread(wait_frametime*2);
+ // Custom frame limiter
+ // ŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻ
+
+ u32 targetfps = (SConfig::GetInstance().m_Framelimit)*5;
+ u64 new_frametime;
+ s16 wait_frametime;
+
+ if (targetfps > 0)
+ {
+ new_frametime = Timer.GetTimeDifference() - old_frametime;
+ old_frametime = Timer.GetTimeDifference();
+ wait_frametime = (1000/targetfps) - (u16)new_frametime;
+ if (targetfps < 35)
+ wait_frametime--;
+ if (wait_frametime > 0)
+ Common::SleepCurrentThread(wait_frametime*2);
+ }
}
if (Timer.GetTimeDifference() >= 1000)