summaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
author cracyc <cracyc@users.noreply.github.com>2017-04-10 13:59:26 -0500
committer cracyc <cracyc@users.noreply.github.com>2017-04-10 13:59:26 -0500
commit7c9b346ade9bdc5f2dd932e995b7d7bc420fc8c3 (patch)
treec1c2416522707a8ab4c245e7f9c4465ac6f136ba
parentd67b6a66590e98ee53a618bb101325b164b9328d (diff)
cdrom: translate from 2336 to 2048 (nw)
-rw-r--r--src/lib/util/cdrom.cpp6
1 files changed, 6 insertions, 0 deletions
diff --git a/src/lib/util/cdrom.cpp b/src/lib/util/cdrom.cpp
index efa34257a95..2f21c660be9 100644
--- a/src/lib/util/cdrom.cpp
+++ b/src/lib/util/cdrom.cpp
@@ -577,6 +577,12 @@ uint32_t cdrom_read_data(cdrom_file *file, uint32_t lbasector, void *buffer, uin
return (read_partial_sector(file, buffer, lbasector, chdsector, tracknum, 24, 2048, phys) == CHDERR_NONE);
}
+ /* return 2048 bytes of mode 1 data from a mode2 form2 or XA sector */
+ if ((datatype == CD_TRACK_MODE1) && (tracktype == CD_TRACK_MODE2_FORM_MIX))
+ {
+ return (read_partial_sector(file, buffer, lbasector, chdsector, tracknum, 8, 2048, phys) == CHDERR_NONE);
+ }
+
/* return mode 2 2336 byte data from a 2352 byte mode 1 or 2 raw sector (skip the header) */
if ((datatype == CD_TRACK_MODE2) && ((tracktype == CD_TRACK_MODE1_RAW) || (tracktype == CD_TRACK_MODE2_RAW)))
{