David Haywood's Homepage
MAME work and other stuff
July 2, 2012 Haze Categories: General News. 32 Comments on UME 0.146u2

UME (logo by JackC)

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 15525 (GIT Mirror)

JackC has refined the logo a bit based on the original idea, several alternatives were provided, see forums.

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.146u2 release can be downloaded here.

As always QMC2 is the recommended front-end.

The changes from MAME 0.146u2 can be read about here
The changes from MESS 0.146u2 can be read about here

General Release Commentary

On the MESS front the last 3 weeks have been fairly quiet, low level rumblings, some important progress, but nothing major to write home about. I’m currently trying to rebuild my collection of Saturn images to match the software lists in order to look at fixing up some issues there if possible (I’ve asked a few people for help in finding a couple) Doing this will allow me to start refining the lists and replacing images with better quality ones, although for now etabeta has been doing some general cleanups of Developer / Publisher / Release Year information in said Saturn lists already (as well as many others)

There have been a couple of fixes made to the Super Cassette Vision (svc) emulation by Wilbert Pol which are of note, including a CPU core fix which corrects the timer in Boulderdash (you can observe the bug in this YouTube video) Rather topical, and as it happens, a version of Boulderdash I haven’t actually played.

The PCI slot code has seen some work from Micko, which should eventually help with the emulation of various PCs (and of course eventually be of use in MAME for emulating more PC based platforms) I imagine one of the early goals will be to allow the user to easily add a VooDoo card when running the MESS PC driver, using the VooDoo emulation from MAME although I do fear for performance, the only similar configuration in MAME (Pentium level x86 + Voodoo) is Funky Ball and that runs at a far less then desirable framerate. There is plenty of room for performance however, an x86 recompiler could work wonders.

A fair amount of the remaining progress in MESS is on systems I’ve never heard of, although be sure to check out the changelist and SVN logs because something might catch your eye.

MAME this time round has been more interesting, Angler Dangler has been on of the few remaining games in the bracket of ‘shown on Starcade, but not emulated in MAME’ but with the u2 release that situation has finally changed, although for now only the Japanese version with the highly imaginative title of ‘Fishing’ has been located and emulated. We’re seeing a steady flow of Data East Cassettes being dumped now, with the original Hamburger (from which the long emulated Cook Time bootleg was made!) appearing in the previous update.

u2 also sees a first pass at Q1000 sound emulation from Phil Bennett, this gives preliminary sound in a number of Eolith and Limenko games as well as Semicom’s Wyvern Wings, which is rather famous for using ripped Metallica midi tracks for music, and while the emulation still has some fairly serious issues with volume balance, and missing envelopes you can just about make out some bits and pieces. There was a last minute fix from me to improve the sound sync in some Eolith games as well, so if you’ve already tried an SVN build from when it was first added you might want to give it another look, Candy Puzzle actually sounds rather good. One word of caution, Phil hasn’t hooked the new code up to the See See Find Out or Eolith Ghost (Balloon & Balloon) drivers yet, so don’t expect sound in those just yet (Pang Pang Car might also be using the internal ROM, which isn’t dumped)

The System 16 version of Fantasy Zone 2 is also supported officially now, in an unmodified form, unlike the FZ-2006 multi-game hack/bootleg which had been supported for a while. The ROMs used are those which have been used on various bootleg conversions, but are almost certainly the same as used on the official boards. I posted the code needed to get this running with the PS2 data file a while back. The FZ-2006 bootleg is still kinda interesting tho it allows you to run the Time Attack mode for the original Fantasy Zone.

More regressions have been fixed from the previous code overhaul too, and we’re starting to look in pretty good shape again now, Cubo32 stuff works again for example, INP playback is fixed in a couple of drives where it broke etc. My only real remaining niggles are the crippling banking performance which has a severely negative effect on The New Zealand Story during transitions, and the likes of Wardner on random levels.

Amongst the various regression fixes was a fix I put in to allow the mahjong titles in the Pinkiri 8 driver to boot again, this is a driver I’d really like to get working, but the hardware appears to have been severely under utilized making some of the registers unclear. Sprite heights of all things are still proving to be very illusive, I suspect they’re grouped like the widths seem to be, but I can’t find an appropriate table! I could hardcode the heights and the games would work fine but I’m hoping Charles MacDonald can run some hardware tests at some point, he’s worked with the boards in the past to extract the internal roms.

The u2 CHD code should also be better, producing the same results across platforms now; previously there was an issue whereby the Huffman algorithm used ‘qsort’ which produced different results almost everywhere, luckily that only affected Laserdisc and HDD CHDs, CDs don’t use it by default.

