diff options
author | notaz | 2013-01-05 00:06:41 +0200 |
---|---|---|
committer | notaz | 2013-01-05 19:21:12 +0200 |
commit | 81edd2b39a4efb991c4eaab15db4dd20ae3eafda (patch) | |
tree | 584e9427fbecb0bde0a6af59c54908e58fa089d8 | |
parent | 0fed3dc3d9799a9db68dd8be4172aafb0e161957 (diff) | |
download | pcsx_rearmed-81edd2b39a4efb991c4eaab15db4dd20ae3eafda.tar.gz pcsx_rearmed-81edd2b39a4efb991c4eaab15db4dd20ae3eafda.tar.bz2 pcsx_rearmed-81edd2b39a4efb991c4eaab15db4dd20ae3eafda.zip |
frontend: don't update during reset
otherwise update thread may collect input events that really
belong to UI. Another hack :(
-rw-r--r-- | frontend/main.c | 4 | ||||
-rw-r--r-- | frontend/main.h | 2 | ||||
-rw-r--r-- | frontend/plugin_lib.c | 3 |
3 files changed, 7 insertions, 2 deletions
diff --git a/frontend/main.c b/frontend/main.c index bd48898..43a1a03 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 45e0aeb..d971890 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 472a1b2..dfff868 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 |