The NEW Build Your Own Arcade Controls
Software Support => GroovyMAME => Topic started by: krick on January 28, 2013, 11:30:34 am
-
I noticed this small bit of news over on MAMEWorld that may get some people excited...
http://www.mameworld.info/ubbthreads/showthreaded.php?Number=303299 (http://www.mameworld.info/ubbthreads/showthreaded.php?Number=303299)
we found a "magic fast box" or two in the code this week. Many drivers will be between 2 and 9 times faster starting in u1 and continuing on, which will be huge for lower-end hardware. Watch SVN (http://git.redump.net/mame/) for "tagmap" commits. (Most of them are for MESS right now since it got audited first, but there are several MAME drivers that could benefit a lot according to the stats Tafoid just ran).
-
This sounds FANTASTIC. I'm definitely going to sync the release of the new builds with u1. I wish SNES is one of the lucky drivers.
-
awesome! Can't wait!
-
This sounds FANTASTIC. I'm definitely going to sync the release of the new builds with u1. I wish SNES is one of the lucky drivers.
Yup, the SNES performance is the only thing stopping me from using groovyUME. Looking forward to that.
-
I haven't seen any "tagmap" commits on the SVN for snes.c yet, but I'm pretty sure that someone will get to it soon since it's a high-profile driver. It's possible that one of the other developers has it "locked" due to some other uncommitted changes. By the time version 0.149 rolls around, I'm certain that the tagmap changes will be made to all drivers as the actual code changes seem to be pretty simple to implement.
In case anyone is curious, the general issue is that the way stuff has been coded in MAME up to this point, people have been doing lookups from a tagmap (a kind of hashmap) on the fly whenever they needed to. The problem is that pulling stuff out of a hashmap is relatively slow, so it's not the kind of thing that you want to be doing in a performance intensive code loop. From what I can see from looking at the SVN commits, the majority of the lookups are now done once up-front when the driver is initialized and stored in member variables. Then when the value is needed in a loop, it can be pulled directly from the member variable, which is far faster. I simplified a little, but that's more or less how it works.
The amount of speed up from these changes depends on how much the driver used to abuse the tagmap lookup method, I assume.
-
the lookups are now done once up-front when the driver is initialized and stored in member variables. Then when the value is needed in a loop, it can be pulled directly from the member variable, which is far faster. I simplified a little, but that's more or less how it works.
Hi Krick,
Thanks for explaining. I already wondered what this was all about. Hopefully it'll bring some nice performance increases for the various drivers...
-
It looks like the tagmap updates are still ongoing, so some drivers won't be updated until 0.148u2 comes out.
-
Indeed. I saw the msx driver got updated after u1, so I just did a test on the speed difference on my machine (Intel 3770K at 4.6Ghz)
Tested with running the game Salamander in MSX2 unthrottled for a minute in demo/attract mode.
Speed before: 2474%
Speed after: 2587%
Which translates to a modest 5% speed increase.
-
Indeed. I saw the msx driver got updated after u1, so I just did a test on the speed difference on my machine (Intel 3770K at 4.6Ghz)
Tested with running the game Salamander in MSX2 unthrottled for a minute in demo/attract mode.
Speed before: 2474%
Speed after: 2587%
Which translates to a modest 5% speed increase.
But you have a really fast processor. Wouldn't slower ones like mine at 2.5 Ghz see bigger increases? The claim of 2-9 times faster seems far fetched but I'm sure each new version of MAME might see slight speed increases.
-
I don't know from a technical standpoint but there are some games on my setup that would highly benefit from a 5% increase ;)
-
But you have a really fast processor. Wouldn't slower ones like mine at 2.5 Ghz see bigger increases? The claim of 2-9 times faster seems far fetched but I'm sure each new version of MAME might see slight speed increases.
Yes, that could be the case, but I wouldn't get your hopes up too much.
It would be nice though if more people could post some "before" and "after" tests for their machines/configs, so that we get a sense of the overall speed increase the tagmap reductions are giving.
-
Looking forward to groovymame 148u1 for windows. ;D