Compare commits

...

3 Commits

Author SHA1 Message Date
refractionpcsx2
52771fdb17 GS/HW: Add CRC fixes for DT Carnage/Racer/Axel Impact 2025-02-10 15:06:29 +00:00
JordanTheToaster
de631a1052 PerformanceMetrics: Increase update rate
Increases update rate of OSD stats from 0.5 per poll to 0.25 seconds per poll.
2025-02-09 12:29:54 -05:00
JordanTheToaster
605398db67 GameDB: Various fixes 2025-02-09 12:29:54 -05:00
5 changed files with 138 additions and 16 deletions

View File

@@ -332,8 +332,9 @@ PAPX-90230:
name-en: "Arc the Lad - Seirei no Tasogare - Premiere Disc [ShopDemo]"
region: "NTSC-J"
gsHWFixes:
textureInsideRT: 1 # Fixes on screen garbage.
halfPixelOffset: 4 # Fixes post processing alignment.
nativeScaling: 1 # Fixes depth blur intensity.
textureInsideRT: 1 # Fixes on screen garbage.
PAPX-90231:
name: "怪盗 スライ・クーパー [体験版]"
name-sort: "かいとう すらいくーぱー [たいけんばん]"
@@ -917,8 +918,9 @@ PCPX-96330:
name-en: "Arc the Lad - Seirei no Tasogare - Premiere Disc [ShopTrial]"
region: "NTSC-J"
gsHWFixes:
textureInsideRT: 1 # Fixes on screen garbage.
halfPixelOffset: 4 # Fixes post processing alignment.
nativeScaling: 1 # Fixes depth blur intensity.
textureInsideRT: 1 # Fixes on screen garbage.
PCPX-96554:
name: "Games of Our Style - Tokyo Game Show 2003 Disc"
name-sort: "げーむず おぶ あわー すたいる - とうきょう げーむしょう 2003 でぃすく"
@@ -1379,8 +1381,9 @@ SCAJ-20019:
name-en: "Arc the Lad - Twilight of the Spirits"
region: "NTSC-J"
gsHWFixes:
textureInsideRT: 1 # Fixes on screen garbage.
halfPixelOffset: 4 # Fixes post processing alignment.
nativeScaling: 1 # Fixes depth blur intensity.
textureInsideRT: 1 # Fixes on screen garbage.
SCAJ-20020:
name: "Drag-on Dragoon"
region: "NTSC-C-J"
@@ -1465,11 +1468,12 @@ SCAJ-20037:
gsHWFixes:
halfPixelOffset: 1 # Corrects shadow misalignment.
SCAJ-20038:
name: "Arc the Lad - Twilight of the Spirits"
region: "NTSC-Unk"
name: "Arc the Lad - Jing Ling Zhi Huang Hun"
region: "NTSC-C"
gsHWFixes:
textureInsideRT: 1 # Fixes on screen garbage.
halfPixelOffset: 4 # Fixes post processing alignment.
nativeScaling: 1 # Fixes depth blur intensity.
textureInsideRT: 1 # Fixes on screen garbage.
SCAJ-20039:
name: "Sidewinder V"
region: "NTSC-Unk"
@@ -1841,6 +1845,8 @@ SCAJ-20108:
region: "NTSC-Unk"
gsHWFixes:
halfPixelOffset: 4 # Fixes post processing alignment.
nativeScaling: 1 # Fixes depth blur intensity.
textureInsideRT: 1 # Fixes on screen garbage.
SCAJ-20109:
name: "Ratchet & Clank 3 - Up Your Arsenal"
region: "NTSC-Unk"
@@ -2661,8 +2667,9 @@ SCCS-40007:
name-en: "Arc the Lad - Seirei no Tasogare"
region: "NTSC-C"
gsHWFixes:
textureInsideRT: 1 # Fixes on screen garbage.
halfPixelOffset: 4 # Fixes post processing alignment.
nativeScaling: 1 # Fixes depth blur intensity.
textureInsideRT: 1 # Fixes on screen garbage.
SCCS-40009:
name: "龙珠二世"
name-sort: "Longzhu Ershi"
@@ -5330,8 +5337,9 @@ SCES-51910:
region: "PAL-M5"
compat: 5
gsHWFixes:
textureInsideRT: 1 # Fixes on screen garbage.
halfPixelOffset: 4 # Fixes post processing alignment.
nativeScaling: 1 # Fixes depth blur intensity.
textureInsideRT: 1 # Fixes on screen garbage.
SCES-51920:
name: "Forbidden Siren"
region: "PAL-E"
@@ -6949,8 +6957,9 @@ SCKA-20012:
name: "Arc the Lad - Jeongryeongui Hwanghon"
region: "NTSC-K"
gsHWFixes:
textureInsideRT: 1 # Fixes on screen garbage.
halfPixelOffset: 4 # Fixes post processing alignment.
nativeScaling: 1 # Fixes depth blur intensity.
textureInsideRT: 1 # Fixes on screen garbage.
SCKA-20013:
name: "SOCOM - U.S. Navy SEALs"
region: "NTSC-K"
@@ -8428,16 +8437,18 @@ SCPS-15040:
name-en: "Arc the Lad - Twilight of the Spirits [Limited Edition]"
region: "NTSC-J"
gsHWFixes:
textureInsideRT: 1 # Fixes on screen garbage.
halfPixelOffset: 4 # Fixes post processing alignment.
nativeScaling: 1 # Fixes depth blur intensity.
textureInsideRT: 1 # Fixes on screen garbage.
SCPS-15041:
name: "アークザラッド 精霊の黄昏"
name-sort: "あーくざらっど せいれいのたそがれ"
name-en: "Arc the Lad - Twilight of the Spirits"
region: "NTSC-J"
gsHWFixes:
textureInsideRT: 1 # Fixes on screen garbage.
halfPixelOffset: 4 # Fixes post processing alignment.
nativeScaling: 1 # Fixes depth blur intensity.
textureInsideRT: 1 # Fixes on screen garbage.
SCPS-15042:
name: "デカボイス [マイク同梱版]"
name-sort: "でかぼいす [まいくどうこんばん]"
@@ -8571,6 +8582,8 @@ SCPS-15058:
region: "NTSC-J"
gsHWFixes:
halfPixelOffset: 4 # Fixes post processing alignment.
nativeScaling: 1 # Fixes depth blur intensity.
textureInsideRT: 1 # Fixes on screen garbage.
SCPS-15059:
name: "みんなのGOLF 4"
name-sort: "みんなのごるふ 4"
@@ -10365,9 +10378,14 @@ SCPS-56016:
gameFixes:
- GIFFIFOHack
gsHWFixes:
halfPixelOffset: 2 # Fixes post processing position.
nativeScaling: 2 # Fixes post effects.
estimateTextureRegion: 1 # Improves performance and reduces hash cache size.
gpuPaletteConversion: 2 # Improves performance and reduces hash cache size.
autoFlush: 1 # Corrects shadows (Currently still broken even with this).
recommendedBlendingLevel: 4 # Fixes car shadows but addeds about 5000 barriers, might impact slower machines.
gpuTargetCLUT: 2 # Fixes light flicker.
getSkipCount: "GSC_DTGames"
SCPS-72001:
name: "GRAN TURISMO3 A-spec [MEGA HITS!]"
name-sort: "ぐらんつーりすも3 A-spec [MEGA HITS!]"
@@ -10993,8 +11011,9 @@ SCUS-97231:
region: "NTSC-U"
compat: 5
gsHWFixes:
textureInsideRT: 1 # Fixes on screen garbage.
halfPixelOffset: 4 # Fixes post processing alignment.
nativeScaling: 1 # Fixes depth blur intensity.
textureInsideRT: 1 # Fixes on screen garbage.
SCUS-97232:
name: "The Getaway [Demo]"
name-sort: "Getaway, The [Demo]"
@@ -11211,8 +11230,9 @@ SCUS-97282:
name: "Arc the Lad - Twilight of the Spirits [Demo]"
region: "NTSC-U"
gsHWFixes:
textureInsideRT: 1 # Fixes on screen garbage.
halfPixelOffset: 4 # Fixes post processing alignment.
nativeScaling: 1 # Fixes depth blur intensity.
textureInsideRT: 1 # Fixes on screen garbage.
SCUS-97292:
name: "Amplitude [Demo]"
region: "NTSC-U"
@@ -18762,6 +18782,8 @@ SLES-52132:
autoFlush: 1 # Fixes bloom rendering.
roundModes:
vu1RoundMode: 0 # Fixes missing light cones curtains and certain effects.
speedHacks:
instantVU1: 0 # Lowers overall system load.
SLES-52133:
name: "Hitman - Contracts"
region: "PAL-F"
@@ -18770,6 +18792,8 @@ SLES-52133:
autoFlush: 1 # Fixes bloom rendering.
roundModes:
vu1RoundMode: 0 # Fixes missing light cones curtains and certain effects.
speedHacks:
instantVU1: 0 # Lowers overall system load.
SLES-52134:
name: "Hitman - Contracts"
region: "PAL-I"
@@ -18779,6 +18803,8 @@ SLES-52134:
autoFlush: 1 # Fixes bloom rendering.
roundModes:
vu1RoundMode: 0 # Fixes missing light cones curtains and certain effects.
speedHacks:
instantVU1: 0 # Lowers overall system load.
SLES-52135:
name: "Hitman - Contracts"
region: "PAL-G"
@@ -18787,6 +18813,8 @@ SLES-52135:
autoFlush: 1 # Fixes bloom rendering.
roundModes:
vu1RoundMode: 0 # Fixes missing light cones curtains and certain effects.
speedHacks:
instantVU1: 0 # Lowers overall system load.
SLES-52136:
name: "Hitman - Contracts"
region: "PAL-S"
@@ -18795,6 +18823,8 @@ SLES-52136:
autoFlush: 1 # Fixes bloom rendering.
roundModes:
vu1RoundMode: 0 # Fixes missing light cones curtains and certain effects.
speedHacks:
instantVU1: 0 # Lowers overall system load.
SLES-52143:
name: "Carmen Sandiego - The Secret of the Stolen Drums"
region: "PAL-M4"
@@ -23969,9 +23999,13 @@ SLES-53904:
clampModes:
vuClampMode: 0 # Fixes black artifacts on tracks
gsHWFixes:
halfPixelOffset: 2 # Fixes post processing position.
nativeScaling: 2 # Fixes post effects.
estimateTextureRegion: 1 # Improves performance and reduces hash cache size.
gpuPaletteConversion: 2 # Improves performance and reduces hash cache size.
autoFlush: 1 # Corrects shadows (Currently still broken even with this).
gpuTargetCLUT: 2 # Fixes light flicker.
getSkipCount: "GSC_DTGames"
SLES-53906:
name: "50 Cent - Bulletproof"
region: "PAL-F"
@@ -24793,6 +24827,8 @@ SLES-54187:
SLES-54188:
name: "Nickelodeon Avatar - The Legend of Aang"
region: "PAL-M4"
gsHWFixes:
minimumBlendingLevel: 3 # Fixes missing lighting and skin color.
SLES-54193:
name: "Carol Vorderman's Sudoku"
region: "PAL-E"
@@ -26003,6 +26039,8 @@ SLES-54616:
SLES-54617:
name: "Action Man A.T.O.M. - Alpha Teens on Machines"
region: "PAL-M9"
gsHWFixes:
halfPixelOffset: 4 # Fixes depth line.
SLES-54619:
name: "Pinocchio"
region: "PAL-M3"
@@ -27739,6 +27777,7 @@ SLES-55184:
gsHWFixes:
halfPixelOffset: 4 # Aligns Post Effect.
nativeScaling: 2 # Fixes Post effect.
autoFlush: 1 # Fixes post lighting.
SLES-55185:
name: "Disney/Pixar WALL-E"
region: "PAL-UK"
@@ -27747,6 +27786,7 @@ SLES-55185:
gsHWFixes:
halfPixelOffset: 4 # Aligns Post Effect.
nativeScaling: 2 # Fixes Post effect.
autoFlush: 1 # Fixes post lighting.
SLES-55186:
name: "Disney/Pixar WALL-E"
region: "PAL-S-P"
@@ -27755,6 +27795,7 @@ SLES-55186:
gsHWFixes:
halfPixelOffset: 4 # Aligns Post Effect.
nativeScaling: 2 # Fixes Post effect.
autoFlush: 1 # Fixes post lighting.
SLES-55187:
name: "Disney/Pixar WALL-E"
region: "PAL-F-G"
@@ -27763,6 +27804,7 @@ SLES-55187:
gsHWFixes:
halfPixelOffset: 4 # Aligns Post Effect.
nativeScaling: 2 # Fixes Post effect.
autoFlush: 1 # Fixes post lighting.
SLES-55188:
name: "Disney/Pixar WALL-E"
region: "PAL-G"
@@ -27771,6 +27813,7 @@ SLES-55188:
gsHWFixes:
halfPixelOffset: 4 # Aligns Post Effect.
nativeScaling: 2 # Fixes Post effect.
autoFlush: 1 # Fixes post lighting.
SLES-55189:
name: "Nick Jr. Go Diego Go! Safari Rescue"
region: "PAL-E-F"
@@ -27798,6 +27841,7 @@ SLES-55193:
gsHWFixes:
halfPixelOffset: 4 # Aligns Post Effect.
nativeScaling: 2 # Fixes Post effect.
autoFlush: 1 # Fixes post lighting.
SLES-55194:
name: "Disney/Pixar WALL-E"
region: "PAL-SC"
@@ -27806,6 +27850,7 @@ SLES-55194:
gsHWFixes:
halfPixelOffset: 4 # Aligns Post Effect.
nativeScaling: 2 # Fixes Post effect.
autoFlush: 1 # Fixes post lighting.
SLES-55195:
name: "Disney/Pixar WALL-E"
region: "PAL-GR-I"
@@ -27814,6 +27859,7 @@ SLES-55195:
gsHWFixes:
halfPixelOffset: 4 # Aligns Post Effect.
nativeScaling: 2 # Fixes Post effect.
autoFlush: 1 # Fixes post lighting.
SLES-55196:
name: "Disney/Pixar WALL-E"
region: "PAL-PL-CR"
@@ -27822,6 +27868,7 @@ SLES-55196:
gsHWFixes:
halfPixelOffset: 4 # Aligns Post Effect.
nativeScaling: 2 # Fixes Post effect.
autoFlush: 1 # Fixes post lighting.
SLES-55197:
name: "Dancing Stage SuperNOVA 2"
region: "PAL-M5"
@@ -30353,6 +30400,8 @@ SLKA-25218:
autoFlush: 1 # Fixes bloom rendering.
roundModes:
vu1RoundMode: 0 # Fixes missing light cones curtains and certain effects.
speedHacks:
instantVU1: 0 # Lowers overall system load.
SLKA-25219:
name: "Monster Hunter G"
region: "NTSC-K"
@@ -56801,6 +56850,8 @@ SLPS-25406:
autoFlush: 1 # Fixes bloom rendering.
roundModes:
vu1RoundMode: 0 # Fixes missing light cones curtains and certain effects.
speedHacks:
instantVU1: 0 # Lowers overall system load.
SLPS-25407:
name: "THE KING OF FIGHTERS 2003"
name-sort: "ざ きんぐ おぶ ふぁいたーず2003"
@@ -57702,6 +57753,8 @@ SLPS-25563:
autoFlush: 1 # Fixes bloom rendering.
roundModes:
vu1RoundMode: 0 # Fixes missing light cones curtains and certain effects.
speedHacks:
instantVU1: 0 # Lowers overall system load.
SLPS-25564:
name: "Gallop Racer 8 - Live Horse Racing -"
name-sort: "ぎゃろっぷ れーさー 8 らいゔほーすれーしんぐ"
@@ -65468,6 +65521,8 @@ SLUS-20882:
autoFlush: 1 # Fixes bloom rendering.
roundModes:
vu1RoundMode: 0 # Fixes missing light cones curtains and certain effects.
speedHacks:
instantVU1: 0 # Lowers overall system load.
SLUS-20883:
name: "Tom Clancy's Rainbow Six 3"
region: "NTSC-U"
@@ -66754,9 +66809,13 @@ SLUS-21095:
region: "NTSC-U"
compat: 5
gsHWFixes:
halfPixelOffset: 2 # Fixes post processing position.
nativeScaling: 2 # Fixes post effects.
estimateTextureRegion: 1 # Improves performance and reduces hash cache size.
gpuPaletteConversion: 2 # Improves performance and reduces hash cache size.
autoFlush: 1 # Corrects shadows (Currently still broken even with this).
gpuTargetCLUT: 2 # Fixes light flicker.
getSkipCount: "GSC_DTGames"
SLUS-21096:
name: "Ape Escape - Pumped & Primed"
region: "NTSC-U"
@@ -67158,6 +67217,8 @@ SLUS-21165:
compat: 5
gsHWFixes:
halfPixelOffset: 4 # Fixes post processing alignment.
nativeScaling: 1 # Fixes depth blur intensity.
textureInsideRT: 1 # Fixes on screen garbage.
SLUS-21166:
name: "Full Metal Alchemist 2 - Curse of the Crimson Elixir"
region: "NTSC-U"
@@ -68763,6 +68824,8 @@ SLUS-21395:
name: "Avatar - The Last Airbender"
region: "NTSC-U"
compat: 5
gsHWFixes:
minimumBlendingLevel: 3 # Fixes missing lighting and skin color.
SLUS-21396:
name: "Star Trek - Encounters"
region: "NTSC-U"
@@ -70556,6 +70619,7 @@ SLUS-21736:
gsHWFixes:
halfPixelOffset: 4 # Aligns Post Effect.
nativeScaling: 2 # Fixes Post effect.
autoFlush: 1 # Fixes post lighting.
SLUS-21737:
name: "Riding Star"
region: "NTSC-U"
@@ -70873,10 +70937,12 @@ SLUS-21793:
compat: 3
gsHWFixes:
halfPixelOffset: 2 # Fixes post processing position.
nativeScaling: 1 # Fixes post effects.
nativeScaling: 2 # Fixes post effects.
estimateTextureRegion: 1 # Improves performance and reduces hash cache size.
gpuPaletteConversion: 2 # Improves performance and reduces hash cache size.
autoFlush: 1 # Corrects shadows (Currently still broken even with this).
gpuTargetCLUT: 2 # Fixes light flicker.
getSkipCount: "GSC_DTGames"
SLUS-21794:
name: "Go, Diego, Go! Great Dinosaur Rescue"
region: "NTSC-U"

