mirror of https://github.com/PCSX2/pcsx2.git
parent
fe1e432f9e
commit
580b7c94fb
|
@ -8984,7 +8984,6 @@ SLAJ-25053:
|
|||
cpuCLUTRender: 1 # Fixes sun penetrating bridges (along with HPO special).
|
||||
getSkipCount: "GSC_BurnoutGames"
|
||||
beforeDraw: "OI_BurnoutGames"
|
||||
afterDraw: "OO_BurnoutGames"
|
||||
SLAJ-25055:
|
||||
name: "Def Jam - Fight for N.Y."
|
||||
region: "NTSC-Unk"
|
||||
|
@ -9023,7 +9022,6 @@ SLAJ-25066:
|
|||
cpuCLUTRender: 1 # Fixes sun penetrating bridges (along with HPO special).
|
||||
getSkipCount: "GSC_BurnoutGames"
|
||||
beforeDraw: "OI_BurnoutGames"
|
||||
afterDraw: "OO_BurnoutGames"
|
||||
memcardFilters:
|
||||
- "SLAJ-25066"
|
||||
- "SLPM-66108"
|
||||
|
@ -9092,8 +9090,8 @@ SLAJ-25078:
|
|||
roundSprite: 1 # Fixes lighting misalignment such as the street poles and the sun.
|
||||
mipmap: 2 # Fixes over sharpening.
|
||||
trilinearFiltering: 1 # Smoothes out mipmapping.
|
||||
getSkipCount: "GSC_BlackAndBurnoutSky"
|
||||
beforeDraw: "OI_BurnoutGames"
|
||||
afterDraw: "OO_BurnoutGames"
|
||||
SLAJ-25079:
|
||||
name: "Shin Sangoku Musou 4 - Empires"
|
||||
region: "NTSC-Unk"
|
||||
|
@ -9146,7 +9144,6 @@ SLAJ-25094:
|
|||
cpuCLUTRender: 1 # Fixes sun penetrating bridges (along with HPO special).
|
||||
getSkipCount: "GSC_BurnoutGames"
|
||||
beforeDraw: "OI_BurnoutGames"
|
||||
afterDraw: "OO_BurnoutGames"
|
||||
SLAJ-25095:
|
||||
name: "Medal of Honor - Vanguard"
|
||||
region: "NTSC-Unk"
|
||||
|
@ -9311,7 +9308,6 @@ SLED-52597:
|
|||
cpuCLUTRender: 1 # Fixes sun penetrating bridges (along with HPO special).
|
||||
getSkipCount: "GSC_BurnoutGames"
|
||||
beforeDraw: "OI_BurnoutGames"
|
||||
afterDraw: "OO_BurnoutGames"
|
||||
SLED-52852:
|
||||
name: "Forgotten Realms - Demon Stone [Demo]"
|
||||
region: "PAL-E"
|
||||
|
@ -9378,7 +9374,6 @@ SLED-53512:
|
|||
cpuCLUTRender: 1 # Fixes sun penetrating bridges (along with HPO special).
|
||||
getSkipCount: "GSC_BurnoutGames"
|
||||
beforeDraw: "OI_BurnoutGames"
|
||||
afterDraw: "OO_BurnoutGames"
|
||||
SLED-53537:
|
||||
name: "187 - Ride or Die [Demo]"
|
||||
region: "PAL-E"
|
||||
|
@ -9426,8 +9421,8 @@ SLED-53937:
|
|||
roundSprite: 1 # Fixes lighting misalignment such as the street poles and the sun.
|
||||
mipmap: 2 # Fixes over sharpening.
|
||||
trilinearFiltering: 1 # Smoothes out mipmapping.
|
||||
getSkipCount: "GSC_BlackAndBurnoutSky"
|
||||
beforeDraw: "OI_BurnoutGames"
|
||||
afterDraw: "OO_BurnoutGames"
|
||||
SLED-53951:
|
||||
name: "Honda Demo [Demo]"
|
||||
region: "PAL-E"
|
||||
|
@ -15067,7 +15062,6 @@ SLES-52584:
|
|||
cpuCLUTRender: 1 # Fixes sun penetrating bridges (along with HPO special).
|
||||
getSkipCount: "GSC_BurnoutGames"
|
||||
beforeDraw: "OI_BurnoutGames"
|
||||
afterDraw: "OO_BurnoutGames"
|
||||
SLES-52585:
|
||||
name: "Burnout 3 - Takedown"
|
||||
region: "PAL-F-G-I"
|
||||
|
@ -15082,7 +15076,6 @@ SLES-52585:
|
|||
cpuCLUTRender: 1 # Fixes sun penetrating bridges (along with HPO special).
|
||||
getSkipCount: "GSC_BurnoutGames"
|
||||
beforeDraw: "OI_BurnoutGames"
|
||||
afterDraw: "OO_BurnoutGames"
|
||||
SLES-52587:
|
||||
name: "Army Men - Sarge's War"
|
||||
region: "PAL-M5"
|
||||
|
@ -17265,7 +17258,6 @@ SLES-53506:
|
|||
cpuCLUTRender: 1 # Fixes sun penetrating bridges (along with HPO special).
|
||||
getSkipCount: "GSC_BurnoutGames"
|
||||
beforeDraw: "OI_BurnoutGames"
|
||||
afterDraw: "OO_BurnoutGames"
|
||||
memcardFilters:
|
||||
- "SLES-53506"
|
||||
- "SLES-53507"
|
||||
|
@ -17287,7 +17279,6 @@ SLES-53507:
|
|||
cpuCLUTRender: 1 # Fixes sun penetrating bridges (along with HPO special).
|
||||
getSkipCount: "GSC_BurnoutGames"
|
||||
beforeDraw: "OI_BurnoutGames"
|
||||
afterDraw: "OO_BurnoutGames"
|
||||
memcardFilters:
|
||||
- "SLES-53506"
|
||||
- "SLES-53507"
|
||||
|
@ -18394,8 +18385,8 @@ SLES-53886:
|
|||
roundSprite: 1 # Fixes lighting misalignment such as the street poles and the sun.
|
||||
mipmap: 2 # Fixes over sharpening.
|
||||
trilinearFiltering: 1 # Smoothes out mipmapping.
|
||||
getSkipCount: "GSC_BlackAndBurnoutSky"
|
||||
beforeDraw: "OI_BurnoutGames"
|
||||
afterDraw: "OO_BurnoutGames"
|
||||
patches:
|
||||
ADDFF505:
|
||||
content: |-
|
||||
|
@ -18732,8 +18723,8 @@ SLES-54030:
|
|||
roundSprite: 1 # Fixes lighting misalignment such as the street poles and the sun.
|
||||
mipmap: 2 # Fixes over sharpening.
|
||||
trilinearFiltering: 1 # Smoothes out mipmapping.
|
||||
getSkipCount: "GSC_BlackAndBurnoutSky"
|
||||
beforeDraw: "OI_BurnoutGames"
|
||||
afterDraw: "OO_BurnoutGames"
|
||||
patches:
|
||||
CAA04879:
|
||||
content: |-
|
||||
|
@ -20202,7 +20193,6 @@ SLES-54627:
|
|||
cpuCLUTRender: 1 # Fixes sun penetrating bridges (along with HPO special).
|
||||
getSkipCount: "GSC_BurnoutGames"
|
||||
beforeDraw: "OI_BurnoutGames"
|
||||
afterDraw: "OO_BurnoutGames"
|
||||
SLES-54628:
|
||||
name: "Skate Attack [Promo]"
|
||||
region: "PAL-E"
|
||||
|
@ -20377,7 +20367,6 @@ SLES-54681:
|
|||
cpuCLUTRender: 1 # Fixes sun penetrating bridges (along with HPO special).
|
||||
getSkipCount: "GSC_BurnoutGames"
|
||||
beforeDraw: "OI_BurnoutGames"
|
||||
afterDraw: "OO_BurnoutGames"
|
||||
SLES-54683:
|
||||
name: "Medal of Honor - Vanguard"
|
||||
region: "PAL-M9"
|
||||
|
@ -23620,7 +23609,6 @@ SLKA-25206:
|
|||
cpuCLUTRender: 1 # Fixes sun penetrating bridges (along with HPO special).
|
||||
getSkipCount: "GSC_BurnoutGames"
|
||||
beforeDraw: "OI_BurnoutGames"
|
||||
afterDraw: "OO_BurnoutGames"
|
||||
SLKA-25207:
|
||||
name: "Sakura Taisen V - Episode 0 - Samurai Girl of Wild"
|
||||
region: "NTSC-K"
|
||||
|
@ -23914,7 +23902,6 @@ SLKA-25304:
|
|||
cpuCLUTRender: 1 # Fixes sun penetrating bridges (along with HPO special).
|
||||
getSkipCount: "GSC_BurnoutGames"
|
||||
beforeDraw: "OI_BurnoutGames"
|
||||
afterDraw: "OO_BurnoutGames"
|
||||
SLKA-25307:
|
||||
name: "Dragon Ball Z Sparking"
|
||||
region: "NTSC-K"
|
||||
|
@ -24229,7 +24216,6 @@ SLPM-55004:
|
|||
cpuCLUTRender: 1 # Fixes sun penetrating bridges (along with HPO special).
|
||||
getSkipCount: "GSC_BurnoutGames"
|
||||
beforeDraw: "OI_BurnoutGames"
|
||||
afterDraw: "OO_BurnoutGames"
|
||||
SLPM-55005:
|
||||
name: "Mana Khemia 2 - Ochita Gakuen to Renkinjutsushi Tachi"
|
||||
region: "NTSC-J"
|
||||
|
@ -24271,7 +24257,6 @@ SLPM-55036:
|
|||
cpuCLUTRender: 1 # Fixes sun penetrating bridges (along with HPO special).
|
||||
getSkipCount: "GSC_BurnoutGames"
|
||||
beforeDraw: "OI_BurnoutGames"
|
||||
afterDraw: "OO_BurnoutGames"
|
||||
SLPM-55039:
|
||||
name: "Soukoku no Kusabi - Hiiro no Kakera 3 [Limited Edition]"
|
||||
region: "NTSC-J"
|
||||
|
@ -24850,7 +24835,6 @@ SLPM-60246:
|
|||
cpuCLUTRender: 1 # Fixes sun penetrating bridges (along with HPO special).
|
||||
getSkipCount: "GSC_BurnoutGames"
|
||||
beforeDraw: "OI_BurnoutGames"
|
||||
afterDraw: "OO_BurnoutGames"
|
||||
SLPM-60251:
|
||||
name: "Devil May Cry 3 [Trial Version]"
|
||||
region: "NTSC-J"
|
||||
|
@ -29701,7 +29685,6 @@ SLPM-65719:
|
|||
cpuCLUTRender: 1 # Fixes sun penetrating bridges (along with HPO special).
|
||||
getSkipCount: "GSC_BurnoutGames"
|
||||
beforeDraw: "OI_BurnoutGames"
|
||||
afterDraw: "OO_BurnoutGames"
|
||||
SLPM-65720:
|
||||
name: "Shin Sangoku Musou 2 Mushoden [Koei the Best]"
|
||||
region: "NTSC-J"
|
||||
|
@ -30532,7 +30515,6 @@ SLPM-65958:
|
|||
cpuCLUTRender: 1 # Fixes sun penetrating bridges (along with HPO special).
|
||||
getSkipCount: "GSC_BurnoutGames"
|
||||
beforeDraw: "OI_BurnoutGames"
|
||||
afterDraw: "OO_BurnoutGames"
|
||||
SLPM-65959:
|
||||
name: "Standard Daisenryaku - Ushinawareta Shouri"
|
||||
region: "NTSC-J"
|
||||
|
@ -31086,7 +31068,6 @@ SLPM-66108:
|
|||
cpuCLUTRender: 1 # Fixes sun penetrating bridges (along with HPO special).
|
||||
getSkipCount: "GSC_BurnoutGames"
|
||||
beforeDraw: "OI_BurnoutGames"
|
||||
afterDraw: "OO_BurnoutGames"
|
||||
memcardFilters:
|
||||
- "SLAJ-25066"
|
||||
- "SLPM-66108"
|
||||
|
@ -32028,8 +32009,8 @@ SLPM-66354:
|
|||
roundSprite: 1 # Fixes lighting misalignment such as the street poles and the sun.
|
||||
mipmap: 2 # Fixes over sharpening.
|
||||
trilinearFiltering: 1 # Smoothes out mipmapping.
|
||||
getSkipCount: "GSC_BlackAndBurnoutSky"
|
||||
beforeDraw: "OI_BurnoutGames"
|
||||
afterDraw: "OO_BurnoutGames"
|
||||
patches:
|
||||
B3A9F9ED:
|
||||
content: |-
|
||||
|
@ -33148,7 +33129,6 @@ SLPM-66652:
|
|||
cpuCLUTRender: 1 # Fixes sun penetrating bridges (along with HPO special).
|
||||
getSkipCount: "GSC_BurnoutGames"
|
||||
beforeDraw: "OI_BurnoutGames"
|
||||
afterDraw: "OO_BurnoutGames"
|
||||
memcardFilters:
|
||||
- "SLAJ-25066"
|
||||
- "SLPM-66108"
|
||||
|
@ -33482,8 +33462,8 @@ SLPM-66731:
|
|||
roundSprite: 1 # Fixes lighting misalignment such as the street poles and the sun.
|
||||
mipmap: 2 # Fixes over sharpening.
|
||||
trilinearFiltering: 1 # Smoothes out mipmapping.
|
||||
getSkipCount: "GSC_BlackAndBurnoutSky"
|
||||
beforeDraw: "OI_BurnoutGames"
|
||||
afterDraw: "OO_BurnoutGames"
|
||||
SLPM-66732:
|
||||
name: "Iinazuke [Limited Edition]"
|
||||
region: "NTSC-J"
|
||||
|
@ -33533,7 +33513,6 @@ SLPM-66739:
|
|||
cpuCLUTRender: 1 # Fixes sun penetrating bridges (along with HPO special).
|
||||
getSkipCount: "GSC_BurnoutGames"
|
||||
beforeDraw: "OI_BurnoutGames"
|
||||
afterDraw: "OO_BurnoutGames"
|
||||
SLPM-66740:
|
||||
name: "Sentou Kokka Kai - Legend [DX Pack]"
|
||||
region: "NTSC-J"
|
||||
|
@ -34254,8 +34233,8 @@ SLPM-66961:
|
|||
roundSprite: 1 # Fixes lighting misalignment such as the street poles and the sun.
|
||||
mipmap: 2 # Fixes over sharpening.
|
||||
trilinearFiltering: 1 # Smoothes out mipmapping.
|
||||
getSkipCount: "GSC_BlackAndBurnoutSky"
|
||||
beforeDraw: "OI_BurnoutGames"
|
||||
afterDraw: "OO_BurnoutGames"
|
||||
SLPM-66962:
|
||||
name: "Burnout 3 - Takedown [EA-SY! 1980]"
|
||||
region: "NTSC-J"
|
||||
|
@ -34270,7 +34249,6 @@ SLPM-66962:
|
|||
cpuCLUTRender: 1 # Fixes sun penetrating bridges (along with HPO special).
|
||||
getSkipCount: "GSC_BurnoutGames"
|
||||
beforeDraw: "OI_BurnoutGames"
|
||||
afterDraw: "OO_BurnoutGames"
|
||||
SLPM-66963:
|
||||
name: "Medal of Honor - Frontline [EA-SY! 1980]"
|
||||
region: "NTSC-J"
|
||||
|
@ -45229,7 +45207,6 @@ SLUS-21050:
|
|||
cpuCLUTRender: 1 # Fixes sun penetrating bridges (along with HPO special).
|
||||
getSkipCount: "GSC_BurnoutGames"
|
||||
beforeDraw: "OI_BurnoutGames"
|
||||
afterDraw: "OO_BurnoutGames"
|
||||
SLUS-21051:
|
||||
name: "FIFA 2005"
|
||||
region: "NTSC-U"
|
||||
|
@ -46204,7 +46181,6 @@ SLUS-21242:
|
|||
cpuCLUTRender: 1 # Fixes sun penetrating bridges (along with HPO special).
|
||||
getSkipCount: "GSC_BurnoutGames"
|
||||
beforeDraw: "OI_BurnoutGames"
|
||||
afterDraw: "OO_BurnoutGames"
|
||||
memcardFilters: # Reads Burnout 3 and NFL 06 saves for unlockables.
|
||||
- "SLUS-21242"
|
||||
- "SLUS-21050"
|
||||
|
@ -47003,8 +46979,8 @@ SLUS-21376:
|
|||
roundSprite: 1 # Fixes lighting misalignment such as the street poles and the sun.
|
||||
mipmap: 2 # Fixes over sharpening.
|
||||
trilinearFiltering: 1 # Smoothes out mipmapping.
|
||||
getSkipCount: "GSC_BlackAndBurnoutSky"
|
||||
beforeDraw: "OI_BurnoutGames"
|
||||
afterDraw: "OO_BurnoutGames"
|
||||
patches:
|
||||
5C891FF1:
|
||||
content: |-
|
||||
|
@ -47998,7 +47974,6 @@ SLUS-21596:
|
|||
cpuCLUTRender: 1 # Fixes sun penetrating bridges (along with HPO special).
|
||||
getSkipCount: "GSC_BurnoutGames"
|
||||
beforeDraw: "OI_BurnoutGames"
|
||||
afterDraw: "OO_BurnoutGames"
|
||||
SLUS-21597:
|
||||
name: "Medal of Honor - Vanguard"
|
||||
region: "NTSC-U"
|
||||
|
@ -50166,7 +50141,6 @@ SLUS-29113:
|
|||
cpuCLUTRender: 1 # Fixes sun penetrating bridges (along with HPO special).
|
||||
getSkipCount: "GSC_BurnoutGames"
|
||||
beforeDraw: "OI_BurnoutGames"
|
||||
afterDraw: "OO_BurnoutGames"
|
||||
SLUS-29116:
|
||||
name: "WWE SmackDown! vs. RAW [Public Beta Vol.1.0]"
|
||||
region: "NTSC-U"
|
||||
|
@ -50282,7 +50256,6 @@ SLUS-29153:
|
|||
cpuCLUTRender: 1 # Fixes sun penetrating bridges (along with HPO special).
|
||||
getSkipCount: "GSC_BurnoutGames"
|
||||
beforeDraw: "OI_BurnoutGames"
|
||||
afterDraw: "OO_BurnoutGames"
|
||||
SLUS-29154:
|
||||
name: "NHL '06 [Demo]"
|
||||
region: "NTSC-U"
|
||||
|
@ -50384,8 +50357,8 @@ SLUS-29180:
|
|||
roundSprite: 1 # Fixes lighting misalignment such as the street poles and the sun.
|
||||
mipmap: 2 # Fixes over sharpening.
|
||||
trilinearFiltering: 1 # Smoothes out mipmapping.
|
||||
getSkipCount: "GSC_BlackAndBurnoutSky"
|
||||
beforeDraw: "OI_BurnoutGames"
|
||||
afterDraw: "OO_BurnoutGames"
|
||||
SLUS-29183:
|
||||
name: "Fight Night - Round 3 [Demo]"
|
||||
region: "NTSC-U"
|
||||
|
|
|
@ -717,7 +717,6 @@ struct Pcsx2Config
|
|||
int TVShader{0};
|
||||
s16 GetSkipCountFunctionId{-1};
|
||||
s16 BeforeDrawFunctionId{-1};
|
||||
s16 AfterDrawFunctionId{-1};
|
||||
int SkipDrawStart{0};
|
||||
int SkipDrawEnd{0};
|
||||
|
||||
|
|
|
@ -231,9 +231,6 @@
|
|||
},
|
||||
"beforeDraw": {
|
||||
"type": "string"
|
||||
},
|
||||
"afterDraw": {
|
||||
"type": "string"
|
||||
}
|
||||
},
|
||||
"additionalProperties": false
|
||||
|
|
|
@ -707,8 +707,7 @@ void GSUpdateConfig(const Pcsx2Config::GSOptions& new_config)
|
|||
if (GSConfig.CRCHack != old_config.CRCHack ||
|
||||
GSConfig.UpscaleMultiplier != old_config.UpscaleMultiplier ||
|
||||
GSConfig.GetSkipCountFunctionId != old_config.GetSkipCountFunctionId ||
|
||||
GSConfig.BeforeDrawFunctionId != old_config.BeforeDrawFunctionId ||
|
||||
GSConfig.AfterDrawFunctionId != old_config.BeforeDrawFunctionId)
|
||||
GSConfig.BeforeDrawFunctionId != old_config.BeforeDrawFunctionId)
|
||||
{
|
||||
g_gs_renderer->UpdateCRCHacks();
|
||||
}
|
||||
|
|
|
@ -51,7 +51,6 @@ class HostDisplay;
|
|||
// Returns the ID for the specified function, otherwise -1.
|
||||
s16 GSLookupGetSkipCountFunctionId(const std::string_view& name);
|
||||
s16 GSLookupBeforeDrawFunctionId(const std::string_view& name);
|
||||
s16 GSLookupAfterDrawFunctionId(const std::string_view& name);
|
||||
|
||||
int GSinit();
|
||||
void GSshutdown();
|
||||
|
|
|
@ -335,6 +335,28 @@ bool GSHwHack::GSC_BurnoutGames(GSRendererHW& r, const GSFrameInfo& fi, int& ski
|
|||
}
|
||||
}
|
||||
|
||||
return GSC_BlackAndBurnoutSky(r, fi, skip);
|
||||
}
|
||||
|
||||
bool GSHwHack::GSC_BlackAndBurnoutSky(GSRendererHW& r, const GSFrameInfo& fi, int& skip)
|
||||
{
|
||||
if (skip != 0)
|
||||
return true;
|
||||
|
||||
const GIFRegTEX0& TEX0 = RCONTEXT->TEX0;
|
||||
const GIFRegALPHA& ALPHA = RCONTEXT->ALPHA;
|
||||
const GIFRegFRAME& FRAME = RCONTEXT->FRAME;
|
||||
if (RPRIM->PRIM == GS_SPRITE && !RPRIM->IIP && RPRIM->TME && !RPRIM->FGE && RPRIM->ABE && !RPRIM->AA1 && !RPRIM->FST && !RPRIM->FIX && TEX0.TBW == 16 && TEX0.TW == 10 && TEX0.TCC && !TEX0.TFX && TEX0.PSM == PSM_PSMT8 && TEX0.CPSM == PSM_PSMCT32 && !TEX0.CSM && TEX0.TH == 8 && ALPHA.A == ALPHA.B && ALPHA.D == 0 && FRAME.FBW == 16 && FRAME.PSM == PSM_PSMCT32)
|
||||
{
|
||||
// Readback clouds being rendered during level loading.
|
||||
// Later the alpha channel from the 32 bit frame buffer is used as an 8 bit indexed texture to draw
|
||||
// the clouds on top of the sky at each frame.
|
||||
// Burnout 3 PAL 50Hz: 0x3ba0 => 0x1e80.
|
||||
GL_INS("OO_BurnoutGames - Readback clouds renderered from TEX0.TBP0 = 0x%04x (TEX0.CBP = 0x%04x) to FBP = 0x%04x", TEX0.TBP0, TEX0.CBP, FRAME.Block());
|
||||
r.SwPrimRender(r);
|
||||
skip = 1;
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
|
@ -1153,24 +1175,6 @@ bool GSHwHack::OI_BurnoutGames(GSRendererHW& r, GSTexture* rt, GSTexture* ds, GS
|
|||
return false;
|
||||
}
|
||||
|
||||
// OO (others output?) hacks: invalidate extra local memory after the draw call
|
||||
|
||||
void GSHwHack::OO_BurnoutGames(GSRendererHW& r)
|
||||
{
|
||||
const GIFRegTEX0& TEX0 = RCONTEXT->TEX0;
|
||||
const GIFRegALPHA& ALPHA = RCONTEXT->ALPHA;
|
||||
const GIFRegFRAME& FRAME = RCONTEXT->FRAME;
|
||||
if (RPRIM->PRIM == GS_SPRITE && !RPRIM->IIP && RPRIM->TME && !RPRIM->FGE && RPRIM->ABE && !RPRIM->AA1 && !RPRIM->FST && !RPRIM->FIX && TEX0.TBW == 16 && TEX0.TW == 10 && TEX0.TCC && !TEX0.TFX && TEX0.PSM == PSM_PSMT8 && TEX0.CPSM == PSM_PSMCT32 && !TEX0.CSM && TEX0.TH == 8 && ALPHA.A == ALPHA.B && ALPHA.D == 0 && FRAME.FBW == 16 && FRAME.PSM == PSM_PSMCT32)
|
||||
{
|
||||
// Readback clouds being rendered during level loading.
|
||||
// Later the alpha channel from the 32 bit frame buffer is used as an 8 bit indexed texture to draw
|
||||
// the clouds on top of the sky at each frame.
|
||||
// Burnout 3 PAL 50Hz: 0x3ba0 => 0x1e80.
|
||||
GL_INS("OO_BurnoutGames - Readback clouds renderered from TEX0.TBP0 = 0x%04x (TEX0.CBP = 0x%04x) to FBP = 0x%04x", TEX0.TBP0, TEX0.CBP, FRAME.Block());
|
||||
r.m_tc->InvalidateLocalMem(RCONTEXT->offset.fb, r.m_r);
|
||||
}
|
||||
}
|
||||
|
||||
#undef RCONTEXT
|
||||
#undef RPRIM
|
||||
|
||||
|
@ -1200,6 +1204,7 @@ const GSHwHack::Entry<GSRendererHW::GSC_Ptr> GSHwHack::s_get_skip_count_function
|
|||
CRC_F(GSC_TombRaiderUnderWorld, CRCHackLevel::Partial),
|
||||
CRC_F(GSC_UrbanReign, CRCHackLevel::Partial),
|
||||
CRC_F(GSC_ZettaiZetsumeiToshi2, CRCHackLevel::Partial),
|
||||
CRC_F(GSC_BlackAndBurnoutSky, CRCHackLevel::Partial),
|
||||
|
||||
// Channel Effect
|
||||
CRC_F(GSC_CrashBandicootWoC, CRCHackLevel::Partial),
|
||||
|
@ -1252,10 +1257,6 @@ const GSHwHack::Entry<GSRendererHW::OI_Ptr> GSHwHack::s_before_draw_functions[]
|
|||
CRC_F(OI_BurnoutGames, CRCHackLevel::Minimum),
|
||||
};
|
||||
|
||||
const GSHwHack::Entry<GSRendererHW::OO_Ptr> GSHwHack::s_after_draw_functions[] = {
|
||||
CRC_F(OO_BurnoutGames, CRCHackLevel::Minimum),
|
||||
};
|
||||
|
||||
#undef CRC_F
|
||||
|
||||
s16 GSLookupGetSkipCountFunctionId(const std::string_view& name)
|
||||
|
@ -1280,17 +1281,6 @@ s16 GSLookupBeforeDrawFunctionId(const std::string_view& name)
|
|||
return -1;
|
||||
}
|
||||
|
||||
s16 GSLookupAfterDrawFunctionId(const std::string_view& name)
|
||||
{
|
||||
for (u32 i = 0; i < std::size(GSHwHack::s_after_draw_functions); i++)
|
||||
{
|
||||
if (name == GSHwHack::s_after_draw_functions[i].name)
|
||||
return static_cast<s16>(i);
|
||||
}
|
||||
|
||||
return -1;
|
||||
}
|
||||
|
||||
void GSRendererHW::UpdateCRCHacks()
|
||||
{
|
||||
GSRenderer::UpdateCRCHacks();
|
||||
|
@ -1303,7 +1293,6 @@ void GSRendererHW::UpdateCRCHacks()
|
|||
|
||||
m_gsc = nullptr;
|
||||
m_oi = nullptr;
|
||||
m_oo = nullptr;
|
||||
|
||||
if (real_level != CRCHackLevel::Off)
|
||||
{
|
||||
|
@ -1320,13 +1309,6 @@ void GSRendererHW::UpdateCRCHacks()
|
|||
{
|
||||
m_oi = GSHwHack::s_before_draw_functions[GSConfig.BeforeDrawFunctionId].ptr;
|
||||
}
|
||||
|
||||
if (GSConfig.AfterDrawFunctionId >= 0 &&
|
||||
static_cast<size_t>(GSConfig.AfterDrawFunctionId) < std::size(GSHwHack::s_after_draw_functions) &&
|
||||
real_level >= GSHwHack::s_after_draw_functions[GSConfig.AfterDrawFunctionId].level)
|
||||
{
|
||||
m_oo = GSHwHack::s_after_draw_functions[GSConfig.AfterDrawFunctionId].ptr;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -33,6 +33,7 @@ public:
|
|||
static bool GSC_TombRaiderLegend(GSRendererHW& r, const GSFrameInfo& fi, int& skip);
|
||||
static bool GSC_TombRaiderUnderWorld(GSRendererHW& r, const GSFrameInfo& fi, int& skip);
|
||||
static bool GSC_BurnoutGames(GSRendererHW& r, const GSFrameInfo& fi, int& skip);
|
||||
static bool GSC_BlackAndBurnoutSky(GSRendererHW& r, const GSFrameInfo& fi, int& skip);
|
||||
static bool GSC_MidnightClub3(GSRendererHW& r, const GSFrameInfo& fi, int& skip);
|
||||
static bool GSC_TalesOfLegendia(GSRendererHW& r, const GSFrameInfo& fi, int& skip);
|
||||
static bool GSC_Kunoichi(GSRendererHW& r, const GSFrameInfo& fi, int& skip);
|
||||
|
@ -67,8 +68,6 @@ public:
|
|||
static bool OI_JakGames(GSRendererHW& r, GSTexture* rt, GSTexture* ds, GSTextureCache::Source* t);
|
||||
static bool OI_BurnoutGames(GSRendererHW& r, GSTexture* rt, GSTexture* ds, GSTextureCache::Source* t);
|
||||
|
||||
static void OO_BurnoutGames(GSRendererHW& r);
|
||||
|
||||
template <typename F>
|
||||
struct Entry
|
||||
{
|
||||
|
@ -79,5 +78,4 @@ public:
|
|||
|
||||
static const Entry<GSRendererHW::GSC_Ptr> s_get_skip_count_functions[];
|
||||
static const Entry<GSRendererHW::OI_Ptr> s_before_draw_functions[];
|
||||
static const Entry<GSRendererHW::OO_Ptr> s_after_draw_functions[];
|
||||
};
|
||||
|
|
|
@ -1943,9 +1943,6 @@ void GSRendererHW::Draw()
|
|||
|
||||
//
|
||||
|
||||
if (m_oo)
|
||||
m_oo(*this);
|
||||
|
||||
if (GSConfig.DumpGSData)
|
||||
{
|
||||
const u64 frame = g_perfmon.GetFrame();
|
||||
|
|
|
@ -54,7 +54,6 @@ private:
|
|||
|
||||
using GSC_Ptr = bool(*)(GSRendererHW& r, const GSFrameInfo& fi, int& skip); // GSC - Get Skip Count
|
||||
using OI_Ptr = bool(*)(GSRendererHW& r, GSTexture* rt, GSTexture* ds, GSTextureCache::Source* t); // OI - Before draw
|
||||
using OO_Ptr = void(*)(GSRendererHW& r); // OO - After draw
|
||||
|
||||
// Require special argument
|
||||
bool OI_BlitFMV(GSTextureCache::Target* _rt, GSTextureCache::Source* t, const GSVector4i& r_draw);
|
||||
|
@ -96,7 +95,6 @@ private:
|
|||
bool IsBadFrame();
|
||||
GSC_Ptr m_gsc = nullptr;
|
||||
OI_Ptr m_oi = nullptr;
|
||||
OO_Ptr m_oo = nullptr;
|
||||
int m_skip = 0;
|
||||
int m_skip_offset = 0;
|
||||
|
||||
|
|
|
@ -242,15 +242,13 @@ void GameDatabase::parseAndInsert(const std::string_view& serial, const c4::yml:
|
|||
const std::string_view id_name(n.key().data(), n.key().size());
|
||||
std::optional<GameDatabaseSchema::GSHWFixId> id = GameDatabaseSchema::parseHWFixName(id_name);
|
||||
std::optional<s32> value;
|
||||
if (id.has_value() && (id.value() == GameDatabaseSchema::GSHWFixId::GetSkipCount || id.value() == GameDatabaseSchema::GSHWFixId::BeforeDraw || id.value() == GameDatabaseSchema::GSHWFixId::AfterDraw))
|
||||
if (id.has_value() && (id.value() == GameDatabaseSchema::GSHWFixId::GetSkipCount || id.value() == GameDatabaseSchema::GSHWFixId::BeforeDraw))
|
||||
{
|
||||
const std::string_view str_value(n.has_val() ? std::string_view(n.val().data(), n.val().size()) : std::string_view());
|
||||
if (id.value() == GameDatabaseSchema::GSHWFixId::GetSkipCount)
|
||||
value = GSLookupGetSkipCountFunctionId(str_value);
|
||||
else if (id.value() == GameDatabaseSchema::GSHWFixId::BeforeDraw)
|
||||
value = GSLookupBeforeDrawFunctionId(str_value);
|
||||
else if (id.value() == GameDatabaseSchema::GSHWFixId::AfterDraw)
|
||||
value = GSLookupAfterDrawFunctionId(str_value);
|
||||
|
||||
if (value.value_or(-1) < 0)
|
||||
{
|
||||
|
@ -366,7 +364,6 @@ static const char* s_gs_hw_fix_names[] = {
|
|||
"gpuPaletteConversion",
|
||||
"getSkipCount",
|
||||
"beforeDraw",
|
||||
"afterDraw"
|
||||
};
|
||||
static_assert(std::size(s_gs_hw_fix_names) == static_cast<u32>(GameDatabaseSchema::GSHWFixId::Count), "HW fix name lookup is correct size");
|
||||
|
||||
|
@ -396,7 +393,6 @@ bool GameDatabaseSchema::isUserHackHWFix(GSHWFixId id)
|
|||
case GSHWFixId::TrilinearFiltering:
|
||||
case GSHWFixId::GetSkipCount:
|
||||
case GSHWFixId::BeforeDraw:
|
||||
case GSHWFixId::AfterDraw:
|
||||
return false;
|
||||
default:
|
||||
return true;
|
||||
|
@ -617,9 +613,6 @@ bool GameDatabaseSchema::GameEntry::configMatchesHWFix(const Pcsx2Config::GSOpti
|
|||
case GSHWFixId::BeforeDraw:
|
||||
return (static_cast<int>(config.BeforeDrawFunctionId) == value);
|
||||
|
||||
case GSHWFixId::AfterDraw:
|
||||
return (static_cast<int>(config.AfterDrawFunctionId) == value);
|
||||
|
||||
default:
|
||||
return false;
|
||||
}
|
||||
|
@ -778,10 +771,6 @@ u32 GameDatabaseSchema::GameEntry::applyGSHardwareFixes(Pcsx2Config::GSOptions&
|
|||
config.BeforeDrawFunctionId = static_cast<s16>(value);
|
||||
break;
|
||||
|
||||
case GSHWFixId::AfterDraw:
|
||||
config.AfterDrawFunctionId = static_cast<s16>(value);
|
||||
break;
|
||||
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
|
|
@ -86,7 +86,6 @@ namespace GameDatabaseSchema
|
|||
GPUPaletteConversion,
|
||||
GetSkipCount,
|
||||
BeforeDraw,
|
||||
AfterDraw,
|
||||
|
||||
Count
|
||||
};
|
||||
|
|
|
@ -495,7 +495,6 @@ bool Pcsx2Config::GSOptions::OptionsAreEqual(const GSOptions& right) const
|
|||
OpEqu(TVShader) &&
|
||||
OpEqu(GetSkipCountFunctionId) &&
|
||||
OpEqu(BeforeDrawFunctionId) &&
|
||||
OpEqu(AfterDrawFunctionId) &&
|
||||
OpEqu(SkipDrawEnd) &&
|
||||
OpEqu(SkipDrawStart) &&
|
||||
|
||||
|
|
Loading…
Reference in New Issue