With MAME/MESS/UME 0.148 out (see below) I’m going to take the time to write a bit about it and show you some screenshots, as I’ve done several other releases, simply because I believe that it is more meaningful than some jargon in a whatsnew file.
Talk of the town is are of course the improvements made to the original Playstation emulation, you can follow the thread at bannister.org (the MESS forums) for some screenshots of that one, and I’ll be picking some choice cuts out of it later in this update but for now I’m going to shift the attention to something else.
0.148u1 also sees numerous improvements made to the Sega Saturn driver, and while it still has a long way to go before compatibility can be considered good the changes do bring a couple more titles into the realm of playable with fixes allowing inputs to work in several games in addition to other changes giving an overall compatibility boost. If you’ve followed this blog for a while you’ll know I like my puzzle games, and even did a feature in the past on them, covering a number of Saturn titles. I’m happy to say that changes made in the latest build bring another one “Heisei Tensai Bakabon Susume! Bakabons” (bakabons in the saturnjp softlist) into the realm of playable thanks to Kale fixing an issue with the controllers.
It’s your traditional ‘block dropping’ puzzle game, but in this case you have to surround 2+ objects of one colour with 2 of another, for example creating a chains of ‘Red, Blue, Blue, Red’ or ‘Yellow, Red, Red, Red, Yellow’ It’s also full of quirky Japanese FMV clips between rounds, and while the whole thing has a distinct low-budget feel to it I find it to be another enjoyable game in the Saturn library and is definitely a title which would have been fully suited to an arcade release.
(Kale’s work on the Saturn driver makes Japanese Saturn game Heisei Tensai Bakabon Susume! Bakabons playable in UME/MESS 0.148u1)
Other Saturn games have benefited too, platformer Rayman has also seen a marked improvement and while it still has some graphical issues, you can at least play it a bit now (I’ve only tested the first level mind you)
(Rayman, the happiest character in any video game, now less likely to make you sad)
A few tweaks to the SCU DSP emulation also helped games like Croc, and certainly improves things despite it being more of a kludge than a real fix, the entire thing could do with being made a CPU core, even if the cost to performance might not be desirable. Actually the performance already isn’t desirable for many of the 3D games, hopefully there is room to optimize at least some of them, although a couple of ones I profiled didn’t look hopeful.
(Croc also benefited from Saturn improvements, although currently runs slow and still has glitches)
It’s with a word of caution I mention this next thing, because battery saves in Sonic 3 are actually broken in 148u1 (although they have since been fixed)
You might be aware that Sonic and Knuckles for the Genesis employed ‘Lock-on’ technology, allowing you to plug Sonic 2 and Sonic 3 in to them to give special games, in the former case a version of Sonic 2 with Knuckles in it, and in the latter the ‘complete’ version of Sonic 3, featuring all the Sonic 3 and Sonic + Knuckles stages as well as the ability to play as Knuckles in Sonic 3 with brand new routes etc.
Most Genesis emulators (all PC ones?) simple use a hacked up ROM to support this, merging the data from Sonic and Knuckles with the data from Sonic 2/3 to allow this to work, and it works fine but you miss one key feature. On real hardware you could plug ANY cartridge into the Sonic and Knuckles one, and while you’re presented with an initial ‘No-Way’ screen that can be bypassed by pressing buttons A+B+C on the pad to give you a single unique special stage level generated using the cartridge you plugged in as the random seed.
(The well known cases of Sonic & Knuckles being locked on to Sonic 2 and Sonic 3)
As of 148u1 MESS has moved Sonic & Knuckles ‘lock-on’ support to the slot system, meaning that launch syntax of “ume genesis sk -cart2 waniwani” will tell UME/MESS to launch Sonic & Knuckles with ‘waniwani’ (Wani Wani World, one of my favourite Japanese Megadrive games) in ‘cart2’ which is the name MESS assigns to the slot on top of the Sonic + Knuckles cart. This is actually the best case to demonstrate the new feature in MESS, because with other emulators you’d have to glue the rom files together manually to try random game carts with it but with MESS it’s now a breeze and you can easily get the expected ‘No Way’ screen and unique level for any cart you fancy plugging in.
(Sonic & Knuckles locked on to a random game, in this case Wani Wani World)
Sonic 1 is actually another special case like Sonic 2 and 3, although slightly less known. Like inserting any random cart you’ll get the ‘No Way’ screen, but with Sonic 1 the screen isn’t dimmed, and doing the A+B+C combo gives you a game based on the special stages with literally thousands of stages (134217728 apparently) and a password system. There are so many stages it would actually take several hundred years to play them all ;-) “ume genesis sk -cart2 sonic” gives you that lock-on combination anyway.
(Sonic & Knuckles with Sonic 1 locked on)
Anyway this progress from etabeta shows how the MESS slot system can be flexible and allow you to use the systems in a way that closely mimics how you would use the real hardware and while it was possible to run the pre-merged locked on files before, this still manages to bring something new to the table. The downside of this is it’s now a little less convenient to launch the combined Sonic & Knuckles + Sonic 2/3 combo because you have to manually specify it, although I hope maybe one day the softlist can simply have an alias that does it for you.
In MAME you have just the solitary new playable game if you ignore the video poker titles, that being Brixian as featured in a previous update here. There are some worthwhile clones supported tho, a complete dump of the Japanese version of WWF Superstars means you can see a very American product presented in a Japanese way, with the use of Japanese text being significant enough that the version released over there required a different graphic rom to accommodate it, something of a rarity.
(Brixian was the only newly working game in MAME 0.148u1 not falling under the gambling category)
(..but it’s good to see new clones still turning up as well, including the Japanese version of WWF Superstars)
The other big thing across both projects is a round of cleanups. A lot of drivers are affected by these so-called ‘tagmap’ cleanups, something I hinted on in my 2012 article. While claims of miraculous speed increases across the board are somewhat unfounded these code cleanups have helped win back some long-lost performance in several drivers, and for some really abusive ones the gains are significant although those cases are few in number. It’s not going to make much difference to high-end drivers where the overhead caused by even high levels of hash lookups isn’t significant compared to the rest of the emulation, but for a number of lower-end drivers it provides a timely speed boost.
PSX, as I mentioned at the very start has seen some significant improvements over the past few weeks. Primarily the controller and memcard support was fixed, meaning games built using the dualshock libraries now accept inputs. Fixes were also made to the CD code allowing many more games to actually boot in the first place.
I should probably start by saying that it isn’t perfect, many games are missing FMVs, showing only blank screens, and for a large chunk of the Japanese library such conditions can’t be bypassed, leaving you often with nothing but a blank screen and some looping audio from the FMV. Furthermore almost every game using CDDA for the audio has severe issues of bad audio being played, often ear-popping data tracks being played instead of the actual audio ones. Some games also still fail protection checks so only cracked copies work, and for games using libcrypt protection (of which there are many in Europe at least) don’t currently work because there is no way to integrate the SBI subdata files from redump.org into the CHDs; some of those protections are subtle and will only crash the games after a few levels (eg. Spyro 2)
With that out the way I’ll say that many, many games are playable; European exclusive Terracon is one such game and a game I really enjoyed back in the day although I’d completely forgotten what it was called and was unable to find anything to point me in the right direction until somebody else remembered what it was called for me and I gave it a spin in MESS.
Harmful Park is a Japanese PSX game, a great Parodius style shooter to boot. For all people go on about how great the 2D games were on the Saturn I’d argue that the PSX actually had the better titles overall, at least in Japan, even if the Saturn had stronger arcade conversions of the Capcom titles. Anyway Harmful Park would have been right at home in the arcades, it’s bizarre, well themed and throws in some imaginative ideas to provide a memorable experience.
The Playstation is also home to a number of games where the arcade originals are not yet emulated. Raiden DX is one of these, and thanks to the flexibility of MESS when it comes to screen rotations you can easily run it in the mode designed for a rotated TV and get the full arcade-like experience from it. This is one where the intro movie is black, but luckily if you leave it the game will get to the title screen and play beautifully.
One version of ‘The Block Kuzushi’ was released for the Arcades, but several others were released for the Playstation as part of the budget ranges in Japan, including a Hello Kitty themed one! They’re actually very good Breakout / Arkanoid style games.
Another genre I enjoy is the ‘clear the screen of enemies’ type of games, best known in the arcades in the form of games like Bubble Bobble and Tumble Pop. On the Playstation IREM put out a fine example of this Genre in the forum of Gussun Paradise, which takes the characters from their popular Gussun Oyoyo (Risky Challenge) and puts them in a unique game in said genre. It’s a perfect example of how 3D hardware can help this type of game too, just by adding little effects here and there like spinning the playfield around in certain situations.
Anyway, that’s enough talking about the Playstation, and while I’ve highlighted mostly 2D arcade-like games a great number of others are fully playable too and I’ll probably do an article showing even more of them at some point in the future. Not everything mentioned here is listed in the softlists yet, so don’t worry if you can’t see them.
Back to MAME, a couple of dumps of IGS036 based games showed up, mostly gambling / mahjong type games, but it’s interesting to note because it’s the CPU used on PGM2 titles. Unfortunately the CPU is the successor to the dreaded IGS027A used on many PGM1 games and IGS gambling boards before it, and we still have no way to deal with that one and this is already confirmed to have per-game internal ROMs just like the 027A does, and they’re likely secured just as well. Furthermore the external part of the program ROMs are well encrypted (some of the best guys on the MAME team say it’s not obvious) and the more recent ones even use secure modules to store the external roms as yet another level of security. The new dumps there only confirm what we didn’t want to know, and that is that these things are very, very nasty, don’t expect to see them emulated any time soon, if ever.
A couple of other interesting bits did turn up, the prototype of Super Pinball Action is very interesting, if not slightly confusing. It dates from 2 years earlier than the release build and has significant changes to both the hardware and the way the game is programmed. Even simple things like the palette format differs on this compared to the final build, as do the bits in spriteram used for priority and colour selection (they appear to be swapped around) Furthermore the prototype uploads data for all 4 background tilemaps on startup and uses the scroll registers to show the correct backgrounds, whereas the final build simply uploads them as and when it needs them, always keeping the scroll registers at 0. Registers are also moved around, inputs are moved around and I’m actually amazed by how much the final display does still resemble the release version. The most confusing aspect of all tho is that there is an extra Z80 on the prototype, and a graphic rom for a horizontally orientated tilemap of some sort, containing the ‘gal’ graphics which aren’t present in the regular graphic roms. This leaves me wondering if the prototype version is some kind of dual screen setup. Unfortunately the board had already been partially stripped for parts, with the sound Z80 removed, but hopefully all the roms are intact; we at least *seem* to be ok aside this mysterious extra program ROM and tile rom I wish I could make more sense of. Ignore the graphical glitch on the screenshots below, it’s caused by missing priority handling in the proto which isn’t yet playable.
(The prototype version dates from 2 years earlier and has an extra CPU and tile rom for unknown purposes, possibly a 2nd screen?)
I mentioned gamblers earlier, the work done on ‘New York Joker’ and ‘Number One’ was all included, with both games in working state. I’ve also been sifting through some new dumps and found that the roms from a ‘Hot Mind / Hard Times’ board ANY dumped were actually another version of Lucky Boom, this one on different hardware using a PIC for sound like Hard Times (unfortunately protected, but the Hot Mind one appears to work) It seems Playmark liked to put their gamblers on multiple platforms because as mentioned in the 2012 update we’ve seen Hot Mind on multiple boards too. It’s a handy dump to have too because it should hopefully point us in the right direction for some video registers and allow per-game kludges to be removed. Another thing ANY dumped is a game called ‘Fruit Fresh’ (although startup messages call it ‘Dream World’) I haven’t figured out how the reels work on it yet tho, might be some kind of raster effect / partial update scheme as the scroll values appear to be written multiple times in a frame.
(Work in progress on a Fresh dump of a Fruity game)
Bug fixes are important to, be they for regressions, or long-standing issues with games which have been present from when they were first emulated. GTI Club is the recipient of a set of such fixes, with improvements to the ROZ layer amongst other things allowing for the sun in the sky to be correctly rendered instead of the Winners Don’t Use Drugs logo hovering up there, and while that was certainly cool in a surreal kind of way it definitely wasn’t correct until now, it’s good to see Ville active again!
(The sun is out and shining bright thanks to fixes to the Konami ROZ layer emulation used by GTI Club)
One bugfix that isn’t specific to a driver comes from Phil. B who has mentioned in the comments below that he fixed an important core bug relating to -aviwrite for 0.148u1 as well. All prior versions would introduce a glitchy frame in the video when crossing 2GB boundaries on the output file and this is evident in many of the videos I’ve uploaded to my YouTube account. While it might sound like a minor niggly issue it was certainly a major source of irritation if you wanted glitch-free videos prior to this release.
There have been system / game specific fixes in MESS too, and while the Chinese release ‘Ya Se Chuan Shuo (Chi)’ for the Megadrive / Genesis is listed as one such case where the protection has been emulated and the game should now be working it appears to have other issues here, crashing on startup so I’ll be leaving that one until u2 I think. The unlicensed Wisdom Tree games for the Gameboy also suffered a regression at some unknown point in the last year or two, 0.148u1 brings those back up to working state, and while the religious overtones might not be to everybody’s tastes several of the games are actually just takes on the Boulderdash theme.
(The Gameboy Wisdom Tree releases had regressed at some point, 0.148u1 fixes them again)
While the above Gameboy games almost certainly worked at one point in the past several NeoGeo Pocket games didn’t due to bugs in the TLC900 CPU core, a number of those bugs were identified and fixed by Wilbert Pol, resulting in additional working / less glitchy games. Noted improvements include the original NGP Pocket Tennis as well as NGPC games ‘SNK Gals Fighter’ and ‘Mezase! Kanji Ou’.
Tweaks were also made to the Master System drivers, with subtle behavioral differences of the Korean systems emulated, needed in order for the numerous MSX conversions that were released over there to work, those games were often incompatible with the official baseline systems from Sega.
Continued updates and improvements to the Software Lists, including new lists, compatibility status updates as well as fleshing out a number of the skeleton listings also occurred between 0.148 and 0.148u1 with special mentions to Microvision and also the Philips Videopac G7400 and Videopac+ G7400 where there were also some significant driver improvements made (US users will likely know them as the Magnavox Odyssey 2/3)
I mentioned Microvision, and it’s certainly a significant one. The driver was added in 0.148, and is still considered non-working and from my brief testing of Connect 4 it’s easy to see why, the pieces rarely end up where you tell them to drop and, an it seems entirely random that the computer decides to drop a piece where it wants one. Clearly there is still work to do, but it’s an important system to have emulated, it’s generally considered to be the first handheld video system, and the actual game cartridges contain no ROM chips, but instead MCUs with internal ROMs, so simply having them dumped is a miracle (even if I think there is some question over possible bad bits) Here are some screenshots from Connect 4 running.
(Microvision screenshots.. not specs of dirt on your screen)
So before you ask if I’m serious, yes, I’m serious, those are the screenshots, the unit is so early it had a resolution of just 16×16 pixels, and the pieces for one player are represented with a 2×2 cross-hatch pattern, and the other solid 2×2 squares. That’s it, here are some enlarged versions of the same thing, just so that you can see them on a monitor! You’ll definitely want to run these with a high -prescale value in MESS if you don’t just want to see a washed out blur!
(Microvision screenshots.. magnified 1600%)
As I said, keep in mind it isn’t considered working yet, but at the same time understand how incredibly cool just being able to run that is, well unless you were expecting the Microvision to be something made by Microsoft before the Xbox I guess.
Going back to the previously mentioned VideoPac/Odyssey systems, not only have they received basic softlists in 0.148u1 (with plenty of todo notes indicating where things could be cleaned up, and what still need sourcing) but the emulation has improved significantly, from timing details etc. on the basic unit to huge improvements to the G7400 (which is still marked as non-working, but has several playable games now) Let’s start by looking at some G7000 titles in the form of Pick Axe Pete, and Attack of the Timelord! (likely released as Terrahawks in Europe)
(The original G7000 / Odyssey 2 releases of Attack of the Timelord / Terrahawks and Pickaxe Pete)
Fairly basic looking games, but Attack of the Timelord does make use of the speech unit like several games on the platform (actually there’s a MameTesters bug stating that several others should, but it doesn’t always work)
Now the G7400 received enhanced versions of both these games (as Terrahawks and Pickaxe Pete) and the emulation of them is much better in 148u1 than it was before now. The screenshots below show the additional backgrounds present in the G7400 versions
(The enhanced G7400 / Odyssey 2 releases of Terrahawks and Pickaxe Pete)
Both are actually charming little systems with games, that while often conforming to standard genres do try to do things a bit differently, even if it can make some of them a little difficult to understand at times. The pictured games might not be the best example of this, but still it’s a curious early system for those willing to do a bit of digging, just be warned not all games are fully compatible across NTSC/PAL regions, so running the Euro version of Frogger on an NTSC Odyssey will give you a flickery mess, the softlists, while making things easier, only currently list the regions not the compatibility, also like I mentioned the G7400 is still marked as NOT WORKING, so your mileage may vary.
The ZX Spectrum emulation hasn’t seen any improvements in 0.148u1, but it’s another one where the softlists have been fleshed out a bit, specifically the Spectrum +3 Disk listings have had the SPS releases incorporated, and having A-grade dumps listed as being known is obviously a good thing as they provide an absolute reference for quality so when they fail we know it’s our emulation that’s to blame, not the images.
(The ZX Spectrum +3 Software List now lists the SPS dumped IPF images, which are a good benchmark to assess driver compatibility against)
The MSX is another system where we haven’t really seen any improvements in the new release, but the softlists have been improved, and are now a lot more complete. This again allows for testing and building of compatibility lists, as well as providing a more complete view of what was released on a system. When I did my writeup looking at some ports of classic games the coverage of the MSX was weaker than it should have been because the lists were incomplete.
(The MSX Software List now better represents the platform)
It’s interesting to see how official Home ports of things like Galaga compare to the unofficial ‘Fantastic’ Arcade port mentioned in the 2012 writeup.
The whatsnew for 0.148u1 lists the Vector HLSL, but it’s still turned off at source level, so any changes to settings will have no effect, that’s one for the future rather than something you’re going to play with in u1.
Fixes for a couple of things mentioned in the 2012 write-up have also been made by the developers, including improvements to the control handling in Armadillo Racing. The problem with Winning Run was also identified, but not fixed; the game turns on the TMS co-processors before it has uploaded code to them, this makes the behavior unpredictable and can cause out of bounds accesses that will crash MAME on some systems (like mine..)
The tagmap optimizations weren’t the only ones made for this release either, some drivers got specific attention, for example I put a lot of work into optimizing and improving stability of the Virtual Boy driver, you can now tell that Bound High is actually running too fast, although it’s still strangely addictive and I’d actually class it as my favourite game on the platform even if it’s a prototype and didn’t see a release back in the day.
(Bound High on the Virtual Boy, aim your bounces to land on the enemies, now with optimized driver)
The work on MIDI related technology has continued in u1 with Midi-out now being supported and hooked up to both the Apple 2 and PC drivers, allowing said emulated drivers to control external MIDI devices.
For general use you’re unlikely to notice too much, but there is one slight issue with this in that the timing when communicating with Midi devices isn’t quite right. The reason for this is due to the way MAME time and REAL time are only synced on a per-frame basis (and thus real world inputs and outputs if we don’t want to buffer them). A change was temporarily made to sync screenless systems at a far higher frequency but doing so makes MAME/MESS more prone to slowdowns as you can’t have any performance spikes within any single sub-division of the time within each ‘frame’ or the overall speed will drop below 100% and several drivers were doing that (CPU usage over a frame is a lot less smooth than you’d expect, and would be even worse with video based systems where the render call tends to happen as one single ‘spike’) Anyway, it’s possible that will be configurable in the future, at least for screenless systems, and maybe even ones with screens too, just be weary of the performance issues.
As an aside you can actually notice a similar performance spiking in a game in MAME already for other reasons. Pasha Pasha 2 (pasha2) as a game runs the game logic at 30fps, but the screen update is 60fps, this means that it spends an entire frame each frame doing NOTHING, and then has a heavy frame where it does everything. As a result you can unthrottle it to run at 120% (because the ‘nothing’ frames then take no time at all to process even if the heavy frames are still significant and this skew the results) but if you leave it throttled it only runs at 75% because the real bottleneck is the heavier frames. You’d start to see the same (confusing) behavior for many unexpected drivers if you attempted to sync MAME time and REAL time at a higher rate than once per frame.
As you can probably tell by now 148u1 has been a very MESS-centric update, at least as far as the interesting bits of progress go but hopefully I’ve also highlighted enough smaller bits of MAME progress to show that we’re still giving it plenty of attention. I expect this general trend to continue in the future as the amount of arcade bits we can work on and realistically make any progress with in a short space of time continue to wind down, especially with the likes of The Dumping Union struggling due to an issue with their donation system. I do have some MAME targets still in mind, so if you really only care about the arcade stuff then don’t worry, but I do hope some of the coverage here opens up eyes as to where the progress is heading, and how, especially in Japan, there really were a lot of arcade style games even on the non-arcade platforms.