cdrom: correct header length for form 2 raw sectors [R. Belmont]

This commit is contained in:
R. Belmont 2010-04-25 18:27:52 +00:00
parent 3c05f0da75
commit 5c14e75314

View File

@ -250,15 +250,15 @@ UINT32 cdrom_read_data(cdrom_file *file, UINT32 lbasector, void *buffer, UINT32
} }
else else
{ {
/* return 2048 bytes of mode 1 data from a 2352 byte mode 1 or 2 raw sector */ /* return 2048 bytes of mode 1 data from a 2352 byte mode 1 raw sector */
if ((datatype == CD_TRACK_MODE1) && ((tracktype == CD_TRACK_MODE1_RAW) || (tracktype == CD_TRACK_MODE2_RAW))) if ((datatype == CD_TRACK_MODE1) && (tracktype == CD_TRACK_MODE1_RAW))
{ {
memcpy(buffer, &file->cache[(sectoroffs * CD_FRAME_SIZE) + 16], 2048); memcpy(buffer, &file->cache[(sectoroffs * CD_FRAME_SIZE) + 16], 2048);
return 1; return 1;
} }
/* return 2048 bytes of mode 1 data from a mode2 form1 sector */ /* return 2048 bytes of mode 1 data from a mode2 form1 or raw sector */
if ((datatype == CD_TRACK_MODE1) && (tracktype == CD_TRACK_MODE2_FORM1)) if ((datatype == CD_TRACK_MODE1) && ((tracktype == CD_TRACK_MODE2_FORM1)||(tracktype == CD_TRACK_MODE2_RAW)))
{ {
memcpy(buffer, &file->cache[(sectoroffs * CD_FRAME_SIZE) + 24], 2048); memcpy(buffer, &file->cache[(sectoroffs * CD_FRAME_SIZE) + 24], 2048);
return 1; return 1;