I've had awful luck dumping GD-ROMs using PC drives. I've got two different recommended models, but they both seem to be unable to read sectors toward both the beginning and end of the high density area. Instead, I've been dumping using a Dreamcast. However, I've got a couple of questions that have occurred to me.
First, I'm confused about why the TOC reported by the Dreamcast seems to differ for some tracks compared to what is in the database. This typically seems to happen when there's an audio track followed by a data track in the same session. For example, for the Japanese release of Guilty Gear X, the database has the last audio track (track 37) as 10405 sectors long, but the Dreamcast seems to report the track as 10330 sectors long for my disc (and I don't think it's a pressing variation -- I've seen this discrepancy with nearly every multitrack disc I've checked). I'm assuming it maybe has something to do with the pregap, but if we add on a 3 second pregap for the subsequent track we get (10330 + (75*3)) = 10555, which makes the track too long. Alternatively, if we add the 2 second pregap for track 37 we get (10330 + (75*2)) = 10480, which is also too long. Is there a way, short of just looking up what's already in the database, to determine what the proper track length is?
Second, and maybe this ties into the first question, is there any benefit to ripping subchannel data when extracting GD-ROMs? I've been playing with the source code for the GD-Ripper utility that comes with Dreamshell. By default, that utility rips to ISO (2048 bytes/sector) and doesn't extract any subchannel data. However, it's a pretty trivial modification to modify it to extract raw 2352 byte sectors plus 96 byes of subchannel data. Is there some index data that's present in the subcodes that can be used to determine actual track boundaries? I'm still learning about subchannels, and I'm not even sure how the hell the subchannel data returned by the Dreamcast is packed (it didn't look like a standard RAW format like we'd get from the MMC command), but I'm curious if this data might be useful to anyone for anything.
Right now, I'm ripping with SD Rip 1.1, but I may go back to using my modified GD-Ripper if there's any use in it.