diff options
author | 2017-04-10 13:59:26 -0500 | |
---|---|---|
committer | 2017-04-10 13:59:26 -0500 | |
commit | 7c9b346ade9bdc5f2dd932e995b7d7bc420fc8c3 (patch) | |
tree | c1c2416522707a8ab4c245e7f9c4465ac6f136ba | |
parent | d67b6a66590e98ee53a618bb101325b164b9328d (diff) |
cdrom: translate from 2336 to 2048 (nw)
-rw-r--r-- | src/lib/util/cdrom.cpp | 6 |
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))) { |