mirror of https://github.com/PCSX2/pcsx2.git
SIF: Some logging that might be interesting when trying to fix this.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@2498 96395faa-99c1-11dd-bbfe-3dabce05a288
This commit is contained in:
parent
fa04244375
commit
7dfaa65ef3
|
@ -40,7 +40,7 @@ static __forceinline bool SifEERead(int &cycles)
|
||||||
{
|
{
|
||||||
tDMA_TAG *ptag;
|
tDMA_TAG *ptag;
|
||||||
int readSize = min((s32)sif0dma->qwc, (sif0.fifo.size >> 2));
|
int readSize = min((s32)sif0dma->qwc, (sif0.fifo.size >> 2));
|
||||||
|
if (readSize == 0) { /*Console.Warning("SifEERead readSize is 0"); return false;*/}
|
||||||
//SIF_LOG(" EE SIF doing transfer %04Xqw to %08X", readSize, sif0dma->madr);
|
//SIF_LOG(" EE SIF doing transfer %04Xqw to %08X", readSize, sif0dma->madr);
|
||||||
SIF_LOG("----------- %lX of %lX", readSize << 2, sif0dma->qwc << 2);
|
SIF_LOG("----------- %lX of %lX", readSize << 2, sif0dma->qwc << 2);
|
||||||
|
|
||||||
|
@ -64,7 +64,7 @@ static __forceinline bool SifEEWrite(int &cycles)
|
||||||
tDMA_TAG *pTag;
|
tDMA_TAG *pTag;
|
||||||
|
|
||||||
const int writeSize = min((s32)sif1dma->qwc, (FIFO_SIF_W - sif1.fifo.size) / 4);
|
const int writeSize = min((s32)sif1dma->qwc, (FIFO_SIF_W - sif1.fifo.size) / 4);
|
||||||
|
if (writeSize == 0) { /*Console.Warning("SifEEWrite writeSize is 0"); return false;*/ }
|
||||||
pTag = safeDmaGetAddr(sif1dma, sif1dma->madr, DMAC_SIF1);
|
pTag = safeDmaGetAddr(sif1dma, sif1dma->madr, DMAC_SIF1);
|
||||||
if (pTag == NULL) return false;
|
if (pTag == NULL) return false;
|
||||||
|
|
||||||
|
@ -80,7 +80,7 @@ static __forceinline void SifIOPWrite(int &psxCycles)
|
||||||
{
|
{
|
||||||
// There's some data ready to transfer into the fifo..
|
// There's some data ready to transfer into the fifo..
|
||||||
int writeSize = min(sif0.counter, FIFO_SIF_W - sif0.fifo.size);
|
int writeSize = min(sif0.counter, FIFO_SIF_W - sif0.fifo.size);
|
||||||
|
if (writeSize == 0) { /*Console.Warning("SifIOPWrite writeSize is 0"); return;*/ }
|
||||||
SIF_LOG("+++++++++++ %lX of %lX", writeSize, sif0.counter);
|
SIF_LOG("+++++++++++ %lX of %lX", writeSize, sif0.counter);
|
||||||
|
|
||||||
sif0.fifo.write((u32*)iopPhysMem(HW_DMA9_MADR), writeSize);
|
sif0.fifo.write((u32*)iopPhysMem(HW_DMA9_MADR), writeSize);
|
||||||
|
@ -93,7 +93,7 @@ static __forceinline void SifIOPRead(int &psxCycles)
|
||||||
{
|
{
|
||||||
// If we're reading something, continue to do so.
|
// If we're reading something, continue to do so.
|
||||||
const int readSize = min (sif1.counter, sif1.fifo.size);
|
const int readSize = min (sif1.counter, sif1.fifo.size);
|
||||||
|
if (readSize == 0) { /*Console.Warning("SifIOPRead readSize is 0"); return;*/ }
|
||||||
SIF_LOG(" IOP SIF doing transfer %04X to %08X", readSize, HW_DMA10_MADR);
|
SIF_LOG(" IOP SIF doing transfer %04X to %08X", readSize, HW_DMA10_MADR);
|
||||||
|
|
||||||
sif1.fifo.read((u32*)iopPhysMem(HW_DMA10_MADR), readSize);
|
sif1.fifo.read((u32*)iopPhysMem(HW_DMA10_MADR), readSize);
|
||||||
|
@ -150,7 +150,7 @@ static __forceinline void SIF0EEDma(int &cycles, bool &done)
|
||||||
|
|
||||||
eesifbusy[0] = false;
|
eesifbusy[0] = false;
|
||||||
done = true;
|
done = true;
|
||||||
|
if (cycles == 0) DevCon.Warning("EESIF0cycles = 0");
|
||||||
CPU_INT(5, cycles*BIAS);
|
CPU_INT(5, cycles*BIAS);
|
||||||
}
|
}
|
||||||
else if (sif0.fifo.size >= 4) // Read a tag
|
else if (sif0.fifo.size >= 4) // Read a tag
|
||||||
|
@ -220,6 +220,7 @@ static __forceinline void SIF1EEDma(int &cycles, bool &done)
|
||||||
// Voodoocycles : Okami wants around 100 cycles when booting up
|
// 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.
|
// Other games reach like 50k cycles here, but the EE will long have given up by then and just retry.
|
||||||
// (Cause of double interrupts on the EE)
|
// (Cause of double interrupts on the EE)
|
||||||
|
if (cycles == 0) DevCon.Warning("EESIF1cycles = 0");
|
||||||
CPU_INT(6, min( (int)(cycles*BIAS), 384 ) );
|
CPU_INT(6, min( (int)(cycles*BIAS), 384 ) );
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
@ -318,6 +319,7 @@ static __forceinline void SIF0IOPDma(int &psxCycles, bool &done)
|
||||||
// iop is 1/8th the clock rate of the EE and psxcycles is in words (not quadwords)
|
// iop is 1/8th the clock rate of the EE and psxcycles is in words (not quadwords)
|
||||||
// So when we're all done, the equation looks like thus:
|
// So when we're all done, the equation looks like thus:
|
||||||
//PSX_INT(IopEvt_SIF0, ( ( psxCycles*BIAS ) / 4 ) / 8);
|
//PSX_INT(IopEvt_SIF0, ( ( psxCycles*BIAS ) / 4 ) / 8);
|
||||||
|
if (psxCycles == 0) DevCon.Warning("IOPSIF0cycles = 0");
|
||||||
PSX_INT(IopEvt_SIF0, psxCycles);
|
PSX_INT(IopEvt_SIF0, psxCycles);
|
||||||
}
|
}
|
||||||
else // Chain mode
|
else // Chain mode
|
||||||
|
@ -376,6 +378,7 @@ static __forceinline void SIF1IOPDma(int &psxCycles, bool &done)
|
||||||
//The *24 are needed for ecco the dolphin (CDVD hangs) and silver surfer (Pad not detected)
|
//The *24 are needed for ecco the dolphin (CDVD hangs) and silver surfer (Pad not detected)
|
||||||
//Greater than *35 break rebooting when trying to play Tekken5 arcade history
|
//Greater than *35 break rebooting when trying to play Tekken5 arcade history
|
||||||
//Total cycles over 1024 makes SIF too slow to keep up the sound stream in so3...
|
//Total cycles over 1024 makes SIF too slow to keep up the sound stream in so3...
|
||||||
|
if (psxCycles == 0) DevCon.Warning("IOPSIF1cycles = 0");
|
||||||
PSX_INT(IopEvt_SIF1, min ( (psxCycles * 24), 1024) );
|
PSX_INT(IopEvt_SIF1, min ( (psxCycles * 24), 1024) );
|
||||||
}
|
}
|
||||||
else if (sif1.fifo.size >= 4)
|
else if (sif1.fifo.size >= 4)
|
||||||
|
|
Loading…
Reference in New Issue