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;