X-Git-Url: https://notaz.gp2x.de/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=gp2x%2Femu.c;h=f43f9b72b4d3c8d50d867169669fbf9a1a6de945;hb=e5589947f51075b275b4f8555b40eccdb01e3f7c;hp=7c63cdb4fd041a717ea6ba46510de67a2bf98ebe;hpb=d9a189437aa503963b96fe382883723d40eebef6;p=libpicofe.git diff --git a/gp2x/emu.c b/gp2x/emu.c index 7c63cdb..f43f9b7 100644 --- a/gp2x/emu.c +++ b/gp2x/emu.c @@ -54,13 +54,14 @@ extern int crashed_940; static short sndBuffer[2*44100/50]; static char noticeMsg[64]; // notice msg to draw static struct timeval noticeMsgTime = { 0, 0 }; // when started showing -static int reset_timing, osd_fps_x; +static int osd_fps_x; static int combo_keys = 0, combo_acts = 0; // keys and actions which need button combos static int gp2x_old_gamma = 100; static unsigned char *movie_data = NULL; static int movie_size = 0; unsigned char *framebuff = 0; // temporary buffer for alt renderer int state_slot = 0; +int reset_timing = 0; /* // tmp @@ -789,6 +790,9 @@ static void emu_msg_cb(const char *msg) } gettimeofday(¬iceMsgTime, 0); noticeMsgTime.tv_sec -= 2; + + /* assumption: emu_msg_cb gets called only when something slow is about to happen */ + reset_timing = 1; } static void emu_state_cb(const char *str) @@ -1167,7 +1171,9 @@ void emu_Loop(void) if (frames_shown > frames_done) frames_shown = frames_done; } } - +#if 0 + sprintf(fpsbuff, "%05i", Pico.m.frame_count); +#endif lim_time = (frames_done+1) * target_frametime; if(currentConfig.Frameskip >= 0) { // frameskip enabled for(i = 0; i < currentConfig.Frameskip; i++) { @@ -1191,7 +1197,7 @@ void emu_Loop(void) continue; } updateKeys(); - SkipFrame(tval.tv_usec < lim_time+target_frametime); frames_done++; + SkipFrame(tval.tv_usec < lim_time+target_frametime*2); frames_done++; continue; }