David Haywood's Homepage
MAME work and other stuff

UME 0.146 (Universal Machine Emulator)

May 21, 2012 Haze Categories: General News. 67 Comments on UME 0.146 (Universal Machine Emulator)

logo by ALEXGIZH

UME (Universal Machine Emulator) combines the features of MAME and MESS into a single multi-purpose emulator. The project represents a natural course of development for the emulators which already share large amounts of code and is part of an ongoing effort to unify development efforts and provide a single emulation platform for users and developers alike.

As of 0.146 the UME target is officially provided in the MESS development tree, however the teams have opted at this time to not supply binaries of the build on the official site(s) so instead I’m supplying them here and dealing with support for them.

The builds here are produced using unmodified code from the MESS SVN repository which contains the latest code for both the MAME and MESS projects. As part of the unification the teams will be moving to a single shared SVN in the near future, although the projects will still maintain their separate identities and distributions, including this one, the UME build.

For the end-user UME allows a user to unleash the full potential of both the MAME and MESS projects from within a single convenient environment, using common configurations. It is designed to demonstrate how close the projects already are while providing an introduction to MESS and how some more advanced features of the project which MAME doesn’t utilize directly are used.

Why Should I Use UME instead of a regular MAME/MESS build?

No functionality from regular builds has been removed, so even if you don’t make use of any of the additional functionality you’re not losing out by using UME instead of a single project. Beyond that you have access to a whole new sub-set of platforms. For example you can quickly launch either the standard NES version of Super Mario Bros. the Playchoice 10 version, or the VS. System version using the same application which you’ve already set up and configured. The main added factor is convenience.

From a development perspective you have instant access to the components which exist in both projects without having to move code around if you’re simply interested in doing some quick tests. You also have access to a more flexible range of software and test cases for common components within a single project as well as a greater level of awareness over component reuse between the projects. This should allow for greater testing of code and hopefully reduce the chances of accidental duplication.

Why Should I Use UME instead of MESSUNI (another recent combined build)?

MESSUNI is what I like to call a discriminatory build. It is billed as a combined binary, but actually strips a large amount of both projects out merely based on flags and personal preference of the developer. Any seasoned MAME or MESS user will tell you that there are many things flagged which are actually usable to a good degree because flags are often used as a precautionary measure, especially in MESS where you have systems where several hundred games may function correctly on a system, but likewise many may not, so the flags remain.

Furthermore MESSUNI is built on the MESSUI code, which in turn is based on the legacy MAMEUI code. I’m aware that this is preferential to people over the commandline but the code has been rotting for years and introduces numerous stability and usability issues which will degrade the overall experience of using either MAME, MESS, or a combined build. The current recommended way to use the emulators is with the QMC2 frontend, which should support the UME build shortly.

Where Can I Download UME?

I’ve combined both the source, as well as 32-bit and 64-bit binaries into a single downloadable package HERE (61.8 MB). Tools have been moved to the ‘tools32’ and ‘tools64’ folders after each compile.

These are compiled with ‘gcc version 4.6.3 (rubenvb-4.6.3)’ on a Core2Duo system. The official MAME / MESS toolchain will probably be migrated to that toolchain, or one close to it shortly.

What’s New in UME?

UME 0.146 contains *everything* from MAME 0.146 and *everything* from MESS 0.146 please refer to the relevant what’s new lists for each project.

To be more specific it’s based on MESS SVN 15264, which is slightly newer but adds a fix which allows the tools to compile without error.


Ideally everything, yes, although due to an oversight the megatech.xml and stv.xml software lists from MAME are not in the MESS SVN tree despite being in shared folders so are currently absent. That isn’t an issue however because the primary method of launching these is with the internal setlists anyway. This will most likely be resolved once the official development teams are sharing an SVN.

When Shouldn’t I Use UME?

UME shouldn’t be used for reporting things to Mametesters, doing so will result in lots of angry developers chasing you with cattle prods. If you encounter a bug in UME you should verify that it occurs in a regular build too. There is no reason why a bug should be specific to UME, but it makes sense to check first.

Future Plans for UME?

I’ll make an effort to put out a build for each ‘u’ release (as long as I feel the overall ‘u’ release is stable enough) as well as each final release (which should be stable..) People are welcome to compile and post their own builds, especially for non-Windows platforms as I’m unable to supply those myself.

Anything Else?

I’m currently undecided over setting up a new sub-page for UME builds, or just posting them as part of the regular news stream here.

Go to article.. »


May 15, 2012 Haze Categories: General News. 38 Comments on UME is GO

As of MESS SVN revision 15179 the UME (Universal Machine Emulator, aka combined binary) target is present in the MESS SVN tree
(mirrored on the GIT too)

This target can be built using the command
make TARGET=ume
(or make -j6 TARGET=ume if you want to use more cores when compiling)

Hopefully people will remain open minded about this target, and it doesn’t become some sort of taboo subject.

There might still be some issues with building the tools which need cleaning up (windows specific hacks which things like wimgtool depend on, but exist only in MESS) but as far as a working combined binary goes you should be good to go with that.

As I’ve stated I will provide these binaries for the next major release synced to the point of whichever release comes last (MAME/MESS) (the projects are usually synced at each others release points anyway)

For day-to-day use the MESS tree isn’t 100% synced with the latest MAME developments, but usually gets synced up within a day or two, so it isn’t usually an issue. There will be an eventual move to a new server where development of both projects will take place, and I’d assume the target will be carried over when that happens.

As I’ve stated elsewhere the main advantage of this solution is convenience, if you’re running MAME anyway you may as well be using UME instead. That way if you ever get curious about how something else runs on one of the consoles, or just use the project to it’s full potential then you have that option already at your fingertips. The quality of the MAME emulation is the same as always, and the integrated MESS emulation provides a ‘good enough’ solution for many computers / consoles which could save countless hours in setting up and learning a completely different emulator if all you want to do is quickly test something in a familiar environment. I’m not going to lie and say MESS / UME is currently better than the standalone emulators, but it can be a heck of a lot more convenient if you’re already familiar with MAME and don’t need all the bells & whistles offered elsewhere.

I hope this does eventually increase exposure to the MESS codebase for people who might have been weary to try MESS otherwise, I fully understand that not many people are going to want to actively search out MESS on it’s own, but if you already have the code in the binary you’re using anyway there is nothing to lose by trying it as a first option and in many cases it will be just fine. Obviously having it as an alternative build doesn’t quite have the same impact as having it as the main build, but hopefully people will see that they have nothing to lose by building this target, even if you just ignore the MESS side of it completely!

I’m assured by various people that proper support in the QMC2 frontend will be available with the next major release too, so again that’s one reason I’m not supplying binaries yet, although I imagine the QMC author can take the addition to the MESS tree as a sign that the UME name / configuration is final now and put something out :-)

Personally I find it pretty cool to know that I can run the Genesis version of Sonic using the exact same codepaths in the emulator as the Megatech version (just sans the annoying menu), and in addition to that use the very same code to run the majority of the Genesis library rather well. Likewise I can compare ports easily, and really have a whole new world to explore without leaving the confines of the emulator. It’s also good for seeing how solid the emulation code used for a number of MAME systems is when exposed to a larger software library, and thus building (or destroying!) confidence in the accuracy levels of MAME for those systems or understanding how well the Arcade games on the platform actually utilized the hardware compared to the more general software library. It’s an adventure of knowledge and new discovery.

As I said, I’m not posting binaries yet, although I won’t stop people posting them! (I’d love to see others taking the idea and running with it) but this is just a heads up to the ongoing progress really.

I’d like to thank Micko (current head co-ordinator of both MAME and MESS) for checking in the target (and in fact being responsible for the code which has allowed this 100% clean solution in the first place) I hope people enjoy it and make use of it.

