]> git.unchartedbackwaters.co.uk Git - francis/winuae.git/commitdiff
State restore cpu trace/blitter wait fix.
authorToni Wilen <twilen@winuae.net>
Sat, 1 Apr 2023 08:02:58 +0000 (11:02 +0300)
committerToni Wilen <twilen@winuae.net>
Sat, 1 Apr 2023 08:02:58 +0000 (11:02 +0300)
blitter.cpp
newcpu.cpp

index b983c32f64780ea2049e205c65e7f6f1c3873ec6..da3772e0d7563dc40d922b8cb87154d878f87ea1 100644 (file)
@@ -2174,9 +2174,9 @@ int blitnasty (void)
 {
        int cycles, ccnt;
        if (!blt_info.blit_main)
-               return 0;
+               return -1;
        if (!dmaen(DMA_BLITTER))
-               return 0;
+               return -1;
        if (blitter_cycle_exact) {
                return -1;
        }
index f53b678e6dcc9cb8567a07128cf2795dc1069044..bf74d13590904edfb6c43b8feb7c1f845ecea64c 100644 (file)
@@ -432,14 +432,14 @@ static bool check_trace (void)
        return true;
 }
 
-static bool get_trace (uaecptr addr, int accessmode, int size, uae_u32 *data)
+static bool get_trace(uaecptr addr, int accessmode, int size, uae_u32 *data)
 {
        int mode = accessmode | (size << 4);
        for (int i = 0; i < cputrace.memoryoffset; i++) {
                struct cputracememory *ctm = &cputrace.ctm[i];
                if (ctm->addr == addr && ctm->mode == mode) {
                        ctm->mode = 0;
-                       write_log (_T("CPU trace: GET %d: PC=%08x %08x=%08x %d %d %08x/%08x/%08x %d/%d (%08x)\n"),
+                       write_log(_T("CPU trace: GET %d: PC=%08x %08x=%08x %d %d %08x/%08x/%08x %d/%d (%08x)\n"),
                                i, cputrace.pc, addr, ctm->data, accessmode, size,
                                cputrace.cyclecounter, cputrace.cyclecounter_pre, cputrace.cyclecounter_post,
                                cputrace.readcounter, cputrace.writecounter, get_cycles ());
@@ -477,7 +477,7 @@ static bool get_trace (uaecptr addr, int accessmode, int size, uae_u32 *data)
                                        }
                                }
                        }
-                       check_trace ();
+                       check_trace();
                        *data = ctm->data;
                        return false;
                }
@@ -485,15 +485,17 @@ static bool get_trace (uaecptr addr, int accessmode, int size, uae_u32 *data)
        if (cputrace.cyclecounter_post) {
                int c = cputrace.cyclecounter_post;
                cputrace.cyclecounter_post = 0;
-               check_trace ();
-               check_trace2 ();
-               x_do_cycles (c);
+               check_trace();
+               check_trace2();
+               x_do_cycles(c);
                return false;
        }
-       gui_message (_T("CPU trace: GET %08x %d %d NOT FOUND!\n"), addr, accessmode, size);
-       check_trace ();
+       if (cputrace.memoryoffset > 0 || cputrace.cyclecounter_pre) {
+               gui_message(_T("CPU trace: GET %08x %d %d NOT FOUND!\n"), addr, accessmode, size);
+       }
+       check_trace();
        *data = 0;
-       return false;
+       return true;
 }
 
 static uae_u32 cputracefunc_x_prefetch (int o)