PS1 New PSX .bin file Conbining Software!

ADBeta

Member
Recently built some software to combine multi-bin files into a single .bin file.
I know alternatives exist, but they are either slow, complex, RAM heavy, too-powerful or all of those combined.

My program can run on 32 or 64bit hardware, Written in C++ with a customizable RAM footprint, at the moment it only needs 100MB RAM, and it can dump some of the most demanding games faster than the alternatives.
(Rayman takes 12 seconds on my machine, the alternatives take from 20sec to a minute for all 51 TRACKs).

It's currently in early release with windows version coming soon, get in touch if that is something you want to test out. Hopefully there's enough response for me to keep finalizing the program.

Hopefully someone finds some use for it. Let me know what you think :)

Check it out on github: ADBeta psx-comBINe (Can't post links)
 
Hopefully someone finds some use for it. Let me know what you think :)
And less than two weeks later...

Wow, your tool really saved my butt! I was going crazy because I couldn't get Ridge Racer to play music properly (tracks stopping during races, no music during menu/victory sequence/record entry). No other Linux tool I used could create a totally-functional cue files; they would half-work, at best. Now I can chill out to Ridge Racer menu music.

Thanks!
 
Hey, No problem. Glad it worked so well for you. If you know anyone who would also get use out of it, there's now a Windows exe in the release files, leaving a star on github helps a ton too :) The more people the better.

So glad it worked for you and I could be of some use. All the best in future :)
 
Here is the direct link:
https://github.com/ADBeta/psx-comBINe

Take in mind that *.cue can contains REM lines (comment lines, like in *.bat), on which most of CUE parsers crashing. Worth to add in IMO in next version.

psx-comBINe is a program to combine/merge multiple .bin files from a psx .cue
.bin CD-ROM dump, and produces a single .bin file and .cue sheet.
What do You mean by "multiple .bin files"? A disc image with separate tracks? Like ReDump way?

and I find it faster and less error prone when writing to cheap, low
quality CD's.
Single *.bin or split, doesn't matter. All data will be written in exactly the same way. Until You decide to use TAO which You never should do with PSX games case (must be RAW-DAO).
 
Couple of seconds difference is a very minimal factor for most tools that can do this in under a minute.

Can you make side-by-side video comparison of your app vs. CDMage? I'm sure they're about equal on high-memory PC

Also @Romanenko I thought you was making .PPF patch for it? AFAIK from what people say on the forum it is one of the most fail-proof methods for fixing broken CDDA tracks in PS1 games... I can vouch for that because I was having similar issues with the PS1 game "Ninja: Shadow of Darkness" where I had to combine multibins with CDmage, then convert singular .BIN into EBOOT.PBP using Popstarter GUI, then inject original multi-bins into that EBOOT.PBP using old and abandoned CDDA Enabler, then repack that PBP as PS1 classic to finally get it installed/working... and believe me, you WOULD NOT want to do it that way, it is a serious headache.

https://www.psx-place.com/threads/solved-ninja-s-o-d-for-ps1-on-ps3.23583/ <- In remembrance of that mental anguish.

After struggling with it twice, krHACKen slapped me with a .PPF which fixed it all & blew CDDA Enabler out of the water for me.
 
Take in mind that *.cue can contains REM lines (comment lines, like in *.bat), on which most of CUE parsers crashing. Worth to add in IMO in next version.
(thanks so much for posting the link)
I tested my program with a few REMs, not enough to be considered true testing. It will throw an erroneous warning but it will continue (as of v1.0.0 that might be different) - I'll be sure to add it to the support list in the parser section. My parser is designed to handle all the GNU recognised CUE file MODEs, although PSX and Sony only used MODE2 and AUDIO, I support all the official modes.
(no shade being thrown) most people who hobby make software like this work on assumption that the input will always be more or less the same. I purposely researched other software to see what errors could crop op in general to avoid most of them - same story with more than 2 INDEX per TRACK, I have never seen a CUE with more than 2 INDEX for the PSX but I included support up to 99 for the sake of meeting spec. It can take the output of itself and still handle it correctly, since it is still a valid CUE file.
That being said I do plan on adding REM support with direct output at the right place.

What do You mean by "multiple .bin files"? A disc image with separate tracks? Like ReDump way?
I don't know what "ReDump" is, but as you probably correctly assumes it's one CUE file many BIN files. I don't know of a better way to describe it. i made this project just cause i wanted to get some PSX games working with POPS and all the main software was painful to use - I'm not super well versed in what the PSX scene call stuf like multibin files.

Single *.bin or split, doesn't matter. All data will be written in exactly the same way. Until You decide to use TAO which You never should do with PSX games case (must be RAW-DAO).
In theory I agree but there's something f***y about multiple bin files while live burning to a CD in my experience. Some small weird error happens than it can't figure out how to handle that as it goes for the next CUE TRACK. Could just be in my head, granted, but I would say try it out if you can spare the time and CDs lol, It's weird how single .CUE .BIN pairs are just more reliable to me.

Can you make side-by-side video comparison of your app vs. CDMage? I'm sure they're about equal on high-memory PC
Yeah I intend to, wanted to see some interst first which I guess I have gotten lol. Currently working on a overarching library called CLIah (for CLI managment. also on github) for multiple projects including this one. I want to make a full video about explaining everything, but I don't see psx-comBINe as finished enough yet. Soon though, especially if I have motivation like this lol.
For your sake though, I tested my software cs binmerge vs isobuster vs cdmage.
CDMage on windows and WINE (linux) is very slow, mostly because it's either C++ or probably C# and it uses Windows specific IOP methods, so it's quite slow, last touched in 2002 so very oldschool, not bad but a touch slow on both systems. Totally fair considering the size and scope of it vs my project (CDMage average 20sec, mine was 12 sec. All these basic speed tests done with Rayman cause 52 tracks is painful for the software)
binmerge is written in python, it works fine but is just classic python unoptimised, not that you can optimise python as much as other languages anyway, but it makes some weird assumptions that cost it stability and python is just slow. 18secs on my tests

