diff --git a/src/core/gpu.cpp b/src/core/gpu.cpp index f5416862e..fdd358e8a 100644 --- a/src/core/gpu.cpp +++ b/src/core/gpu.cpp @@ -180,6 +180,9 @@ void GPU::Reset(bool clear_vram) std::memset(g_gpu_clut, 0, sizeof(g_gpu_clut)); } + // Cancel VRAM writes. + m_blitter_state = BlitterState::Idle; + // Force event to reschedule itself. m_crtc_tick_event->Deactivate(); m_command_tick_event->Deactivate(); diff --git a/src/core/gpu_hw.cpp b/src/core/gpu_hw.cpp index 19e7dfd48..003ed6b7f 100644 --- a/src/core/gpu_hw.cpp +++ b/src/core/gpu_hw.cpp @@ -232,11 +232,11 @@ bool GPU_HW::Initialize() void GPU_HW::Reset(bool clear_vram) { - GPU::Reset(clear_vram); - if (m_batch_vertex_ptr) UnmapGPUBuffer(0, 0); + GPU::Reset(clear_vram); + if (m_sw_renderer) m_sw_renderer->Reset();