mirror of https://github.com/PCSX2/pcsx2.git
Adjusted the backwards timing on GIF for intermediate transfers, this resolves issue101
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@771 96395faa-99c1-11dd-bbfe-3dabce05a288
This commit is contained in:
parent
3aedd8acb2
commit
c8683cb350
|
@ -308,7 +308,14 @@ void GIFdma()
|
||||||
|
|
||||||
prevcycles = 0;
|
prevcycles = 0;
|
||||||
if (!(vif1Regs->mskpath3 || (psHu32(GIF_MODE) & 0x1))) {
|
if (!(vif1Regs->mskpath3 || (psHu32(GIF_MODE) & 0x1))) {
|
||||||
if(gspath3done == 0){
|
if(gspath3done == 0)
|
||||||
|
{
|
||||||
|
if((psHu32(GIF_MODE) & 0x4) && gif->qwc != 0)
|
||||||
|
{
|
||||||
|
CPU_INT(2, min( 8, (int)gif->qwc )* BIAS);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
ptag = (u32*)dmaGetAddr(gif->tadr); //Set memory pointer to TADR
|
ptag = (u32*)dmaGetAddr(gif->tadr); //Set memory pointer to TADR
|
||||||
gif->qwc = (u16)ptag[0]; //QWC set to lower 16bits of the tag
|
gif->qwc = (u16)ptag[0]; //QWC set to lower 16bits of the tag
|
||||||
gif->chcr = ( gif->chcr & 0xFFFF ) | ( (*ptag) & 0xFFFF0000 ); //Transfer upper part of tag to CHCR bits 31-15
|
gif->chcr = ( gif->chcr & 0xFFFF ) | ( (*ptag) & 0xFFFF0000 ); //Transfer upper part of tag to CHCR bits 31-15
|
||||||
|
@ -316,6 +323,7 @@ void GIFdma()
|
||||||
gif->qwc = 0;
|
gif->qwc = 0;
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
}
|
||||||
//CPU_INT(2, gif->qwc * BIAS);
|
//CPU_INT(2, gif->qwc * BIAS);
|
||||||
gscycles = 0;
|
gscycles = 0;
|
||||||
}
|
}
|
||||||
|
@ -348,7 +356,14 @@ void dmaGIF() {
|
||||||
ptag = (u32*)dmaGetAddr(gif->tadr);
|
ptag = (u32*)dmaGetAddr(gif->tadr);
|
||||||
gif->qwc = (u16)ptag[0]; //QWC set to lower 16bits of the tag
|
gif->qwc = (u16)ptag[0]; //QWC set to lower 16bits of the tag
|
||||||
gif->chcr = ( gif->chcr & 0xFFFF ) | ( (*ptag) & 0xFFFF0000 ); //Transfer upper part of tag to CHCR bits 31-15
|
gif->chcr = ( gif->chcr & 0xFFFF ) | ( (*ptag) & 0xFFFF0000 ); //Transfer upper part of tag to CHCR bits 31-15
|
||||||
|
if((psHu32(GIF_MODE) & 0x4) && gif->qwc != 0)
|
||||||
|
{
|
||||||
|
CPU_INT(2, min( 8, (int)gif->qwc ) * BIAS);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
CPU_INT(2, gif->qwc * BIAS);
|
CPU_INT(2, gif->qwc * BIAS);
|
||||||
|
}
|
||||||
gif->qwc = 0;
|
gif->qwc = 0;
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
@ -356,7 +371,14 @@ void dmaGIF() {
|
||||||
if(gif->qwc > 0 && (gif->chcr & 0x4) == 0x4) {
|
if(gif->qwc > 0 && (gif->chcr & 0x4) == 0x4) {
|
||||||
//SysPrintf("HL Hack\n");
|
//SysPrintf("HL Hack\n");
|
||||||
gspath3done = 1; //Halflife sets a QWC amount in chain mode, no tadr set.
|
gspath3done = 1; //Halflife sets a QWC amount in chain mode, no tadr set.
|
||||||
|
if((psHu32(GIF_MODE) & 0x4) && gif->qwc != 0)
|
||||||
|
{
|
||||||
|
CPU_INT(2, min( 8, (int)gif->qwc ) * BIAS);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
CPU_INT(2, gif->qwc * BIAS);
|
CPU_INT(2, gif->qwc * BIAS);
|
||||||
|
}
|
||||||
GIFdma();
|
GIFdma();
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
@ -364,7 +386,14 @@ void dmaGIF() {
|
||||||
|
|
||||||
|
|
||||||
//GIFdma();
|
//GIFdma();
|
||||||
|
if((psHu32(GIF_MODE) & 0x4) && gif->qwc != 0)
|
||||||
|
{
|
||||||
|
CPU_INT(2, min( 8, (int)gif->qwc ) * BIAS);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
CPU_INT(2, gif->qwc * BIAS);
|
CPU_INT(2, gif->qwc * BIAS);
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue