From a28098c4f87a82e8647f44c596d2a01d42bc0e82 Mon Sep 17 00:00:00 2001 From: refractionpcsx2 Date: Sun, 1 May 2022 12:44:34 +0100 Subject: [PATCH] GS: Account for frame offset in output circuit --- pcsx2/GS/Renderers/HW/GSRendererHW.cpp | 2 +- pcsx2/GS/Renderers/SW/GSRendererSW.cpp | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/pcsx2/GS/Renderers/HW/GSRendererHW.cpp b/pcsx2/GS/Renderers/HW/GSRendererHW.cpp index dd32f1671a..4df6c9e26d 100644 --- a/pcsx2/GS/Renderers/HW/GSRendererHW.cpp +++ b/pcsx2/GS/Renderers/HW/GSRendererHW.cpp @@ -269,7 +269,7 @@ GSTexture* GSRendererHW::GetOutput(int i, int& y_offset) const int videomode = static_cast(GetVideoMode()) - 1; int display_height = VideoModeOffsets[videomode].y * ((isinterlaced() && !m_regs->SMODE2.FFMD) ? 2 : 1); - int fb_height = std::min(GetFramebufferHeight(), display_height); + int fb_height = std::min(GetFramebufferHeight(), display_height) + DISPFB.DBY; // TRACE(_T("[%d] GetOutput %d %05x (%d)\n"), (int)m_perfmon.GetFrame(), i, (int)TEX0.TBP0, (int)TEX0.PSM); GSTexture* t = NULL; diff --git a/pcsx2/GS/Renderers/SW/GSRendererSW.cpp b/pcsx2/GS/Renderers/SW/GSRendererSW.cpp index 175a2b054f..3ce1b43160 100644 --- a/pcsx2/GS/Renderers/SW/GSRendererSW.cpp +++ b/pcsx2/GS/Renderers/SW/GSRendererSW.cpp @@ -144,7 +144,7 @@ GSTexture* GSRendererSW::GetOutput(int i, int& y_offset) const int videomode = static_cast(GetVideoMode()) - 1; int display_height = VideoModeOffsets[videomode].y * ((isinterlaced() && !m_regs->SMODE2.FFMD) ? 2 : 1); - int h = std::min(GetFramebufferHeight(), display_height); + int h = std::min(GetFramebufferHeight(), display_height) + DISPFB.DBY; // TODO: round up bottom