notaz.gp2x.de
/
libpicofe.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
fix save/load of some vars
[libpicofe.git]
/
common
/
emu.c
diff --git
a/common/emu.c
b/common/emu.c
index
5bd34e8
..
7c406b5
100644
(file)
--- a/
common/emu.c
+++ b/
common/emu.c
@@
-1325,10
+1325,14
@@
void emu_loop(void)
\r
if (timestamp - timestamp_base >= ms_to_ticks(1000))
\r
{
\r
\r
if (timestamp - timestamp_base >= ms_to_ticks(1000))
\r
{
\r
- if (
PsndOut == 0
&& currentConfig.Frameskip >= 0)
\r
+ if (
(currentConfig.EmuOpt & EOPT_NO_FRMLIMIT)
&& currentConfig.Frameskip >= 0)
\r
pframes_done = 0;
\r
pframes_done = 0;
\r
- else
\r
+ else
{
\r
pframes_done -= target_fps;
\r
pframes_done -= target_fps;
\r
+ /* don't allow it to drift during heavy slowdowns */
\r
+ if (pframes_done < -2)
\r
+ pframes_done = -2;
\r
+ }
\r
timestamp_base += ms_to_ticks(1000);
\r
}
\r
\r
timestamp_base += ms_to_ticks(1000);
\r
}
\r
\r
@@
-1343,7
+1347,7
@@
void emu_loop(void)
pframes_done++; frames_done++;
\r
diff_lim += target_frametime;
\r
\r
pframes_done++; frames_done++;
\r
diff_lim += target_frametime;
\r
\r
- if (
PsndOut && !reset_timing) { // do framelimitting if sound is enabled
\r
+ if (
!(currentConfig.EmuOpt & EOPT_NO_FRMLIMIT)) {
\r
timestamp = get_ticks();
\r
diff = timestamp - timestamp_base;
\r
if (diff < diff_lim) // we are too fast
\r
timestamp = get_ticks();
\r
diff = timestamp - timestamp_base;
\r
if (diff < diff_lim) // we are too fast
\r
@@
-1369,7
+1373,7
@@
void emu_loop(void)
PicoFrame();
\r
\r
/* frame limiter */
\r
PicoFrame();
\r
\r
/* frame limiter */
\r
- if (!reset_timing &&
(PsndOut != NULL || currentConfig.Frameskip < 0
))
\r
+ if (!reset_timing &&
!(currentConfig.EmuOpt & EOPT_NO_FRMLIMIT
))
\r
{
\r
timestamp = get_ticks();
\r
diff = timestamp - timestamp_base;
\r
{
\r
timestamp = get_ticks();
\r
diff = timestamp - timestamp_base;
\r