X-Git-Url: https://notaz.gp2x.de/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=libpcsxcore%2Fcdrom.c;h=1646d0edf7daa63398c215391d94c432dfc3aa52;hb=bbd0482a1ed536b85f08fc4fbe10b8642912569f;hp=5b4beb52281c3f934cc832f058a04c691a6724cf;hpb=115d0459b2ed99d9536fe84411f4c72e7fe6cf2e;p=pcsx_rearmed.git diff --git a/libpcsxcore/cdrom.c b/libpcsxcore/cdrom.c index 5b4beb52..1646d0ed 100644 --- a/libpcsxcore/cdrom.c +++ b/libpcsxcore/cdrom.c @@ -451,7 +451,6 @@ static void cdrPlayInterrupt_Autopause() StopCdda(); } else if (((cdr.Mode & MODE_REPORT) || cdr.FastForward || cdr.FastBackward)) { - CDR_readCDDA(cdr.SetSectorPlay[0], cdr.SetSectorPlay[1], cdr.SetSectorPlay[2], (u8 *)read_buf); cdr.Result[0] = cdr.StatP; cdr.Result[1] = cdr.subq.Track; cdr.Result[2] = cdr.subq.Index; @@ -527,13 +526,14 @@ void cdrPlayInterrupt() StopCdda(); cdr.TrackChanged = TRUE; } + else { + CDR_readCDDA(cdr.SetSectorPlay[0], cdr.SetSectorPlay[1], cdr.SetSectorPlay[2], (u8 *)read_buf); + } if (!cdr.Irq && !cdr.Stat && (cdr.Mode & (MODE_AUTOPAUSE|MODE_REPORT))) cdrPlayInterrupt_Autopause(); - if (!cdr.Play) return; - - if (CDR_readCDDA && !cdr.Muted && cdr.Mode & MODE_REPORT) { + if (CDR_readCDDA && !cdr.Muted && !Config.Cdda) { cdrAttenuate(read_buf, CD_FRAMESIZE_RAW / 4, 1); if (SPU_playCDDAchannel) SPU_playCDDAchannel(read_buf, CD_FRAMESIZE_RAW); @@ -774,7 +774,7 @@ void cdrInterrupt() { * * We will need to get around this for Bedlam/Rise 2 later... * */ - if (cdr.DriveState != DRIVESTATE_STANDBY) + if (cdr.DriveState == DRIVESTATE_STANDBY) { delay = 7000; } @@ -839,9 +839,6 @@ void cdrInterrupt() { case CdlGetlocP: SetResultSize(8); memcpy(&cdr.Result, &cdr.subq, 8); - - if (!cdr.Play && !cdr.Reading) - cdr.Result[1] = 0; // HACK? break; case CdlReadT: // SetSession?