GS: Add CRC hack for Guitar Hero 3 to handle crowds

This commit is contained in:
refractionpcsx2 2025-01-24 16:06:13 +00:00 committed by Ty
parent f94d5faaf2
commit bdd9f30404
3 changed files with 24 additions and 0 deletions

View File

@ -27286,6 +27286,7 @@ SLES-54962:
autoFlush: 1 # Fixes bloom intensity.
halfPixelOffset: 4 # Mostly aligns post processing.
nativeScaling: 1 # Fixes post processing smoothness and position.
getSkipCount: "GSC_GuitarHero"
SLES-54963:
name: "Tony Hawk's Proving Ground"
region: "PAL-E"
@ -27333,6 +27334,7 @@ SLES-54974:
autoFlush: 1 # Fixes bloom intensity.
halfPixelOffset: 4 # Mostly aligns post processing.
nativeScaling: 1 # Fixes post processing smoothness and position.
getSkipCount: "GSC_GuitarHero"
SLES-54975:
name: "George Of The Jungle"
region: "PAL-E"
@ -31633,6 +31635,7 @@ SLKA-25414:
autoFlush: 1 # Fixes bloom intensity.
halfPixelOffset: 4 # Mostly aligns post processing.
nativeScaling: 1 # Fixes post processing smoothness and position.
getSkipCount: "GSC_GuitarHero"
SLKA-25417:
name: "Jin Samguk Mussang 4 - Empires"
region: "NTSC-K"
@ -59870,6 +59873,7 @@ SLPS-25840:
autoFlush: 1 # Fixes bloom intensity.
halfPixelOffset: 4 # Mostly aligns post processing.
nativeScaling: 1 # Fixes post processing smoothness and position.
getSkipCount: "GSC_GuitarHero"
SLPS-25841:
name: "テイルズ オブ デスティニー ディレクターズカット [プレミアムBOX]"
name-sort: "ているず おぶ ですてぃにー でぃれくたーずかっと [ぷれみあむBOX]"
@ -60174,6 +60178,7 @@ SLPS-25890:
autoFlush: 1 # Fixes bloom intensity.
halfPixelOffset: 4 # Mostly aligns post processing.
nativeScaling: 1 # Fixes post processing smoothness and position.
getSkipCount: "GSC_GuitarHero"
SLPS-25891:
name: "乃木坂春香の秘密 こすぷれ、はじめました♥ [限定版]"
name-sort: "のぎざかはるかのひみつ こすぷれ はじめました [げんていばん]"
@ -70742,6 +70747,7 @@ SLUS-21672:
autoFlush: 1 # Fixes bloom intensity.
halfPixelOffset: 4 # Mostly aligns post processing.
nativeScaling: 1 # Fixes post processing smoothness and position.
getSkipCount: "GSC_GuitarHero"
SLUS-21673:
name: "College Hoops 2K8"
region: "NTSC-U"

View File

@ -131,6 +131,22 @@ bool GSHwHack::GSC_SacredBlaze(GSRendererHW& r, int& skip)
return true;
}
bool GSHwHack::GSC_GuitarHero(GSRendererHW& r, int& skip)
{
// Crowd sprite generation is a mess, better done in software.
if (skip == 0)
{
if (RTBW <= 4 && RTME && RFBW <= 4 && (r.m_context->TEX1.MMIN & 1) == 0)
{
r.ClearGSLocalMemory(r.m_context->offset.zb, r.m_r, 0);
r.SwPrimRender(r, RFBP != 0x2DC0, false);
skip = 1;
}
}
return true;
}
bool GSHwHack::GSC_SFEX3(GSRendererHW& r, int& skip)
{
if (skip == 0)
@ -1531,6 +1547,7 @@ const GSHwHack::Entry<GSRendererHW::GSC_Ptr> GSHwHack::s_get_skip_count_function
CRC_F(GSC_Manhunt2),
CRC_F(GSC_MidnightClub3),
CRC_F(GSC_SacredBlaze),
CRC_F(GSC_GuitarHero),
CRC_F(GSC_SakuraWarsSoLongMyLove),
CRC_F(GSC_Simple2000Vol114),
CRC_F(GSC_SFEX3),

View File

@ -10,6 +10,7 @@ public:
static bool GSC_GiTS(GSRendererHW& r, int& skip);
static bool GSC_Manhunt2(GSRendererHW& r, int& skip);
static bool GSC_SacredBlaze(GSRendererHW& r, int& skip);
static bool GSC_GuitarHero(GSRendererHW& r, int& skip);
static bool GSC_SFEX3(GSRendererHW& r, int& skip);
static bool GSC_DTGames(GSRendererHW& r, int& skip);
static bool GSC_Tekken5(GSRendererHW& r, int& skip);