mirror of https://github.com/PCSX2/pcsx2.git
Found and fixed the issue causing some FFX battles to hang since ~400 revs ago.
The same problem caused the hang in Phantasy Star 4 when pressing pause. git-svn-id: http://pcsx2.googlecode.com/svn/trunk@3645 96395faa-99c1-11dd-bbfe-3dabce05a288
This commit is contained in:
parent
a8e406523b
commit
6798f27d4d
|
@ -342,11 +342,17 @@ __fi void dmaSIF0()
|
|||
psHu32(SBUS_F240) |= 0x2000;
|
||||
sif0.ee.busy = true;
|
||||
|
||||
/*if (sif0.iop.busy)
|
||||
{*/
|
||||
hwIntcIrq(INTC_SBUS);
|
||||
// Okay, this here is needed currently (r3644).
|
||||
// FFX battles in the thunder plains map die otherwise, Phantasy Star 4 as well
|
||||
// These 2 games could be made playable again by increasing the time the EE or the IOP run,
|
||||
// showing that this is very timing sensible.
|
||||
// Doing this DMA unfortunately brings back an old warning in Legend of Legaia though, but it still works.
|
||||
if (sif0.iop.busy)
|
||||
{
|
||||
//hwIntcIrq(INTC_SBUS); // not sure, so let's not
|
||||
SIF0Dma();
|
||||
psHu32(SBUS_F240) &= ~0x20;
|
||||
psHu32(SBUS_F240) &= ~0x2000;
|
||||
//}
|
||||
// Do we really want to mess with the SIF flags like that? Nah.
|
||||
//psHu32(SBUS_F240) &= ~0x20;
|
||||
//psHu32(SBUS_F240) &= ~0x2000;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -341,11 +341,17 @@ __fi void dmaSIF1()
|
|||
psHu32(SBUS_F240) |= 0x4000;
|
||||
sif1.ee.busy = true;
|
||||
|
||||
/*if (sif1.iop.busy)
|
||||
{*/
|
||||
// Okay, this here is needed currently (r3644).
|
||||
// FFX battles in the thunder plains map die otherwise, Phantasy Star 4 as well
|
||||
// These 2 games could be made playable again by increasing the time the EE or the IOP run,
|
||||
// showing that this is very timing sensible.
|
||||
// Doing this DMA unfortunately brings back an old warning in Legend of Legaia though, but it still works.
|
||||
if (sif1.iop.busy)
|
||||
{
|
||||
SIF1Dma();
|
||||
psHu32(SBUS_F240) &= ~0x40;
|
||||
psHu32(SBUS_F240) &= ~0x100;
|
||||
psHu32(SBUS_F240) &= ~0x4000;
|
||||
//}
|
||||
// Do we really want to mess with the SIF flags like that? Nah.
|
||||
//psHu32(SBUS_F240) &= ~0x40;
|
||||
//psHu32(SBUS_F240) &= ~0x100;
|
||||
//psHu32(SBUS_F240) &= ~0x4000;
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue