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 15604 (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.146u3 release can be downloaded here.
As always QMC2 is the recommended front-end.
The changes from MAME 0.146u3 can be read about here
The changes from MESS 0.146u3 can be read about here
General Release Commentary
There is a validty check fail in the compis.xml software list, this is inherited from MESS 0.146u3
The u3 releases in general aren’t very exciting, although do contain some progress which may appeal to those with a curiosity for the technical ‘how things work’ side of things rather than playability.
There is however one absolutely critical fix I must mention which has been made to the PCE CD driver. The Mametesters entry for this bug is fairly easy to understand, games which attempted to play samples ended up with massive slowdowns (while still running at 100% speed) due to a regression in the code. This is important because the last version where it worked properly was a much older version before v5 CHD support, so if you converted your PCE CDs to V5 then you REALLY want to be running 0.146u3 or above now that the bug has been fixed. Having PCE-CDs as V5 makes sense because they have a large amount of audio and benefit greatly from the improved audio compression offered in V5. I plan on doing a discussion of CHDMAN again soon.
Briefly still on the CHDMAN topic, the code hasn’t changed since u2, and is considered safe to use for most cases, although the hanging issue when converting HDD images still exists, and definitely seems to be related to drives which have large amounts of blank data, there is a specific codepath to handle this in CHDMAN, so I’m guessing that’s still faulty. Having converted in excess of 1Tb of CDs without a single hang I can firmly conclude it only happens with HDDs and with 99% probability, only when there is blank data.
For the most part tho the u3 MAME release just contains a whole bunch of non-working skeletons for PC based games added; keep in mind that MESS is struggles to emulate a 25Mhz 486 based PC at full speed right now, and that these arcade games are often based on 1-2Ghz PCs with Geforce cards and you can imagine the likelihood of any of these working in MAME anytime soon. That’s not to say it’s not worthwhile documenting them, but don’t expect them to spring to life in MAME!
On a similar topic, one of the highlights of u3 which falls into the ‘for the technically curious’ bracket is that the Chihiro driver is starting to show something. Chihiro is an arcade platform based off the original X-Box (but with beefed up RAM, a GD-ROM drive etc.) While again this is effectively another x86 PC-like platform (733Mhz Pentium 3 era chip, Geforce 3 era graphics) it is interesting because MAME is (to my knowledge) the first emulator to show any boot screens from it, and the X-Box as a platform isn’t really well emulated. I can’t see MAME running them at any worthwhile speed (especially for development where it literally crawls) but having the basics needed to get things showing could potentially be a big boost for anybody else wanting to emulate the platform outside of MAME.
Drifting off-topic a bit now I’d also like to use this opportunity to highlight a fairly urgent appeal to help buy an incredibly rare Sega title from the 80s**. Usually with donation appeals money gets recycled, unfortunately this time anybody who helps would just be helping a MAME-friendly collector buy the board, but knowing the title of the game involved* I assure anybody reading that it is a worthwhile cause. As you may or may not know many Sega games from this period are protected by suicide batteries, whereby vital encryption keys as stored in a RAM module backed up by a battery. These batteries have limited life, and we’re talking about games which are coming up to 25 years old; the batteries simply were not designed for that length of time. The game in question is incredibly rare, has one of these suicide modules and this is likely the last chance to get it properly dumped. It is unknown if there are any other working copies of the game still in existence (it’s the first time it has shown up ever and is expected to sell for in excess of 1500$) While I don’t often post things like this I think getting such a rare piece of history into friendly hands is absolutely vital.
** The board was won, although I’m sure if you want to make a contribution to say thank you it would still be welcome
* the title simply isn’t being announced as we’d rather not end up with unwanted competition to buy it, but it is a proper game, not some dodgy mahjong garbage or anything like that ;-)
Other than that, yes, this is 2nd UME release post in a row, and no, I don’t really have any other progress to write about at the moment, I simply haven’t been doing a great deal of MAME / MESS related work but instead have been playing through a bunch of games, testing out some of the emulation, seeing how solid it is, and where it can be improved etc. This has to be done from time to time, especially with some of the MESS stuff where there is a large amount of software and it can be important to get a good view of the overall compatibility of some drivers etc.
Thanks for the heads up on the Chihiro stuff, that was indeed an interesting read. It also sounds like the X86-related stuff is coming along well too.
Makes me regret not snapping up the old I486 I found during work placement last year. I imagine having someone to test stuff on such a machine would’ve been handy but it didn’t come with a keyboard old enough to support it.
Hey. Good project. I was going to do this years ago but never got around to it. It compiles well on OS X Lion.
I have one question: can someone please post a directory tree so I can figure out where to put the MESS BIOS, MAME ROMs, and MESS Software ( esp that I have no idea if the bios roms names conflict with any current mame roms…. )
There are no conflicts between MESS BIOS and MAME ROMs, those can go in the same folder, they’re essentially treated as exactly the same thing. If there were conflicts it wouldn’t work at all, you’d get validity check fails.
The MESS Software I also just place in my ROM path, in subfolders with the same name as the software lists. Anything using saturn.xml would go in roms/saturn, anything using megadriv.xml goes in roms/megadriv. It will also look in the root of your ROM path for software, but there WILL be naming conflicts if you attempt to store everything there (that’s intentional, we attempt to give the same games with the same shortnames across platforms)
Anyway, this is automatic, UME/MAME/MESS will always look in subfolders named after the softlists, so you still only need your basic rom path in the .ini
None of this is specific to MESS/UME tho, MAME will act in the same way if you use the Softlist support for NeoGeo or Megatech, the only difference is that MAME also has duplicated internal lists for those (for now at least)
My personal setup is (using examples of various sets)
K:\ROMs\neogeo.zip (A Mame BIOS ROM)
K:\ROMs\sc4dnd.zip (A Mame Standalone Game ROM)
K:\ROMs\spec128.zip (A Mess BIOS ROM)
K:\ROMs\batmantv.zip (A Mess Standalone Game ROM)
K:\ROMs\megadriv\sor3.zip (A Mess Software List ROM for the Megadrive)
K:\CHDs\jojoba\cap-jjm-1.chd (A MAME CHD)
K:\CHDs\saturn\pdultram\pd ultraman link (japan).chd (A Mess Software List CHD for the Saturn)
doing this only require a rom path line of
rompath roms;k:\ROMs;k:\CHDs
—-
Apparently MESS is meant to pick up a ‘software’ folder from it’s own folder structure by default (I had a bug report saying so) but that doesn’t actually even work in MESS here ;-)
> Apparently MESS is meant to pick up a ‘software’ folder
> from it’s own folder structure by default
not in the past 5 years. support for the software folder has been removed loooong time ago (I can’t exclude it has been added or re-added to MESSUI though…)
Nah, it makes sense if it’s not there, probably a user who hadn’t looked at MESS in a long time just wanted to give it another shot with this UME stuff. I think somebody else was saying QMC still has a ‘software’ path which does nothing tho?
This was posted over on MAMEWorld, then it disappeared. Probably because it bordered on spamvertising.
http://www.viva64.com/en/b/0154/
Have you looked at this guys static code analysis of MAME? Some of the bugs look legitimate to me.
yeah, I’ve seen it, some valid points are raised.
Most of the cases although wrong, are pretty much harmless because the games end up initializing the ram / registers anyway, but they should be fixed anyway.
A fair number are in code / drivers I’ve worked on, but they not usually in my code, I tend to make sure the sizes I use are correct given the assumption of INT8 = 8-bit, INT16 = 16-bit etc. although they ‘sizeof’ use is cleaner. The only one which is directly my code mentioned there is the deco32 one, and actually I think the real problem is that I allocate too much memory, not that I copy an insufficient amount.
Some of the things like identical if conditions come from behaviors being found to be the same (which can be a good thing, removes per-game kludges) but then it not being noticed, and code not being collapsed properly.
It is kinda spam, in that he wants to sell a product, and no doubt get it integrated into the build system officially or something, I’d say it was unlikely to happen because MAME is designed to build with free tools, but then we have Visual Studio support so who knows. However, I wouldn’t actually class it as ‘spam’ because it is relevant, ontopic, and points at a fair few issues which need a once-over.