diff options
| author | SND\notaz_cp <SND\notaz_cp@e17a0e51-4ae3-4d35-97c3-1a29b211df97> | 2013-01-12 21:07:37 +0000 |
|---|---|---|
| committer | SND\notaz_cp <SND\notaz_cp@e17a0e51-4ae3-4d35-97c3-1a29b211df97> | 2013-01-12 21:07:37 +0000 |
| commit | c288a602fc242050515e4ff3753bce02e713077e (patch) | |
| tree | 16c6825f12dd396e888d6f9940cde5a4cac08907 | |
| parent | c59b7d800daeee2768e636dfde1db6aea539f5fb (diff) | |
| download | pcsxr-c288a602fc242050515e4ff3753bce02e713077e.tar.gz | |
cdriso: handle cdda playback on data tracks
git-svn-id: https://pcsxr.svn.codeplex.com/svn/pcsxr@82224 e17a0e51-4ae3-4d35-97c3-1a29b211df97
| -rwxr-xr-x | libpcsxcore/cdriso.c | 10 | ||||
| -rwxr-xr-x | libpcsxcore/cdrom.c | 2 |
2 files changed, 10 insertions, 2 deletions
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); |
