mirror of https://github.com/snes9xgit/snes9x.git
Fix glitched images on one-frame interlace changes (e.g. chrono trigger)
This commit is contained in:
parent
88176c03d4
commit
c7c2ff4f6f
10
gfx.cpp
10
gfx.cpp
|
@ -718,6 +718,16 @@ void S9xUpdateScreen (void)
|
||||||
for (register int32 y = (int32) GFX.StartY - 1; y >= 0; y--)
|
for (register int32 y = (int32) GFX.StartY - 1; y >= 0; y--)
|
||||||
memmove(GFX.Screen + y * GFX.PPL, GFX.Screen + y * GFX.RealPPL, IPPU.RenderedScreenWidth * sizeof(uint16));
|
memmove(GFX.Screen + y * GFX.PPL, GFX.Screen + y * GFX.RealPPL, IPPU.RenderedScreenWidth * sizeof(uint16));
|
||||||
}
|
}
|
||||||
|
else if (IPPU.DoubleHeightPixels && !IPPU.Interlace)
|
||||||
|
{
|
||||||
|
for (register int32 y = 0; y < (int32) GFX.StartY; y++)
|
||||||
|
memmove(GFX.Screen + y * GFX.RealPPL, GFX.Screen + y * GFX.PPL, IPPU.RenderedScreenWidth * sizeof(uint16));
|
||||||
|
|
||||||
|
IPPU.DoubleHeightPixels = FALSE;
|
||||||
|
IPPU.RenderedScreenHeight = PPU.ScreenHeight;
|
||||||
|
GFX.PPL = GFX.RealPPL;
|
||||||
|
GFX.DoInterlace = 0;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if ((Memory.FillRAM[0x2130] & 0x30) != 0x30 && (Memory.FillRAM[0x2131] & 0x3f))
|
if ((Memory.FillRAM[0x2130] & 0x30) != 0x30 && (Memory.FillRAM[0x2131] & 0x3f))
|
||||||
|
|
Loading…
Reference in New Issue