Guide to running HBMAME games in Retropie
-
It's a real shame that (a) MAME doesn't support hacked games, and (b) nobody's ported any versions of HBMAME over to Retropie, because in amongst an avalanche of rubbish there are some really cool games on there.
The good news is that it IS possible to run a large percentage of HBMAME games on the Pi, although it takes a little (sometimes quite a lot of) effort.
I've put a lot of that effort in already, but sadly I can't just link you to the results in a handy download because of the forum's rules about ROMs, so here's a short guide instead.
First, here's a sample list of some of the games currently working perfectly on my Pi 4 to whet your interest:
If you want to set up HBMAME games, start off by creating a folder inside your arcade ROMs folder. Call it anything you like - HBMAME or Hacks or whatever.
1. THE EASY STUFF
Not featured in that list, because they're in a folder of their own, are all the good Donkey Kong hacks - Barrelpalooza, Spooky Remix, Christmas Remix, Into The Dark, Twisted Jungle and more.
The happy news is that if you download the FBNeo ROMset, all the Kong hacks are natively supported by FBNeo and will just run straight away as is. You don't even need to put them in your new hacks folder, because they have their own filenames and they won't interfere with anything else.
2. THE SLIGHTLY TRICKIER STUFF
Much of the above comes into this category. These are games found in the HBMAME ROMset, which have filenames not supported by any Retropie emulator. Let's take Vectipede (a rather nice minimalist Centipede reskin in the style of Geometry Wars crossed with the Atari VCS port) for our example.
If you download HBMAME, Vectipede comes as a file called vectiped.zip with these two files in it:
vectiped.211
vectiped.212(Depending where you downloaded the ROMset from, they may instead be in a folder called vectiped inside the merged centiped.zip ROM.)
Most HBMAME games are based on the MAME2003 (0.78) ROMset, so let's go and look at Centipede in there.
centiped.211
centiped.212
centiped.307
centiped.308
centiped.309
centiped.310You can figure that out, right? What you want to do is rename the two Vectipede files to centiped.211 and centiped.212 and copy them into a new zipfile with the other four Centipede files.
(THAT FILE MUST BE CALLED centiped.zip OR IT WON'T WORK, so be careful you don't overwrite your original Centipede ROM with it.)
Pop that zipfile into your new hacks folder, restart EmulationStation and it'll show up as "Centipede (Set 1)", because Retropie has no idea it's about to run a hack. You can then rename it in EmulationStation but DO NOT CHANGE THE NAME OF THE ACTUAL ROM FILE.
For the bulk of games, this method will work. It's usually very obvious to spot which of the files from the hack need to replace which files in the original ROM.
One quirk, however, is that alert readers will have noticed that the list in my picture has (for example) two vector-graphics Centipede hacks - Vectipede and Vectorpede (which is a version with the normal Centipede graphics as outlines, whereas Vectipede also changes their shapes).
Obviously we can't have two files in the same folder called centiped.zip, and we can't rename either of them, so you'll need to create a separate subfolder for one of them. You can't tell from the pic because of the lighting, but I have Vectorpede in its own subfolder.
Please note that the Retropie will run every file in a folder (including those in subfolders) which has the same name with the same emulator, so you can't, for example, run Vectipede with MAME2003 and Vectorpede with MAME2016. They both have to use the same emulator.
(If you can't figure out why you'd want to use different ones anyway, there's a whole long story involving Astro Blaster that's just too complicated to go into here.)
The method above will get a solid 90%+ of HBMAME games running. You may wish to stop reading at this point to avoid a headache.
3. THE HORRIBLE STUFF
There are unfortunately a whole bunch of hacks where putting together the right ROMset and the right emulator is an absolute nightmare, which is why it's a shame I can't just link you to the fixed files. Sometimes the HBMAME ROM will seem to bear no resemblance at all to any known MAME ROMset, or even appear not to exist at all.
For our example here we'll use Vector Super Zola Pac Girl (VSZPC), a really fun hack of Ms Pacman that's actually based on the mspacmab.zip ROMset. If you download a non-merged HBMAME ROMset, VSZPG exists as a ROM called zolavect.zip with these files in it:
Whereas if you download the merged HBMAME 0.238 ROMset, it isn't there at all. There's no folder in the merged set for zolavect, although it appears in the HBMAMEUI frontend and somehow runs perfectly.
It claims to be using these files:
But the real problem is that (to cut a long story a bit shorter) the ROMs the Retropie wants in order to run the mspacmab.zip ROMset are these, which are in fact the MAME2003PLUS ROMs and totally different from the MAME2003 ones:
And plainly, that doesn't match up. What seems to have happened is that in VSZPG, the six boot[x] files, totalling 24KB, seem to have been squished into two files called 1.bin and 2.bin, also totalling 24KB.
I haven't found a solution to this yet, but what I have managed to do is patch together all but one of the features of VSZPG using ROMs harvested from other hack sets.
So by starting with the basic mspacmab.zip and then taking the msvectr.5e and msvectr.5f files from the msvectr set and renaming them to 5e and 5f, I got the outline graphics.
Then I took zolamaze.5 and zolamaze.6 from the zolamaze set and renamed them to boot5 and boot6, which got me the modified maze with no tunnels.
Finally, by taking the fastplus.2 file from the fasthear set and renaming it to boot2, I got the permanent high-speed feature of VSZPG.
The only thing now missing is the 1-minute countdown feature, the code for which appears to be located somewhere in either boot1 or boot3, but if I copy those in from any of the other sets with the timer feature (eg zolaslow), the game hangs with a black screen during loading.
(The same happens if I try to run those sets by themselves, so it may just be that no Retropie emulator supports whatever code produces that feature at all.)
VSZPG is the only thing that's totally defeated me so far (although getting Vector Breakout, the astonishing Tempest hack, running was hell on toast). I include the above, though, to give you an idea of how to go about getting the unfriendlier hacks working - look at different MAME ROMsets, and the ROM files of other hacks with similar features, and see if you might be able to salvage things that'll solve your problem. 99% of the time you'll get there with a little trial and error.
(I've got a version of VSZPG with three out of four features working, so it wasn't a total waste of time - you should never really be falling foul of the countdown anyway. But if anyone can crack the mystery I'll be impressed.)
Mostly, though, getting HBMAME games working is pretty straightforward and quick, and there are at least 60 that are well worth the effort. Give it a shot.
-
@jimmyfromthebay FWIW, a few years ago i wrote this for anyone who wants to port HBMAME hacks to FBNeo : https://github.com/libretro/FBNeo/issues/7
-
@barbudreadmon said in Guide to running HBMAME games in Retropie:
@jimmyfromthebay FWIW, a few years ago i wrote this for anyone who wants to port HBMAME hacks to FBNeo : https://github.com/libretro/FBNeo/issues/7
Sadly I don't understand a single word of that :D
But hopefully a few more will make it into FBNeo at some point. It's a shame it doesn't adopt MAME's "give it a bash anyway, what's the worst that could happen?" approach when it finds the wrong checksums in a ROMset, or a whole bunch more hacks would probably work now.
-
@jimmyfromthebay said in Guide to running HBMAME games in Retropie:
It's a shame it doesn't adopt MAME's "give it a bash anyway, what's the worst that could happen?" approach when it finds the wrong checksums in a ROMset, or a whole bunch more hacks would probably work now.
You can run romsets with incorrect crcs in FBNeo using a special procedure : https://github.com/libretro/FBNeo/tree/master/src/burner/libretro#i-patched-game-xxx-and-cant-run-it-why-
What's the worst that could happen ? Maybe the false reports i was getting every day due to bad romsets that somehow loaded when i allowed that ?
-
@barbudreadmon said in Guide to running HBMAME games in Retropie:
@jimmyfromthebay said in Guide to running HBMAME games in Retropie:
It's a shame it doesn't adopt MAME's "give it a bash anyway, what's the worst that could happen?" approach when it finds the wrong checksums in a ROMset, or a whole bunch more hacks would probably work now.
You can run romsets with incorrect crcs in FBNeo using a special procedure : https://github.com/libretro/FBNeo/tree/master/src/burner/libretro#i-patched-game-xxx-and-cant-run-it-why-
Ooh, excellent. What does "SYSTEM_DIRECTORY" mean?
-
@jimmyfromthebay that's the bios folder
-
@barbudreadmon Thanks. So maybe I'm doing something wrong here. I'm trying to run the 1.7 version of the Donkey Kong Barrelpalooza mod, which has the filename dkongbp1.zip but isn't recognised by FBNeo (I haven't updated in a few weeks, maybe that's changed).
I've copied the 1.7 files into the 1.6 version, dkongbp.zip, which works beautifully in FBNeo. I've put the altered file in my normal MAME ROMs directory, and also put a copy of it in /home/pi/RetroPie/BIOS/fbneo/patched.
But when I try to run it I just get the usual error message - "This fileset is recognised but the ROMs are wrong" - and it won't run. Where am I messing up?
EDIT: Ah, I figured it out. FBNeo crashes as soon as it finds a single missing ROM, so if you look at RUNCOMMAND.LOG and replace that ROM, it'll still crash if there was more than one missing, because it only tells you about the first one. (Unlike MAME, which tells you ALL the ones you're missing.) Eventually I sussed that dkongbp wants all of the files from dkong, which it didn't have because I put it in a different folder to my other Kong hacks, because obviously I couldn't have two files with the same name in one folder. All sorted now, ta for the help.
-
@jimmyfromthebay said in Guide to running HBMAME games in Retropie:
it only tells you about the first one
Indeed, i never noticed since i rarely get those errors, i'll change that.
-
-
@jimmyfromthebay said in Guide to running HBMAME games in Retropie:
crashes
Also, please don't use that word for an emulator that is displaying an error, this is misleading, except if FBNeo really did crash ?
-
@barbudreadmon Well, we can quibble over semantics - to me you only display an error message if you've crashed, to explain the reason WHY you've crashed, but I appreciate you may regard it differently... :D
-
@jimmyfromthebay https://en.wikipedia.org/wiki/Crash_(computing)
=> FBNeo is functioning properly, and didn't exit abruptly, so this is not a crash, the only issue here is that you didn't follow the instructions about verifying your romsets
-
@jimmyfromthebay improved error messages yet again, and added support for
dkongbp1
-
@barbudreadmon Ace. I'm still fascinated by some of the quirks with Ms Pac-Man in particular, so I tried the new method to see if I could get Super Zola Pac-Gal working, and it did exactly the same as it does on every version of MAME - hung with a black screen during boot. There's clearly something about that timer code that the Raspberry Pi just does not like.
I also couldn't get Pac-Man Unleashed (actually another Ms Pac-Man hack despite the name) to speed up by replacing boot2 with the fastplus.2 ROM, although that's worked with everything else I've tried and though I tried building the file up from every direction. (And despite the fact that it's certainly capable of running with a turbo Pac, because it does in HBMAME.)
And when I tried to run Pac-Man X, a cute high-res mod, the "put the patched ROM in the fbneo/patched folder" trick just flat-out didn't work at all - FBNeo quit with the "wrong ROMset" error rather than trying to run it and see what happened.
I find all this stuff a really fascinating puzzle to solve, but Super Zola really has me perplexed.
-
@jimmyfromthebay said in Guide to running HBMAME games in Retropie:
rather than trying to run it and see what happened.
Yet this is precisely what putting roms in the "patched" folder does. Bad romset are likely to fail working, this is why i don't allow users to load them without going through the "patched" folder method.
-
@barbudreadmon said in Guide to running HBMAME games in Retropie:
Yet this is precisely what putting roms in the "patched" folder does. Bad romset are likely to fail working, this is why i don't allow users to load them without going through the "patched" folder method.
No, that's what I'm saying. I did use the patched folder method for both games, but got totally different results. For Pac-Man Unleashed (a Ms Pac-Man mod) it tried to run it but the game hung on booting. For Pac-Man X (a Pac-Man mod) FBNeo didn't even try to run it, it just gave the "wrong ROMset" error.
-
@jimmyfromthebay said in Guide to running HBMAME games in Retropie:
For Pac-Man X (a Pac-Man mod) FBNeo didn't even try to run it, it just gave the "wrong ROMset" error.
Putting files in patched allows to ignore crc, you famous "crc doesn't match, give it a try anyway", but romsets still need to be complete, meaning each file must exist with the correct filename and size. I don't know what pacmanx is, but it's obviously not meant to run on a pacman cabinet if filenames and sizes aren't matching.
Edit : i did some research, pacmanx's gfx roms sizes don't match, they are 4 times the normal size of pacman gfx roms. You can't load roms that aren't the right size, even if you could the hardware wouldn't know what to do of them so you'd still have to rewrite the emulation code, because they aren't the digital representation of a pacman chip anymore.
-
-
-
-
@barbudreadmon
What would be the best way to identify hacks that FBNeo supports?
I see<comment>Hack</comment>
in the dat file, but just wondering if there was a more accurate way of doing it. -
@Floob said in Guide to running HBMAME games in Retropie:
I see
<comment>Hack</comment>
in the dat file, but just wondering if there was a more accurate way of doing it.There isn't,
comment
should have the information you seek, except if the information wasn't properly set -
@barbudreadmon
Thanks, I'll check out some hacks based on that.
Contributions to the project are always appreciated, so if you would like to support us with a donation you can do so here.
Hosting provided by Mythic-Beasts. See the Hosting Information page for more information.