A member of the PlayStation homebrew community has developed a game for users of PSX emulators to enjoy, released under a permissive software license which allows sharing and re-use. After downloading the completely legal ROM of the game, you notice that the game is provided as multiple discs (folders), each containing a *.bin
and *.cue
file.
This will help you load all of the discs into your emulator, but have a single entry in the game listing.
Each step is explained in English with the corresponding terminal command below it. These instructions should work without problem on any modern macOS — with either Intel or Apple Silicon CPUs. Tested on macOS Ventura 13.5 on both an Intel i9 chip, and an Apple M1 Max chip.
-
A relatively recent version of macOS.
-
Comfortable-enough using Terminal.app (or alternatives).
-
An application which can open
.7z
archives. I can recommend:- The Unarchiver (free)
- Archiver (paid)
-
You have Homebrew installed. (Installation is outside the scope of this tutorial, but it’s pretty fundamental if you do technical things on your Mac.)
- This includes installing the Xcode CLI tools (a much smaller download than the entire Xcode).
-
After downloading the game from the homebrew developer’s website, you find that the game is compressed as a
.7z
file. -
Decompress the
.7z
file.-
Select the file(s).
-
Right-click with a mouse; two-finger tap on a trackpad; or control-click with the keyboard — and then choose Open from the menu.
(Or if you prefer the keyboard, type command-down (
⌘ ↓
) to open files.) -
When you are done, you should have multiple folders containing multiple
.bin
/.cue
pairs.
-
-
Follow the instructions in “Converting your completely legal, disc-based, bin/cue ROMs for PlayStation emulation into compressed, single-file CHDs using macOS”
-
When that’s done, each folder will have a
.bin
,.cue
, and.chd
file. -
Move all of the
.chd
files into the same folder, then cleanup the original folders and.bin
/.cue
pairs.
-
Install
coreutils
andfindutils
using Homebrew.NOTE:
findutils
may already be installed if you converted the files to.chd
format.brew install coreutils findutils
-
In Terminal, move to the directory which contains the directory, which contains your
.chd
files. In other words, move to the grandparent directory of your.chd
files. In the screenshots above, this is the Legal ROMs directory. -
From that grandparent directory (e.g., Legal ROMs), we will use
gfind
to look inside the parent directory (e.g., Random Game that is a Legal ROM (USA)), find all of the.chd
files inside that directory, usegsort
to sort them the way humans sort them, then usegtee
to write to write a new.m3u
file in the grandparent directory.gfind "Random Game that is a Legal ROM (USA)" -type f -name "*.chd" \ | gsort --ignore-case --human-numeric-sort \ | gtee "Random Game that is a Legal ROM (USA).m3u"
-
When that’s done, you should confirm that your directory structure has the
.m3u
file as a sibling (i.e., at the same level) of the folder which contains the.chd
files. -
Verify the contents of the
.m3u
file. You can easily do this with QuickLook.-
There should be one line per disc.
-
Each line should start with the folder name, then
/
, then the.chd
filename.
Random Game that is a Legal ROM (USA)/Random Game that is a Legal ROM (USA) (Disc 1).chd Random Game that is a Legal ROM (USA)/Random Game that is a Legal ROM (USA) (Disc 2).chd Random Game that is a Legal ROM (USA)/Random Game that is a Legal ROM (USA) (Disc 3).chd
-
NOTE: If someone knows how to take a screenshot in Garlic OS (and not RetroArch), please open an issue to let me know. Thanks!