Compare commits

...

2 Commits

Author SHA1 Message Date
lightningterror
17bf27c018 GS/DX12: Copy/bind rt when tex is fb on slot 0. 2025-04-19 17:05:22 +02:00
lightningterror
80ca5ea5fd GS/HW: Rename GSC_Tekken5 to GSC_NamcoGames.
Multiple games use it.
2025-04-19 16:52:26 +02:00
5 changed files with 28 additions and 27 deletions

View File

@@ -1274,7 +1274,7 @@ SCAJ-10015:
gsHWFixes:
alignSprite: 1 # Fixes vertical lines.
textureInsideRT: 1 # Fixes post effects.
getSkipCount: "GSC_Tekken5" # Fixes upscaling grid, same engine.
getSkipCount: "GSC_NamcoGames" # Fixes upscaling grid, same engine.
SCAJ-20001:
name: "Ratchet & Clank"
region: "NTSC-Unk"
@@ -1987,7 +1987,7 @@ SCAJ-20125:
alignSprite: 1
halfPixelOffset: 4 # Align post.
nativeScaling: 1 # Fixes depth of field effect.
getSkipCount: "GSC_Tekken5"
getSkipCount: "GSC_NamcoGames"
SCAJ-20126:
name: "Tekken 5"
region: "NTSC-Unk"
@@ -1998,7 +1998,7 @@ SCAJ-20126:
alignSprite: 1
halfPixelOffset: 4 # Align post.
nativeScaling: 1 # Fixes depth of field effect.
getSkipCount: "GSC_Tekken5"
getSkipCount: "GSC_NamcoGames"
SCAJ-20127:
name: "EyeToy - Play 2 [with Camera]"
region: "NTSC-Unk"
@@ -2248,7 +2248,7 @@ SCAJ-20163:
gsHWFixes:
halfPixelOffset: 2 # Fixes ghosting.
autoFlush: 2 # Fixes post lighting.
getSkipCount: "GSC_Tekken5" # Fixes upscaling grid, same engine.
getSkipCount: "GSC_NamcoGames" # Fixes upscaling grid, same engine.
SCAJ-20164:
name: "Kingdom Hearts II"
region: "NTSC-Unk"
@@ -2477,7 +2477,7 @@ SCAJ-20199:
alignSprite: 1
halfPixelOffset: 4 # Align post.
nativeScaling: 1 # Fixes depth of field effect.
getSkipCount: "GSC_Tekken5"
getSkipCount: "GSC_NamcoGames"
SCAJ-25002:
name: "Shinobi"
region: "NTSC-Unk"
@@ -4188,7 +4188,7 @@ SCED-53538:
alignSprite: 1
halfPixelOffset: 4 # Align post.
nativeScaling: 1 # Fixes depth of field effect.
getSkipCount: "GSC_Tekken5"
getSkipCount: "GSC_NamcoGames"
SCED-53611:
name: "Official PlayStation 2 Magazine - German Kids Special"
region: "PAL-G"
@@ -5827,7 +5827,7 @@ SCES-53202:
alignSprite: 1
halfPixelOffset: 4 # Align post.
nativeScaling: 1 # Fixes depth of field effect.
getSkipCount: "GSC_Tekken5"
getSkipCount: "GSC_NamcoGames"
SCES-53247:
name: "WRC Rally Evolved"
region: "PAL-M8"
@@ -7285,7 +7285,7 @@ SCKA-20049:
alignSprite: 1
halfPixelOffset: 4 # Align post.
nativeScaling: 1 # Fixes depth of field effect.
getSkipCount: "GSC_Tekken5"
getSkipCount: "GSC_NamcoGames"
SCKA-20050:
name: "Tales of Legendia"
region: "NTSC-K"
@@ -7512,7 +7512,7 @@ SCKA-20081:
alignSprite: 1
halfPixelOffset: 4 # Align post.
nativeScaling: 1 # Fixes depth of field effect.
getSkipCount: "GSC_Tekken5"
getSkipCount: "GSC_NamcoGames"
SCKA-20082:
name: "Ace Combat 5 - The Unsung War [PlayStation 2 Big Hit Series]"
region: "NTSC-K"
@@ -54888,7 +54888,7 @@ SLPS-20485:
gsHWFixes:
alignSprite: 1 # Fixes vertical lines.
textureInsideRT: 1 # Fixes post effects.
getSkipCount: "GSC_Tekken5" # Fixes upscaling grid, same engine.
getSkipCount: "GSC_NamcoGames" # Fixes upscaling grid, same engine.
SLPS-20486:
name: "太鼓の達人 ドカッ!と大盛り七代目 [ソフト単体]"
name-sort: "たいこのたつじん どかっ!とおおもりななだいめ [そふとたんたい]"
@@ -54897,7 +54897,7 @@ SLPS-20486:
gsHWFixes:
alignSprite: 1 # Fixes vertical lines.
textureInsideRT: 1 # Fixes post effects.
getSkipCount: "GSC_Tekken5" # Fixes upscaling grid, same engine.
getSkipCount: "GSC_NamcoGames" # Fixes upscaling grid, same engine.
SLPS-20487:
name: "パチスロキング! 科学忍者隊ガッチャマン"
name-sort: "ぱちすろきんぐ! かがくにんじゃたいがっちゃまん"
@@ -58043,7 +58043,7 @@ SLPS-25510:
alignSprite: 1 # Fixes vertical lines.
halfPixelOffset: 4 # Align post.
nativeScaling: 1 # Fixes depth of field effect.
getSkipCount: "GSC_Tekken5"
getSkipCount: "GSC_NamcoGames"
SLPS-25511:
name: "羅刹 -Alternative-"
name-sort: "らせつ -Alternative-"
@@ -58484,7 +58484,7 @@ SLPS-25586:
halfPixelOffset: 4 # Fixes post positioning.
nativeScaling: 1 # Fixes post effects.
autoFlush: 2 # Fixes post lighting.
getSkipCount: "GSC_Tekken5" # Fixes upscaling grid, same engine.
getSkipCount: "GSC_NamcoGames" # Fixes upscaling grid, same engine.
SLPS-25587:
name: "シュガシュガルーン 恋もおしゃれもピックアップ!"
name-sort: "しゅがしゅがるーん こいもおしゃれもぴっくあっぷ!"
@@ -61222,7 +61222,7 @@ SLPS-73223:
alignSprite: 1 # Fixes vertical lines.
halfPixelOffset: 4 # Align post.
nativeScaling: 1 # Fixes depth of field effect.
getSkipCount: "GSC_Tekken5"
getSkipCount: "GSC_NamcoGames"
SLPS-73224:
name: "ゼノサーガ エピソードⅡ [善悪の彼岸] [PlayStation2 the Best] [ディスク1/2]"
name-sort: "ぜのさーが えぴそーど2 ぜんあくのひがん [PlayStation2 the Best] [でぃすく1/2]"
@@ -61522,7 +61522,7 @@ SLPS-73252:
halfPixelOffset: 4 # Fixes post positioning.
nativeScaling: 1 # Fixes post effects.
autoFlush: 2 # Fixes post lighting.
getSkipCount: "GSC_Tekken5" # Fixes upscaling grid, same engine.
getSkipCount: "GSC_NamcoGames" # Fixes upscaling grid, same engine.
SLPS-73253:
name: "るろうに剣心-明治剣客浪漫譚- 炎上!京都輪廻 [PlayStation2 the Best]"
name-sort: "るろうにけんしん めいじけんかくろまんたん えんじょう きょうとりんね [PlayStation2 the Best]"
@@ -67249,7 +67249,7 @@ SLUS-21059:
alignSprite: 1 # Fixes vertical lines.
halfPixelOffset: 4 # Align post.
nativeScaling: 1 # Fixes depth of field effect.
getSkipCount: "GSC_Tekken5"
getSkipCount: "GSC_NamcoGames"
SLUS-21060:
name: "WWE SmackDown! vs. RAW"
region: "NTSC-U"
@@ -67801,7 +67801,7 @@ SLUS-21160:
alignSprite: 1 # Fixes vertical lines.
halfPixelOffset: 4 # Align post.
nativeScaling: 1 # Fixes depth of field effect.
getSkipCount: "GSC_Tekken5"
getSkipCount: "GSC_NamcoGames"
SLUS-21161:
name: "Fight Night Round 2"
region: "NTSC-U"
@@ -69387,7 +69387,7 @@ SLUS-21386:
halfPixelOffset: 4 # Fixes post positioning.
nativeScaling: 1 # Fixes post effects.
autoFlush: 2 # Fixes post lighting.
getSkipCount: "GSC_Tekken5" # Fixes upscaling grid, same engine.
getSkipCount: "GSC_NamcoGames" # Fixes upscaling grid, same engine.
SLUS-21387:
name: "Warship Gunner 2"
region: "NTSC-U"

