Main > Raspberry Pi & Dev Board
Raspberry Pi MAME Arcade Project
Haze:
--- Quote from: danny_galaga on September 23, 2012, 05:29:54 am ---
--- Quote from: MonMotha on September 22, 2012, 07:16:45 pm ---MAME is also generally only hacked on by people looking to use it on x86 type CPUs. Even if there's no inline assembly, some of the "performance tricks" in the code may only work well on x86 and may actually hurt on ARM (there are other "tricks" that can go the other way, of course). Note that CPU ISA makes a huge difference in the performance of MAME: some backends run much faster on AMD64 than IA-32 even on the exact same CPU due to things such as number of explicitly named registers. If somebody wanted to hack on MAME to make it run better on ARM 1176, substantial improvements are probably possible, but I'd suspect most of the work in the "MAME on ARM" department is going to be focused on Cortex-A these days for use on modern smartphones, Beagle/Panda, etc.
Also, it'll depend on what compiler you use some. Presumably, ARM Linux MAME is being built with GCC. GCC's ARM backend is decent, but it's not as good as its x86 backend. clang/LLVM may do better (or worse). It's also possible that whoever built the build people are testing on the RasPi did something like use an old compiler or may have even had compiler level optimization disabled entirely or perhaps set for "generic ARM" which will generate pretty crap code for an ARM1176JZF.
FWIW, I'm not really fond of the SoC used on the RasPi, but it should perform OK. It's a somewhat older pipeline arch and ISA (about one major generation behind the current Cortex-A8/A9 being used on most smartphones), but at 700MHz+, it should do OK. Probably comparable to a 300-400MHz Pentium II. It's lacking in the RAM and cache department, though, so you'll have to keep the working set reasonable, which should generally be possible for classics in MAME. Combine this with the "MAME is getting slower" phenomenon, and you may have the explanation for your performance issues right there.
I guess to be clear here, it IS slower than even the "previous generation" of smartphones (single core Cortex-A8 at typically ~1GHz, roughly 1-2 years old now) by a fair bit. It's relatively old hardware. Figure you get what you pay for at $25; a modern smartphone costs about $200-500 and sometimes upward of $800 for high end ones (remember, they're heavily subsidized in the USA on 2-year contract). Obviously much of that is for things not on the RasPi, but you're still an order of magnitude cheaper for the Pi. It's a decent little dev platform, but not much more.
--- End quote ---
I'm not a tech expert so feel free to correct me, but I have a GP2X, and I thought that uses ARM processors. MAME works quite well on that, at a much lower frequency than this Raspberry machine. Of course there may have been more people working on the GP2X version, which draws on the strengths of a few versions. What I like about it is you can over/underclock individual games to conserve power. I think I had Space Invaders running at 88MHZ, and Asteroids at 166 for instance. And the menu can be underclocked too (I might have had it at 66 or summink) since it doesn't need that much to run (",)
--- End quote ---
The GP2X versions are all based on the antiquated MAME4ALL, which is based on a truly prehistoric version of MAME, I really thought we'd moved on from there when the semi-recent smartphones started being able to run recent versions well, but it seems we've gone nowhere, or possibly even backwards if people are going to have to start running such versions again on the pi just to get acceptable performance. It was a makeshift solution at best even then and the quality of the emulation offered by such old versions makes me shudder.
404:
the biggest issue with the pi is that none of its gpu is documented. There is no source available for it and no documentation whatsoever on how to access it. Couple that with low cpu power, a build of mame which was never intended for an arm target and you have the mess that is AdvanceMame on the pi.
Concerning the GP and similar versions of mame on other platforms, the coders for those platforms have generally taken the liberty to optimize some code for that platform.
If your project involves anything with a 12" screen and larger, you are literally better off getting a cheap second hand via itx unit that has built in tv-out. They cost about the same and gives you tons of more options in terms of operating systems to run. There's no reason why you shouldn't be able to hide a measly sub-9inch board into your project.
danny_galaga:
--- Quote from: Haze on September 23, 2012, 12:16:05 pm ---
The GP2X versions are all based on the antiquated MAME4ALL, which is based on a truly prehistoric version of MAME, I really thought we'd moved on from there when the semi-recent smartphones started being able to run recent versions well, but it seems we've gone nowhere, or possibly even backwards if people are going to have to start running such versions again on the pi just to get acceptable performance. It was a makeshift solution at best even then and the quality of the emulation offered by such old versions makes me shudder.
--- End quote ---
I guess what I'm saying is that the PI is obviously no supercomputer. Why does it need the latest, most CPU hungry version of MAME? I'm guessing there's a forum of tech geeks punching out stuff for the PI. Could they not take a leaf out of the GP2X book and look backwards? Maybe not as far as the GP2X I guess. But like Paige said, v .55 is pretty good for a lot of arcade games. Why not compile something along those lines? People love to put MAME on everything, and this seems like a good candidate and should be powerful enough.
Oh, just read 404's post. Isn't the PI a hobbyists machine? Why on earth does it have undocumented parts? Were they cheaper or summink?
MonMotha:
Heh, it's Broadcom. I'm amazed they were even willing to give these guys the time of day much less authorize basically any documentation be released. I don't think a full databook for the SoC hardware is even available, much less the programming reference for the GPU. It's actually a rather closed platform that just happens to be running a relatively open operating system (Linux).
I think they did end up getting them pretty cheap, yes. It's an older design, so they may have had a ton of them laying around at this point.
GPU documentation is in general really hard to come by. AMD releases it usually within a few weeks or months of the hardware coming out (i.e. it's still somewhat relevant), occasionally pre-release even, and they help the opensource community some with driver development. Intel releases rather complete docs and actively assists with driver development. nVidia generally releases as little as they can get away with and still have the thing be usable at all without their drivers (basically, you get mode setting and minimal 2d acceleration). Matrox used to be very open but now releases effectively no documentation. PowerVR releases basically nothing, and they dominate the ARM SoC landscape. The TI OMAP series has the same problem: the chip is rather fully documented except for the GPU.
What sucks about the Pi is that the SoC was basically intended to be used for its GPU. The CPU is basically slave to the graphics processor. Yes, this makes it a somewhat crummy dev platform. I really wish they'd used a more industrial oriented SoC with full docs available, but the video capabilities on those things are usually pretty lackluster, and I think they wanted to get people excited over the whole "it's a computer" thing, which basically demands media playback these days for some reason.
johncl:
Great work on getting the RPi running mame. Have you tried Donkey Kong? I assume since its running Galaga it should handle DK too? I basically only want to play the classics and have been fiddling with a Via Epia CN13000 in FreeDos with mixed results. If I can get the RPi to boot up mame and DK with sound and working with the IPac I would be very happy to try that, although it means hunting down a new 15" 4:3 monitor with DVI or video in (if I can find such a thing).
Navigation
[0] Message Index
[#] Next page
[*] Previous page
Go to full version