Go to article.. »

Attack of the Street Fighter Clones

May 5, 2012 Haze Categories: General News. 113 Comments on Attack of the Street Fighter Clones

No, not clones as in alternate versions of the game, but clones as in a million clones of all the Street Fighter 2 characters attacking you for hours.

Maybe the idea of Street Fighter characters in a side-scroller isn’t a terrible one, but after the 1,000,000th time you’ve killed a palette swapped version of E.Honda it kinda drags on a bit, especially when the game offers absolutely nothing but hours of repetition.

There are good beat ’em ups, and there are bad beat ’em ups, and then there are beat ’em ups which are physically painful to play because they’re so badly designed. This game, known as “Jue Zhan Tian Huang” is definitely the latter. The entire game consists of either 4 enemies on screen at a time, all being clones of Street Fighter 2 characters, with seemingly random amounts of health, and an occasional boss fight against cyborg type enemies and a token SF2 character who will respawn until the boss is dead. There are no weapons, there appear to be 2 types of destructible objects throughout the entire game. The background are as generic as you can get, with an unhealthy liking for lift levels, it’s buggy, feels half finished in places, and will have you screaming ‘stop, stop right now’ by level 4, but luckily for you there are 8 levels broken into even more stages.

The game is also full of foreground elements which will obscure your view, some of the train levels mess with your eyes in ways which make you feel like they’re going to fall out by rapidly scrolling the foreground and background leaving you with what can only be described as a grid like pattern through which to view the action.

The hardware is Megadrive / Genesis based (the same board as Puckman Pockimon) and had the game been based off the Streets of Rage code it might have been good, but it looks like this is an original creation, or at least if there is any Streets of Rage code in there it’s so well hidden behind poor design you’re not going to notice it.

Here are some screenshots, including the ending, or at least I hope it’s the ending. There are protection checks throughout the game so I had to play until the end to make sure things were working. There’s a sound bank needs hooking up too, but the samples are so poor I’m not sure what’s right and wrong.

This could possibly displace Dragons Lair as the worst ever arcade game I’ve played …. I’m not making a video because that would involve playing it again.

Urgh... Urgh...

Urgh... Urgh...

Urgh... Urgh...

Urgh... Urgh...

Urgh... Urgh...

Urgh... Urgh...

Urgh... Urgh...

Urgh... Urgh...

Thanks (I think) to Yohji, Mr. CAST, B. Stahl, Smitdogg, The Dumping Union

Go to article.. »

It’s What’s On The Inside That Counts

April 16, 2012 Haze Categories: General News. Comments Off on It’s What’s On The Inside That Counts

The thing with Fruit Machines is that aside from the cabinet design, artwork and a couple of features they all look pretty much the same on the outside. Basically they have a bunch of lights, a number of reels usually 3+, some 7-segment digits for displaying credits and possibly a VFD / Dot Matrix Display for some additional text / graphics. Once you’ve reached the point of ‘Sample Playback’ You’re not going to see much difference in the sounds either, samples are samples.

That said there has been a clear progression in the technology too, just like video arcade hardware which I’m using to influence my decisions over what to work on. Basically the way I see it there are the following groups (Systems which are already emulated in MFME or other emulators are highlighted in BOLD, which is for the most part the same state as 6 years ago, ouch)

Very Old, Non CPU Hardware

This is the equivalent in Fruit Machine terms to Pong, no CPU, nothing to ’emulate’. Information I have on such systems is sketchy, so I don’t have a list of such systems (it’s possible they were custom built anyway) I’d guess these are entirely romless, because you’re not going to have a display either.

Early 8-bits

These are your Space Invaders equivalents, early techs using 8-bit CPUs, usually fairly basic setups, simple sounds etc. Growing industry starting to use CPUs offering solid ‘no-frills’ machines.