Offroad Challenge works in u2 too, thanks to some TMS32031 CPU bugfixes from Daniel Filner. It’s a typical Midway racing game, same basic hardware as Crusin’ USA.

A couple of the hardware upgrade kits for various boards are now supported too, things like the Space Invaders Multigame and Super ABC Pacman kits were sold commercially, and it has been decided that they’re eligible for support in MAME.

Luca also figured out what was needed to make a couple more Mahjong games work, the original version of classic racer TX-1 is now functional, and a bunch more Midway hard disks revisions are now recognized for games such as War Gods.

So all in all the u2 release has been a productive one and unusually MAME has seen the greater amount of activity, be sure to check out some of the improvements for yourself, either in these UME builds, or the individual projects.

32 Comments

You can follow any responses to this entry through the RSS 2.0 feed.

ok, missing Saturn CHD problem sorted :-)

Enjoy these type of write-ups about the new releases. Thanks.

Haze, in your previous compression tests, did you ever try http_:_//freearc.org/? I just re-found it and it beats 7zip by a great deal on the file I was working on. freearc supports lzma but uses sorting and other compression optimization algorithms that other apps don’t.

I don’t have any CHDs handy to test, but freearc should really provide gains where different types of data exist within one archive, like audio/video.

And freearc is faster too!

yeah there are other compression options available, but knowing lzma has had wide-spread use and is trusted was an important factor; even 7-zip combines multiple types of compression, but we opt to just use the lzma part of it in CHDs along with FLAC for the audio bits. Some of the others are significantly slower and unsuitable.

the current code provides decent compression without being over-complex, as opposed to before where the compression was just plain lousy, especially for discs with audio data. I don’t really see the point in adding further complexity (and annoying people by telling them to reconvert again!)

Well, a lot of people haven’t converted yet, and it’s a PIA to be sure, but that’s not my problem. :)

I was working with a folder that was about 240 MB with 7z ultra compression, and arc got it down to 200, which is pretty damn significant.

Not suggesting any changes, I just wondered if you had tried it on a CHD or two.

nah, it’s not just something you can quickly test either, the code would need to be ported to compile under MAME, then studied and hooked up, it’s a lot of work.

remember chd has different requirements to conventional compression too, you have to be able to compress / decompress small blocks very quickly with no other dependencies (which means you can’t get gains from solid compression methods or huge dictionary sizes etc.)

hmm… isn’t freearc some frankensteins monster with just about every opensource compressor as exe’s/dll’s in one package and controlled by scripts, or am I mistaking it for something else?

Now CHD supports zlib, flac, lzma although due to the technical contraints of being a disk/harddrive format which needs to be able to feed blocks it will be less efficient than for instance solid compression. That can be alleviated to some extent by using bigger hunksizes in CHD I suppose, though I don’t know how safe it is to play around with those in chdman.

By the way Haze, whats the difference in practice between cdlz,cdzl, cdfl and the zlib,lzma,flac compression methods?

hmm… isn’t freearc some frankensteins monster with just about every opensource compressor as exe’s/dll’s in one package and controlled by scripts, or am I mistaking it for something else?

wwo questions Haze, how safe is it to black around with hunksizes in chdman, and whats the difference in practice between cdlz,cdzl, cdfl and the zlib,lzma,flac compression methods? I got different compression results with different combinations of these.

OK. Well, I don’t know about CHDs much, but I do know about Neo Turf Masters for Neo Geo CD, which contains an iso, a cue and a bunch of wav files.

Neo Turf Masters (1996)(SNK)(JP)[!][Big Tournament Golf]

Extracted it’s 427 KB.
From the torrent, the zip is 316,979 KB
7z prpduces 278,581 KB.
FreeArc is 205,001 KB, or 65% of the zip.

I don’t know if FreeArc uses solid compression; there’s a “finalize archive” setting which may do that but I left it unchecked.

I meant extracted it’s 427,000 KB, or 407 MB. Wish I could edit my post, sorry.

Sweet, I love playing with new compression programs. :)

FreeArc has some audio compression (True Audio) as part of it, the MAME/CHD stuff has FLAC for the same purpose. Plain 7z does not have a dedicated audio codec.

NeoCDs have a lot of audio data so naturally compress better when there is such a codec.

It’s not magic, it’s all based around the same concept of trying to compress different parts of the data with more efficient algorithms.

cdlz,cdzl, cdfl vs zlib,lzma,fla is simple enough

the cd** ones reorganize the data a bit before compression based on the CD structure, check if the error correction data can be generated and thus not stored etc. to attempt to give better results.

