Thanks for testing the command. I'm afraid I run into bigger problems right now: PX-716A returns inconsistent subchannel data between the mentioned D8 and normal READ CD commands.
D8 on PX-716A using my tool, viewing .sub file with HxD:
Code: Select all
000D3C20 00 00 00 00 00 00 00 00 00 00 00 00 41 01 00 02 ............A...
000D3C30 00 35 00 02 02 35 6F FE 00 00 01 00 00 00 00 00 .5...5o.........
000D3C40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
000D3C50 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 00 ................
000D3C60 00 00 00 00 00 00 00 00 00 00 01 00 00 00 00 00 ................
000D3C70 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
READ CD on same sector (still PX-716A) using cdtool:
Code: Select all
00000000000000000000000041010002 ............A...
0035000202356FFE0000000000000000 .5...5o.........
00000000000000000000000000000000 ................
00000000000000000000000000000000 ................
00000000000000000000000000000000 ................
00000000000000000000000000000000 ................
Same sector with my LG drive using cdtool:
Code: Select all
00000000000000000000000041010102 ............A...
0035000202356FFE0000000000000000 .5...5o.........
00000000000000000000000000000000 ................
00000000000000000000000000000000 ................
00000000000000000000000000000000 ................
00000000000000000000000000000000 ................
Note how the dump using LG drive looks fine and how the dumps using PX-716A using D8 and normal READ CD command differ (look at those 01s and especially the INDEX = 00 values). If you XOR the first 0x30 bytes from the D8 dump with the second 0x30 bytes you get the same 0x30 bytes as using PX-716A along with READ CD. By the way: The results are 1:1 reproduced, even if medium removed and re-inserted.
This is very strange and in my opinion there are only two possibilites:
1. The LG drive cleans the data (maybe using the Q channels 16 bit checksum)
2. PX-716A does some hocus pocus or has problems when reading subs
2a. With D8 possibly the second 0x30 bytes act as error pointers (???)
2b. With READ CD those errors are partially cleaned, as INDEX is still returned as 00 instead of 01
Any ideas how to handle this properly? Ofcourse the dumping tool might make use of the 16-bit CRC value as generating Q channel data like it -should- look like, calculate CRC for that data and compare CRC with returned CRC. If there's a match and the returned data is suspicious, take the generated instead. I personally don't like recovery methods like these but if nobody else has an idea 1) what might be the reason for this strange behaviour and 2) how to handle it properly I wouldn't know what to do.
Thanks in advance.
EDIT: Perhaps this behaviour is related to Rocknrom's PerfectRip gap/index problem (
here) as my PX-716A returns the very same (wrong) data with both subchannel mode 001b and 100b. I guess what Plextor returns here -should- really be handled as errors, since I would have to write index changes on the dumped sector aswell if the data would be taken seriously.
EDIT2: I have done a dump using PerfectRip and it doesn't produce any wrong INDEX entries, but look at this log extract...
Code: Select all
Info | 22:50:52 | Pause found: 410200000300001555597822
Error | 22:50:52 | Error while burst reading sectors: 071590 to 071615 (15:54.40 to 15:54.65)
Info | 22:50:52 | Retrying with 1 sector reads from: 071590 (15:54.40)
Error | 22:50:53 | Error reading sector: 071609 (15:54.59)
Error | 22:50:53 | Sense hex (key/ASC/ASCQ): 03/02/81 - Unknown sense key code combination
Error | 22:50:53 | Error reading sector (ignoring): 071609 (15:54.59)
Error | 22:50:53 | Sense hex (key/ASC/ASCQ): 03/02/81 - Unknown sense key code combination
Error | 22:50:53 | Error reading sector: 071610 (15:54.60)
Error | 22:50:53 | Sense hex (key/ASC/ASCQ): 03/02/81 - Unknown sense key code combination
Error | 22:50:53 | Error reading sector (ignoring): 071610 (15:54.60)
Error | 22:50:53 | Sense hex (key/ASC/ASCQ): 03/02/81 - Unknown sense key code combination
Error | 22:50:53 | Error reading sector: 071611 (15:54.61)
Error | 22:50:53 | Sense hex (key/ASC/ASCQ): 03/02/81 - Unknown sense key code combination
Error | 22:50:53 | Error reading sector (ignoring): 071611 (15:54.61)
Error | 22:50:53 | Sense hex (key/ASC/ASCQ): 03/02/81 - Unknown sense key code combination
Error | 22:50:53 | Error reading sector: 071612 (15:54.62)
Error | 22:50:53 | Sense hex (key/ASC/ASCQ): 03/02/81 - Unknown sense key code combination
Error | 22:50:53 | Error reading sector (ignoring): 071612 (15:54.62)
Error | 22:50:53 | Sense hex (key/ASC/ASCQ): 03/02/81 - Unknown sense key code combination
Error | 22:50:53 | Error reading sector: 071613 (15:54.63)
Error | 22:50:53 | Sense hex (key/ASC/ASCQ): 03/15/00 - Random positioning error
Error | 22:50:53 | Error reading sector (ignoring): 071613 (15:54.63)
Error | 22:50:53 | Sense hex (key/ASC/ASCQ): 03/15/00 - Random positioning error
Info | 22:50:53 | 1 sector reads were ok, setting back to burst reading from: 071616 (15:54.66)
[...]
Info | 22:53:48 | Total corrupt Q subcode blocks: 233
Warning | 22:53:48 | Replaced sector: 071609 (15:54.59)
Warning | 22:53:48 | Replaced sector: 071610 (15:54.60)
Warning | 22:53:48 | Replaced sector: 071611 (15:54.61)
Warning | 22:53:48 | Replaced sector: 071612 (15:54.62)
Warning | 22:53:48 | Replaced sector: 071613 (15:54.63)
Info | 22:53:48 | Reading process completed successfully.
The sectors PerfectRip replaced (because it couldn't read them) are fully readable with CDTool. And please take a look at the Q subcode error count. I guess these come from exactly the strange subchannel data that I've read before.