diff options
Diffstat (limited to 'frontend')
-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 |