Time flies.. I wanted to have something like this up for the start of January, it’s now nearing the end, but better late than never. Most of this hasn’t been proofread yet, but I’ll correct any obvious errors over time.
In a previous update I mentioned about wanting to do a write up of 2012, the highlights and such or maybe more along the lines of a general commentary of things I’ve noticed over the last year. Well that’s what I’ve tried to do here. Keep in mind that this is an opinion piece as much as anything, it isn’t exhaustive and people are free to disagree with any of it but hopefully a few of you will at least find it interesting.
#1 – Single Public SVN
Of course, one of the big highlights for me is MAME reeling in the work of MESS, bringing the projects closer together than ever although this makes for a serious question, should I be covering only MAME aspects of the project or the whole lot. As mentioned, the MAME whatsnew files are easier to reference because they’re neatly organized on the official site, MESS doesn’t have that (yet) but at the same time a lot of the interesting progress has been happening in MESS.
People have asked why I consider the bringing together of the projects a highlight, why I consider it a positive when some even see it as a negative especially when MESS does still lag behind for many popular systems and even with perfect emulation is unlikely to ever offer all the bells and whistles many of the standalones can offer; in part because a lot of those go beyond emulation into the field of pseudo-emulation, artificial enhancements and the like.
For me it’s simple, the work being done in MESS is the future of the project, arcades were more or less a product of a generation, all but dead today. MAME is our brand, and by always breaking new ground managed to cement a place in history of its own. MESS on the other hand has always been a case of missed opportunities, at least in areas people are likely to notice.
Now, don’t misread what I’m saying here, we’re still not offering MAME and MESS as one single package like I do with UME, but having the code sitting side-by-side so that people who see one part of it also see the other is a huge improvement over the previous situation of 2 SVNs and ugly merging between them.
Like with everything, it’s important to evolve to stay relevant, stay active and the above situation creates something of a quandary. MAME plays an important role, it’s a recognized symbol for documentation, preservation and providing an open gateway to the past, all very important things. It is however generation locked, you can trace a clear decline in levels of interest in MAME by the generation because arcades mean nothing to people under a certain age. As a result MAME, while having a secure place in history is also becoming increasingly irrelevant to the very people who are likely to be able to take it forward. The MESS aspect provides that relevance again, it keeps the project alive, and active, keeps developers on board and enhances the chances of fixes and improvements being made to the project as a whole but due to its sketchy history, lack of awareness and lack of an established brand like MAME I feel will struggle to establish a foothold alone.
I’ve always felt there is a tight window of opportunity to rectify this, it has to be done while MAME is still a strong enough brand to attract interest, while there are still enough people paying attention to realise and acknowledge that is the direction in which things are happen, to learn and understand the MESS aspect, to get on board, to spread the word etc. A point before the next generation of systems hits seems ideal to me, if people porting MAME to new platforms see that MESS is a part of it then MESS gets that exposure to a new generation; the good, and the bad. Right now even relatively modern ports such as MAME4Droid Reloaded *completely* ignore the MESS aspect (possibly because it wasn’t in the source for their base build) when in reality plenty of systems from MESS, especially the 8-bit consoles (where there are no complex controls) would perform well on the hardware targeted.
So yes, that would be my number one highlight of the year, was the tighter integration of MESS and the merging of the SVNs, 21 Aug 2012 I feel will go down as a significant date in the history of the projects, and while I still somewhat controversially believe we should be promoting the MESS aspect into the main MAME offerings sooner rather than later even the work done so far should help both keep the work being done by the MAME team relevant to new generations and prolong the life of both projects.
Equally as positive for me was that the code needed to compile the combined UME build was included in this new SVN making it an easy option for anybody who compiles the project.
For these reasons hopefully you’ll understand why the remainder of this article references both MAME and MESS, because to me they’re actually just two parts of one thing and progress is intertwined and heavily related.
I’ll come back to this more later, but for now let’s swiftly move on.
#2 – The Rare, Endangered and Forgotten
I can theorize about the risk of MESS being forgotten, or MAME stagnating and becoming irrelevant all day long, but what we do know for sure is that it did happen to a number of arcade games, remembered only vaguely if at all, or simply so scarce sourcing them at all, let alone playing them, is impossible.
That of course is not a good situation, for people who do remember them it can be maddening, try explaining to people about a game you played which isn’t in recorded history at all and most of them will probably just think you’re either loopy or just making the whole thing up.
The list of rare, and mostly forgotten, or even thought to be extinct games emulated over the past year is impressive, it’s been a good year for Deco Cassettes all of which can be considered rare and fragile. It’s great news whenever one of these is found, although the ones we’ve found so far are still only the tip of the iceberg, there are plenty more we don’t even have so much as a screenshot for.
Oozumou – The Grand Sumo, Manhattan, DS Telejan, Skater, Fishing (Angler Dangler), as well as the cassette version of Super Doubles Tennis and the original version of Burger Time from when it was still simply known as ‘Hamburger’ were the key Deco Cassette finds, and combined with a bit of extra work on the driver things are in better shape than ever. Thanks to the hard work of people involved with the project it’s also easier and safer to dump the cassettes and analyse the dongles than it has been in the past too because the dongles no longer need opening up to read them. The likes of Hamburger might not appear important on the surface because you can already just run the regular ‘Burger Time’ game, but it’s important to see where the game originated, and also significant because this is the version from which the Cook Race bootleg was derived and thus an important piece of the jigsaw and shows once again that being first to market was often very important for the bootleggers back then.
(Angler Dangler is one of several rare Deco Cassette games now emulated, probably the most well known of them to be found in 2012)
(In Japan it was simply known as ‘Fishing’ that version was emulated a few months earlier)
(The Deco Cassette System had its token Mahjong games too, this one is now the first one emulated)
(Skater is a hidden gem on the system, and doesn’t appear to have seen a non-cassette release)
(Manhattan is fondly remembered by some US based MAME users for it saw a brief appearance in some arcades over there)
(The original Japanese release of Burger Time was simply known as Hamburger, and appears to be the source of the well known Cook Race bootleg)
(Oozumou – The Grand Sumo was another exclusive to the cassette system)
(The cassette version of Super Doubles Tennis was also less well known than the ROM PCB version)
Last Survivor made big news too, as you’d expect from a much sought after Sega title. It might be borderline unplayable without the original controller device but at least having it emulated opens up the real possibility of somebody being able to reconstruct an original multiplayer setup for it; finding just one copy of it before was tricky enough, never mind the 4 you’d need for that!
(The FD1094 encryption module on Last Survivor survived long enough for it to be read out but we’re on borrowed time with all of these now)
Rise of the Robots crept in the first release of this year, and this is eligible for my year in review, and even if it was technically a 2013 build the work in progress videos had been shown in the final weeks of 2012. That one was an extraordinary case of somebody still having a working HDD of the game which was only ever a limited prototype / location test everybody has assumed was long gone. The actual motherboard was in poor condition, no longer functional but the boot ROM could still be read, the HDD was still in good condition. The final part of the puzzle was Phil B who managed to whip up a driver the relatively obtuse platform, made by Bellfruit, better known for their Fruit Machines, in relatively no time at all, impressive. It’s terrible, but when you consider the amount of hype the game received back in the day before everybody realised it was terrible then you’ll understand the significance of this.
(Rise of the Robots was a prototype on Bellfruit’s Rasterspeed hardware)
3 on 3 Dunk Madness was another prototype game discovered, interestingly a US build, which when you consider that most games were developed in Japan, and this, being a Video System game was also likely a Japanese development it is quite unusual. It’s also a prototype containing a lot of debug features which may, or may not explain the poor performance of the actual game. It also raises one more question, were there any other games on this hardware platform, the only game known to be using the same board prior to this being dumped was a quiz game released 2 years later, maybe Video System just recycled the boards after this game failed?
(3 on 3 Dunk Madness, A Video System prototype)
Fresh in the mind are the two recent finding in Italy, Grasspin and Planet Probe, both likely location test builds, or prototypes, each significant for a different reason. Planet Probe is likely an Orca / Kyugo development, basically the roots of Toaplan, who would in turn become the roots of companies like Cave and Raizing and people who have played it have even commented that it throws an awful lot at you for an early game, even if it does become repetitive.
(Planet Probe, late Orca, early Toaplan?)
Grasspin of course you can read about just below, it appears to be tied to Zilec, the UK based developer for Jaleco, apparently it saw location tests in Greece and presumably Italy because that’s where the PCB was found, but until a couple of weeks ago it was all but forgotten.
(Grasspin, Zilec, Jaleco, never seen in Japan..)
Taito’s Sky Destroyer, maybe not a prototype, but certainly rare is another I’ve covered in the past, significant because it’s Taito and because the NES port saw a great deal of fame when it ended up being one of the staple titles in many of the Chinese NES multi-game carts and tv-game clones. The Sky Destroyer progress also inspired some extra work on Cycle Maabou which had been sitting in MAME for longer, but as non-working.
(Taito’s Sky Destroyer, known better from the NES port the arcade offers a bit of extra sparkle, including a tilting horizon)
(The work on Sky Destroyer prompted a revisit of Cycle Maabou because it uses similar I/O MCUs)
Silver Millennium also featured here, and while I wouldn’t ordinarily include Korean titles in this part of the list because most of them are just shameless rip-offs and hacks this one is an earlier and entirely original Korean game which alone makes it a rarity. The hardware did just turn out to be your every day cheapo Tumble Pop rip-off though.
(Silver Millennium was a rare original from Korea)
Some games are so rare and ill-documented we don’t actually know what they are. I featured an ‘ unknown Japanese horse gambling game’ in a previous update, and even to this day we don’t actually know what it is or who made it and due to its primitive nature it lacks any real form of identification. Italian games Claybuster, Gun Champ and Super Shot had a similar problem but I think we’re now confident which is which.
(This one is Model Racing’s Clay Buster, lacks a title screen but obvious from the gameplay)
(Again Model Racing, again no title screen, this one is Gun Champ)
(and this 3rd one by Model Racing should be Super Shot, just having the title on screen would have made things so much easier)
(as evidenced by this, because we STILL don’t know what it’s called or who made it)
Flipper Jack edges in here, an obscure Video Pinball by the unknown Jackson Co. I’d never heard of it before it turned up and I doubt many people reading this will have heard of it before MAME either (although some Flyers have been sold on eBay)
(Flipper Jack, lacks polish but is far from the worst video pinball I’ve ever seen)
Magical Speed also turned up out of the blue, with a contribution from a MAME user posting on the forums offering a dump of the game for emulation purposes. This one is slightly unusual in that it’s a Japanese card game from Allumer, but unlike most Japanese card games it’s using a regular deck of cards, not the ones used for Hanafuda titles or Mahjong tiles. As a result this actually means it’s easy enough to pick up and play even if you know nothing of the Japanese language.
(Magical Speed is a rare Japanese game using a regular deck of cards)
There are a number of MESS systems you could slot in here too, although emulation for many of them is still preliminary and a number lack any actual software to test them with, still having the old systems in the hands of people who care about preserving them and restoring them is a good thing. In this I’d include things like mainframes and business computers, the DEC Rainbow, the NEC APC, and the DEC VK100. Important steps have been taken towards emulating them and while they’re not going to make the headlines in the same way as ‘we found a long lost arcade game’ they’re still important pieces of history and having disks dumped is vitally important too because many of these will simply do nothing without an OS disk of some sort.
(The NEC APC is still marked as NOT WORKING, but already boots several disks and provides groundwork for future developments)
(The VK100 is in a more skeletal state and still fails self-checks)
There are other similar systems added in various states but none of them are going to make for interesting screenshots just yet, so I’ll leave it at those two, but needless to say it’s an important area just and many of the systems are very rare these days because they have no remaining practical uses at all.
In terms of actual gaming devices it was figured out how to dump the MCUs used for the games on what is recognized as the very first handheld, the Microvision, and that’s a very important step because poor design meant those were highly susceptible to ESD damage zapping the game CPUs while in normal use. The softlist for them did miss my cut-off date for things included in this article, but the emulation was submitted before that, so while there is work to do it gets a mention, just. No screenshots for it right now tho.
#3 – Diversity
Video based Arcade games only represent a small fraction of what the MAME core and emulated components can deliver. MESS presents the best showcase of this because it doesn’t have the hard ‘arcade only’ rule, so unsurprisingly that is where some of the more adventurous work is occurring.
I’ve talked about screenless systems in the past, and often such discussions rile some people as the connection to fruit machine games is a strong one and an area of gaming technology many seem to think would be best left to die, not be granted a place in MAME alongside what are seen as more prestigious products. In MESS however some of the systems falling under this bracket are much more interesting; Electronic Toys (the Parker Bros. Merlin) and a whole bunch of Synths all fall into the screenless category and development of drivers for the latter in the rear end of 2012 / early 2013 has spurred on the inclusion of the PortMidi library in MAME which should allow for the emulation of these devices to interact with real Midi devices connected to a PC thus boosting the practical uses for MESS to a whole new field.
(The Parker Bros. Merlin, a screenless system in MESS, real unit shown on the right)
Developments like this are exciting, I’ve talked in the first point made about work in MESS keeping the project relevant and this is just one such example, opening doors to do something you simply couldn’t do before, all within the framework of the MAME project.
If we look to the PortMidi integration, and the development prior to it we can see that the emulation of the synths also pushed forward improvements to the 68681 DUART emulation used by a variety of systems including various fruit machines, and the Taito Ensoniq sound system which actually happens to be the same tech as found in some of the synths but repurposed by Taito for a number of arcade platforms throughout the 90s. This has allowed code to be tidied up and given us a better understanding of why the Taito sound system is as it is (over complex!) because we can see how it has evolved from a device where things needed to be more flexible. This is a perfect example of how progress in one area of the emulator can help shore up another area when the two are seemingly unrelated to the naked eye.
The screenless systems people have noticed the most, and been the least impressed with us supporting are the Fruit Machines mentioned above, 20,000 non-working sets is a lot, and while most of them are clones (so the *real* number is a lot lower) it’s still non-trivial. When I embarked on doing those I’ll be honest, I didn’t realise just how many clone sets there were going to be, the existing Fruit Machine emulators typically used one set of ROMSs per game and that was it, and even after discovering that there was a dat file in which existing dumps had been recorded the disorganization of the thing initially led me to think each game most likely just used a bunch of ROMs, not that a zip with 20 files would actually be 20 sets and still missing a sound roms! That said, if I’d known everything I know now from the off I would have more likely been petrified at the prospect of sorting it all out rather than just mildly worried. We’re getting there though, slowly but surely and there is value to having these things documented properly, with proper sorting and verification that everything is actually what it claims to be; several people who repair / maintain the original hardware have already said thanks for the effort. Work has been done across the board on these systems and while it is too early to really appreciate most of it the moment it’s been pleasing (at least to me) to see early 90s classics like Electrocoin’s Sphinx showing some life. Pyramid, which is more or less the same game as Sphinx is also pointing at issues with our Z180 core and could be useful in fixing them.
(Sphinx is showing signs of life, although the protocol for the text display, the sound system and the reels aren’t fully understood, you can see roughly how the layout relates to the machine tho)
Improvements to the artwork / rendering system are vital to properly representing these screenless systems, and while I’d certainly consider the code a sub-optimal kludge one important thing done in 2012 was allowing fruit machine reels to be rendered in a such a way they appear to actually be rotating / scrolling, much work still to be done in this area though.
Pinball is the other big set of screenless drivers, ironically not as ill received as the fruit machines when in reality they’re far less likely to ever be anything but I/O testers in MAME. Maybe because people remember PinMAME and how it could be hooked up to an external application? As I’ve mentioned in the past most of these are having to be implemented from scratch because the old PinMAME code was allowed to diverge so far from the baseline project. The last few months have seen a number of them have basic functionality restored (ability to trigger sensors, get tunes to play etc.) although it’s still miles away from what PinMAME was and still can’t be connected to a simulated machine in the same way (although most people seem to have abandoned that in favour of non-emulated enhanced versions from what I can see anyway)
Anyway, between the Fruit Machines, Pinball and Mess work there were actually a couple of other interesting, more unique screenless bits and pieces improved or added and improvements made to aid in their operation.
One very handy feature added was the internal mouse pointer for systems with clickable artwork. This, combined with work done on the game 30 Test (added the previous year, but only gaining a decent layout and clickable artwork last year) provide a good reference point for just how functional a screenless system can be. Kung-Fu Roushi and Janken Man Kattara Ageru are two other screenless systems.
(30 Test and Kung-Fu Roushi are good examples of how screenless systems can be perfectly usable with an appropriate internal layout)
(Janken Man Kattara Ageru shows that the internal layouts needn’t be ugly either)
Not every mechanical game with balls is a Pinball either, Taito games “Ice Cold Beer” and clone “Zeke’s Peak” both saw progress too, although for the same reason as the pinballs all you can really do is trigger the various event sensors but in doing so you can still trigger the winning sequences, hear any familiar tunes etc. Anyway, me writing about these isn’t going to win anybody over, you’re either going to think they’re kinda cool because it’s the original code running, albeit without most of the game, or a complete waste of time and space because there really is no game to play.
(They don’t really look similar, but the left is the code of Ice Cold Beer running in MAME, the real machine is on the right, it’s a mechanical game, but you can trigger the events)
One area MAME and MESS both need to get a grip on is 3D games, the combination of fast CPUs, DSPs requiring tight sync and advanced, difficult to understand 3D hardware are not a good combination if you want to avoid cheating but it’s not an area where MAME wants to find itself locked to only 2D games and hardware because that poses a similar problem (in my opinion) to locking yourself to only arcades, it’s dead tech and a dead end.
MESS saw a lot of rumblings with N64 earlier in the year, a number of improvements which helped even with the N64 based bits in MAME (the Aleck 64 platform) but ultimately hit the sticking point of needing fast emulated CPUs with tight sync often to just boot and that’s before you even consider the 3D rendering. The worst part is it’s terribly slow, and the cores are already recompilers; to boost compatibility you actually have to turn the recompiler off at which point it becomes just painful. I guess the highlight there is at least it got looked at, the downside is nobody really has a solution. Many of the N64 based titles in MAME are presented at 2D games, but really it’s a 3D system, at 6-10% speed tho the performance woes can be hard to understand when all you’re seeing is a 2D game, they’re not easy to accept / understand for most people anyway when they remember running full speed N64 ’emulation’ on a 400Mhz PC back in the day and explaining that the emulation they saw then wasn’t really much emulation at all isn’t easy. Anyway, if I take a build from a year ago then ‘Hanabi de Doon! – Don-chan Puzzle’ crashes when you try to start a game, if I take the current build it doesn’t, so whatever changes have been made they’ve definitely helped compatibility at least.
(Hanabi de Doon! – Don-chan Puzzle runs on N64 based arcade hardware, 6-10% performance means it looks better than it plays tho)
If I’m to focus on the positives Ville has been active with a number of 3D systems, especially Konami ones. Systems like the Cobra platform on which Fighting Bujutsu runs utilize a triple PowerPC CPU setup, enough to intimidate even the most experienced of devs seem to have been taken in stride and while it remains a long way from being a playable game, let alone see playable framerates the work being done does underpin any further developments MAME might one day see. (note, can’t make screenshots of this, emulation seems to have regressed, crashing on boot, see his YouTube Video for what it’s meant to look like)
Thrill Drive (Konami NWK-TR platform) as well as the games on GTI Club and similar hardware (GTI Club, Solar Assault, Hang Pilot) also saw the similar attention, the Viper hardware bits (Xtrail Racing, GTI Club 2) also featured in updates late last year, although I believe are yet to be submitted (YouTube video from November). In all the mentioned cases you’ll want to spent some time tweaking the inputs and analog settings in MAME to something more responsive, and be warned performance isn’t good, at least not on a Core 2 Duo (Solar Assault is about 50% speed, the rest are worse) maybe a quad core significantly improves things here.
(The original GTI Club was popular in the Arcades, and is playable in MAME)
(Hang Pilot used an immersive dual screen setup to not only show the player the view in front, but also below)
(Solar Assault is a polished 3D ‘on rails’ shooter, and performs better than the other games in the driver)
(Thrill Drive, one of the few games I can think of where the attract mode glorifies crashes rather than the actual racing!)
Yet another Konami driver also saw work from Ville, in this case the Konami Hornet hardware, or in other words, the Silent Scope run on, edging that forwards as well. Silent Scope again has very poor performance because it’s a dual screen game, the scope view is actually an entire separate display, also the game is still considered non-working at this stage, despite the improvements made over the year.
(Progress was made on Silent Scope, but it’s still not working and performance is terrible as you’d expect from a dual screen 3D title in MAME)
Not content with Konami hardware, Taito Type-Zero was also touched, and some very impressive work was done there there leading to improvements. While none are yet playable, tend to have flickering 3D, obviously missing graphical effects like additive blending, and occasional crashes it is good to see some progress made. This covers games such as Landing High Japan, Battle Gear 1 & 2, Power Shovel Simulator, and Raizin Ping Pong.
(2012 saw progress on Taito Type-Zero, This is Battle Gear 2.. Car Porn!)
(and even Plane porn!)
Taito JC saw some work too, mostly modernizations, it was already one of the better emulated 3D systems but fixes over the last year, including some of the more recent changes to the 68040 MMU emulation do appear to have taken their toll on the performance.
Luckily it’s not only Ville tackling 3D hardware, some of the more established drivers have seen touch ups and improvements with the likes of hap making headway with the Namco drivers Phil S. left behind when he no longer had time for MAME, this meant that things like Armadillo Racing could slot in with relative ease once they were dumped. The supported set is a Japan one, and you’d think due to the sheer level of ‘crazy’ this game exhibits that it was probably only released in Japan, but some of the videos you can find of the game appear to show there was actually an official World / US release too. As of even now the trackball hookup seems nonsense compare to what test mode shows however, with UP acting as left, RIGHT acting as right and together them acting as UP, and no way to register any other directions unless I’m just missing the calibration menu someplace.
(Armadillo Racing definitely wins ‘WTF’ points for concept alone, and aside some control issues slotted in the relatively well developed System 22 driver with ease)
Namco’s older flat-shaded System 21 also had the various Winning Run games promoted to working state, but they appear to have since regressed, showing no polygons on first boot and/or crashing. I’m guessing they weren’t fully tested after one of the TMS improvements for something else. No Screenshots due to this regression!
The Playstation based drivers also saw some back and forth over the year, with some additions and fixes for newly dumped arcade software (mostly Konami) but also some lingering regressions, 2013 does however look like it might be the year the PSX becomes interesting in MESS based on early checkins! One to watch out for when I do a piece similar to this next year. Anyway Hyper Bishi Bashi Champ, Gachaga Champ, and Handle Champ are your PSX hardware highlights for 2012. All are part of Konami’s ‘Champ’ mini-game series as you might have guessed from the titles, and while Hyper Bishi Bashi Champ is traditional in its offering Gachaga Champ plays things out with a Dual Joystick setup for each player, and Handle Champ uses steering wheels! Some other good news is that because the Playstation hardware is relatively weak compared to some other 3D systems performance is actually much better than most. Again these are 2D games on a 3D platform, not an uncommon use for the Playstation even if it isn’t traditionally considered one of it’s strengths.
(The versions of Hyper Bishi Bashi Champ supported include several English language sets, the games use the traditional ‘3 Coloured Buttons’ control scheme)
(Gachaga Champ takes the same zany concepts but uses dual joysticks)
(Handle Champ does the same but with driving controls!)
2012 also seems to have seen MAME become more open to 3rd party kits which were sold commercially. Pacman Multigames, Space Invaders multigames and a (non-working) Missile Command multigame made it into the source. While not a drastic change in policy it is good to see these recognized for what they are, a valid contribution to the arcade industry albeit an aftermarket one, aimed more at people collecting, maintaining and operating the original hardware in more modern times. I’d actually quite like to see MAME more open to this kind of thing where significant effort has been put in, or where the software is genuinely useful because while the thousands of ‘misfit’ hacks aren’t especially interesting or worth adding there is a core of more modern software that is and it demonstrates a shift in culture with arcade boards moving from purely the realm of something people played to one where people are creating new and modified software products for them, which is surely history writing itself? I’d also quite like to add open ended software list based loaders for several popular drivers (Pacman and the like) so people can maintain their own ‘misfit’ software lists without us having to include any of that directly, or them having to recompile anything. Definitely some thoughts for 2013 there.
(Who turned out the lights? 2012 saw several commercially available, but still unofficial Multi-game kits supported)
As an addendum to the above I’d also class the addition of Sega’s Fantasy Zone 2 remake as part of that greater level of openness. Technically it wasn’t a period arcade game, but a much later remake designed for a slightly updated System 16B board. We did we already had a title hacked mutli-game bootleg of it supported but Sega themselves demonstrated it running on actual arcade boards at several shows so it was decided that we may as well support the ‘original’ roms used by the emulator on the PS2 discs. It works on real hardware with a few mods, so while maybe less pure than some supported titles it’s cleaner than the multi-bootleg which attempted to credit the game to ‘ISG of Korea’
(support for the official remake of Fantasy Zone 2 was added after ROMs from the PS2 release found their way onto PCBs)
Pong made a return to MAME in 2012 too, in a different form to how it was before when it was removed, this time entirely simulated at netlist level with the ability to read in the component list from an external ‘ROM’ file (as opposed to the game actually using ROMs, it has none) A word of warning, while Pong might be the simplest of the discrete games, it doesn’t run 100% correctly yet, and is unlikely to ever run as quickly as you’d expect for such an old game due to the level these things need to be simulated at. However what is important is that it again marks the willingness of the development team to do something new, try out new ideas, and hopefully find a solution suitable for covering this much older category of CPU-less titles, and hybrid ones where the CPU played a bare minimum role in how things worked. DICE is currently doing a better job, but the potential is there.
(Pong, not a stinker but instead paving the way for future progress on discrete emulation)
#4 – The Surprises
While the majority of items covered in point #2 were surprises they’re not the only kind of surprise you get while working on MAME. The one that sticks in mind for me from 2012 is Demon Front. The IGS game, supposedly with one of their most secure custom protection chips for the period turned out to be amazingly easy to emulate. This didn’t happen because the protection was fully cracked, it happened because IGS more or less forgot to use it, or at least did not use it properly seemingly making no noteworthy use of the internal ROM area. It was a surprise because I initially just changed the program counter of the ARM to the start of the external ROM simply expecting it to blow up in a thousand ways, instead I ended up with a ‘holy crap, it runs’ moment. You can’t apply that to any other IGS game, they’re all protected properly so seeing it ‘just work’ was a surprise of some magnitude.
(‘Holy Crap, it runs’ … Demon Front caught me completely off guard by its lazy non-use of the protection)
F1 Super Lap also turned out to be easier than expected, and while I doubt there is a chance in hell of getting the link logic working for multiple boards with the protection workaround I’ve used it was still a lot easier than expected considering people had been saying the protection was rock hard since the days of Modeler. In mentioning that, the work Sailor Sat has been doing on linking multiple instances of MAME was also a nice surprise, but not really in a way suitable for integration with the actual project unfortunately, still good to see people learning MAME.
(F1 Super Lap was surprisingly easy to get running after so many people had claimed it was a nightmare)
Jue Zhan Tian Huang aka “that beat ’em up with Street Fighter 2 characters” I guess could also be classed as a surprise. These Chinese hacks are usually based off CPS1 games and having Street Fighter characters you might naturally have assumed this one would be too. In the end it actually turned out to be a Genesis based bootleg hardware (the same used for Puckman Pockimon) running on what seems to be an original game engine. Instead of ripping the original CPS1 art it uses characters graphics taken from the ports of the game, presumably because they have better aspect ratios without rescaling. If only the people who created the Knights of Valor bootleg with SF2 characters recently sourced by The Dumping Union had considered the same.
(Jue Zhan Tian Huang has Street Fighter 2 and King of Fighters characters, surprisingly running on Genesis bootleg hardware)
Another ‘choice of hardware’ surprise was the clone of Hot Mind found by the Mame Italia guys. Playmark were known for converting various boards, but the choice of board in this instance is a curious one. The game turned out to be running on the same board as Fit of Fighting and History of Martial Arts, a platform noteworthy only for its use of the D78C10ACQ sound CPU and the infamy of those two awful rip-off / re-written bootleg fighters. Why that board? Does it have other origins? Were the fighters actually conversions of something else? The sound CPU alone is atypical, only used otherwise by the Metro hardware games which make me think it might have been a platform for other redemption / gambling games before the fighters were put on it.
(Finding a copy of the Playmark Video redemption game Hot Mind on hardware used for the Fit of Fighting bootleg poses many questions)
I’m going to list a Video Poker game in here, mainly to avoid the controversy of listing it under rare, endangered and forgotten given I know people hate these things, although personally I’d consider it such. That game is Draw Poker by Bally. The MCR hardware is best known for the likes of Tapper, Tron, Two Tigers, classic games with a distinct ‘high resolution’ look to them. For this reason it was quite surprising to see an MCR board turn up with poker card graphics in the dumped ROMs. The game turned out to be an officially Bally product, with proper Bally logos on the cards and due to the high resolution nature of the platform is actually more attractive than many of its peers. Unfortunately the sound ROMs were missing, so we’ll need to find another more complete one but it does make me wonder if there are any other forgotten gambling games on this platform!
(I had no idea there were any games other than the known classics on MCR hardware before this turned up, a surprise for everybody involved)
Being able to install Windows ME under MESS was also a surprise, even if it was near enough useless, the mere technical accomplishment of being able to do it being possible when little over a year ago anything even thinking about switching to protected mode would blow up completely. I did mention this at the time, and maintain that it’s not something you’re going to want to do, but if you force the installer to do it then it can be done.
I’m sure other devs have tales of bits and pieces they found surprising too, but without knowing their thought processes they’re not mine to tell.
#5 – Actual visible progress in difficult areas
You’ve probably noticed with MAME that a lot of drivers sit broken for long periods of time, likewise MESS, that’s often because a lot of those cases are extremely difficult, and any kind of visible progress on them actually represents a significant feat of reverse engineering.
One bar by which you can measure the health of the project is the number of breakthroughs on known ‘tough-nut’ cases, long term non-working drivers which present a significant challenge. Such work shows that the team don’t hide from a challenge, and that the existing developers are either learning, or new highly capable ones are becoming involved with the project. As mentioned earlier MAME made its name by pushing boundaries, challenging what people thought possible and figuring things out for the first time, and it is essential that this continues.
While it’s definitely easier to pick out a list of things that didn’t happen in 2012, some of which received absolutely no attention at all, there were a couple of highlights in this area. The 3 SunA games emulated by Luca; Brick Zone, Star Fighter and SparkMan fall into this category. All 3 games had sat in MAME as unemulated, not working titles for as long as I can remember (the 0.37 series, or early 2001 if my sources are correct) so seeing them finally tackled and the nature of the protection they used mostly understood was one big positive of the year.
(Brick Zone and Star Fighter, tough nuts to crack when you consider they were low-budget Korean titles)
(Sparkman completes the 2012 Suna emulation trio)
Cybertank was another one, scarier on paper than it actually turned out to be, 2012 was the year it finally got emulated to a playable level. Unfortunately 2012 would also mark the passing of ‘Nightmare Tony’ the owner and dumper of the only known US prototype of the game who was always both enthusiastic about seeing it emulated and in equal part helpful in his feedback as things progressed. At least MAME managed to give him one last opportunity to see the game in action.
(Cyber Tank emulation, dedicated to Antonio Gonzalez Jr.)
The progress on Little Robin, another I worked on the emulation of also represented an annoying piece of hardware finally being better understood, it was a driver I’d looked at many times with little to show for it so actually having the game playable with the majority of visuals correct is a good feeling.
(the unique hardware of Little Robin caused frustration for many years)
Maybe not quite a feat of reverse engineering, but in addition to the aforementioned IGS PGM game Demon Front we also saw emulation of Dragon World 2001, Dragon World Pretty Chance and DoDonPachi II, also known as Bee Storm, all of which required work in extracting the protection data in order to get them running, there were also long overdue optimizations to the PGM video rendering. I was glad to see these games emulated because until now they were games which had gone completely unported, a situation I usually refer to as PCB-Locked. Unfortunately many of the remaining PGM games will require real feats of reverse engineering to get anywhere with, well beyond my ability.
(DoDonPachi II, unlike the rest of the series this IGS developed sequel until it was emulated had remained unported and unavailable on any platforms outside of the PCB)
(The same process used to emulate DoDonPachi II was also used to emulate Dragon World 2001 and half-sequel Dragon World Pretty Chance)
Taito’s Racing Beat saw fixes to make it playable as well, although for such a poor game it highlights other deficiencies in the Taito Z emulation better than most. I do still wonder how Taito went from producing majestic games like Continental Circus to dull scrappy looking ones like Racing Beat and Ground Effects tho. Maybe it’s just me, but games made in 1991/2 shouldn’t look worse than your previous offering from 1987.
(Racing Beat hasn’t aged well compared to many earlier Taito racers)
Harem must be a contender for the most politically incorrect game emulated in 2012, another rare long time ‘non-working’ driver, thought at one point to be a bad dump but actually turned out to be encrypted.
(Harem, all in good taste, I hope)
Sound is a subject hardly mentioned so far but of course sound fixes are equally important and there have been a couple of advances in that field over the year.
The audio component of the I5000 was emulated, we only have 2 games using it; “Rabbit” and “Tokimeki Mahjong Paradise – Dear My Love” but it’s been a long time in coming when you consider the game has been playable since 0.84u5 back in 2004.
(Rabbit and Tokimeki Mahjong Paradise, both now with sound after many years of silence)
QS1000 sound emulation was another big one in my view, and while still preliminary, glitchy and unbalanced it’s good to be able to hear audio from the library of Korean games using the chip. Luckily despite having an internal ROM option for the built-in CPU the majority of games use it with an external ROM configuration, it seems like Pang Pang Car is the only known one using the internal ROM at this point, the rest have some form of sound now, or at least the ones in the drivers it was hooked up to. The Eolith games, Limenko games and several other Hyperstone titles all benefit from this even if it is only preliminary. This includes titles like Legend of Heroes, Dynamite Bomber, Super Bubble 2003 the Hidden Catch series, Crazy War, Landbreaker, Wyvern Wings (video) and plenty of others.
(Legend Of Heroes, Super Bubble 2003 and Hidden Catch 3, just 3 of the games now with preliminary sound emulation thanks to the QS1000 core)
Atari’s Pokey chip is best known as a sound chip, but it also serves several other purposes, not least as a subtle extra protection on a number of games that make use of it. MAME has had Pokey emulation for as far back as I can remember, but still some games were playing up. Liberator was one problematic game, and had been exhibiting a reset problem when selecting higher levels for a long time, likewise Missile Command had some rogue sounds and undoubtedly there were more issues lingering in MESS where the chip is also used by Atari systems. The past year saw a number of Pokey updates to nail down these issues, and also add filtering and the like to the sound output, bringing the overall quality of the sound emulation on Atari titles using it to an all time high.
(Liberator will no longer crash if selecting the higher levels thanks to Pokey improvements>
One of the big sound improvements a for a lot of people will be the support for MP2 playback, and while it’s still not the MPEG video a number of systems in MESS are in need of it is a big step forward for the Sega games using the Digital Sound Board. None of these games are actually emulated well enough to play them in MAME, but for Star Wars Arcade you can now let the attract mode run and listen to the theme play, it’s as dramatic and theatrical as it ever was. Again this was technically a 2013 improvement, but still falls within my cutoff period of 0.148.
(Star Wars Arcade – You still can’t play it, but you can listen to the music now)
Offroad Challenge could have been mentioned with the 3D games, but the hardware was already mostly emulated, as you’d know if you’ve played Crusin’ USA. This one was a case of needing some CPU core bugfixes in order to function, luckily there was an external contributor up to the task this time again showing that there is actually a lot of talent outside of the dev team making a real difference to the project. CPU core bugs can be some of the toughest to track down, and in the cases where they’re not crashing the CPU outright it can be very difficult to determine if a bug is in the CPU core at all, or an error in the emulation; in fact it’s not unheard of to see crazy workarounds in used drivers when the real culprit turned out later to be a subtle CPU bug.
(A Cpu core bug needed tracking down and fixing in order for Off Road Challenge to work correctly, it now plays fine)
The one everybody always asks about is Raiden 2, or more accurately the Seibu COP protection. Ignoring the COP aspect for now, Raiden 2 and Zero Team did see one very significant change this year and that was the completion of the sprite decryption. Prior to that work being done Zero Team only had garbage for sprites, and Raiden 2 had lots of ugly artefacts due to improper decryption. It doesn’t change the working state of the games, but obviously come the day they do work people will be happy that the graphics are already fully decrypted! Amusingly after decrypting the Zero Team graphics we found the (at the time undumped) Zero Team 2000 board had entirely decrypted sprites in the first place and could have been of great assistance. Unfortunately it only had decrypted sprites, the rest of the protection is entirely intact with it, so it’s not just a cheap unprotected bootleg!
(Raiden 2 sprite decryption was significantly improved in 2012 (left) and is now correct (right), even if the game remains unplayable)
(The improvement in Zero Team is more dramatic because prior to this the sprites weren’t decrypted at all, it’s also still unplayable tho)
Seibu’s COP is of course the bit everybody really cares about, the beast sitting there and leaving the games unplayable. The past year saw some work done on that too, you’ve be excused for thinking Heated Barrel was fully playable if you didn’t know the underlying operations were still highly suspect and the collisions in SD Gundam are much improved with the game only really falling apart in terrible ways once you reach some of the bosses. Zero Team was at one point quite playable, dodgy collisions and visual problems aside, although it did regress based on further hardware tests. Legionnaire still has some collision issues depending on which way you’re facing and enemies tend to wander into areas of the screen they shouldn’t be allowed to. Seibu Cup Soccer lets you start a game, and even finish the game as long as you do nothing except kick the ball straight into the goal and repeat. Raiden DX still has major issues due to ROM banking, and Raiden 2 has what might be additional protection on top of the protection (I’m not kidding) entirely for the bullets. Still, it’s progress, and we’re in better shape than the same time last year thanks to Kale’s hardware tests etc. Anyway, given the interest let’s address the 68000 based games one by one in a bit more detail.
As mentioned above, Seibu Cup Soccer lets you start the game now, a big improvement on before, but the player AI and collisions are wrong, plus you will crash the game quite easily if you put the ball out for a throwin etc. Attempting to do anything other than run in a straight line will cause issues, and if you lose the ball you’re not likely to get it back. I’ve seen entire teams of players collapse simultaneously under 1 slide tackle, and the goalkeeper can’t even touch the ball to make a save. Assuming all you do is run in a straight line you can score as many goals as you want and actually finish the game, not exactly much fun tho.
(Improvements to Seibu Cup Soccer mean you can start a game, and run in a straight line to score as many goals as you want, still not properly playable tho)
Legionnaire has improved collisions between player and enemies, although currently only attacks facing right actually work, if you’re facing left it acts exactly the same as if you were facing right, and causes enemies to be hit to your right instead of your left, a little strange to play. Enemies also have a habit of wandering into the backgrounds above the playfield, or slightly below it into places you can’t hit them. If you’re patient it is actually possible to get through this game as well now, but due to these bugs it’s not an enjoyable experience. Graphic layers and scrolling tend to be wrong in places too, also likely tied to the protection.
(Improvements to Legionnaire allow you to attack enemies, although it always acts as if you attack to the right!)
Godzilla is an odd one, the protection emulation improvements mean it loops attract mode correctly, and you can coin it up, start it, and the players even face the right direction depending on their relative positions. It does however have severe problems with the scrolling of the backgrounds, they move erratically and at this point we’re not sure why because it doesn’t seem tied to the protection in any obvious way (but none of the protection IS obvious so…) Again, the improvements made over the last year are clear to see tho.
(Players now face the right direction in Godzilla, and it doesn’t crash during the attract mode, but there are still significant issues)
Heated Barrel you’d be excused for thinking was working, and you wouldn’t be alone, several people have made that mistake over the year, and improvements to the various elements of the protection including the hitboxes and other areas have left it in a mostly playable state, some enemy movements are wrong, especially on bosses, and the game will crash occasionally, but it’s still a big improvement on how it was a year ago.
(Many people actually think Heated Barrel is correctly emulated now, it’s not, but it is close)
SD Gundam Sangokushi Rainbow Tairiku Senki has also seen significant improvements, again collisions are much better now, you can use lifts without risking falling through, attack enemies, and play through several levels with minimal issues. The real noticeable problems again come from how the bosses, and sub-bosses use the protection creating graphical glitches and causing some of them, like the driller boss on the 3rd level to leave the screen never to return, leaving the level unfinishable. If you cheat your way through there are also some server layer scrolling problems later.
(SD Gundam Sangokushi Rainbow Tairiku Senki has improved collisions amongst other things but still has game breaking issues)
Taking a step back down to something more obscure again we saw progress on the Vega driver inching forward, although the less positive side of that is it was one of the few contributions Dox made this year and as one of the key devs of recent years it’s a shame.
(Vega, a game running on old but still confusing hardware, is showing signs of improvement although is still unplayable)
One barely worth mentioning is Poke Champ, I mention it only because it annoyed me for so long, usually correct graphic decoding and bitplane order takes an half an hour at most, that one managed to frustrate me numerous times prior to it being sorted out, and it turned out to be so simple as well. I say it’s hardly worth a mention because the game is actually just a hack of the software for Data East’s Pocket Gal, but on more modern hardware.
(2012 saw me finally figure out how the bitplanes decoded on Poke Champto give proper colours)
Black Touch ’96 is another Korean game where the emulation continues to frustrate me, proving that not only SunA could make life difficult. Strides were made on the emulation in 2012, but there still remain problems with the timer not working, and of course the sound hookup
(Progress was made on Black Touch ’96 but there are still difficult to track down issues outstanding)
A lot of MESS systems fall into this category too, having seen significant improvements over the year even if many haven’t progressed to an overall ‘working’ state despite many individual games working in the drivers. As I’ve mentioned, MESS has a bit of a history of missing opportunities, failing to excel in areas it should have been able to excel in at a time when it was important. What this does mean is that there are a lot of drivers sitting there awaiting improvement, or awaiting fixes because they’ve simply been left to rot so it’s good to have seen some of those get attention over the past year with results everybody will be able to appreciate.
Atari’s Lynx handheld was one such system and several improvements earlier in the year have helped bring it up to a far better standard, with the majority of software now playable. The Lynx isn’t an insignificant system either, Atari beat both Sega and Nintendo to market when it came to having a colour handheld and it even got some rather ambitious ports of famous Atari titles like Hard Drivin’ in addition to some more realistic ones like MS Pacman. Specific improvements were mentioned for Viking Child and Xenophobe but many more games benefited too.
(The Atari Lynx handheld saw improvements across the board and was promoted to working state)
Another portable (although I use the term loosely) system that got a lot of attention this year was the Nintendo Virtual Boy. An abject failure in the marketplace it might have been, but the actual hardware remains interesting and surprisingly capable. Unfortunately there seems to be a temporary regression with it again at the time of writing, although you’ll be pleased to know I’ve used this testing opportunity to fix it and greatly improve the performance at the same time. Emulation isn’t perfect (several features are still missing including proper framebuffer handling / writes, and there are likely still some CPU bugs causing strange problems) but it’s been great seeing progress on it and some games are perfectly playable.
(Mario Clash shows that some Virtual Boy games are fully playable thanks to work done in 2012, although the system as a whole is still tagged as not working)
Apple might be considered a big name in technology today, but arguably some of their more interesting and much cooler products were produced back in the day and represent another area where a significant amount of work was done over the past year. Regular MAME developer R.Belmont took these systems under his wing, mainly because he was disappointed with the standalone offerings not offering the level of power and flexibility he desired. As a result MESS can now run systems like the Apple 2 incredibly well, and supports a whole array of random expansion cards for the series of machines. The machines aren’t the easiest to understand or use if you’re unfamiliar with them but I did manage to get some bits and pieces to run on the Apple 2GS with some tips from R.Belmont in the case of non-bootable floppies (mess apple2gs -flop3 sys601 -flop4 pickpile) One thing I have noticed with the Apple 2 however is that a lot of the listed software is cracked, and has very obvious cracktros and ‘cracked by’ messages, none of which is currently marked in the Software list. While I think it’s important to document all such versions I also think it’s important they get market as such. Anyway some screenshots of misc titles running in the Apple 2 GS driver follow, I’m not sure how many of these (if any) are newly working in 2012, but they’re all new to me.
(Arkanoid 2 presents a nice rendering of an Arcade scene before running a remarkably good port of the game)
(Pick ‘n’ Pile showing the Graphical OS before loading the game)
(Pipe Dream had its origins in the home systems before later being ported to the arcades)
We’ve not been stuck in the 8-bits with Mac progress either, many of the 68k based Mac systems also had significant amounts of work to them with a number of the ‘LC’ (Low Cost) and ‘Classic’ ones promoted to working over the course of the year, good to see. Like the Apple 2 systems various expansion cards, supported by the MESS slot device system, have been emulated for these Macs as well, and there have been hints of progress on the later ones too. Performance will vary depending on the model you use, the Macintosh LC II shown below is nice and colorful but quite slow, while the ‘Classic’ Models seem to run better but don’t look anywhere near as nice.
(The Macintosh LC II running OS 7.5.3 from the Software List)
(The Macintosh Classic running OS 7.1.1 from the Software List)
The C64 and related systems also saw significant amounts of attention in the last year with MESS now boasting support for more expansion boards than you could possibly count. Unfortunately performance in the driver is still somewhat of a bugbear for me with the drivers struggling to hit 100% even on a decent system. It’s good that they’re seeing attention, but until a way of better optimizing the driver is found in all honesty it remains underwhelming. I don’t want to criticize too much because MESS really needs dedicated developers like Curt, who has been doing most of the work on the system, emulating even the most obscure expansion boards, I just hope we can find a way to make the performance a bit more attractive without sacrificing accuracy because if we can then MESS could turn out to be a first choice emulator for the old Commodore VIC and C64/128 brand systems
NeoGeo CD was covered here before, although as mentioned at the time the lack of many real exclusive games / extras and the hindrance caused by excessive load times make less of a staple system than it’s contemporaries, despite boasting the same high capacity zooming sprite hardware and fighting games that helped make the actual MVS units so desirable. Emulation is about on par with Final Burn Alpha, to be expected because it’s mostly a port of the FBA code. If you’re trying it remember to use the NeoCDZ, not the plain NeoCD because only the CDZ works at present.
(Neo-Geo CD Special was a CD with promotional material on, one of very few exclusives but not very interesting except to hardcore fans)
(The NeoCD did see a release of the first Last Hope game, but it wasn’t an exclusive as it was also released for the AES unit and the Dreamcast)
Casio’s PV1000 also got some important fixes handed to it, allowing Dig Dug, Space Panic, Excite Mahjong and several others to finally function properly. It’s a cheap system with severely limited functionality and mostly low-grade ports but it now works well enough to have been promoted to working giving further insight into the way the Japanese home audience might have seen classic games like Dig Dug. Personally I find progress on systems like this to be interesting because there is a sharp contrast between the ports Japanese audiences got and the ones we saw for our 8-bits over here. Typically the Japanese games seem to have been developed under closer guidance of the original developers, using graphics derived from the original resources whereas the games we saw in the UK were more typically ‘influenced’ by the originals. This can sometimes make the Japanese ports dull because they’re all so similar, just with different limitations depending on the hardware, but it also shows how much they valued the classics and how very different the 8-bit hardware was over there compared to the systems we had here.
(The Japanese Casio PV1000 was a home to primitive ports of a number of arcade titles, including Dig Dug and Space Panic shown here)
(Some original titles like Excite Mahjong were also released)
An area I should be giving a far bigger mention to than the snippet you’re going to get is the work put in to the Japanese PC98 systems, which were x86 platforms capable of running DOS / Windows but also the target for many ports of Japanese arcade classics, including ones from the 90s on the later models. Being a series of machines rather than a single dedicated system, and still lacking a meaningful per system softlist it’s a bit difficult to break into, and for this one I had to, for the time being, wave the white flag and surrender. There are some pretty screenshots on the MESS forums if you want to take a gander over there, and it’s possible something I’ll revisit at a later date but I do want to stress what an impressive amount of work was put into the emulation of the specifics of the platform, systems like the PC9801RS were important back in their time.
I feel very lazy for doing this, but I’m going to link to the forum threads. One or two images here (mixed with images from other systems) and the Dedicated Thread is Here
On top of all this it is important to remember that the difficulty of some drivers and the actual achievement involved can also be sometimes overlooked if a driver goes straight in as working because people don’t see the complexities of the development process and all the little changes needed to support them. Something like the previously mentioned Rise of the Robots is every bit as challenging as anything mentioned and the work might go under appreciated because like many significantly easier additions it looks from the outside like it just slotted in to MAME with minimal work which is hardly a fair representation!
#6 – The (mostly) Invisible Progress
It’s easy to pull up a list of all the games that saw significant emulation progress in the last year and choose highlights from them but the underlying changes and progress needed to support that should not be underestimated. Most of this progress these days comes in the form of improved device emulation, arcade games typically only need a small subset of device features emulated whereas if you’re trying to emulate a computer, console or other system in MESS you’ll often see relatively common components taxed to a much greater degree.
I’ve said before that the value of the MAME project is not that of being an arcade emulator, but as a collection of emulated components, from CPUs to Sound Chips as well as simple IO devices, controller chips etc. Those are the type of thing you want good solid emulations of because the better the quality of the emulation the more likely it is to be reusable, and ‘just work’ the next time you come across something requiring it. MESS will always have the better test cases for the ‘off the shelf’ components and also boasts emulation of systems people are likely to be more familiar with and thus are absolutely certain where something is wrong, and are in a better position to actually run tests and figure things out; the independent level of research done on the staple systems and the components they use far surpasses anything done for the platforms in MAME.
2012 has seen significant progress in bringing the MAME x86 emulation up to scratch and while it’s going to take some form of recompiler to get the speed anywhere near reasonable the first step is always to nail down the correct behaviour. As a result of this you can (if you’re foolish enough to want to try) install various versions of Windows right up to Windows ME inside of the MESS PC drivers. An additional effect of this work is that systems like the FM Towns / FM Towns Marty are now better positioned for further progress too as well as the later NEC PC98 series machines which were also based off x86 series processors as mentioned earlier.
(Installing Windows ME is NOT the most productive use of the improved PC / X86 emulation)
Just mentioning Windows ME isn’t especially fair tho, that’s just one example, the work done actually means a lot of old DOS games can now run under MESS, and like PC98 there are big threads on the MESS forums showing various bits of PC software running in MESS. I want to avoid over-hyping it tho, because for now, while plenty of things run it really isn’t a patch on something like DosBox in either performance, or ease of use, and compatibility is mostly limited to software compatible with low-end 486 machines. It is still fascinating work tho, with many different PC cards being emulated, and if you’re into hardcore use of MESS you can hook up alternative emulated soundcards and hear how things would have sounded on something other than a cheap SoundBlaster. I might pull some images from that thread if I do a minor revision of this update later right now there are just too many pages of cool stuff to flick through ;-)
(A Japanese Windows 3.1 on the FM Towns is nice to see tho, although I’ll admit I stole this screenshot from the forum thread above)
Now this is important to MAME too, the majority of arcades you see today are PC based, even plenty of older platforms made use of PC technology because it was cheap; systems like the Chihiro (an original XBox) as also close to PC architecture, and MAME can actually show the boot screen of it these days, although at 1% speed it isn’t exactly practical right now.
(The Chihiro BIOS shows signs of life, but running at 1% speed it shows the need for a recompiler when trying to emulate fast x86 chips)
I mentioned Rise of the Robots appearing to just slot in earlier, again a good part of that you can accredit to the x86 core being in good shape. It’s a reminder that even when a driver appears to be mostly a solo effort the work done to put MAME in a position to make that possible is the result of many contributions over the past years. I’ve seen people say MAME doesn’t need the bloat of x86 emulation and PC emulation and that people should just use ‘loaders’ instead, but said game very much isn’t on PC hardware yet has undoubtedly benefited from the effort put in to getting Windows etc. booting in MESS.
Not only is it the x86 core seeing updates though, one pleasing aspect of MESS is how it brings even more obscure cores up to date, fixing bugs along the way and improving the value of MAME as a resource. Take the Z8000 core, for MAME it exists solely to run Pole Position, Namco’s classic racer that utilized a Z8002 for the sub CPUs. In MESS there is the Olivetti M20 using another Z8000 series CPU in the form of the Z8001. It was a professional / business computer running the PCOS operating system, so you’re not going to find any flashy games on it, in fact using it in MESS today isn’t likely to serve any practical purpose other than showing what the machine was and providing a little bit of a nostalgic experience for people familiar with it, but it’s still great to see progress like that being made by an external contributor putting in a significant amount of effort with minimal guidance needed to get it there.
(The Olivetti M20 was one of few machines to use a Z8000 series CPU similar to the ones on Namcos Pole Position arcade game)
The PowerPC, ARM, MC68HC11, M680x0, H8, Amtel AVR and V810 cores have all seen significant improvements over the year too, something like the official Space Invaders / Qix anniversary game might seem like a pointless, insignificant thing to have emulated when MAME already emulates the originals but because it’s running on completely original hardware it actually allowed some significant bug fixes to be made to the H8 emulation, and those bug fixes naturally could also improve things elsewhere or avoid problems in the future.
(The Space Invaders / Qix Anniversary game helped track down some H8 bugs)
The biggest overhaul in terms of CPU cores though was Olivier’s work on the M6502, bringing about massive modernizations, and an overhaul to hopefully make it accurate at a sub-opcode level. It’s possible there are still a few issues to be ironed out, as you’d expect from such a large scale change but it’s also the kind of progress the emulator needs if we’re to make strides with some of the more finicky 8-bit machines in the future.
MESS plays a big role in CPU core improvements even for popular CPUs too, because while MAME only really runs games, MESS also runs computers and it’s not atypical to see ‘torture’ test software developed for them, to test every aspect of a CPU operation and give pass/fail benchmarks to compare against, in additional start-up hardware checks can be more intensive to ensure the underlying system is stable. Things like that are invaluable in debugging the emulation because they highlight clear cases where things aren’t being emulated correctly rather than simply a game where you only have the guidance of it appearing to run correctly to go by. This is how things like the M680x0 and PowerPC improvements have come about, from the work on the Apple Mac systems and similar.
A lot of the technical work being done in the background could also count as ‘invisible’ to the general user. As a team Mamedev is very lucky to have people like Charles MacDonald involved, analysing hardware, figuring out ways to extract internal roms on often unpopular or relatively insignificant titles, for example from the ‘Wing / Sega’ CPU modules used on a number of gambling games as well as the original versions of Free Kick (and Counter Run, but that is yet to be done) Very few people are going to notice / care because for things like Exciting Black Jack the dumped CPU component is likely to be part of a bigger setup we still don’t have, and Free Kick has been emulated via a bootleg (which turned out to be an exact copy of one of the original revisions) for a long time. Nevertheless this is vital work and actually is also a real feat of reverse engineering, possibly even more so than a number of the things listed in point #5 above.
Other progress I was involved in included the introduction of libJpeg into the source for use by Sliver, replacing the pre-decoded Jpegs used in prior versions, that was definitely invisible progress to most uses, the romset changed, dropping the fake ‘ROM’ containing the pre-decoded graphics but that was it. It was a worthwhile piece of progress however because it means we now have the ability to encode / decode JPEGs if we need it and that should at least come in handy for Magic the Gathering at a later date, and possibly even some of the MJPEG bits like PC-FX in MESS depending on exactly how the encoding works there.
(The underlying emulation on Sliver changed significantly, actually decoding the JPEGs instead of cheating and using predecoded ones, but it looks the same)
The actual build system saw updates in the past year too, Python was introduced to the build tool chain, allowing for cleaner helper tools to be used in the build process, for example the code emitters used by the previously mentioned 6502 core. Python allows for this to be done in a cleaner, scripted way, as opposed to building and running helper executable files during the process. It’s not something you’re going to notice as an end user, but it’s an important change to consider if you’re doing development.
Cleanups to protection simulations (removal of ROM patches etc.) is another classic case of invisible progress. Done correctly you should see no change at all to the emulation, it’s the type of work where people are really only going to notice it if you mess up. As a result of this kind of work popular games like Metal Slug X and Caveman Ninja are now running without MAME having to patch the code in advance.
Aaron is another typically involved in ‘invisible’ progress, pushing through underlying architectural changes to the MAME framework, going about changing the way in which drivers are developed and even giving a spring clean to the various Sega drivers, pushing things like the CPU decryption to be an extension of the actual CPU cores so that it works more like the original modules rather than being pre-decrypted on state changes and cached. He also introduced a base class to help emulate sprite chips rendering to a buffer for later mixing and made it possible to run the actual sprite generation asynchronously to the tilemap rendering, prior to the final mixing of the two and while I can’t actually think of any systems where both the sprite and tilemap rendering are so heavy a multi-core system would struggle with doing it in the first place I guess it still makes sense especially if you try increasing the time sync between the emulation and external world to less than a frame in which case any spikes become more noticeable.
It would be possible to write an entire section on these MAME core changes alone, but for the average person likely to be reading this none of it is going to be likely cause for fireworks, and it’s all very technical and professionally documented in the change logs already, Aaron is good like that. The point I mentioned above about people only noticing if you mess up holds true here too, you can make massive core changes of unfathomable magnitude and get the vast majority of it right, but if you get one tiny thing wrong that’s what people will pick up on and when you’re working on changes across the entire project that’s always a risk you have to take.
You also have invisible progress in the form of cleaning up after such changes, some of it with more impact than others. It’s been a long time now since MAME switched over from using indexed CPUs, ROM regions etc. to tagged ones, but still a fair amount of cleanup work remains. That’s not because it was a bad change, but it’s a change which had the side-effect of making some older driver design ideas not so good ones. Looking up an indexed cpu/region had no CPU cost, it was just a number, you could do it anywhere in a driver with no consequence. Looking up a named one incurs a rather expensive hash lookup so you want to keep code like that as far away from inner loops as possible (ideally doing the lookup during init time) even if it used to be fine there. The same applies with dynamic banking and the like, installing / uninstalling ram handlers used to be fast, but these days it’s slow and inadvisable at run time, and while it can result in cleaner code the performance cost tends to be prohibitive. What this means, contrary to public opinion is that both MAME and MESS developers have spent a lot of time over the past year to win back lost speed, to improve performance in some drivers where it was lost for entirely avoidable reasons. This isn’t because the new design is worse, or less capable, it’s just because it requires a different approach than the one often taken in the past.
Jedutil, one of the MAME support tools also saw many very significant updates over the last year, and combined with the work Charles has done on brute force analysing PALs etc. is an important if often overlooked / misunderstood component of MAME. Pals are typically used for things like memory mapping on real hardware, so are important, but despite being programmable chips actually act more like logic devices and are often read protected so you can’t get the exact original programming out of them. They can also be used for memory scrambling / encryption, video mixing, and even some types of protection, so being able to analyse them and work with the data, understand it and generate equations from it is important. The work done on CPS1 and Batsugun in previous years were a direct result of this kind of analysing of PALs, so anything that makes it easier for future systems is a welcome boost.
The role of support tools like Jedutil shouldn’t be underestimated, they help people with original hardware to repair as well as helping MAME, and let’s not forget it is vital that MAME continues to provide assistance to people trying to maintain and repair the original hardware.
One thing MAME / MESS don’t have is a similar toolset for comparing and managing CD images, a tool like that, similar to ROMCMP would be very useful for weeding out dupe CDs, comparing them to what we already know about etc. but this article isn’t meant to be about things MAME doesn’t have, so I’ll leave it at that.
#7 – The general rumble
MAME as a project is always going to require maintenance work, people to do the grunt work, the boring stuff, the changes which aren’t going to get you showered in praise from the fans of the project but are essential to showing that the team still care. It’s another one of those factors from which you can gauge how alive the project is because if nobody is even doing the simple work, accepting responsibility for things like adding new clones, working with and guiding people contributing externally etc. then you start to get a large backlog of tasks, unverified material and people put off from contributing because they don’t see what they’re doing as being valued.
I mentioned clones, they can be boring to add, and if you’re not familiar with the game you might see little point in them. Likewise if you own the PCBs it can be a boring, mundane task to check the roms on every single one only to know that in 99% of cases what you dump will match exactly with already known sets leaving you with nothing new to contribute.
The task of adding them can be equally unrewarding, with the age of many of the chips you have to keep an open mind for the possibility of something not matching simply because the rom has suffered from bitrot, or been badly dumped due to dirty / broken pins. Then you’ve got cases where there isn’t actually any new data at all, just the same data in a different arrangement of ROMs, usually worth supporting but in no way exciting.
Of course sometimes it’s more obvious, if you happen to own an alternate revision of a game which is very obviously an alternate revision because it’s got obvious changes or is for a different region then it’s a fair bet you’re going to find something new by dumping it but for the majority of cases you’re simply not likely to know unless you actually try; in some rare cases even where a game displays a revision number there can be alternate versions with very different code, the original manufacturers weren’t always perfect with their versioning.
The upside is that when people do make the effort new discoveries are made. I could highlight Daioh as one such case here; the set supported in MAME for a long time had various reset bugs / glitches you could trigger if you played the game in a certain way. Until an external contributor decided to check their Daioh PCB this was the only version of the game known to exist however upon dumping the ROMs from their PCB it quickly became obvious that they were for a newer version of the game than the already supported one. This new set had various bug fixes applied, a valuable find. It works the other way too, sometimes you find older buggier revisions, prototype versions of games which ended up not being returned after their field test ended, again these can be interesting because they show the evolution process of the game.
(From the surface you can’t tell, but the newly dumped Daioh set is a significant bug fix revision)
If we’re talking about alternate region ROMs then some of the highlights for me have to be where original Japanese sets have turned up, of note 4 Sega titles namely GP Rider, AB Cop, Jurassic Park and OutRunners all saw Japanese clone sets added in the last year. That might not seem very interesting to readers who don’t read or speak Japanese when there are already English language sets playable but what you have to remember is that these games originated in Japan, these are the native versions of the games as they were designed before any additional cuts or censorship was done for export markets. Jurassic Park is also interesting because I remember when emulating the World version I noticed Sega had made odd use of a sprite using RAM based source graphics in the attract mode to cover up a typo in the word ‘Merchandising’ (‘Marchandising’ had been programmed into the tiles used in the MASK roms) The Japanese version instead still has this typo fully visible.
(In the Japanese release of GP Rider you have Japanese text in the attract mode and various other selection screens)
(The Japanese Outrunners has bold stylish Japanese fonts on many selection screens)
(Jurassic Park is more subtle, but subtitles the intro screens, it’s also an earlier revision without the ‘Marchandising’ typo fixed)
(AB Cop also shows the story in Japanese)
The Japanese release of Sammy title Survival Arts was also added, although including Survival Arts in any list of highlights is just be wrong.
(The Japanese language can’t stop Survival Arts being a terrible game…)
It’s not all about clones though, people maintaining the documentation aspects of MAME outside of the hardware emulation itself fall into this category, and that has been ongoing as ever throughout the year. Documentation of popular systems like Capcom’s CPS1 is in a better state than ever thanks to the work of dedicated teams verifying the information present, double checking dumps where possible and filling in the blanks with knowledge gained over the years. It’s something very few people will appreciate but we’ve come a long, long ways from the days of Callus being a quick fix to play CPS1 games on your PC!
So yes, a lot of grunt work has to go in, and there are a fair number of active devs who fill the role of helping with this, and while many of those devs aren’t going to take the project forward on a large scale with revolutionary driver progress and architectural changes they are essential when it comes to keeping all the gears turning at a smaller one so I’d consider it a big positive that the projects still have people involved doing that work.
#8 – all around the world
MAME and MESS are global projects, worked on by developers from all around the world and intended to show and document the history not just where arcades and game development was popular but instead every corner of the globe where they existed in any form.
Point #7 above talked a lot about clones, and we’ve definitely seen an increase in the number of clone sets found for the South American regions over the last few years, but there is more to the story than that.
(It’s always good when genuine alternate regions of well known games show up, especially the less common regions, Hispanic being for Mexico etc.)
Brazil had a curious history when it came to arcade games, people often mentioned ‘Taito do Brasil’ and games like ‘Fantastic’ but until this year we’d seen little trace of the actual products, the actual proof that these things were something different. That was until this year when some old ROM dumps were salvaged and given to the team for analysis in addition to several enthusiastic guys from the region providing background information and assistance.
One thing that became immediately clear is that Taito do Brasil were something of a shady operation, and I doubt Taito would have approved of anything that happened in Brazil had it been public knowledge. The games for the most part were cheaply hacked rather than appearing like official licensed titles but 2 of them stood out more than the rest; Fantastic and Kong.
You see, Fantastic and Kong weren’t ordinary bootlegs, they were completely rewritten games. It’s true they stole the graphics from the originals but the game code had nothing in common at all making them closer to ports of the games. We’d seen similar before in the form of the Zig Zag bootleg of Dig Dug, which would appear to have its origins in a similar place and was also advertised by Taito do Brasil.
Fantastic was a copy of Galaga on Galaxian hardware and Kong was a copy of Donkey Kong on Galaxian hardware. As a game Kong undoubtedly turned out the worst of the bunch, the rewritten game has horrible controls, collisions, object movement and some awful bugs that can lead to you getting stuck on ladders with no choice but to wait for death to catch up with you but at the same time it’s a fascinating insight into what people in Brazil grew up thinking Donkey Kong was.
(Kong uses no code from the original Donkey Kong game, and as a result has many small differences and unique bugs)
Fantastic was a better game, and while the limitations of the hardware showed and the game offers some peculiarities like the starfield scrolling horizontally with the swarm movement it presents you with a fast paced and fully playable adaptation of Galaga easily on par with any home port of the era.
(Fantastic might look a lot like Galaga, but like Kong it actually shares no code with the original game)
Did Taito do Brasil make these games, or just import them from somewhere else like Korea and modify them? That part isn’t 100% clear, it’s possible it will never be 100% clear but together with additions from the previous year in the form of “Galactica – Batalha Espacial” they at least help form a picture of what arcades were like for Brazilian gamers back then.
It wasn’t just Brazil of course, 2012 saw new additions and fixes made to drivers from all over the world. I could have included Galaxia and Astro Wars in with the mention of fixes to long-term drivers (although some say they still suffer from problems later in the game) Both are Italian creations, the former being a Galaxian rip-off with an energy bar similar to the ‘Swarm’ bootleg, the latter being an Astro Fighter rip-off. Both offer a unique gameplay experience compared to the originals because they’re actually different games. One long-term curiosity of mine is that the actual flyers for Galaxia show a plain Galaxian bootleg with Zaccaria copyright, not this final release which isn’t even on the same hardware.
(Galaxia and Astro War are also unique games, despite being heavily influenced by other titles)
A version of Head-On on a unique Z80 based board also showed up in Italy, but with that one I’m uncertain whether it’s been reprogrammed or not because the Z80 is largely compatible with the 8080 the original runs on anyway.
(This EFG Sanremo Head On bootleg might also be original code, it’s different hardware at least)
There was a fair contribution of Japanese, Korean and Chinese specifics too. Mahjong, Hanafuda and other similar games aren’t usually popular outside of Japan in part because of the language barrier, and the fact that the rules are alien to most western players. The other side of the story is that many of them are actually gambling games and will cheat like there is no tomorrow, and even many of the ones where no payout is involved do the same just to limit your game time! Anyway, Mahjong Janshin Plus, Mahjong Dai Touyouken, Return Of Sel Jan II, Mahjong Long Hu Zheng Ba 2, Kkot Bi Nyo Special, Jong Yu Ki and Touryuumon seem to be roughly the yearly quota for games in this category that haven’t been mentioned earlier, a significant drop-off from the days when people would simply bash MAME for being the ‘Multiple Arcade Mahjong Emulator’ but that’s to be expected, like with most things the well known ones have been covered already and the rest are actually much less common.
(The 4 Sigma / Dynax developed games have attractive graphics and a variety of mini-games too)
(Mahjong Long Hu Zheng Ba 2 shows that Mahjong was popular outside of Japan too, IGS made plenty of games like this)
Of those mentioned Jong Yu Ki shows that Mahjong games were not necessarily ‘cheap’ products in Japan either sporting a dual screen setup.
(Jong Yu Ki’s dual screen setup showing your opponent reaching across the screens)
Most of them run ok, but you’ll probably want to give Touryuumon a miss, being driven by a 200Mhz ARM makes the emulation very, very slow and it seems to get stuck on an error message anyway, I’m not sure if that’s a regression or if there is a procedure to bypass it.
(Touryuumon seems to get stuck here..)
Even MESS covers systems from all over the place, work was done on a couple of Russian clones of machines (although I can’t remember them offhand) as well as the Australian ‘Pencil II’ system (made in Hong Kong, sold in Australia) It’s still a ‘non-working’ driver because you can’t load anything yet, but the basics are in place.
(You’re unlikely to have heard of the Pencil II outside of Australia)
#9 – the bits nobody else cares about
If you played 3×3 Puzzle, either in MAME, or back in the day then I feel genuinely sorry for you. It’s a terrible game, it shamelessly rips off other more popular games with diabolically bad execution of some rather simple concepts. It’s probably rare, although not forgotten nor valuable, and emulating it certainly isn’t going to have won MAME any plaudits so why am I saying that it, and games of a similar ilk are one of the highlights of the year?
(3×3 Puzzle is forgettable in every way, but there’s good reason we emulated it…)
The answer is simple, because nobody else is going to care about these things it is important that MAME does, otherwise they would just end up being lost. MAME and the MAME developers paying attention to these things shows that there are team members who care indiscriminately about the project goals and that is vital because these games are every bit as much a part of history as anything else. They show why Ace Enterprise and others aren’t household names held in the same regard as your Sega, Konami, Namco or Nintendo.
There is a broader aspect to this, even some of the bigger manufacturers do have titles with a more limited appeal, some even specialize in areas a lot of MAME users aren’t going to lose sleep over if the games never get emulated but that, to a degree, makes it more important that MAME does keep tabs on such things because it’s much more likely nobody else will.
You can throw some of the video gamblers and redemption games in this category. How many people know exactly how many Print Club, Name Club and other miscellaneous redemption games Atlus and Sega ended up producing for the ST-V system (and earlier C2 system) Those things have absolutely no gameplay value, they’re photo booths where you get to select a themed border. It seems even Sega didn’t care too much when it came to quality control on them, assuming the carts we’ve seen aren’t all bootlegs they lack the regular Sega ROM numbering, the actual ROM tests in service mode don’t match up well with the cartridges, in effect they’re cheap throwaway garbage, so when a stash of them show up it’s always interesting to see if there are previously unknown ones in there to help build the bigger picture of what was available. Being realistic about things there’s simply no room outside of MAME for a ‘Sega Print Club’ emulator, nobody would care enough to give it a second look and they’d simply get lost and forgotten once again, so they get a free ride, and broader appeal as part of MAME awaiting the day somebody emulates the camera and printer to make them at least do something. Last year saw one such batch of these games turn up, including Pokemon, Felix the Cat and Olive Oil themed versions, who knows what else is out there.
(A Selection of Print Club shots, mostly from Test Modes showing the different frames)
It’s easy to say that MAME shouldn’t be wasting time on such things when there are more pressing challenges but the indiscriminate factor in what MAME looks at is vital if we’re to build a real picture of our computing history and these novelty machines were a part of that.
Redemption games are a bit different, they fit the middle ground between games and gambling machines, although more often than not the actual games involve minimal skill and are just a test to make sure you’re actually paying attention. Ganbare Marin-kun was one of Capcom’s entries into the redemption market. Running on a repurposed CPS1 board and released in the year 2000 there was little record of it until it showed up for auction. It was a surprise because we thought we knew about all the CPS1 titles, even if one or two are still illusive when it comes to sourcing them, it also means there might be more out there like this.
(Capcom redemption game Ganbare! Marine Kun was a late use of CPS1 hardware)
Boong-Ga Boong-Ga (Spank ’em!) or ‘that game where you poke somebody in the ass’ is another such game, although I’d actually more firmly place this in with the gamblers because from what I can see the outcome is pre-determined with the game only paying out a medal if it wants to even if you use the perfect power / force settings. Overhyped, and borderline on becoming something of an internet legend, at least in arcade circles I’d say it was a highlight because people have all but shut up talking about it now! (Although it’s possible the version supported is a censored export version..)
(Without the novelty factor of actually poking a stick up a model arse Spank ’em has very little to offer)
I mentioned gamblers, Fun River, Get Rich you’ve probably never heard of them, and while they are almost certainly some of the more recent video gamblers supported they run on dated Z80 driven tech. Prior to the video and sound roms being dumped they were just two of a handful of Amcoe titles where only the program ROMs were supported (because said company offer the program updates from their Website) I hope ‘Version 4’ gets dumped at some point during the next few years because while I have no level of fondness for, or affiliation with the actual game I can see it being an absolute pain to track down in a couple of years with such a generic name!
(These fairly recently slot games are running on a system still driven by the Z80 core, remarkable to see it still in use really)
Several Japanese gamblers and general redemption games showed up too, many of those are an even bigger mystery because apart from the Mahjong titles there is very little in the way of documentation or records for them.
The Japanese games Fruit Dream and Last Bank were also of interest because they turned out to be using a similar Z80 based ‘System on Chip’ solution as the Taito L system games (Puzznic etc.) so prompted some cleanup work there with a view to possibly merging the code down, it also answered a question I’d been pondering over for a while, explaining why Evil Stone has nothing in common with the rest of the Taito L games other than the video (it simply uses the same Z80 based chip, rather than being an actual Taito L board with Taito sound system, obvious really) Fruit Dream was also helpful as it points toward Nippon Data Kiki also being the manufacturer of Dream Crown, a game running on a different custom Z80 Soc (in that case the Seta ST0016) Again this is MAME helping to join the dots.
(Fruit Dream provides an example of a Japanese video slot machine other than the more commonly seen Mahjong titles)
(Last Bank provides a different theme to the usual derby horse race style game while retaining the same basic betting rules)
There are less attractive gamblers too, Robbie has been painstakingly documenting many variants of Video Klein poker games over the past year, I don’t envy him, but the level of work and dedication he’s shown to them makes it a highlight. Titles include Witch Up & Down, Wild Witch, Witch Strike, and Witch Jack.
(Which Witch is which?)
Sticking with the Witch theme, and I wouldn’t mention it otherwise, what is likely to be the original version of the Sega / Coreland gambling game ‘Witch’ also showed up, with an Excellent System copyright. It seems to have the same graphical problems as the Pinball Champ 95 set for whatever reason tho.
(It’s starting to feel a lot like Halloween…the original(?) version of the game Sega/Coreland also put out)
For US readers ‘Merit’ is likely a more familiar industry name, mainly due to the Mega Touch machines, however earlier offering “Riviera High Score” saw some attention.
(Riviera High Score, simple but effective graphics as with most older Merit games)
The Meyco driver didn’t escape improvements either although primitive doesn’t even begin to describe these virtual fruit machine / slots games! I talked earlier about how MAME had added the ability to display ‘scrolling’ reels on the non-video fruit machines, well these don’t even attempt to do that and they have an actual video output!
(Meyco made some primitive casino style games, those now work as long as you follow the battery init procedure)
Anyway the same applies with all these bits as with the Sega Print Club games mentioned earlier, nobody outside MAME is really going to care about these things so we have little choice but to care about them ourselves.
Basically, yes, MAME has been quite active in this area, not unexpectedly, such games were ignored for over half the life of the project, so there is a lot of catching up to do. Chance Kun, Bikkuri Card, Super Stars, Lucky Boom, Funcube (1 and 5, to complete the series), Chance Thirty Two, Pairs Redemption, Ganbare Jajamaru Hop Step & Jump, Kuru Kuru Pyon Pyon also fit in here somewhere and despite all being dull redemption games I could easily pull out some interesting fact about the hardware / discoveries made when emulating each one but you’re probably bored of reading about them by now so I’ll just throw in the facts with some screenshots. If you absolutely hate this type of thing being added to MAME then at the very least consider them highlights because they’re done, and don’t need doing again.
(The games in Namco’s FunCube series each offered a collection of redemption-based mini-games and run on a modern ‘Coldfire’ 68k based CPU)
(Pairs ‘Redemption’ offers a family friendly alternative theme to the regular Strata/IT Pairs game in addition to ticket payout, rather rare this one)
(Jajamaru Hop Step & Jump is a Rock, Paper, Scissors game, those were popular in Japan apparently – the hardware inherits some ideas from the NES)
(Chance Kun and Bikkuri Card are both horrible little ‘games’, we don’t know who made them but the ROMs have a ‘Penisoft’ copyright inside, a joke?)
(Lucky Boom looks deceptively like a proper game, until you try playing it – from Playmark of Italy)
(Chance 32 whips out the high colour modes while you undress girls by playing your cards right..)
(Super Stars is a German video slot machine)
(Kuru Kuru Pyon Pyon is a slightly more bizarre Japanese take on such things, runs on MSX2-like hardware)
Another category of machines exist for the home market in the form of Educational systems / beginners systems, I was tempted to put these in the diversity section but they fit just as well here because to most people they’re simply not interesting enough to emulate. V-Tech made a bunch of systems which fall into this category, and some of those have either seen new dumps, or significant progress made over the year too. The Genius IQ series is one such system, with the driver seeing various improvements and new systems supported including the Genius IQ TV 512. Prior to the work done this year the system had no mouse support and was therefore basically unusable.
(The Genius IQ TV 512 is a learner computer system for the German audience, it offers functionality to help with day-to-day tasks)
To look at the screenshots you’d think maybe it was some nice mini-os, in reality it’s a bit too limited to be considered a real OS, it’s somewhere between the faux OS UI’s some games used back in the 90s when it was ‘popular’ (I’m thinking Jagged Alliance here) and an actual OS, or possible a phone OS.
“Professor Weiss-Alles” is another similar system, but really it’s just an alt language version of the already supported ” Socrates Educational Video System” it even takes the same cartridges which appear to be multi-language.
(Professor Weiss-Alles is the German version of the ‘Socrates Educational Video System’ and teaches basic skills)
Some other V-Tech Genius systems were also dumped, but haven’t yet been emulated because they use different, and sometime unknown CPUs / MCUs.
Personally I don’t think systems like this have anywhere near the value something like the ZX Spectrum, Amstrad CPC and Amiga had to me growing up, but in recent times I guess the most important thing has been seen as showing how a ‘modern’ OS works in terms of using the programs, not actually giving the power to create anything meaningful and understanding the raw logic.
Does anybody care about Gameboy pirate mappers and the like? Well a couple of those were added, allowing things like the horrendous “Sonic 3D Blast 5” to run. It looks better than it plays and I’ve seen better looking things sat in my toilet.
(Sonic 3D 5 for the Gameboy, they couldn’t even get the attack mechanic right, oh dear.)
Older arcade games on PC-like hardware tend to be underwhelming too, and while DosBox is an excellent little piece of software for emulating DOS based games, and early PC software emulation of the weird one-offs based on PC hardware it usually left to the realm of MAME. PC hardware was common for things like Touch Screen bar cabinets, and “Street Games II” is one such title promoted to working over the past year. Oddly the prequel, on basically the same hardware doesn’t work, failing to register inputs with the touchscreen. These games are ROM based, rather than being HDD based so aren’t as close to being ordinary PC titles as some, but that’s all the more reason why they end up being left to MAME.
(Street Games 2, basic touchscreen titles on PC-like hardware)
As you can see, most of what is included here could also have been included in the ‘All Around The World’ section, redemption games seem to have been developed far and wide, and we’ve probably only found the tip of the iceberg with them in some areas. I’ll never understand why these games became so popular, at least with the real gambling / slot machines you do have a chance of winning something worth more than you put in, instead with these things all you’re ever going to get is a novelty prize with your tickets.
#10 – discovery
One thing having MESS more closely tied to MAME has done, and of course working on UME and promoting that has aided in too is the discovery of new things, the little links, connections, ports of things you were surprised to see ported, or simply titbits of new knowledge.
I’ve done articles covering this in the past, the recent one showing off different versions of Pacman running in MESS / UME, and even ones before that demonstrating some of the Saturn games which are functional and in a self-referencing kind of way even this very article here.
MAME is immediate, and obvious, with 99% of the supported library you know exactly what you’re going to get, and after working on the project for so many years somebody only has to mention a game and I can picture it, and with a decent enough description of almost any game I could probably tell them what it is. Arcade games themselves can also be rather boring, with it being possible to squeeze the majority of them into a small number of action focused genres, not surprising because they were designed to be immediate, easy to learn, pick up and play, and it doesn’t surprise me at all when people who have used MAME for a long time and experienced a large number of the supported titles start actually picking up prototypes as their favourite games; often they ended up failing the location tests and never getting released because they were too complex, had more depth than it was possible to pick up inside of the time a credit or two is going to give you.
You might think that’s one mighty slur against arcade games coming from somebody who has been so heavily involved in arcade emulation and MAME, but the comment should be taken in moderation. Arcade games are a blast, the pick-up and play factor can be a very good thing, you can squeeze some amazing ideas into bite-sized chunks of gameplay which simply wouldn’t survive as a larger title, and I feel one of the problems with the industry today is that, aside from mobile / downloadable games it seems like the majority of titles have to be big Hollywood style games, although if that’s what people are buying then that’s what gets put on the shelves. Anyway, my point was a game like Populous, or Powermonger, both classics from back in day simply wouldn’t make it as an arcade game, it would be a non-starter, even Lemmings was with the version Data East did never making it past prototype stage; thoughtful, slow-paced strategy games don’t work as Arcades. The same applies to heavily character driven games like RPGs, some were attempted in the arcades, Cadash being one example, but they’re more pseudo action-based RPGs than real ones. All these things have been emulated in MESS for a long time, but if you’re new to MESS due to ties between it and MAME being more obvious, or have embraced UME because you enjoy having a combined binary then you could consider things like this new to the project, even if really they’re not.
(MESS and UME by proxy can introduce you to new types of games in ‘MAME’ which would simply never work as arcades no matter how much you reworked them)
It’s also important to understand that I’m not just talking about the actual game aspect, I highlighted that first because it’s something I can imagine a lot of people will be able to relate more closely with, but as an actual developer on the project and in general, the hardware and how it is being used is a far more interesting subject.
Arcade hardware and software rarely show the same level of ingenuity required with some of the more limited home platforms where a single system must survive tens or even thousands of games, not one or two. Arcade hardware tends to be built for purpose, you do encounter a lot of weird and wacky things, but you very rarely see a game push the system it’s on to the absolute limits, you don’t have interesting things like cassette loading schemes to study and part of the charm of something like the ZX Spectrum comes down to things like that. Most of it is probably lost on anybody who didn’t grow up with them, and who haven’t ever studied it at a technical level because they’ll just see the systems as a bunch of mostly ‘bad’ games but when you look at some of the things you see on the screen from a technical point of view it’s often much more of a challenge to work out how they pulled them off, and that extends even into the 32-bit era and even today if you think about it, the current platforms are hitting 8 years old and pushing out graphics nobody imagined possible at the time.
Looking at a specific example, you might see that a weak 8-bit system like the Amstrad CPC with a 4Mhz Z80 has a port of Chase HQ, A 4Mhz Z80 was the sound CPU on the original arcade alone, the weakest part of the system! Couple that with the fact you don’t really have any dedicated video hardware and you might think it was simply impossible. I’m cheating a bit with this example because I already know it’s a good port, but if I didn’t I’d be quite impressed. Sure, it’s not smooth, it’s not in a nice high resolution, but it still manages to look good and capture the feel of the arcade game really really well, it’s an amazing technical achievement and the opportunity to discover and study such things by making use of the MESS code is amazing.
(MESS / UME show off some amazing technical accomplishments, funky custom tape loaders, and ports of games to hardware with less overall power than the original had in the sound section!)
With arcades you simply don’t have that, none of the platforms were around enough for people to learn how to program them to that level, it makes emulating them easier, but definitely less interesting. I guess you could say the NeoGeo was around long enough, but the majority of what was achieved there was simply done by ramping up the ROM capacity as required to fake any effects needed.
Anyway, none of that is ‘new’ as such, and if you’ve been following MESS for a while, or other console & computer emulators you’ll have seen it all before, if you haven’t then you’ve really been missing out on many levels.
The Role of Software Lists in the Discovery Process
For the reasons just explained the process of exploring what MESS has to offer has been one of the highlights of the year, and combined with the efforts put into creating and maintaining the softlists has made for some fantastic discoveries; I feel my knowledge has been enriched as hopefully some of the following examples will show.
I can understand the frustration it might cause some people, actually having to figure out how to load something in MESS on an original computer system is at times even more frightening than having to use the commandline, and advanced use of that can be difficult too but there is plenty to discover even if you only stick to the more immediately accessible systems as I’ve found over the course of the year.
Even for systems where I thought I knew most of the library inside out there have been surprises in form of seeing how the systems were used and abused by manufacturers of pirate games (often unlicensed movie tie-ins etc. or clones of popular games) many years after the death of the original systems. The Software Lists attempt to document both official and unofficial software released for the platforms, so make identifying this kind of pirate release easy. One such release was the a Genesis release of Super Mario Bros, sold in Russia; apparently it’s based off a direct code translation of the NES version, so unlike all the other terrible Chinese ports this one plays exactly how it should, apart from the sound which lets the whole thing down a bit.
(You’d be forgiven for thinking this Russian Genesis release of Super Mario Bros was the original NES game, the visuals and gameplay are spot on)
While many of those are recent pirates from the last 5-6 years because the Genesis is still popular in places like Russia other older pirate games have turned up and promptly been documented in the Software Lists too, in addition to many prototypes. Sticking with the Genesis one of those unlicensed games was Bomboy from Gametec, a 1993 release clearly inspired by Bomberman; it’s not even too bad compared to some of their other offerings. In MAME something like this turning up would be classed as a new game and listed in the relevant sections of the whatsnew, but because MESS is still playing catch-up when it comes to the Software Lists things like this tend to slip in unnoticed even with the more mature lists like Genesis, SMS and SNES, so it can be rewarding to look at the history of individual lists to discover new additions.
(Bomboy was a rare unlicensed Genesis pirate cart from 1993, uncovered and supported last year)
MESS also became the first emulator to attempt to identify and use the individual chips found in the Sonic & Knuckles cartridges rather than using pre-merged ROMs, and while I think there is still a bit of work to do for that (detection of the Sonic 2 cart leading to the switching) it’s still a bit nicer than loading a pre-joined blob. The Software Lists are an essential tool for being able to document how things like this, where custom loading is needed.
If you look at the history of the SMS and GameGear list you can also see it tracks things like SMSpower releases, so naturally through the course of them making rare prototypes available MESS documents their existence in the lists so thanks to them the likes of Crazy Faces and CJ Elephant Fugitive are known about. The SMS list also shows that work has been done to document the specific (mis)behaviors of the various clone models like the ones released in Korea which a number of the MSX conversions released over there as SMS carts rely on.
(The Software lists help document newly discovered cartridges, in this case two Game Gear titles found by SMSpower)
(The same can be said for the Korean SMS, aka the Gam*Boy – manufactured by Samsung. This is ‘Janggun-ui Adeul’ an unlicensed beat ’em up)
Of course, this isn’t the work of the MESS team directly, except in cases where the emulation needs fixing to support the various games but it does show how useful a well maintained Software List can be in discovering things about the systems you might otherwise have missed.
It’s also wise to keep an eye on the list additions for some of the more obscure systems too, several sets for the Sony SMC777 surfaced too, including a port of Choplifter, a shooter called Striz B.H., and some multigame discs with basic puzzle games and the like on them.
(A port of Choplifter on a newly discovered SMC777 disk)
(Striz B.H is another recently discovered SMC777 title)
(Rocker is a Rock Paper Scissors based sliding puzzle game for the SMC777, part of one of the multi-game collections)
I was also fascinated to discover things like the Atari 2600 Supercharger expansion, until that point I had no idea that there was a cassette based expansion device for the old Atari system, even if people more familiar with it would probably consider it to be an obvious and well known part of the history of the system. The best part is I could fire it up in MESS and it actually worked well for most of the software I tried. If you only followed mainstream news you might be forgiven for thinking the Atari 2600 only had the disasters that were E.T. and Pacman, but being able to discover more in a familiar emulation environment has been an invaluable experience. While I can’t pinpoint a specific version in which it happened some work must have been done here over the past year as well because when the initial check in of the A2600 Supercharger Cassette list was done at the start of the year there was a comment saying loading from the Software List didn’t work even when it should.
(The Software Lists helped me discover that the A2600 cassette unit was actually an upgrade and allowed improved versions of games like ‘The Official Frogger’ (Right) over the original A2600 release (left) )
Of course part of the discovery process can be disappointment, seeing a system with a large software list then not being able to figure out how to use it, or finding that it most of it doesn’t work at all, or the driver is suffering some kind of long term regression, and there are certainly plenty of cases guilty of either or all those issues but after a while you come to accept it and move on, or attempt to do something about it.
Software Lists are a vital part of understanding the place in history a system had, it’s influence, the primary markets, secondary markets, and even new markets long after first party support was dropped. They provide a place for people to document their findings, a vital support link for the emulator allowing for correct loading schemes to be used and any extras found in cartridges to be hooked in without having to hack up correct ROM dumps in order for them to work, and in doing that they allow for comprehensive documentation of the innards of removable ROM based media, just like MAME attempts to do with PCBs. They allow you to ascertain a good level of understanding and discover many things you might not of otherwise known about, they can inform you of dependencies, and compatibilities if such things are contained within the lists and such functionality only stands to get better as they mature. The lists, as with the rest of the project are a gateway to knowledge.
When doing the ‘Ports of Classic games’ article late last year the Software List were my main reference for finding out what systems the likes of Pacman and Mappy had been ported to, and while I know there are gaps in the coverage they provided a big head-start for that research so a big shout out must go to everybody who has helped maintain them, track down things to list in them and validate / improve the information contained within.
Back to the Arcades
At a technical level the discovery aspect does still apply to MAME in some senses. One of the things I kick-started back into action when 3-on-3 Dunk Madness was dumped was my reworking of the Video System Co. sprite chip emulations and it was certainly interesting to discover that there really were only a small number of basic types hooked up to different hardware for the final tile indirections. Even in the case of Pipe Dream where the system is driven by an 8-bit Z80 the sprite implementation could be hooked up seamlessly once re-factored without the need for duplicate code in every driver to accommodate the minor differences in the final tile indirection or house per-game hacks due to incomplete implementations. At the same time as working on all that I discovered that Hattris doesn’t use sprites at all, and while I’m sure whoever did the driver in the first place made the same observation at the time it was something new to me, and made me curious as to how the game worked because for most non-sprite based games it’s a lot more obvious they lack sprites. I was going to do an entire article on sprite-less systems but never did get around to it. Also as featured in a previous update here, that work on the Video System sprites improved sprite emulation in several of the games using it, including Tecmo World Cup ’94 and Grand Striker, although both still need attention on protection and background rendering respectively.
(Work on cleaning up Video System sprites helped Tecmo World Cup 94, but we still need to tackle the protection)
A desire for discovery, learning, and understanding new things was a big part of the reason why I became involved with MAME in the first place after my initial contributions, so that’s why I’d consider this a highlight of the year even if it isn’t tied directly to any individual progress made during it (aside maybe the integration mentioned in the first point, but I was already doing this before then)
#11 – the potential / signs of things to come
I did an update on some ‘almost’ drivers a while back here, but the steady flow of new drivers to work on, new information to study and things to figure out is also an important part of keeping MAME alive.
Not everything added hits the ground running, and even if you ignore the vast swarm of non-video based sets there are a lot of things added where a good pair of eyes might be able to yield some interesting progress.
It’s not always possible, for games with protection MCUs the task might well be impossible with no way of dumping them, almost everything produced by IGS after 2001 falls straight into that category for example and while I’ve already shown a screenshot of the Chihiro boot screen earlier it’s unlikely anybody is going to be even considering emulating a modern Pentium 4 based PC in MAME for even the remotely near future so in cases like that the potential is far off, or more likely to be seen elsewhere first.
Other things have been creeping along in MAME too as a result of the same x86 / PC emulation, Funky Ball for example has also started showing decent signs of life now, and with an x86 recompiler and graphic fixes who knows what could come of it.
(Several changes over the year have improved Funky Ball, performance is still bad and many graphics seem to come from the wrong RAM/ROM bank but the emulation is showing potential)
With that said there are more realistic targets becoming clear, drivers where perhaps they just need a little more work, and a little more motivation to get them to a working state. Of the additions from last year I’d say PoPo Bear and Super Bubble Pop (an unlicensed NeoGeo release) were probably the closest to be actual working drivers. Super Bubble Pop is a NeoGeo game so most of the base hardware is already emulated, and while there is some kind of slight ROM scramble on the header it also had problems with the FG layer incorrectly being cleared, and P1 controls not working which could be flaws in the emulation of the system due to the game doing things in a non-standard way, or some additional protection. Popo Bear needs work on interpreting various parameters properly and understanding the interrupt generation in order to improve graphics and game timing, it is already quite playable tho.
(So close.. Super Bubble Pop for the NeoGeo is almost working, but for some reason only the P2 controls are functional)
(Popo Bear is also close to working, a very unusual release from BMC who are better knowing for gambling titles)
That of course gives no guarantees anybody will look at them, there are others teetering on the edge that have been in such a position for well over a year, the games in the ‘Pinkiri 8’ driver (Mahjong titles) just need that one critical piece of the puzzle solving and it frustrates me that something as trivial as ‘how the height of the sprites is determined’ has been an issue for so long. They could even be kludged to work if needs be, just nobody has got around to either yet.
New dumps can be a reminder to look at drivers, a reminder of their potential, and the surprise of some previously unknown PGM cartridges showing up (A non-Super version of Puzzli 2 and a 3-in-1 cartridge of Photo Y2k2) were a definite reminder that I need to take another look at the emulation of Puzzli 2 and Photo Y2k2, but unfortunately time didn’t actually permit for any improvements last year so it remains to be seen how long these will remain as ‘potential’. The potential for something to be emulated is greatly increased with working boards / cartridges at hand because it makes recording reference material, getting vital information and running tests so much easier, so it’s easy to understand why it acts as a good reminder.
(New dumps, like these PGM titles often act as a natural reminder of where driver potential lies)
The work done on Konami’s Firebeat is also a sign of what might be just around the corner, and with the Keyboardmania games on the platform also ties together with the midi work mentioned earlier. Several games are on the verge of being playable, including Keyboard Mania 2nd Mix and 3rd Mix but using them on with standard PC input devices is tricky, so they would be ideally suited to being hooked up to a real keyboard.
(The Konami Firebeat games have seen progress in the last year and with a little more work could be promoted to working)
Small commits and improvements are often a reminder of where potential lies too. System 10 in MAME saw some advances in figuring out the encryption, and knowing the underlying system is PSX based means that it’s highly likely once all that is figured out a whole bunch of the titles on the platform will ‘just work’ although currently there is nothing to show for it, because like all program rom encryptions you’re basically dealing with a case of things either being correct and the game code running, or being incorrect and the code simply crashing.
Similar smaller updates in the MESS side of the code also show potential areas for improvement, there were fixes to the F8 core and Video Brain earlier in the year, and while you can boot the system up it’s still considered non-working; inputs don’t function correctly and there are various glitches but in simply running it you can see it has the potential to go somewhere.
Judging potential from how things seem to be working can in some cases be misleading, you’d be forgiven for looking at the non-working Gaelco games in MAME, seeing how much of them actually run and just assuming the remaining protection issues were actually trivial when really they’re the exact opposite.
Poking around in some MESS drivers makes you realise similar as I have over the last year. MESS surely must have the potential to be the best ZX Spectrum and ZX81 emulator out there, from a hardware point of view they’re very basic systems, but the more you dig the more you realise the problems aren’t really trivial fixes. If you’re to do the emulation properly you’d need to apply a similar level of treatment to the Z80 core as the 6502 core saw and if you consider that the Z80 underpins everything from Pacman to the majority of sound systems used by all the major manufacturers in the 80s and 90s and even some of the more recent gambling games then you can get a grasp of the potential impact of such work , the amount of testing it would need and the number of hacks and bad assumptions having an actual 100% accurate core could break. Heaven knows what voodoo is going on with the Speccy emulators capable of delivering perfect emulation on an original Pentium! Of course we could probably cheat, I think the MSX already cheats in a similar way, feeding custom cycle counts to the Z80 core, but any cheat will always fall apart at some point.
The Amiga is similar, for it to be actually good with original software it will need better 68000 support in addition to everything else. It’s very noticeable at the moment that we fail protection checks on a number of original titles presumably because our timings aren’t good enough and they’re built with Anti-debugger code which is designed to be very fussy about timings.
All is not lost however, things can be improved even without all of that. Playing around with a few things (like fixing the CD32 pads) give an idea of what might be possible with some more minor fixes, and potential short term improvements however. Fixing the Amiga 1200 floppy support was an important step towards making some progress as it opens up the door to booting a variety of AGA mode software, which could provide useful test cases for fixing the emulation, but somebody will still have to do the work! There were also some fixes to the regular system for a couple of specific cases that were identified deemed easy to fix.
(Some minor improvements allow the Amiga 1200 to boot disks now but bugs are obvious in many places)
(The missing menu selector here is one such bug that may be worthy of some time investigating)
(Even the few listed games in the CD32 list show areas where clear attention is needed)
Those screenshots focus on the AGA systems, but as mentioned the OCS and ECS systems need just as much work, with many simple PD games demonstrating very visible glitches. It’s definitely a driver I’d still file under ‘potential’ despite fixes made over the year. Unfortunately the original Amiga drivers had been marked as ‘Working’ prematurely many years ago, so 2012 actually saw them correctly demoted to a non-working state because they’re far from correct.
Focusing back on areas where new progress shows potential for much more we’ve seen things like the NeXTcube driver touched and showing signs of life, PC-FX too.
(I don’t know much about the NeXTcube, maybe it needs software to pass the startup tests, but none is listed, one to watch tho)
(The NEC PCFX was the follow-up to the PC Engine, not much to look at yet tho, but it’s progress over the previous year)
Maybe a lot of this should have been filed under the ‘discovery’ section, because a lot of this potential isn’t the result of new changes, but the result of looking at what is there over the past year, hence being mentioned in this article in the first place.
Potential is often seen as a negative thing, especially in the case of MESS. This is because things in MESS tend to be judged on a per system basis, when in MAME they’re judged on a case-by-case basis. Even Virtual Boy, which I’ve already mentioned had some very significant improvements over the year could still be considered ‘potential’ because while Mario Clash runs and comes across as a well polished classic Nintendo offering attempting to run 3D Tetris instead will show the driver fails entirely to handle framebuffer writes, leaving that game unplayable. The software lists can give some perspective on this in cases where known working / non-working software is known which brings things more in line with MAME but people are naturally and instinctively more likely to judge things on a system-wide basis.
(For all the good things I’ve said about Virtual Boy progress things like 3D Tetris show why as a system it’s still considered non-working)
Reasons above are why systems like the Virtual Boy, despite seeing significant progress in the year are still marked as non-working, it avoids over-selling MESS, or having people somehow think the driver is done and requires no more work but also has the consequence of making MESS look worse than it actually is when many games on a ‘non-working’ system can actually be fully playable. Sega CD is another such example, I’ve left it as non-working because I don’t entirely trust it, and a number of games will fail or require scary hacks to get working. Even considering that however you’ve been able to run things like Sonic CD and Wonderdog for a long time now. If Sonic CD was a standalone arcade game in MAME then it would be marked as working, and people would think everything was good, but because it’s a Sega CD game and the overall quality of the system emulation has shown it isn’t entirely trustworthy it gets batched in with the ‘MESS sucks, nothing works’ viewpoint for many. Let’s put it this way, if Area 51, Maximum Force and the other CoJag games were regular Jaguar games in MESS then even if they worked to the same quality they do in MAME now the system would still be considered ‘non-working’ because 98% of the system library doesn’t work to any worthwhile standard.
(In MESS terms these are considered non-working, because they run on the MegaCD / SegaCD which isn’t trusted yet, this can reflect unfairly on MESS because if they were MAME standalone games they’d be marked as working)
On one hand it’s cheating to show Mega CD / Sega CD, because as a system it wasn’t touched in 2012 aside some code shuffling, but I consider it important to highlight it to anybody who might be unfamiliar with MESS and how even with non-working systems there can be individual working games, sometimes many of them and with the closer ties to MESS introduced in 2012 it seems right to mention it.
So is potential a positive, or a negative? I’ve included it here because some things caught my eye, it can point at interesting future developments, but can only really be considered a positive if people build on it, and fully realise that potential.
Potential can Benefit Others
There is another way to view things as well however, and it’s an important one to consider. Even if a driver doesn’t see immediate attention it can’t really be seen as a negative, MAME (and MESS) provide a great deal of documentation value even for completely non-working systems, information useful to owners of the original systems etc. Something as simple as MAME listing that PC based game requires a dongle allows people to know that if they see one for sale without the dongle (for example, just the install discs) it probably won’t be usable. In addition if we document versions we know about, and a different one shows up it means it might be worth buying on the cheap even if the dongle is missing, this often applies to things like Naomi discs where revision discs quite often end up ‘loose’ but we know we already have a suitable dongle.
Getting caught up in the trap of thinking that everything in MAME should exist to benefit you and you only is an easy thing to do, and we see it often, it’s very easy to miss the bigger picture, that MAME exists to help everybody, people with vastly different needs and interests to your own and by having things like skeleton drivers where we’re simply documenting everything we know until the day somebody can emulate it we’re fulfilling one of those needs.
#12 – the rest
One thing I didn’t really expect to see / hear is that 45% of users of a popular ROM site are opting for the 7-zipped versions of MAME ROMs according to some statistics I was given. That’s not a bad adoption rate for a change introduced last year, and one where there is still some work to be done in updating support when using some of the tools (romcmp) and MESS when it comes to floppies etc.
7-zip support was actually only a convenient side-effect of the CHD compression improvements, which due to their size are generally more important to have well compressed, and that ended up in the entire CHD handling being rewritten practically from scratch and a long bedding in period there are signs of things settling down now, and it did help uncover some issues with how the older tools handled certain CD images too.
I’d consider that a highlight because it’s good to know I wasn’t wasting my time in adding support for the more modern format, it makes sense really and while one of my real reasons for adding it was to future-proof us against cases where a board has >2GB of ROMs it tends to compress things like the unpopular fruit machine sets down very well because most of the clone files are 99% the same as the parent and the solid compression handling is ideally suited to such cases.
A lot of people consider the classics ‘done’ as well, but 2012 proved otherwise with improvements to the blitter timing in Robotron, bringing the game closer than ever to the real PCB performance. This isn’t something you’re likely to notice unless you’re a hardcore player of the game, but it shows a dedication to improving the accuracy of things where possible and while arcade games tend to be quite forgiving in areas like that it’s the same kind of dedication that people will need to show to some of the computers and consoles if they’re achieve a good level of compatibility!
(It will surprise many people but even Robotron was still seeing emulation improvements in 2012, with the blitter timing now more accurate than ever)
Then there are of course the games added which aren’t especially rare, aren’t exceptional in any way, and weren’t especially difficult to emulate because most of the work was already done, but at the same time show the course of history for certain developers.
In this category I’d put Toy Land Adventure and Diet Family, both Korean developer Semicom products, both running on Hyperstone based hardware, but compared to earlier efforts seem a little tame and underdeveloped. Toyland Adventure is really your ‘by the numbers’ Tumble Pop style game, but possibly more generic than even Head Panic, and Diet Family is closer to a modernized version of Galaga with a food theme, but really lacks any charm and the graphics, while attractive are very flat and add little to the game. One positive from them is they did tell us that the actual hardware outputs a very strange resolution, with the bottom 4 lines not being output by the hardware at all. I was glad to discover this because up until then I was fearing a nasty Hyperstone CPU bug causing the clipping issues at the bottom of the screen, but no, the games are actually programmed around the exact hardware limit.
(Subliminal messages in Toyland Adventure still don’t make it anything more than a very average game)
(Diet Family, putting looks above innovative gameplay)
Magicball Fighting was an earlier Semicom game, completing the series as far as support for their arcade baseball games is concerned. Again not really my favourite games, they’re just coin suckers and none of them fill me with any real confidence that there is more skill involved than luck but no doubt an important part of Semicom history forming a staple series for them in Korea.
(Magicball Fighting, the first in a series of 4 arcade baseball games, all now emulated)
Also from Korea we saw two new Eolith hardware titles too in the form of ‘Linky Pipe’ and the awkwardly named ‘Steal Sea (& Get Land)’ which is a 2-in-1 affair, and by far the better of the games.
(Linky Pipe, flawed and not a huge amount of fun)
(Steal See & Get Land, an awkward name, but the game on offer isn’t too bad if you like that kind of thing)
Some other systems in MESS also had decent bits of progress made to them. The Super Cassette Vision for example was already decent but several fixes were made throughout the year to improve the supported games such as Boulderdash, Kung Fu Road, Real Graphic Mahjong and many others. It’s fair to say that the whole system library has been improved significantly in the last year even if some games like Mappy still aren’t quite correct (it runs far too quickly) and the screen resolution / aspect seems odd if stretched for 4:3
(There have been improvements across the board to Super Cassette Vision, including CPU bugs fixed for Boulderdash)
(Graphic / Sprite fixes helped many other games too, including Real Graphic Mahjong)
Various old regressions were fixed too, apparently the Famicom keyboard hadn’t been working since some point in 2011 and while the Famicom will always be in the shadow of the NES, at least outside of Japan it’s still good to keep it in decent shape.
The 9938 VDP, as used by the MSX also got some fixes, mostly in the form of cleanups, removing an old sprite limit ignore hack which was actually causing more problems than whatever it was meant to fix, also some music tempo fixes and similar, nothing major just a spring clean.
The Votrax speech unit (Gorf etc.) was touched early in the year, but the code left disabled, enabling it shows why, it still bears no resemblance to speech. It’s a shame there was no further progress, but I was glad to see it touched mainly because I’d really like to hear the German versions speaking one day without any hacks or assistance (we don’t have samples for those anyway) I guess this one still gets filed under potential.
Let’s also not forget we entered 2012 with some long standing, and highly annoying bugs with Save States, namely the one with the OKI6295 where it would randomly crash if you attempted to use Save States. We leave 2012 with that fixed, and the importance of bug fixes like that, especially if you’re using MAME on a daily basis should never be underestimated. One slightly more surprising side of things is the number of drivers still lacking in Save State support, maybe a worthwhile goal for 2013 would be to go over the drivers adding it, it’s never been easier now that we have mostly modern drivers and devices with the hardware specific inside the class states.
Some changes throughout the year were understandably disruptive, but needed doing, for that reason I’m going to mention Olivier’s floppy rewrite here, it left disk support in a number of drivers broken or only partially working for a long time, and a double team with another one of the significant updates, the SCSI code rewrite means that the X68000 is sitting mostly broken even today (I think, could be wrong). However, both of those things were absolutely essential towards making long term progress across a number of systems. The new floppy code gives the ability to support complex disk formats and their protections, it allows drives in a number of drivers to be hooked up properly, without resorting to hacks which inevitably cause another system to break, and while some areas of the code are still settling as the needs of each system and how they used / abused the hardware are fully understood we’re showing signs of improvement and are definitely over the worst of any fall out now. From time to time you need changes like this, ideally such things should be invisible to the end user but inevitably they aren’t, and that’s one reason why having users is important, to catch the edge cases and fall out. I consider this work a highlight because it’s all been done in a professional manner. it was the kind of task many devs would have shied away from but instead it was tackled head on.
The SCSI improvements I just mentioned, that’s been another big one, bringing together all the different implementations, trying to implement things properly so that various devices are reusable rather than ending up heavily tied to one specific implementation for one specific system, it’s all important work even if it may not appear so.
That’s also been another key thing we’ve seen this year, implementations brought together. Already mentioned was the work I did on Video System, but there were still bits done for Data East (following on from work in the previous year) and the various Kaneko video + protection chips. Many general devices got similar treatment, code being ripped out of individual drivers and actual proper implementations being hooked up (the 68681 as already mentioned is one of note) In cases where multiple implementations of devices were created only to later find out they were a rebadged version of something else we’ve also seen work done in crunching those down; it’s been a busy year for device changes and improvements with far too many to mention.
For a project where a lot of people seem to think nothing good has happened for many years I hope this write-up shows that there has been a significant amount of progress over the last year alone, just like most of the ones before it if you were to pick them apart and do similar. Sure, the focus is slowly changing, but even then there are still fixes, improvements and refinements made to classic era games, as well as a number of lost classics showing up.
The changes we’ve seen over the past year were always inevitable too, as much as some users and even developers want to resist MESS, or see it and the gambling games as some kind of ‘cancer’ on MAME it’s just the natural course of progress if we’re to see the project continue to be relevant to generations beyond those who remember and admire the classic arcade games.
Harking back to points made earlier, as one of the younger members of the core team I’m now 31 and not getting any younger, and the lack of any significant amount of younger developers is a worry even if the old brigade are doing are still doing a fine job of supporting the project for the time being.
My personal memories of the arcades are mostly ones of being barely able to reach the controls with the constant jangle of money being paid out of fruit machines across the hall along with all the peew, pow, bangs from the older titles and things like TMHT (TMNT) blaring out the theme tune every attract loop. By the time I was old enough to start appreciating them most of the interesting games had gone, replaced by flashy VS. fighters, shock factor appeal, novelty dance games, and huge expensive dedicated cabinets. Sure, as a kid, the arcades were impressive compared to the graphics on my ZX Spectrum, they had a wow factor in terms of graphics and sound, but they weren’t magical to me the same way they must have been to a generation earlier, and I’d guess to generations after they were even more irrelevant.
For that reason I’m glad to have seen some decent progress in the 3D systems in the past year. As cool as many of the rare findings are, and fascinating as their history can be most of them are going to do nothing to reach out to a new generation even if they make fans of the more classic eras giddy, or at least the ones who are open minded enough to recognize that there was more to the arcades than PacMan, Donkey Kong and Robotron!
My fear is still that MAME, like MESS did so many times, has already missed the boat with some of the more recognized 3D titles though, for example the likes of Daytona (Model 2, ElSemi’s Emulator), Scud Race (Model 3, Super Model), the newer Naomi, Naomi 2 where you have Demul, and then the hacked Taito Type X games where people are running them natively. This puts MAME in a difficult position, people aren’t going to be impressed even if we do them perfectly, the response is more likely to be ‘about time’ or ‘performance isn’t good enough’ and understandably so. 2012 has done little to dispel my fear in this area, and while taking onboard the MESS developers has been a boost, the lack of fresh blood in terms of both developers and user base is a concern.
When emulating the 80s and 90s stuff for the first time MAME became and stayed popular because it always made a splash, it was often the first to do things well and in an accessible way; not necessarily the best, but with the best balance of the important factors. This in turn meant that people were drawn to MAME, heard about MAME and wanted to contribute to MAME, making it better; the fact that most people of the capable generations had been exposed to programming on home computers no doubt helped too. These days we’re seeing more and more people with no home computer at all, instead relying on crippled tablet devices and phones and using computers simply in schools environments where they’re equally locked down so I think this problem is only going to get bigger.
The work I mentioned earlier being done on the 3D systems in MAME is often ground breaking, things nobody has done before, but the balance of usability, stability, performance etc. just isn’t there. In part it’s the games, something like Silent Scope without the novelty of the scope is hardly worth a mention. Worse still if you want to do things properly in a portable, readable way without really just creating one giant hack only capable of running a handful of games then performance will always be an issue. In the past CPUs typically got twice as fast year on year, but if anything we’re not seeing people more and more move to lower power systems, which is inherently bad for emulation. I think this makes working on the emulation less appealing too, it takes a strong mind to work on emulation for something you know most people are going to slag off, and not test properly or possibly not even notice for reasons basically out of your control.
That said, the MESS components are showing signs of progress, and while I feel this article doesn’t fully do justice to a number of them it is pleasing to see because the systems covered by MESS have a broader appeal and there are even systems left to emulate that, given some decent recompilers, make for realistic targets in the future. I wouldn’t suggest trying to emulate something like the Nintendo DS, or Playstation PSP right now because they’re still a bit modern, but they are realistic targets for some point in the future.
As I mentioned at the very start, that was my big highlight of the year, the bringing together of the development of the projects, because it helps start to make it clear that the horizons of the project do extend beyond just the dead-end arcade tech, it brings closer together a generation of hardware that had more appeal to my generation and younger
Keep in mind that the main reason I got into MAME development was because I saw that there were arcade games running on Genesis hardware which really got me curious, had it not been for that link I might never have bothered at all. I was actually going through some old CDs of data backups from when I was working on that driver and found some rather unsavoury comments in my private tree regarding being asked to not include actual Genesis games in my driver even back then, it seemed silly to me at the time and now, near 15 years on, it seems ridiculous that we still maintain any level of separation yet people say I’m trying to rush this kind of thing and push people into doing it too quickly?
Anyway we’ve seen progress on that front, we’ve seen general advances to the core, and we’ve seen hard work and dedication put into drivers for even the most unpopular games as well as the classics.
We’ve also seen breakthroughs on some tough nuts, progress in diverse areas, and huge amounts of money thrown towards helping locate rare stuff for analysis. It’s hard to ask for much more, in terms of actual progress, and getting things done it’s been a good year even if I think a lot of it ended up slipping below the radar for most people, hence this write-up in the first place!
There were a couple of disappointments, we’ve still no solution for things like the Bubble Memory, and while it’s entirely possible the code will turn out to be the same as the ROM based re-releases we emulate it would be nice to emulate the system right down to MCU level, including having raw dumps of the magnetic ‘bubble memory’ so that we can see the MCU performing any reading and error correction in action. Those things are a ticking time bomb.
Gaelco games are another such time bomb and again not one for which we have a solution. World Rally is only emulated because Gaelco kindly provided the code, but I’m not even sure they could do that for something like Glass if they wanted to, because to the best of my knowledge it was a 3rd party development. For the others there has been no further contact, no indication they might make available the dallas code for World Rally 2, Thunder Hoop 2, or a number of others. I did take a look at Glass earlier in the year, but quickly concluded the number of small behaviors controls by the protection were far too great, and it was more or less a lost cause. The changes I made merely served to get it past the initial ‘fail’ screen.
(Are the remaining Gaelco games a lost cause? Glass shows how the protection can be heavily involved)
Finding several Deco cassettes was a positive, but there are many of those left to find too, even if several are likely to be dull mahjong titles it would be a shame if they got lost forever.
Speaking of dull titles, we’re still yet to get a complete set for any of the Sega X-board + satellite based gamblers, Charles did manage to pick up a large number of components for one of them recently, but like every other time one key part is missing, and they need a complete set to be of any use at all. I already mentioned things like Exciting Black Jack using setups like this, but I believe other titles like Royal Ascot did as well, we currently have a dump of the X-Board part of that, which will boot and show a title screen, but then just seems to sit there and wait for something, presumably other terminals used for the actual betting, to talk to it.
(Royal Ascot, useless without dumps of other terminals?)
One point of severe frustration is that I’m still having to sit on one driver I wanted to submit a long time ago as well, frustrating because I’d love to be able to say ‘look what we found’ but for that game I can’t, and it’s easily one of the more interesting pieces of prototype history.
In terms of personnel, there are times things do still seem like an uphill struggle also. There are still arguments inside and outside the team, Guru wants his $6000 for Wyvern F-0 he says Smitdogg owes him, Smit says he doesn’t, Guru went above and beyond the terms of any deal they had in what he paid for it etc. It throws the emulation status of it into limbo, and when I’m told by my Asian contact that one recently changed hands over there for closer to $1000, and only that price because it’s a custom cabinet, then I can’t see that conflict being resolved amicably, in the end it will just turn up somewhere else and we’ll end up with a situation where everybody loses. Understandably with that amount of money involved and whatever misunderstandings may or may not have occurred in the past there is a lot on the line but it’s sad to see people unable to work together.
(Wyvern F-0 is in Mamedev hands the emulation status is in limbo due to personal squabbles, we’ll probably need another one before it gets emulated)
Then there is the general abuse over things that are being done because people refuse to look at how things being done benefit the projects when they personally don’t like them. I let comments through because I like people to be able to have their say, even if it is to express a dislike for what is being done but it would be nice if people could see the bigger picture, see how emulating things they don’t like might benefit MAME in ways they do, or even make MAME appealing to other people.
I’ve talked a lot positive about MESS over the year but there are disappointments there as well, systems which have regressed to the point of being unusable (BBC Micro), or really been marked as working prematurely. The fiddly solutions we still need for systems like the SNES when it comes to carts with add-on CPUs still represent a problem, as does the performance when several of them are used despite us being a long way from Bsnes accuracy. For all my promotion of MESS I have to be honest when I say it’s not perfect, it might do a damn good job in a lot of cases, but we still need to aim for better. The same can be said of MAME, you just don’t notice it as much because we can typically plaster over the cracks more easily, but in MESS they do show because you can’t get away with cheap hacks when you need to run a large open-ended library of software.
There are also systems I feel we probably should be emulating, or should have seen better progress. The state of the Jaguar is still shocking, and there’s nothing especially complex about any of the NES mappers in reality but we’re still missing the odd significant one. None of them stop MESS being a good, important part of the project but you do still notice them and they are still an irritation.
So those are some of the disappointments for the year, you could call some of it dirty laundry (but it’s been going on far too long) other bits you could say are me being overly concerned about things which will surely get done eventually, but I still do worry about them.
Final Words / Conclusion
Despite my lengthy concerns in the final thoughts and disappointments section above I don’t actually consider it a bad year for MAME at all, that’s mostly me just rambling, and most of it would get chopped in an abridged version of this post, so you can mostly ignore it. It’s interesting to note that one of the biggest sections is still the one that covers things nobody is likely to care about, but that’s just the nature of these things, and any industry as a whole is probably going to produce more things nobody cares about, or only specific groups care about than anything else.
I already mentioned it, but 2013 has already started with a bang for MESS, 148u1 will hit with a massively improved Playstation driver, probably as a single advancement in MESS more significant for most users than anything of 2012 so that’s excellent news and I’ll likely to an article on that in the near future to highlight some of it. It’s also caused renewed interest in improving the Saturn emulation too, because it now looks bad in comparison!
People have often asked if I really believe what I say, or if I’m just putting on a front, and I’m sure plenty will ask if I really think all the things I’ve mentioned here are highlights, or if it’s just meant as one giant MAME press release designed to hammer home some political agenda that everything MAME does is great. I’ve tried to keep things human as much as I can here, without descending too much into incoherency so that people realise that these are indeed my thoughts, and explanations are given where possible.
I can’t deny some systems in MESS are a pain to use, there are no screenshots for a number of drivers because I struggled to figure them out, but I don’t really see it as a blocking issue. I suck at most of the arcade games in equal measure as I suck at using some of the systems, it’s a learning process and if people start posting screenshots of some ‘killer game’ they’re running in MAME alongside the arcade ones then people are going to be intrigued with regards how to get it running, even if it’s just copying what somebody else told them to type and in that sense people will learn and I see no harm in giving the option to learn within our project. Is that not one of the key goals? to educate people about the past, to keep the knowledge alive? So yes, I do believe in what I’ve said, I do believe the highlights I’ve pointed out are highlights, even if they might not be highlights for obvious reasons. I’m not so sure why people even question that.
MAME is doing good things, MESS is doing good things, together they’re doing great things and this year has showed how that continues to be the case.
In addition to the hard work of the developers and external contributors, those mentioned by name above, and those not I should note that much of this was written using the resources at the MAME Previous Versions page on the mamedev.org Wiki and The MAMEinfo news page. in addition to the SVN logs were used (mostly for MESS, because there isn’t really an equivalent that I’m aware of)
The period covered, give or take a few days / special mentions is everything after MAME 0.144u5 (first release of 2012) up to and including MAME 0.148, the first release of 2013.
Thanks to everybody involved, and thanks for reading, scrolling through the images, or whatever else you decided to do when presented with this mountain of text which by my own admission is often opinionated, possibly rather preachy in places, and often wandering miles off-topic. I’m sorry if I missed something important, but at over 25,000 words this was already getting far too lengthy, the best thing I can say to anybody out there is explore, discover, don’t be afraid to try things and don’t be afraid of change. If you want to run PacMan then MAME will always run PacMan, but it can also do a lot more thanks to the work of everybody involved, and everybody using it and testing it and sourcing materials to help the developers improve it.
Anyway, enough of that, hopefully I’ll have just as much to show off, and as many positive words to say next year!
Exceptional post. Keep up the good work !
That was an interesting and insightful read. MAME is my first love in emulation, it always has been, MESS has always been something I have installed, found it..erm..’finicky’ and gone back to stand alone emulators. I can see this changing. As the same mission statement on MAME is applied to MESS I can see some solid progress in emulation on the MESS platform.
Speaking purely as a user, and I mean no disrespect, but MESS has some serious usability issues in the interface. I am not talking about the individual systems, which if you are not familiar with them would be difficult, I am talking about the main UI.
Please don’t take what I say in a negative ‘moan’. I am also aware there is probably no easy solution, because if you emulated system uses a keyboard which ‘key’ do you reserve for controlling the emulator itself? In fact, using the MAME core means I am more familiar with it once I can get ‘into’ it. =)
Using the Sinclair Spectrum as an example. The emulation of that system appears to be as good as Spectaculator (my emulator of choice for the speccy), the advantage of Spectaculator is that it doesn’t have to run on multiple platforms so can 100% use standard Windows inteface. While I am not advocating moving MESS from a multi platform piece of software, there has to be a way of users having a simplified interface. That above all else will drive adoption. No one is knocking the accuracy of MESS, by in all good conscience who is going to persist with a high barrier to entry that the interface means we have?
I am not a programmer but what about a GTK interface?
I love the unified binary idea and I wish you the very best for the future and wish to thank you for all the effort that you put into the project, I do appreciate it. I hope my bit of criticism wasn’t too negative or out of step. I look forward to the next 12 months.
Brilliant write up. Thank you so much for taking the time to put it all together (not to mention the year-round dev work).
That was an AMAZING write up.
Thank you all MAMEdevs, past, present, and future, for the massive efforts.
Here’s to hopefully another great year for electronic preservation.
“In mentioning that, the work Sailor Sat has been doing on linking multiple instances of MAME was also a nice surprise, but not really in a way suitable for integration with the actual project unfortunately, still good to see people learning MAME.”
That shall be one challenge for 2013 then :)
Thanks Haze, interesting write up. Thanks even more for your continued work on the projects. Anything that moves emulation forward is a good thing – I too look forward to the possibilities of Mess.
Thanks to everyone who works MAME / MESS / any open source emulation. Everyone who contributes a server or a screenshot. Keeping these memories at my fingertips improves my life.
What a write up, and thank you. It always amazes me what goes on, and how a fix for one thing improves something else.
I would just like the previous poster to say thankyou to all the devs on mame and mess, for all their work.
Wow! That’s what I call “a retrospective”!
I do not read all but its the job amazing, and after reading most of it the only word that i think its thanks to people who make posible this projects….
It will be marvelous that dosbox and fuse, bluemsx, uae and others join to UME in future…
Wow, this is one heck of a read, thanks!
(Can’t imagine how much work it must have cost writing this all up – great job!)
One short question : Where can one find MAME/MESS 3D discussions?
My (not-so-short) rationale for this question is :
The thing is, you mention PortMIDI and 7zip as new dependancies (both welcome additions to MAME/MESS). Judging by that, I take it that it’s “okay” to depend on external code/libraries/API’s.
Also, there’s HLSL being actively used. And there are probably more examples, like API’s supporting all kinds of controllers, vector graphics, and whatnot.
So why not implement 3D emulation using OpenGL or some other platform-independent API? I know for a fact that Chihiro/Xbox1 emulation would benefit enormously from that.
Ofcourse, as soon as something like this would be considered, the question rises how to handle the situation where a driver already has a working software-based 3D implementation, like the Voodoo driver, which saw much progress made last year (as done by Ville Linde and others)…
Perhaps you could shine some light on this area in one of your future posts?
Thanks again & high regards!
THANKS,THANKS,AND THANKS AGAIN DAVID,and all the MAME devs ,they did so great progress ,and give us back,so many memories!
Yes i belong to Gaelco funs,and the missing deco kid ,from decocassette,and it is a big disappointment they are far to be emulated,but that’s life,we can’t have them all!
SO whatever it is the whole progress your amazing work,must be CONGRATULATED!
Cheers,and regards from Greece David!
Efcharisto poly gia ola!
>> “Please don’t take what I say in a negative ‘moan’. I am also aware there is probably no easy solution, because if you emulated system uses a keyboard which ‘key’ do you reserve for controlling the emulator itself? In fact, using the MAME core means I am more familiar with it once I can get ‘into’ it. =)”
this has been a point of discussion, at the moment it’s definitely not intuitive, you aren’t even told which key is the toggle and you have the problem of MAME/MESS keys falling through to the emulation when you don’t want them to in partial mode. I’ve suggested starting in partial mode, with a message always onscreen when you’re in partial mode explaining you should switch and how to do it, that would at least make it more obvious to first time users from MAME.
>> “Using the Sinclair Spectrum as an example. The emulation of that system appears to be as good as Spectaculator (my emulator of choice for the speccy),”
Spectaculator emulates timings much better than we do, and it shows in compatibility, try running Fantasy World Dizzy in 128Kb mode in MESS and it will just reset after playing the speech clip far too quickly. This also applies to a number of custom tape loaders, and our .dsk support isn’t quite there yet. It’s usable for many thousands of games, but the attention to detail for many edge cases is lacking. I actually found ‘EmuZWin 2’ to handle many of the edge cases better than anything else I tested (eg. it was the only one I found able to consistently load MASK off tape, at least once all the Turbo loader options were turned off)
>> It will be marvelous that dosbox and fuse, bluemsx, uae and others join to UME in future…
Those aren’t based around the MAME codebase in the first place, and use many different ideas / concepts (DosBox is closer to an HLE of the DOS environment than a PC emulator for example) MESS was integrated with MAME to form UME because it was already created FROM MAME in the first place, that’s why they ‘fit’ together.
There are ‘libxxx’ projects which do attempt to bring lots of emulators under one roof, but what you end up with really is lots of small emulators glued together, where improvements in one area won’t ever benefit (or negatively affect) another, so thats cheating.
Of course all can be useful for testing and comparisons, keep in mind that many of those projects are also GPL license so the code can’t be used in MAME directly.
>> “The thing is, you mention PortMIDI and 7zip as new dependancies (both welcome additions to MAME/MESS). Judging by that, I take it that it’s “okay” to depend on external code/libraries/API’s.”
As long as they can be compiled in to the project rather than externally linked, and are using a license we deem suitable / compatible, then yes. We don’t link core features to binary blobs however.
>> “Also, there’s HLSL being actively used. And there are probably more examples, like API’s supporting all kinds of controllers, vector graphics, and whatnot.”
>> “So why not implement 3D emulation using OpenGL or some other platform-independent API? I know for a fact that Chihiro/Xbox1 emulation would benefit enormously from that.”
Well right now the reason Chihiro runs at 1% speed is entirely the CPU emulation, there’s barely any graphic emulation at all, so for now that isn’t the critical area.
What has been talked about in the past is more along the lines of using modern graphic card features to program a ‘software renderer’ into the card, although nobody has come up with a proof of concept yet.
SDLMame actually uses OpenGL already, and has had GL Shader support for MUCH longer than HLSL has been around, actually I was a little disappointed HLSL went the DirectX route instead of building on what was already there, because with the SDLMame shaders you have more open ended support to drop whatever crazy things you want in, I believe people have even used cartoon shaders with it. Still the HLSL gives impressive looking results, and we’ve seen the basis for a shader based Vector renderer go in too early this year.
Great read Haze thx for taking the time to write this up
Wow. The best book I’ve read in 2013 so far^_^
Jokes apart, really a wonderful write up for a wonderful year. I think it’s important to let people appreciate the pure facts of MAME/MESS development – I like the fact that you really reviewed the good and the bad, being constructive, but not hagiographic.
As a user, I can only say that 2012 forced me to be more active than ever in various ways around MAME community. After reading this article, I’m resoluted to further explore the MESS side of the emu too, starting with the new MIDI thing.
Thanks to Haze and to all the MAME/MESS developers. I wish you the very best for 2013:)
Thanks for the great work, I’m constantly amazed at the success and scale of MAME/MESS, keep it rolling.
You forgot add the progress in automat (robocop bootleg) driver.
Thanks for your effort.
Great write up man – really. Your legacy is there for all to see :)
I would be interested in writing a web app that allowed mess users to input their own estimates of how complete emulation is on a game by game basis (rather than at a driver /platform level, as it is now).
Would this help you and the community out? Is this something thats been attempted before, or am I the first person mad enough to consider it?
Let me know. By all means pm me. Thanks again.
Sounds like something etabeta might be interested in as an expansion of ProjectMESS
would be nice to not create too much fragmentation for such things, and have a reliable resource people can go to in order to understand things.
I’m sure a number of people will find things fail just because they’re using them wrong, not enabling the correct expansions a game needs, or enabling ones it’s incompatible with, not running from the Software List for systems where it’s essential etc. things aren’t quite as clear cut as with MAME, but if the feedback system was 2-way then it could work, as long as it wasn’t abused.
Thanks for the reply haze. I will check ETAbeta out.
Fundamental to my design proposal would be a matrix system that meant trusted reporters’ (as in people backed and trusted by the community) ratings would be given presedence when calculating the gross compatibility rating for a particular game.
I’ll go away and do some homework :-) but like I say – pm me if you’d like more of my ideas here
Wow! an amazing report on MAME/emulation progress in 2012! Thank you for taking the time to put this together. Very interesting!!
What parts I read were very interesting; great work!
First of all thanks for your excellent read and work, you are still my favorite and most followed MAME contributor.
I just want to say that there is just one thing i don’t share with you: I understand that you can consider the Arcade business “dead” from a generational perspective, of course Arcade scene is pretty much “dead” if you going back to the 80’s/90’s production, yet the Arcade development is still pretty much ALIVE with new titles and this is, in fact, the best moment to try to PRESERVE those games in the future on MAME because a huge amount of those games will never surface on consoles or PC.
I recommend this article by Arcade Heroes about this topic:
Of course i also can understand that every guy at MAMEDev can be uninspired because every release on the Arcade world is now PC/x86/Windows based. We all know about those “Type-X/Beatmania/eX-Board hacks”, but i think MAME is still in debt with those platforms… and i know they will run on 1% but as MAME FAQ says “the ability to actually play the games is considered “a nice side effect””. I am pretty much worried about the preservation and in this area MAME still has a lot of work to do. For me is still alive.
Thanks in advance and sorry about my broken English.
Great Post. Loved reading about all the progress. Didn’t realize the IIGS was so far along. It was my favorite computer growing up (mainly due to Bard’s Tale and Marble Madness). I will have to check it out.
I guess it depends on where you’re from. Around here there really aren’t any places with arcade games left, you might see the odd xxx-in-1 multigame in a pub, but typically any place with an ‘arcade’ banner is just full of fruit machines and nothing else.
The bowling alley still has a couple, but aside the dance machines they don’t get much use, not even the cinema where the lobby used to be a staple location have arcade machines anymore, they’ve been replaced by machines showing adverts for films and listing / ticket booking. Interestingly the last games I actually saw at the cinema were some terrible Korean driving titles with framerates in the 10-20fps range where I saw one person actually fly off the track and crash the game back to a Windows (98!) desktop.
If I head down to London then yes, I see some of these new PC games running on modern versions of XP embedded or Linux, in the big motion cabinets, alongside classics like huge linkup Daytona setups, but elsewhere they’re fading out quickly.
Of course MAME would like to be able to emulate all the PC based ones, that’s where we’ve got skeleton drivers for them where possible, but as you can imagine with less of them around, and many of them typically being large cabinets they’re not always easy to source. The problem is emulating anything when it runs at 1% speed (and Chihiro is WEAK hardware compare to most of them) is near impossible, they’re too slow to verify, or make any progress with, you can’t sit and wait 2 hours to see if you’ve fixed a bug, you have no idea if the actual speed of anything is correct, or sound is correct because you’re not in realtime (-aviwrite helps, but is still a painful process)
Also many of the PC based things use custom boot setups, security keys, locked encrypted drives, encrypted bios roms etc. The ‘loader’ hacks strip away all that, and are typically dumps of the games after they’ve already booted, but it doesn’t solve the problem of being able to create a usable dump of the original games in the first place for those ones with the original encryptions intact, and including any security key data you might need later to actually use them.
MAME does still have a lot of work to do in this area, but like all things it can’t be done alone, we’ve not even managed to emulate many older PC based games like ‘Come on Baby’ and ‘Quake Arcade Tournament’ yet, even if the MESS driver can be made to run Quake I don’t think anybody has looked at the MAME side doing the same, or it needs a very specific PC setup emulated with more working features / cards / chipsets MESS doesn’t support.
It does concern me (because from just looking at the ‘things nobody cares about’ section it’s obvious that many many things get left to Mame / Mamedev) but unfortunately it’s not really a field I can help with.
Anyway, by dead-end tech I mean it’s all just converged to that, you emulate a PC, the protection specifics of a platform, and the cards that platform needs, most of the new ones really aren’t even that fussy as the loaders have shown, although some do expect either ATI or nVIDIA, and specific driver revisions if you are running them via a loader in order to not have glitches / missing objects. Of course if you were actually emulating them properly you’d have to emulate whatever the PC spec was, otherwise the emulated copy of Windows will start trying to redetect / install drivers for the ‘changed’ hardware instead of booting the game ;-)
Re: IIgs, R.Belmont really took that one under his wing this past year, his latest update shows it being used in conjunction with the portMidi stuff too
I’m not sure of exact compatibility rates, and it would be really nice to have more original software dumped and listed too instead of only the cracked versions, but it performed well on everything I threw at it during my personal testing, albeit with a limited knowledge of the system and library.
>The NeoCD did see a release of the first Last Hope game, but it wasn’t an exclusive as it was also released for the AES unit and the Dreamcast
And all 3 versions were different. And only NG cart version had intro videos, IIRC.
Re: the IIgs, Bard’s Tale (and BT 2) and the superb Marble Madness port (by Will Harvey) both work fine. Marble Madness might prefer ROM 01 (apple2gsr1) because of the mouse firmware differences.
Compatibility should be quite high, including border bars and other abuses of raster timing (border *text* as seen in the ECC Summer Demo and FTA Xmas Demo aren’t working yet). The two notable game incompatibilities are Wolf 3D (due to our ADB microcontroller HLE, which I am in the process of replacing by actually running the real microcontroller’s code) and The Immortal (due to floppy controller/disk switching weirdness – the HDD installed image available on whatistheappleiigs works, I believe, and there are definitely plans for the floppy situation too).
Great post!!! I’m happy the MAME/MESS project has people like you to help support it.
Re: the IIgs – Thanks Arbee!
Looking forward to trying this out tonight. Also, I forgot Crystal Quest! I’ll have to try that one too.
thanks for GREAT post!
“try running Fantasy World Dizzy in 128Kb mode in MESS and it will just reset after playing the speech clip far too quickly”
most sad thing in MESS for me – not working Speccy’s BetaDisk emulation – e.g. all ex-USSR Speccy clones says “NO DISK” in the case any floppy disk access.
plz poke OG, so he look into WD2793 code.
Great Post, thank you.
Like yourself Haze, I think that MAME/MESS has a real problem to tackle in regards to pc-based games and/or consoles modern enough to where they are basically computers.
The only way I can think of to do it accurately AND quickly would be to write interpeters for various hardware bits instead of doing the whole thing in software. It would be a MASSIVE undertaking. You would have to determine each and every function of a hardware card, output it to something more generic, like a directX or api call, and then do it all over again for every single platform that mame is ported to. It might actually be an impossible game of catchup considering how quickly new arcade pc and console pc hardware is released.
then you can stop calling emulator and call it wrapper, like in the good old glide times…
Well it’s more ‘HLE’
There’s a reason there are no decent Xbox emus, it really isn’t ‘that simple’
Even getting older DirectX stuff to run on new DirectX can be tricky because it’s changed so much over the years, things are better now in general but I remember in the W98 days having to uninstall and reinstall specific versions of DirectX and drivers for specific games.
CPU emulation is still a big problem, older X86 chips offer no real way to virtualize, and even the newer ones which allow for such things more natively are still going to be running a modern instruction set, and afaik fair bit of the software we need to emulate relies on specific instruction and timing behavior of older models, and specific instruction set extensions (eg. if we find an arcade with AMD 3Dnow! used we would have to emulate those instructions because the code we’re emulating needs them)
Obviously I’m no expert on x86 virtualizaiton and I’d actually be surprised if there weren’t already solutions out there for extended instructions and the like, but I think there are real problems involved with it, and that’s not even considering you still need to run on NON x86 platforms so you need a proper recompiler with interpreter back-up anyway.
for video/sound you could potentially capture library calls and remap them to something in MAME and then have MAME call something appropriate on the native hardware, but again actual visual results will then differ depending on host system, a perfectly emulated game on one PC might be a mess on another, this can be a big problem even if you just use 3d hardware natively as ElSemi found out with his Model 2 Emulator being a glitchfest on ATI cards where features they claimed to support didn’t work. At that point you’ve basically turned MAME into UltraHLE and are trapping yourself in another corner.
There really isn’t a ‘magic’ solution for these, and many of them run at clock speeds close to high-end desktops today because progress in making faster machines has basically stagnated. We can document them, to help people with the original hardware and will continue to do that, but even with the likes of Aaron around, who did Virtual PC, the basis of the ‘Windows XP mode’ in Windows 7 doesn’t guarantee us a solution (and if you’ve ever tried to run any kind of gaming software in XP mode you’ll see performance isn’t good, not even for 2D games)
Just ignore me, but anyone interested might be surprised to learn that there’s yet another attempt at emulating the Xbox1, called xqemu.
As you might guess, it’s based on QEmu (making it a LLE emulator), but the graphics part is routed through to OpenGL (making it more of a hybrid HLE/LLE).
XQEmu already boots the Linux Cromwell BIOS, and is currently stuck at emulating ACPI.
Source : https://github.com/espes/xqemu
Perhaps a source of inspiration?
Well that’s were the whole “MASSIVE undertaking” bit comes in. : )
You’d basically have to write a new HLE for each platform that mame is released on. And no, it wouldn’t look radically different if done properly. You wouldn’t take “function x” look it up and go “well direct3d function #436 does that, so I’ll just pass it along.” You’d pass the function x instruction call onto a software function that’s platform specific and that function would use various calls based on actual hardware in the users computer.
Like I said, MASSIVE undertaking.
Processors are the other concern of course and there isn’t much that can be done, other than just use the host pc’s processor. Again you’ll have issues on non x86 platforms, but you will with any solution.
But graphics, as you put in your article are the slowdown we CAN do something about and unfortunately the only way to speed them up is to get them out of software rendering and into hardware rendering.
As you said, pc speeds aren’t reall increasing anymore so we don’t have the luxury of having pcs magnitudes faster than the stuff that’s getting emulated anymore.
So yeah it’s getting into ultrahle territory, but in terms of actually running the games, it’s either this or the loaders that you seem to loathe so much.
MAME’s insistance of portability, while being one of it’s biggest strengths, is also it’s biggest weaknesses. Just like mame’s functionality almost immediately sky-rocketed once DOS stopped being supported, it could tackle a lot of problems just by saying “MAME is x86 only from now on”. I know that’s not going to happen, nor should it happen, but it would immediately solve a lot of these issues.
I think it’s one of these things where the bottomless pit that is traditional arcade game emulation is finally starting to dry up and because of this MAME and subsequently MESS are starting to hit the limits of what the emulator can do as it’s currently designed. I’ve said this in various other forums but in terms of PC-based games I think a new type of emulator that uses techniques such as loaders, HLE and other “x86 only” tricks would be better suited for a lot of these games. That is until XP becomes ancient and non-working on desktops at which point mame can probably do things the traditional way again.
Actually Xp mode runs really well for me, even with games. Any game that will only run in xp mode is old as dirt, and thus doesn’t need many resources. ;)
>> So yeah it’s getting into ultrahle territory, but in terms of actually running the games, it’s either this or the loaders that you seem to loathe so much.
turning MAME into a loader won’t make me loathe the loaders any less, and that’s basically what you’re suggesting in all but it being wrapped up in MAME…
you’re giving too much weight to the graphics side, right now even just the CPU is not possible, you can’t just run the code natively, but in not doing so, even with a recompiler, there is significant extra overhead.
the existing systems where graphics are an issue would be better served by a software renderer done on the video card (you have a lot of cores, very good at that kind of work) not remapping calls to Direct X functions which WILL have a different result on different cards / drivers etc. I think you underestimate how much games have to be tuned to work and how they typically end up being tuned to what is current at any time, even if I try to run Sim City 4 here with modern drivers there are some horrible z-bias problems due to differences in the cards / drivers of the time compared to now and then, even if they are all making the same DirectX calls, and that’s exactly why there are missing graphics on many games with the ‘loaders’ and they have to add per game hacks. As a long term solution it’s just as unviable as anything else.
As the risk of irritating everyone here, I’d like to point out one more resource (and then I’ll shut up, promise);
Here’s a blog describing into fine detail how i386 emulation could be speed up;
First in Bochs : http://www.emulators.com/docs/nx11_flags.htm
Then using microops : http://www.emulators.com/docs/nx25_nostradamus.htm
This last one is especially interesting – I quote :
the Nostradamus Distributor, an interpreter dispatch mechanism that reduces most of the mispredictions of the inner CPU loop by helping the host CPU predict the address of the next guest instruction’s handler
Over the past year I have shown numerous optimization tricks for handling flags simulation, memory translation, and now instruction dispatch itself. Let there never be another sloppy slow emulator released ever again!
If you’re into this, I strongly advise reading through the other posts, as listed here : http://www.emulators.com/nx_toc.htm
Best post of the year so far.
Guru sent me a Bubble Memory board and I’ve made some hardware to do development on it, but I’m having some real problems with the MCU that controls the bubble memory interface. Even when I do the same things the original BIOS does (byte for byte, cycle for cycle) it returns an error status when I request to read a sector of data.
The board has a number of faults so it’s hard to say if it’s just randomly flaking out — it rarely boots on its own and tends to reset during the loading countdown.
Maybe instead of controlling the Bubble Memory cartridge through the board, we’ll have to control it directly. But there’s a lot about the interface that’s unknown as all the chips involved are undocumented or custom.
So bubble memory still being worked on, just that the current avenues of attack have been fruitless so far. I’ll keep at it of course.
Also thanks for the kind words about my work in the update!
>>That is until XP becomes ancient and non-working on desktops at which point mame can probably do things the traditional way again.
Which is exactly why we’re going to simply do things our way. XP will likely stop booting on desktop PCs within 5 years and lose new graphics card support before that, and it would take probably that long to really get traction on any kind of cheatulation scenario. At which point a ton of dev time was just wasted. Not to mention that any such attempt would be locked to 32-bit MAME on 32-bit Windows, which I don’t think describes any of the currently active devs.
Charles> certainly sounds like the board or possible the memory is on the way out (possibly watchdog resetting when it can’t get valid data for an address at all?) although odd that you can’t get the same results with your own code, must come down to timing even if you think you have it nailed down to the same thing? unless the MCU is also doing a checksum of the main rom first?
That’s why I worry about such things, there’s the concern of everything from the memory going bad to potentially bitrot in the mcu and everything between.
and re: Wyvern F-0 people can blame me for it all kicking off if they want but it was never going to get resolved, and if we’d found another one for nothing I’m sure the same sh*t would have kicked off with quit threats and other things being held for ransom if we’d emulated that one. All I’ve said is it’s disappointing that people can’t get along, it can’t be resolved, and we’ll need another one, that remains the case.
Can’t the team just find a knowledgeable dumper that isn’t an egomaniacal tool? Smitdogg’s and Guru’s behavior over the last few years makes me not want to donate anything.
Amazingly thorough. So looong but I read everything, so interresting and insightful. I want to say to all MAME/MESS contributors – Keep up the good work!!!
I too have been following that website. He has some very interesting ideas (though he has stopped posting at all :( ). They managed to take one of the worst performing PC emus out there and make it ‘usable’ all without code recompilation. He found most of the perf loss was prediction loss (if/for/while stuff). His loop unroller, which is actually pretty clever for an instruction decoder helped quite a bit with instruction decode. Next was cache hit loss (memory lookups and a clever hashing scheme). Then he went after flags which played into the prediction hits (they had put asm instructions in to speed it up and ended up doing the opposite he took them out).
It has been awhile since I dug thru mame’s cpus but I am thinking what was done to bochs could be done there but it would be a huge undertaking.
there is almost certainly some room for performance in them, and probably MAME as a whole, although it’s also important to keep code reliable and easy to understand / maintain. we’ve had developers involved who have been masters of magic tricks but ultimately left behind a trail of unmaintainable destruction where every subsequent person to look at the code has gone ‘wtf’ and closed it again very quickly.
finding the right balance is important, although I’m sure there are plenty of optimizations that can be done while actually improving the readability at the same time.
Thanks to everyone for the all the work and love that has gone into this project. Thank you all for preserving a part of our cultural heritage (and also “bits” of my childhood). I wish you lots of success for the future.
I agree. I struggle with keeping code simple and readable. Just spent the past 2 weeks running down perf issues in some code . Short of a pull it all apart and re-write it all I am not all that happy with the fix. The ‘fix’ was actually to make it simpler and easier to read. Its better but…
I always stress to my fellow programs readability and consistency. Those two go a *long* way to making good code. That is why while what bochs is doing is very cool may not be a 100% translation over. I do not know either set of code well enough to say it would help. They are some interesting and novel ways of handling decompiling and running though and well worth looking at. I found a few optimizations that were pretty nice to add to my tool bag of patterns.
great article! keep up your amazing work!
my personal highlight of 2012 was the preservation of over 150 PICO dumps. even if nobody is currently looking at the accurate emulation of the system, it’s good to know that the games got preserved.
Thank you, haze
and happy new year.
yeah, good to see the pico dumps, and people scanning the artwork too, it should be possible to hook that up in MESS.
I’m surprised nobody has put more work into it, maybe it’s been left to me because it’s ‘genesis based’ but it really isn’t a genesis outside of using the same VDP, the sound hardware, interrupt gen etc. are different.
would be good to know what the PCM chip actually is mind you, a real custom or something rebadged.
Your post would be great guidance to past and present of MAME project and prospect to future of MAME.
I persoanlly hope MAME is faithful to his arcade emulation job and fix the lots of bugs in future. there are still too many unplayable masterpiece and forgotten works.
A old boy travels into the past and the future, playing MAME!!
Long live MAME!!!
Glad to see my contributions as highlights for 2012!
Penetrating the Japanese collector circles is not easy but could potentially have new titles and many more Japanese region clones for this year.
Excellent article…. a very interesting read.
RE point #9, I agree 100%. You’ve hit the nail squarely on the head.
Sega Royal Ascot satellite hardware, Sega X-board + satellite based gamblers…I worked with this for several years. We fixed it all, support from Sega was very flaky, the Sega division that did all these games was sold or terminated at one point…It was Sega Gaming USA, then another company bought all the rights to sell and make parts and updates…Sega had a Black Jack Game running on similar hardware and also a Bingo Game. Satellites need the master board that runs in the main to talk to it. This was all connected together with fiber optic cables. The horse track was a large oval approx 16 x 8 with IR controlled robots running under the horse track. Horses on top fallowed the robots under with magnets…horses could criss-cross…The Bingo was a huge approx 6′ diameter plexi ball with a detection system that worked with RF crystals inside each ball. Each ball # was something like 30khz apart around the 20meter band…balls fell into a tube and the circuit looked for the ball frequency…balls would fail often, crystals dont like mixing and banging around 24h a day around in a large ball even if they were each in a rubber-foam ball…we neat stuff for that period but nothing else new came after that from this Sega division…