This looks great! Can’t wait to try it out.

The logo looks really good.
Hopefully this will mean great things in future for emulator development & a more unified & streamlined process for developers.

With the return of PONG i hope a return also of MONACO GP.
WHat do you think?

Pong didn’t ‘return’ in the form it was in before, it was redone at a more appropriate level of accuracy (I still think MAME should be loading in schematic type files and recompiling them to something, but it’s still better than it was)

Monaco GP is a lot more complex, and the previous effort was even less of a proper emulation / simulation than the old Pong code was.

I’m sure it will end up being added eventually, but it will be magnitudes slower than the Pong emulation (being one of the last and most complex discrete games)

Fun fact:
The Japanese word “Ume” means plum.

Could be worse, all the online Spanish -> English translators would change Mame to ‘Sucks’ ;-)

I like Plums

UME is also EMU backwards, and emulation is all about reverse engineering ;-)

Hey blazin’ Haze,

Can you please tell me the difference between UME and MESSUNI? They both have MAME and MESS combined. So what’s the deal?

MESSUNI is a stripped down version, it takes MAME + MESS, then removes a whole bunch of stuff too (things with Imperfect + Not Working + Mechanical flags etc.) Basically it’s a combined build which has been stripped of the things the author doesn’t like.

I’m not a big fan of it, we have the flags to tell people roughly how well things work, they can do their own filtering; plenty of stuff is tagged as imperfect, or not working yet for many cases you wouldn’t know it (SegaCD, Saturn etc. all have plenty of playable games but compatibility / trust isn’t quite high enough to drop the flags)

The UME builds are simply the sum of both projects instead, no personal opinion thrown into the mix, just the combined total of all the development efforts thus far. UME is essentially the *complete* version of MAME/MESS.

I still hope that one day the UME concept becomes the primary one (under the MAME name) with the individual ‘classic’ MAME (arcade)/MESS (home) builds being offered as sub-builds, although we might still be some years from that happening. I think that would actually suit more people because the ‘classic’ MAME/MESS builds could be stripped of some stuff people seem to dislike (such as the fruit machines and miscellaneous appliances) while the primary combined ‘complete’ MAME project could retain them.

[quote]The UME builds are simply the sum of both projects instead, no personal opinion thrown into the mix[/quote]

Personal opinions getting thrown into the mix, hmm. That seems to be going on a lot in MAME. Ya know, sorta like how certain individuals chose not to think of “what’s best for MAME” and excluded another individual from the team solely due to their own personal opinions and egos… which, of course, resulted in a major loss to MAME’s progress.

I know I’m a little late for the “post your question and I will answer it” party a couple of posts ago but maybe you can enlighten me though.

In some earlier versions of MAME there was a set called Giga Wing 2, presumably the sequel of Giga Wing. It had some issues with not emulated protection if I remember correctly. Now in the latest version it is gone. Was this because nobody could get his head around the protection mechanism (and even if so, why remove it then) or were there some other issues ?

Cheers,

Fast Eddie

gwing2 Giga Wing 2 (JPN, USA, EXP, KOR, AUS)

it’s still there, it’s a Naomi (Dreamcast based) hardware game tho, so you’re better off using something like Demul. The protection is correctly understood, but rendering in MAME Naomi driver is inaccurate, and performance is dire. I don’t think Giga Wing 2 actually boots in MAME either due to other issues, but you should be fine with something like Demul.

Hey Haze, I got around to checking out MESS and compared to the last version I tried some time ago it’s been a lot more stable (though I had some issues I blame all of this on the UI, really need to get around to figuring out that QMC).

I noticed however, that some of the devices emulated are not only covered by standalones better but said standalones are open-source and have MAMEdev credited. For example, the FM extension for the Sharp X1 seems quite off compared to not only the standalone emulator X Millennium but also the HOOT music emulator which has a release as recent as May and credits MAMEdev.

I realise some of the newer stuff like the NAOMI can’t exactly benefit from other standalones for reasons you’ve covered, but I would’ve thought that things like the GBA (which seemed fine until I looked at Pokemon Sapphire’s title screen) and Sharp X1 would be able to benefit a bit better from comparison to other projects so see what they’re doing differently. Would you say this is due to a lack of interest or the actual coding being too radically different to benefit? Also, is the performance difference in the X1’s case is definitely a case of interpreter vs standalones?

Sharp X1 is pretty abuse of the memory system and rendering IIRC, it’s not an interpreter thing, I’m sure the standalones will be using an interpreter too because it’s a simple CPU. I imagine the driver could be better optimzied, but afaik it still performs well enough on the machines of the developers working on it for them to not care (unless it got significantly worse lately)

