David Haywood's Homepage
MAME work and other stuff
September 10, 2018 Haze Categories: General News. 22 Comments on Little Changes

It always annoys me when I read people making claims that there are only a ‘handful’ of fixes in the newer MAME versions compared to those that people are running on awfully underpowered devices like the Raspberry Pi; versions so old you’ll be stretched to find any active developer who even considers them to be the same project as MAME anymore.

Most of those versions are based on versions somewhere between 15 and 20 years old, and it would be more accurate to say there have been a handful of fixes every single week since then, many graphical, many directly affecting how the games play. The recent work done on the emulation of various protection chips is a good example of where the older versions are going to have fundamental gameplay flaws, with Operation Wolf in 0.201 being the latest in a long line of example.

The Super Shanghai Dragons Eye fixes mentioned in a previous post are also an example of an improvement that might otherwise slipped under the radar, and the post before that about Chrono Soldier shows how documentation of what’s what in those older versions is wrong too, with them presenting what turned out to be a prototype as the final game.

It doesn’t stop there tho, Steel Force is a game I emulated for MAME 0.58, which was released on 05 Feb 2002. I was watching one of LordBBH’s MAME Roulette streams where he ended up playing the game and noticed that on one of the levels there was a priority bug. I hadn’t noticed this issue before, so I’d never considered fixing it. Having noticed it, I decided to take a look at making a few improvement to the driver, and ended up fixing the priority bug while also improving some scene transitions I noticed were faulty too.

It’s subtle, and a lot more obvious when in motion because they move at a different speed, but the screenshot on the left has some ugly ‘oil’ bubbles over the ground, which should be part of the background and hidden under the ground layer.

Steel Force Steel Force

There are still potentially some alignment issues with the game, as a few scenes do still look a little rough at the edges of the screen, but such bugs are commonly found in games due to safe areas, overscan and the like. The ending text for example doesn’t quite fit with the current visible area / alignment. This may, or may not be a bug in the original game, it doesn’t look like a great deal of effort was put into this screen, the developers even managed to misspell the title of the game as ‘STEELF FORCE’ The problem is there are very few high quality original resources for these games to use as reference.

Steel Force

So, anyway should you want to experience this game without ugly scene transitions and without the priority bugs, 0.202 or higher is going to be required.

Other little changes have been made over the last week or so too. I emulated a game called Pitapat Puzzle (which I need to write about at some point) and that allowed me to fix some video banking issues in later levels of the ‘Die Break’ game in ‘Bestri’ which is actually one of the most genuinely enjoyable Korean breakout clones. The bonus stages take the form of a Space Invaders style round, and if the ‘Girls’ dipswitch is enabled, are meant to show some non-erotic artwork rather than the usual grassy fields etc. Not only was the banking incorrect, but the later graphic ROMs weren’t even being loaded correctly. This one has been incorrect since MAME 0.113u3 (22 March 2007) which is when it was first added, and I had no solution to the tile banking at the time.

Left is MAME 0.201 and below, right is what will be in MAME 0.202 and higher.

Die Break (Bestri)
Die Break (Bestri) Die Break (Bestri)
Die Break (Bestri) Die Break (Bestri)

Anyway, there’s a common theme with these things. On the surface the games appeared to be just fine, you could fire them up, and play them, with no obvious issues in the first 10 minutes of play, but once you started to get a bit further into the games you’d encounter an increasing number of problems.

For Super Shanghai you’d have to complete a handful of stages to get to the glitched cutscenes and priorities, for Steel Force you’d have to complete a bunch of levels to get to the broken priorities, for Die Break (Bestri) you’d have to complete 9 stages to see the issue. For Chrono Soldier you’d have to know about the game, and complete at least 3 stages for it to become apparent that the old version is massively incomplete. For Operation Wolf you’d have to play the game, possibly even reach right before the final boss to see it glitch out (although if you were using anything more than a year old the problems were significantly worse)

These are all little changes from an end user point of view, but when you consider that (aside from Operation Wolf) they’re things that a single developer has fixed in the space of roughly a week then multiple that by the number of developers, then further multiple by the number of weeks old each MAME version is and you can see how quickly the number of bug fixes adds up, and how it’s far more than a just a handful. The older versions aren’t “good enough” they’re downright awful for any serious use.

