mirror of https://github.com/PCSX2/pcsx2.git
Added a gamefix that should fix the messed up camera views in Gundam games like "Mobile Suit Gundam Seed Destiny: Rengou vs. ZAFT II Plus" and the other ones that had this problem.
No need to set roundmode to nearest anymore, just use the gamefix. also i think i also have to add this fix to iFPUD.cpp stuff, i'll do it tomorrow. btw, this fix is untested because i don't have the time today to test it w/o working saved states. git-svn-id: http://pcsx2.googlecode.com/svn/trunk@1961 96395faa-99c1-11dd-bbfe-3dabce05a288
This commit is contained in:
parent
75d3c053ef
commit
fbd1268e64
|
@ -212,6 +212,7 @@ public:
|
||||||
VuClipFlagHack:1, // Fix for Persona games, maybe others. It's to do with the VU clip flag (again).
|
VuClipFlagHack:1, // Fix for Persona games, maybe others. It's to do with the VU clip flag (again).
|
||||||
FpuCompareHack:1, // Fix for Digimon Rumble Arena 2, fixes spinning/hanging on intro-menu.
|
FpuCompareHack:1, // Fix for Digimon Rumble Arena 2, fixes spinning/hanging on intro-menu.
|
||||||
FpuMulHack:1, // Fix for Tales of Destiny hangs.
|
FpuMulHack:1, // Fix for Tales of Destiny hangs.
|
||||||
|
FpuNegDivHack:1, // Fix for Gundam games messed up camera-view.
|
||||||
DMAExeHack:1, // Fix for Fatal Frame; breaks Gust and Tri-Ace games.
|
DMAExeHack:1, // Fix for Fatal Frame; breaks Gust and Tri-Ace games.
|
||||||
XgKickHack:1, // Fix for Erementar Gerad, adds more delay to VU XGkick instructions. Corrects the color of some graphics, but breaks Tri-ace games and others.
|
XgKickHack:1, // Fix for Erementar Gerad, adds more delay to VU XGkick instructions. Corrects the color of some graphics, but breaks Tri-ace games and others.
|
||||||
MpegHack:1; // Fix for Mana Khemia 1, breaks Digital Devil Saga.
|
MpegHack:1; // Fix for Mana Khemia 1, breaks Digital Devil Saga.
|
||||||
|
@ -348,12 +349,13 @@ extern SessionOverrideFlags g_Session;
|
||||||
#define CHECK_VU1REC (!g_Session.ForceDisableVU1rec && EmuConfig.Cpu.Recompiler.EnableVU1)
|
#define CHECK_VU1REC (!g_Session.ForceDisableVU1rec && EmuConfig.Cpu.Recompiler.EnableVU1)
|
||||||
|
|
||||||
//------------ SPECIAL GAME FIXES!!! ---------------
|
//------------ 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_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.
|
#define CHECK_FPUCOMPAREHACK (EmuConfig.Gamefixes.FpuCompareHack) // Special Fix for Digimon Rumble Arena 2, fixes spinning/hanging on intro-menu.
|
||||||
#define CHECK_VUCLIPFLAGHACK (EmuConfig.Gamefixes.VuClipFlagHack) // Special Fix for Persona games, maybe others. It's to do with the VU clip flag (again).
|
#define CHECK_VUCLIPFLAGHACK (EmuConfig.Gamefixes.VuClipFlagHack) // Special Fix for Persona games, maybe others. It's to do with the VU clip flag (again).
|
||||||
#define CHECK_FPUMULHACK (EmuConfig.Gamefixes.FpuMulHack) // Special Fix for Tales of Destiny hangs.
|
#define CHECK_FPUMULHACK (EmuConfig.Gamefixes.FpuMulHack) // Special Fix for Tales of Destiny hangs.
|
||||||
|
#define CHECK_FPUNEGDIVHACK (EmuConfig.Gamefixes.FpuNegDivHack) // Special Fix for Gundam games messed up camera-view.
|
||||||
#define CHECK_DMAEXECHACK (EmuConfig.Gamefixes.DMAExeHack) // Special Fix for Fatal Frame; breaks Gust and Tri-Ace games.
|
#define CHECK_DMAEXECHACK (EmuConfig.Gamefixes.DMAExeHack) // Special Fix for Fatal Frame; breaks Gust and Tri-Ace games.
|
||||||
#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_XGKICKHACK (EmuConfig.Gamefixes.XgKickHack) // Special Fix for Erementar Gerad, adds more delay to VU XGkick instructions. Corrects the color of some graphics.
|
||||||
#define CHECK_MPEGHACK (EmuConfig.Gamefixes.MpegHack) // Special Fix for Mana Khemia 1; breaks Digital Devil Saga.
|
#define CHECK_MPEGHACK (EmuConfig.Gamefixes.MpegHack) // Special Fix for Mana Khemia 1; breaks Digital Devil Saga.
|
||||||
|
|
|
@ -136,6 +136,7 @@ void Pcsx2Config::GamefixOptions::LoadSave( IniInterface& ini )
|
||||||
IniBitBool( VuClipFlagHack );
|
IniBitBool( VuClipFlagHack );
|
||||||
IniBitBool( FpuCompareHack );
|
IniBitBool( FpuCompareHack );
|
||||||
IniBitBool( FpuMulHack );
|
IniBitBool( FpuMulHack );
|
||||||
|
IniBitBool( FpuNegDivHack );
|
||||||
IniBitBool( DMAExeHack );
|
IniBitBool( DMAExeHack );
|
||||||
IniBitBool( XgKickHack );
|
IniBitBool( XgKickHack );
|
||||||
IniBitBool( MpegHack );
|
IniBitBool( MpegHack );
|
||||||
|
|
|
@ -52,6 +52,10 @@ Panels::GameFixesPanel::GameFixesPanel( wxWindow& parent, int idealWidth ) :
|
||||||
_("FPU Multiply Hack - for Tales of Destiny."),
|
_("FPU Multiply Hack - for Tales of Destiny."),
|
||||||
wxEmptyString
|
wxEmptyString
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
_("FPU Negative Div Hack - for Gundam games."),
|
||||||
|
wxEmptyString
|
||||||
|
},
|
||||||
{
|
{
|
||||||
_("DMA Execution Hack - for Fatal Frame."),
|
_("DMA Execution Hack - for Fatal Frame."),
|
||||||
wxEmptyString
|
wxEmptyString
|
||||||
|
|
|
@ -1111,8 +1111,9 @@ void recDIV_S_xmm(int info)
|
||||||
|
|
||||||
if ((g_sseMXCSR & 0x00006000) != 0x00000000) { // Set roundmode to nearest if it isn't already
|
if ((g_sseMXCSR & 0x00006000) != 0x00000000) { // Set roundmode to nearest if it isn't already
|
||||||
//Console.WriteLn("div to nearest");
|
//Console.WriteLn("div to nearest");
|
||||||
roundmode_temp[0] = (g_sseMXCSR & 0xFFFF9FFF); // Set new roundmode
|
roundmode_temp[0] = (g_sseMXCSR & 0xFFFF9FFF); // Set new roundmode to nearest
|
||||||
roundmode_temp[1] = g_sseMXCSR; // Backup old Roundmode
|
roundmode_temp[1] = g_sseMXCSR; // Backup old Roundmode
|
||||||
|
if (CHECK_FPUNEGDIVHACK) roundmode_temp[0] |= 0x2000; // Negative Roundmode
|
||||||
SSE_LDMXCSR ((uptr)&roundmode_temp[0]); // Recompile Roundmode Change
|
SSE_LDMXCSR ((uptr)&roundmode_temp[0]); // Recompile Roundmode Change
|
||||||
roundmodeFlag = 1;
|
roundmodeFlag = 1;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue