mirror of https://github.com/PCSX2/pcsx2.git
GIF MFIFO: Wrapping of MADR and TADR when transferring from the ring itself. Fixes Front Mission 4
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@4268 96395faa-99c1-11dd-bbfe-3dabce05a288
This commit is contained in:
parent
53ae262649
commit
7c7b565693
|
@ -544,6 +544,11 @@ static __fi bool mfifoGIFchain()
|
||||||
// if(gifch.madr == (dmacRegs.rbor.ADDR + dmacRegs.rbsr.RMSK + 16)) DevCon.Warning("Edge GIF");
|
// if(gifch.madr == (dmacRegs.rbor.ADDR + dmacRegs.rbsr.RMSK + 16)) DevCon.Warning("Edge GIF");
|
||||||
if (!mfifoGIFrbTransfer()) ret = false;
|
if (!mfifoGIFrbTransfer()) ret = false;
|
||||||
if(QWCinGIFMFIFO(gifch.madr) == 0) gifstate |= GIF_STATE_EMPTY;
|
if(QWCinGIFMFIFO(gifch.madr) == 0) gifstate |= GIF_STATE_EMPTY;
|
||||||
|
|
||||||
|
//Make sure we wrap the addresses, dont want it being stuck outside the ring when reading from the ring!
|
||||||
|
gifch.madr = dmacRegs.rbor.ADDR + (gifch.madr & dmacRegs.rbsr.RMSK);
|
||||||
|
gifch.tadr = dmacRegs.rbor.ADDR + (gifch.tadr & dmacRegs.rbsr.RMSK); //Check this too, tadr can suffer the same issue.
|
||||||
|
|
||||||
return ret;
|
return ret;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue