David Haywood's Homepage
MAME work and other stuff
November 18, 2011 Haze Categories: General News. 26 Comments on Ultimate MAME 0.144a

I wasn’t expecting quite such a positive response from the initial ‘Ultimate MAME’ post, but it seems like a decent number of people really like the single binary concept.

Anyway, there were a couple of issues with the MESS 0.144 source on which it was based, these have since been resolved, as well as several other changes made which may be of benefit to this build. In the 0.144 release things like c64 would just crash due to aforementioned MESS bugs, and the code for some MESS drivers would end up being compiled differently to a standard MESS binary due to it being hidden behind #ifdef MESS defines in the source. Micko has done some work on removing those cases, although he did manage to introduce some additional conflicts in the process which I’ve fixed and submitted a patch for.

Anyhow, what this means is that I’ve done a quick update of the build against 2 newer GIT revisions (MAME and MESS which should fix this handful of issues.

Combined Source (0.144a)
32-bit Binary (0.144a)
64-bit Binary (0.144a)

Also I’ve decided to add some screenshots of various things running in this build :-)

Miner 2049er Island of Dr. Destructo
Left: Miner 2049er (from the C64 software list)
A classic C64 platformer shows that the C64 driver works in this release, simple and popular arcade style gameplay on a home system,

Right: The Island of Dr Destructo (Amstrad CPC, from a TOSEC disk image)
Inspired by the classic arcade Two Tigers but arguably more fun, albeit a bit slow paced like most things on the platform. Always lots going on as you attempt to sink everything from Battleships to an actual island. One of my favourites

Pi R Squared Time Gal

Left: Pi-R-Squared (Spectrum, from TZX tape image)
A unique puzzle style action game on the ZX Spectrum which would have IMHO made a good arcade title. Two directions and a ‘switch’ button allow you to traverse between rotating gears. You must complete 360 degrees of each circle to collect the item inside it, and to finish a level you must collect the parts of a formula in order, while avoiding the enemies. Sound is sparse, but the gameplay is addictive.

Right: Time Gal (Sega CD, from Software List)
The laserdisc arcade version of this isn’t emulated in MAME yet, but the SegaCD version is fully playable. Not a big fan of these FMV games, but some people like them.

Pole Position Sonic The Hedgehog Megatech

Left: Pole Position on the Vectrex, Port of the classic Namco title running on this unique vector based home system, if you thought Vector monitors only existed in fancy arcade games like Battle Zone, think again!

Right: The Arcade Megatech system running Sonic The Hedgehog. The actual rom is identical to the Megadrive / Genesis version, but crippled by a ‘pay for time’ timer. You could install multiple games tho!

Pole Position Sonic The Hedgehog

Left: The original Pole Position Arcade from Namco

Right: The Megadrive / Genesis version of Sonic running in the very same Genesis driver as the Megatech version above, but without the crippling timer system!

The Apprentice Speedy Dragon

Left: The Apprentice on CDI. The CDI might not have had many good titles, and you could probably even make a case against ‘The Apprentice’ rather easily, but it sure is pretty, and much like ‘Hotel Mario’ on the same platform it presents what could have made a pretty decent arcade game rather than the god-awful (yet still better than most of the home output) quiz games which were released on the platform in the Arcades.

Right: Speedy Dragon, from the obscure Super ACan system. Emulation is still preliminary, but it’s an interesting Sonic inspired adventure.

Wec Le Mans Burnin' Rubber

Left: Konami’s Classic Wec-Le-Mans, one of the most solid arcade racing games of it’s time.

Right: Burnin’ Rubber for the ill-fated GX4000 (an 8-bit home console based on the Amstrad 6128, released far too late) Burnin’ Rubber is clearly inspired by Wec-Le-Mans, with the majority of gameplay elements mirroring it closely, sadly it’s so sluggish it’s nearly unplayable, the original Amstrad 464 port of Wec Le Mans was a lot more playable! Still, an interesting experience.

Summer Carnival '92 Recca Aleste

