From b71788dba65ab13eaca5b5122c5ecc458b45e6c1 Mon Sep 17 00:00:00 2001 From: krcroft Date: Thu, 26 Mar 2020 21:45:42 -0700 Subject: [PATCH] Make a second harder attempt to seek if needed --- src/dos/cdrom_image.cpp | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/src/dos/cdrom_image.cpp b/src/dos/cdrom_image.cpp index 7d45d0f7..20027722 100644 --- a/src/dos/cdrom_image.cpp +++ b/src/dos/cdrom_image.cpp @@ -122,6 +122,13 @@ bool CDROM_Interface_Image::BinaryFile::seek(const uint32_t offset) assertm(offset <= MAX_REDBOOK_BYTES, "Requested offset exceeds CDROM size"); file->seekg(offset, ios::beg); + + // If the seek failed, then let's try harder + if (file->fail()) { + file->clear(); // clear fail and eof bits + file->seekg(0, std::ios::beg); // "I have returned." + file->seekg(offset, ios::beg); // "It will be done." + } return !file->fail(); }