From b2df18f51715608453d8f23ba1076d9fdb0e8349 Mon Sep 17 00:00:00 2001 From: cracyc Date: Sat, 20 May 2023 19:54:07 -0500 Subject: x68k: wait before setting gvram clear status bit --- hash/x68k_flop.xml | 1 - src/mame/sharp/x68k_crtc.cpp | 13 +++++++++---- 2 files changed, 9 insertions(+), 5 deletions(-) diff --git a/hash/x68k_flop.xml b/hash/x68k_flop.xml index 6e1c9db95e5..1a135b4579c 100644 --- a/hash/x68k_flop.xml +++ b/hash/x68k_flop.xml @@ -3115,7 +3115,6 @@ Most info on release dates and Jpn titles come from the following (wonderful) re - Cueb Runner 1990 diff --git a/src/mame/sharp/x68k_crtc.cpp b/src/mame/sharp/x68k_crtc.cpp index 0fadfbaf4df..893f3175375 100644 --- a/src/mame/sharp/x68k_crtc.cpp +++ b/src/mame/sharp/x68k_crtc.cpp @@ -140,8 +140,13 @@ void x68k_crtc_device::text_copy(unsigned src, unsigned dest, u8 planes) TIMER_CALLBACK_MEMBER(x68k_crtc_device::operation_end) { - int bit = param; - m_operation &= ~bit; + if(!(m_operation & param)) + { + m_operation |= param; + m_operation_end_timer->adjust(attotime::from_msec(5), param); + } + else + m_operation &= ~param; } void x68k_crtc_device::refresh_mode() @@ -414,7 +419,7 @@ void x68k_crtc_device::crtc_w(offs_t offset, u16 data, u16 mem_mask) refresh_mode(); break; case 576: // operation register - m_operation = data; + m_operation = data & ~2; if (data & 0x02) // high-speed graphic screen clear { // this is based on the docs except for the higher color depth modes which isn't @@ -461,7 +466,7 @@ void x68k_crtc_device::crtc_w(offs_t offset, u16 data, u16 mem_mask) } } - m_operation_end_timer->adjust(attotime::from_msec(10), 0x02); // time taken to do operation is a complete guess. + m_operation_end_timer->adjust(attotime::from_msec(5), 0x02); // time taken to do operation is a complete guess. } break; } -- cgit v1.2.3