View File

@@ -154,6 +154,60 @@ bool GSHwHack::GSC_SFEX3(GSRendererHW& r, int& skip)
return true;
}
bool GSHwHack::GSC_DTGames(GSRendererHW& r, int& skip)
{
if (skip == 0)
{
// The game does a shuffle based on the result of a copy from the depth buffer, which ends up looking bizzare so PCSX2 doesn't know how to deal with it.
// What they're actually doing is copying the red/green channel of the result (kind of a shadow stencil) to the alpha channel.
// The further problem to this is the limitation of alpha we can save on an RT as they copy in 255, so I can cheese it here pretending it's RTA'd
if (RTME && RFPSM == PSMCT32 && RTBP0 == RFBP && RTPSM == PSMCT16 && RTEST.ATE && RTEST.ATST == ATST_NEVER && RTEST.AFAIL == AFAIL_FB_ONLY && RFBMSK == 0xFFFFFF)
{
GSTextureCache::Target* rt = g_texture_cache->LookupTarget(GIFRegTEX0::Create(RTBP0, RFBW, RFPSM),
GSVector2i(1, 1), r.GetTextureScaleFactor(), GSTextureCache::RenderTarget);
if (!rt)
return false;
// Clear down the alpha first.
GSHWDrawConfig& clear = r.BeginHLEHardwareDraw(
rt->GetTexture(), nullptr, rt->GetScale(), nullptr, rt->GetScale(), rt->GetUnscaledRect());
clear.colormask.wrgba = 0;
clear.colormask.wa = 1;
r.EndHLEHardwareDraw(false);
// Shuffle the green channel in to alpha.
GSHWDrawConfig& config = r.BeginHLEHardwareDraw(
rt->GetTexture(), nullptr, rt->GetScale(), rt->GetTexture(), rt->GetScale(), rt->GetUnscaledRect());
config.ps.shuffle = 1;
config.ps.dst_fmt = GSLocalMemory::PSM_FMT_32;
config.ps.write_rg = 0;
config.ps.shuffle_same = 0;
config.ps.real16src = 0;
config.ps.shuffle_across = 1;
config.ps.process_rg = r.SHUFFLE_READ;
config.ps.process_ba = r.SHUFFLE_WRITE;
config.colormask.wrgba = 0;
config.colormask.wa = 1;
config.ps.rta_correction = 1;
config.ps.tfx = TFX_DECAL;
config.ps.tcc = true;
r.EndHLEHardwareDraw(true);
rt->m_alpha_min = 0;
rt->m_alpha_max = 255;
skip = 69;
}
}
else
{
if (RTPSM != PSMCT16)
skip = 0;
}
return true;
}
bool GSHwHack::GSC_Tekken5(GSRendererHW& r, int& skip)
{
if (skip == 0)
@@ -1471,6 +1525,7 @@ const GSHwHack::Entry<GSRendererHW::GSC_Ptr> GSHwHack::s_get_skip_count_function
CRC_F(GSC_SakuraWarsSoLongMyLove),
CRC_F(GSC_Simple2000Vol114),
CRC_F(GSC_SFEX3),
CRC_F(GSC_DTGames),
CRC_F(GSC_TalesOfLegendia),
CRC_F(GSC_TalesofSymphonia),
CRC_F(GSC_UrbanReign),

View File

@@ -11,6 +11,7 @@ public:
static bool GSC_Manhunt2(GSRendererHW& r, int& skip);
static bool GSC_SacredBlaze(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);
static bool GSC_BurnoutGames(GSRendererHW& r, int& skip);
static bool GSC_BlackAndBurnoutSky(GSRendererHW& r, int& skip);

View File

@@ -554,7 +554,7 @@ void GSRendererHW::ConvertSpriteTextureShuffle(u32& process_rg, u32& process_ba,
}
else
{
if ((floor(m_vt.m_max.p.y) <= rt->m_valid.w) && ((floor(m_vt.m_max.p.x) > (m_cached_ctx.FRAME.FBW * 64)) || (rt->m_TEX0.TBW != m_cached_ctx.FRAME.FBW)))
if (((m_r.width() + 8) & ~(GSLocalMemory::m_psm[m_cached_ctx.FRAME.PSM].pgs.x - 1)) != GSLocalMemory::m_psm[m_cached_ctx.FRAME.PSM].pgs.x && (floor(m_vt.m_max.p.y) <= rt->m_valid.w) && ((floor(m_vt.m_max.p.x) > (m_cached_ctx.FRAME.FBW * 64)) || (rt->m_TEX0.TBW < m_cached_ctx.FRAME.FBW)))
{
half_bottom_vert = false;
half_bottom_uv = false;

View File

@@ -15,7 +15,7 @@
#include "MTVU.h"
#include "VMManager.h"
static const float UPDATE_INTERVAL = 0.5f;
static const float UPDATE_INTERVAL = 0.25f;
static float s_fps = 0.0f;
static float s_internal_fps = 0.0f;