From 46999d195835755c2e0303727a9fa15297d17938 Mon Sep 17 00:00:00 2001 From: Toni Wilen Date: Tue, 7 May 2019 20:15:13 +0300 Subject: [PATCH] Always use IOCTL_CDROM_RAW_READ because if track is not in normal 2048 byte sector mode, normal read may hang. --- od-win32/blkdev_win32_ioctl.cpp | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/od-win32/blkdev_win32_ioctl.cpp b/od-win32/blkdev_win32_ioctl.cpp index 75617687..9040d3b4 100644 --- a/od-win32/blkdev_win32_ioctl.cpp +++ b/od-win32/blkdev_win32_ioctl.cpp @@ -361,6 +361,8 @@ retry: ret = 0; while (size-- > 0) { got = false; +#if 0 + // always use IOCTL_CDROM_RAW_READ if (!ciw->usesptiread && (sectorsize == 2048 || sectorsize == 2352)) { if (read2048 (ciw, sector) == 2048) { if (sectorsize == 2352) { @@ -379,6 +381,7 @@ retry: got = true; } } +#endif if (!got && !ciw->usesptiread) { RAW_READ_INFO rri; rri.DiskOffset.QuadPart = sector * 2048; @@ -967,7 +970,7 @@ static int ioctl_command_rawread (int unitnum, uae_u8 *data, int sector, int siz write_log (_T("IOCTL rawread unit=%d sector=%d blocksize=%d\n"), unitnum, sector, sectorsize); cdda_stop (ciw); gui_flicker_led (LED_CD, unitnum, LED_CD_ACTIVE); - if (sectorsize > 0) { + if (sectorsize > 0) { if (sectorsize != 2336 && sectorsize != 2352 && sectorsize != 2048 && sectorsize != 2336 + 96 && sectorsize != 2352 + 96 && sectorsize != 2048 + 96) return 0; -- 2.47.3