Add OmniDrive command support in error retrying sections for CD.

This commit is contained in:
2026-07-04 22:16:11 +01:00
parent 7073a50b3f
commit 332a802c81
2 changed files with 27 additions and 4 deletions

View File

@@ -301,7 +301,18 @@ partial class Dump
sectorsToReRead += (byte)sectorsForOffset; sectorsToReRead += (byte)sectorsForOffset;
} }
if(_supportsPlextorD8 && audioExtents.Contains(badSector)) if(_omnidrive)
{
// TODO: Data
sense = _dev.OmniDriveReadCd(out cmdBuf,
out senseBuf,
badSectorToReRead,
sectorsToReRead,
_dev.Timeout,
out cmdDuration,
true);
}
else if(_supportsPlextorD8 && audioExtents.Contains(badSector))
{ {
sense = ReadPlextorWithSubchannel(out cmdBuf, sense = ReadPlextorWithSubchannel(out cmdBuf,
out senseBuf, out senseBuf,
@@ -496,8 +507,9 @@ partial class Dump
// MEDIUM ERROR, retry with ignore error below // MEDIUM ERROR, retry with ignore error below
if(decSense is { ASC: 0x11 }) if(decSense is { ASC: 0x11 })
if(!sectorsNotEvenPartial.Contains(badSector)) {
sectorsNotEvenPartial.Add(badSector); if(!sectorsNotEvenPartial.Contains(badSector)) sectorsNotEvenPartial.Add(badSector);
}
} }
// Because one block has been partially used to fix the offset // Because one block has been partially used to fix the offset

View File

@@ -142,7 +142,18 @@ partial class Dump
sectorsToTrim += (byte)sectorsForOffset; sectorsToTrim += (byte)sectorsForOffset;
} }
if(_supportsPlextorD8 && audioExtents.Contains(badSector)) if(_omnidrive)
{
// TODO: Data
sense = _dev.OmniDriveReadCd(out cmdBuf,
out senseBuf,
badSectorToRead,
sectorsToTrim,
_dev.Timeout,
out cmdDuration,
true);
}
else if(_supportsPlextorD8 && audioExtents.Contains(badSector))
{ {
sense = ReadPlextorWithSubchannel(out cmdBuf, sense = ReadPlextorWithSubchannel(out cmdBuf,
out senseBuf, out senseBuf,