Left: Summer Carnival ’92 Recca for the NES – an early game from Shinobu Yagawa, who is better known for his work at Raizing and Cave. The SH3 based ‘Pink Sweets’ takes it’s bomb mechanic right from this rare classic which is every bit as manic as his later games.

Right: Aleste for the MSX. Nowhere near as manic, but interesting to see actual MSX games running in MESS as the offerings based on the hardware in MAME are all a bit weak.

Parasol Stars Dracula X

Left: Parasol Stars for the PC Engine – Many claim this did exist in the arcades, Taito say it didn’t. There were ‘licensed’ but very crude timer-based PCE systems which could potentially run it, but you may as well just run the real thing without an ugly timer tacked on to reset it when you stop inserting coins.

Right: Dracula X for the PC Engine CD – Just to show that CD support works too

Disney's Aladdin Disney's Aladdin

Left: Disney’s Aladdin, the original classic Megadrive / Genesis Game

Right: Disney’s Aladdin, the original classic Megadrive / Genesis Game but with some ugly hacks applied by Chinese bootleggers so that it works as an arcade game. This one is supported in baseline MAME as a result while the original isn’t due to it being a home only game. A great injustice I say.

Metal Slug Metal Slug 2nd Mission

Left: The NeoGeo MVS classic Metal Slug

Right: Metal Slug 2nd Mission for the short-lived NeoGeoPocket Color, a solid adaptation of the game which due to the premature death of the system never really got the credit it deserved.

Bari Arm Bomb Fusion

Left: Bari Arm (Android Assault) for SegaCD… One of those crazy ‘This should have been an Arcade game’ shooters.. developed by Human who did make a couple of arcade games, missed opportunity for sure!

Right: Bomb Fusion for the ZX Spectrum… This one could easily have been a classic arcade, make contact with the various balls which are falling around the screen to have them follow you, and take them to the crate. You need a certain number to exit the level, but all the time there are bombs ticking away which you need to defuse to avoid the radiation level increasing, all while avoiding the other enemies.

Pac Attack Cosmo Gang The Puzzle

Left: Pac Attack on the SNES, Home Only Release

Right: Cosmo Gang The Puzzle… Somehow the Pacman theme of Pac Attack suits the game mechanics far better, a real shame this was the only true arcade version.

Penguin Land Doki Doki Penguin Land Arcade

Left: Penguin Land for the SMS

Right: Doki Doki Penguin Land Arcade, notice how the Arcade version look a lot worse than the SMS version, it’s actually based on older hardware, so much for that theory that the home versions were always just inferior versions with worse visuals ;-)

Puyo Puyo Kirby's Avalanche

Left: The original Puyo Puyo arcade game, running on SegaC2 hardware (derived from the Genesis VDP)

Right: Kirby’s Avalanche, a SNES exclusive adaptation of the game featuring Nintendo’s well known Kirby character. The Genesis also had a similar adaptation using Dr. Robotnik as the lead character. It’s a shame these adaptations never made it back into the arcades really because they’re appealing in their own ways.

While creating these screenshots I have noticed that things like the inputs in the X68000 don’t seem to be working properly (which is a shame because there would be some nice comparison shots otherwise) I need to check if that’s just a regression in MESS, or if I’m using the driver incorrectly, or it’s something MESS specific which isn’t getting compiled quite right in this build. Likewise I was a little surprised to see the BBC Micro not booting because I wanted to put up a Chuckie Egg shot. I’ll investigate those later.

As you can see tho, the code does a reputable job for a good number of the major systems, and while some of the later ones still need significant amounts of work the MESS component of Ultimate MAME does give a good variety of extra functionality to the base MAME emulator, allowing for easier testing of shared components via. a far expanded library of games using them. There is huge potential in such a combined project!

A lot of people who only care about ‘the games’ write off console versions, and old computers as being trash and simply not worth playing, but each and every library contains a good number of gems which can hold their own against any arcade game in terms of gameplay and graphics, and even when they fail to do that they often have their own unique charm and are in some cases of great importance, as I hope some of the shots above demonstrate. Open your mind :-) For the majority of the things pictured above all the code is actually already in baseline MAME, just not being used to it’s full potential there due to the arcade only policy, to me that’s a real shame and one of the reasons I created this build, what’s the point of writing code, and painstakingly testing if it’s then only ever going to be used to 5% of it’s potential in the primary project?


