David Haywood's Homepage
MAME work and other stuff
March 13, 2014 Haze Categories: General News. 45 Comments on Current MAME Stability

If you’ve been following the MAME SVN you’ll have seen there have been a large number of changes being made as of late, refactoring of critical systems layered on top of previous refactoring of other critical systems.

If you’ve tried running a build built from the current code you’ll also have noticed that things aren’t especially stable right now, that is to be expected given the nature of the changes that are taking place.

When everything is done these changes should result in no user visible difference, but while they’re ongoing they are rather disruptive, that is why you haven’t seen a release, either official (0.153) or unofficial (one of my ‘ex’ builds) in a while; the previous release I did was right before some of the bigger changes hit.

This also means that actual progress is slow right now, it’s not easy to keep up to date with a project and do development when fundamental things about how MAME works are changing beneath your feet. It’s no excuse for me not fleshing out the text to go with the previous ‘ex’ update, but it does mean I’ve spent less time with MAME than I normally would.

Anyway, to make this a worthwhile update I should mention that one or two fairly interesting clones turned up over the past few days, for example a ‘Growing Ship’ version of Galaxian made by ‘Recreativos Franco’ of Spain was added. This version is unique in that it has 3 different player ship sizes and gives the player a bigger ship ever 2 levels. This is used to make the game more difficult. Thanks go to Roselson from AUMAP for this one, it comes from his PCB.

Recreativos Franco Galaxian Growing Ship Recreativos Franco Galaxian Growing Ship Recreativos Franco Galaxian Growing Ship Recreativos Franco Galaxian Growing Ship

An alt version of Poke Champ was picked up by system11 after I noticed it on eBay. This one is called Billard List and has a different selection if images (actual Photographs) The PCB also allowed us to correct the CPU clocks in MAME to reflect how badly the game runs on real hardware; it’s a hack of the Pocket Gal code, but actually has worse CPUs than Pocket Gal! Below are some comparison shots, with the new ‘Billard List’ on top, and the old ‘Poke Champ’ on the bottom.

Billard List Billard List Billard List
Poke Champ Poke Champ Poke Champ

In my 2013 write-up I talked a lot about newer versions of already supported games being added, that has also happened over the past few weeks with Capcom’s 19xx. Let’s have a look at the already supported sets.

The most common version of the game is the OLDEST known version, with a date code of 951207 (incidentally the Phoenix hacked version is also based off this version) This version has known releases for USA, Japan and Asia.

19xx 951207 USA 19xx 951207 Japan 19xx 951207 Asia

Interestingly the two regional sets for South America (Hispanic and Brazil) both came with a 951218 release, 11 days later.

19xx 951218 Hispanic 19xx 951218 Brazil

The newest set previously supported was one released 7 days after that, a Japan set with date code 951225 (Christmas Day in 1995)

19xx 951225 Japan

The newly discovered set is even newer than any of those, with a date another 10 days later, falling into 1996 this time, 960104. It’s also a Japan set.

19xx 960104 Japan

I don’t think anybody has ever documented what bugfixes were made even for the previous ‘newest’ Japan set (the 951225) one, but it’s still interesting to see development continued for a few weeks after the initial release. It is unknown if any regions outside of Japan got these newer revisions of the game. I do hope that one day somebody puts a concentrated effort into working out what actually changed between the many revisions of the games we support. I also find it interesting that there are no official European versions of the game supported, although I could say the same for Super Puzzle Fighter II.

Aside from the news posted here Roberto Fresca has continued to look at poker / video slot machine type games, you can see from his page but otherwise actual progress has been slow for the reasons I’ve already mentioned.


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

The next mame will be amazing for everyone, even if it takes one more month to do it.

I hope that Photo Y2K 2 will soon working.

I remember when Capcom had a internet flash game call Super Puzzle Fighter II. I think they took it down long time ago. :)

Haze look this! http://insertmorecoins.wordpress.com/#.
A new “5d” IGS game:Monster Eye.
Maybe need a core-i 11 for work on mame 2.34 version in 2037 year :)

Maybe not. The newest games can able to be more easy to emulate. Or some future windows can run this games easlily. They are talking about playing xbox 360 games on Windows in the next generation.