I get the novelty value of running the ancient versions on old devices, I get that it’s ‘cheaper’ etc. (although I find that debatable, as a Pi3 is 6 times slower in benchmarks than a throwaway 9 year old 3Ghz Core 2 Duo) but I still find it frustrating that people are recommending such versions and hardware for serious MAME builds. Once anybody starts playing on one, even running just the classics, you start to hit a mountain of bugs even if on the surface they look ‘good enough’

Sure there are regressions in new versions too, and some of those do frustrate me, but the overall trend is towards many more things working better, and regressions do get fixed.

A lot of the progress in MAME doesn’t get detailed writeups (because really, we’d rather be fixing things and improving the emulator) but it’s still there, happening all the time, just like the stuff I have covered here.


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

Haze, you make our hearts go “Pitapat”. Awwwwwwwww :). Thanks again and I appreciate you and the team for all the detaily little things. Agree about the bruhaha with Pi machines not doing it for me either.

Haze, you make our hearts go “Pitapat” Awwwwwww:). Thanks to you and the MAME team for cleaning up the details for us!!!

I don’t know who claims that there are only a handful of fixes in recent versions of MAME compared to the ones of 15-20 years ago but they’re clearly in the wrong and probably claim this because of economic interests, not for the love of retrogaming…
It would be interesting to share some links to those dubious claims so that we can all get there to pound some truth into the heads of those regressive people!

Anyway, as usual good job, keep it up. It’s always greatly appreciated here and by a lot of silent people updating their MAME every month :)

i would like ms6 kof2002um tekken 4 5 kof98um ps2 in working team

for some development sure to make a petron page

Hi Haze! Are there any recent progress for PGM’s game Puzzle Star?

All PGM, IGS, ALTA games, incluied the chinese bet ones too. One of my favorites collections ever!

Feels nice when MAME Roulette manages to help out in some small way in tracking down bugs, lol.

nice mame work,hope one day we can get the Taito F3 driver perfectly…

It has long been the case that “looks playable” is all it takes for some people to decide that emulation is perfect. Which can quickly become arguments against efforts to improve accuracy that come at the cost of performance, as well as a dismissal of actual improvements. If you view anything “playable” on MAME as already good enough, then what improvements will you even acknowledge?

Sure Haze, unfit hardware like the Pi and oddball stuff like RA drag people in the wrong direction making them use old-ass builds, but you guys are so focused on the games you seem to forget what’s around it entirely. Take MT#06171; the ini system is broken again and that basically breaks MAME for me (how come something that important is ‘minor!?’ and obviously wasn’t properly examinated), there seems to be zero interest so I went back to an older build, frustration isn’t big enough a word here.
Just saying, useability of the emulator is extremely important too, several of the recent and upcoming game-related changes and fixes matter to me but no way I’m sticking to the rule of always using the latest legit build if using it continues to be such a pain and for who knows how long. MAME was so much easier, convenient and friendly to use before the 0.171 redesign, when it still had a nice GUI emulator easy-to-sort browse and configure, no wonder people go to RA, ARCADE etc. I’ve heard even Kawaks is regaining popularity these days.

Yo do no reply, haze?
I know why: you agree with badrock. And you are sad to see the project got rotten. Don’t cry, don’t cry for mame, mamedevs…..

Actually in the case he points out the original reporter then said it wasn’t a bug at all, so of course it wasn’t going to get looked into..

Thank you for taking action, I think this is quite important.

The 0.171 redesign was brought in specifically because people were allegedly leaving for RA, ARCADE, NeoRageX, etc. and we were told by people using it that MEWUI made MAME much friendlier and we should integrate it. Sound familiar?

Anyway, if you don’t use the game selector post-0.171 works exactly like pre-0.171 so I don’t really understand the ire there. And I especially don’t understand comparing a lightweight GUI like that with something big and complex with RetroArch.

You’re right when mentioning that old MAME and current MAME aren’t the same project, as the goals have moved since the early 2000s.

