From c288a602fc242050515e4ff3753bce02e713077e Mon Sep 17 00:00:00 2001 From: "SND\\notaz_cp" Date: Sat, 12 Jan 2013 21:07:37 +0000 Subject: cdriso: handle cdda playback on data tracks git-svn-id: https://pcsxr.svn.codeplex.com/svn/pcsxr@82224 e17a0e51-4ae3-4d35-97c3-1a29b211df97 --- libpcsxcore/cdriso.c | 10 +++++++++- libpcsxcore/cdrom.c | 2 +- 2 files changed, 10 insertions(+), 2 deletions(-) (limited to 'libpcsxcore') diff --git a/libpcsxcore/cdriso.c b/libpcsxcore/cdriso.c index 03413976..b7c4bccb 100755 --- a/libpcsxcore/cdriso.c +++ b/libpcsxcore/cdriso.c @@ -1295,10 +1295,18 @@ long CALLBACK ISOreadCDDA(unsigned char m, unsigned char s, unsigned char f, uns cddaCurPos = msf2sec(msf); // find current track index - for (track = numtracks; track > 1; track--) { + for (track = numtracks; ; track--) { track_start = msf2sec(ti[track].start); if (track_start <= cddaCurPos) break; + if (track == 1) + break; + } + + // data tracks play silent + if (ti[track].type != CDDA) { + memset(buffer, 0, CD_FRAMESIZE_RAW); + return 0; } file = 1; diff --git a/libpcsxcore/cdrom.c b/libpcsxcore/cdrom.c index 41537d56..05b4be71 100755 --- a/libpcsxcore/cdrom.c +++ b/libpcsxcore/cdrom.c @@ -659,7 +659,7 @@ void cdrPlayInterrupt() if (!cdr.Play) return; - if (CDR_readCDDA && !cdr.Muted && cdr.CurTrack > 1) { + if (CDR_readCDDA && !cdr.Muted) { CDR_readCDDA(cdr.SetSectorPlay[0], cdr.SetSectorPlay[1], cdr.SetSectorPlay[2], cdr.Transfer); -- cgit v1.2.3