GSdx fixes:

Skygunner crashing on boot.
James Bond 007: Everything or Nothing doing a huge Vram usage when opening the weapons screen and making the system crawl at it. Couldn't test much with this one and only added the US version for now.

git-svn-id: http://pcsx2.googlecode.com/svn/trunk@4921 96395faa-99c1-11dd-bbfe-3dabce05a288
This commit is contained in:
shadowladyngemu 2011-10-05 09:19:32 +00:00
parent 274246c557
commit d953f053d8
4 changed files with 39 additions and 3 deletions

View File

@ -323,6 +323,9 @@ CRC::Game CRC::m_games[] =
{0xA60C2E65, Yakuza2, EU, 0},
{0x800E3E5A, Yakuza2, EU, 0},
{0x97E9C87E, Yakuza2, US, 0},
{0x9000252A, SkyGunner, JP, 0},
{0xA9461CB2, SkyGunner, US, 0},
{0x6848699B, JamesBondEverythingOrNothing, US, 0},
};
hash_map<uint32, CRC::Game*> CRC::m_map;

View File

@ -125,7 +125,8 @@ public:
Kunoichi,
Yakuza,
Yakuza2,
SkyGunner,
JamesBondEverythingOrNothing,
TitleCount,
};

View File

@ -309,9 +309,10 @@ GSVector4i GSState::GetFrameRect(int i)
int w = r.width();
int h = r.height();
if(m_game.title == CRC::DevilMayCry3 && (m_game.region == CRC::US || m_game.region == CRC::JP))
//Fixme: These games have an extra black bar at bottom of screen
if((m_game.title == CRC::DevilMayCry3 || m_game.title == CRC::SkyGunner) && (m_game.region == CRC::US || m_game.region == CRC::JP))
{
h = 448;
h = 448; //
}
if(m_regs->SMODE2.INT && m_regs->SMODE2.FFMD && h > 1) h >>= 1;
@ -3181,6 +3182,34 @@ bool GSC_Yakuza2(const GSFrameInfo& fi, int& skip)
return true;
}
bool GSC_SkyGunner(const GSFrameInfo& fi, int& skip)
{
if(skip == 0)
{
if(!fi.TME && !(fi.FBP == 0x0 || fi.FBP == 0x00800 || fi.FBP == 0x008c0 || fi.FBP == 0x03e00) && fi.FPSM == PSM_PSMCT32 && (fi.TBP0 == 0x0 || fi.TBP0 == 0x01800) && fi.TPSM == PSM_PSMCT32)
{
skip = 1; //Huge Vram usage
}
}
return true;
}
bool GSC_JamesBondEverythingOrNothing(const GSFrameInfo& fi, int& skip)
{
if(skip == 0)
{
if(fi.TME && (fi.FBP < 0x02000 && !(fi.FBP == 0x0 || fi.FBP == 0x00e00)) && fi.FPSM == PSM_PSMCT32 && (fi.TBP0 > 0x01c00 && fi.TBP0 < 0x03000) && fi.TPSM == PSM_PSMT8)
{
skip = 1; //Huge Vram usage
}
}
return true;
}
//#define USE_DYNAMIC_CRC_HACK
#ifdef USE_DYNAMIC_CRC_HACK
@ -3404,6 +3433,8 @@ bool GSState::IsBadFrame(int& skip, int UserHacks_SkipDraw)
map[CRC::Kunoichi] = GSC_Kunoichi;
map[CRC::Yakuza] = GSC_Yakuza;
map[CRC::Yakuza2] = GSC_Yakuza2;
map[CRC::SkyGunner] = GSC_SkyGunner;
map[CRC::JamesBondEverythingOrNothing] = GSC_JamesBondEverythingOrNothing;
}
// TODO: just set gsc in SetGameCRC once

View File

@ -1,6 +1,7 @@
#ifdef SHADER_MODEL // make safe to include in resource file to enforce dependency
#define FXAA_PC 1
#define FXAA_QUALITY__SUBPIX 0.0
#if SHADER_MODEL >= 0x400