[CompactDisc dumping] Correct offset fixing when trimming or re-reading errored audio sectors. Fixes #792

This commit is contained in:
2022-12-14 02:24:02 +00:00
parent 9f41916e00
commit b69dad87b2
2 changed files with 16 additions and 6 deletions

View File

@@ -243,10 +243,15 @@ partial class Dump
audioExtents.Contains(badSector) && audioExtents.Contains(badSector) &&
offsetBytes != 0) offsetBytes != 0)
{ {
if(offsetBytes > 0) if(offsetBytes < 0)
badSectorToReRead -= (uint)sectorsForOffset; {
if(badSectorToReRead == 0)
badSectorToReRead = uint.MaxValue - (uint)(sectorsForOffset - 1); // -1
else
badSectorToReRead -= (uint)sectorsForOffset;
}
sectorsToReRead = (byte)(sectorsForOffset + 1); sectorsToReRead += (byte)sectorsForOffset;
} }
if(_supportsPlextorD8 && audioExtents.Contains(badSector)) if(_supportsPlextorD8 && audioExtents.Contains(badSector))

View File

@@ -137,10 +137,15 @@ partial class Dump
audioExtents.Contains(badSector) && audioExtents.Contains(badSector) &&
offsetBytes != 0) offsetBytes != 0)
{ {
if(offsetBytes > 0) if(offsetBytes < 0)
badSectorToRead -= (uint)sectorsForOffset; {
if(badSectorToRead == 0)
badSectorToRead = uint.MaxValue - (uint)(sectorsForOffset - 1); // -1
else
badSectorToRead -= (uint)sectorsForOffset;
}
sectorsToTrim = (byte)(sectorsForOffset + 1); sectorsToTrim += (byte)sectorsForOffset;
} }
if(_supportsPlextorD8 && audioExtents.Contains(badSector)) if(_supportsPlextorD8 && audioExtents.Contains(badSector))