Reverted the IOP_WAIT_CYCLES since it was causing instability in some games. Eh, it was worth a try.

git-svn-id: http://pcsx2-playground.googlecode.com/svn/trunk@300 a6443dda-0b58-4228-96e9-037be469359c
This commit is contained in:
Jake.Stine 2008-11-05 13:58:32 +00:00 committed by Gregory Hainaut
parent 3108024a30
commit 2a020ebd12
3 changed files with 13 additions and 13 deletions

View File

@ -157,11 +157,11 @@ static void _psxTestInterrupts() {
PSX_TESTINT(21, usbInterrupt);
}
// Higher Wait cycle values should, in theory, reduce IOP overhead without much
// drawback. The IOP is almost always forced to perform branch tests at import-
// ant intervals regardless of this value (such as counter or irq events, hsyncs,
// etc.)
#define IOP_WAIT_CYCLE 1024
// IOP Wait cycles are still required to be a low number for maximum compatibility.
// Some games like to freeze up if the BranchTest isn't called at fairly regular
// intervals. ([TODO]: figure out why?)
#define IOP_WAIT_CYCLE 64
void psxBranchTest()
{

View File

@ -995,17 +995,17 @@ static u32 psxScaleBlockCycles()
static void iPsxBranchTest(u32 newpc, u32 cpuBranch)
{
u32 blockCycles = psxScaleBlockCycles();
if( !USE_FAST_BRANCHES || cpuBranch ) {
MOV32MtoR(ECX, (uptr)&psxRegs.cycle);
ADD32ItoR(ECX, blockCycles); // greater mult factor causes nfsmw to crash
MOV32RtoM((uptr)&psxRegs.cycle, ECX); // update cycles
}
else {
if( USE_FAST_BRANCHES && cpuBranch == 0 )
{
SUB32ItoM((uptr)&EEsCycle, blockCycles*8 );
ADD32ItoM((uptr)&psxRegs.cycle, blockCycles);
return;
}
MOV32MtoR(ECX, (uptr)&psxRegs.cycle);
ADD32ItoR(ECX, blockCycles); // greater mult factor causes nfsmw to crash
MOV32RtoM((uptr)&psxRegs.cycle, ECX); // update cycles
// check if we've caught up with the EE
SUB32ItoM((uptr)&EEsCycle, blockCycles*8 );
j8Ptr[2] = JGE8(0);

View File

@ -2320,7 +2320,7 @@ void recSYSCALL( void ) {
CMP32ItoM((int)&cpuRegs.pc, pc);
j8Ptr[0] = JE8(0);
ADD32ItoM((u32)&cpuRegs.cycle, s_nBlockCycles);
ADD32ItoM((u32)&cpuRegs.cycle, s_nBlockCycles*EECYCLE_MULT);
JMP32((u32)DispatcherReg - ( (u32)x86Ptr + 5 ));
x86SetJ8(j8Ptr[0]);
//branch = 2;
@ -2335,7 +2335,7 @@ void recBREAK( void ) {
CMP32ItoM((int)&cpuRegs.pc, pc);
j8Ptr[0] = JE8(0);
ADD32ItoM((u32)&cpuRegs.cycle, s_nBlockCycles);
ADD32ItoM((u32)&cpuRegs.cycle, s_nBlockCycles*EECYCLE_MULT);
RET();
x86SetJ8(j8Ptr[0]);
//branch = 2;