Fixed the EE timing hack.

git-svn-id: http://pcsx2.googlecode.com/svn/trunk@3043 96395faa-99c1-11dd-bbfe-3dabce05a288
This commit is contained in:
ramapcsx2 2010-05-19 09:58:27 +00:00
parent 952c872f0e
commit 7e924084e0
4 changed files with 18 additions and 12 deletions

View File

@ -431,7 +431,8 @@ struct Pcsx2Config
FpuMulHack :1, // Tales of Destiny hangs.
FpuNegDivHack :1, // Gundam games messed up camera-view.
XgKickHack :1, // Erementar Gerad, adds more delay to VU XGkick instructions. Corrects the color of some graphics, but breaks Tri-ace games and others.
IPUWaitHack :1;
IPUWaitHack :1, // FFX FMV, makes GIF flush before doing IPU work. Fixes bad graphics overlay.
EETimingHack :1; // General purpose timing hack.
BITFIELD_END
// all gamefixes are disabled by default.
@ -559,7 +560,7 @@ TraceLogFilters& SetTraceConfig();
#define CHECK_IOPREC (EmuConfig.Cpu.Recompiler.EnableIOP && GetSysCoreAlloc().IsRecAvailable_IOP())
//------------ SPECIAL GAME FIXES!!! ---------------
#define NUM_OF_GAME_FIXES 7
#define NUM_OF_GAME_FIXES 8
#define CHECK_VUADDSUBHACK (EmuConfig.Gamefixes.VuAddSubHack) // Special Fix for Tri-ace games, they use an encryption algorithm that requires VU addi opcode to be bit-accurate.
#define CHECK_FPUCOMPAREHACK (EmuConfig.Gamefixes.FpuCompareHack) // Special Fix for Digimon Rumble Arena 2, fixes spinning/hanging on intro-menu.
@ -568,6 +569,7 @@ TraceLogFilters& SetTraceConfig();
#define CHECK_FPUNEGDIVHACK (EmuConfig.Gamefixes.FpuNegDivHack) // Special Fix for Gundam games messed up camera-view.
#define CHECK_XGKICKHACK (EmuConfig.Gamefixes.XgKickHack) // Special Fix for Erementar Gerad, adds more delay to VU XGkick instructions. Corrects the color of some graphics.
#define CHECK_IPUWAITHACK (EmuConfig.Gamefixes.IPUWaitHack) // Special Fix for Erementar Gerad, adds more delay to VU XGkick instructions. Corrects the color of some graphics.
#define CHECK_EETIMINGHACK (EmuConfig.Gamefixes.EETimingHack) // Fix all scheduled events to happen in 1 cycle.
//------------ Advanced Options!!! ---------------
#define CHECK_VU_OVERFLOW (EmuConfig.Cpu.Recompiler.vuOverflow)

View File

@ -258,6 +258,7 @@ void Pcsx2Config::GamefixOptions::LoadSave( IniInterface& ini )
IniBitBool( FpuNegDivHack );
IniBitBool( XgKickHack );
IniBitBool( IPUWaitHack );
IniBitBool( EETimingHack );
}
Pcsx2Config::Pcsx2Config()

View File

@ -551,10 +551,10 @@ __forceinline void CPU_INT( u32 n, s32 ecycle)
DevCon.Warning( "***** EE > Twice-thrown int on IRQ %d", n );
}
// Abusing the IPU hack to also fix EE events to happen 1 cycle in the future.
// EE events happen 1 cycle in the future instead of whatever was requested.
// This can be used on games with PATH3 masking issues for example, or when
// some FMV look bad.
//if(CHECK_IPUWAITHACK) ecycle = 1;
if(CHECK_EETIMINGHACK) ecycle = 1;
cpuRegs.interrupt|= 1 << n;
cpuRegs.sCycle[n] = cpuRegs.cycle;

View File

@ -37,34 +37,37 @@ Panels::GameFixesPanel::GameFixesPanel( wxWindow* parent ) :
const CheckTextMess check_text[NUM_OF_GAME_FIXES] =
{
{
_("VU Add Hack - fixes Tri-Ace games boot crash (Enable IPU hack as well.)"),
_("VU Add Hack - Fixes Tri-Ace games boot crash."),
_("Games that need this hack to boot:\n * Star Ocean 3\n * Radiata Stories\n * Valkyrie Profile 2")
},
{
_("VU Clip Flag Hack - for Persona games (SuperVU recompiler only!)"),
_("VU Clip Flag Hack - For Persona games (SuperVU recompiler only!)"),
wxEmptyString
},
{
_("FPU Compare Hack - for Digimon Rumble Arena 2."),
_("FPU Compare Hack - For Digimon Rumble Arena 2."),
wxEmptyString
},
{
_("FPU Multiply Hack - for Tales of Destiny."),
_("FPU Multiply Hack - For Tales of Destiny."),
wxEmptyString
},
{
_("FPU Negative Div Hack - for Gundam games."),
_("FPU Negative Div Hack - For Gundam games."),
wxEmptyString
},
{
_("VU XGkick Hack - for Erementar Gerad."),
_("VU XGkick Hack - For Erementar Gerad."),
wxEmptyString
},
{
_("EE timing hack / FFX videos fix - Multi purpose hack. Try if all else fails."),
_("FFX videos fix - Fixes bad graphics overlay in FFX videos."),
wxEmptyString
},
{
_("EE timing hack - Multi purpose hack. Try if all else fails."),
pxE( ".Tooltips:Gamefixes:EE Timing Hack",
L"Known to affect following games:\n"
L" * Final Fantasy 10 (Fixes FMV)\n"
L" * Digital Devil Saga (Fixes FMV and crashes)\n"
L" * SSX (Fixes bad graphics and crashes)\n"
L" * Resident Evil: Dead Aim (Causes garbled textures)"