It’s all in the title. And before you ask “why would you even want to do that”, it is mainly because of reducing filesizes from a game, which might not look like THAT much on its own, but could easily stack with multiple games that could benefit from this trick.
And yes, I know that this could be a non-issue if you do have enough space to make sure you keep the original BIN/CUE files or just stick to CHDs if your emulator supports it (which at least Duckstation does, but vanilla Mednafen, which I use for Saturn, doesn’t), but if you have a small hard drive/remaining space and/or would like to optimize that at the cost of file integrity (in other words, you don’t care about whether it is a lossless copy or not of whatever you want to play), then this can be useful for you.
Oh, and one unintended benefit is that, if you have done it properly and it works as it should, you could be able to replace the OGG files that likely contain game music (which I’ll explain in a bit) with whatever you want. In other words, easy custom music for the games you want; as long as they use Redbook Audio/the OGG files for in-game music.
In any case, here’s what went down on this story to get done.
A quick briefing about why I tried this
Not all, but a lot of PS1 and Saturn games, can be found in the form of multiple .bin files and a .cue to load them. Chances are that any game that can be found in this form is because it uses Redbook/CDDA Audio for the in-game music. In other words, the other bin files would represent Audio tracks burned in the game disc to be played back by the game, which would also allow these to be played in CD players (though there’s a reason why these games include a warning to NOT play Track 1, which is supposed to be the data track). It was a pretty easy way to setup music in PS1 and Saturn games, as well as easy to access and had their own tracks separate from the game data that could allow the quality of these be uncompromised.
It is one half of the reason why some PS1 games actually allowed you to swap in your game disc with your own music CD to play this music in-game (the other half being that these specific games load the playable portion, which means that swapping the CD is safe as long as you swap in the game disc back after finishing a race or match or whatever), as the game would play the audio tracks in whatever is inserted. Ridge Racer and Vib-Ribbon are some of the few special cases where, for Ridge Racer it allows you to keep the swapped audio CD in at all times after loading the game since it loads the entire game in memory, while Vib-Ribbon has a specific mode to swap in your audio CD to play the game with your own music.
In any case, now that it is clear on what these could have been useful, now it is time to go on the…filesize details.
As I said, since these would be stored as separate audio tracks in the disc, these are provided as such without any compression. And for some games, the ratio on how much space the game data itself compared to how much the uncompressed audio tracks do is pretty crazy. Coincidentally, some of the examples I could give on this are the first three Ridge Racer games and Wipeout XL, but in this occasion I’ll show you with the Saturn version of Daytona USA.
Those 50MB .bin files are specifically the audio tracks for the in-game music (both normal and karaoke), which is why they are that big considering their length and uncompressed state, while the rest are smaller because they are menu music or jingles…but you might also notice that the Track 01.bin file is just 9MB.
So yeah, the game itself is actually REALLY small, and a lot of the filesize is down to the music included. Now, while the size of game data can vary from case-to-case (Fighting Vipers for Saturn is 80MB in data), you can see that im any cases where this applies, just the music can fill up quite a bit of space, which again, either if you have many of these or if your remaining space isn’t that much, can stack up quite quickly and (if you don’t mind the idea of turning your uncompressed music into .OGG file) somewhat unefficient storage-wise.
I know that CHDs exists and that they DO help with filesizes overall while keeping complete integrity of the data (even getting to compress a bit the audio tracks…though not as much as this method), which is why I have stuck to using those in Duckstation as I moved to that emulator…but (at least for me) since the standalone version of Mednafen doesn’t support CHD (and setting up SSF is a bit cumbersome now), Mednafen supporting this BIN/CUE/OGG format is really convenient for keeping my Saturn fix efficient in size.
As shown above, Daytona USA for Saturn in that original format would be nearly 400MB uncompressed, with almost all of that size being taken up by uncompressed music. But what if I convert that into smaller OGG files?
While the music might still be the biggest part out of the game, it doesn’t take as much in total anymore, which is pretty nice! But before you go and try to throw all your .BIN files into an .OGG converter, know that these .bin files are not standard music files at all, as well as how you also need to modify the .CUE file to account for these…
…So let’s get to explaining that!
How to do this
First thing you’ll want is something that can load the CUE/BIN files, detect the audio tracks and allow you to extract them as OGG music files. PowerISO is what I ended up using for this, as while it has a limitation of only saving 300MB disc files when used as the free trial…this will be absolutely no convenience for what we need to do here (as we aren’t going to save any image files; just extract stuff from it).
So let’s say that I…whoops, accidentally deleted my already finished BIN/CUE/OGG of Daytona USA for Saturn…well, I’ll just open the CUE file for the game with PowerISO and be met with this.
What you would want to pay attention to is to the lower area with the .cda files: Highlight all of them, right-click and then select the Extract option.
Note that the Output file name format has to be manually changed by you: If, for example, as shown on the folder, your other track filenames look like this:
Daytona USA (USA) (Track 02).bin Daytona USA (USA) (Track 03).bin Daytona USA (USA) (Track 04).bin Daytona USA (USA) (Track 05).bin
Then you should put the following:
Daytona USA (USA) (Track <Track Number>)
So that the results are the same names as the .bin files…but in .OGG format.
If this and the extraction were succesful, there’s just one thing that needs to be done: Modify the .CUE file to recognize these .OGG files.
As you can see, there’s a lot of BINARY files listed, with all except TRACK 1 reading that they are for audio. You’ll have to change the “.bin” in these listed audio tracks to “.ogg” and change their BINARY label to OGG.
It should look like this:
If you modified the CUE file properly and the OGG files are present in the folder, now you should be able to load this in to Mednafen and play! The game should work exactly as it should, music included, but the filesize will be way smaller…and as I said, you could also get to replace these .OGG music files created from the game disc with your own music if you want to!
As I said, this is only really intended for standalone Mednafen, since it has support for this BIN/CUE/OGG format in first place (likely inherited from supporting this format but for other CD-based consoles, like the Mega CD), and I have no idea if other versions of Mednafen still provide support for this specific feature. And like I mentioned before, this is likely not going to be compatible with other PS1 (Duckstation, ePSXe if you still use that) or Saturn (SSF, YabaSanshiro) emulators.
But hey, you likely are already comfortable enough with Mednafen for Saturn if you are reading this in first place 🙂
To end this, I’m leaving you with the recommendation of the MedSat frontend (which you can find scrolling down here) if you wanted to use Mednafen exclusively for Saturn games. It is pretty small but makes for a convenient way to launch the games while listing them in a neat list. Make sure to hit on “Save profile” if you want to have video/audio settings configured on the frontend to save for the selected game!