Mercurial > repos > blastem
diff cue.c @ 2062:07ed42bd7b4c segacd
Some progress on CDC and CDD emulation. Now passes first 3 "CDC INIT" tests in mcd-verificator
author | Michael Pavone <pavone@retrodev.com> |
---|---|
date | Fri, 28 Jan 2022 00:50:17 -0800 |
parents | 7c1760b5b3e5 |
children | c5323c02dde4 |
line wrap: on
line diff
--- a/cue.c Thu Jan 27 00:33:41 2022 -0800 +++ b/cue.c Fri Jan 28 00:50:17 2022 -0800 @@ -141,6 +141,15 @@ //replace cue sheet with first sector free(media->buffer); media->buffer = calloc(2048, 1); + if (tracks[0].type = TRACK_DATA) { + // if the first track is a data track, don't trust the CUE sheet and look at the MM:SS:FF from first sector + uint8_t msf[3]; + fseek(media->f, 12, SEEK_SET); + if (sizeof(msf) == fread(msf, 1, sizeof(msf), media->f)) { + tracks[0].fake_pregap = msf[2] + (msf[0] * 60 + msf[1]) * 75; + } + } + fseek(media->f, 16, SEEK_SET); media->size = fread(media->buffer, 1, 2048, media->f); }