From 2fc04181bc0aca2d135d322ed849db98b4726095 Mon Sep 17 00:00:00 2001 From: "R. Belmont" Date: Tue, 8 Jan 2013 01:42:32 +0000 Subject: [PATCH] cdrom: fixed getting the type of the last track, fixes PCE Bomberman '94 proto (nw) --- src/lib/util/cdrom.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/lib/util/cdrom.c b/src/lib/util/cdrom.c index 7d9e053b7d4..d783c556503 100644 --- a/src/lib/util/cdrom.c +++ b/src/lib/util/cdrom.c @@ -223,6 +223,7 @@ cdrom_file *cdrom_open(const char *inputfile) /* fill out dummy entries for the last track to help our search */ file->cdtoc.tracks[i].physframeofs = physofs; + file->cdtoc.tracks[i].logframeofs = logofs; file->cdtoc.tracks[i].chdframeofs = 0; return file; @@ -305,6 +306,7 @@ cdrom_file *cdrom_open(chd_file *chd) /* fill out dummy entries for the last track to help our search */ file->cdtoc.tracks[i].physframeofs = physofs; + file->cdtoc.tracks[i].logframeofs = logofs; file->cdtoc.tracks[i].chdframeofs = chdofs; return file; @@ -393,6 +395,7 @@ UINT32 cdrom_read_data(cdrom_file *file, UINT32 lbasector, void *buffer, UINT32 /* copy out the requested sector */ UINT32 tracktype = file->cdtoc.tracks[tracknum].trktype; + if ((datatype == tracktype) || (datatype == CD_TRACK_RAW_DONTCARE)) { return (read_partial_sector(file, buffer, chdsector, tracknum, 0, file->cdtoc.tracks[tracknum].datasize) == CHDERR_NONE);