And the merge capabilities of TortoiseSVN (or whatever it uses for merging) are not very good. I made some rom name changes to a driver file and the merge screwed up and forced me to update the file with a diff against the baseline. I’m use to using Perforce and it’s auto-resolve very rarely screwed up.

So Monster Eye is Godzilla?

By the way in Monster Maulers the dragon have the Godzilla voice. :D

What makes you think 19XX and “Super Puzzle Fighter 2 Turbo” were released in Europe? Games can be released in some regions and not others, for example “Battle Circuit” wasn’t released in the USA.

Super Puzzle Fighter II Turbo (EU July 1997).

Seriously, what the fuck is going on with MAME?

Is Aaron just arbitrarily changing shit so he can slap in his copyright bullfuck on every file, or are all these changes actually going to help anyone down the road?

I’d be very surprised if SPF2 wasn’t, it was an immensely popular game here… 19xx who knows, but I find it strange it would get releases in smaller markets like Hispanic / Brazil but not Europe.

SPF2 is also interesting from my point of view because if a European version turns up the revision string will be interesting, the set we have actually has different dates for the same code revision in the roms (as you can see by using the region mod in the Phoenix set)

Aaron does what he wants because he has enough of the more senior developers backing him up. Think of Aaron and his buddies as Russia while all of the other developers as Ukraine. I wouldn’t be surprised at all if Aaron does his best to make some money off of MAME and MESS once he gets absolute control of the projects. He might give his friends a cut if he’s feeling generous when that happens.

I forgot to mention that Micko is just a shadow coordinator. If Aaron tells him to spread his ass, he asks “How wide?” Nothing happens with the projects that Aaron doesn’t approve.

have you at least tried to read what the actual commits do, before accusing?

the changes clean up some long standing problems with memory allocation (next release should compile on ARM devices too, without any hack) and palette / tilemap code (systems supporting multiple screen were unable to use multiple palettes, making impossible to properly support in MESS some home computers video card expansions)

so you can go back searching for conspiracy elsewhere

even if it’s a bit like beating a dead horse, let us repeat it again, and hope you guys stop believing to fables

nobody has ever planned to sell MAME (even if I cannot exclude Haze seriously believed so during one of his tantrums), and the possibility to change license to LGPL never had anything to do with selling MAME
it was suggested only to make easier interchange of code with other projects (e.g. WinUAE or CDiEmu could not have add support for CHD format if Aaron would not have dual licensed his code under MAME *and* BSD licenses)

believe it or not, MAME and MESS will always be source available with no charges

I still disagree, Aaron was very aggressive in his initial proposal, to the point of wanting to change the whole project to GPL / BSD and write out the code of anybody who didn’t agree while accusing people who didn’t want their code to be the desired license of holding the project hostage. I find it hard to believe that overall feeling just vanished.

The fact is it would allow people to sell MAME, I remain uncomfortable with that for a variety of reasons. I would be more comfortable with it in the context of a combined project due to increased legal use cases. For all practical purposes it is still impossible to change however and forcing through such a change would actually put the project in a worse position than we were because we’d be claiming a new license that wasn’t 100% ratified for significant contributions. I remain unconvinced even by some of the rewritten files that have had new licenses slapped on them, if anything it is only causing more confusion.

For individual parts of the project it does make sense, things like the CHD format, where we’d like to encourage direct adoption of the format elsewhere obviously benefit, although I doubt we’ll see widespread adoption until confidence levels are higher, especially when it comes to handling wacky CD formats.

I’m not claiming that Aaron or Mamedev would be selling MAME directly, or that it would ever not be available for free. I am however a bit concerned about those things if we ever go down the ‘libMame’ type route with closed source front-ends driving the project as we’ve already seen many Frontend authors don’t really follow the same levels of openness as MAME, but that’s a separate issue.

As a dev team our way of doing things has always been to try and do better, if code is only available under an incompatible license we write better code. If people who have written individual parts of MAME want to make their code available under another license they’ve always had the option to dual license it for such purposes. The MAME license simply prevents people from selling MAME as a whole project / making commercial use of it directly, many individual, more generic components are available for reuse already. I feel this works in our favour.

