From: notaz Date: Fri, 4 Jan 2013 22:06:41 +0000 (+0200) Subject: frontend: don't update during reset X-Git-Tag: r18~8 X-Git-Url: https://notaz.gp2x.de/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=81edd2b39a4efb991c4eaab15db4dd20ae3eafda;p=pcsx_rearmed.git frontend: don't update during reset otherwise update thread may collect input events that really belong to UI. Another hack :( --- diff --git a/frontend/main.c b/frontend/main.c index bd488989..43a1a032 100644 --- a/frontend/main.c +++ b/frontend/main.c @@ -48,7 +48,7 @@ extern int iUseInterpolation; extern int iXAPitch; extern int iVolume; -int ready_to_go; +int ready_to_go, g_resetting; unsigned long gpuDisp; char cfgfile_basename[MAXPATHLEN]; int state_slot; @@ -676,6 +676,7 @@ void SysReset() { // so we need to prevent updateLace() call.. void *real_lace = GPU_updateLace; GPU_updateLace = dummy_lace; + g_resetting = 1; // reset can run code, timing must be set pl_timing_prepare(Config.PsxType); @@ -686,6 +687,7 @@ void SysReset() { CDR_stop(); GPU_updateLace = real_lace; + g_resetting = 0; } void SysClose() { diff --git a/frontend/main.h b/frontend/main.h index 45e0aebb..d9718906 100644 --- a/frontend/main.h +++ b/frontend/main.h @@ -52,7 +52,7 @@ int emu_load_state(int slot); void set_cd_image(const char *fname); extern unsigned long gpuDisp; -extern int ready_to_go; +extern int ready_to_go, g_resetting; extern char hud_msg[64]; extern int hud_new_msg; diff --git a/frontend/plugin_lib.c b/frontend/plugin_lib.c index 472a1b2c..dfff8681 100644 --- a/frontend/plugin_lib.c +++ b/frontend/plugin_lib.c @@ -606,6 +606,9 @@ void pl_frame_limit(void) struct timeval now; int diff, usadj; + if (g_resetting) + return; + vsync_cnt++; /* doing input here because the pad is polled