SPU2-X: silly logic error in IRQA testing for DMA, fixes Atelier Iris, maybe others.

Thanks to rama for testing.

git-svn-id: http://pcsx2.googlecode.com/svn/trunk@4945 96395faa-99c1-11dd-bbfe-3dabce05a288
This commit is contained in:
sudonim1@gmail.com 2011-10-27 15:34:14 +00:00
parent 60939bd9dd
commit 553635f00d
1 changed files with 4 additions and 4 deletions

View File

@ -272,14 +272,14 @@ void V_Core::PlainDMAWrite(u16 *pMem, u32 size)
{ {
// Note: (start is inclusive, dest exclusive -- fixes DMC1 FMVs) // Note: (start is inclusive, dest exclusive -- fixes DMC1 FMVs)
if ((Cores[i].IRQEnable && (Cores[i].IRQA >= TSA)) || (Cores[i].IRQA < TDA)) if (Cores[i].IRQEnable && (Cores[i].IRQA >= TSA || Cores[i].IRQA < TDA))
{ {
//ConLog("DMAwrite Core %d: IRQ Called (IRQ passed). IRQA = %x Cycles = %d\n", i, Cores[i].IRQA, Cycles ); //ConLog("DMAwrite Core %d: IRQ Called (IRQ passed). IRQA = %x Cycles = %d\n", i, Cores[i].IRQA, Cycles );
SetIrqCall(i); SetIrqCall(i);
} }
} }
#else #else
if ((IRQEnable && (IRQA >= TSA)) || (IRQA < TDA)) if ((IRQEnable && (IRQA >= TSA || IRQA < TDA))
{ {
SetIrqCall(Index); SetIrqCall(Index);
} }
@ -354,7 +354,7 @@ void V_Core::DoDMAread(u16* pMem, u32 size)
for( int i=0; i<2; i++ ) for( int i=0; i<2; i++ )
{ {
if ((Cores[i].IRQEnable && (Cores[i].IRQA >= TSA)) || (Cores[i].IRQA < TDA)) if (Cores[i].IRQEnable && (Cores[i].IRQA >= TSA || Cores[i].IRQA < TDA))
{ {
SetIrqCall(i); SetIrqCall(i);
} }
@ -470,7 +470,7 @@ s32 V_Core::NewDmaRead(u32* data, u32 bytesLeft, u32* bytesProcessed)
for( int i=0; i<2; i++ ) for( int i=0; i<2; i++ )
{ {
if( Cores[i].IRQEnable && (Cores[i].IRQA >= TSA) || (Cores[i].IRQA < TDA) ) if( Cores[i].IRQEnable && (Cores[i].IRQA >= TSA || Cores[i].IRQA < TDA) )
{ {
SetIrqCall(i); SetIrqCall(i);
} }