diff --git a/pcsx2/Misc.h b/pcsx2/Misc.h index 52b17b6a3e..f8c1f61281 100644 --- a/pcsx2/Misc.h +++ b/pcsx2/Misc.h @@ -54,7 +54,7 @@ #define CHECK_COP2REC (Config.Options&PCSX2_COP2REC) // goes with ee option //------------ SPEED HACKS!!! --------------- #define CHECK_OVERFLOW (!(Config.Hacks & 0x2)) -#define CHECK_EXTRA_OVERFLOW (!(Config.Hacks & 0x40)) +#define CHECK_EXTRA_OVERFLOW (Config.Hacks & 0x40) #define CHECK_EESYNC_HACK (Config.Hacks & 0x1) #define CHECK_IOPSYNC_HACK (Config.Hacks & 0x10) #define CHECK_EE_IOP_EXTRA (Config.Hacks & 0x20) diff --git a/pcsx2/windows/pcsx2.rc b/pcsx2/windows/pcsx2.rc index b8287c1ef4..74d513978d 100644 --- a/pcsx2/windows/pcsx2.rc +++ b/pcsx2/windows/pcsx2.rc @@ -956,7 +956,7 @@ BEGIN "Button",BS_AUTOCHECKBOX | WS_TABSTOP,14,128,270,10 CONTROL "EE/IOP Sync Hack (x3) - Makes EE and IOP hacks triple the cycle rate ( Not Recommended! )",IDC_SYNCHACK3, "Button",BS_AUTOCHECKBOX | WS_TABSTOP,14,142,359,10 - CONTROL "Disable Extra Overflow Checks - Disables extra overflow checks used to help stop SPS. ( Big Speedup! )",IDC_OVERFLOWHACK_EXTRA, + CONTROL "Enable Extra Overflow Checks - Enable extra overflow checks used to help stop SPS. ( Slow! )",IDC_OVERFLOWHACK_EXTRA, "Button",BS_AUTOCHECKBOX | WS_TABSTOP,14,50,377,10 CONTROL "EE/IOP Fast Branches - Quick branching ( Very small speedup, use only when you need every fps! )",IDC_FASTBRANCHES, "Button",BS_AUTOCHECKBOX | WS_TABSTOP,14,183,351,10 diff --git a/pcsx2/x86/iVUmicro.c b/pcsx2/x86/iVUmicro.c index 2a0dee1ea7..9cc975a222 100644 --- a/pcsx2/x86/iVUmicro.c +++ b/pcsx2/x86/iVUmicro.c @@ -1184,6 +1184,12 @@ void vuFloat( int info, int regd, int XYZW) { break; case 3://1100 + /* + dd:cc:bb:aa + 11:10:01:00 + 11:00:01:10 + 00:10:01:11 + */ SSE_SHUFPS_XMM_to_XMM(regd, regd, 0xc6); SSE_MINSS_M32_to_XMM(regd, (uptr)g_maxvals); SSE_MAXSS_M32_to_XMM(regd, (uptr)g_minvals); @@ -2512,10 +2518,11 @@ void recVUMI_MUL_iq_toD(VURegs *VU, uptr addr, int regd, int info) void recVUMI_MUL_xyzw_toD(VURegs *VU, int xyzw, int regd, int info) { if (CHECK_EXTRA_OVERFLOW) { - vuFloat( info, EEREC_S, _X_Y_Z_W); vuFloat( info, regd, _X_Y_Z_W); //vuFloat( info, EEREC_T, xyzw); } + // This is needed for alot of games + vuFloat( info, EEREC_S, _X_Y_Z_W); if( _Ft_ == 0 ) { if( xyzw < 3 ) { @@ -2778,10 +2785,11 @@ void recVUMI_MADD_iq_toD(VURegs *VU, uptr addr, int regd, int info) void recVUMI_MADD_xyzw_toD(VURegs *VU, int xyzw, int regd, int info) { if (CHECK_EXTRA_OVERFLOW) { - vuFloat( info, EEREC_S, _X_Y_Z_W); vuFloat( info, EEREC_ACC, _X_Y_Z_W); vuFloat( info, regd, _X_Y_Z_W); } + // This is needed for alot of games + vuFloat( info, EEREC_S, _X_Y_Z_W); if( _Ft_ == 0 ) {