Fix for the Gungrave everybody wanted. Was a small programming error in GIF MFIFO, now fixed :P

git-svn-id: http://pcsx2.googlecode.com/svn/trunk@4267 96395faa-99c1-11dd-bbfe-3dabce05a288
This commit is contained in:
refraction 2011-01-26 22:12:25 +00:00
parent 1b3d135b18
commit 53ae262649
2 changed files with 7 additions and 4 deletions

View File

@ -575,11 +575,14 @@ void mfifoGIFtransfer(int qwc)
if(qwc > 0 ) if(qwc > 0 )
{ {
if ((gifstate & GIF_STATE_EMPTY) && !(cpuRegs.interrupt & (1<<DMAC_MFIFO_GIF))) if ((gifstate & GIF_STATE_EMPTY))
{ {
if(gifch.chcr.STR == true)CPU_INT(DMAC_MFIFO_GIF, 4); if(gifch.chcr.STR == true && !(cpuRegs.interrupt & (1<<DMAC_MFIFO_GIF)))
gifstate &= ~GIF_STATE_EMPTY; CPU_INT(DMAC_MFIFO_GIF, 4);
gifstate &= ~GIF_STATE_EMPTY;
} }
gifRegs.stat.FQC = 16; gifRegs.stat.FQC = 16;
return; return;
} }

View File

@ -141,7 +141,7 @@ void hwDmacIrq(int n)
void FireMFIFOEmpty() void FireMFIFOEmpty()
{ {
SPR_LOG("VIF MFIFO Data Empty"); SPR_LOG("MFIFO Data Empty");
hwDmacIrq(DMAC_MFIFO_EMPTY); hwDmacIrq(DMAC_MFIFO_EMPTY);
if (dmacRegs.ctrl.MFD == MFD_VIF1) vif1Regs.stat.FQC = 0; if (dmacRegs.ctrl.MFD == MFD_VIF1) vif1Regs.stat.FQC = 0;