Mercurial > repos > blastem
changeset 2079:5a2b759f6b2d
BIOS doesn't like it if TOC read happens too quickly
author | Michael Pavone <pavone@retrodev.com> |
---|---|
date | Tue, 01 Feb 2022 01:14:27 -0800 |
parents | c534a3199020 |
children | bafb757e1cd2 |
files | cdd_mcu.c cue.c |
diffstat | 2 files changed, 3 insertions(+), 9 deletions(-) [+] |
line wrap: on
line diff
--- a/cdd_mcu.c Tue Feb 01 01:07:42 2022 -0800 +++ b/cdd_mcu.c Tue Feb 01 01:14:27 2022 -0800 @@ -124,7 +124,7 @@ if (!context->seeking) { context->head_pba++; if (context->media && context->media->type == MEDIA_CDROM && context->media->num_tracks) { - if (context->head_pba > 3*context->media->num_tracks + 1) { + if (context->head_pba > 3*(context->media->num_tracks + 2)) { context->toc_valid = 1; context->seeking = 1; context->seek_pba = LEADIN_SECTORS + context->media->tracks[0].start_lba;
--- a/cue.c Tue Feb 01 01:07:42 2022 -0800 +++ b/cue.c Tue Feb 01 01:14:27 2022 -0800 @@ -244,20 +244,14 @@ } media->buffer = calloc(2048, 1); media->size = fread(media->buffer, 1, 2048, media->f); - media->num_tracks = 2; - media->tracks = calloc(sizeof(track_info), 2); + media->num_tracks = 1; + media->tracks = calloc(sizeof(track_info), 1); media->tracks[0] = (track_info){ .fake_pregap = 2 * 75, .start_lba = 0, .end_lba = file_size(media->f), .type = TRACK_DATA }; - media->tracks[1] = (track_info){ - .fake_pregap = 2 * 75, - .start_lba = media->tracks[0].end_lba, - .end_lba = media->tracks[0].end_lba + 2 * 75, - .type = TRACK_DATA - }; media->type = MEDIA_CDROM; media->seek = iso_seek; media->read = iso_read;