BFM System 83, BFM System 85, JPM System 80, JPM MPS(2), MPU2, MPU3, Original Electrocoin Bar X, Ace System 1, Maygay Triple M, Hazel Grove?

There are also some early ‘JPM’ games on unknown platforms.

Later 8-bits

Probably your ‘Golden Era’ there were a large number of manufacturers putting out platforms at this point, or refining the ones they had and reissuing them. I’d say these were your equivalents to the likes of PacMan, hugely popular machines which many people consider to be absolute classics. Linked boards also started appearing.

MPU4 (reminds me of Scramble, everybody rushing to get their games on the platform!)
Scorpion 1, Scorpion 2, Project Coin (ProConn), Castle, sp.Ace system, Maygay M1AB, Electrocoin Pyramid HW & revised BarX hardware.

Early 16-bits

The transition to 16-bit CPUs could probably be seen as your equivalent of CPS1, NeoGeo etc. Very similar to the later 8-bits but with more CPU power and different peripherals.

Jpm System 5, Jpm Impact, Astra hardware (Pluto 1-4?), BGT hardware, Stealth hardware, Stella (German?).

Later 16-bits / Early 32-bits

Consider these the equivalent of CPS2 or Taito F3. Mid 90s tech (~1996+) saw greater use of chips with integrated peripherals, to save on board space. These were popular systems with a decent shelf life and good flexibility but don’t really change all that much from the early 16-bit era, just refine it and allow manufacturers who didn’t have their own 16-bit platforms yet to catch up. Technically you might consider the 68340 used by some to be a 32-bit part, but in reality it’s not really all that different to the 16-bit 68307 or plain 68000.

Scorpion 4, Maygay Epoch, Pluto 5, MPU5

Everything above this line I’m considering looking at, I consider them ‘classic’ systems now, ones which have been phased out. Everything below this line I’m not actively looking at, skeleton drivers for *some* exist mainly through sorting of the sets. That’s not to say other people can’t look at them, but I don’t consider them a priority at all. None of the systems below are emulated (in a working state) by anything public at this point. The vast majority of things I’ve emulated in MAME have been 16-bit era 68000 based titles, so it stands to reason that the 16-bit platforms ABOVE are my main starting point, and I’ll be working upwards.

Later 32-bits

While the hardware is lagging quite far behind at this point I’d say these were the Fruit Machine equivalents of Naomi era hardware. Things have advanced to the stage where you can easily run complex compiled code on the boards without having to worry too much about performance levels. 40Mhz Coldfire (advanced 68040 type CPU) parts were all the rage at this point, a significant bump from the previous generation of parts where CPUs were typically 16mhz or below. These boards were pushed out in the early 2000s.
Scorpion 5, Pluto 6

Modern Tech

The modern era brought about faster processors (200Mhz+ Coldfires etc.) I don’t really have much information on these systems, they’re simply not interesting from an emulation point of view at this time.
Pluto 7+, MPU6, PC-based systems

Now keep in mind these are just my opinions based on what I’ve seen. The arcade system equivalents I’ve given are not meant as direct technological comparisons either, just how I see (from my limited exposure to the systems) their roles in fruit machine history. Some stuff here could easily be shifted by a generation, the exact lines are blurry. This isn’t meant to be a ‘my fruit machine is better than your fruit machine’ table, but instead simply a guide to what I consider viable in terms of emulation at the moment and to help people realise that while the machines might not look like the tech has advanced at all from the outside there were a large number of different platforms on the inside. There are of course oddball pieces of hardware which I’m not sure where to put, rarely used platforms and the like and things I simply haven’t been able to identify.

As you can see there are plenty of viable platforms both old and new which haven’t been emulated yet, mainly because a lot of the focus has always been on the more popular platforms and even within those there are a good number of titles which don’t work because they were paired with different external hardware for reels, hoppers, meters or had different security etc. There are also a number of platforms which aren’t listed at all, this is a very UK / Euro based list. The US, Australia, Russia (and presumably Japan) had their own industries and own games on other unknown platforms (although in some cases they just re-purposed old tech, MPU4 was very common)

