saramibreak / DiscImageCreator

This is the disc (CD, GD, DVD, HD-DVD, BD, GC/Wii, XBOX, XBOX 360) and disk (Floppy, MO, USB etc) image creation tool
http://forum.redump.org/topic/10483/discimagecreator/
Apache License 2.0
530 stars 45 forks source link

Mixed-mode game CD - "This drive can't read the lead-out" #163

Closed ajalberd closed 1 year ago

ajalberd commented 1 year ago

Version 20220909T220450

Describe the bug Cannot rip mixed-mode / enhanced audio CDs. "This drive can't read the lead-out"

Screenshots

.\DiscImageCreator.exe cd F taw.ccd 8
AppVersion
        32 bit, AnsiBuild, 20220909T220450
valid extension was omitted. -> set .bin
CurrentDirectory
        C:\Users\Carson\Downloads\MPFDump\Release_ANSI
WorkingPath
         Argument: taw.ccd.bin
         FullPath: C:\Users\Carson\Downloads\MPFDump\Release_ANSI\taw.ccd.bin
            Drive: C:
        Directory: \Users\Carson\Downloads\MPFDump\Release_ANSI\
         Filename: taw.ccd
        Extension: .bin
StartTime: 2022-11-29T20:35:13-0500
Set the drive speed: 12700KB/sec
DiskSize of [C:\Users\Carson\Downloads\MPFDump\Release_ANSI]
        Total:   870422933504 bytes
         Used:   540705849344 bytes
        ---------------------------
        Space:   329717084160 bytes
         => There is enough disk space for dumping
[WARNING] /c2 isn't set. The result of dumping may be incorrect if c2 error exists.
This drive doesn't define in driveOffset.txt
Please input drive offset(Samples): 6
This drive can read data sectors at scrambled state [OpCode: 0xbe, C2flag: 0, SubCode: 0]
This drive can read data sectors at scrambled state [OpCode: 0xbe, C2flag: 0, SubCode: 1]
This drive can read data sectors at scrambled state [OpCode: 0xbe, C2flag: 0, SubCode: 2]
This drive can read data sectors at scrambled state [OpCode: 0xbe, C2flag: 0, SubCode: 4]
LBA[155871, 0x260df]: [F:ReadCDForCheckingReadInOut][L:1046]
        Opcode: 0xbe
        ScsiStatus: 0x02 = CHECK_CONDITION
        SenseData Key-Asc-Ascq: 05-21-00 = ILLEGAL_REQUEST - LOGICAL BLOCK ADDRESS OUT OF RANGE
lpCmd: be, 04, 00, 02, 60, df, 00, 00, 01, f8, 00, 00
dwBufSize: 2352
This drive can't read the lead-out

Disc title Total Air War (enhanced CD with 1 track audio, rest data)

Disc ringcode All the string that is written the inner of the disc (IFPI etc.)

URL Disc is only found used on Ebay

Log file See above

Feathered-Serpent commented 1 year ago

Which drive do you use? Is it listed in https://github.com/saramibreak/DiscImageCreator/blob/master/Release_ANSI/Doc/TestedDrive.txt to be able to read the lead-out?

ajalberd commented 1 year ago

Which drive do you use? Is it listed in https://github.com/saramibreak/DiscImageCreator/blob/master/Release_ANSI/Doc/TestedDrive.txt to be able to read the lead-out?

I have the WH16NS60 with modded MakeMKV firmware. It's a pretty ubiquitous drive.

Feathered-Serpent commented 1 year ago

So is my ASUS BW16D1-HT with the 3.10DE firmware, but it also cannot read the lead out.

http://wiki.redump.org/index.php?title=DiscImageCreator:_Optical_Disc_Drive_Compatibility#Non-Plextor_ODDs_.28Plextors_are_still_recommended.2C_as_more_testing_is_needed_for_these.29 lists your drive with firmwares being able to use Opcode 0xF1 which I think is some kind of replacement.

ajalberd commented 1 year ago

Interesting! I will try downgrading to official firmware and see if that works.

ajalberd commented 1 year ago

Downgraded to 1.0, made some progress:

/mr <val> is needed to read the lead-out. <val> is 50 by default

