From 6024359011b3ac4e90f321b545ae7500c560428e Mon Sep 17 00:00:00 2001 From: lightningterror Date: Thu, 13 Jun 2019 13:38:24 +0200 Subject: [PATCH] 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. --- plugins/GSdx/GSCrc.cpp | 12 ------ plugins/GSdx/GSCrc.h | 3 -- plugins/GSdx/Renderers/DX11/GSDevice11.h | 5 --- plugins/GSdx/Renderers/HW/GSHwHack.cpp | 51 +----------------------- 4 files changed, 2 insertions(+), 69 deletions(-) diff --git a/plugins/GSdx/GSCrc.cpp b/plugins/GSdx/GSCrc.cpp index 4005487382..d60995362d 100644 --- a/plugins/GSdx/GSCrc.cpp +++ b/plugins/GSdx/GSCrc.cpp @@ -310,14 +310,6 @@ CRC::Game CRC::m_games[] = {0x87844524, RedDeadRevolver, RU, 0}, // Unofficial RU-version {0x6DF62AEA, BleachBladeBattlers, JP, 0}, {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 {0xC5B75C7C, Oneechanbara2Special, JP, 0}, // cutie comment {0xC725CC6C, Oneechanbara2Special, JP, 0}, @@ -374,10 +366,6 @@ CRC::Game CRC::m_games[] = {0x43AB7214, TalesOfLegendia, US, 0}, {0x1F8640E0, TalesOfLegendia, JP, 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 {0x3FB419FD, Kunoichi, JP, 0}, {0x086D198E, Kunoichi, CH, 0}, diff --git a/plugins/GSdx/GSCrc.h b/plugins/GSdx/GSCrc.h index 9efa271123..b634eba320 100644 --- a/plugins/GSdx/GSCrc.h +++ b/plugins/GSdx/GSCrc.h @@ -40,8 +40,6 @@ public: BurnoutDominator, BurnoutRevenge, BurnoutTakedown, - CastlevaniaCoD, - CastlevaniaLoI, Clannad, CrashBandicootWoC, DarkCloud, @@ -97,7 +95,6 @@ public: Manhunt2, MetalSlug6, MidnightClub3, - NanoBreaker, NicktoonsUnite, Okami, Oneechanbara2Special, diff --git a/plugins/GSdx/Renderers/DX11/GSDevice11.h b/plugins/GSdx/Renderers/DX11/GSDevice11.h index 607ac62ea6..db61f59b1b 100644 --- a/plugins/GSdx/Renderers/DX11/GSDevice11.h +++ b/plugins/GSdx/Renderers/DX11/GSDevice11.h @@ -311,11 +311,6 @@ public: operator uint32() {return key & 0x3fff;} OMBlendSelector() : key(0) {} - - bool IsCLR1() const - { - return (key & 0x19f) == 0x93; // abe == 1 && a == 1 && b == 2 && d == 1 - } }; #pragma pack(pop) diff --git a/plugins/GSdx/Renderers/HW/GSHwHack.cpp b/plugins/GSdx/Renderers/HW/GSHwHack.cpp index 66b7e94a1b..fd14adb744 100644 --- a/plugins/GSdx/Renderers/HW/GSHwHack.cpp +++ b/plugins/GSdx/Renderers/HW/GSHwHack.cpp @@ -988,19 +988,6 @@ bool GSC_GetaWayGames(const GSFrameInfo& fi, int& skip) 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) { // 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; } -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) { if(skip == 0) @@ -1601,23 +1563,14 @@ void GSState::SetupCrcHack() lut[CRC::GetaWayBlackMonday] = GSC_GetaWayGames; // Blending High lut[CRC::TenchuFS] = GSC_TenchuGames; lut[CRC::TenchuWoH] = GSC_TenchuGames; - - // Accumulation blend - lut[CRC::NanoBreaker] = GSC_NanoBreaker; + lut[CRC::Sly2] = GSC_SlyGames; // SW blending on fbmask + Upscaling issue + lut[CRC::Sly3] = GSC_SlyGames; // SW blending on fbmask + Upscaling issue // Needs testing lut[CRC::Grandia3] = GSC_Grandia3; lut[CRC::HauntingGround] = GSC_HauntingGround; // + Texture cache issue + Date 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) // Needs at least Basic Blending, // see https://github.com/PCSX2/pcsx2/pull/2921