Speaking of popular systems where only half the titles work Guitar recently released his ‘Project Amber’ which covers many of the MPU4 machines, including ones from the likes of Crystal which hadn’t previously been emulated properly. It also provides some really good looking lamp simulations correctly simulating many of the fancy light effects the boards do to create dimmed or ‘super bright’ lights, an area MFME has always been lacking and definitely a long-term goal of MAME rather than a short term one. I’d also like to thank him for his willingness to share his findings with MAME, which should save some time later down the line.

Obviously the Fruit Machines which are already emulated are a good target to get working because for any large amount of work you need solid foundations and it’s already well known what is needed for those, and there is always the chance to get a couple of titles working on already emulated platforms which require a little extra, MFME doesn’t emulate one-off custom additions, just the most common parts. The ones which aren’t emulated at all are of course more interesting from a technical point of view.

So.. not really a WIP update (I have nothing to report) just an information post.

Note, Comments are CLOSED on here for the time being, been getting quite a lot of spam, some of which has been getting through.

Go to article.. »

The Millennium Bug

April 13, 2012 Haze Categories: General News. 7 Comments on The Millennium Bug

Silver Millennium by Para has sat on the MAME ‘Most Wanted’ list for a while now, but always seems to sell for Crazy Prices.

Running on hardware which I’ve found is derived from Tumble Pop bootlegs much like ‘Cross Pang’ and ‘Bestri’ from F2 System, this Korean shooter appears to be an original game developed in Korea. The actual hardware looks just like any other cheap Korean game, so we were rather lucky when Bonky0013 found out he had a PCB of it and dumped it!

As mentioned, in recent times when it sells it usually sells for crazy prices (>$1000) and production values are higher than most Korean games, although not THAT high, maybe there is some history behind the game causing the high prices which I’m unaware of. That said it is known to have been listed for $200 back in 2007 without selling at all, so either people have decided it’s a lot rarer in the past 5 years, or caught some kind of Millennium bug ;-) It’s possible the reserve price on the $200 one was just a lot higher tho.

The game has ‘adult’ content, although I’m not sure when it gets shown or if it requires a dipswitch change like the language does. Images can be viewed in the test mode.

The game mechanics are closer to older shooters, with fast aimed bullets, although instead of a lives system the game features an energy bar which is depleted near instantly if you hit a big swarm of bullets. I’ve done a video of the gameplay from MAME in which you can see the intro, complete with hilariously bad translated text and footage of the first two levels.

Hardware doesn’t do transparency effects, images are flickered on/off per frame, the game does this a lot when the various girls appear midlevel and such. The video above makes it look transparent as a real monitor would because I’ve frameblended it to 30fps for optimal YouTube viewing.

Content not available.
Please allow cookies by clicking Accept on the banner

The sound unfortunately isn’t great, the YM2151 at least allows for proper music, but the rest of the sound samples are played through an OKI6295, and the quality of them leaves a lot to be desired.

Clocks are not verified, nor is the framerate / refresh rate of the game or the overall audio balance.

Silver Millennium Silver Millennium

Silver Millennium Silver Millennium

Silver Millennium Silver Millennium

Silver Millennium Silver Millennium

Go to article.. »

You Me (You I?!)

April 11, 2012 Haze Categories: General News. 4 Comments on You Me (You I?!)

UME (Universal Machine Emulator) target. Just drop these files into the /src folder of a MESS tree from the GIT on the left and compile with ‘make TARGET=ume’ and you’ll have a combined build* Not much changed from before, just cleaned up a few bits which were no longer necessary. I’ve asked again if this can be put in the official MESS SVN tree, because I’d really like to be able to build a 0.146 version come the next release and say the sources are entirely untouched.

