From 8382eb0e7e6199c9f49dc83dbd024f915c58e671 Mon Sep 17 00:00:00 2001 From: krcroft Date: Thu, 6 Feb 2020 07:54:12 -0800 Subject: [PATCH] Reduce the track number's type to comply with MSCDEX --- src/dos/cdrom.h | 2 +- src/dos/cdrom_image.cpp | 6 ++++-- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/src/dos/cdrom.h b/src/dos/cdrom.h index ed733925..95f4729e 100644 --- a/src/dos/cdrom.h +++ b/src/dos/cdrom.h @@ -188,8 +188,8 @@ public: uint32_t start = 0; uint32_t length = 0; uint32_t skip = 0; - uint16_t number = 0; uint16_t sectorSize = 0; + uint8_t number = 0; uint8_t attr = 0; bool mode2 = false; }; diff --git a/src/dos/cdrom_image.cpp b/src/dos/cdrom_image.cpp index 37f6ac12..f8f4771b 100644 --- a/src/dos/cdrom_image.cpp +++ b/src/dos/cdrom_image.cpp @@ -884,6 +884,7 @@ bool CDROM_Interface_Image::LoadCueSheet(char *cuefile) int currPregap = 0; int totalPregap = 0; int prestart = -1; + int track_number; bool success; bool canAddTrack = false; char tmp[MAX_FILENAME_LENGTH]; // dirname can change its argument @@ -916,8 +917,9 @@ bool CDROM_Interface_Image::LoadCueSheet(char *cuefile) currPregap = 0; prestart = -1; - line >> track.number; - string type; + line >> track_number; // (cin) read into a true int first + track.number = track_number; // then assign to the uint8_t + string type; GetCueKeyword(type, line); if (type == "AUDIO") {