From: Toni Wilen Date: Sun, 15 Sep 2024 14:59:05 +0000 (+0300) Subject: Both COPxJMP strobe emulation update X-Git-Tag: 5310~16 X-Git-Url: https://git.unchartedbackwaters.co.uk/w/?a=commitdiff_plain;h=5bdf502ccec049b731a6bf63fbaee0062bbbc554;p=francis%2Fwinuae.git Both COPxJMP strobe emulation update --- diff --git a/custom.cpp b/custom.cpp index 8087bace..8623228b 100644 --- a/custom.cpp +++ b/custom.cpp @@ -8633,8 +8633,6 @@ static void compute_spcflag_copper(void); // normal COPJMP write: takes 2 more cycles static void COPJMP(int num, int vblank) { - bool wasstopped = cop_state.state == COP_stop && !vblank; - unset_special(SPCFLAG_COPPER); cop_state.ignore_next = 0; @@ -8677,7 +8675,11 @@ static void COPJMP(int num, int vblank) } cop_state.vblankip = cop1lc; copper_enabled_thisline = 0; - cop_state.strobe |= num; + if (vblank) { + cop_state.strobe = num; + } else { + cop_state.strobe |= num; + } cop_state.last_strobe = num; if (custom_disabled) { @@ -8685,12 +8687,7 @@ static void COPJMP(int num, int vblank) return; } - if (wasstopped) { - /* dma disabled, copper idle and accessed both COPxJMPs -> copper stops! */ - cop_state.state = COP_stop; - } else if (is_copper_dma(false)) { - compute_spcflag_copper(); - } + compute_spcflag_copper(); } STATIC_INLINE void COPCON(uae_u16 a) @@ -11086,11 +11083,11 @@ static void do_copper_fetch(int hpos, uae_u16 id) } if (reg == 0x88) { - cop_state.strobe |= 1; + cop_state.strobe = 1; cop_state.last_strobe = 1; cop_state.state = COP_strobe_delay1; } else if (reg == 0x8a) { - cop_state.strobe |= 2; + cop_state.strobe = 2; cop_state.last_strobe = 2; cop_state.state = COP_strobe_delay1; } else {