Page 1 of 1

retry missing sectors

Posted: Wed May 20, 2015 11:27 am
by ZrX
Would like to see a switch that could be used to tell DTC to retry missing sectors as well as bad sectors in cases where I'm sure a damaged track really does contain data which needs to be retried in hopes of getting more data out.

Last weekend had such a case where some damaged tracks had bad or missing sectors and because it kept changing between retries DTC kept giving up when a bad sector at times turned missing.

Re: retry missing sectors

Posted: Wed May 20, 2015 3:56 pm
by SomeGuy
Seconded. I've run in to a few disks where Kryoflux will just skip over a marginal track. It would be nice to be able to tell it "yes, there is really data here".

This may require telling Kryoflux/DTC more information about the disk format up front, as it tries to automatically detect the number of sectors, and sector numbering on each track (but not sector size, like the PCE tools does). But currently, even when specifying as much as possible, it may skip. Oddly, sometimes just decoding such a steam with the PCE tools instead will result in a perfect decoded image.

An interesting limitation of the Kryoflux (As well as the PCE tools) is that it appears to always need a perfect read in a single revolution. I ran in to one odd disk that was damaged in such a way that while two sectors were technically readable, they were never both readable on the same revolution. In this case the KF was retrying, and bazillion retries never got it, so I had to use other tools.

Now, that would be problematic for creating or writing back a preservation stream. However, when the preservation method stores multiple revolutions, it would be good to retry across all revolutions. That would have helped the above as I was able to capture streams where one revolution had a good sector "A" but bad "B", and the next had a good "B" but bad "A".

Re: retry missing sectors

Posted: Thu May 21, 2015 9:19 am
by IFW
Actually, DTC tries to collect a good read of a sector from any of the revolutions sampled at once. So if it did not succeed, the most likely case is that the revolutions sampled were not enough to have a good read of some sectors on any of the revolutions. You can change the revolution number using -r, by default it's 2, unless you specify a stream file as output in which case it's 5.
It is also important to note, that DTC checks the encoding of the data to be correct, as well as the timing of the cells. So it is possible that DTC flags a sector bad that other tools wouldn't. If the encoding and/or timing is bad, chances are the content is incorrect, even if the checksum passes.

As for retrying missing sectors, that is possible - but with some C64 formats it can be a headache.

Re: retry missing sectors

Posted: Thu May 21, 2015 4:24 pm
by ZrX
IFW wrote:As for retrying missing sectors, that is possible - but with some C64 formats it can be a headache.
Which is why you'll be adding it as an option. :D

Re: retry missing sectors

Posted: Thu May 21, 2015 6:26 pm
by hydr0x
I agree, it's quite annoying if you're trying to rescue a disk in badly shape by setting a high retry number, only to have dtc skip one track somewhere after just one try. On a related note, two questions and/or suggestions:

1) What exactly is the -tc option (retry cycles)? What's the difference from retries/-t.

2) It would be fantastic if the GUI could support setting a start and end track (-s/-e)

Re: retry missing sectors

Posted: Fri May 22, 2015 12:11 am
by IFW
You can set those in the GUI; just edit the image settings if you want them to be permanent.
Alternatively, click on a track, and keep the left mouse button down while selecting the track range - I think this way is not specific to the format selected.


DTC has two kind of retries:
1, retrying to read a bad track: -t
2, calibrating the drive, then doing (1) again: -tc. In other words, -tc is number of calibration cycles attempted between retries -1
So the total number of retries per track is -tc * -t.
e.g. for t=5, tc=2 you get the following retry pattern
R, R, R, R, R, C, R, R, R, R, R

Re: retry missing sectors

Posted: Fri May 22, 2015 7:37 am
by hydr0x
Ooooh, a nice hidden feature of the GUI, thanks! :) Very interesting about the -tc option too. I just discovered that there's a Global Params option in the GUI, can I add the -tc param there? The manual only mentions "retries" in the global params section. Yeah, I know I could just test it, but no drives with me right now ;)

Re: retry missing sectors

Posted: Fri May 22, 2015 3:59 pm
by mr.vince
Yes this is what we added global parameters for.

Re: retry missing sectors

Posted: Sat May 23, 2015 7:39 am
by hydr0x
Great :)