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
parent 704696b0a8
commit aaca8b26da
3 changed files with 24 additions and 0 deletions

View File

@ -27095,6 +27095,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"
@ -27142,6 +27143,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"
@ -31234,6 +31236,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"
@ -59358,6 +59361,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]"
@ -59662,6 +59666,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: "のぎざかはるかのひみつ こすぷれ はじめました [げんていばん]"
@ -70174,6 +70179,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)
@ -1467,6 +1483,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_Tekken5(GSRendererHW& r, int& skip);
static bool GSC_BurnoutGames(GSRendererHW& r, int& skip);