View File

@@ -2631,7 +2631,7 @@ void GSDevice11::RenderHW(GSHWDrawConfig& config)
}
GSTexture* rt_copy = nullptr;
if (config.require_one_barrier || (config.tex && config.tex == config.rt)) // Used as "bind rt" flag when texture barrier is unsupported
if (config.require_one_barrier || (config.tex && config.tex == config.rt)) // Used as "bind rt" flag when texture barrier is unsupported.
{
// Bind the RT.This way special effect can use it.
// Do not always bind the rt when it's not needed,

View File

@@ -3900,7 +3900,7 @@ void GSDevice12::RenderHW(GSHWDrawConfig& config)
}
}
if (config.require_one_barrier)
if (config.require_one_barrier || (config.tex && config.tex == config.rt)) // Used as "bind rt" flag when texture barrier is unsupported.
{
// requires a copy of the RT
draw_rt_clone = static_cast<GSTexture12*>(CreateTexture(rtsize.x, rtsize.y, 1, colclip_rt ? GSTexture::Format::ColorClip : GSTexture::Format::Color, true));
@@ -3913,7 +3913,10 @@ void GSDevice12::RenderHW(GSHWDrawConfig& config)
draw_rt_clone->SetState(GSTexture::State::Invalidated);
CopyRect(draw_rt, draw_rt_clone, config.drawarea, config.drawarea.left, config.drawarea.top);
PSSetShaderResource(2, draw_rt_clone, true);
if (config.require_one_barrier)
PSSetShaderResource(2, draw_rt_clone, true);
if (config.tex && config.tex == config.rt)
PSSetShaderResource(0, draw_rt_clone, true);
}
}

