aboutsummaryrefslogtreecommitdiff
path: root/src/GPU.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/GPU.cpp')
-rw-r--r--src/GPU.cpp7
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;
}