From 63d501b629aac90c78d4e96d261e70edede0e786 Mon Sep 17 00:00:00 2001 From: Thomas Harte Date: Thu, 12 Sep 2024 20:45:28 -0400 Subject: [PATCH 1/2] Pull interrupt to start of hsync. --- Machines/AmstradCPC/AmstradCPC.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Machines/AmstradCPC/AmstradCPC.cpp b/Machines/AmstradCPC/AmstradCPC.cpp index 87c05bc7e..e8f78f5d4 100644 --- a/Machines/AmstradCPC/AmstradCPC.cpp +++ b/Machines/AmstradCPC/AmstradCPC.cpp @@ -305,7 +305,7 @@ class CRTCBusHandler { // Per Interrupts in the CPC: "to be confirmed: does gate array count positive or negative edge transitions of HSYNC signal?"; // if you take it as given that display mode is latched as a result of hsync then Pipe Mania seems to imply that the count // occurs on a leading edge and the mode lock on a trailing. - if(was_hsync_ && !state.hsync) { + if(!was_hsync_ && state.hsync) { interrupt_timer_.signal_hsync(); } From 581454db693de4b70098e02f1ffe381124ec0d5d Mon Sep 17 00:00:00 2001 From: Thomas Harte Date: Thu, 12 Sep 2024 20:47:27 -0400 Subject: [PATCH 2/2] Tweak mode latch time too. --- Machines/AmstradCPC/AmstradCPC.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Machines/AmstradCPC/AmstradCPC.cpp b/Machines/AmstradCPC/AmstradCPC.cpp index e8f78f5d4..89ad717c0 100644 --- a/Machines/AmstradCPC/AmstradCPC.cpp +++ b/Machines/AmstradCPC/AmstradCPC.cpp @@ -310,7 +310,7 @@ class CRTCBusHandler { } // Check for a trailing CRTC hsync; if one occurred then that's the trigger potentially to change modes. - if(!was_hsync_ && state.hsync) { + if(was_hsync_ && !state.hsync) { if(mode_ != next_mode_) { mode_ = next_mode_; switch(mode_) {