From a2dd83b419903c70dbcd0ecd0b26a6bb380209c7 Mon Sep 17 00:00:00 2001 From: ramapcsx2 Date: Mon, 5 Dec 2011 07:58:11 +0000 Subject: [PATCH] Make the CDVD speedhack safer by excluding full seek delays. Tales of the Abyss should work with the hack now. git-svn-id: http://pcsx2.googlecode.com/svn/trunk@4980 96395faa-99c1-11dd-bbfe-3dabce05a288 --- pcsx2/CDVD/CDVD.cpp | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/pcsx2/CDVD/CDVD.cpp b/pcsx2/CDVD/CDVD.cpp index 3a2543ce4d..90931da712 100644 --- a/pcsx2/CDVD/CDVD.cpp +++ b/pcsx2/CDVD/CDVD.cpp @@ -47,7 +47,12 @@ static __fi void SetResultSize(u8 size) static void CDVDREAD_INT(int eCycle) { // Give it an arbitary FAST value. Good for ~5000kb/s in ULE when copying a file from CDVD to HDD - if (EmuConfig.Speedhacks.fastCDVD) eCycle = 3000; + // Keep long seeks out though, as games may try to push dmas while seeking. (Tales of the Abyss) + if (EmuConfig.Speedhacks.fastCDVD) { + if(eCycle < Cdvd_FullSeek_Cycles) + eCycle = 3000; + } + PSX_INT(IopEvt_CdvdRead, eCycle); } @@ -647,6 +652,11 @@ int cdvdReadSector() { return -1; } + //if( (HW_DMA3_CHCR & 0x01000000) == 0 ) { + // // DMA3 problem? + // Console.Warning( "CDVD READ - DMA3 transfer off (try again)\n" ); + //} + // DMAs use physical addresses (air) u8* mdest = iopPhysMem( HW_DMA3_MADR );