From 3d1c417e15eee5e58d6de50246b2ee297e57ac3d Mon Sep 17 00:00:00 2001 From: Oxore Date: Sun, 26 May 2024 23:09:42 +0300 Subject: Fix hang up when MODESET2_IE0 is disabled --- vdp.cpp | 2 +- vdp.hpp | 7 ++++++- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/vdp.cpp b/vdp.cpp index df8722d..47e6d6e 100644 --- a/vdp.cpp +++ b/vdp.cpp @@ -559,8 +559,8 @@ bool VDP::Scanline() if (MODESET2_IE0_GET(mode_set_2)) { m68k_set_irq(M68K_IRQ_6); _status.vblank = true; - return true; } + return true; } _status.vblank = false; return false; diff --git a/vdp.hpp b/vdp.hpp index 1b67625..f62345d 100644 --- a/vdp.hpp +++ b/vdp.hpp @@ -51,7 +51,12 @@ public: constexpr VDP(const uint32_t base_address_a): base_address(base_address_a) {} uint32_t Read(uint32_t offset, enum bitness); void Write(uint32_t offset, enum bitness, uint32_t value); - bool Scanline(); // Returns true if display disabled or vblank happened + /** Renders a horizontal line (scan line). + * + * Returns true if display disabled or VBLANK could've had happened, even if + * VBLANK is disabled (MODESET2_IE0 is 0). + * */ + bool Scanline(); void Reset(); constexpr const uint32_t* GetRenderedBuffer() const { return _rendered_buffer; } static const char* RegIDToString(RegID); -- cgit v1.2.3