diff --git a/bin/resources/GameIndex.yaml b/bin/resources/GameIndex.yaml index c297037726..6a121872c0 100644 --- a/bin/resources/GameIndex.yaml +++ b/bin/resources/GameIndex.yaml @@ -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" diff --git a/pcsx2/GS/Renderers/HW/GSHwHack.cpp b/pcsx2/GS/Renderers/HW/GSHwHack.cpp index 19d57af186..de3ab04ef3 100644 --- a/pcsx2/GS/Renderers/HW/GSHwHack.cpp +++ b/pcsx2/GS/Renderers/HW/GSHwHack.cpp @@ -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 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), diff --git a/pcsx2/GS/Renderers/HW/GSHwHack.h b/pcsx2/GS/Renderers/HW/GSHwHack.h index 2da65232a1..6553bc44d1 100644 --- a/pcsx2/GS/Renderers/HW/GSHwHack.h +++ b/pcsx2/GS/Renderers/HW/GSHwHack.h @@ -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);