I felt it was an important matter to bring to public light, so don’t really appreciate your use of the word ‘tantrums’. People have a right to know these things.

More interesting to me is the fact that yet another person has posted (in the 2013 update) that they’d like to see UME as the default in the future. I’m sensing more and more people outside the usual circles feel this way, with the only real opposition being from within, by people too set in their ways. That would still be a more worthwhile improvement in the baseline functionality we offer, and a send stronger signal to show where the project is going in the future (and how far it has come from being a simple arcade emulator where only arcade games matter) than anything else right now. It still disappoints me that the team as a whole aren’t willing to try UMEifying MAME, at least for a year as a trial, although at least Micko has shown some common sense with the movement of the ‘bus’ files, simply naming them by bus type under /emu rather than trying to shove them in folder names based on the project name; it’s the hardware that matters in the end so I felt that to be a good move in the right direction.

Etabeta; Haze didn’t accuse anyone of anything. What Haze wrote doesn’t really have any negative connotations aside from it not being possible to work on higher level stuff when fundamental parts of mame are changing at the same time… that doesn’t suggest that the changes being made are bad at all. All you ever seem to write here is telling Haze and others that they are wrong in an aggressive manner. If you don’t like what you see here why do you bother coming here in the first place? Do you have to make sure everyone knows what is right and wrong.. which happens to be what you think is right and wrong? Haze is allowed to have his opinion and write it on his blog.. since when did you become the mamedev blog police?

Etabeta has a man-crush on Haze and it causes within him conflicting, unresolved feelings. That’s why he keeps stalking here, talking his usual shit.

I could swear there are some more roms that need renaming AGAIN, etabeta why don’t you make yourself useful and take care of that?

Moo, you are hilariously ignorant of what goes on behind the scenes. There has been someone holding the whip hand to Micko over the past couple weeks, but it isn’t Aaron, it’s me :-) And I’m no senior dev; I’ve only been on the list since 2011. Arbee even told me “I’m not a real dev” a few months ago.

Go suck Haze’s dick harder, faggot.

You think I’m only talking about the last couple of weeks? Things have been worse the last couple of years but it everything started way before 2011. Look at project history going back to 2003.

Nerdy tuff talk…..never a good look

>Aaron does what he wants because he has enough of the more senior developers backing him up

I do what I want and I don’t have anyone backing me up.

There is plenty of disagreement over things, but anything that can be changed can be changed again.

I don’t have any idea what difference it makes to you or why you think you have a grievance to air.

I know you’re one of the more senior developers, but I didn’t have you in mind when I made that comment. Hard for you to know that since I didn’t name names. Not that it makes any difference to either of you, but I hold you and Haze in high regard. As for airing, I’m simply expressing myself where I am able to without being banned since certain other websites don’t allow it.


I try to remember Hanlon’s razor in these situations.

Never attribute to malice that which is adequately explained by stupidity.

Only because bulba talk about that, the SVN’s as been stop releasing on emucr. Well done.

It seems this blog became a big troll land up here.
Who cares about speak the dev’s?
They have all the stuff, they decided what is good or bad for anyone, and you people continue to full the bag with no excusses to do that.
When i got mame for the first time, i never been here before, after 15 years as been pass i download and get this stuff for free with no complain. I’m gonna see what the new kids tell to me when i get 70 years old.

I was speaking about the devil and someone just compile and release the newest SVN. It seems they read me.

Assuming the comment section arrows and indents are working, etabeta wasn’t replying to Haze, but rather to bulba.

bulba did make accusations, profanity-laden ones at that. Given bulba’s tone, etabeta’s own response seemed relatively warranted. Strong admonishment, but without actual insult. And answering with some details the (perhaps rhetorical) question of whether changes made served a real purpose in improving the project.

Brazil speaks Portuguese, not Spanish ;)

soooo, what are the new changes that are blocking? I have not been following too closely lately? What do they do? I am always up for a good refactor if it makes it easier to code/use/read.



The languages can be the same, but the words are different.


The big changes are that there is no longer a single global palette or a single global array of “gfx elements” (the decoded graphic tiles you can look at by pressing F4 in MAME)

