gsdx-hw: Purge CastlevaniaCoD, CastlevaniaLoI, NanoBreaker crc hacks.

Shadows emulated correctly with accumulation blend, d3d11 misses sw
blend for extra accuracy (darker shadow).

gsdevice11: Remove unused IsCLR1() variable.
This commit is contained in:
lightningterror 2019-06-13 13:38:24 +02:00
parent 60cf62fea1
commit 6024359011
4 changed files with 2 additions and 69 deletions

View File

@ -310,14 +310,6 @@ CRC::Game CRC::m_games[] =
{0x87844524, RedDeadRevolver, RU, 0}, // Unofficial RU-version {0x87844524, RedDeadRevolver, RU, 0}, // Unofficial RU-version
{0x6DF62AEA, BleachBladeBattlers, JP, 0}, {0x6DF62AEA, BleachBladeBattlers, JP, 0},
{0x6EB71AB0, BleachBladeBattlers, JP, 0}, // 2nd {0x6EB71AB0, BleachBladeBattlers, JP, 0}, // 2nd
{0x3A446111, CastlevaniaCoD, US, 0},
{0xF321BC38, CastlevaniaCoD, EU, 0},
{0x950876FA, CastlevaniaCoD, KO, 0},
{0x237B84D3, CastlevaniaCoD, CH, 0},
{0x28270F7D, CastlevaniaLoI, US, 0},
{0x306CDADA, CastlevaniaLoI, EU, 0},
{0xA36CFF6C, CastlevaniaLoI, JP, 0},
{0x9A93FE5D, CastlevaniaLoI, KO, 0},
{0xCBB87BF9, EvangelionJo, JP, 0}, // cutie comment {0xCBB87BF9, EvangelionJo, JP, 0}, // cutie comment
{0xC5B75C7C, Oneechanbara2Special, JP, 0}, // cutie comment {0xC5B75C7C, Oneechanbara2Special, JP, 0}, // cutie comment
{0xC725CC6C, Oneechanbara2Special, JP, 0}, {0xC725CC6C, Oneechanbara2Special, JP, 0},
@ -374,10 +366,6 @@ CRC::Game CRC::m_games[] =
{0x43AB7214, TalesOfLegendia, US, 0}, {0x43AB7214, TalesOfLegendia, US, 0},
{0x1F8640E0, TalesOfLegendia, JP, 0}, {0x1F8640E0, TalesOfLegendia, JP, 0},
{0xE4F5DA2B, TalesOfLegendia, KO, 0}, {0xE4F5DA2B, TalesOfLegendia, KO, 0},
{0xA79B0491, NanoBreaker, JP, 0},
{0x98C7B76D, NanoBreaker, US, 0},
{0x7098BE76, NanoBreaker, KO, 0},
{0x9B89F425, NanoBreaker, EU, 0},
{0x519E816B, Kunoichi, US, 0}, // Nightshade {0x519E816B, Kunoichi, US, 0}, // Nightshade
{0x3FB419FD, Kunoichi, JP, 0}, {0x3FB419FD, Kunoichi, JP, 0},
{0x086D198E, Kunoichi, CH, 0}, {0x086D198E, Kunoichi, CH, 0},

View File

@ -40,8 +40,6 @@ public:
BurnoutDominator, BurnoutDominator,
BurnoutRevenge, BurnoutRevenge,
BurnoutTakedown, BurnoutTakedown,
CastlevaniaCoD,
CastlevaniaLoI,
Clannad, Clannad,
CrashBandicootWoC, CrashBandicootWoC,
DarkCloud, DarkCloud,
@ -97,7 +95,6 @@ public:
Manhunt2, Manhunt2,
MetalSlug6, MetalSlug6,
MidnightClub3, MidnightClub3,
NanoBreaker,
NicktoonsUnite, NicktoonsUnite,
Okami, Okami,
Oneechanbara2Special, Oneechanbara2Special,

View File

@ -311,11 +311,6 @@ public:
operator uint32() {return key & 0x3fff;} operator uint32() {return key & 0x3fff;}
OMBlendSelector() : key(0) {} OMBlendSelector() : key(0) {}
bool IsCLR1() const
{
return (key & 0x19f) == 0x93; // abe == 1 && a == 1 && b == 2 && d == 1
}
}; };
#pragma pack(pop) #pragma pack(pop)

View File

@ -988,19 +988,6 @@ bool GSC_GetaWayGames(const GSFrameInfo& fi, int& skip)
return true; return true;
} }
bool GSC_NanoBreaker(const GSFrameInfo& fi, int& skip)
{
if(skip == 0)
{
if(fi.TME && fi.FBP == 0x0 && fi.FPSM == PSM_PSMCT32 && (fi.TBP0 == 0x03800 || fi.TBP0 == 0x03900) && fi.TPSM == PSM_PSMCT16S)
{
skip = 2; // Removes shadows
}
}
return true;
}
bool GSC_StarOcean3(const GSFrameInfo& fi, int& skip) bool GSC_StarOcean3(const GSFrameInfo& fi, int& skip)
{ {
// The game emulate a stencil buffer with the alpha channel of the RT // The game emulate a stencil buffer with the alpha channel of the RT
@ -1120,31 +1107,6 @@ bool GSC_SlyGames(const GSFrameInfo& fi, int& skip)
return true; return true;
} }
bool GSC_CastlevaniaGames(const GSFrameInfo& fi, int& skip)
{
if(skip == 0)
{
// This hack removes the shadows and globally darker image
// I think there are 2 issues on GSdx
//
// 1/ potential not correctly supported colclip.
//
// 2/ use of a 32 bits format to emulate a 16 bit formats
// For example, if you blend 64 time the value 4 on a dark destination pixels
//
// FMT32: 4*64 = 256 <= white pixels
//
// FMT16: output of blending will always be 0 because the 3 lsb of color is dropped.
// Therefore the pixel remains dark !!!
if(fi.TME && fi.FBP == 0 && fi.TBP0 && fi.TPSM == 10 && fi.FBMSK == 0xFFFFFF)
{
skip = 2;
}
}
return true;
}
bool GSC_XenosagaE3(const GSFrameInfo& fi, int& skip) bool GSC_XenosagaE3(const GSFrameInfo& fi, int& skip)
{ {
if(skip == 0) if(skip == 0)
@ -1601,23 +1563,14 @@ void GSState::SetupCrcHack()
lut[CRC::GetaWayBlackMonday] = GSC_GetaWayGames; // Blending High lut[CRC::GetaWayBlackMonday] = GSC_GetaWayGames; // Blending High
lut[CRC::TenchuFS] = GSC_TenchuGames; lut[CRC::TenchuFS] = GSC_TenchuGames;
lut[CRC::TenchuWoH] = GSC_TenchuGames; lut[CRC::TenchuWoH] = GSC_TenchuGames;
lut[CRC::Sly2] = GSC_SlyGames; // SW blending on fbmask + Upscaling issue
// Accumulation blend lut[CRC::Sly3] = GSC_SlyGames; // SW blending on fbmask + Upscaling issue
lut[CRC::NanoBreaker] = GSC_NanoBreaker;
// Needs testing // Needs testing
lut[CRC::Grandia3] = GSC_Grandia3; lut[CRC::Grandia3] = GSC_Grandia3;
lut[CRC::HauntingGround] = GSC_HauntingGround; // + Texture cache issue + Date lut[CRC::HauntingGround] = GSC_HauntingGround; // + Texture cache issue + Date
lut[CRC::XenosagaE3] = GSC_XenosagaE3; lut[CRC::XenosagaE3] = GSC_XenosagaE3;
// These games might requires accurate fbmask
lut[CRC::Sly2] = GSC_SlyGames; // + Upscaling issue
lut[CRC::Sly3] = GSC_SlyGames; // + Upscaling issue
// These games require accurate_colclip (perf)
lut[CRC::CastlevaniaCoD] = GSC_CastlevaniaGames;
lut[CRC::CastlevaniaLoI] = GSC_CastlevaniaGames;
// These games emulate a stencil buffer with the alpha channel of the RT (too slow to move to Aggressive) // These games emulate a stencil buffer with the alpha channel of the RT (too slow to move to Aggressive)
// Needs at least Basic Blending, // Needs at least Basic Blending,
// see https://github.com/PCSX2/pcsx2/pull/2921 // see https://github.com/PCSX2/pcsx2/pull/2921