Yeah, Mame / Mamedev do get credited on a fair number of projects, it’s not unusual for us to allow a core to be used elsewhere if asked and we’ve always said the information in the source is free to use as you want (that’s the point, it documents things so others can use the findings)

The problem with just using code from other emulators is that outside things like CPU cores which are pretty easy to move around and hook up to new interfaces, you can’t really just take code from one place, slap it in another and expect it to work, and while the information in the other projects could be useful I’m not sure there is the interest right now.

bsnes is a good example, it’s a near perfect snes emulator with pixel level accuracy, is open source, and the authors of both projects have helped each other extensively. However, the overall architecture is very different to MAME, so while Byuu can give us his CPU cores a fair amount of his actual SNES code just wouldn’t work in MAME because if you’re working in MAME you have to work with other MAME subsystems such as the MAME timers / scheduler (and trying to do heavy sync + pixel based rendering / screen updating of everything that way will make bsnes look like it runs at light speed) Unfortunately as you can see, things aren’t as clear cut as ‘if it uses 3d’

I’m surprised you say the FM emulation is off, the FM cores are well tested, although I suppose there could be edge case they’ve found, and not contributed back information about, or it’s simply hooked up wrong in MAME.

With all the ARM fixes done in the last year or so GBA should be pretty good (although possible slow, as the ARM core is definitely NOT fast) although I guess it also has some complex rendering modes which aren’t hooked up. I’m not too familiar with it.

the problem with gba is that ARM timing is off.

if you check the source (mess/drivers/gba.c) you can see that adjusting the number at which DMA and interrupt get triggered you can fix/break a huge number of games. the current value has been chosen because makes Rare games working and EA games at least playable (with glitches)

but until the ARM timing gets improved there is no way to have the emulation to work properly for all games

In regards to the GBA, the main thing I tested along with a couple of ones I had was Pokemon Sapphire, which liked to display the same thing in two places (ie. the Pokemon logo would be bouncing up and down, but also at the topmost spot). I figured it was a video thing, but if the timing is the only thing that stops perfection I suppose I could give source-compiling a spin and muck around with it for a bit.

With the FM stuff, I find it a bit hard to explain but running Herzog (which uses FM when available) in MESS and then running it in X1 Millenium or HOOT provides very different results. If you like, I could put something up on YouTube/file hosting and send you some audio recordings from both (as I’ve never had an actual Sharp X1 it’s probably not worth a MAMETesters report).

This is hilarious. The member “Vatican Knight” was banned for sticking up for himself after constantly getting flamed. Here are his last two threads before getting banned:

http://www.mameworld.info/ubbthreads/showflat.php?Cat=&Number=291748&page=0&view=collapsed&sb=5&o=&vc=1

http://www.mameworld.info/ubbthreads/showflat.php?Cat=&Number=291750&page=0&view=collapsed&sb=5&o=&vc=1

Man, I really wish there was a real MAME forum. It doesn’t even have to be a great website, just any normal MAME website that aren’t run by trolls would be sufficient.

To Haze’s cheerleader above me

Vatican Knight is a well known troll who has been banned from Mameworld forums multiple times before.Maybe you should get the whole story before posting and making yourself look dumb.

I know you most likely wont let this through Haze,but it would be cool if you did.At least people will know both sides of the story

I’ll let it through. The comments aren’t locked down due to me wanting to censor normal discussion, simply due to spam attempts from one specific person.

Personally, I think he (VK) posts a few too many questions, but like everything at MW it’s typical ‘in-crowd’ syndrome and when he retaliates with the same thing they say to him, he gets banned. The mods there could easily ignore the topics if they don’t like them / don’t have anything to say, instead they troll them.

In the end they’ll just squeeze the life out of the forums anyway, better to have somewhere which at least looks active, and not entirely hostile to people outside of their circle isn’t it?

Thank you Haze.You are correct on both parts.VK does troll and ask many silly questions (has anyone ever used Opera browser”?) or (“how come when I uncheck auto update divx still updates”?) they are annoying questions.Not to mention they can be answered with a simple google search and\or posting questions in the appropriate forums.

But yes,there does seem to be a very junior high school “clique” setup there.I personally only read posts by MAMEdev’s,and stay far away from the looney bin.

Thank you for all your contributions over the years.I also agree you should be a MAMEdev again,but im not going to use it as my screen name :)

By continuing to use the site, you agree to the use of cookies. more information

The cookie settings on this website are set to "allow cookies" to give you the best browsing experience possible. If you continue to use this website without changing your cookie settings or you click "Accept" below then you are consenting to this.

Close