You can follow any responses to this entry through the RSS 2.0 feed.

Nice screenshots! I had never heard of some of these games and now I want to play them in your Mame version. Recca, Dr Destructer and BariArms look really good

Next Step? Hardware 3D acceleration? *ouch*

From the screenshots I could not guess which were arcade and which were home systems, they are very close.

Maybe you are right, no real difference, just in the mind.

Haze,thank you for your great work,can you post a Mame driver to do list and mess driver to do list for Mame/Mess?

what do you mean with “a Mame driver to do list and mess driver to do list”? do you mean to create xml lists?

the best way to do that is probably to write a perl script that creates the file for you e.g. starting from a cmpro datfile (generated from the file with the ‘create dat’ option)

also, if you create new xml lists, please send them to MESS developers for official addition (with due credits, of course ;) )

He means todo lists for my work on MAME and/or MESS.

To which the answer is no I can’t post them, they don’t exist, I just work on whatever I feel like working on.

What about a frontend where every game is listen once, and for each game you can choose which “version” to play ! Cool ;)

whops, I interpreted the “todo” part as a “create”… cold + flu + no coffee had very bad effect this morning ;)

Great initiative, no matter what mamedev- fuddyduddys traditionalists say. As noted on some message boards though (think it was hyperspin), the name is a bit wonky (feels like ‘generic frontend XIV’) — MACE has a better ring to it, n’est-ce pas? ;-)

Ultimate MAME is more of a description than a name anyway ;-) Really I didn’t put much thought into it, as you can see from all the info files the main binaries are still just MAME etc.

It’s really meant as a minimal code changes ‘proof of concept’ as outlined in the original post, it’s not a true fork by any means, just a way of showing people ‘yes you can do this’ for now.

MACE could be a cool name (from a ‘it fits’ point of view) if it were to be a full-blown fork, although one of the problems MESS has right now is obscurity. I notice a fair number of people using this build have never even considered using MESS before. The ‘MAME’ name is what gets peoples attention, so calling it by something else in a sea of other emulators would probably just end up with people not realising it was MAME when the point is to prove that MAME and MESS are the same thing.

Meanwhile the actual devs still seem to be dragging their heels over this a bit ..

My ‘resolve conflict’ patch, which simply ensures nothing has duplicated names between MAME and MESS got applied, then reverted again (and let’s be honest, having the same name for different things is a headfuck anyway, so renaming them is beneficial regardless of it being one project or two)

Hopefully this can be resolved one way or the other…

Fuck mamedevs then there just jealous bcos you created the better version

Wow… thank you for your awesome work! Please continue development, this is potentially one of the greatest things to happen for emulation in recent years :)

You’ve convinced me Haze that a fork is a bad idea. At this time.

These Ultimate builds are an excellent alternative though. Is it possible for anyone to compile an ultimate build?

This should cause quite a buzz, because it gives emulation fans what they want, which is all games in one easy interface.

I’m one of those who have always given up when trying MESS before. Maybe I’ll give it another shot if I don’t have to mess with lng command lines.

Thanks to you I’ve tried QMC2. It seems like a good replacement for MAMEUI.

I see that QMC2 comes with qmc2-mame.exe and qmc2-mess.exe. I assume with your build we don’t need the mess exe? Does mess have different settings than mame, or is everything such as the HLSL stuff the same?

Thanks for the work! The fact you’re meeting so much resistance to such a logical idea almost guarantees you’re on the right track. It’s going to be a real game-changer/paradigm-shift/insert-cliche-here.


Contact me pls.

The QMC2-mess might actually be more suitable here, due to a lot of the functionality of this build coming from MESS. As I’ve said earlier I don’t actually use a frontend myself but some people can’t recommend QMC enough :-) Anyhow, I imagine the MESS build of QMC has extra functionality for dealing with some of the sides of MESS which otherwise aren’t used extensively in MAME such as the software list support.