The former change makes it easier to support machines with multiple screens (e.g. VS Unisystem, or many computers in MESS) The latter (which is still work in progress) will make it easier to support the mix-and-match graphics chips companies like Konami were fond of using, which will make it easier to rewrite e.g. Konami GX when someone steps up to that Herculean task.

In both cases “easier to support” means that a lot of obfuscating code needed to work around the limitations of the MAME core can be removed. Obviously we already do support VS Unisystem and (modulo some alpha blending bugs) Konami GX.

Both changes also bring us one step closer to being able to emulate multiple independent machines inside a single instance of MAME or MESS (think linked arcade cabinets, or in MESS, an emulated MIDI synthesizer driven by an emulated Atari ST)

That is a big change… That would touch pretty much every driver. Sounds like a good solid piece of work. Look forward to the results. I could totally see f4 going away at some point and becoming a menu/debug item.

There’s not the point…
The text says:
“Interestingly the two Spanish language sets for South America (Hispanic and Brazil regions) both came with a 951218 release, 11 days later.”

Official Brazilian language is Portuguese. Just it. I pointed an error in text.

But well, as a Brazilian, I have to say that the diferences between PT-BR and PT-PT aren’t enough to be a dialect, as you’re thinking…
There’s not much more that EN-US and EN-UK…
But in general both are inteligible and recently recently all portuguese speaking countries made an orthographic agreement:
Anyway it is normal that words like “facto/fato” or “optimo/ótimo” are more used in Portugal or Brazil something that may cause troubles between native speakers of each region.Nevertheless both forms are correct.
But that’s another story…

You are tell me something i know about long time ago.

in terms of me putting out a new ‘ex’ build the blocking changes are really things like the crashes people are getting when using the ‘gamma’ command line switch, or sliders etc.

beyond that you’ve got the usual ‘some drivers work better, others work worse’ breakage, although not all of that has been caused by the large scale refactoring, some of it is due to other modernizations.

The main issue I encountered when trying to look at Konami GX is that is the way it’s coded means it does a full z-buffer sort on all the tilemaps and sprites to get the drawing order correct (basically throwing all of them – multiple sprites and tilemaps from multiple chips – into one big buffer then sorting it)

This is what has made merging the implementations down further a bit annoying and I’d be interested to know what the actual blending characteristics of the original hardware are because the way it’s coded make it practically impossible to *fully* untangle the individual chips if my goal is to not change the current end results at all.

There are other Konami cleanups that could merge the impementations further first however, for example the global sprite offsets were applied at a different point in each implementation and when merged down that became even messier.

I still have fixing up the voxel renderer for Racin’ Force on my todo list too!

The current end results aren’t correct, though–to name two examples, gokuparo’s intro has incorrect crossfading (the wrong layer fades out) and (at least) one stage of sexyparo is missing an entire background layer.

Often correct emulation is far simpler and less entangled than incorrect emulation–I discovered this while I was rewriting bsnes’s color blending about a year ago (it was doing the wrong thing when high resolution and color blending were used at the same time–byuu didn’t discover this for a long time because nearly all SNES games that used high resolution at all were Japan-only)

Yeah, I know simpler is often better, the ‘issue’ is the GX stuff was clearly written with some kind of reference (partially translated docs, or even possibly the untranslated originals) so I’m a little hesitant to completely discard what we have.

It’s one of the bigger challenges, although to be fair things like the Jaleco hardware in MAME are in equal need of attention, the driver Cisco Heat runs on is a mess (everything is hacked to 30fps, although changing it to 60 and trying to adjust interrupts causes some bits to end up being a flickering mess) and even Mega System 1 (on which that platform was essentially built) still has a lot of issues. The real way the blending and palette effects work on Megasystem 32 is a mystery too!

Doesn’t matter. My comment was submitted to be read by site author, but unfortunatelly this blunder persists…

I’m aware there’s a difference and that Brazil uses Portuguese, it was an oversight in writing the article, nothing more.

And i don´t know why americans insult portuguese people like me.
I’m not Brazillian, and i hate Trolls.
Even if i can´t speak American 100%, it is hard to me.


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.