12/17/13

An Accumulation of PSX

So the PSX was a cool console system from ages ago with actually decent games. While thinking to myself "dam, I would like to play some of those old games", I thought I would check up on the emulator sort of things that I almost never pay attention to.

Apparently there are quite a few emulators for the playstation now, though really I could care less about most of them besides PCSX-R because who doesn't love stuff that is constantly being updated. That said, I'm a lazy guy so in my case, I just stick with retroarch anyways. Unfortunately the point of this post isn't really for recommending anything (though if I had to recommend, retroarch is it) and instead I'm going to be talking about psx iso compression because "first world problems" the isos are fucking big.

There are multiple ways to reduce the size of the iso and some can be compounded to reduce the iso further...but for the most part, the methods consist of either:
a) Remove shit from the game
b) Use algorithms to compress

Option (a) obviously has issues because well shit, you are removing parts from the game, that is a stupid idea and lame. Of course the stuff that would be removed would be things like the animated cutscenes, music, sound effects, voice acting, and whatever else you can squeeze out without breaking the game, but you are just cutting yourself short of the gaming experience. Another variation that the internet has apparently come up with is to take out the XA tracks and convert them...which kind of works I guess...but that is extra work I don't want to do.

Option (b) is pretty much the way everyone goes about their business, and with reasonable simplicity. Aside from the various kinds of formats that you might find the PSX rom in (.bin/.cue, .img/.ccd/.sub, .iso, etc), there are the compressed formats like .bz/.bz.index, .z/.z.index, .cbin/.cbn, .cso, .ecm, etc. Out of those, I find that .bz is probably the most convenient in terms of storage and usage. Compressed bin is a little less compressed that .bz and .z of course shows similar results, though luckily all can be run directly (though you might need to use mooby's cdr plugin). I'm not sure if any emulator supports .cso...and ecm can't be run either. In terms of straight compression, 7z wins, but can't be played from any emulator without extracting, which pretty much just leaves bz to be the best option. bz seems to have the highest compression ratio while still being playable in emulators without having to extract...And then we come to the strange part.

So after coming to the conclusion that bz is obviously the best choice out of the above, there are a number of issues with that choice, mainly being that it is rather off the beaten path. To utilize the .bz format, you must use mooby's plugin, otherwise it's completely useless. Using those sorts of plugins with retroarch is less than readily apparent (and by that I mean I don't have a fucking clue how to use plugins with retroarch). Thus, we look towards a different format (funnily enough, one of the formats I didn't list above) which is .pbp, commonly seen in the psp scene. As it turns out, the PCSX-ReARMed core surprisingly supports .pbp format which works as you would expect. Not only that, but the size is actually smaller than the bz format, which makes everything better...and of course, you can play it without decompressing manually. The only real flaw comes in when you DON'T use retroarch or PCSX-R because aside from an actual PSP, there isn't really any other emulator out there that can use the format (not that I actually tried hard searching).

In the end, the verdict of best format goes to .pbp format (props Sony, at least something was done decently) and my recommended emulator goes to PCSX-R for Windows and Retroarch for everything else because the Windows package of Retroarch doesn't come with PCSX-R...I'm sure there are tons of people who would die supporting mednafen or epsxe or no$psx or whatever, but really mednafen is a picky derp of a program, epsxe isn't exactly the most open of programs, and who really uses no$psx (I've never tried it, but hell the dev is a genius, so for all I know it's performance could be god tier).

On a completely separate note, syncing my .srm file sounds like a spectacular idea so I can play the game on my computer and then play it on my phone or my laptop without too much of a hassle of worrying about my latest save...only problem is that I'd have to sync all of them unless I decide to symlink all of the separate .srm files to a single .srm file and then sync that file instead...and then do the same to my other devices :/. To be honest I would rather all of my saves be in one file (yeah yeah single point of failure, but it's not like the PSX wasn't like that).