Setting /mr to 10000 as a test. See below - 0xF1 opcode is supported but somehow it still can't rip the track after scanning it all the way (took ~1hr)

This drive can't read the lead-out
But 0xF1 opcode is supported
... ...
22 Cache LBA 155871, SubQ Trk aa, AMSF 34:40:21 [Lead-out]
23 Cache LBA 155872, SubQ Trk aa, AMSF 34:40:22 [Lead-out]
-----------------------------------------------------
Cache SIZE: 23 (This size is different every running)
-----------------------------------------------------
Checking SubQ adr (Track)  2/ 2
Checking SubRtoW (Track)  2/ 2
Reading DirectoryRecord   42/  42
Set OpCode: 0xbe, SubCode: 4(Pack)
Checking SubQ ctl (Track)  2/ 2
LBA[155871, 0x260df]: [F:FlushDriveCache][L:220]
        Opcode: 0xa8
        ScsiStatus: 0x02 = CHECK_CONDITION
        SenseData Key-Asc-Ascq: 05-21-00 = ILLEGAL_REQUEST - LOGICAL BLOCK ADDRESS OUT OF RANGE
LBA[155871, 0x260df]: [F:FlushDriveCache][L:220]
        Opcode: 0xa8
        ScsiStatus: 0x02 = CHECK_CONDITION
        SenseData Key-Asc-Ascq: 05-21-00 = ILLEGAL_REQUEST - LOGICAL BLOCK ADDRESS OUT OF RANGE
Creating .scm (LBA) 155871/155871
[L:1346] Internal error. Failed to analyze the subchannel. Track[01]/[02]
EndTime: 2022-11-30T21:35:43-0500
saramibreak commented 1 year ago

@ajalberd Upload the created files except .bin .img .scm .iso

ajalberd commented 1 year ago

taw.ccd_subReadable.txt taw.ccd_volDesc.txt taw.ccd_20220909T220450.txt taw.ccd_disc.txt taw.ccd_drive.txt taw.ccd_mainError.txt taw.ccd_mainInfo.txt taw.ccd_subError.txt taw.ccd_subInfo.txt

Thanks for looking into this!

saramibreak commented 1 year ago

https://github.com/saramibreak/DiscImageCreator/issues/163#issuecomment-1333924145 log is not same as https://github.com/saramibreak/DiscImageCreator/issues/163#issuecomment-1333076658

ajalberd commented 1 year ago

@saramibreak sorry about that, here is the most recent logs, using the command: .\DiscImageCreator.exe cd F: taw.bin 72 /mr 6 subError.txt and subReadable.txt are 150mb and 26mb respectively, cannot upload. I can try again with a larger /mr and see if that helps. taw_disc.txt taw_mainInfo.txt taw_subInfo.txt taw_volDesc.txt

ajalberd commented 1 year ago

Example of subError:

