Page 17 of 354
Re: DiscImageCreator
Posted: Sat Sep 28, 2013 2:00 pm
by pablogm123
Many thanks for continuing developing and enhancing your tool.
sarami, could you implement FUA (forced unit access) support (only real Plextor drives support this) to defeat easily and quickly the drive's cache when performing rereads, without needing to read useless data just to defeat the cache?
Read this message of MyCE as example, spath developed a tool (in the very first post) to test the FUA support and the ammount of audio data which a given drive caches, using the BE and D8 read commands:
Code: Select all
http://club.myce.com/showthread.php?p=1507770
Edit. Confirmed, my PX-755SA supports FUA, which is fine, and caches audio data, which is bad but the FUA can avoid that easily:
Code: Select all
C:\>cachex.exe -p -c -r 0xd8 -n 20 g:
CacheExplorer 0.8 - spath@cdfreaks.com
Drive on G is PLEXTOR DVDR PX-755A 1.08
[+] Plextor flush command: accepted
[+] Plextor flush tests: 20/20
[+] Testing cache line size:
581 kB / 253 sectors
581 kB / 253 sectors
581 kB / 253 sectors
581 kB / 253 sectors
581 kB / 253 sectors
581 kB / 253 sectors
581 kB / 253 sectors
581 kB / 253 sectors
581 kB / 253 sectors
581 kB / 253 sectors
581 kB / 253 sectors
581 kB / 253 sectors
581 kB / 253 sectors
581 kB / 253 sectors
581 kB / 253 sectors
581 kB / 253 sectors
581 kB / 253 sectors
581 kB / 253 sectors
581 kB / 253 sectors
581 kB / 253 sectors
Re: DiscImageCreator
Posted: Sat Sep 28, 2013 4:47 pm
by Nexy
Oh good, I will test the C2.
I got a very strange bug when dumping 7th Guest disc 1. When unscrambled there were ~50000 errors because the headers were decoded wrong. Other tools dump the disc fine.
Re: DiscImageCreator
Posted: Sun Sep 29, 2013 12:01 am
by sarami
>pablogm123
Thanks info.
>Nexy
This?
https://redump.info/disc/29777/
These bug happen C2 only?
Re: DiscImageCreator
Posted: Sun Sep 29, 2013 12:32 am
by Nexy
No, I didn't use the new version of DIC to dump that, I used the last one. So not with C2. Also it was the older dump I made of the OEM version.
Very strange that it happened at all and didn't give any error. There was subcode desync in the log however, maybe that was the reason.
I will do it again and see if that same bug occurs again. If it does, I will compress it all and upload it somewhere for you to look at.
A friend of mine with Plextor PX-W5224A, has problem with his drive reporting tons of C2 error. It has same firmware as mine and same hardware revision. Dumps are OK though... very strange! EAC does not report C2 error when ripping audio.
Re: DiscImageCreator
Posted: Sun Sep 29, 2013 8:53 am
by F1ReB4LL
Even on 40x speed it now takes more than 5 hours to dump a scratchless disc. I don't understand, how do you do your c2 reporting. Both 0xBE and 0xD8 have c2 reporing flags, when you set them, you get 2742 bytes/sector output (2352 data + 294 c2 + 96 subs), you need to:
1) Read all the sectors from LBA #0 to leadout
2) Check the 294-bytes c2 part for each sector. Each sector contains 2352 bytes of data and 294 bytes * 8 = 2352 bits of c2 errors reports. So, each byte of data has 1 c2 bit of data, which can be either 0 or 1. 0 - no c2 error in this byte, 1 - c2 error is there.
3) Make a list/array of the sectors, where at least 1 bit = 1. For each corrupted sector make a list/array of the corrupted bits.
4) Empty the cache and reread all the sectors with c2 errors. For each sector compare the new c2 part against the previous and if the sector still has c2 errors, but at least 1 sector is fixed - replace it and remove from the list of corrupted bits. If the sector doesn't have any c2 errors left, remove it from the list of corrupted sectors.
5) If the number of rereads isn't reached (you've said you want 80 times), retry the step 4).
Re: DiscImageCreator
Posted: Sun Sep 29, 2013 9:44 am
by pablogm123
Just a warning for sarami, when dumping Main + C2 + Sub you have to correct the offset of main channel and the offset of the C2 pointers.
For example, if the autodetected offset correction for the main channel is +48 samples / + 192 bytes, you have to apply 192 bits (192 bytes / 8) offset correction to the C2 pointers provided by the drive.
@F1ReB4LL: what's about the method used by the dBpoweramp CD Ripper? And perhaps is useful as inspiration for sarami. It's the commercial program (I bought a licence a year ago) I use to rip my music CDs into my music library.
Roughly it does this:
-Read one given track once. If no C2 error reported, encode to the final file. If C2 errors are detected, will make rereads taking into account the C2 pointers.
-It will try to get 10 identical reads and not marked as bad by the C2 pointers, until it can get those identical 10 reads not marked as bad or reach the maximum number of rereads allowed (you can configure any extreme numbers of rereads, like 2000/5000/10000 rereads, the developer suggests 750 if you own a drive with decent C2 error reporting). If cannot obtain 10 identical rereads not marked as bad, but could obtain a certain reread not marked as bad, it will use this one.
-Of course, the program needs to know the ammount of audio that the drive caches (can autodetect that) to defeat properly the cache when performing the rereads. Or if you own a real Plextor drive, you can enable the FUA mode to defeat fastly the cache without rereading useless data.
For example, ripping this music track detected 10 bad sectors (according to C2 pointers), and reread these ones until it could obtain 10 identical rereads not marked as bad. c2 dropped n means the number of rereads discarded because at least there is one corrupted byte.
Code: Select all
Track 4: Ripped LBA 71463 to 94145 (5:02) in 9:07. Filename: C:\Extraído\Prodigy, The\Music for the Jilted Generation\04.wav
Secure (Warning) [Pass 1, Ultra 1 to 1, Re-Rip 10 Frames]
CRC32: A7A75304
Re-rip Frame: 72283 (00:00:10,920) matched 10 / 12 (c2 dropped 156)
Re-rip Frame: 74723 (00:00:43,453) matched 10 / 12 (c2 dropped 4)
Re-rip Frame: 81020 (00:02:07,413) matched 10 / 12 (c2 dropped 473)
Re-rip Frame: 81021 (00:02:07,426) matched 10 / 12 (c2 dropped 763)
Re-rip Frame: 81480 (00:02:13,546) matched 10 / 12 (c2 dropped 5460)
Re-rip Frame: 81876 (00:02:18,826) matched 10 / 11 (c2 dropped 1)
Re-rip Frame: 82211 (00:02:23,293) matched 10 / 11
Re-rip Frame: 83303 (00:02:37,853) matched 10 / 11 (c2 dropped 2)
Re-rip Frame: 84605 (00:02:55,213) matched 10 / 12 (c2 dropped 123)
Re-rip Frame: 90379 (00:04:12,200) matched 10 / 12 (c2 dropped 75)
Re: DiscImageCreator
Posted: Sun Sep 29, 2013 10:25 am
by F1ReB4LL
pablogm123 wrote:@F1ReB4LL: what's about the method used by the dBpoweramp CD Ripper? And perhaps is useful as inspiration for sarami. It's the commercial program (I bought a licence a year ago) I use to rip my music CDs into my music library.
Roughly it does this:
-Read one given track once. If no C2 error reported, encode to the final file. If C2 errors are detected, will make rereads taking into account the C2 pointers.
-It will try to get 10 identical reads and not marked as bad by the C2 pointers, until it can get those identical 10 reads not marked as bad or reach the maximum number of rereads allowed (you can configure any extreme numbers of rereads, like 2000/5000/10000 rereads, the developer suggests 750 if you own a drive with decent C2 error reporting). If cannot obtain 10 identical rereads not marked as bad, but could obtain a certain reread not marked as bad, it will use this one.
If it's possible to get 2 different results without c2 errors (or, at least, without c2 error bit in the questionable sector), then, of course, it is needed to check for multiple matches, I agree.
Re: DiscImageCreator
Posted: Sun Oct 06, 2013 1:03 am
by sarami
>pablogm123
Thanks info.
>F1ReB4LL
Thanks advice.
WIP2
http://www.mediafire.com/download/u0olo2c51f2qv13/
-Support C2 error Flag on D8 command.
-if C2 error bit off & 2 different results, reread.
Re: DiscImageCreator
Posted: Sun Oct 06, 2013 3:31 am
by Nexy
When trying to dump Daytona USA championship circuit edition, with previous test version I got this error. The disc is scratch free, and dumped without c2 matches database entry.
Code: Select all
Creating img(LBA) 10375/223372
SCSI bus status codes:02-CHECK_CONDITION [F:CheckC2Error][L:231]
Sense data, Key:Asc:Ascq:03:02:83(MEDIUM_ERROR. VENDER UNIQUE ERROR)
LBA 10379 Read error [L:237]
Couldn't check C2 error
Maybe related to what pablo said about c2 offset correction.
Re: DiscImageCreator
Posted: Sun Oct 06, 2013 7:55 am
by F1ReB4LL
Looks good here, but you've done it not the way I've said. You're trying to fix each sector right after the error was found. And I still think it's better to read all the sectors "as is", make a list of incorrect ones and reread them after all the sectors were read. That should give better results, since when you read 1 sector many times, it may return cached results and when you reread all bad sectors in a batch after you have dumped the whole disc, you can be sure no caching is involved

As I've said already, Subdump works exactly this way and it's usually good in fixing read errors.
Other than that, it definetely works now.