superg / redumper

Low level CD dumper utility
GNU General Public License v3.0
221 stars 20 forks source link

Feature Request - Refine mode - Looped 0 retry refine setting on all sectors with errors #36

Open ehw opened 1 year ago

ehw commented 1 year ago

Through using redumper's refine mode a lot, there's one thing I noticed that's definitely a thing.

Retrying sectors over and over using a non-zero retry count is not as affective as rereading each sector with an error exactly once. For some reason, no matter the drive, more sectors can either be read in their totality or more bits can be corrected if you just loop the disc in refine mode over and over by limiting the retry count to 0. There a some additional benefits to this as well:

1.) More sectors can be read in a faster amount of time since the drive won't get stuck rereading certain sectors. Especially sectors that return SCSI errors after a lengthy period of the drive trying to read the sector. 2.) More sectors can be corrected on average in a quicker amount of time in comparison to having a non-zero retry count. 3.) More bits can be read on average.

You can already replicate this by creating a .bat file that loops, like this:

:x H:\Tools\redumper\saz\redumper.exe refine --drive=d: --image-name=beatmaniaprotosaz_p2 --verbose --speed=32 --retries=0 H:\Tools\redumper\saz\redumper.exe refine --drive=d: --image-name=beatmaniaprotosaz_p2 --verbose --speed=40 --retries=0 H:\Tools\redumper\saz\redumper.exe refine --drive=d: --image-name=beatmaniaprotosaz_p2 --verbose --speed=48 --retries=0 H:\Tools\redumper\saz\redumper.exe refine --drive=d: --image-name=beatmaniaprotosaz_p2 --verbose --speed=52 --retries=0 H:\Tools\redumper\saz\redumper.exe refine --drive=d: --image-name=beatmaniaprotosaz_p2 --verbose --speed=24 --retries=0 H:\Tools\redumper\saz\redumper.exe refine --drive=d: --image-name=beatmaniaprotosaz_p2 --verbose --speed=20 --retries=0 H:\Tools\redumper\saz\redumper.exe refine --drive=d: --image-name=beatmaniaprotosaz_p2 --verbose --speed=16 --retries=0 H:\Tools\redumper\saz\redumper.exe refine --drive=d: --image-name=beatmaniaprotosaz_p2 --verbose --speed=12 --retries=0 H:\Tools\redumper\saz\redumper.exe refine --drive=d: --image-name=beatmaniaprotosaz_p2 --verbose --speed=44 --retries=0 H:\Tools\redumper\saz\redumper.exe refine --drive=d: --image-name=beatmaniaprotosaz_p2 --verbose --speed=56 --retries=0 H:\Tools\redumper\saz\redumper.exe refine --drive=d: --image-name=beatmaniaprotosaz_p2 --verbose --speed=72 --retries=0 goto x

As long as the retry count is 0, this is even more affective at quickly and efficiently refining discs than simply using a retry count per sector. Crazy, I know. I don't really know why either.

So I propose an additional flag for refine mode that can refine discs with the current flags passed to it (like --loop or something) that will just indefinitely keep trying to refine the disc in a loop until all sectors are corrected. While a normal user can probably use a .bat file like I do, for eventual programs that might use redumper to interface with (like MPF), this might be a valid choice.