``` Summary ``` ``` LBA[000000, 0000000]: Track[01]: SubQ Reread [crc16 unmatch] -> NG. Fix manually ========== LBA[000000, 0000000]: Sub Channel ========== +0 +1 +2 +3 +4 +5 +6 +7 +8 +9 +A +B P 00 00 00 00 00 00 00 00 00 00 00 00 Q 00 00 00 00 00 00 00 00 00 00 00 00 R 00 00 00 00 00 00 00 00 00 00 00 00 S 00 00 00 00 00 00 00 00 00 00 00 00 T 00 00 00 00 00 00 00 00 00 00 00 00 U 00 00 00 00 00 00 00 00 00 00 00 00 V 00 00 00 00 00 00 00 00 00 00 00 00 W 00 00 00 00 00 00 00 00 00 00 00 00 LBA[000000, 0000000]: Track[01]: SubQ crc16 is 0. Main-channel may be corrupt LBA[000000, 0000000]: Track[01]: SubQ[12]:Adr[0] -> [0x01] LBA[000000, 0000000]: Track[01]: SubQ[13]:PrevTrackNum[01] -> [00] LBA[000000, 0000000]: Track[01]: SubQ[19-21]:PrevAbs[149, 00:01:74], Abs[0, 00:00:00] -> [150, 00:02:00] LBA[000000, 0000000]: Track[01]: SubQ[22]:CrcHigh[0000] -> [0xf6] LBA[000000, 0000000]: Track[01]: SubQ[23]:CrcLow[0000] -> [0xd8] LBA[000001, 0x00001]: Track[01]: SubQ Reread [crc16 unmatch] -> NG. Fix manually ========== LBA[000001, 0x00001]: Sub Channel ========== +0 +1 +2 +3 +4 +5 +6 +7 +8 +9 +A +B P 00 00 00 00 00 00 00 00 00 00 00 00 Q 00 00 00 00 00 00 00 00 00 00 00 00 R 00 00 00 00 00 00 00 00 00 00 00 00 S 00 00 00 00 00 00 00 00 00 00 00 00 T 00 00 00 00 00 00 00 00 00 00 00 00 U 00 00 00 00 00 00 00 00 00 00 00 00 V 00 00 00 00 00 00 00 00 00 00 00 00 W 00 00 00 00 00 00 00 00 00 00 00 00 LBA[000001, 0x00001]: Track[01]: SubQ crc16 is 0. Main-channel may be corrupt LBA[000001, 0x00001]: Track[01]: SubQ[12]:Adr[0] -> [0x01] LBA[000001, 0x00001]: Track[01]: SubQ[15-17]:PrevRel[0, 00:00:00], Rel[0, 00:00:00] -> [-1, 00:00:255], [L:1369] LBA[000001, 0x00001]: Track[01]: SubQ[19-21]:PrevAbs[150, 00:02:00], Abs[0, 00:00:00] -> [151, 00:02:01] LBA[000001, 0x00001]: Track[01]: SubQ[22]:CrcHigh[0000] -> [0xe3] LBA[000001, 0x00001]: Track[01]: SubQ[23]:CrcLow[0000] -> [0x24] LBA[000002, 0x00002]: Track[01]: SubQ Reread [crc16 unmatch] -> NG. Fix manually ========== LBA[000002, 0x00002]: Sub Channel ========== +0 +1 +2 +3 +4 +5 +6 +7 +8 +9 +A +B P 00 00 00 00 00 00 00 00 00 00 00 00 Q 00 00 00 00 00 00 00 00 00 00 00 00 R 00 00 00 00 00 00 00 00 00 00 00 00 S 00 00 00 00 00 00 00 00 00 00 00 00 T 00 00 00 00 00 00 00 00 00 00 00 00 U 00 00 00 00 00 00 00 00 00 00 00 00 V 00 00 00 00 00 00 00 00 00 00 00 00 W 00 00 00 00 00 00 00 00 00 00 00 00 LBA[000002, 0x00002]: Track[01]: SubQ crc16 is 0. Main-channel may be corrupt LBA[000002, 0x00002]: Track[01]: SubQ[12]:Adr[0] -> [0x01] LBA[000002, 0x00002]: Track[01]: SubQ[15-17]:PrevRel[-1, 00:00:255], Rel[0, 00:00:00] -> [-2, 00:00:254], [L:1369] LBA[000002, 0x00002]: Track[01]: SubQ[19-21]:PrevAbs[151, 00:02:01], Abs[0, 00:00:00] -> [152, 00:02:02] LBA[000002, 0x00002]: Track[01]: SubQ[22]:CrcHigh[0000] -> [0x79] LBA[000002, 0x00002]: Track[01]: SubQ[23]:CrcLow[0000] -> [0x16] LBA[000003, 0x00003]: Track[01]: SubQ Reread [crc16 unmatch] -> NG. Fix manually ```

Example of subReadable:

