Rework mid-frame interlace handling (ASP briefing screen)
This commit is contained in:
parent
fe6b9f257f
commit
2c3230a8da
12
gfx.cpp
12
gfx.cpp
@ -709,7 +709,7 @@ void S9xUpdateScreen (void)
|
||||
IPPU.RenderedScreenWidth = 512;
|
||||
}
|
||||
|
||||
if (!IPPU.DoubleHeightPixels && IPPU.Interlace)
|
||||
if (!IPPU.DoubleHeightPixels && IPPU.Interlace && (PPU.BGMode == 5 || PPU.BGMode == 6))
|
||||
{
|
||||
IPPU.DoubleHeightPixels = TRUE;
|
||||
IPPU.RenderedScreenHeight = PPU.ScreenHeight << 1;
|
||||
@ -719,16 +719,6 @@ void S9xUpdateScreen (void)
|
||||
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));
|
||||
}
|
||||
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))
|
||||
|
Loading…
Reference in New Issue
Block a user