=-[ 0x17 ]-==================================================================
=-[ NetSearch Ezine #7 ]-====================================================
=-[ Ripping CD's DreamCast ]-================================================
=-[ por inetd ]-=============================================================
=-[ TRANSLATION BY GREG2K ( http://www.greg2k.com ) ]-==================================
You'll find a ZIP with everything at http://www.lifefromthenet.com
1.0 Introduction.
1.1 Preparing the drive.
2.0 Tools.
2.1 CDRWin
2.2 GD Toc Reader.
2.3 Extract
2.4 Isofix
2.5 Isobuster
3.0 122-minute TOCs.
3.1 Data TOCs.
3.2 Audio TOCs.
4.0 Method explanation.
4.1 "Table Of Contents" track extraction.
4.2 "Data" track extraction.
4.3 "Audio" track extraction.
4.4 ip.bin extraction.
5. Final comments.
1.0 Introduction.
This method consists in a "swap trick" of the sort used for Saturn or PSX before the modchips were released; basically it's about fooling the drive in thinking a CD hasn't been swapped, when indeed it has; in this case it's the CD drive.
GD-ROMS are just normal CDs with a higher density, in other words, data is burnt closer together, but these discs are not made out of any special material or recorded in differently to a standard CD-R. Then how do you achieve the 1GB capacity? Easy, bypassing error correction and redundancy; what this does is stores one byte of information in one byte of disc space.
Thus, being standard discs, it's pretty feasible for a CD/DVD drive to read GD-ROMs without any problems as we'll prove further along.
1.1 Preparing the drive
To do this, the first thing we need is a CD-R drive which we won't mind breaking. Any drive you can buy today which can read CD-RWs and 80min CD-Rs, with Digital Audio Extraction will do. You can also use a DVD drive; in fact, this should work even better since a DVD drive's laser adjusts itself depending on the inserted media.
OK, once we've found a drive that suits us, we need to get dirty with it. The first thing is to remove the cover, both the top and bottom casing, and free the tray if necessary. Freeing the tray means removing the plastic front panel which most drives come with, usually with the mandatory DVD logos and model number.
Once we've got the "naked" drive, we remove the magnetic fastener which secures the CD and centers it inside the drive. Each drive has it's particular fastener ; it's up to you to identify it. OK, now we remove the remaining screws and we just leave the board as it is, so it can be easily changed later. We now have our drive ready. It goes without saying that we will need permanent access to the top part of the drive, therefore we WILL NOT INSERT the drive in a 5"1/4 drive bay
2.0 Tools.
Now I will describe the necessary tools we need to extract files off a GD-ROM. In this chapter I'll just roughly explain what each tool does; any specific use of a tool will be explained in more detail when needed.
2.1 CDRWin
Probably the best CD recording app in existance. It's the core of this method; we wil use it to read the GD-ROM.
2.2 GD TOC Reader
This program, created by Yursoft, is used for finding out where each track on the disc starts and where it ends from an "ip.bin" file or an ISO containing the GD-ROM's TOC. REALLY useful.
2.3 Extract.
With this utility we will be able to rip the files specified in a TOC using an ISO and it's associated TOC.
2.4 Isofix
This tool will be very useful to us if we have been able to, rarely the case, extract a complete GD-ROM image even if it's in two parts. What this tool does is assign LBA values to an image.
2.5. Isobuster.
In case someone doesn't know what this tool does, I'll explain briefly. It extracts individual files from A LOT of image formats, including ISOs. In our case, it does exactly the same as Extract.
3.0 122-minute TOCs.
OK, well as explained previously, this method consists in a swap trick. We will have to trick the drive in thinking it's reading a CD-ROM and not a GD-ROM. A GD-ROM holds a gigabyte of information and has the following specs:
549,150 sectors, 122 minutes:
Dummy data track (sectors 0 to X)
Audio tracks (sectors X to Y; there may not be any)
Valid data track (sectors Y to 549150)
After seeing this track organisation and considering the fact that the maximum a normal CD-ROM can hold are 80 minutes, we may begin to despair slightly, since we would never be able to extract the valid sectors where the useful data lies.
There is a solution to this; CloneCD images come with a .ccd file which is equivalent to a CDRWin .cue file. These files tell us where each track starts and ends on a CD; well this file can be easily modified in a simple text editor such as Notepad, so with a little luck we will be able to modify certain values and turn a 74-minute TOC into a 122-minute TOC.
With this tutorial some necessary files to create a data TOC and an audio TOC of 122 minutes are included, but it's interesting to know how to modify a TOC to achieve it.
3.1 Data TOC.
To create a data TOC we need a Mode 1 image made with CloneCD. Each CloneCD image has a .ccd a .img and a .sub ; the one we're interested in is the first of the three, the .ccd, which is really just a standard Windows .ini file. The file is broken down into different sections: the first two relative to the software version and disc structure, and following those we have as many sections as entries the image contains. The one we're interested in is Entry 2 and more specifically the PLBA field of this entry. We must modify the value of this field and change it to 549159, which is the exact number of sectors a GD-ROM has. Entry 2 should look something like this:
[Entry 2]
Session=1
Point=0xa2
ADR=0x01
Control=0x04
TrackNo=0
AMin=0
ASec=0
AFrame=0
ALBA=-150
Zero=0
PMin=122
PSec=4
PFrame=01
PLBA=549150
Once we have modified the .ccd we'll burn the image with CloneCD. CloneCD will warn us that the TOC of that image is incorrect and will offer us the chance to fix it or keep it intact; it's obvious we'll choose the latter.
Once we've burned the image, we have a "dummy CD", which will allow us to read up to sector 549150 and therefore we will be able to extract a full GD-ROM.
3.2 Audio TOC
Obviously, with the generated image we can only extract data in Mode 1 (2048); now we need a "dummy CD" to extract the audio. The process and modifications are exactly the same, but for a CloneCD Audio format.
4.0 Method explanation.
Once we have both TOCs modified and CDRWin along with the remaining tools installed, we can start ripping a GD disc. The tests I did were with the DreamON 10 demo disc which SEGA gives away.
Before we do anything else, we must place our bare adequately drive so we have easy access to it; we're inside Windows and the drive has been detected and installed. We can now continue the process.
4.1 Table Of Content extraction
This is a basic step for the rest of the process; we must create an image which contains the first 500 sectors. The GD-ROM TOC is stored there. To do it we must insert our DATA "dummy CD", start CDRWin, select "Extract Disc/Tracks/Sectors", press the TOC button and read the "dummy CD". While the disc stops spinning we must select the following options:
- Extraction mode: Select sectors
- Image filename: the one of your choice, say TOC.iso
- File format: Automatic
- Start sector: 45,000
- End sector: 46,000
- Datatype: Data Mode 1 (2048)
- Error recovery: Abort
- Jitter Correction: Auto
- Data Speed: 4x
- Audio Speed: 4x
- Read Retry Count: 0
- Subcode Threshold: 300
After filling in these options, the CDRWin window should look something like this:

Once we have CDRWin configured we must wait for the drive's motor to stop and the inserted "dummy CD" to stop spinning. Now we remove the magnetised fastener which lies on top of the disc, remove our "dummy CD" and insert the GD-ROM we wish to read, put the magnetised fastener back on and begin the extraction process. If all goes well there should be no noise and after a short while we will have an image of approximately 2MBs.
Once we've extracted the image with it's TOC we must find out where each track begins and ends to extract the data and audio tracks perfectly. To do so, we open the image we have generated in GD ROC Reader. We should see something like this:

As you can see we have three tracks. A first track which has NO USE; it's a dummy track which is there to force the data to be at the end of the disc. A second track which is the audio track and finally, at the end of the disc, the data track which contains the game itself. In this case, the key sectors are 227,454 which is the start of the data track and the 549,150 which is the end of the track and the GD-ROM disc. With this information we now know where to start extracting the data track without making any mistakes.
IMPORTANT: DO NOT swap the CD for the GD disc until the drive engine has stopped COMPLETELY.
4.2 Data track extraction.
Once we know the initial sector of the data track, all we need to do is get CDRWin to extract from that sector to the end of the disc. I don't know why, but if the data track starts before approximately sector 370,000 we will have to split it in two or the drive won't be able to extract the end sectors. If this were the case, we split the image in one bit that goes from sector 227,454 to 369,999 and another one that goes from sector 370,000 to 549,150. To extract these two images we use the same options we used previously to extract the TOCs; same as before, if the drive makes no noises when extracting the GD-ROM, everything is OK. If we're capable of extracting up till sector 549,150 , we're nearly done.
We have two .iso images without any TOCs and also separated; doesn't look promising does it? This is fixed by joining both images and using as a TOC of the resulting image the one we have stored in the first ISO we extracted. To join both images we use the simple MS-DOS prompt COPY:
copy /b part01.iso+part02.iso image.iso
After a while, we will have one "image.iso" file. We still do not have a TOC, so we can't extract the files with Isobuster; what we're going to do is use the Extract tool which will let us use a TOC stored in one image and apply it to another image. We use the following syntax:
extract toc.iso image.iso 227604 (227454+150)
This command will start extracting all the files of the iso which contained the data image we extracted before. We must put 150 sectors more because Extract ignores the 150 sectors of the TOC.
Once the Extract program has finished we must have a folder with all the GD-ROM files. In this screenshot you can see the resulting folder with the DreamON 10 files:

That's it, we've extracted all the files from the GD-ROM. Now all we need is to extract the audio tracks, in case there were any. This process is even easier than for the data track.
4.3. Audio track extraction.
Once we have the data of the GD-ROM we're ripping, we can start extracting the audio tracks. For this, we must make a note of where each audio track starts and finishes, using GD TOC Reader. Once we know these parameters we can start extracting them; to do so, we must use, yet again, our "dummy CD", this time the Audio one. We remove the GD-ROM we just ripped using the same removal procedure as before, we put the audio "dummy CD" in and we tell CDRWin to read the TOC. When the drive engine stops and the disc has come to a complete stop, we swap it with the same GD-ROM as before. Now we change the following options in CDRWIN:
- File Format: WAVE
- Jitter correction: Auto
- Datatype: Audio (2352)
We input the sectors of each track and extract the tracks individually. Once we finish the audio extraction we will have the same number of .wav files as audio tracks on the GD-ROM.
4.4 ip.bin extraction
We're nearly done; at this point all we have to do is extract the ip.bin file. This is the bootstrap for all Dreamcast games; it's the first one executed and it contains all the control pad button assignments, video modes, and a few other things. This file is crucial in any Dreamcast disc. If we are lucky enough, this file will be located with the rest of the files we extracted from the data track. If not, we'll have to extract it manually.
Although this isn't Isofix's main task, it can extract the ip.bin file from an image which contains the game's TOC to a file named boot.bin . When we load Isofix, we are asked for the image we want to patch and then the LBA value from which it has to start patching. This is 45,000. When Isofix has stopped patching, we will have two files, one called tmp.iso and another called boot.bin, which we shall rename ip.bin and we'll use it as the bootstrap of the CD we wish to burn. We can discard the tmp.iso file.
5. Final comments.
Is that it? Have we finished? Are we 1337? Nope, we've only just finished the easy part, the part in which we rip the GD-ROM. There's still a lot ahead of us; almost surely the data won't fit on an 80min CD-R, so we may need to reduce the quality of the video and audio; once we've done this, we still need to make a bootable CD using the ip.bin we extracted.
Someother time, when I'm in the mood, I'll update this tutorial with more information.