]> git.unchartedbackwaters.co.uk Git - francis/winuae.git/commitdiff
BPLCON4 non-zero + border sprites special case HAM fix.
authorToni Wilen <twilen@winuae.net>
Fri, 22 Feb 2019 14:37:58 +0000 (16:37 +0200)
committerToni Wilen <twilen@winuae.net>
Fri, 22 Feb 2019 14:37:58 +0000 (16:37 +0200)
drawing.cpp

index 41111e669c710b3b49e4b26ca7967d9240c480a1..5fd159c49c184eed5a49b5820de0cafae254baa7 100644 (file)
@@ -2328,14 +2328,28 @@ static void clear_bitplane_border_aga (void)
        if (shift < 0) {
                shift = -shift;
                len = (real_playfield_start - playfield_start) << shift;
-               memset (pixdata.apixels + pixels_offset + (playfield_start << shift), v, len);
+               int offset = playfield_start << shift;
+               memset (pixdata.apixels + pixels_offset + offset, v, len);
+               if (bplham)
+                       memset(ham_linebuf + pixels_offset + offset, v, len * sizeof(uae_u32));
+
                len = (playfield_end - real_playfield_end) << shift;
-               memset (pixdata.apixels + pixels_offset + (real_playfield_end << shift), v, len);
+               offset = real_playfield_end << shift;
+               memset (pixdata.apixels + pixels_offset + offset, v, len);
+               if (bplham)
+                       memset(ham_linebuf + pixels_offset + offset, v, len * sizeof(uae_u32));
        } else {
                len = (real_playfield_start - playfield_start) >> shift;
-               memset (pixdata.apixels + pixels_offset + (playfield_start >> shift), v, len);
+               int offset = playfield_start >> shift;
+               memset (pixdata.apixels + pixels_offset + offset, v, len);
+               if (bplham)
+                       memset(ham_linebuf + pixels_offset + offset, v, len * sizeof(uae_u32));
+
                len = (playfield_end - real_playfield_end) >> shift;
-               memset (pixdata.apixels + pixels_offset + (real_playfield_end >> shift), v, len);
+               offset = real_playfield_end >> shift;
+               memset (pixdata.apixels + pixels_offset + offset, v, len);
+               if (bplham)
+                       memset(ham_linebuf + pixels_offset + offset, v, len * sizeof(uae_u32));
        }
 }
 #endif