From 4d921cc9f9f404d728a49c513a29c265fd30fa6d Mon Sep 17 00:00:00 2001 From: refractionpcsx2 Date: Sat, 17 Jun 2023 13:48:46 +0100 Subject: [PATCH] GS: Fix up overscan offsets. Stop using 3:2 for overscan. --- pcsx2/GS/GSState.h | 4 ++-- pcsx2/GS/Renderers/Common/GSRenderer.cpp | 8 ++++---- pcsx2/VMManager.cpp | 2 +- 3 files changed, 7 insertions(+), 7 deletions(-) diff --git a/pcsx2/GS/GSState.h b/pcsx2/GS/GSState.h index 8f243e21b7..cd14774301 100644 --- a/pcsx2/GS/GSState.h +++ b/pcsx2/GS/GSState.h @@ -312,8 +312,8 @@ public: }; static inline constexpr GSVector4i VideoModeOffsetsOverscan[6] = { - GSVector4i::cxpr(711, 243, 498, 12), - GSVector4i::cxpr(702, 288, 532, 18), + GSVector4i::cxpr(711, 240, 498, 17), + GSVector4i::cxpr(711, 288, 532, 21), GSVector4i::cxpr(640, 480, 276, 34), GSVector4i::cxpr(720, 480, 232, 35), GSVector4i::cxpr(1280, 720, 302, 24), diff --git a/pcsx2/GS/Renderers/Common/GSRenderer.cpp b/pcsx2/GS/Renderers/Common/GSRenderer.cpp index 94839eb9d0..1777a53b3d 100644 --- a/pcsx2/GS/Renderers/Common/GSRenderer.cpp +++ b/pcsx2/GS/Renderers/Common/GSRenderer.cpp @@ -603,7 +603,7 @@ void GSRenderer::VSync(u32 field, bool registers_written, bool idle_frame) src_uv = GSVector4(src_rect) / GSVector4(current->GetSize()).xyxy(); draw_rect = CalculateDrawDstRect(g_gs_device->GetWindowWidth(), g_gs_device->GetWindowHeight(), src_rect, current->GetSize(), s_display_alignment, g_gs_device->UsesLowerLeftOrigin(), - GetVideoMode() == GSVideoMode::SDTV_480P || (GSConfig.PCRTCOverscan && GSConfig.PCRTCOffsets)); + GetVideoMode() == GSVideoMode::SDTV_480P); s_last_draw_rect = draw_rect; if (GSConfig.CASMode != GSCASMode::Disabled) @@ -850,7 +850,7 @@ void GSRenderer::PresentCurrentFrame() const GSVector4 src_uv(GSVector4(src_rect) / GSVector4(current->GetSize()).xyxy()); const GSVector4 draw_rect(CalculateDrawDstRect(g_gs_device->GetWindowWidth(), g_gs_device->GetWindowHeight(), src_rect, current->GetSize(), s_display_alignment, g_gs_device->UsesLowerLeftOrigin(), - GetVideoMode() == GSVideoMode::SDTV_480P || (GSConfig.PCRTCOverscan && GSConfig.PCRTCOffsets))); + GetVideoMode() == GSVideoMode::SDTV_480P)); s_last_draw_rect = draw_rect; const u64 current_time = Common::Timer::GetCurrentValue(); @@ -893,7 +893,7 @@ bool GSRenderer::BeginCapture(std::string filename) GSVector2i(GSConfig.VideoCaptureWidth, GSConfig.VideoCaptureHeight)); return GSCapture::BeginCapture(GetTvRefreshRate(), capture_resolution, - GetCurrentAspectRatioFloat(GetVideoMode() == GSVideoMode::SDTV_480P || (GSConfig.PCRTCOverscan && GSConfig.PCRTCOffsets)), + GetCurrentAspectRatioFloat(GetVideoMode() == GSVideoMode::SDTV_480P), std::move(filename)); } @@ -927,7 +927,7 @@ bool GSRenderer::SaveSnapshotToMemory(u32 window_width, u32 window_height, bool const GSVector4i src_rect(CalculateDrawSrcRect(current)); const GSVector4 src_uv(GSVector4(src_rect) / GSVector4(current->GetSize()).xyxy()); - const bool is_progressive = (GetVideoMode() == GSVideoMode::SDTV_480P || (GSConfig.PCRTCOverscan && GSConfig.PCRTCOffsets)); + const bool is_progressive = (GetVideoMode() == GSVideoMode::SDTV_480P); GSVector4 draw_rect; if (window_width == 0 || window_height == 0) { diff --git a/pcsx2/VMManager.cpp b/pcsx2/VMManager.cpp index 243888b3cd..f69f3a63bf 100644 --- a/pcsx2/VMManager.cpp +++ b/pcsx2/VMManager.cpp @@ -577,7 +577,7 @@ void VMManager::RequestDisplaySize(float scale /*= 0.0f*/) switch (GSConfig.AspectRatio) { case AspectRatioType::RAuto4_3_3_2: - if (GSgetDisplayMode() == GSVideoMode::SDTV_480P || (GSConfig.PCRTCOverscan && GSConfig.PCRTCOffsets)) + if (GSgetDisplayMode() == GSVideoMode::SDTV_480P) x_scale = (3.0f / 2.0f) / (static_cast(iwidth) / static_cast(iheight)); else x_scale = (4.0f / 3.0f) / (static_cast(iwidth) / static_cast(iheight));