The 0.150 release of MAME / MESS has been announced, so here are compiled versions, including the complete UME build combining the two projects into what you could consider the fully unlocked version of MAME containing all the MESS drivers.
I hope to do a sticky post explaining the current UME goal and the pros & cons of such an approach shortly, so for now I’m keeping this introduction brief.
The whatsnew files for MAME and MESS. Naturally UME includes all this progress.
MAME / MESS binaries – includes 32-bit and 64-bit Windows binaries, and all tools – separate MAME/MESS executables. here
UME binaries – includes 32-bit and 64-bit Windows binaries, and all tools – combined UME executable. here
Thanks to my friend for compiling / packaging these up while my usual compile machine is being rebuilt :-)
source is unmodified from official source.
Points of Interest
The gap since 0.149u1 has been a significant one, partly fueled by a lack of time on the part of the current project coordinator and part due to a decision to reshuffle the release system in a changing development climate. From now on it is very unlikely there will be future ‘u’ releases, but actual integer numbered releases should be a bit more frequent than they have been over the last few years (but not as frequent as the u builds were)
One significant area to note is that Phil Bennett spent some time reworking the Double Dragon 2 driver a bit based on the schematics, improving the interrupt generation etc. This should hopefully bring the overall speed and slowdowns closer to the original hardware and solve a persistent crash bug that would sometimes occur. It’s probably not quite perfect yet because the raster effects on Thunder Strike (a Kyle Hodgetts conversion on Double Dragon hardware) are still off by a line or two, but it should be getting closer!
In the MESS camp, while for the most part not yet in a working state, Robbert has been doing some tremendous work clearing a backlog of dumped terminal systems by creating skeleton drivers for most of them. These aren’t particularly exciting but are a good demonstration of how our projects cater for everything including really obscure things with little practical use today. Hopefully somebody will pick them up and start making them more functional, that’s what teamwork is all about.
This release of course includes support for the Bubble Bobble 2 prototype shown below, in addition to Panic Road, Casanova, Puzzli 2, Double Wings (and a whole bunch of related Data East progress)
(A selection of things shown previously on these pages are included in 0.150)
As I mentioned above, some other Data East hardware games should benefit from the recent progress, of note Funky Jet certainly has some changed behavior compared to previous releases when entering the final set of levels, and I imagine some of the issues people were having with Rohga should be improved too, assuming they weren’t original hardware bugs. The work done on the Data East protection means the code is much more trustworthy now, and in all honesty knowing what we know now and knowing that not all cases were handled correctly in the previous simulation(s) I really wouldn’t want to us anything older than 0.150 for these titles at this point.
(Rohga and Funky Jet were both already considered working but some subtle protection related behaviors are improved thanks to the new code in 0.150)
Phil Bennett also improved the emulation of Taito’s Midnight Landing, promoting that to a working state, while also doing work to bring an obscure music based game called ‘Tap-A-Tune’ up to scratch. You can read about these things on his blog The only version of Midnight Landing dumped appears to be aimed at a German audience, with many strings translated to German, even if the dipswitch is set to Japanese, I hope a proper English/Japan set turns up one day!
(Tap-a-tune and Midnight Landing are 2 new working drivers)
In addition to what’s already been mentioned Phil improved the sound emulation in Top Speed / Full Throttle, fixing a number of long-standing (since the driver was added?) bugs in the emulation there.
Puzzli 2 was mentioned above but some other PGM titles are improved in 0.150 too. Knights of Valor 2 Nine Dragons (aka Kov2 Plus) can now, thanks to XingXing use the proper internal ROM from that game rather than relying on a modified version of the Kov2 one, and while there were no *obvious* problems with the previous emulation it was entirely possible that some areas of the game would not function correctly or that the game balance was slightly wrong due to differences in the internal ROM tables etc. Oriental Legend Super was also improved with some external contributions and now properly loops through the entire attract mode, displaying the high score table instead of crashing as it did before. As a result of these improvements it has been promoted to working, although I haven’t personally verified the protection simulation as complete (but hopefully it is now)
(Emulation of PGM titles Knights of Valor 2 Nine Dragons and Oriental Legend Super was also improved)
Luca also returned to action, contributing a driver for Poka Poka Satan, again you can read about that on his blog. The game has some alignment issues on one of the screens and the readout of one of the ROMs from the board we have didn’t match the checksum printed on it, I don’t know if these issues are connected or just an emulation flaw. The overall design of the cabinet is interesting, with 3 screens however I have to question the wisdom of a game where you hit screens with a hammer as quickly as you can, I imagine the maintenance costs of these must have been horrendous!
(Poka Poka Satan is a 3-screen game and plays like a whack-a-mole clone)
One word of warning with 0.150 however, the VECTOR HLSL is broken, the dev involved with it hasn’t had time to fix it for personal / work related reasons and a decision was made to put out a build rather than further delaying things until it got fixed. If you’re running a vector title please ensure you turn HLSL *off*. For regular non-vector titles the HLSL code should be more stable and feature complete than ever however.
Clones don’t usually interest people too much, but are important and also an area that a vast number of people can contribute to. One that might be of interest is support for a newer revision of Dodonpachi Dai-Ou-Jou Black Label, quite what is fixed in this version I don’t know (some people have complained about a bug affecting 2 player mode in the past, so it could be that) but it’s good to have the existence of this version documented. The way Cave mark revisions is subtle and sometimes they don’t actually bother at all. In this case the additional ‘.’ in the date string is used to indicate the newer revision.
(The newer set, left, has date code ‘2002.10.07.Black Ver’ instead of ‘2002.10.07 Black Ver’ displayed in the older set, right)
Street Fighter II has many clones as well, and I’m sure some people are sick of hearing about them but again one of the additions here is interesting / significant. ‘Street Fighter II: The World Warrior (Japan 920312)’ is by far the newest revision of Street Fighter II found to date, and was actually released just a day before the Champion Edition if the date code is correct. In 99% of cases the ‘best’ version of any game will be the newest Japan set because typically the native Japan sets have the best game balance and are the most complete versions while newer sets have the most bug-fixes. For a title as significant as SF2 it is therefore quite a major find to discover the existence of this version.
(This is the newest known version of Street Fighter II)
There were a couple of other Japanese clones with significant changes too. The Japanese Grand Striker has a different selection of teams (the Euro / US ones actually have an extra graphic rom just to add flags for some extra European teams in place of the ones in the Japanese release) This has further impact because the Japanese version actually reads out the team name when you make your selection, the US / Euro versions can’t do this because they don’t have modified sample roms containing the extra speech clips. I have however demoted that game to NOT working because we never did figure out how the background scaling is meant to work properly and it does impact the overall quality of the emulation to consider it as having never worked properly and prematurely promoted IMHO (my fault in the first place for being too optimistic)
(The Japanese Grand Striker, right, has a different selection of teams, and one less ROM populated on the PCB)
Sticking with the theme of Japanese sets we also see support added for the Japanese release of Chase Bombers, and the Japanese Turbo Outrun. The Chase Bombers driver could certainly do with some more work overall, maybe this will act as a timely reminder to revisit it?
(Japanese versions of Chase Bombers and Turbo Outrun are also now supported)
A version of Enforce with support for analog controls the ‘3D’ cabinet used by the Japanese versions of Continental Circus was also dumped (although it doesn’t look like the controls were hooked up properly, so I’ve no idea why it’s marked as working) Also a newer Japan revision of Cotton, a Japanese Punch-Out!!, a newer European Violent Storm and much more. As you can see it’s been a busy period for finding alt. revisions, many of them significant ones too! The new Night Slashers clone also gets a special mention here because it’s using a completely different sound system compared to the other sets.
(A Japanese version of Mechanized Attack)
There were some other clones found from more exotic regions, for example, sticking with the theme of SNK’s gritty war themed games, we have a Korean release of Ikari 3 (originally submitted to the Final Burn Alpha team instead) and if something a little more lighthearted is your thing then there’s the a Taiwanese version of Pipe Dream, both games are significantly localized.
(A Korean version of Ikari 3, and a Taiwanese version of Pipe Dream)
A big thanks must go to everybody involved in tracking down + purchasing these alt versions, every single one of them helps build a more complete picture of the arcade industry and show where things were officially distributed etc.
Under the hood changes in 0.150 are interesting too. There is now functionality to force the old interpreter cores to be used instead of the dynamic recompilers (DRCs), or can force the dynamic recompiler to just use the C-backend instead of the recompiled code. While neither is especially useful for your average user they represent a handy debugging aid and saves you having to actually recompile MAME/MESS if you want to test the difference. More controversially there is some code being added for a built in Web-server, so you can connect your browser to MAME. On the surface that might sound pointless, and nothing but a security risk, but it is turned off by default and could open the way to some remote debugging and control over the emulation with an additional machine (be it another computer or mobile device like a phone or tablet) connected to a running MAME session via a web-browser. The code is still preliminary, experimental and really lacking any useful functionality, but use your imagination and you can see how it might have potential benefits if further developed.
(Firefox web browswer connecting to localhost to view current MAME session, sliders can be adjusted in the browser)
Back to MESS specifics we’ve seen Kale doing a lot of work with the Dreamcast emulation bringing it to the point where it can boot some GD-ROMs. Overall performance (there’s still no SH4 recompiler), and lack of completeness of the video emulation means that the progress is only going to really be a passing curiosity for most people at the present time, however the nature of the work being done means the new code should still be relevant and useful if a day comes when the rest of the situation changes. It also opens up the possibility for further improvements to things like the SH4 because running any WinCE based software on the Dreamcast will require full emulation of the SH4 MMU, and some might even require proper emulation of the CPU cache; of course both these will make the emulation much slower, not faster(!)
(Some Dreamcast games start to boot, but performance is bad like Naomi in MAME, and inputs often don’t work, the titles shown fail to boot much further)
Offering even slower performance than the Dreamcast emulation is the Chihiro emulation in MAME. This hasn’t yet been translated back into a MESS XBox driver (and as tempted as I am to just slap some XBox bios roms in the MAME one for test purposes I fear the political fallout in the team would be too great) but even without that Samuele Zannoli has been working hard to get things booting further with a current focus on OutRun2. Samuele doesn’t have his own site, but R.Belmont did write about it and posted some screenshots. Currently only OutRun gets this far because various kludges and hacks are need to bypass the remaining unemulated hardware. No 3D is shown, the emulation is painfully slow, there are no inputs, and it does eventually crash, but it is impressive seeing it even run through that much of the code.
(Emulation of the XBox based Chihiro system running OutRun2 is slowly progressing)
Another area of interest lately has been the NMK drivers. trap15 has made various attempts at understanding the sprite priority system in the past, but eventually caved to some real hardware testing to figure out how things work. As a result of this the sprite rendering code for nmk16 has been greatly simplified, and now seems correct in all cases; it looks like NMK might have swapped some address lines on the sprite buffers to prevent Macross 2 and Thunder Dragon 2 being romswapped (that part still needs verification because tests were done on the Macross 2 board, but things appear a lot more logical now) As a result of this priorities are better in a number of NMK games, very obvious in Thunder Dragon 2 but clearly improved in man of the others. I say NMK has been an area of interest because a user named ‘rogra’ has also been working on a way to extract the internal ROM of the NMK004 sound MCU with good results so far, however that progress is time consuming and yet to be finished / submitted, I’m crossing my fingers I’ll get to write about it and put up a few videos for the 0.151 release or before tho :-)
(priorities in the 68000 based NMK games were improved)
There was one other newly supported game I didn’t mention at the start of the article and that’s Super Game Mega Type 1. The Super Game series is a collection of NES based multi-game bootlegs, popular in the mid-90s / early 2000s before bootleggers moved on to making xx-in-1 arcade based boards and MAME based bootlegs. Mariusz Wojcieszek added support for this one and it’s a good example of where MAME and MESS already have strong cross-over; these are essentially all console games hacked to work as arcades. There seem to be a couple of raster effect issues in ‘Rainbow’ (the status bar jumps up and down a bit) but otherwise all the games seem to be functional.
(The Super Game series are bootleg boards offering NES Console games hacked to work as arcades)
MESS has the Mattel Hyperscan listed as a new system, it shows some startup screens but I’m not really sure what to do with it (there are no inputs mapped?) So all I can show you are the startup screens for now.
(This was added to MESS, but I’m not sure how to use it)
All in all this is quite an important release regardless of your area of interest; there are improvements throughout the project and while it’s a shame some issues (like the vector HLSL) couldn’t be fixed in time I’d regard it as a version people would be well advised to update to.