Build Your Own Arcade Controls Forum
Main => Main Forum => Topic started by: Sephroth57 on December 12, 2003, 09:40:29 am
-
i was just thinking since processor power is the big thing in MAME emulation, i never see anyone with dual processor setups. does MAME not support dual or has no one tried it?
-
SMP works by assigning different threads to different processors. Since MAME runs a ROMset in one thread I wouldn't expect much of a speed increase.
-
You can use dual processors with regular mame, but you won't get any added benefit... Advancemame (linux version?) supports SMP, but I don't think you'll get the "double" speed/power boost you are thinking...
Since a lot of the emulation code is very timing sensitive, it's difficult to architecture (as a verb) the code to be able to take full advantage of dual processor//SMP... I'm sure someone can provide more detail as to why, but believe me, you don't want it... =)
*shrug*
Rampy
-
Mame doesn't multithread.
-
thats a shame, if it did we could probably run war gods and higher end chd based games already
-
It would probably be a more worthwhile effort to get either netplay (*drool*) or 3d graphic card compatibility in mame.....doesn't look like either will be done. :(
-
3d graphic card compatibility in mame
This will never happen in mame. Mame is about documenting the arcade hardware. That includes emulating the video hardware on that game. They aren't concerned with running on todays video cards then.
Plus that would be a huge pain to take the instructions sent to the video processor, decipher them, then figure out what is best on a PC 3D card.
-
You can use dual processors with regular mame, but you won't get any added benefit... Advancemame (linux version?) supports SMP, but I don't think you'll get the "double" speed/power boost you are thinking...
Yeah, the mame part of advancemame willnot take advantage of dual procs.
-
ive heard of Zinc playing some games better because theyre more about getting them to run instead of documenting like MAME. Is Zinc better for running Blitz and Wargods that type of high end stuff?
-
Zinc is currently better at running Sony ZN1/ZN2 and Namco System 11 hardware based games. These would be like your Tekkens, Street Figher EXs, etc. Zinc does not support any harddrive based games. As far as I know the only harddrive based games that are supported in a non-Mame emulator are Killer Instinct 1 & 2. I don't remember, offhand, what the name of that emulator is. You're more than likely going to have to wait till computer processors catch up with those games in Mame before you'll be able to play them.
-
It would probably be a more worthwhile effort to get either netplay (*drool*) or 3d graphic card compatibility in mame.....doesn't look like either will be done. :(
For netplay under Windows, there's Kaillera:
http://www.kaillera.com/
-
You can use dual processors with regular mame, but you won't get any added benefit... Advancemame (linux version?) supports SMP, but I don't think you'll get the "double" speed/power boost you are thinking...
With AdvanceMame, I think the emulation can be on one CPU, and the "extra stuff", like reading inputs, video stretching, etc, can be on another. However, since most of the slow down is in the emulation, you won't get very big speed ups.
Since a lot of the emulation code is very timing sensitive, it's difficult to architecture (as a verb) the code to be able to take full advantage of dual processor//SMP... I'm sure someone can provide more detail as to why, but believe me, you don't want it... =)
You pretty much got it all. Including the don't want part, but here you go anyway. ;)
To get the best speed out of multithreading is let the different threads (CPUs) do stuff that do not depend on what the other threads do. If one has to wait to another to finish, it's "wasting" time. If one thread should wait for another to finish but doesn't messes up the emulation (if not crash the computer). But adding the code to support waiting actually adds overhead.
The arcade hardware and software were designed around the fact that parts 1, 2, & 4 do exactly X things while part 3 does exactly X/2 things in the same fraction of a second with no waiting anywhere. The machine was timed to a Tee, so the parts could run free at "full speed". If the timing is off on the arcade (example, replace a clock that controls timing of half the parts with a differnt speed one while the other clock stays the same), don't expect it to run correctly if at all. If the timing is off in the emulation, don't expect it to run correctly either.
With mame emulating up to 7 CPUs + sound card + video card + memory + other stuff at once, and hundreds of different CPUs, MPUs, DSPs, GPUs, ect for the thousands of games, it's impossible to match the timing without a lot of waiting at least somewhere (optimized for one system) if not everywhere (averaged the waiting).
Add that 99% of PCs have one CPU; the waiting overhead will kill all the games's speeds on all those computers.
(I haven't even touched half the issues.)
But finally, recoding mame to be even semi-efficiently multithreaded will be a total bee-atch to do. (the prior sentence is way understated)
[shrug] Wait until most new computers are multiCPU (dual or hyperthearded aren't enough, I mean 4 & 8 CPUs). And CPU speed is not increasing very much. And a super genius without a life or a job decides to recode mame multithreaded. Then you might get real mulitthreaded mame (that scales close to the number of CPUs in the system).
Until then, well, people who want it can study computer programming hoping to become that genius, and wait for most retail PCs to go multiCPU. ;D
-
hmm so i figure in about 2 years theyll start making dual or more CPUed PCs standard. figure a year for someone to get around to making it work for MAME. so in 3 years i can play SC2 on MAME or i could just hack my PS2 controller....
i guess ill hack the controller then =P although in 3 years PS2 will be outdated and MAME will be more of a convienience having all those games at your fingertips without having 20000 systems hooked up
-
I bought a dual processor system in 1998, figguring it would be the wave of the future, and wanting a super fast system. Back then a PPRO-200 was the fastest money could buy (without going to a non-standard CPU, which was a lot more expensive), so I got two of them. 4 years latter, my machine is obsolete, comsumer OSes still have poor support for multiCPU systems, and dual processer systems are if anything less popular than there were then
Note that the P4 is hyperthreaded, meaning it acts like a dual processer system, but isn't. I wouldn't count on seeing multi-CPU systems anytime soon. They are hard to design, and hard to program. There are many tasks that cannot scale to dual CPUs, no matter how much programing effort you put into them. Even if your tasks do scale to two CPUs, one CPU that isn't quite twice as fast will still be faster than two CPUs do to the complexities of writing for multi-cpus.
-
Many single tasks that won't scale well. I personally would benefit a lot from a dual proc system, because I could have a large animation rendering in the background and still be able to play a demanding video game. I could also encode a large video on one processor while the soundtrack got encoded on the second, or just give Maya full reign and allow it to render twice as fast.
Lots of people think that their games are massive whirlwinds of computation that take the most badarse system ever, but there's a whole other tier of technology they don't even look at because the stores they buy from don't even present it. Example, I just realized my Epox 8RDA+ motherboard is crap as far as I'm concerned. Why? Because I work with video in raw mode, and raw video transfers require RAID, and RAID maxes out the PCI bus unless you have a 66MHZ slot (they're usually 33 like mine) or even better a 64-bit PCI slot (usually 32.) I have neither, so more than likely I will have to get a new motherboard for the workstation I just built.
So next time you wonder if you have a powerful enough system to run your games, picture this (http://www.promise.com/product/product_detail_eng.asp?productId=90&familyId=6) being your hard drive. Or maybe This (http://www.promise.com/product/product_detail_eng.asp?productId=109&familyId=6). (each of those little latch things is a hard drive. They act in tandem, and their speeds add up to slightly less than 15 times the transfer rate of a single hard drive. :o)
oops, now we'll have people putting those into Mame machines too... :D
-
In todays world, the only place that dual processor systems are commonplace is among graphic artists, 3d modeling/animating, engineering/designing, and digital video compositing. Thats why the only real applications you are going to find that were programmed with multithreading in mind are among the high end software that exists in those areas. But in the future maybe it will be more standard since (supposedly) they think there is now a limit to processor speed (b/c of size restrictions) that we will supposedly hit around 2020....