mirror of https://github.com/PCSX2/pcsx2.git
Tested the cycle changes extensively on legacy_gui, they are fine.
So bringing them over to pcsx2/wx now. They're tagged with "voodoocycles" in the source, to easily test for regressions (or improvements!) :p git-svn-id: http://pcsx2.googlecode.com/svn/trunk@2018 96395faa-99c1-11dd-bbfe-3dabce05a288
This commit is contained in:
parent
aa26ea5004
commit
733e3daa18
|
@ -115,7 +115,12 @@ static const uint tbl_ContigiousSeekDelta[3] =
|
|||
// concerned with accurate(ish) seek delays and less concerned with actual block read speeds.
|
||||
// Translation: it's a minor speedhack :D
|
||||
|
||||
static const uint PSX_CD_READSPEED = 153600; // 1 Byte Time @ x1 (150KB = cd x 1)
|
||||
//Fixme ( voodoocycles ):
|
||||
//The current CD mode gives a too low transfer rate. HDloader reports 900kb/s, while the theoretical max is 3600kb/s
|
||||
//Silent Hill 2 videos starve of data and stall.
|
||||
//So let's double that until the cause of the slow data rate is known.
|
||||
|
||||
static const uint PSX_CD_READSPEED = 153600 * 2; // 1 Byte Time @ x1 (150KB = cd x 1)
|
||||
static const uint PSX_DVD_READSPEED = 1382400 + 256000; // normal is 1 Byte Time @ x1 (1350KB = dvd x 1).
|
||||
|
||||
// Legacy Note: FullSeek timing causes many games to load very slow, but it likely not the real problem.
|
||||
|
|
|
@ -1656,6 +1656,7 @@ void FIFOfrom_read(void *value, int size)
|
|||
int IPU0dma()
|
||||
{
|
||||
int readsize;
|
||||
static int totalsize = 0;
|
||||
void* pMem;
|
||||
|
||||
if ((!(ipu0dma->chcr.STR) || (cpuRegs.interrupt & (1 << DMAC_FROM_IPU))) || (ipu0dma->qwc == 0))
|
||||
|
@ -1670,6 +1671,7 @@ int IPU0dma()
|
|||
pMem = (u32*)dmaGetAddr(ipu0dma->madr);
|
||||
|
||||
readsize = min(ipu0dma->qwc, (u16)ipuRegs->ctrl.OFC);
|
||||
totalsize+=readsize;
|
||||
FIFOfrom_read(pMem, readsize);
|
||||
|
||||
ipu0dma->madr += readsize << 4;
|
||||
|
@ -1695,7 +1697,12 @@ int IPU0dma()
|
|||
break;
|
||||
}
|
||||
}
|
||||
IPU_INT_FROM(readsize*BIAS);
|
||||
//Fixme ( voodoocycles ):
|
||||
//This was IPU_INT_FROM(readsize*BIAS );
|
||||
//This broke vids in Digital Devil Saga
|
||||
//Note that interrupting based on totalsize is just guessing..
|
||||
IPU_INT_FROM(totalsize*BIAS );
|
||||
totalsize=0;
|
||||
}
|
||||
|
||||
return readsize;
|
||||
|
|
|
@ -382,7 +382,11 @@ __forceinline void SIF1Dma()
|
|||
SIF_LOG(" IOP SIF interrupt");
|
||||
|
||||
iopsifbusy[1] = false;
|
||||
PSX_INT(IopEvt_SIF1, psxCycles);
|
||||
|
||||
//Fixme ( voodoocycles ):
|
||||
//The *50 are needed for ecco the dolphin (CDVD hangs) and silver surfer (Pad not detected)
|
||||
|
||||
PSX_INT(IopEvt_SIF1, psxCycles * 50);
|
||||
sif1.tagMode = 0;
|
||||
done = true;
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue