From f039383a1bde56d83827be5907afe7a0444b54e6 Mon Sep 17 00:00:00 2001 From: shadowladyngemu Date: Sat, 7 May 2011 01:59:18 +0000 Subject: [PATCH] GSdx HW: CRC hackfix for "Black" Minor updates to GameDB. git-svn-id: http://pcsx2.googlecode.com/svn/trunk@4630 96395faa-99c1-11dd-bbfe-3dabce05a288 --- bin/GameIndex.dbf | 14 ++++++++++---- plugins/GSdx/GSCrc.cpp | 6 +++++- plugins/GSdx/GSCrc.h | 1 + plugins/GSdx/GSState.cpp | 21 +++++++++++++++++++++ 4 files changed, 37 insertions(+), 5 deletions(-) diff --git a/bin/GameIndex.dbf b/bin/GameIndex.dbf index 5befeb124c..d34e76db16 100644 --- a/bin/GameIndex.dbf +++ b/bin/GameIndex.dbf @@ -4111,7 +4111,7 @@ Compat = 4 Serial = SLUS-20571 Name = Ty the Tasmanian Tiger Region = NTSC-U -Compat = 2 +Compat = 5 --------------------------------------------- Serial = SLUS-20572 Name = Tiger Woods PGA Tour 2003 @@ -4930,6 +4930,10 @@ Serial = SLUS-20759 Name = Growlanser Generations [Disc2of2] Region = NTSC-U Compat = 4 +[patches = 4AD529BB] + comment=IPU freeze fix + patch=0,EE,00109d04,word,00000000 +[/patches] [patches = 4CD3663F] comment=IPU freeze fix patch=0,EE,00109d04,word,00000000 @@ -6930,7 +6934,7 @@ Compat = 5 Serial = SLUS-21193 Name = Inuyasha - Feudal Combat Region = NTSC-U -Compat = 2 +Compat = 5 --------------------------------------------- Serial = SLUS-21194 Name = Phantasy Star Universe @@ -7332,7 +7336,7 @@ Compat = 5 Serial = SLUS-21277 Name = Barnyard Region = NTSC-U -Compat = 4 +Compat = 5 --------------------------------------------- Serial = SLUS-21278 Name = SSX on Tour @@ -25484,12 +25488,14 @@ Name = Venus & Braves [Premium Pack] Region = NTSC-J Compat = 5 SkipMPEGHack = 1 +EETimingHack = 1 --------------------------------------------- Serial = SLPS-25196 Name = Venus & Braves Region = NTSC-J Compat = 5 SkipMPEGHack = 1 +EETimingHack = 1 --------------------------------------------- Serial = SLPS-25197 Name = Kingdom Hearts - Final Mix [Limited Edition] @@ -28659,7 +28665,7 @@ Region = PAL-Unk Serial = SCES-50139 Name = World Rally Championship Region = PAL-M7 -Compat = 4 +Compat = 5 --------------------------------------------- Serial = SCES-50240 Name = Extermination diff --git a/plugins/GSdx/GSCrc.cpp b/plugins/GSdx/GSCrc.cpp index 03f6b3ee19..0a4396fb47 100644 --- a/plugins/GSdx/GSCrc.cpp +++ b/plugins/GSdx/GSCrc.cpp @@ -180,7 +180,7 @@ CRC::Game CRC::m_games[] = {0x774DE8E2, ValkyrieProfile2, JP, 0}, {0x04CCB600, ValkyrieProfile2, EU, 0}, {0xB65E141B, ValkyrieProfile2, EU, 0}, // PAL German - {0xC70FC973, ValkyrieProfile2, EU, 0}, // PAL Italy + {0xC70FC973, ValkyrieProfile2, IT, 0}, {0x47B9B2FD, RadiataStories, US, 0}, {0xE8FCF8EC, SMTNocturne, US, ZWriteMustNotClear}, // saves/reloads z buffer around shadow drawing, same issue with all the SMT games following {0xF0A31EE3, SMTNocturne, EU, ZWriteMustNotClear}, // SMTNocturne (Lucifers Call in EU) @@ -226,6 +226,7 @@ CRC::Game CRC::m_games[] = {0x2498951B, SilentHill3, US, 0}, {0x5088CCDB, SilentHill3, EU, 0}, {0x8E8E384B, SilentHill2, US, 0}, + {0xFE06A030, SilentHill2, US, 0}, //greatest hits {0x6DF62AEA, BleachBladeBattlers, JP, 0}, {0x6EB71AB0, BleachBladeBattlers, JP, 0}, //2nd {0x3A446111, CastlevaniaCoD, US, 0}, @@ -233,6 +234,9 @@ CRC::Game CRC::m_games[] = {0x28270F7D, CastlevaniaLoI, US, 0}, {0x306CDADA, CastlevaniaLoI, EU, 0}, {0xA36CFF6C, CastlevaniaLoI, JP, 0}, + {0x5C891FF1, Black, US, 0}, + {0xCAA04879, Black, EU, 0}, + {0xB3A9F9ED, Black, JP, 0}, }; hash_map CRC::m_map; diff --git a/plugins/GSdx/GSCrc.h b/plugins/GSdx/GSCrc.h index d64968eaed..716f26f17e 100644 --- a/plugins/GSdx/GSCrc.h +++ b/plugins/GSdx/GSCrc.h @@ -101,6 +101,7 @@ public: BleachBladeBattlers, CastlevaniaCoD, CastlevaniaLoI, + Black, TitleCount, }; diff --git a/plugins/GSdx/GSState.cpp b/plugins/GSdx/GSState.cpp index 7a7fba498b..626ce05580 100644 --- a/plugins/GSdx/GSState.cpp +++ b/plugins/GSdx/GSState.cpp @@ -2790,6 +2790,26 @@ bool GSC_Castlevania(const GSFrameInfo& fi, int& skip) return true; } +bool GSC_Black(const GSFrameInfo& fi, int& skip) +{ + if(skip == 0) + { + if(fi.TME && (fi.FBP == 0x00000 || fi.FBP == 0x008c0) && fi.FPSM == PSM_PSMCT16 && fi.TBP0 == 0x01a40 && fi.TPSM == PSM_PSMZ16 || (GSUtil::HasSharedBits(fi.FBP, fi.FPSM, fi.TBP0, fi.TPSM)) ) + { + skip = 5; + } + } + else + { + if(fi.TME && (fi.FBP == 0x00000 || fi.FBP == 0x008c0) && fi.FPSM == PSM_PSMCT32 && fi.TPSM == PSM_PSMT4) + { + skip = 0; + } + } + + return true; +} + bool GSState::IsBadFrame(int& skip, int UserHacks_SkipDraw) { GSFrameInfo fi; @@ -2862,6 +2882,7 @@ bool GSState::IsBadFrame(int& skip, int UserHacks_SkipDraw) map[CRC::BleachBladeBattlers] = GSC_BleachBladeBattlers; map[CRC::CastlevaniaCoD] = GSC_Castlevania; map[CRC::CastlevaniaLoI] = GSC_Castlevania; + map[CRC::Black] = GSC_Black; } // TODO: just set gsc in SetGameCRC once