I decided I prefer UME over UNE, simple because it sounds like ‘You+Me’ and that’s rather appropriate for something which is the combination of two projects. Amusingly enough if somebody did a UI build it would be “You Me You I”

In saying that I notice Robbert has been putting some Arcade games in his latest MESSUI builds, but I think it would be better if he just compiled a UI version of this target, although it might require some code tweaks. That would give a build with Arcade support, but without annoying people who want the pure MAME / MESS builds as well.

Of course ****UI is horribly broken anyway, and probably shouldn’t be used, but some people don’t want to drop it.

* although at the time of writing you’ll have quite a few validity fails, but those happen in the regular builds too.

Other news, continued to look at the Fruit Machines, summary follows:

Electrocoin: identified where the VFD data is written on Pyramid, Sphinx, Pennies from Heaven and Labyrinth. Doesn’t seem to be one of the supported VFDs (it’s writing mostly ASCII and in the first case doubled up letters) but I’ve redirected it to the commandline so we can see the errors. Half the games complain about a 10MS TIMER (which should come from the Z180 afaik, core bug?) the others complain about COIN TAMPER. Not tried hooking anything else up because the games are stuck in a reboot loop because of said issues, so wouldn’t be interesting yet.

Scorpion4: added hookups for the reel writes and opto reads, allowing the games which were complaining about REEL 2 ER to pass that test and usually fail on a RAM test instead. Couple of games continue to run in the background anyway tho, will probably see what the RAM fail is all about then try hooking up some lamps.

ProConn (Project Coin): identified what should be the VFD port, it writes text in a few games, but garbage in the majority, not sure why… the board has a whole stack of Z80 peripherals with a weird hookup, so it’s possible there are errors anyway, doesn’t look like any of the stuff is extensively tested

Global Games Stealth: James found the VFD, see the update on his AgeMAME site.

‘JPM 7’: I think this is actually Pluto 6, It’s Coldfire based and behaves like the other ‘Pluto’ stuff otherwise, which would fit the profile. Not actively going to work on it.

‘unkpcp.c’: Pretty sure these are ACE System 1 sets, should move them. I did a bit of poking around with ACE System 1 but have no progress as such to report.

‘astrafr.c’: Seems to be an earlier revision Pluto board, I’d guess either a custom one made for them or something between Pluto 1 and 4. Actually there seem to be at least 3 different variations in here, so could be all of them, or just the boards were configured differently.

Also looked at Epoch, but I hate the H8, and their custom chip could well be a CPU in it’s own right, no progress to report there sadly.

I’ve also continued to sort out and attempt to pair up various sound ROMs and the like, situation isn’t pretty for a lot of systems.

Finally, for anybody who thinks these things aren’t worth emulating and should be forgotten about, I challenge you to look at the following page and draw the same conclusions

Mr. P’s Classic Amusements
This guy collects, and operates the classic machines in his arcade, and if you look at them, and the enthusiasm for them you’ll see that they’re every bit as much classics as Pacman or Street Fighter and many of them are exceedingly rare these days (some probably already lost forever) Unlike arcade games these have a more serious problem, the games are useless if separated from their cabinets, and storing unprofitable or weaker playing machines isn’t economical so they’re more likely to be destroyed whereas an arcade PCB might be unlucky enough to have it’s cab destroyed but the PCBs are usually saved and the cabinets usually served for decoration purposes only, and weren’t critical to operation of the games. He also has a whole bunch of videos on YouTube demonstrating many of his machines. These is even a video of the earlier mentioned Sphinx, complete with classic 8-bit tunes. Many of the machines are genuinely entertaining and works of art unlike the soul sucking Vegas ones which offer nothing but a chance to get lucky.

So yeah, things are being looked at all the time, and while we might not have reached tipping point as far as working sets go I still consider this a very worthwhile venture, and an extremely important one.

Go to article.. »

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.