The Art of Burning Dreamcast CDI's on OS X Published on Tuesday, August 4th, 2015 Ever since the announcement of _Shenmue III_, I've been aching to take my trusty old Dreamcast out for a spin. So, said and done, I dug it out, downloaded the _DCRES_ pack, and went to town. There was just one problem: close to every release out there are distributed on DiscJuggler CDI-images, and every guide for burning CDI-files on OS X is either horribly outdated or rely on very specific versions of obscure software. First after a slew of coasters, I found a set of tools and steps that actually worked. The following text is a few notes summarizing on how to succeed. First off, you need to rip apart the CDI-file into separate audio- and data-tracks. This is best achieved with a tool called `cdirip`, which is unfortunately not available on either MacPorts or Homebrew. I've prepared an x86_64 binary available [here](https://github.com/jozip/cdirip/releases/download/v0.6.3/cdirip-osx), or you can always [roll your own](https://github.com/jozip/cdirip). Anyhow, run the following to split audio and data: $ /path/to/cdirip your-sweet-game.cdi -cdrecord This will result in a set of files with the form "`taudio[0-9]{2}.wav`" and "`tdata[0-9]{2}.iso`". The `-cdrecord`-flag hints at the next step; `cdrecord` has become my trusty companion for tricky burns, so let's install it! (Note that "`cdrecord`" used to be the name of the package too, but now it is commonly known as "`cdrtools`".) $ brew install cdrtools Now we need to find out the identifier of the device we wish to use. For instance, I want to use my Super Drive in my three year-old MacBook Pro, which is logically on a SCSI-bus. (This is also true for any USB-connected burner.). To find devices on the bus, run: $ cdrecord -scanbus Mine was located on `1,0,0`. We now have what we need to burn the data onto a CD. Slot one in and proceed with the audio tracks: (Your mileage may vary with the speed setting. I was a bit wary of fiddling with it, since I had just produced a nice set of coasters.) $ cdrecord dev=1,0,0 speed=4 -multi -audio taudioN.wav where "N" is 01, 02, and so on. (Note that for every successful burn, the disc will be automatically mounted. Unmount (*not* eject) it between each track using `diskutil` or the Disk Utility application.) Let's burn the data tracks in the same fashion: $ cdrecord dev=1,0,0 speed=4 -multi -xa tdataN.iso When you've burned all tracks, eject the CD and plop it into your Dreamcast. Easy peasy. The last two steps should really be automated. I've seen scripts floating around that do just this, but they generally hardcode the device and doesn't handle the automatic mounting that OS X insists on doing. One day I may publish a script, but I dunno. <3 jzp