diff options
Diffstat (limited to 'src/GPU.cpp')
-rw-r--r-- | src/GPU.cpp | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/src/GPU.cpp b/src/GPU.cpp index cbd1343..de229b3 100644 --- a/src/GPU.cpp +++ b/src/GPU.cpp @@ -1061,6 +1061,12 @@ void FinishFrame(u32 lines) AssignFramebuffers(); TotalScanlines = lines; + + if (GPU3D::AbortFrame) + { + GPU3D::RestartFrame(); + GPU3D::AbortFrame = false; + } } void StartScanline(u32 line) @@ -1180,6 +1186,7 @@ void SetVCount(u16 val) // 3D engine seems to give up on the current frame in that situation, repeating the last two scanlines // TODO: also check the various DMA types that can be involved + GPU3D::AbortFrame |= NextVCount != val; NextVCount = val; } |