Back in the DOS days MAME only allowed arcade games, specifically games which were actual arcade machines and not “arcade” gambling games or other similar machines that didn’t fit the definition of an arcade game (even if they actually were in arcades in some cases). So for example, while MAME owes its entire existence to emulating Pac-Man, emulating a Pac-Man clone which was actually a stealth gambler would not be allowed at all. Computers and consoles also had to be emulated in MESS as they weren’t arcade machines, gambling games had to be emulated in a spinoff of MAME, which may or may not have been license-violating builds due to the restrictions in the MAME license (for example, amusement-only, non-payout gambling games were allowed, so for example Lovely Cards was originally included in MAME but the clone Lovely Poker wasn’t because the latter had a payout system), and most consoles at the time weren’t even considered for emulation in MESS as they were playable on a hundred different emulators, so MESS mainly kept to the 8-bit home computers and arcade-based consoles (even IBM-compatible PCs took ages to be included, let alone emulated to a usable degree, which is still the case today due to the vast amount of different PC hardware released over 20-30 years). And then there was the problem of arcade hardware (and not just a PC in a cabinet) existing side by side with MAME (for example, the 1990 Neo-Geo hardware was still alive and kicking well into the 2000s), so later games hidden or even removed as to not compete with real arcades.

haze,you are doing god’s work with the namco stuff . thanks
a couple questions if you don’t mind :
does mame still need the help of people like sailorsat (?) for the lan stuff ?
i am obiously thinking about ridge racer 2 and rave racer
is this code refactoring going to fix that weird issue in tokyo wars or is it protection / something else related ?
and will you also take a look at system 23 ? probably too much of a hassle but curious
will definitely give ace combat a try in 202 !

Maybe these folks running ancient versions don’t have speakers in their systems. Just the audio improvements of late have given me more than enough reason to try staying current. Port audio in particular was a revelation–I was shocked at how bad audio latency was prior, and the improvement that PA brought was clear and obvious across the board–including to virtually all of the classics. There have been many other clear improvements to audio, right up to the latest .201 where QSound improvements are immediately noticeable.

re: the Namco work, the current aim is to make the code easier to work with, not actually improve anything just yet

As it stood the code was late 90s / early 2000s era style MAME code, which was inflexible and difficult to work with; it made targeting proper emulation of things like Drivers Eyes and Galaxian 3 impossible as they needed multiple instances of the various chips etc. It was also difficult to work with because a lot of code was tangled together due to being written at time when less knowledge was available (and the internal ROMs for a number of the MCUs and DSPs weren’t dumped)

The reworked code should be much easier to take forward.

The networking stuff needs emulation of the Namco C139, which is some kind of Serial IO controller, possibly also an undumped MCU, possibly something that can be simulated. Even Driver’s Eyes will need this emulated to communicate with the extended displays containing the side view and HUD elements for the game. I’m not currently sure how complex that is, or what it entails, it might be one of those cases where a highish level emulation of the device (ignoring timings etc.) is sufficiently easy to work out.

Namco stuff isn’t generally my field, just those drivers were in dire danger of becoming unmaintainable, and were incredibly unattractive to anybody who might have wanted to do work on them due to the code structure. It isn’t in my immediate plans to do any work on the newer Namco stuff, although I will be cleaning up these old ones a bit more and would at least like to reduce the number of ugly hacks in the code, and maybe improve functionality a bit (I’m sure System FL can be much better)

i see , thanks for the lenghty explanation ; any form of progress or improvement is appreciated
by the way (not really) , there’s a pretty unusual bug with rave racer in mame and i don’t think it’s mentioned on mametesters (i can only find a post on mameworld about it)
i know you’re not going to look into it yourself but i think it’s quite obscure / bizarre
basically , you can access the “mirror” versions of the tracks via code
but when you attempt to do that in mame you end up with a slightly messed up gui and flipped controls but the track itself doesn’t change at all

the visual result you’re showing makes sense

looks like the entire polygon layer should simply be mirrored, however as the speedometer is part of that layer they manually move it (hence why it appears on the wrong side now)

probably just a single bit somewhere telling the hardware to render the 3d framebuffer flipped.

Close: There are two bits indicating to flip the view matrix’s X axis or Y axis. With some well-placed printfs I managed to track down the X-flip bit, and hap did the rest.

thanks haze and hap , that was fast (and,to be honest,i wasn’t even expecting a fix)
looks like i’ve been barking up the wrong tree / dev all this time when it comes to bugs in mame..

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.