Эх сурвалжийг харах

Add support for CD data track MODE2/2352

This data track is now enabled in ZuluSCSI for feature parity between
ZuluSCSI and ZuluIDE for cue file mode2/2353 track support.
J. Morio Sakaguchi 2 сар өмнө
parent
commit
ee8ee3fa94

+ 7 - 1
src/BlueSCSI_cdrom.cpp

@@ -1206,7 +1206,8 @@ bool cdromValidateCueSheet(image_config_t &img)
 
 
         if (trackinfo->track_mode != CUETrack_AUDIO &&
         if (trackinfo->track_mode != CUETrack_AUDIO &&
             trackinfo->track_mode != CUETrack_MODE1_2048 &&
             trackinfo->track_mode != CUETrack_MODE1_2048 &&
-            trackinfo->track_mode != CUETrack_MODE1_2352)
+            trackinfo->track_mode != CUETrack_MODE1_2352 &&
+            trackinfo->track_mode != CUETrack_MODE2_2352)
         {
         {
             logmsg("---- Warning: track ", trackinfo->track_number, " has unsupported mode ", (int)trackinfo->track_mode);
             logmsg("---- Warning: track ", trackinfo->track_number, " has unsupported mode ", (int)trackinfo->track_mode);
         }
         }
@@ -1801,6 +1802,11 @@ static void doReadCD(uint32_t lba, uint32_t length, uint8_t sector_type,
         // Transfer whole 2352 byte data sector with ECC to host
         // Transfer whole 2352 byte data sector with ECC to host
         sector_length = AUDIO_CD_SECTOR_LEN;
         sector_length = AUDIO_CD_SECTOR_LEN;
     }
     }
+    else if (trackinfo.track_mode == CUETrack_MODE2_2352 && main_channel == 0x10)
+    {
+        skip_begin = 24;
+        sector_length = 2048;
+    }
     else
     else
     {
     {
         dbgmsg("---- Unsupported channel request for track type ", (int)trackinfo.track_mode);
         dbgmsg("---- Unsupported channel request for track type ", (int)trackinfo.track_mode);