X-Git-Url: https://notaz.gp2x.de/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=drivers%2Fgp2x%2Fthrottle.c;h=b6b628ce392f3099498dd58f54b31b3b25b750ec;hb=c4980f9edd806014286d57aee1cbe5e73b803e46;hp=81cd916702cfaee58651f2c426b2b95bbca47b38;hpb=35868d35201adb0e4066584d1145c920f5be9b03;p=fceu.git diff --git a/drivers/gp2x/throttle.c b/drivers/gp2x/throttle.c index 81cd916..b6b628c 100644 --- a/drivers/gp2x/throttle.c +++ b/drivers/gp2x/throttle.c @@ -1,5 +1,6 @@ #include #include "main.h" +#include "gp2x.h" #include "throttle.h" #if 0 @@ -48,7 +49,7 @@ INLINE void SpeedThrottle(void) #else extern uint8 PAL; -extern int FSkip, FSkip_setting; +extern int FSkip; static int usec_aim = 0, usec_done = 0; static int skip_count = 0; @@ -73,21 +74,22 @@ INLINE void SpeedThrottle(void) usec_done += tv_now.tv_usec - tv_prev.tv_usec; #ifdef FRAMESKIP - if (FSkip_setting >= 0) + if (Settings.frameskip >= 0) { - if (skip_count >= FSkip_setting) + if (skip_count >= Settings.frameskip) skip_count = 0; else { skip_count++; FSkip = 1; } } - else if (usec_done > usec_aim) + else if (usec_done > usec_aim + 1024*4) { /* auto frameskip */ - if (usec_done - usec_aim > 150000) - usec_done = usec_aim = 0; // too much behind, try to recover.. - FSkip = 1; + if (usec_done - usec_aim > 1024*32) + usec_done = usec_aim = 1; // too much behind, try to recover.. + else + FSkip = 1; tv_prev = tv_now; return; }