From 260b98fb92abc0cd3f7bd24a5ee79df30ad6cc6b Mon Sep 17 00:00:00 2001 From: refraction Date: Tue, 23 Aug 2011 18:37:04 +0000 Subject: [PATCH] Thats better, winmerge helps! git-svn-id: http://pcsx2.googlecode.com/svn/trunk@4875 96395faa-99c1-11dd-bbfe-3dabce05a288 --- pcsx2/Sif0.cpp | 8 +++----- pcsx2/Sif1.cpp | 19 +++++++++---------- 2 files changed, 12 insertions(+), 15 deletions(-) diff --git a/pcsx2/Sif0.cpp b/pcsx2/Sif0.cpp index d0301962c..27691e5d1 100644 --- a/pcsx2/Sif0.cpp +++ b/pcsx2/Sif0.cpp @@ -286,7 +286,7 @@ static __fi void HandleIOPTransfer() static __fi void Sif0End() { psHu32(SBUS_F240) &= ~0x20; - //psHu32(SBUS_F240) &= ~0x2000; + psHu32(SBUS_F240) &= ~0x2000; DMA_LOG("SIF0 DMA End"); } @@ -320,7 +320,7 @@ __fi void SIF0Dma() } } while (/*!done && */BusyCheck > 0); // Substituting (sif0.ee.busy || sif0.iop.busy) breaks things. - + Sif0End(); } __fi void sif0Interrupt() @@ -331,14 +331,12 @@ __fi void sif0Interrupt() __fi void EEsif0Interrupt() { - Sif0End(); hwDmacIrq(DMAC_SIF0); sif0dma.chcr.STR = false; } __fi void dmaSIF0() { - if(sif0.ee.end == true) DevCon.Warning("Happened on SIF0 :("); SIF_LOG(wxString(L"dmaSIF0" + sif0dma.cmqt_to_str()).To8BitData()); if (sif0.fifo.readPos != sif0.fifo.writePos) @@ -347,7 +345,7 @@ __fi void dmaSIF0() } //if(sif0dma.chcr.MOD == CHAIN_MODE && sif0dma.qwc > 0) DevCon.Warning(L"SIF0 QWC on Chain CHCR " + sif0dma.chcr.desc()); - //psHu32(SBUS_F240) |= 0x2000; + psHu32(SBUS_F240) |= 0x2000; sif0.ee.busy = true; // Okay, this here is needed currently (r3644). diff --git a/pcsx2/Sif1.cpp b/pcsx2/Sif1.cpp index b03eb228d..77b5a0628 100644 --- a/pcsx2/Sif1.cpp +++ b/pcsx2/Sif1.cpp @@ -37,9 +37,9 @@ static __fi bool WriteEEtoFifo() { // There's some data ready to transfer into the fifo.. - + SIF_LOG("Sif 1: Write EE to Fifo"); const int writeSize = min((s32)sif1dma.qwc, sif1.fifo.sif_free() >> 2); - SIF_LOG("Sif 1: Write EE QWC %x to Fifo Size %x", sif1dma.qwc, writeSize); + tDMA_TAG *ptag; ptag = sif1dma.getAddr(sif1dma.madr, DMAC_SIF1, false); @@ -55,7 +55,7 @@ static __fi bool WriteEEtoFifo() hwDmacSrcTadrInc(sif1dma); sif1.ee.cycles += writeSize; // fixme : BIAS is factored in above sif1dma.qwc -= writeSize; - SIF_LOG("Ending FIFO Write, sif1 qwc = %x", sif1dma.qwc); + return true; } @@ -166,7 +166,7 @@ static __fi void EndEE() { sif1.ee.end = false; sif1.ee.busy = false; - SIF_LOG("Sif 1: End EE %x", sif1dma.qwc); + SIF_LOG("Sif 1: End EE"); // Voodoocycles : Okami wants around 100 cycles when booting up // Other games reach like 50k cycles here, but the EE will long have given up by then and just retry. @@ -178,7 +178,7 @@ static __fi void EndEE() } - CPU_INT(DMAC_SIF1, /*min((int)(*/sif1.ee.cycles*8/*), 384)*/); + CPU_INT(DMAC_SIF1, /*min((int)(*/sif1.ee.cycles*BIAS/*), 384)*/); } // Stop processing IOP, and signal an interrupt. @@ -280,7 +280,7 @@ static __fi void Sif1End() { psHu32(SBUS_F240) &= ~0x40; psHu32(SBUS_F240) &= ~0x4000; - + DMA_LOG("SIF1 DMA End"); } @@ -313,12 +313,13 @@ __fi void SIF1Dma() } } - } while (/*!done &&*/ BusyCheck > 0); + } while (/*!done &&*/ BusyCheck > 0); + + Sif1End(); } __fi void sif1Interrupt() { - Sif1End(); HW_DMA10_CHCR &= ~0x01000000; //reset TR flag psxDmaInterrupt2(3); } @@ -345,8 +346,6 @@ __fi void dmaSIF1() psHu32(SBUS_F240) |= 0x4000; sif1.ee.busy = true; - - // 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,