]> git.unchartedbackwaters.co.uk Git - francis/winuae.git/commitdiff
Agnus internal VB signal fix
authorToni Wilen <twilen@winuae.net>
Wed, 19 Nov 2025 17:32:00 +0000 (19:32 +0200)
committerToni Wilen <twilen@winuae.net>
Wed, 19 Nov 2025 17:32:00 +0000 (19:32 +0200)
custom.cpp

index 657f592c5c3f6d741f403782468c46c5dc82c393..bb1b663d49b19495e44f0961dd743f3cf824534a 100644 (file)
@@ -10497,7 +10497,9 @@ static void check_vsyncs(void)
 
        if ((agnusa1000 && vpos == 0) || (!agnusa1000 && vpos == maxvpos + lof_store - 1)) {
                agnus_bsvb = true;
-               agnus_vb = 2;
+               if (!agnus_vb) {
+                       agnus_vb = 2;
+               }
                agnus_vb_start_line = true;
                update_agnus_vb();
        }
@@ -11846,18 +11848,6 @@ static void check_hsyncs_hardwired(void)
                        }
                }
        }
-
-       if (hp == 2) {
-               if (agnus_vb > 1) {
-                       agnus_vb--;
-                       update_agnus_vb();
-#ifdef DEBUGGER
-                       if (debug_dma) {
-                               record_dma_event_agnus(AGNUS_EVENT_HW_VB, true);
-                       }
-#endif
-               }
-       }
 }
 
 static void check_hsyncs_programmed(void)
@@ -11965,6 +11955,17 @@ static void check_hsyncs(void)
 {
        int hp = agnus_hpos;
 
+       // agnus_vb 1 CCK delay
+       if (agnus_vb > 1) {
+               agnus_vb--;
+               update_agnus_vb();
+#ifdef DEBUGGER
+               if (debug_dma) {
+                       record_dma_event_agnus(AGNUS_EVENT_HW_VB, true);
+               }
+#endif
+       }
+
        if (hp < HW_HPOS_TABLE_MAX && hw_hpos_table[hp]) {
                check_hsyncs_hardwired();
        }