From ca59ce45c0b415cf3b7b0fb0fc32122d1e3323f1 Mon Sep 17 00:00:00 2001 From: Robert Neumann Date: Fri, 7 Oct 2016 21:36:06 +0200 Subject: [PATCH] psxmode: Make cd read delays longer to avoid mdec glitches and possibly some other data corruption. Proper read timings can be added later using cdvd.cpp as an example. --- pcsx2/CDVD/CdRom.cpp | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/pcsx2/CDVD/CdRom.cpp b/pcsx2/CDVD/CdRom.cpp index 58b11a73b4..e537feae50 100644 --- a/pcsx2/CDVD/CdRom.cpp +++ b/pcsx2/CDVD/CdRom.cpp @@ -517,7 +517,7 @@ void cdrReadInterrupt() { if (cdr.RErr == -1) { - CDVD_LOG(" err\n"); + DevCon.Warning("CD err"); memzero(cdr.Transfer); cdr.Stat = DiskError; cdr.Result[0] |= 0x01; @@ -544,12 +544,13 @@ void cdrReadInterrupt() { cdr.Readed = 0; if ((cdr.Transfer[4+2] & 0x80) && (cdr.Mode & 0x2)) { // EOF - CDVD_LOG("AutoPausing Read"); + DevCon.Warning("CD AutoPausing Read"); AddIrqQueue(CdlPause, 0x800); } else { ReadTrack(); - CDREAD_INT((cdr.Mode & 0x80) ? (cdReadTime / 2) : cdReadTime); + // psxmode: extra delays | remove once dma is stable (fixes "dma3 not ready" and mdec glitches) + CDREAD_INT((cdr.Mode & 0x80) ? (cdReadTime / 2) * 3 : cdReadTime * 3); } psxHu32(0x1070)|= 0x4;