GS/HW: Swap Crash WoC CRC hack for native palette draws

This commit is contained in:
Stenzek 2023-03-31 23:20:26 +10:00 committed by refractionpcsx2
parent 4cbdbaabdb
commit e8e9702d7e
3 changed files with 9 additions and 44 deletions

View File

@ -10664,7 +10664,7 @@ SLES-50386:
region: "PAL-M6" region: "PAL-M6"
compat: 5 compat: 5
gsHWFixes: gsHWFixes:
getSkipCount: "GSC_CrashBandicootWoC" nativePaletteDraw: 1
SLES-50390: SLES-50390:
name: "Driven" name: "Driven"
region: "PAL-M5" region: "PAL-M5"
@ -26213,7 +26213,7 @@ SLPM-62114:
name: "Crash Bandicoot 4 - Sakuretsu! Majin Power" name: "Crash Bandicoot 4 - Sakuretsu! Majin Power"
region: "NTSC-J" region: "NTSC-J"
gsHWFixes: gsHWFixes:
getSkipCount: "GSC_CrashBandicootWoC" nativePaletteDraw: 1
SLPM-62115: SLPM-62115:
name: "EX Jinsei Game [Doukonban]" name: "EX Jinsei Game [Doukonban]"
region: "NTSC-J" region: "NTSC-J"
@ -28146,12 +28146,12 @@ SLPM-64509:
name: "Crash Bandicoot - Return of the Demon King [English Dub Edition]" # Wrath of Cortex name: "Crash Bandicoot - Return of the Demon King [English Dub Edition]" # Wrath of Cortex
region: "NTSC-K" region: "NTSC-K"
gsHWFixes: gsHWFixes:
getSkipCount: "GSC_CrashBandicootWoC" nativePaletteDraw: 1
SLPM-64513: SLPM-64513:
name: "Crash Bandicoot - Mawangui Buwhal" # Wrath of Cortex name: "Crash Bandicoot - Mawangui Buwhal" # Wrath of Cortex
region: "NTSC-K" region: "NTSC-K"
gsHWFixes: gsHWFixes:
getSkipCount: "GSC_CrashBandicootWoC" nativePaletteDraw: 1
SLPM-64514: SLPM-64514:
name: "Legends of Wrestling" name: "Legends of Wrestling"
region: "NTSC-K" region: "NTSC-K"
@ -35796,7 +35796,7 @@ SLPM-74003:
name: "Crash Bandicoot 4 - Sakuretsu! Majin Power! [PlayStation 2 The Best]" name: "Crash Bandicoot 4 - Sakuretsu! Majin Power! [PlayStation 2 The Best]"
region: "NTSC-J" region: "NTSC-J"
gsHWFixes: gsHWFixes:
getSkipCount: "GSC_CrashBandicootWoC" nativePaletteDraw: 1
SLPM-74004: SLPM-74004:
name: "Maximo - Ghosts to Glory [PlayStation 2 The Best]" name: "Maximo - Ghosts to Glory [PlayStation 2 The Best]"
region: "NTSC-J" region: "NTSC-J"
@ -42587,7 +42587,7 @@ SLUS-20238:
region: "NTSC-U" region: "NTSC-U"
compat: 5 compat: 5
gsHWFixes: gsHWFixes:
getSkipCount: "GSC_CrashBandicootWoC" nativePaletteDraw: 1
SLUS-20239: SLUS-20239:
name: "Driven" name: "Driven"
region: "NTSC-U" region: "NTSC-U"
@ -51361,7 +51361,7 @@ SLUS-29010:
name: "Crash Bandicoot - The Wrath of Cortex [Demo]" name: "Crash Bandicoot - The Wrath of Cortex [Demo]"
region: "NTSC-U" region: "NTSC-U"
gsHWFixes: gsHWFixes:
getSkipCount: "GSC_CrashBandicootWoC" nativePaletteDraw: 1
SLUS-29011: SLUS-29011:
name: "WWF SmackDown! - Just Bring It [Demo]" name: "WWF SmackDown! - Just Bring It [Demo]"
region: "NTSC-U" region: "NTSC-U"
@ -52264,9 +52264,9 @@ VW067-J1:
name: "Crash Bandicoot 4 - Sakuretsu! Majin Power!" name: "Crash Bandicoot 4 - Sakuretsu! Majin Power!"
region: "NTSC-J" region: "NTSC-J"
gsHWFixes: gsHWFixes:
getSkipCount: "GSC_CrashBandicootWoC" nativePaletteDraw: 1
VW067-J2: VW067-J2:
name: "Crash Bandicoot 4 - Sakuretsu! Majin Power! [PlayStation 2 The Best]" name: "Crash Bandicoot 4 - Sakuretsu! Majin Power! [PlayStation 2 The Best]"
region: "NTSC-J" region: "NTSC-J"
gsHWFixes: gsHWFixes:
getSkipCount: "GSC_CrashBandicootWoC" nativePaletteDraw: 1

View File

@ -108,39 +108,6 @@ bool GSHwHack::GSC_Manhunt2(GSRendererHW& r, const GSFrameInfo& fi, int& skip)
return true; return true;
} }
bool GSHwHack::GSC_CrashBandicootWoC(GSRendererHW& r, const GSFrameInfo& fi, int& skip)
{
if (s_nativeres)
return false;
// Channel effect not properly supported - Removes fog to fix the fog wall issue on Direct3D at any resolution, and while upscaling on every Hardware renderer.
if (skip == 0)
{
if (fi.TME && (fi.FBP == 0x00000 || fi.FBP == 0x008c0 || fi.FBP == 0x00a00) && (fi.TBP0 == 0x00000 || fi.TBP0 == 0x008c0 || fi.TBP0 == 0x00a00) && fi.FBP == fi.TBP0 && fi.FPSM == PSM_PSMCT32 && fi.FPSM == fi.TPSM)
{
return false; // allowed
}
if (fi.TME && (fi.FBP == 0x01e40 || fi.FBP == 0x02200) && fi.FPSM == PSM_PSMZ24 && (fi.TBP0 == 0x01180 || fi.TBP0 == 0x01400) && fi.TPSM == PSM_PSMZ24)
{
skip = 42;
}
}
else
{
if (fi.TME && (fi.FBP == 0x00000 || fi.FBP == 0x008c0 || fi.FBP == 0x00a00) && fi.FPSM == PSM_PSMCT32 && fi.TBP0 == 0x03c00 && fi.TPSM == PSM_PSMCT32)
{
skip = 0;
}
else if (!fi.TME && (fi.FBP == 0x00000 || fi.FBP == 0x008c0 || fi.FBP == 0x00a00))
{
skip = 0;
}
}
return true;
}
bool GSHwHack::GSC_SacredBlaze(GSRendererHW& r, const GSFrameInfo& fi, int& skip) bool GSHwHack::GSC_SacredBlaze(GSRendererHW& r, const GSFrameInfo& fi, int& skip)
{ {
//Fix Sacred Blaze rendering glitches //Fix Sacred Blaze rendering glitches
@ -1212,7 +1179,6 @@ const GSHwHack::Entry<GSRendererHW::GSC_Ptr> GSHwHack::s_get_skip_count_function
CRC_F(GSC_Battlefield2, CRCHackLevel::Partial), CRC_F(GSC_Battlefield2, CRCHackLevel::Partial),
// Channel Effect // Channel Effect
CRC_F(GSC_CrashBandicootWoC, CRCHackLevel::Partial),
CRC_F(GSC_GiTS, CRCHackLevel::Partial), CRC_F(GSC_GiTS, CRCHackLevel::Partial),
CRC_F(GSC_SteambotChronicles, CRCHackLevel::Partial), CRC_F(GSC_SteambotChronicles, CRCHackLevel::Partial),

View File

@ -21,7 +21,6 @@ public:
static bool GSC_DeathByDegreesTekkenNinaWilliams(GSRendererHW& r, const GSFrameInfo& fi, int& skip); static bool GSC_DeathByDegreesTekkenNinaWilliams(GSRendererHW& r, const GSFrameInfo& fi, int& skip);
static bool GSC_GiTS(GSRendererHW& r, const GSFrameInfo& fi, int& skip); static bool GSC_GiTS(GSRendererHW& r, const GSFrameInfo& fi, int& skip);
static bool GSC_Manhunt2(GSRendererHW& r, const GSFrameInfo& fi, int& skip); static bool GSC_Manhunt2(GSRendererHW& r, const GSFrameInfo& fi, int& skip);
static bool GSC_CrashBandicootWoC(GSRendererHW& r, const GSFrameInfo& fi, int& skip);
static bool GSC_SacredBlaze(GSRendererHW& r, const GSFrameInfo& fi, int& skip); static bool GSC_SacredBlaze(GSRendererHW& r, const GSFrameInfo& fi, int& skip);
static bool GSC_SakuraTaisen(GSRendererHW& r, const GSFrameInfo& fi, int& skip); static bool GSC_SakuraTaisen(GSRendererHW& r, const GSFrameInfo& fi, int& skip);
static bool GSC_SFEX3(GSRendererHW& r, const GSFrameInfo& fi, int& skip); static bool GSC_SFEX3(GSRendererHW& r, const GSFrameInfo& fi, int& skip);