View File

@@ -178,7 +178,7 @@ bool GSHwHack::GSC_DTGames(GSRendererHW& r, int& skip)
return true;
}
bool GSHwHack::GSC_Tekken5(GSRendererHW& r, int& skip)
bool GSHwHack::GSC_NamcoGames(GSRendererHW& r, int& skip)
{
if (skip == 0)
{
@@ -195,7 +195,7 @@ bool GSHwHack::GSC_Tekken5(GSRendererHW& r, int& skip)
if (!rt)
return false;
GL_INS("GSC_Tekken5(): HLE channel shuffle");
GL_INS("GSC_NamcoGames(): HLE channel shuffle");
// have to set up the palette ourselves too, since GSC executes before it does
r.m_mem.m_clut.Read32(RTEX0, r.m_draw_env->TEXA);
@@ -1502,14 +1502,12 @@ const GSHwHack::Entry<GSRendererHW::GSC_Ptr> GSHwHack::s_get_skip_count_function
CRC_F(GSC_Battlefield2),
// Channel Effect
CRC_F(GSC_NamcoGames),
CRC_F(GSC_SteambotChronicles),
// Depth Issue
CRC_F(GSC_BurnoutGames),
// Half Screen bottom issue
CRC_F(GSC_Tekken5),
// Upscaling hacks
CRC_F(GSC_UltramanFightingEvolution),
};

View File

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