Hardest thing about SMP and emulation is timing. The original arcade games expected stuff to occur at a certain rate and order. With SMP (or any multi-threading) mame would either:
a) Need
a lot more time/event checking (besides moving to multi-threading in the first place). ie: add a bunch of complicated overhead, and sometimes stuff would have to wait for something else to finish to keep the emulation "true" (and keep it from crashing in many cases), which would "lose" much (most?, all?) of the speedups of SMP
or
b) Keep all emulation on one thread with the other stuff (UI, input poling, video output, etc) on the other thread(s) (which wouldn't be
Symmetrical of SMP). With most of the slowdown occuring in the emulation part anyway, the speedup wouldn't be all that much. As said earlier, AdvanceMame has some of this type multithreading.
[shrug] Nobody is stopping you from trying to add it, though.
