mirror of https://github.com/PCSX2/pcsx2.git
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:
parent
3108024a30
commit
2a020ebd12
|
@ -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()
|
||||
{
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -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;
|
||||
|
|
Loading…
Reference in New Issue