summaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
author R. Belmont <rb6502@users.noreply.github.com>2008-10-30 03:08:35 +0000
committer R. Belmont <rb6502@users.noreply.github.com>2008-10-30 03:08:35 +0000
commitc6e16e1925682a526ef60f75808a1ab03c9150ea (patch)
treefafa65f17c758d5cfd7bb6c4420ffd8e9d7b7c67
parent7dd6c892215872863f5eaa9b376e94867a30d3c9 (diff)
02456: wrong sector size at CD_TRACK_MODE2 conversion routine
-rw-r--r--src/lib/util/cdrom.c8
1 files changed, 4 insertions, 4 deletions
diff --git a/src/lib/util/cdrom.c b/src/lib/util/cdrom.c
index 2d96f606e82..03427cb0a54 100644
--- a/src/lib/util/cdrom.c
+++ b/src/lib/util/cdrom.c
@@ -221,24 +221,24 @@ UINT32 cdrom_read_data(cdrom_file *file, UINT32 lbasector, void *buffer, UINT32
}
else
{
- /* return 2048 bytes of mode1 data from a 2336 byte mode 1 or 2 raw sector */
+ /* return 2048 bytes of mode 1 data from a 2352 byte mode 1 or 2 raw sector */
if ((datatype == CD_TRACK_MODE1) && ((tracktype == CD_TRACK_MODE1_RAW) || (tracktype == CD_TRACK_MODE2_RAW)))
{
memcpy(buffer, &file->cache[(sectoroffs * CD_FRAME_SIZE) + 16], 2048);
return 1;
}
- /* return 2048 bytes of mode1 data from a mode2 form1 sector */
+ /* return 2048 bytes of mode 1 data from a mode2 form1 sector */
if ((datatype == CD_TRACK_MODE1) && (tracktype == CD_TRACK_MODE2_FORM1))
{
memcpy(buffer, &file->cache[(sectoroffs * CD_FRAME_SIZE) + 24], 2048);
return 1;
}
- /* return mode 2 2336 byte data from a RAW sector */
+ /* 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)))
{
- memcpy(buffer, &file->cache[(sectoroffs * CD_FRAME_SIZE) + 16], 2048);
+ memcpy(buffer, &file->cache[(sectoroffs * CD_FRAME_SIZE) + 16], 2336);
return 1;
}