GS: Expand "progressive" analogue games to full height, in case they lie

This commit is contained in:
refractionpcsx2 2022-11-13 00:15:40 +00:00
parent 748dcbd989
commit 630ebb0583
2 changed files with 5 additions and 3 deletions

View File

@ -301,7 +301,7 @@ const char* ReportVideoMode()
const char* ReportInterlaceMode()
{
const u64& smode2 = *(u64*)PS2GS_BASE(GS_SMODE2);
return (smode2 & 1) ? ((smode2 & 2) ? "Interlaced (Frame)" : "Interlaced (Field)") : "Progressive";
return !IsProgressiveVideoMode() ? ((smode2 & 2) ? "Interlaced (Frame)" : "Interlaced (Field)") : "Progressive";
}
double GetVerticalFrequency()

View File

@ -368,10 +368,12 @@ bool GSRenderer::Merge(int field)
ds = fs;
// When interlace(FRAME) mode, the rect is half height, so it needs to be stretched.
if (m_regs->SMODE2.INT && m_regs->SMODE2.FFMD)
const bool is_interlaced_resolution = m_regs->SMODE2.INT || (isReallyInterlaced() && IsAnalogue() && GSConfig.InterlaceMode != GSInterlaceMode::Off);
if (is_interlaced_resolution && m_regs->SMODE2.FFMD)
ds.y *= 2;
m_real_size = ds;
m_real_size = GSVector2i(fs.x, is_interlaced_resolution ? ds.y : fs.y);
if (tex[0] || tex[1])
{