mirror of https://github.com/PCSX2/pcsx2.git
And one other bugfix commit. Hopefully fixes more stuff :)
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@2888 96395faa-99c1-11dd-bbfe-3dabce05a288
This commit is contained in:
parent
d97484a008
commit
e785a5b861
|
@ -202,7 +202,7 @@ void GIFdma()
|
||||||
}
|
}
|
||||||
|
|
||||||
clearFIFOstuff(true);
|
clearFIFOstuff(true);
|
||||||
gifRegs->stat.FQC = max((u16)0x10, gif->qwc);// FQC=31, hack ;) (for values of 31 that equal 16) [ used to be 0xE00; // OPH=1 | APATH=3]
|
gifRegs->stat.FQC = min((u16)0x10, gif->qwc);// FQC=31, hack ;) (for values of 31 that equal 16) [ used to be 0xE00; // OPH=1 | APATH=3]
|
||||||
|
|
||||||
//Path2 gets priority in intermittent mode
|
//Path2 gets priority in intermittent mode
|
||||||
if (GSTransferStatus.PTH1 != STOPPED_MODE || GSTransferStatus.PTH2 != STOPPED_MODE)
|
if (GSTransferStatus.PTH1 != STOPPED_MODE || GSTransferStatus.PTH2 != STOPPED_MODE)
|
||||||
|
@ -228,7 +228,7 @@ void GIFdma()
|
||||||
if ((gif->chcr.MOD == CHAIN_MODE) && gif->chcr.STR)
|
if ((gif->chcr.MOD == CHAIN_MODE) && gif->chcr.STR)
|
||||||
{
|
{
|
||||||
ptag = ReadTag();
|
ptag = ReadTag();
|
||||||
gifRegs->stat.FQC = max((u16)0x10, gif->qwc);// FQC=31, hack ;) (for values of 31 that equal 16) [ used to be 0xE00; // OPH=1 | APATH=3]
|
gifRegs->stat.FQC = min((u16)0x10, gif->qwc);// FQC=31, hack ;) (for values of 31 that equal 16) [ used to be 0xE00; // OPH=1 | APATH=3]
|
||||||
if (ptag == NULL) return;
|
if (ptag == NULL) return;
|
||||||
GIF_LOG("PTH3 MASK gifdmaChain %8.8x_%8.8x size=%d, id=%d, addr=%lx tadr=%lx", ptag[1]._u32, ptag[0]._u32, gif->qwc, ptag->ID, gif->madr, gif->tadr);
|
GIF_LOG("PTH3 MASK gifdmaChain %8.8x_%8.8x size=%d, id=%d, addr=%lx tadr=%lx", ptag[1]._u32, ptag[0]._u32, gif->qwc, ptag->ID, gif->madr, gif->tadr);
|
||||||
|
|
||||||
|
@ -244,7 +244,7 @@ void GIFdma()
|
||||||
if (gif->qwc == 0) CPU_INT(DMAC_GIF, 16);
|
if (gif->qwc == 0) CPU_INT(DMAC_GIF, 16);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
gifRegs->stat.FQC = max((u16)0x10, gif->qwc);// FQC=31, hack ;) (for values of 31 that equal 16) [ used to be 0xE00; // OPH=1 | APATH=3]
|
gifRegs->stat.FQC = min((u16)0x10, gif->qwc);// FQC=31, hack ;) (for values of 31 that equal 16) [ used to be 0xE00; // OPH=1 | APATH=3]
|
||||||
//Check with Path3 masking games
|
//Check with Path3 masking games
|
||||||
if (gif->qwc > 0) {
|
if (gif->qwc > 0) {
|
||||||
GIF_LOG("PTH3 MASK Transferring");
|
GIF_LOG("PTH3 MASK Transferring");
|
||||||
|
@ -263,7 +263,7 @@ void GIFdma()
|
||||||
{
|
{
|
||||||
Console.WriteLn("DMA Stall Control on GIF normal");
|
Console.WriteLn("DMA Stall Control on GIF normal");
|
||||||
}
|
}
|
||||||
gifRegs->stat.FQC = max((u16)0x10, gif->qwc);// FQC=31, hack ;) (for values of 31 that equal 16) [ used to be 0xE00; // OPH=1 | APATH=3]
|
gifRegs->stat.FQC = min((u16)0x10, gif->qwc);// FQC=31, hack ;) (for values of 31 that equal 16) [ used to be 0xE00; // OPH=1 | APATH=3]
|
||||||
//Check with Path3 masking games
|
//Check with Path3 masking games
|
||||||
if (gif->qwc > 0) {
|
if (gif->qwc > 0) {
|
||||||
GIFchain(); //Transfers the data set by the switch
|
GIFchain(); //Transfers the data set by the switch
|
||||||
|
@ -281,7 +281,7 @@ void GIFdma()
|
||||||
ptag = ReadTag();
|
ptag = ReadTag();
|
||||||
if (ptag == NULL) return;
|
if (ptag == NULL) return;
|
||||||
GIF_LOG("gifdmaChain %8.8x_%8.8x size=%d, id=%d, addr=%lx tadr=%lx", ptag[1]._u32, ptag[0]._u32, gif->qwc, ptag->ID, gif->madr, gif->tadr);
|
GIF_LOG("gifdmaChain %8.8x_%8.8x size=%d, id=%d, addr=%lx tadr=%lx", ptag[1]._u32, ptag[0]._u32, gif->qwc, ptag->ID, gif->madr, gif->tadr);
|
||||||
gifRegs->stat.FQC = max((u16)0x10, gif->qwc);// FQC=31, hack ;) (for values of 31 that equal 16) [ used to be 0xE00; // OPH=1 | APATH=3]
|
gifRegs->stat.FQC = min((u16)0x10, gif->qwc);// FQC=31, hack ;) (for values of 31 that equal 16) [ used to be 0xE00; // OPH=1 | APATH=3]
|
||||||
if (dmacRegs->ctrl.STD == STD_GIF)
|
if (dmacRegs->ctrl.STD == STD_GIF)
|
||||||
{
|
{
|
||||||
// there are still bugs, need to also check if gif->madr +16*qwc >= stadr, if not, stall
|
// there are still bugs, need to also check if gif->madr +16*qwc >= stadr, if not, stall
|
||||||
|
@ -322,7 +322,7 @@ void GIFdma()
|
||||||
CPU_INT(DMAC_GIF, gscycles * BIAS);
|
CPU_INT(DMAC_GIF, gscycles * BIAS);
|
||||||
gscycles = 0;
|
gscycles = 0;
|
||||||
}
|
}
|
||||||
gifRegs->stat.FQC = max((u16)0x10, gif->qwc);// FQC=31, hack ;) (for values of 31 that equal 16) [ used to be 0xE00; // OPH=1 | APATH=3]
|
gifRegs->stat.FQC = min((u16)0x10, gif->qwc);// FQC=31, hack ;) (for values of 31 that equal 16) [ used to be 0xE00; // OPH=1 | APATH=3]
|
||||||
}
|
}
|
||||||
|
|
||||||
void dmaGIF()
|
void dmaGIF()
|
||||||
|
|
Loading…
Reference in New Issue