I just moved to the HG builds of mupen64plus, but I have all of my
games compressed and wanted to keep them compressed even while using
the new version, which, best I can tell, lacks decompression support.
So, I wrote a launch script that basically acts as a wrapper for
mupen64plus and will transparently decompress ROMs on the fly. It'll
also pass through all other arguments to mupen64plus, so it can be
used all the time, regardless of whether your games are compressed or
not.
It supports gz, bz2, xz, tar (with or without compression), 7z, rar,
and zip files. It'll also do it's best to verify ROMs, binaries, and
arguments every step of the way, failing gracefully if it finds any
problems.
For anyone interested, you can download the scripts from my website:
<a href="
http://www.legroom.net/public/mupen64plus.sh">mupen64plus.sh</
a>
<a href="
http://www.legroom.net/public/librom.sh">librom.sh</a>
Both parts are needed. The librom.sh script contains all the
decompression functions and is called on the backend; whereas
mupen64plus.sh is that frontend script you'd call directly. It's
split into two parts like this so I can easily reuse the functionality
provided by librom.sh with other emulators.
For the curious, this originally started as a wrapper for ssnes, a
fork of the bsnes emulator that, like mupen64plus, lacks native
decompression support. I decided to split off the decompression bits
so I could reuse it for other projects like mupen64plus. If
interested, you can read some of the original discussion on this here:
<a href="
http://board.byuu.org/viewtopic.php?f=17&t=1941">SSNES Linux
launch script</a>
Feedback welcome.