My own code on Windows is a bit slower than on Linux. Partly due to unfinished porting work, and because Windows IO Handler is very weird and slow in its own right. Linux has a near full speed access at any given time, with any given data size and has little latency getting the file ready.
 
@SKEPTiCK I was looking into making the .PPF if I had to, but the .CUE psx-comBINe generated fixed the music problems I was having. There's 1-2 seconds of lag when Ridge Racer loads the CDDA track for a corresponding section, which I believe could be ironed-out with a .PPF, but that's negligible to me. Far better than tracks refusing to load altogether.

As they say: If it ain't broke, don't fix it :encouragement:
 
That being said I do plan on adding REM support with direct output at the right place.
Thanks.

I don't know what "ReDump" is
A group of people who collecting proper disc game dump checksums for various of platforms. They chose to reading tracks separately and that's why many people have issues with CUE files which are not fully supported by all software.

I don't know of a better way to describe it.
CD disc layout can be split into Sessions and sessions into tracks. So for me better nomenclature is "multi track" disc images. But TBH both terms are horrible and misleading. :) Also it is possible to make multi-session disc for PSX, does Your app support such CUEs? It is against PSXCD standard but works. Just curious. ^^"

In theory I agree but there's something f***y about multiple bin files while live burning to a CD in my experience. Some small weird error happens than it can't figure out how to handle that as it goes for the next CUE TRACK. Could just be in my head, granted, but I would say try it out if you can spare the time and CDs lol, It's weird how single .CUE .BIN pairs are just more reliable to me.
Linux software for making images and writing/reading discs are piece of shit unfortunately. So I believe, some app doesn't support fully CUE spec (which is no just one but many, this format was designed to not dumping disc TOC for some reason, and it is why Clone/Alcohol/Blindwrite has replace it by their own CCD/MDS/BWT).
 
So for me better nomenclature is "multi track" disc images. But TBH both terms are horrible and misleading.
Technically my .cue output has multiple tracks, as that is how the CUE Sheet standard works, just one overarching file instead of multiple. I suppose multi-track is a half decent wording for it but multi-file or multi-bin would be better.

Also it is possible to make multi-session disc for PSX, does Your app support such CUEs? It is against PSXCD standard but works. Just curious.
As long as it's in .CUE format and the original works (but has multiple bin files) then my app will honour the layout, track index, etc. It only supports .cue as this was the thing getting in my own way, I don't see many people using multisession, never heard of multisession PSX games, only CDRWs being used multisession - but if there was enough demand I could make a sister application or bake it into psx-comBINe - if the input file is a .CUE, no matter what it is, it should have some level of support. While it's called *psx*-comBINe, it can actually do any cue sheet + bin manipulation, was easier to make a generic support system then to limit it to an expected input.

Linux software for making images and writing/reading discs are piece of shit unfortunately.
I tend to disagree. Linux apps are much more bare-metal but that's great in some use-cases, it's like a chainsaw, you need to have good reason to use it, and if you do it wrong you lose an arm lol -
That being said, I've noticed less crashing and stalling, and much less failed discs on both Windows and Linux when using single .cue .bin pairs. Not that my software is anything special, CDMage will do the same thing, but mine is faster and easier to use - But since I started messing with CD ROMs, especially PSX, something about multi-bin dumps just causes endless problems for burning.
Like I said, I think it has something to do with the change over from one TRACK, which by definition is a new FILE in multi-bin dumps, whereas in combined dumps, there is only a TRACK to swap, no extra IOP to cause issues, and it seems to prefer not having to switch in and out new binary files to read data from. Being a very well experienced dev with file handling, I can see some serious fault introduced by having to switch in and out new files. Hell I came across some while making psx-comBINe lol

(Btw if you haven't got the joke yet, the program is psx - com .BIN e (combine bins). To explain what the program is for in its name)
 
Update:

I finally have gotten around to working on this project again (was busy with other work, partly getting a library called CLIah finished for Comman Line Handling).

As requested by Berion I have implemented REM support, but for the moment it is just handled as a valid LINE but nothing is done with or about it, it just doesn't crash the program. I would like some input on how you would like it handled so I can work on getting that implemented too.

I have created an exe of v1.0.1 (in the release files) which is in beta, and not up to date as of currently but would like some input on how well that works and if it has any bugs from Windows users.

I would also like general input on the project, ideas etc. Many thanks for reading and being interested, please pass it on to anyone who may also be interested and (self promotion is gross but hey) promote my GitHub with a star, or follow etc, it would really help the project and me.

Ta!
 
Very nice. There is a lack of tools to manage bin and cue files.

Have you thought about adding extra features?
A couple of nice features I think would be :

1, create a cue from scratch from a single bin/img. Useful if you just have a single bin/img and want to generate a barebones cue for it.
(there are trivial tools and even websites that do this, but it would be nice to have all cue management in one single tool)

2, Create a cue from scratch if you have a bunch of bin files but no cue file.

2 could even be expanded on to detect and convert ISO files into "CD-ROM XA mode 2 form-1" that psx mode2 tracks should be in.
(I can give you software that does this conversion)
or even convert "mp3" files into proper CDDA tracks before merging.

Something like:
./psx-comBINe track1.iso track2.mp3 track3.flac -o basename

Then it automatically converts track1 from ISO to XA mode2, and it converts the two audiofiles to the proper format and then merges the three bin files and creates a cue file for them.

That would be really cool and really useful I think.
 
Back
Top