UME (Universal Machine Emulator) combines the features of MAME and MESS into a single multi-purpose emulator. The project represents a natural course of development for the emulators which already share large amounts of code and is part of an ongoing effort to unify development efforts and provide a single emulation platform for users and developers alike.
This is based on MESS SVN revision 15706 (GIT Mirror)
I’ve decided to stick with doing a single package containing source + both 32-bit and 64-bit binaries now, it’s a larger download but less confusing than requiring users to download separate resource packages etc.
The 0.146u4 release can be downloaded here.
The changes from MAME 0.146u4 can be read about here
The changes from MESS 0.146u4 can be read about here
General Release Commentary
The various fruit machine additions should not be listed in the ‘new working’ section of the whatsnew, this was a mistake when the whatsnew was compiled.
The 0.146u4 release brings the Poke Champ and Cyber Tank progress shown in my updates below to an official public release. The final Sky Destroyer progress missed the final cut by a few hours, so that’s missing. Cyber Tank, while still marked as not working is a lot more playable now than in any previous release, so if that interests you and you can look beyond the current glitches you might want to give it another spin.
A lot of the activity in recent weeks has come from Ville Linde, who finally got around to submitting his work on Taito Type Zero, and continued to make progress on said system, as well as Konami’s ‘Cobra’ system. Both are mid-generation 3D systems, and as of yet neither is really working, so don’t expect anything phenomenal in terms of functionality or performance out of them just yet but again it’s good to see progress being made on such systems where developer interest is generally rather low.
A significant amount of the MESS work has been on the VK100 ‘GIGI’ terminal emulation, which looks rather obscure, but interesting from a hardware point of view. For more game focused systems the Super Cassette Vision got a couple more fixes, as did the PC emulation for a couple of specific cases with CGA modes and sound in games like Arkanoid.
One thing I didn’t do an update here about is Wardner, which for quite a long time now has suffered from horrific slowdowns on later levels of the game for no obvious reason from an end users point of view. The MAME Memory system is flexible, but recent(ish) changes saw cases where memory handlers were being dynamically installed at runtime slowdown considerably, to the point where installing handlers anywhere outside of the initial system setup really isn’t recommended at all. Wardner has a fairly irreglar ROM banking scheme whereby when the first bank (0) is selected (which would otherwise act as a mirror of the lower part of ROM) you get the various sprite RAM and palette RAM mapped there instead. Due to this setup the MAME driver had been coded to install handlers for RAM when the RAM bank was switched in and install handlers for ROM when the ROM banks were switched in. Unfortunately because the game switches between the two with regular frequency (especially on the later levels where it needs data from the higher banks) the MAME core install handlers were being called far too often, resulting in 80-90% of CPU time on a 3Ghz system being spent just remapping memory! I’d been told by the most recent developers active on the memory system that it wasn’t going to get any faster, so to avoid this crippling slowdown I just reimplemented it using manual read/write handlers to do the mapping rather than going through the (slow) core functions. Probably not the greatest recommendation for MAME when what would seem to be such basic functionality is so slow, but I’m assured there is an awful lot of complex code under the hood to handle all sorts of edge cases.
I also worked with Kale a bit on the TC00091LVC emulation which is an all in one z80 + graphics chip which was used on the Fruit Dream and Last Bank video gamblers which have been promoted to working in the u4 release. The emulation was done as a modern device, and eventually the Taito L board games (Puzznic etc.) will be moved over to use it as well because they’re all based around the same chip; some driver modernization was done in preparation for that merge.
The other big thing in this release comes from Couriersud. Following on from the previous release we can see further work on Pong. The parent set of Pong now parses it’s list of components from an external file, allowing the machine definitions for these discrete games to be stored as roms would be. While for now this is a quite a bit slower than the hardcoded internal approach it’s also more flexible, and will hopefully evolve to a point where the files can also act as full schematics for the games, which is absolutely essential for such titles where everything about the games depends on the exact configuration of all the components.
Otherwise, lots of shuffling around of things, lots of cleanups, with some hints at what might be next in line to get a 2nd look or polish if you look over the SVN logs.
Love your round ups, keep them coming, well done on your recent work as well :)
Its been quite a good year for mame, I look forward to Last Survivor being added too.
Anyway, just some Cyber Tank stuff:
I hooked up the tanks controls to WADS (with the cannon set to E, although its not really required and pretty useless) and machine gun controls to the mouse, just like playing a modern FPS. Seems like its about the best way to play the game solo, and works quite well (Machine gun analog sensitivity has to be turned way down though)
Hard to make much progress though because the glitches still obscure the incoming missiles a fair bit, and they kill you in a single hit. Honestly the game doesn’t seem THAT hard though, you just need to mostly pay attention to missiles and either shoot them or dodge them.
Not sure about the tank acceleration though, there really doesn’t seem to be any point in speeding the tank up except to make things harder. The default tank pace makes it a lot easier to just concentrate on blowing shit up and not dying.
There are 4 stages in the game, and if you die during the last stage is doesn’t let you continue, so I haven’t yet seen the boss at the end.
I look forward to potential future progress Haze, thanks for the great work.
Thanks for the new UME binaries Haze…. :)
More cybertank stuff I figured i’d share:
– The P1 auto-aim cannon is actually really useful support fire to the machine gun unlike what I said before. For solo play I now have the Cannon set to right mouse click while the machine gun is left mouse.
– Every 5-10 seconds you are automatically given more bullets for both guns
– Using bombs depletes a huge numbers of bullets. Its better to just never use bombs unless near the end of a stage
– Accelerating the tank speed is what causes your score to start raising without shooting stuff.
I’ve managed to get to the end of stage 2 on a single credit with this WADS + mouse control method.
Thank you for this effort to emulation comunity, as a regular gamer I say TY :)
I hope this emus have same quality of Snes9x, vNES, ePSXe, etc…
God Bless you.
Hey..
I’ve tried building the source on mac.. and it compiles but won’t link… Is there a way to force 32-bit intel targets?
I’m not really sure about the Mac build environments, do you have issues building regular MAME / MESS 0.146u4 releases, or is it just this UME target?