diff --git a/src/core/gpu.cpp b/src/core/gpu.cpp index de8b77f24..5180eaaa8 100644 --- a/src/core/gpu.cpp +++ b/src/core/gpu.cpp @@ -759,9 +759,15 @@ void GPU::CRTCTickEvent(TickCount ticks) // start the new frame m_crtc_state.current_scanline = 0; if (m_GPUSTAT.vertical_interlace) + { m_crtc_state.interlaced_field ^= 1u; + m_GPUSTAT.interlaced_field = m_crtc_state.interlaced_field; + } else + { m_crtc_state.interlaced_field = 0; + m_GPUSTAT.interlaced_field = 0u; // new GPU = 1, old GPU = 0 + } } } diff --git a/src/core/gpu.h b/src/core/gpu.h index 3ebe49898..b91981071 100644 --- a/src/core/gpu.h +++ b/src/core/gpu.h @@ -489,7 +489,7 @@ protected: BitField draw_to_displayed_field; BitField set_mask_while_drawing; BitField check_mask_before_draw; - BitField interlaced_field; + BitField interlaced_field; BitField reverse_flag; BitField texture_disable; BitField horizontal_resolution_2;