]> git.unchartedbackwaters.co.uk Git - francis/winuae.git/commitdiff
Fix fast drawing mode sprite garbage in some rare situations
authorToni Wilen <twilen@winuae.net>
Wed, 3 Dec 2025 14:50:41 +0000 (16:50 +0200)
committerToni Wilen <twilen@winuae.net>
Wed, 3 Dec 2025 14:50:41 +0000 (16:50 +0200)
custom.cpp

index fa943b1a117b7e276805e15f83e33f9af2981f34..ac776ebc45a55f88c28d504c9503a7ccd3fc00a3 100644 (file)
@@ -11242,10 +11242,18 @@ static int can_fast_custom(void)
        if (!display_hstart_fastmode) {
                return 0;
        }
-       if (dmaen(DMA_SPRITE)) {
-               if (agnus_vb_active_end_line) {
+       if (agnus_vb_active_end_line) {
+               if (dmaen(DMA_SPRITE)) {
                        return 0;
                }
+               for (int i = 0; i < MAX_SPRITES; i++) {
+                       struct sprite *s = &spr[i];
+                       if (s->dmastate) {
+                               return 0;
+                       }
+               }
+       }
+       if (dmaen(DMA_SPRITE)) {
                int type = getlinetype();
                if (type != LINETYPE_BLANK) {
                        for (int i = 0; i < MAX_SPRITES; i++) {