Jack Robinson | Blog

How to dump your PSX Games (for Mac)

So you’ve just gone out and brought a funny looking PSX game, and a CD drive for your fancypants computer. You plug it in, put the disk in, and then wow! The files magically appear.

It can’t be this easy right? You go and copy and paste the files onto your computer then…

You may think the game is broken, but the disk looks fine to you! What could it be?

Well, I’m pretty sure this is something to do with the weird block sizes that these disks had back in the day, and Disk Utility freaks out a little.

This is just a quick reference for anyone out there who’s having trouble finding out how to dump their games from a CD to their (Apple Silicon) Mac.

Guide

The tool we’ll use is called cdrdao, which we can pull from Homebrew.

brew install cdrdao

This tool will read our CD (CDR) in “Disk at Once” (DAO) mode - I’m no expert, but I’m sure this’ll prevent Mac being like “I don’t know what this is” as it wont be confused by random gaps in the data that might appear due to the odd block sizes.

Once we have this installed, the next step is to find out which disk we’re pulling data from. There are ways to do this, easiest is probably diskutil

diskutil list

We’re looking for the CD Drive. For me, it’s /dev/disk4 but make sure you find the correct one. Alternatively, you can use drutil status and it might give you the right disk.

Once we have the disk, we need to now tell Finder to leave it be. This’ll be because it’ll try to hold a lock on the disk, and cdrdao will complain. Easiest way to do this is

diskutil unmountDisk /dev/disk4

Now we’re ready to pull the data off of our disk. To do this, use the following:

cdrdao read-cd --read-raw --datafile "output.bin" --driver generic-mmc:0x20000 output.toc

This is all self explanitory, except the driver. This is also getting into some hairy disk standards, but the 0x20000 is also pretty poorly explained. Basically, the docs of cdrdao tell us to use it if “the byte order of your audio is weird.” All the games I’ve dumped so far require this option, so it’s probably the nature of the audio format.

Once this completes, you should have two files: output.bin and output.toc.

Most emulators require bin and cue files, so we can easily convert the output to cue with the following command:

toc2cue output.toc output.cue

And now your game is on your computer!

That’s it! I’m hoping to put up a post soon about digging through some games, first of which is a murder-mystery visual novel called Kindaichi - but more on that later.

Thanks for reading!