1.31 release
[libpicofe.git] / gp2x / emu.c
index 7c63cdb..f43f9b7 100644 (file)
@@ -54,13 +54,14 @@ extern int crashed_940;
 static short sndBuffer[2*44100/50];\r
 static char noticeMsg[64];                                     // notice msg to draw\r
 static struct timeval noticeMsgTime = { 0, 0 };        // when started showing\r
-static int reset_timing, osd_fps_x;\r
+static int osd_fps_x;\r
 static int combo_keys = 0, combo_acts = 0;     // keys and actions which need button combos\r
 static int gp2x_old_gamma = 100;\r
 static unsigned char *movie_data = NULL;\r
 static int movie_size = 0;\r
 unsigned char *framebuff = 0;  // temporary buffer for alt renderer\r
 int state_slot = 0;\r
+int reset_timing = 0;\r
 \r
 /*\r
 // tmp\r
@@ -789,6 +790,9 @@ static void emu_msg_cb(const char *msg)
        }\r
        gettimeofday(&noticeMsgTime, 0);\r
        noticeMsgTime.tv_sec -= 2;\r
+\r
+       /* assumption: emu_msg_cb gets called only when something slow is about to happen */\r
+       reset_timing = 1;\r
 }\r
 \r
 static void emu_state_cb(const char *str)\r
@@ -1167,7 +1171,9 @@ void emu_Loop(void)
                                if (frames_shown > frames_done) frames_shown = frames_done;\r
                        }\r
                }\r
-\r
+#if 0\r
+               sprintf(fpsbuff, "%05i", Pico.m.frame_count);\r
+#endif\r
                lim_time = (frames_done+1) * target_frametime;\r
                if(currentConfig.Frameskip >= 0) { // frameskip enabled\r
                        for(i = 0; i < currentConfig.Frameskip; i++) {\r
@@ -1191,7 +1197,7 @@ void emu_Loop(void)
                                continue;\r
                        }\r
                        updateKeys();\r
-                       SkipFrame(tval.tv_usec < lim_time+target_frametime); frames_done++;\r
+                       SkipFrame(tval.tv_usec < lim_time+target_frametime*2); frames_done++;\r
                        continue;\r
                }\r
 \r