- Feal87 found and fixed a problem with shadows in Silent Hill Origins. Might help other games as well.
- Bit better fix for GoW's "wall of fog" problem. Patch originally from ZeroGravity.

Thanks guys :p

git-svn-id: http://pcsx2.googlecode.com/svn/trunk@2647 96395faa-99c1-11dd-bbfe-3dabce05a288
This commit is contained in:
ramapcsx2 2010-02-26 14:38:13 +00:00
parent e6bb0125ec
commit a9578e53dc
2 changed files with 18 additions and 6 deletions

View File

@ -1896,6 +1896,7 @@ struct GSFrameInfo
uint32 FBMSK;
uint32 TBP0;
uint32 TPSM;
uint32 TZTST;
bool TME;
};
@ -2290,9 +2291,10 @@ bool GSC_GodOfWar(const GSFrameInfo& fi, int& skip)
{
skip = 1; // blur
}
}
else
{
else if(fi.FBP == 0x00000 && fi.FPSM == PSM_PSMCT32 && fi.TPSM == PSM_PSMT8 && ((fi.TZTST == 2 && fi.FBMSK == 0x00FFFFFF) || (fi.TZTST == 1 && fi.FBMSK == 0x00FFFFFF) || (fi.TZTST == 3 && fi.FBMSK == 0xFF000000)))
{
skip = 1; // wall of fog
}
}
return true;
@ -2482,6 +2484,7 @@ bool GSState::IsBadFrame(int& skip, int UserHacks_SkipDraw)
fi.TME = PRIM->TME;
fi.TBP0 = m_context->TEX0.TBP0;
fi.TPSM = m_context->TEX0.PSM;
fi.TZTST = m_context->TEST.ZTST;
static GetSkipCount map[CRC::TitleCount];
static bool inited = false;

View File

@ -423,9 +423,18 @@ void GSTextureCache::InvalidateLocalMem(const GSOffset* o, const GSVector4i& r)
}
else
{
m_dst[RenderTarget].erase(j);
delete t;
if (psm == PSM_PSMT4HH && t->m_TEX0.PSM == PSM_PSMCT32)
{
// Silent Hill Origins shadows: Read 8 bit using only the HIGH bits (4 bit) texture as 32 bit.
Read(t, r.rintersect(t->m_valid));
return;
}
else
{
//printf("Trashing render target. We have a %d type texture and we are trying to write into a %d type texture\n", t->m_TEX0.PSM, psm);
m_dst[RenderTarget].erase(j);
delete t;
}
}
}
}