As for compiling / putting together, I’ve put up instructions (see the link top left) so that anybody can potentially do one of these builds, although with some ongoing changes in MESS they’re subject to change at the moment, and will need a bit of adapting for the current sources. Once things settle down i’ll update them tho.

Also yeah, don’t give up on MESS quite that easily, I’m hoping that even if I don’t maintain these for every release and every update, and even if MameDev never do get around to providing their own unified binary it at least gets people to realise that MESS is a viable option for a fair amount of stuff, and given that the syntax for using the stuff from MESS is exactly the same here as it is in MESS anything you learn here can be applied there.

Your build is working great on Mac OS X too, I have tested both R-Type on arcade and the MacIIcx driver with Mac OS 7.5.3, and everything is working perfectly so far ;) This merge is obviously what MAME/MESS should tend to. MAME/MESS devs might not agree with this but I think this build will prove to be more and more successful! Thanks for your dedication!

Glad to hear it. Feel free to post Mac OS binaries if you want, I’m sure other people would find them useful :-)

On a different note I know DaffyDuck compiled some MAMEUI builds and posted them elsewhere, but unfortunately those aren’t really functional, so as a warning to anybody who comes across those, they’re best avoided.

Essentially if you want to compile a UI build of this you’re going to have to use the MESSUI codebase, it’s simply more advanced than the MAMEUI one was, and because this build integrates a lot of features from MESS (ie, all of it) you need the actual MESSUI for it to be a useful UI build :-) (otherwise you don’t get the software selection panel, making it impossible to launch any of the console / computer stuff which is tied to the software lists)

Unfortunately due to other changes in the MESS codebase the most recently updated version of MESSUI no longer compiles again ;-)

DaffyDuck wasn’t to know this for his builds, but I guess I’d better give it a mention here for future reference.

Yowza! Mame can do all that? Those guys are sitting on a GoldMine, are they crazy not to have this turned on as default?

Props to you man, they needed a wake up call if they’ve been holding all this back for so long, this puts Mame in a different league

MAME could do MOST of that, not all.

Cute screenshots, I liked them. Cool comparison between arcade and console games.

But, where are the PSX, Saturn and Dreamcast game screenshots comparing to their arcade versions?

*Going to play SMS Penguin Land*

well, in current MESS PSX has issues with controllers in many games (but tons of them load, play intro and reach title screen fine, showing that emulation is pretty decent except for controls), Saturn still complains about some CD operations (but Kale’s latest series of improvements made a lot of games fully playable) and DC is very preliminary…

I fear screen comparisons for these systems would not reflect actual usability of the emulation…

There’s also a Megadrive version of Penguin Land fwiw, although it’s more of a mini-game released via their SegaNet download service rather than a full blown title afaik (it’s still in the softlist and still works fine tho)

and yeah, I held off Saturn/PSX/Jag shots for now, compatibility still isn’t really that good.

For PSX era a lot of the games are running on PSX hardware in the first places, and arcade ports are pretty much using the same gfx even if they have cut frames + rescaling + loading times.. While they’d be good for proving the point of ‘there really isn’t much difference’ they would make for less interesting viewing ;-)

Saturn would be nice because none of the arcade stuff really pushes it to it’s potential, maybe you could argue that RSG does, although to be fair Soukyugurentai does moreso, and already shows many weaknesses in the driver.

Just Wow!

Good job on this proof of concept Haze.

I’m no mamedev, but I don’t really see why mame should not go this route.

Like you’ve said before, a lot of the components that make a machine is shared between systems, does not matter if they’re arcade, console or computers, and even full systems cross the boundries of arcades/consoles so it would make sense to merge the two.

I can see more benifits than anything else.

I guess it’s just hard for some people to adapt to change.

You are a genius!!! thanks! thanks! thanks!
Please, can someone do the MameUI!

Penguin Land SMS is a sequel, not a home version of the same game. The home version of the first game was on SG-1000 and looks identical to the arcade.

By continuing to use the site, you agree to the use of cookies. more information

The cookie settings on this website are set to "allow cookies" to give you the best browsing experience possible. If you continue to use this website without changing your cookie settings or you click "Accept" below then you are consenting to this.