GS-hw-tc: Remove JackieChanAdv crc hack.

Game seems to work fine currently.
This commit is contained in:
lightningterror 2022-02-06 12:32:06 +01:00
parent 52252de3a6
commit 2f06ed2af8
4 changed files with 13 additions and 31 deletions

View File

@ -197,8 +197,6 @@ const CRC::Game CRC::m_games[] =
{0xDCD9A9F7, GodOfWar2, EU, 0}, {0xDCD9A9F7, GodOfWar2, EU, 0},
{0xFA0DF523, GodOfWar2, CH, 0}, // cutie comment {0xFA0DF523, GodOfWar2, CH, 0}, // cutie comment
{0x9FEE3466, GodOfWar2, CH, 0}, // cutie comment {0x9FEE3466, GodOfWar2, CH, 0}, // cutie comment
{0x5D482F18, JackieChanAdv, EU, 0},
{0xAC4DFD5A, JackieChanAdv, EU, 0},
{0x95CC86EF, GiTS, US, 0}, // same CRC also reported as EU {0x95CC86EF, GiTS, US, 0}, // same CRC also reported as EU
{0x2C5BF134, GiTS, US, 0}, // Demo {0x2C5BF134, GiTS, US, 0}, // Demo
{0xA5768F53, GiTS, JP, 0}, {0xA5768F53, GiTS, JP, 0},

View File

@ -72,7 +72,6 @@ public:
ICO, ICO,
IkkiTousen, IkkiTousen,
IndianaJonesAndTheEmperorsTomb, IndianaJonesAndTheEmperorsTomb,
JackieChanAdv,
Jak1, Jak1,
Jak2, Jak2,
Jak3, Jak3,

View File

@ -102,17 +102,8 @@ GSTextureCache::Source* GSTextureCache::LookupDepthSource(const GIFRegTEX0& TEX0
if (!m_can_convert_depth) if (!m_can_convert_depth)
{ {
GL_CACHE("LookupDepthSource not supported (0x%x, F:0x%x)", TEX0.TBP0, TEX0.PSM); GL_CACHE("LookupDepthSource not supported (0x%x, F:0x%x)", TEX0.TBP0, TEX0.PSM);
if (m_renderer->m_game.title == CRC::JackieChanAdv || m_renderer->m_game.title == CRC::SVCChaos)
{
// JackieChan and SVCChaos cause regressions when skipping the draw calls when depth is disabled/not supported.
// This way we make sure there are no regressions on D3D as well.
return LookupSource(TEX0, TEXA, r, false);
}
else
{
throw GSRecoverableError(); throw GSRecoverableError();
} }
}
const GSLocalMemory::psm_t& psm_s = GSLocalMemory::m_psm[TEX0.PSM]; const GSLocalMemory::psm_t& psm_s = GSLocalMemory::m_psm[TEX0.PSM];
@ -120,8 +111,8 @@ GSTextureCache::Source* GSTextureCache::LookupDepthSource(const GIFRegTEX0& TEX0
Target* dst = NULL; Target* dst = NULL;
// Check only current frame, I guess it is only used as a postprocessing effect // Check only current frame, I guess it is only used as a postprocessing effect
u32 bp = TEX0.TBP0; const u32 bp = TEX0.TBP0;
u32 psm = TEX0.PSM; const u32 psm = TEX0.PSM;
for (auto t : m_dst[DepthStencil]) for (auto t : m_dst[DepthStencil])
{ {
@ -185,6 +176,11 @@ GSTextureCache::Source* GSTextureCache::LookupDepthSource(const GIFRegTEX0& TEX0
m_src.m_surfaces.insert(src); m_src.m_surfaces.insert(src);
} }
else if (m_renderer->m_game.title == CRC::SVCChaos)
{
// SVCChaos black screen on main menu, regardless of depth enabled or disabled.
return LookupSource(TEX0, TEXA, r, false);
}
else else
{ {
GL_CACHE("TC depth: ERROR miss (0x%x, %s)", TEX0.TBP0, psm_str(psm)); GL_CACHE("TC depth: ERROR miss (0x%x, %s)", TEX0.TBP0, psm_str(psm));
@ -196,13 +192,6 @@ GSTextureCache::Source* GSTextureCache::LookupDepthSource(const GIFRegTEX0& TEX0
// Note: might worth to check previous frame // Note: might worth to check previous frame
// Note: otherwise return NULL and skip the draw // Note: otherwise return NULL and skip the draw
if (m_renderer->m_game.title == CRC::JackieChanAdv || m_renderer->m_game.title == CRC::SVCChaos)
{
// JackieChan and SVCChaos cause regressions when skipping the draw calls so we reuse the old code for these two.
return LookupSource(TEX0, TEXA, r, false);
}
else
{
// Full Spectrum Warrior: first draw call of cut-scene rendering // Full Spectrum Warrior: first draw call of cut-scene rendering
// The game tries to emulate a texture shuffle with an old depth buffer // The game tries to emulate a texture shuffle with an old depth buffer
// (don't exists yet for us due to the cache) // (don't exists yet for us due to the cache)
@ -210,9 +199,6 @@ GSTextureCache::Source* GSTextureCache::LookupDepthSource(const GIFRegTEX0& TEX0
throw GSRecoverableError(); throw GSRecoverableError();
} }
//ASSERT(0);
}
return src; return src;
} }

View File

@ -214,7 +214,6 @@ public:
void Add(Source* s, const GIFRegTEX0& TEX0, const GSOffset& off); void Add(Source* s, const GIFRegTEX0& TEX0, const GSOffset& off);
void RemoveAll(); void RemoveAll();
void RemovePartial();
void RemoveAt(Source* s); void RemoveAt(Source* s);
}; };