151 (edited by pablogm123 2013-08-23 20:17:38)

Is it a real Plextor drive or a rebadged OEM drive?

Rebadged OEM drives doesn't support the D8 command.

On semi-vacation. MSF/AMSF to LBA/offset and viceversa calculator: link
To write properly occidental characters contained in japanese titles: screenshot
Spaces must be the fullwidth variant: link / screenshot

The PX-116A2 is a rebadged PIONEER-121 according to "the internet".

MrX_Cuci wrote:

Anyone tried a PX-116A2? I can't seem to get it working with DIC

christ, so many real plextors for sale here and you manage to buy a rebadged one

154

We even listed the known working ones...

Plextor PX-760A 1.07 (+30) : Plextor PX-716SA 1.11 (+30) : Plextor PX-W5224A 1.04 (+30) : Plextor PX-W4824 1.07 (+30) : Plextor PX-W4012TA 1.07 (+98) : Plextor PX-W1610TA (+99) : Plextor PX-W1210TA 1.10 (+99) : Lite-On LTR-48246S (+6) : Lite-On LTR-52246S (+6) : Lite-On LH-20A1H LL0DN (+6) : BenQ DW1655 BCIB (+618) : ASUS DRW-2014L1 1.02 (+6) : Yamaha CRW-F1 (+733) : Optiarc SA-7290H5 1H44 (+48) : ASUS BW-16D1HT 3.02 (+6)

I absolutely don't understand how does this tool work. In c2 mode, why does it scan the disc for c2 errors _before_ the actual reading? What's the point? You need to read the sector with c2 reporting and count the errors for each track. If you read all the sectors once just to count the errors and then read the all the sectors again to save the contents, such c2 errors collecting is useless. For scratched discs, c2 errors number is different with every read, that's why it's useful to reread such sectors many times and use good bytes from each read to reconstruct a good sector (or as close to good as possible).

Also I don't understand the idea of "scramble.bin". What is it used for?

It would be cool if this tool could act as CDtoIMG-D8 replacement with C2 reporting (which works properly, of course) + offset correction (manually entered or automatically detected) + subcode dump (D8 + C2 isn't supported, whereas D8 + C2 + Sub96 is supported), without unscrambling/splitting/other kind of postprocessing this D8 dump.

On semi-vacation. MSF/AMSF to LBA/offset and viceversa calculator: link
To write properly occidental characters contained in japanese titles: screenshot
Spaces must be the fullwidth variant: link / screenshot

157 (edited by MrX_Cuci 2013-08-27 22:46:27)

Jackal wrote:
MrX_Cuci wrote:

Anyone tried a PX-116A2? I can't seem to get it working with DIC

christ, so many real plextors for sale here and you manage to buy a rebadged one

Did not buy it. It was given to me. Point me to a sales place which does not ask rediculous prices.

158

F1ReB4LL: the scramble.bin file I think is the EOR decryption key for scrambled sectors. IIRC it's nothing more than that to scramble a sector, there is no weird math like some people think.

Plextor PX-760A 1.07 (+30) : Plextor PX-716SA 1.11 (+30) : Plextor PX-W5224A 1.04 (+30) : Plextor PX-W4824 1.07 (+30) : Plextor PX-W4012TA 1.07 (+98) : Plextor PX-W1610TA (+99) : Plextor PX-W1210TA 1.10 (+99) : Lite-On LTR-48246S (+6) : Lite-On LTR-52246S (+6) : Lite-On LH-20A1H LL0DN (+6) : BenQ DW1655 BCIB (+618) : ASUS DRW-2014L1 1.02 (+6) : Yamaha CRW-F1 (+733) : Optiarc SA-7290H5 1H44 (+48) : ASUS BW-16D1HT 3.02 (+6)

159

Sarami are you going to continue developing this tool? It would be great to get the C2 error detection/correction implemented.

Plextor PX-760A 1.07 (+30) : Plextor PX-716SA 1.11 (+30) : Plextor PX-W5224A 1.04 (+30) : Plextor PX-W4824 1.07 (+30) : Plextor PX-W4012TA 1.07 (+98) : Plextor PX-W1610TA (+99) : Plextor PX-W1210TA 1.10 (+99) : Lite-On LTR-48246S (+6) : Lite-On LTR-52246S (+6) : Lite-On LH-20A1H LL0DN (+6) : BenQ DW1655 BCIB (+618) : ASUS DRW-2014L1 1.02 (+6) : Yamaha CRW-F1 (+733) : Optiarc SA-7290H5 1H44 (+48) : ASUS BW-16D1HT 3.02 (+6)

WIP
http://www.mediafire.com/download/de7fhhiaq4z8vla/
c2: re-read until 80 times (80 is magic number at present.)
this coding is very slow, so impractical..

161 (edited by pablogm123 2014-02-27 16:12:17)

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:

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:

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
On semi-vacation. MSF/AMSF to LBA/offset and viceversa calculator: link
To write properly occidental characters contained in japanese titles: screenshot
Spaces must be the fullwidth variant: link / screenshot

162

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.

Plextor PX-760A 1.07 (+30) : Plextor PX-716SA 1.11 (+30) : Plextor PX-W5224A 1.04 (+30) : Plextor PX-W4824 1.07 (+30) : Plextor PX-W4012TA 1.07 (+98) : Plextor PX-W1610TA (+99) : Plextor PX-W1210TA 1.10 (+99) : Lite-On LTR-48246S (+6) : Lite-On LTR-52246S (+6) : Lite-On LH-20A1H LL0DN (+6) : BenQ DW1655 BCIB (+618) : ASUS DRW-2014L1 1.02 (+6) : Yamaha CRW-F1 (+733) : Optiarc SA-7290H5 1H44 (+48) : ASUS BW-16D1HT 3.02 (+6)

>pablogm123
Thanks info.

>Nexy
This?
http://redump.org/disc/29777/

These bug happen C2 only?

164

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.

Plextor PX-760A 1.07 (+30) : Plextor PX-716SA 1.11 (+30) : Plextor PX-W5224A 1.04 (+30) : Plextor PX-W4824 1.07 (+30) : Plextor PX-W4012TA 1.07 (+98) : Plextor PX-W1610TA (+99) : Plextor PX-W1210TA 1.10 (+99) : Lite-On LTR-48246S (+6) : Lite-On LTR-52246S (+6) : Lite-On LH-20A1H LL0DN (+6) : BenQ DW1655 BCIB (+618) : ASUS DRW-2014L1 1.02 (+6) : Yamaha CRW-F1 (+733) : Optiarc SA-7290H5 1H44 (+48) : ASUS BW-16D1HT 3.02 (+6)

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).

