GD-Rom Dumping Guide (Old)
From Redump Wiki
Please verify that your drive can read GD-ROMs before you begin.
Contents |
Introduction
The GD-ROM format is actually a special and customized, multisession CD format developed by Yamaha for Sega. The Dreamcast console contained a modified 12x CD-ROM reader to read the format, which contained a high-density layer. This high-density zone is very similar to normal CD data, except that it is more squeezed (like a CD-R burned with the GigaRec technology by certain real Plextor writers). The high-density zone of GD-ROM contains subcodes and raw data sectors (2352 bytes per sector), and can even can contain CDDA audio tracks.
A GD-ROM consists of two zones:
- A low density area (the first 2 tracks)
- A high density area (the rest of the disc).
The low denisty area can be accessed by just about any drive, while the high density portion is only accessible by COMPATIBLE drives using a technique called "hotswapping." Hotswapping basically involves pressing the escape/eject button on the drive while in use to eject-and-switch-discs ("hot swap") so that the high density portion can be reached by the ripping software.
Since the low density area is visible by just about any drive, it can be dumped in the normal way (without hotswapping). See the Main CD Dumping Guide for instructions on how to dump the low density tracks.
Because only a handful of drives are capable of reading the high-density area of a GD-ROM disc there is an on-going list of SUPPORTED or UNSUPPORTED drives are provided below. The list is a work-in-progress, so please let us know if a drive can be added to either section! :)
Lastly, there are presently two methods used to dump redump.org GD-ROMs. This guide will attempt to walk you through each method. You are free to choose whichever seems the simplest!
Method A
Software needed
- CDRWin (v4.0a - v4.0h)
- dctools
- Audio trap disc
Instructions
The high density area (sector 45000-549150) can be dumped as follows:
- Insert the audio trap disc (a disc with a hacked TOC of 99 mins audio, burn it with CloneCD or Alcohol).
- Use 'startstop.exe [driveletter] 1' to stop the drive motor.
- Use a pin to press the escape eject button, so the tray will eject (or remove the drive cover).
- Insert the GD-ROM into the tray and gently push the tray back into the drive (or replace the drive cover if you removed it).
- Now extract sectors 44990 - 549150 using CDRWin's 'Select Sectors' feature. Make sure you use the following settings:
- CD Audio (2352)
- File Format = INTEL
- Error Recovery = Abort
- Audio Speed = 1x
- Read Retry Count = 1
- Once the software is finished extracting, use 'ICE.exe dumpfile.bin 45000' to descramble and split the dump data.
- If everything went well, the dump should be ready for submission!
Method B
Software needed
- DCdumper (v0.42a)
- CDRWin (v4.0a - v4.0h)
- dctools
- Audio trap disc
Instructions
The downside to Method A is that CDRWin (by itself) can have problems dumping certain sectors of the GD-ROM. Therefore, JamJam created a tool called 'DCdumper' to provide more secure sector verification during dumping that generally results in far less errors and more accurate dumps. CDRWin is still needed to align the laser, but DCdumper performs the actual dumping.
- Insert the audio trap disc into the drive.
- Open CDRWin and set it up like you would if you were using it to do the dump.
- Change the 'Start-End' sector to 50000; leave everything else the same.
- Next, use 'startstop.exe [driveletter] 1' to stop the drive motor.
- Once the drive has stopped, carefully remove the trap disc using the hotswap technique (see above), and replace it with the GD-ROM.
- IMPORTANT: To prevent damage to the edging of your disc, push the tray carefully and gently until it's 99.9% of the way in and won't seem to go any further. Then, give the WHOLE tray surface an EXTRA-HARD push. If you're lucky, you'll hear the magnet picking up the disc...but don't worry if you don't. As long as you pressed in really hard, nothing should happen to the GD-ROM...hopefully! :)
- With the GD-ROM now successfully swapped, use CDRWin to pre-align the laser by entering the sector ranges you wish to dump and press 'Start'. Let it reach 1%, wait a few seconds longer, and then 'Cancel' the reading. This effectively "aligns" the laser for the next step.
- Once the laser has been aligned you can run DCdumper to dump the same sector range: 'DCdumper.exe [driveletter] -df -dt'
- Once you finish dumping all sections (1-49), a file called "dense.bin" will be created containing the scrambled dump data.
- Extract the data using 'ICE.exe' from the dctools collection.
- If everything went well, the dump is now ready for submission!
For more information on dumping GD-ROMs using METHOD B, see the DCdumper Tutorial.
Best Practices / Tips
- Burn the Audio Trap Disc image to a CD-RW vs. a regular CD-R. CD-RWs are more durable, and are less prone to damage than a CD-R.
- Hotswapping (the eject-pin-hole method) works very well, and is generally favored over the lid-removal method. However, extra care is necessary during the transition in order to avoid scratching the GD-ROM and/or audio trap disc.
- To prevent damage to the edging of your disc, push the GD-ROM in the tray carefully and gently until it's 99.9% of the way in and won't seem to go any further. Then, give ALL parts of the tray an EXTRA-HARD push. If you're lucky, you'll hear the magnet picing up the disc...but don't worry if you don't. As long as you pressed in really hard, nothing should happen to the GD-ROM...hopefully! :)
- If you own a Plextor drive, you can quickly determine the factory write offset value by using px_d8 (v1.01A). Usage: 'px_d8 [driveletter] 45000'. (Refer to the Main CD Dumping Guide for details on how to manually determine the write offset value.)
Troubleshooting
- If you have a drive on the SUPPORTED list, and it doesn't work after some retries: (1) read ahead a bit (sector 60,000-x), (2) try/retry the normal range again, and (3) try removing the cover.
- If DCdumper is working fine and then begins to fail reading sector ranges, STOP the program, DELETE the failed partial .bin file(s) (since DCdumper does *NOT* do this for you), re-scan the opening 1-2% of the sector range using CDRWin, and then try re-running DCdumper to see if it fixes itself. If it still fails, you may need to re-insert the audio trap disc and realign the laser using CDRWin (i.e. start over). If it STILL fails, then you may have a bad disc or a drive-related problem. Check and/or clean your disc's data surface, and verify that your drive's firmware version is up-to-date.
- If you keep getting errors during the extraction OR if your drive fails to read the GD-ROM disc after swapping, then this most likely means that your drive isn't suitable for dumping GD-ROM discs. See the SUPPORTED and UNSUPPORTED lists for more information.
- If some of the required software tools aren't working properly, try updating your drive's firmware to the latest version. Out-of-date firmware has been known to cause problems with some of the homebrew tools used in dumping discs.
Supported Drives
Drives that have been tested and verified as COMPATIBLE.
- Lite-On LH-18A1H (themabus)
- Lite-On SOHD-167T (iR0b0t, Jackal)
- Plextor PX-W4824TA (pablogm123)
- Samsung TSSTCorp SH-D162C (tossEAC)
- Samsung TSSTCorp SH-D162D (iR0b0t, Jackal, tossEAC, r09, Rocknroms, nrl_quaker)
Reported Drives
Drives that have been reported as COMPATIBLE (unverified):
- LG GCR-8522B
- Lite-On LTD-165H
- Lite-On SOHD-16P9S
- NEC CDR-1901A
- Plextor PX-708A
- Plextor PX-755SA
- Plextor PX-W4824TU
- Samsung TSSTCorp TS-H192C
- Samsung TSSTCorp TS-H352C
- Samsung TSSTCorp TS-H353A
- Samsung TSSTCorp TS-H353B
Unsupported Drives
Drives that have been verified as being INCOMPATIBLE:
- ASUS CRW-5224A (axisleon)
- ASUS DRW-24B1ST a (Enker)
- LG BD-RE GGW-H20L (Teancum)
- LG CED-8120B (iR0b0t)
- LG GCC4482B (Enker)
- LG GDR-8164B (iR0b0t, Rocknroms)
- LG GSA-H10N (Enker)
- LG GSA-H42L (iR0b0t)
- Lite-On iHAS324-32 B (axisleon)
- Lite-On iHBS112 2 (Enker)
- Lite-On iHDP118 4 (Enker)
- Pioneer DVR-103 (iR0b0t)
- Pioneer DVD-129P (axisleon)
- Pioneer DVR-111 (axisleon)
- Pioneer DVR-216 (axisleon)
- Plextor PX-116A (axisleon)
- Plextor PX-760A (iR0b0t, Rocknroms, Jackal)
- Toshiba SD-M1502 (iR0b0t)
- SONY CRX140S (axisleon)
- SONY CRX230E (nrl_quaker)
- NEC ND-4550A (nrl_quaker)
- TEAC CD-532S (axisleon)
- Toshiba SD-M1502 (iR0b0t)
- TSSTcorp SH-S202J (nrl_quaker)
- HL-DT-ST BD-RE GGW-H20L (Teancum)
DCdumper Tutorial
A best-practice for using DCdumper is to separate the GD-ROM dumping into three sector ranges. This technique allows you to quickly re-align the laser (using CDRWin), reset the trap disc, and resume dumping if/when DCdumper encounters an unreadable sector (which happens occasionally). The following is a recommended (though optional) range split to use during dumping:
- 044990-240480 (START)
- 240481-435971 (MIDDLE)
- 435972-549150 (END)
Our example below we will be splitting it's sample dump into THREE parts (as per the recommendation). This means that for PASS 1 we will stop dumping after section 19 completes its initial dump, restart the process to verify the data, and then proceed onto the next section...and then stop DCdumper again and repeat the process until all three section are successfully dumped. This will make more sense below. ;)
To get started, refer to steps #1-5 of METHOD B. Then, once the GD-ROM is successfully loaded and the drive's laser is aligned, run DCdumper by typing the following into a command-line prompt: "DCdumper.exe [driveletter] -df -ft". This will generate the following report:
- Handle acquired.
- Load disc: Done.
- Sector map created.
- ..................:::::::::::::::: PASS 1 ::::::::::::::::..................
- Reading section 1: 044990-055278 - Initial dump.
- Reading section 2: 055279-065567 - Initial dump.
- Reading section 3: 065568-075856 - Initial dump.
- Reading section 4: 075857-086145 - Initial dump.
- Reading section 5: 086146-096434 - Initial dump.
- Reading section 6: 096435-106723 - Initial dump.
- Reading section 7: 106724-117012 - Initial dump.
- Reading section 8: 117013-127301 - Initial dump.
- Reading section 9: 127302-137590 - Initial dump.
- Reading section 10: 137591-147879 - Initial dump.
- Reading section 11: 147880-158168 - Initial dump.
- Reading section 12: 158169-168457 - Initial dump.
- Reading section 13: 168458-178746 - Initial dump.
- Reading section 14: 178747-189035 - Initial dump.
- Reading section 15: 189036-199324 - Initial dump.
- Reading section 16: 199325-209613 - Initial dump.
- Reading section 17: 209614-219902 - Initial dump.
- Reading section 18: 219903-230191 - Initial dump.
- Reading section 19: 230192-240480 - Initial dump.
- Reading section 20: 240481-250769
Now STOP DCdumper once 'Section 20' begins, and then manually delete '240481-250769.bin' (as DCdumper will *NOT* do this for you). Next, rerun DCdumper to continue where you left off (and leave CDRwin alone for the moment). DCdumper will now attempt to match the first 19 sections (and it should match them perfectly). Once the first 19 matches are completed, let DCdumper continue dumping through section 38 and then STOP it again at section 39 (the end of our MIDDLE range). Once again, manually delete '435972-446260.bin'...but before rerunning DCdumper, jump over to CDRWin and change the 'Start' sector to '230192-549150' (the MIDDLE and END ranges) and begin reading. Stop the reading process once it reaches 2%, and reload DCdumper (again, always keep CDRWin open).
- Handle acquired.
- Load disc: Done.
- Sector map created.
- ..................:::::::::::::::: PASS 1 ::::::::::::::::..................
- Reading section 20: 240481-250769 - MATCH: 6e4207510b72d64f2fdaf3a6e240b78e
- Reading section 21: 250770-261058 - MATCH: 571d2edda501a781e5aac9d0c0a103da
- Reading section 22: 261059-271347 - MATCH: e524a36ca2c1a9a1882e246caafb0106
- Reading section 23: 271348-281636 - MATCH: 6dd29591019be9b77a4ea482ea3a3a4f
- Reading section 24: 281637-291925 - MATCH: d72947d92a61f98ebcd8180c44a36e1b
- Reading section 25: 291926-302214 - MATCH: cecc5174d242dcf7316203b2c8889f30
- Reading section 26: 302215-312503 - MATCH: f1b3d9da4e6cadc9115d78eae4166e50
- Reading section 27: 312504-322792 - MATCH: eb3e1326d4caf53f7a1ad95ddcf29bb1
- Reading section 28: 322793-333081 - MATCH: 3baebdb7c7efc7df3771473335d08f58
- Reading section 29: 333082-343370 - MATCH: dcb0ce8e933f0a6aac6596edb52d231c
- Reading section 30: 343371-353659 - MATCH: 498d10ef9a163a1133a507f782f26924
- Reading section 31: 353660-363948 - MATCH: 2e8551952fc2fc87a4d3bf14df734ec1
- Reading section 32: 363949-374237 - MATCH: a422a968d40389aa90ee3cb74e07feed
- Reading section 33: 374238-384526 - MATCH: dbad324d95b0327d836a178b22ad8052
- Reading section 34: 384527-394815 - MATCH: f5b2adfc989f017418e7600aa3175f71
- Reading section 35: 394816-405104 - MATCH: 0dba290bea3e4e27ecccc241815d634d
- Reading section 36: 405105-415393 - MATCH: 1136db01634d836d9c879c5e13c586d3
- Reading section 37: 415394-425682 - MATCH: aa51c5c9a86c66931318fa513ff398d1
- Reading section 38: 425683-435971 - MATCH: c117f43f7eccd3e8ac5699a17b78811f
- Reading section 39: 435972-446260
STOP reading at the same point as last time. Now go back to CDRWin and change the 'Start' sector to '425683-549150' (the END range). This time let CDRWin complete the range reading (100% read), and save the file as 'dense.bin' (though you can call it whatever you'd like). This is done for two reasons: (1) CDRWin can serve as a useful pre-scan of the final sector range to determine whether the final sector ranges are properly aligned; and (2) the 'dense.bin' created by CDRWin can serve as an alternate dump in the even that DCdumper fails to read the final sector ranges (which can occassionlly happen). However, if DCdumper is successful then there's no reason to keep the CDRWin data, and it can be deleted (as DCdumper is less error prone).
Once the END sector range is aligned using CDRWin, run DCdumper for the last time:
- Handle acquired.
- Load disc: Done.
- Sector map created.
- ..................:::::::::::::::: PASS 1 ::::::::::::::::..................
- Reading section 39: 435972-446260 - Initial dump.
- Reading section 40: 446261-456549 - Initial dump.
- Reading section 41: 456550-466838 - Initial dump.
- Reading section 42: 466839-477127 - Initial dump.
- Reading section 43: 477128-487416 - Initial dump.
- Reading section 44: 487417-497705 - Initial dump.
- Reading section 45: 497706-507994 - Initial dump.
- Reading section 46: 507995-518283 - Initial dump.
- Reading section 47: 518284-528572 - Initial dump.
- Reading section 48: 528573-538861 - Initial dump.
- Reading section 49: 538862-549150 - Initial dump.
- ..................:::::::::::::::: PASS 2 ::::::::::::::::..................
- Reading section 39: 435972-446260 - read error.
- Fake read. Retry - MATCH: 899e250f800b16efe4ccf92a75576dfd
- Reading section 40: 446261-456549 - MATCH: 0df42aad13808f33a33628f8ecbf2b46
- Reading section 41: 456550-466838 - MATCH: 13f55fa3c55d65d79dad23b8b096c401
- Reading section 42: 466839-477127 - MATCH: 164fd4a642644bd93d30694e0913e519
- Reading section 43: 477128-487416 - MATCH: 73101657245c32c04385ad0af7cbdeaf
- Reading section 44: 487417-497705 - MATCH: 288dd6170d1fc7313029b9022c972137
- Reading section 45: 497706-507994 - MATCH: 060a35de550280bbe873ae5a604cd308
- Reading section 46: 507995-518283 - MATCH: f94ba83664c3b7f8bccd54b95d87efd1
- Reading section 47: 518284-528572 - MATCH: 1ed6f4c5c9b59b80856b0c5aa3187cc5
- Reading section 48: 528573-538861 - MATCH: e77240fc9debbacea49e4d756194ff77
- Reading section 49: 538862-549150 - MATCH: 1589948dd455d557747e49880a0b47ab
- Creating dense.bin: Done. Pass this to ice.exe
Once the dense.bin has been created you can extract it with 'ICE.exe' from the dctools collection. This ultimately means that everything went well, and you have a verified dump ready for submission!
Before concluding this tutorial...when dumping with DCdumper you might see something like this (which is fine):
- ..................:::::::::::::::: PASS 1 ::::::::::::::::..................
- Reading section 1: 044990-055278 - read error.
- Fake read. Retry - read error.
- Fake read. Retry - Initial dump.
- Reading section 2: 055279-065567 - Initial dump.
- Reading section 3: 065568-075856 - Initial dump.
But if you get something like this:
- ..................:::::::::::::::: PASS 1 ::::::::::::::::..................
- Reading section 1: 044990-055278 - read error.
- Fake read. Retry - read error.
- Fake read. Retry - read error.
- Fake read. Retry - read error.
- Reading section 2: 055279-065567
STOP the program and DELETE the failed section ('044990-055278.bin') and partial section ('055279-065567.bin') files and try re-running DCdumper to see if it fixes itself. If it still fails, you may need to re-insert the audio trap disc and realign the laser using CDRWin.
Forum
For any questions, suggestions or problems please visit the Dreamcast GD-ROM dumping topic in the forum. If you have anything to add to the dumping method or supported drives please share with us your findings.