Only attempt Cue sheet parsing on files that end in .cue (in any letter case), fixes errors with some .ISO images.
This commit is contained in:
@@ -2174,7 +2174,7 @@ cdrom_exit(uint8_t id)
|
|||||||
|
|
||||||
memset(dev->image_path, 0, sizeof(dev->image_path));
|
memset(dev->image_path, 0, sizeof(dev->image_path));
|
||||||
|
|
||||||
pclog("cdrom_exit(%i): cdrom_insert(%i)\n", id, id);
|
cdrom_log("cdrom_exit(%i): cdrom_insert(%i)\n", id, id);
|
||||||
cdrom_insert(id);
|
cdrom_insert(id);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -2252,7 +2252,7 @@ cdrom_reload(uint8_t id)
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
/* Signal media change to the emulated machine. */
|
/* Signal media change to the emulated machine. */
|
||||||
pclog("cdrom_reload(%i): cdrom_insert(%i)\n", id, id);
|
cdrom_log("cdrom_reload(%i): cdrom_insert(%i)\n", id, id);
|
||||||
cdrom_insert(id);
|
cdrom_insert(id);
|
||||||
|
|
||||||
/* The drive was previously empty, transition directly to UNIT ATTENTION. */
|
/* The drive was previously empty, transition directly to UNIT ATTENTION. */
|
||||||
|
|||||||
@@ -436,7 +436,7 @@ cdi_read_sector(cd_img_t *cdi, uint8_t *buffer, int raw, uint32_t sector)
|
|||||||
const uint64_t seek = (sect + 150 - idx->start + idx->file_start) * trk->sector_size;
|
const uint64_t seek = (sect + 150 - idx->start + idx->file_start) * trk->sector_size;
|
||||||
|
|
||||||
cdrom_image_backend_log("cdrom_read_sector(%08X): track %02X, index %02X, %016" PRIX64 ", %016" PRIX64 ", %i\n",
|
cdrom_image_backend_log("cdrom_read_sector(%08X): track %02X, index %02X, %016" PRIX64 ", %016" PRIX64 ", %i\n",
|
||||||
sector, track, index, trk->start, trk->sector_size);
|
sector, track, index, idx->start, trk->sector_size);
|
||||||
|
|
||||||
if (track_is_raw)
|
if (track_is_raw)
|
||||||
raw_size = trk->sector_size;
|
raw_size = trk->sector_size;
|
||||||
@@ -1477,12 +1477,18 @@ cdi_close(cd_img_t *cdi)
|
|||||||
int
|
int
|
||||||
cdi_set_device(cd_img_t *cdi, const char *path)
|
cdi_set_device(cd_img_t *cdi, const char *path)
|
||||||
{
|
{
|
||||||
|
uintptr_t ext = path + strlen(path) - strrchr(path, '.');
|
||||||
int ret;
|
int ret;
|
||||||
|
|
||||||
|
cdrom_image_backend_log("cdi_set_device(): %" PRIu64 ", %lli, %s\n",
|
||||||
|
ext, strlen(path), path + strlen(path) - ext + 1);
|
||||||
|
|
||||||
|
if ((ext == 4) && !stricmp(path + strlen(path) - ext + 1, "CUE")) {
|
||||||
if ((ret = cdi_load_cue(cdi, path)))
|
if ((ret = cdi_load_cue(cdi, path)))
|
||||||
return ret;
|
return ret;
|
||||||
|
|
||||||
cdi_clear_tracks(cdi);
|
cdi_clear_tracks(cdi);
|
||||||
|
}
|
||||||
|
|
||||||
if ((ret = cdi_load_iso(cdi, path)))
|
if ((ret = cdi_load_iso(cdi, path)))
|
||||||
return ret;
|
return ret;
|
||||||
|
|||||||
Reference in New Issue
Block a user