mirror of https://github.com/PCSX2/pcsx2.git
IPU fix for a few games. Bring back the overflow into pad area handling for IPU1.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@2869 96395faa-99c1-11dd-bbfe-3dabce05a288
This commit is contained in:
parent
ac901140a2
commit
618e295c95
|
@ -1566,6 +1566,19 @@ __forceinline void dmaIPU0() // fromIPU
|
||||||
__forceinline void dmaIPU1() // toIPU
|
__forceinline void dmaIPU1() // toIPU
|
||||||
{
|
{
|
||||||
IPU_LOG("IPU1DMAStart QWC %x, MADR %x, CHCR %x, TADR %x", ipu1dma->qwc, ipu1dma->madr, ipu1dma->chcr._u32, ipu1dma->tadr);
|
IPU_LOG("IPU1DMAStart QWC %x, MADR %x, CHCR %x, TADR %x", ipu1dma->qwc, ipu1dma->madr, ipu1dma->chcr._u32, ipu1dma->tadr);
|
||||||
|
|
||||||
|
if (ipu1dma->pad != 0)
|
||||||
|
{
|
||||||
|
// Note: pad is the padding right above qwc, so we're testing whether qwc
|
||||||
|
// has overflowed into pad.
|
||||||
|
DevCon.Warning(L"IPU1dma's upper 16 bits set to %x\n", ipu1dma->pad);
|
||||||
|
ipu1dma->qwc = ipu1dma->pad = 0;
|
||||||
|
// If we are going to clear down IPU1, we should end it too.
|
||||||
|
// Going to test this scenario on the PS2 mind - Refraction
|
||||||
|
ipu1dma->chcr.STR = false;
|
||||||
|
hwDmacIrq(DMAC_TO_IPU);
|
||||||
|
}
|
||||||
|
|
||||||
if (ipu1dma->chcr.MOD == CHAIN_MODE) //Chain Mode
|
if (ipu1dma->chcr.MOD == CHAIN_MODE) //Chain Mode
|
||||||
{
|
{
|
||||||
IPU_LOG("Setting up IPU1 Chain mode");
|
IPU_LOG("Setting up IPU1 Chain mode");
|
||||||
|
|
Loading…
Reference in New Issue