more ivumicro stuff, and a dialogue misunderstanding i had ^^

git-svn-id: http://pcsx2-playground.googlecode.com/svn/trunk@11 a6443dda-0b58-4228-96e9-037be469359c
This commit is contained in:
ramapcsx2 2008-08-12 12:05:04 +00:00 committed by Gregory Hainaut
parent 24d19763c7
commit 324f747947
2 changed files with 52 additions and 48 deletions

View File

@ -946,24 +946,24 @@ BEGIN
DEFPUSHBUTTON "OK",IDOK,119,197,50,14
PUSHBUTTON "Cancel",IDCANCEL,174,197,50,14
CONTROL "EE Sync Hack (x2) - Doubles the cycle rate of the EE.",IDC_SYNCHACK,
"Button",BS_AUTOCHECKBOX | WS_TABSTOP,7,106,336,10
"Button",BS_AUTOCHECKBOX | WS_TABSTOP,7,100,186,10
CONTROL "Disable All Overflow Checks - Doesn't check for overflow at all in the VU Recs.",IDC_OVERFLOWHACK,
"Button",BS_AUTOCHECKBOX | WS_TABSTOP,7,53,336,10
CTEXT "These hacks will effect the speed of PCSX2 but possibly comprimise on compatability",IDC_HACKDESC,7,7,336,10
"Button",BS_AUTOCHECKBOX | WS_TABSTOP,7,53,264,10
CTEXT "These hacks will effect the speed of PCSX2 but possibly comprimise on compatability",IDC_HACKDESC,42,7,269,8
CONTROL "Tighter SPU2 Sync ( FFXII vids) - slower, not usefull anymore",IDC_SOUNDHACK,
"Button",BS_AUTOCHECKBOX | WS_TABSTOP,7,180,336,9
"Button",BS_AUTOCHECKBOX | WS_TABSTOP,7,168,211,10
CONTROL "Denormals are Zero - Makes very small numbers be equal to zero. (Big speedup on Intel CPUs)",IDC_DENORMALS,
"Button",BS_AUTOCHECKBOX | WS_TABSTOP,7,67,336,9
"Button",BS_AUTOCHECKBOX | WS_TABSTOP,7,67,317,10
CONTROL "IOP Sync Hack (x2) - Doubles the cycle rate of the IOP.",IDC_SYNCHACK2,
"Button",BS_AUTOCHECKBOX | WS_TABSTOP,7,120,336,10
CONTROL "EE/IOP Sync Hack (x3) - Makes EE and IOP hacks triple the cycle rate instead of doubling it.",IDC_SYNCHACK3,
"Button",BS_AUTOCHECKBOX | WS_TABSTOP,7,135,336,10
"Button",BS_AUTOCHECKBOX | WS_TABSTOP,7,114,194,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,7,126,309,10
CONTROL "Disable Extra Overflow Checks - Disables extra overflow checks used to help stop SPS.",IDC_OVERFLOWHACK_EXTRA,
"Button",BS_AUTOCHECKBOX | WS_TABSTOP,7,40,336,10
CONTROL "EE/IOP Fast Branches - Quick branching (very small speedup)",IDC_FASTBRANCHES,
"Button",BS_AUTOCHECKBOX | WS_TABSTOP,7,150,336,10
LTEXT "Choose either the x2 OR the x3 hacks, not both",IDC_STATIC,78,93,181,8
LTEXT "If you have problems, disable all these and try again",IDC_STATIC,79,18,181,8
"Button",BS_AUTOCHECKBOX | WS_TABSTOP,7,40,293,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,7,154,327,10
LTEXT "",IDC_STATIC,78,93,181,8
LTEXT "If you have problems, disable all these and try again",IDC_STATIC,79,21,169,8
END

View File

@ -2038,7 +2038,7 @@ void recVUMI_SUB_iq(VURegs *VU, uptr addr, int info)
//if( addr == VU_REGQ_ADDR ) CheckForOverflow(VU, info, EEREC_D);
}
static PCSX2_ALIGNED16(s_unaryminus[4]) = {0x80000000, 0, 0, 0};
const static PCSX2_ALIGNED16(s_unaryminus[4]) = {0x80000000, 0, 0, 0};
void recVUMI_SUB_xyzw(VURegs *VU, int xyzw, int info)
{
@ -4702,6 +4702,7 @@ void recVUMI_ILW(VURegs *VU, int info)
else if (_Y) off = 4;
else if (_Z) off = 8;
else if (_W) off = 12;
else { SysPrintf("Problem in recVUMI_ILW!!"); off=0; }
ADD_VI_NEEDED(_Fs_);
ftreg = ALLOCVI(_Ft_, MODE_WRITE);
@ -4756,6 +4757,7 @@ void recVUMI_ILWR( VURegs *VU, int info )
else if (_Y) off = 4;
else if (_Z) off = 8;
else if (_W) off = 12;
else { SysPrintf("Problem in recVUMI_ILWR!!"); off=0; }
ADD_VI_NEEDED(_Fs_);
ftreg = ALLOCVI(_Ft_, MODE_WRITE);
@ -5566,41 +5568,43 @@ void recVUMI_ESQRT( VURegs *VU, int info )
SSE_MOVSS_XMM_to_M32(VU_VI_ADDR(REG_P, 0), EEREC_TEMP);
}
#if defined(_MSC_VER) && !defined(__x86_64__)
//below code isn't used anymore, scheduled for deletion
static u32 s_saveecx, s_saveedx, s_saveebx, s_saveesi, s_saveedi, s_saveebp;
float tempsqrt = 0;
extern float vuDouble(u32 f);
__declspec(naked) void tempERSQRT()
{
__asm {
mov s_saveecx, ecx
mov s_saveedx, edx
mov s_saveebx, ebx
mov s_saveesi, esi
mov s_saveedi, edi
mov s_saveebp, ebp
}
if (tempsqrt >= 0) {
tempsqrt = fpusqrtf(tempsqrt);
if (tempsqrt) {
tempsqrt = 1.0f / tempsqrt;
}
tempsqrt = vuDouble(*(u32*)&tempsqrt);
}
__asm {
mov ecx, s_saveecx
mov edx, s_saveedx
mov ebx, s_saveebx
mov esi, s_saveesi
mov edi, s_saveedi
mov ebp, s_saveebp
ret
}
}
#endif
//#if defined(_MSC_VER) && !defined(__x86_64__)
//
//static u32 s_saveecx, s_saveedx, s_saveebx, s_saveesi, s_saveedi, s_saveebp;
//float tempsqrt = 0;
//extern float vuDouble(u32 f);
//__declspec(naked) void tempERSQRT()
//{
// __asm {
// mov s_saveecx, ecx
// mov s_saveedx, edx
// mov s_saveebx, ebx
// mov s_saveesi, esi
// mov s_saveedi, edi
// mov s_saveebp, ebp
// }
//
// if (tempsqrt >= 0) {
// tempsqrt = fpusqrtf(tempsqrt);
// if (tempsqrt) {
// tempsqrt = 1.0f / tempsqrt;
// }
// tempsqrt = vuDouble(*(u32*)&tempsqrt);
// }
//
// __asm {
// mov ecx, s_saveecx
// mov edx, s_saveedx
// mov ebx, s_saveebx
// mov esi, s_saveesi
// mov edi, s_saveedi
// mov ebp, s_saveebp
// ret
// }
//}
//#endif
void recVUMI_ERSQRT( VURegs *VU, int info )
{