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
541 stars 47 forks source link

CHECK_CONDITION error after 1st session in multi-session discs #41

Closed TheRogueArchivist closed 1 year ago

TheRogueArchivist commented 4 years ago

DIC encounters a CHECK_CONDITION error only a few sectors after the "Lead-out length of the 1st session" message appears. These errors occur on every single multi-session disc that I've tried, some without any visible scratches or the like. I can provide logs as available, dumping the disc is taking a fair bit of time. The drive is a WX-4012TA.

tomthumb876 commented 4 years ago

I can confirm this. I've tried several "Enhanced CD" audio discs with DIC and they all fail in exactly the same manner on 3 different Plextors (2 PX-W4012TA's and 1 PX-W5224TA). Fails as soon as it hits 2nd session's pregap. The 2nd session's lead-in doesn't cause errors but does return useless garbage data. Possibly of note, these discs all seem to have visible rings at the session boundary.

What happens specifically is:

For all of the error sectors, DIC returns the same garbage data as it does for the 2nd session's lead-in. I can't figure out where this garbage data is being taken from since it doesn't seem to match anything that's supposed to be on the disc (and no, it's not a scrambled data sector).

Other ripping software can handle these discs fine, so DIC should be able to. One possible workaround might be to simply skip trying to read the 2nd session's lead-in and/or pregap (padding the output appropriately), but I really hope a better solution can be found. Other software can at least read the 2nd session pregap on these discs, so that should be possible at a minimum. Less sure about the 2nd session lead-in, but hopefully there is a way to get it.

TheRogueArchivist commented 4 years ago

Issue NOT present when dumping with a PX-760A drive, it's the same up to the point where it outputs "Sleep 20000 msec", and then it gives the length of the second session lead-in and continues without any errors.

saramibreak commented 4 years ago

Updated test version http://www.mediafire.com/file/eq80y20l9cwf48f/DiscImageCreator_test.7z/file 4012: CHECK_CONDITION error is a hardware problem. I can't fix it but I don't skip reading pregap sectors of 2nd session, so I don't support enhanced disc in 4012 now. 4824: semaphore timeout remains and 2 pregap sectors of 2nd session still have garbage data, but others are OK. 5224: error 1167 or 55 or other are hardware problems. I can't fix it but I don't skip reading pregap sectors of 2nd session, so I don't support enhanced disc in 5224 now.

tomthumb876 commented 4 years ago

So, just to be clear, does this mean we're giving up on ever having Enhanced-CD discs be dumpable with the 4012 or 5224? That would be a shame since the problem should be easily solvable via the addition of an option to skip the 2nd session pregap (can replace with empty or "dummy" sectors). Would you ever consider adding such an option in the future? If not, would you at least accept it as a patch if someone else were to submit it?

TheRogueArchivist commented 4 years ago

I doubt an option would be made to skip it, DIC doesn't usually allow reading discs unless it's done as perfectly as possible, so it seems unlikely to add the option to skip. That is unless the pregaps are always empty and the drive still accurately says how many sectors of them there are. Also Sarami, should I close the issue now?

tomthumb876 commented 4 years ago

To the best of my knowledge, the 2nd session pregap isn't any more important than the 1st session pregap, which DIC already skips (by default, no less!), so logically there should be no problem with DIC allowing the user to skip the 2nd session pregap. There's rarely anything significant in session pregaps anyway, I think the main reason DIC is getting those sectors is just for the sake of completeness and to keep the image padded properly. I agree with and support that approach, but since multiple widely-used Plextor models are choking on this, it makes sense to allow empty/"dummy" sectors to be substituted for the 2nd session pregap, just as they already are for the 2nd session lead-in. I see no downside to allowing that as an option, with the current behavior as default.

As far as closing this issue goes, I'm not sure what sarami would prefer but I think it should be left open so that I (or others) can continue to post updates here if anything new is discovered. For that same reason, most of the other issues documented on here have been left open.

TheRogueArchivist commented 4 years ago

That's fair about the first session pregap, I guess in that case it would be up for Sarami to decide what's best as far as that goes.

malvarenga123 commented 3 years ago

For verification purposes, I think that an option to skip the 2nd session pregap would be useful. Maybe DIC could use the log of a previous successful dump to determine whether or not read into the session pregap.

saramibreak commented 1 year ago

Supported by https://github.com/saramibreak/DiscImageCreator/commit/e9b3dc3f3dd3d20d70d4ac2aec361c32abb5f8af