LBA[000000, 0000000]: P[00], Q[01000000000000000200f6d8]{Audio, 2ch, Copy NG, Pre-emphasis No, Point[00], AMSF[00:00:00], StartTimeOfTrack[00:02:00]}, RtoW[0, 0, 0, 0]
LBA[000001, 0x00001]: P[00], Q[01000000009500000201e324]{Audio, 2ch, Copy NG, Pre-emphasis No, Point[00], AMSF[00:00:95], StartTimeOfTrack[00:02:01]}, RtoW[0, 0, 0, 0]
LBA[000002, 0x00002]: P[00], Q[010000000094000002027916]{Audio, 2ch, Copy NG, Pre-emphasis No, Point[00], AMSF[00:00:94], StartTimeOfTrack[00:02:02]}, RtoW[0, 0, 0, 0]
LBA[000003, 0x00003]: P[00], Q[010000000093000002030ee3]{Audio, 2ch, Copy NG, Pre-emphasis No, Point[00], AMSF[00:00:93], StartTimeOfTrack[00:02:03]}, RtoW[0, 0, 0, 0]
LBA[000004, 0x00004]: P[00], Q[01000000009200000204d455]{Audio, 2ch, Copy NG, Pre-emphasis No, Point[00], AMSF[00:00:92], StartTimeOfTrack[00:02:04]}, RtoW[0, 0, 0, 0]
LBA[000005, 0x00005]: P[00], Q[010000000091000002052aa6]{Audio, 2ch, Copy NG, Pre-emphasis No, Point[00], AMSF[00:00:91], StartTimeOfTrack[00:02:05]}, RtoW[0, 0, 0, 0]
LBA[000006, 0x00006]: P[00], Q[01000000009000000206b094]{Audio, 2ch, Copy NG, Pre-emphasis No, Point[00], AMSF[00:00:90], StartTimeOfTrack[00:02:06]}, RtoW[0, 0, 0, 0]
LBA[000007, 0x00007]: P[00], Q[010000000089000002070c93]{Audio, 2ch, Copy NG, Pre-emphasis No, Point[00], AMSF[00:00:89], StartTimeOfTrack[00:02:07]}, RtoW[0, 0, 0, 0]
LBA[000008, 0x00008]: P[00], Q[01000000008800000208572d]{Audio, 2ch, Copy NG, Pre-emphasis No, Point[00], AMSF[00:00:88], StartTimeOfTrack[00:02:08]}, RtoW[0, 0, 0, 0]
LBA[000009, 0x00009]: P[00], Q[0100000000870000020922f5]{Audio, 2ch, Copy NG, Pre-emphasis No, Point[00], AMSF[00:00:87], StartTimeOfTrack[00:02:09]}, RtoW[0, 0, 0, 0]
LBA[000010, 0x0000a]: P[00], Q[010000000086000002100bbc]{Audio, 2ch, Copy NG, Pre-emphasis No, Point[00], AMSF[00:00:86], StartTimeOfTrack[00:02:10]}, RtoW[0, 0, 0, 0]
LBA[000011, 0x0000b]: P[00], Q[01000000008500000211f54f]{Audio, 2ch, Copy NG, Pre-emphasis No, Point[00], AMSF[00:00:85], StartTimeOfTrack[00:02:11]}, RtoW[0, 0, 0, 0]
LBA[000012, 0x0000c]: P[00], Q[010000000084000002126f7d]{Audio, 2ch, Copy NG, Pre-emphasis No, Point[00], AMSF[00:00:84], StartTimeOfTrack[00:02:12]}, RtoW[0, 0, 0, 0]
LBA[000013, 0x0000d]: P[00], Q[010000000083000002131888]{Audio, 2ch, Copy NG, Pre-emphasis No, Point[00], AMSF[00:00:83], StartTimeOfTrack[00:02:13]}, RtoW[0, 0, 0, 0]
saramibreak commented 1 year ago

Thanks, but also upload _drive.txt and _mainError.txt , plz.

ajalberd commented 1 year ago

taw_mainError.txt

taw_drive.txt

ajalberd commented 1 year ago

Also, what's the best output format for mixed/enhanced CDs?

saramibreak commented 1 year ago

/c2 is needed.

        /c2     Continue reading CD to recover C2 error existing sector
                        val1    value to reread (default: 4000)
                        val2    0: reread sector c2 error is reported (default)
                                1: reread all (or from first to last) sector
                        val3    first LBA to reread (default: 0)
                        val4    last LBA to reread (default: end-of-sector)
                                val3, 4 is used when val2 is 1
ajalberd commented 1 year ago

That worked, thank you! What in the logs pointed you to that being the error, for future reference?

saramibreak commented 1 year ago

What in the logs pointed you to that being the error, for future reference?

If possible.

ajalberd commented 1 year ago

I think we can close this issue, then. But I'm just curious as to why it needed C2 flag and what lead you to conclude it was the issue?