mirror of https://github.com/PCSX2/pcsx2.git
Stop VIF0, VIF1 and EE SIF1 from interrupting based on how much data was transfered.
In theory this would be the correct thing to do, but with our current DMAC and event test system it just causes problems. Note: This commit *could* break/improve/fix games, please test :p git-svn-id: http://pcsx2.googlecode.com/svn/trunk@2333 96395faa-99c1-11dd-bbfe-3dabce05a288
This commit is contained in:
parent
f03cdbcdb3
commit
86a75775f3
|
@ -268,7 +268,9 @@ __forceinline void SIF1Dma()
|
||||||
SIF_LOG("EE SIF1 End %x", sif1.end);
|
SIF_LOG("EE SIF1 End %x", sif1.end);
|
||||||
eesifbusy[1] = false;
|
eesifbusy[1] = false;
|
||||||
done = true;
|
done = true;
|
||||||
CPU_INT(6, cycles*BIAS);
|
// Voodoocycles : 4 cycles always, stops games from throwing double interrupts.
|
||||||
|
CPU_INT(6, 4);
|
||||||
|
//CPU_INT(6, cycles*BIAS);
|
||||||
//sif1.chain = 0;
|
//sif1.chain = 0;
|
||||||
sif1.end = 0;
|
sif1.end = 0;
|
||||||
}
|
}
|
||||||
|
|
|
@ -563,7 +563,7 @@ void vif0Interrupt()
|
||||||
else
|
else
|
||||||
_VIF0chain();
|
_VIF0chain();
|
||||||
|
|
||||||
CPU_INT(0, g_vifCycles);
|
CPU_INT(0, /*g_vifCycles*/ VifCycleVoodoo);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -584,7 +584,7 @@ void vif0Interrupt()
|
||||||
else
|
else
|
||||||
_chainVIF0();
|
_chainVIF0();
|
||||||
|
|
||||||
CPU_INT(0, g_vifCycles);
|
CPU_INT(0, /*g_vifCycles*/ VifCycleVoodoo);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -654,7 +654,7 @@ void dmaVIF0()
|
||||||
}
|
}
|
||||||
|
|
||||||
vif0.done = true;
|
vif0.done = true;
|
||||||
CPU_INT(0, g_vifCycles);
|
CPU_INT(0, /*g_vifCycles*/ VifCycleVoodoo);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -907,7 +907,7 @@ __forceinline void vif1Interrupt()
|
||||||
if (vif1.inprogress & 0x1)
|
if (vif1.inprogress & 0x1)
|
||||||
{
|
{
|
||||||
_VIF1chain();
|
_VIF1chain();
|
||||||
CPU_INT(1, g_vifCycles);
|
CPU_INT(1, /*g_vifCycles*/ VifCycleVoodoo);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -922,7 +922,7 @@ __forceinline void vif1Interrupt()
|
||||||
|
|
||||||
if ((vif1.inprogress & 0x1) == 0) vif1SetupTransfer();
|
if ((vif1.inprogress & 0x1) == 0) vif1SetupTransfer();
|
||||||
|
|
||||||
CPU_INT(1, g_vifCycles);
|
CPU_INT(1, /*g_vifCycles*/ VifCycleVoodoo);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -45,6 +45,7 @@ struct vifStruct {
|
||||||
|
|
||||||
extern vifStruct vif0, vif1;
|
extern vifStruct vif0, vif1;
|
||||||
extern u8 schedulepath3msk;
|
extern u8 schedulepath3msk;
|
||||||
|
static const int VifCycleVoodoo = 4;
|
||||||
|
|
||||||
void __fastcall UNPACK_S_32( u32 *dest, u32 *data, int size );
|
void __fastcall UNPACK_S_32( u32 *dest, u32 *data, int size );
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue