changed some overflow stuff.

git-svn-id: http://pcsx2-playground.googlecode.com/svn/trunk@26 a6443dda-0b58-4228-96e9-037be469359c
This commit is contained in:
cottonvibes 2008-08-14 12:05:51 +00:00 committed by Gregory Hainaut
parent 4aa03c26bf
commit 4eb51a4ec4
3 changed files with 12 additions and 4 deletions

View File

@ -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)

View File

@ -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

View File

@ -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 ) {