]> git.unchartedbackwaters.co.uk Git - francis/winuae.git/commitdiff
Last D write was done even if D channel was not enabled.
authorToni Wilen <twilen@winuae.net>
Wed, 10 Feb 2021 17:05:03 +0000 (19:05 +0200)
committerToni Wilen <twilen@winuae.net>
Wed, 10 Feb 2021 17:05:03 +0000 (19:05 +0200)
blitter.cpp

index 01c63bca1091de5d62d566089ab5813945e70e74..e8b185b4c29932624f5a178664671b1b5374b45b 100644 (file)
@@ -462,7 +462,7 @@ static void blitter_maybe_done_early(int hpos)
        if (blitline) {
                blitter_done(hpos);
        } else {
-               if (ddat1use) {
+               if (ddat1use && (bltcon0 & 0x100)) {
                        blt_info.blit_finald = 1 + 2;
                        blitter_interrupt(hpos, 0);
                } else {
@@ -1077,7 +1077,9 @@ static void blitter_next_cycle(void)
        if (shifter_out) {
                if (!blitline) {
                        ddat1 = blitter_doblit();
-                       ddat1use = true;
+                       if (bltcon0 & 0x100) {
+                               ddat1use = true;
+                       }
                }
                blitter_hcounter++;
                if (blitter_hcounter == blt_info.hblitsize) {
@@ -1118,8 +1120,8 @@ static void blitter_next_cycle(void)
 static void blitter_doddma_new(int hpos)
 {
        record_dma_blit(0x00, ddat1, bltdpt, hpos);
-       chipmem_agnus_wput2 (bltdpt, ddat1);
-       alloc_cycle_blitter (hpos, &bltdpt, 4);
+       chipmem_agnus_wput2(bltdpt, ddat1);
+       alloc_cycle_blitter(hpos, &bltdpt, 4);
 
        if (!blitline) {
                bltdpt += blit_add;
@@ -1989,7 +1991,7 @@ uae_u8 *save_blitter_new (int *len, uae_u8 *dstptr)
        save_u16(0x1234);
 
        save_u8(blt_info.blitter_nasty);
-       save_u8(shifter[0] | (shifter[1] << 1) | (shifter[2] << 2) | (shifter[3] << 3));
+       save_u8((shifter[0] ? 1 : 0) | (shifter[1] ? 2 : 0) | (shifter[2] ? 4 : 0) | (shifter[3] ? 8 : 0));
        save_u8(blt_info.blit_finald);
        save_u8(blit_ovf);