mirror of https://github.com/PCSX2/pcsx2.git
Temp fix for Soul Calibur 3 so i can close Issue 233.
Other small fixes git-svn-id: http://pcsx2.googlecode.com/svn/trunk@1261 96395faa-99c1-11dd-bbfe-3dabce05a288
This commit is contained in:
parent
1d4ad79349
commit
ed963ae5ea
|
@ -328,7 +328,7 @@ void GIFdma()
|
||||||
GIF_LOG("dmaIrq Set");
|
GIF_LOG("dmaIrq Set");
|
||||||
gspath3done = 1;
|
gspath3done = 1;
|
||||||
}
|
}
|
||||||
GIF_LOG("gifdmaChain %8.8x_%8.8x size=%d, id=%d, addr=%lx", ptag[1], ptag[0], gif->qwc, id, gif->madr);
|
GIF_LOG("gifdmaChain %8.8x_%8.8x size=%d, id=%d, addr=%lx", ptag[1], ptag[0], gif->qwc, (ptag[0] >> 28) & 0x7, gif->madr);
|
||||||
GIFdmaEnd();
|
GIFdmaEnd();
|
||||||
return;
|
return;
|
||||||
|
|
||||||
|
|
|
@ -2110,13 +2110,14 @@ static void Vif1CMDDirectHL() // DIRECT/HL
|
||||||
else
|
else
|
||||||
vif1.tag.size = vifImm << 2;
|
vif1.tag.size = vifImm << 2;
|
||||||
|
|
||||||
|
//FIXME: This should have timing in both cases, see note below.
|
||||||
if((vif1.cmd & 0x7f) == 0x51)
|
if((vif1.cmd & 0x7f) == 0x51)
|
||||||
{
|
{
|
||||||
if(gif->chcr & 0x100 && Path3progress == 0) //PATH3 is in image mode, so wait for end of transfer
|
if(gif->chcr & 0x100 /*&& Path3progress == 0*/) //PATH3 is in image mode, so wait for end of transfer
|
||||||
{
|
{
|
||||||
//DevCon::Notice("DirectHL gif chcr %x gif qwc %x mskpth3 %x", params gif->chcr, gif->qwc, vif1Regs->mskpath3);
|
//DevCon::Notice("DirectHL gif chcr %x gif qwc %x mskpth3 %x", params gif->chcr, gif->qwc, vif1Regs->mskpath3);
|
||||||
vif1Regs->stat |= VIF1_STAT_VGW;
|
if(vif1Regs->mskpath3)vif1Regs->stat |= VIF1_STAT_VGW;
|
||||||
|
else while(gif->chcr & 0x100) gsInterrupt(); //Hacky as hell (no timing) but Soul Calibur 3 doesnt want timing :(
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -2480,7 +2481,7 @@ __forceinline void vif1Interrupt()
|
||||||
{
|
{
|
||||||
if(gif->chcr & 0x100)
|
if(gif->chcr & 0x100)
|
||||||
{
|
{
|
||||||
CPU_INT(1, 2);
|
CPU_INT(1, 16);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
else vif1Regs->stat &= ~VIF1_STAT_VGW;
|
else vif1Regs->stat &= ~VIF1_STAT_VGW;
|
||||||
|
@ -2542,7 +2543,7 @@ __forceinline void vif1Interrupt()
|
||||||
vif1ch->chcr &= ~0x100;
|
vif1ch->chcr &= ~0x100;
|
||||||
g_vifCycles = 0;
|
g_vifCycles = 0;
|
||||||
hwDmacIrq(DMAC_VIF1);
|
hwDmacIrq(DMAC_VIF1);
|
||||||
if (vif1Regs->mskpath3 == 0 || (vif1ch->chcr & 0x1) == 0x1)vif1Regs->stat &= ~0x1F000000; // FQC=0
|
vif1Regs->stat &= ~0x1F000000; // FQC=0
|
||||||
}
|
}
|
||||||
|
|
||||||
void dmaVIF1()
|
void dmaVIF1()
|
||||||
|
|
Loading…
Reference in New Issue