diff --git a/Aaru.Core/Devices/ReaderSCSI.cs b/Aaru.Core/Devices/ReaderSCSI.cs index c65c1e093..06409fd99 100644 --- a/Aaru.Core/Devices/ReaderSCSI.cs +++ b/Aaru.Core/Devices/ReaderSCSI.cs @@ -592,18 +592,20 @@ sealed partial class Reader if(_dev.IsOmniDriveFirmware()) { bool omniStandardOk = !_dev.OmniDriveReadRawDvd(out _, out senseBuf, 0, 1, _timeout, out _, true, true); - bool omniNintendoOk = !_dev.OmniDriveReadNintendoDvd(out _, - out senseBuf, - 0, - 1, - _timeout, - out _, - true, - true, - null, - false, - 0); - OmniDriveReadRaw = omniStandardOk || omniNintendoOk; + + OmniDriveReadRaw = omniStandardOk + ? true + : !_dev.OmniDriveReadNintendoDvd(out _, + out senseBuf, + 0, + 1, + _timeout, + out _, + true, + true, + null, + false, + 0); } if(HldtstReadRaw || _plextorReadRaw || ReadBuffer3CReadRaw || OmniDriveReadRaw) @@ -709,7 +711,10 @@ sealed partial class Reader if(HldtstReadRaw || ReadBuffer3CReadRaw) BlocksToRead = 1; else if(OmniDriveReadRaw) + { BlocksToRead = (uint)Math.Min(31, startWithBlocks); + return false; + } else if(_read6) { _dev.Read6(out _, out _, 0, LogicalBlockSize, (byte)BlocksToRead, _timeout, out _);