Fixed a silly error (on my part) which stopped the Gran Turismo games loading, looks like it was the same reason Tekken 5 broke too.

git-svn-id: http://pcsx2.googlecode.com/svn/trunk@713 96395faa-99c1-11dd-bbfe-3dabce05a288
This commit is contained in:
refraction 2009-03-07 13:10:12 +00:00
parent 661d5442a8
commit e88cf84e9c
1 changed files with 23 additions and 16 deletions

View File

@ -998,21 +998,24 @@ int VIF0transfer(u32 *data, int size, int istag) {
++data;
--vif0.vifpacketsize;
if ((vif0.cmd & 0x80)) { //i bit on vifcode and not masked by VIF0_ERR
if(!(vif0Regs->err & 0x1)){
if ((vif0.cmd & 0x80))
{
vif0.cmd &= 0x7f;
if(!(vif0Regs->err & 0x1)) //i bit on vifcode and not masked by VIF0_ERR
{
VIF_LOG( "Interrupt on VIFcmd: %x (INTC_MASK = %x)\n", vif0.cmd, psHu32(INTC_MASK) );
++vif0.irq;
if(istag && vif0.tag.size <= vif0.vifpacketsize) vif0.stallontag = 1;
if(vif0.tag.size == 0) break;
}
vif0.cmd &= 0x7f;
if(vif0.tag.size == 0) break;
}
}
}
} //End of Transfer loop
transferred += size - vif0.vifpacketsize;
g_vifCycles+= (transferred >> 2)*BIAS; /* guessing */
// use tag.size because some game doesn't like .cmd
@ -1837,19 +1840,23 @@ int VIF1transfer(u32 *data, int size, int istag) {
--vif1.vifpacketsize;
if ((vif1.cmd & 0x80)) { //i bit on vifcode and not masked by VIF1_ERR
VIF_LOG( "Interrupt on VIFcmd: %x (INTC_MASK = %x)\n", vif1.cmd, psHu32(INTC_MASK) );
if(!(vif1Regs->err & 0x1)){
++vif1.irq;
if ((vif1.cmd & 0x80))
{
vif1.cmd &= 0x7f;
if(!(vif1Regs->err & 0x1)) //i bit on vifcode and not masked by VIF1_ERR
{
VIF_LOG( "Interrupt on VIFcmd: %x (INTC_MASK = %x)\n", vif1.cmd, psHu32(INTC_MASK) );
++vif1.irq;
if(istag && vif1.tag.size <= vif1.vifpacketsize) vif1.stallontag = 1;
if(vif1.tag.size == 0) break;
}
vif1.cmd &= 0x7f;
}
}
}
} // End of Transfer loop
transferred += size - vif1.vifpacketsize;
g_vifCycles+= (transferred>>2)*BIAS; /* guessing */