From 6112e296cddf44463ad14fe0cbe2feaa783100fa Mon Sep 17 00:00:00 2001 From: Toni Wilen Date: Wed, 19 Nov 2025 19:32:00 +0200 Subject: [PATCH] Agnus internal VB signal fix --- custom.cpp | 27 ++++++++++++++------------- 1 file changed, 14 insertions(+), 13 deletions(-) diff --git a/custom.cpp b/custom.cpp index 657f592c..bb1b663d 100644 --- a/custom.cpp +++ b/custom.cpp @@ -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(); } -- 2.47.3