aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authornotaz2013-01-05 00:06:41 +0200
committernotaz2013-01-05 19:21:12 +0200
commit81edd2b39a4efb991c4eaab15db4dd20ae3eafda (patch)
tree584e9427fbecb0bde0a6af59c54908e58fa089d8
parent0fed3dc3d9799a9db68dd8be4172aafb0e161957 (diff)
downloadpcsx_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.c4
-rw-r--r--frontend/main.h2
-rw-r--r--frontend/plugin_lib.c3
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