mirror of https://github.com/PCSX2/pcsx2.git
GS/CRC: Improve Street Fighter 3 EX CRC to remove shimmer
(and some potential input lag)
This commit is contained in:
parent
226cf2d21d
commit
8f1b804f98
|
@ -137,9 +137,17 @@ bool GSHwHack::GSC_SFEX3(GSRendererHW& r, int& skip)
|
|||
{
|
||||
if (RTME && RFBP == 0x00500 && RFPSM == PSMCT16 && RTBP0 == 0x00f00 && RTPSM == PSMCT16)
|
||||
{
|
||||
// Not an upscaling issue.
|
||||
// Elements on the screen show double/distorted.
|
||||
skip = 2;
|
||||
// This draw copies/downscales the RT, but does so in a weird way, by copying it in two halves,
|
||||
// downscaling from 640x224 to 320x112, but splitting it in to 320x64 and 320x48 next to each other.
|
||||
// It then halves the page width on the next draw so they appear one above the other, which is what our TC doesn't support.
|
||||
// This modified that weird halving draw to just draw it as one 320x112 chunk, it then works correctly.
|
||||
// Skipping is no good as the copy is used again later, and it causes a weird shimmer/echo effect every other frame.
|
||||
|
||||
// Add on the height from the second part of the draw to the first, to make it one big rect.
|
||||
r.m_vertex.buff[1].XYZ.Y += r.m_vertex.buff[r.m_vertex.tail - 1].XYZ.Y - r.m_context->XYOFFSET.OFY;
|
||||
r.m_vertex.buff[1].V = r.m_vertex.buff[r.m_vertex.tail - 1].V;
|
||||
r.m_vertex.tail = 2;
|
||||
r.m_index.tail = 2;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue