IPU fix for GUST games

git-svn-id: http://pcsx2.googlecode.com/svn/trunk@3777 96395faa-99c1-11dd-bbfe-3dabce05a288
This commit is contained in:
Jake.Stine 2010-09-16 11:04:35 +00:00
parent 1c75440a6c
commit d4310e0b86
2 changed files with 9 additions and 6 deletions

View File

@ -86,13 +86,16 @@ int IPU_Fifo_Input::write(u32* pMem, int size)
int IPU_Fifo_Input::read(void *value)
{
// wait until enough data to ensure proper streaming.
if (g_BP.IFC < 1)
if (g_BP.IFC < 4)
{
// IPU FIFO is empty and DMA is waiting so lets tell the DMA we are ready to put data in the FIFO
if(cpuRegs.eCycle[4] == 0x9999)
IPU1dma();
{
CPU_INT( DMAC_TO_IPU, 32 );
}
if (g_BP.IFC == 0) return 0;
pxAssert(g_BP.IFC > 0);
}
CopyQWC(value, &data[readpos]);

View File

@ -189,7 +189,7 @@ int IPU1dma()
{
if(!WaitGSPaths())
{ // legacy WaitGSPaths() for now
IPU_INT_TO(4); //Give it a short wait.
IPU_INT_TO(32); //Give it a short wait.
return totalqwc;
}
IPU_LOG("Processing Normal QWC left %x Finished %d In Progress %d", ipu1dma.qwc, IPU1Status.DMAFinished, IPU1Status.InProgress);
@ -203,7 +203,7 @@ int IPU1dma()
{
if(!WaitGSPaths())
{ // legacy WaitGSPaths() for now
IPU_INT_TO(4); //Give it a short wait.
IPU_INT_TO(32); //Give it a short wait.
return totalqwc;
}
IPU_LOG("Processing Chain QWC left %x Finished %d In Progress %d", ipu1dma.qwc, IPU1Status.DMAFinished, IPU1Status.InProgress);
@ -283,7 +283,7 @@ int IPU1dma()
if(!WaitGSPaths() && ipu1dma.qwc > 0)
{ // legacy WaitGSPaths() for now
IPU_INT_TO(4); //Give it a short wait.
IPU_INT_TO(32); //Give it a short wait.
return totalqwc;
}
IPU_LOG("Processing Start Chain QWC left %x Finished %d In Progress %d", ipu1dma.qwc, IPU1Status.DMAFinished, IPU1Status.InProgress);