166 (edited by pablogm123 2013-09-29 17:26:29)

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.

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)
On semi-vacation. MSF/AMSF to LBA/offset and viceversa calculator: link
To write properly occidental characters contained in japanese titles: screenshot
Spaces must be the fullwidth variant: link / screenshot

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.

>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.

169

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.

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.

Plextor PX-760A 1.07 (+30) : Plextor PX-716SA 1.11 (+30) : Plextor PX-W5224A 1.04 (+30) : Plextor PX-W4824 1.07 (+30) : Plextor PX-W4012TA 1.07 (+98) : Plextor PX-W1610TA (+99) : Plextor PX-W1210TA 1.10 (+99) : Lite-On LTR-48246S (+6) : Lite-On LTR-52246S (+6) : Lite-On LH-20A1H LL0DN (+6) : BenQ DW1655 BCIB (+618) : ASUS DRW-2014L1 1.02 (+6) : Yamaha CRW-F1 (+733) : Optiarc SA-7290H5 1H44 (+48) : ASUS BW-16D1HT 3.02 (+6)

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 smile 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.

I agree. While there is a room for improvement, C2 parameter is useful once and for all.

Another suggestion / wish list:

-A function to either generate automatically .sfv, .md5 and .sha1 files (for the splitted tracks and the monolithic image) or output to a .txt files the CRC-32, MD5 and SHA-1 hashes of the dump, for the individual tracks and the single file image.

Examples of .sfv, .md5 and .sha1 files I am speaking about:

https://www.dropbox.com/s/j74jg0iymz226 … ope%29.sfv
https://www.dropbox.com/s/n62xlhqonjahv … ope%29.md5
https://www.dropbox.com/s/qzkfppalw0fy2 … pe%29.sha1

On semi-vacation. MSF/AMSF to LBA/offset and viceversa calculator: link
To write properly occidental characters contained in japanese titles: screenshot
Spaces must be the fullwidth variant: link / screenshot

172 (edited by Nexy 2013-10-15 06:38:54)

If you add hashing, I would prefer that they can be outputted in clrmame format for using in the newdisc menu.

I think that F1REB4LL's suggestion of error correction be used so we can be sure that the cache is defeated on re-read.

:EDIT:

Got testing results back from other person with different HW revision 5224a.

DIC w/C2 is now functioning properly with his drive. =]

Plextor PX-760A 1.07 (+30) : Plextor PX-716SA 1.11 (+30) : Plextor PX-W5224A 1.04 (+30) : Plextor PX-W4824 1.07 (+30) : Plextor PX-W4012TA 1.07 (+98) : Plextor PX-W1610TA (+99) : Plextor PX-W1210TA 1.10 (+99) : Lite-On LTR-48246S (+6) : Lite-On LTR-52246S (+6) : Lite-On LH-20A1H LL0DN (+6) : BenQ DW1655 BCIB (+618) : ASUS DRW-2014L1 1.02 (+6) : Yamaha CRW-F1 (+733) : Optiarc SA-7290H5 1H44 (+48) : ASUS BW-16D1HT 3.02 (+6)

There should be more logic in determining, if the EAN sector between tracks belongs to the previous or to the next track. http://redump.org/disc/2664/ -- here it doesn't belong to the previous sector, as usual, but to the next one. And it's common for PCE games. So it's better to compare the last pregap digit with the rest of pregaps and choose the one closer to the rest of pregaps, in this case it's "0" everywhere (00:02:00), so it can't be "4" (00:01:74).

So what is the recommened version now? WIP2? Or isn't it tested enough yet?

wip2 is work in progress yet.

F1ReB4LL wrote:

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

Fixing your ways. But as a result, I think that the reading number of times is not so different.

Nexy wrote:

I would prefer that they can be outputted in clrmame format for using in the newdisc menu.

me too. Please wait.

F1ReB4LL wrote:

There should be more logic in determining, if the EAN sector between tracks belongs to the previous or to the next track.

PC Engine Disc is very irregular. I buy it and check it.