All pastes #1912584 Raw Edit

Unnamed

public diff v1 · immutable
#1912584 ·published 2010-08-07 01:12 UTC
rendered paste body
Index: pcsx2/R3000A.h===================================================================--- pcsx2/R3000A.h	(revision 3603)+++ pcsx2/R3000A.h	(working copy)@@ -108,6 +108,7 @@ 	u32 pc;				/* Program counter */ 	u32 code;			/* The instruction */ 	u32 cycle;+	u32 cyclefrac; 	u32 interrupt; 	u32 sCycle[32];		// start cycle for signaled ints 	s32 eCycle[32];		// cycle delta for signaled ints (sCycle + eCycle == branch cycle)Index: pcsx2/x86/iR3000A.cpp===================================================================--- pcsx2/x86/iR3000A.cpp	(revision 3603)+++ pcsx2/x86/iR3000A.cpp	(working copy)@@ -1043,15 +1043,18 @@ 	} 	else 	{-		xMOV(eax, ptr32[&psxRegs.cycle]);-		xADD(eax, blockCycles);-		xMOV(ptr32[&psxRegs.cycle], eax); // update cycles+		xADD(ptr32[&psxRegs.cyclefrac], blockCycles);+		xMOV(eax, ptr32[&psxRegs.cyclefrac]);+		xSHR(eax, 3);+		xADD(ptr32[&psxRegs.cycle], eax); // update cycles+		xAND(ptr32[&psxRegs.cyclefrac], 7);  		// jump if psxCycleEE <= 0  (iop's timeslice timed out, so time to return control to the EE)-		xSUB(ptr32[&psxCycleEE], blockCycles*8);+		xSUB(ptr32[&psxCycleEE], blockCycles*1); 		xJLE(iopExitRecompiledCode);  		// check if an event is pending+		xMOV(eax, ptr32[&psxRegs.cycle]); 		xSUB(eax, ptr32[&g_psxNextBranchCycle]); 		xForwardJS<u8> nointerruptpending;