]> git.unchartedbackwaters.co.uk Git - francis/winuae.git/commitdiff
Check CPU reset immediately.
authorToni Wilen <twilen@winuae.net>
Sat, 1 Apr 2023 08:04:32 +0000 (11:04 +0300)
committerToni Wilen <twilen@winuae.net>
Sat, 1 Apr 2023 08:04:32 +0000 (11:04 +0300)
custom.cpp
drawing.cpp

index 363bef8ddb7427d04eb7d35c25f0d312008f916e..ebb2af0c09909f3a50b3724c56513e916cfce91e 100644 (file)
@@ -13865,7 +13865,11 @@ static void hsync_handler_post(bool onvsync)
        /* See if there's a chance of a copper wait ending this line.  */
        compute_spcflag_copper();
 
-
+       // check reset and process it immediately, don't wait for vsync
+       if (quit_program == -UAE_RESET || quit_program == -UAE_RESET_KEYBOARD || quit_program == -UAE_RESET_HARD) {
+               quit_program = -quit_program;
+               set_special(SPCFLAG_BRK | SPCFLAG_MODE_CHANGE);
+       }
 
 
 #if 0
index 973cb0ba2d307e93fb32fae62550d4b6703e0df0..3e48f3817c452fb17ed8bb6be34df330ae02d472 100644 (file)
@@ -5014,11 +5014,9 @@ void vsync_handle_redraw(int long_field, int lof_changed, uae_u16 bplcon0p, uae_
 
                if (quit_program < 0) {
 #ifdef SAVESTATE
-                       if (!savestate_state) {
-                               if (currprefs.quitstatefile[0]) {
-                                       savestate_initsave(currprefs.quitstatefile, 1, 1, true);
-                                       save_state(currprefs.quitstatefile, _T(""));
-                               }
+                       if (!savestate_state && quit_program == -UAE_QUIT && currprefs.quitstatefile[0]) {
+                               savestate_initsave(currprefs.quitstatefile, 1, 1, true);
+                               save_state(currprefs.quitstatefile, _T(""));
                        }
 #endif
                        quit_program = -quit_program;
@@ -5027,7 +5025,6 @@ void vsync_handle_redraw(int long_field, int lof_changed, uae_u16 bplcon0p, uae_
                        return;
                }
 
-
                if (ad->framecnt == 0) {
                        init_drawing_frame();
                } else if (currprefs.cpu_memory_cycle_exact) {