MAMOS Project

Multiple Arcade Machine Operating System
(probably have to come up with a better name too) (DEAD PROJECT right now, nothing done or thought about on this in a LONG time... maybe someday.. 05/28/02)


Almost anybody reading this has played MAME, the Multiple Arcade Machine Emulator, and for those of you who haven't, here's the recap. With MAME you can play all of the classic arcade games that you grew up on (like Donkey Kong, Pac man, Galaga, Tempest, even the Vector-Graphics based Star Wars game) and do it all from the comfort of you own home PC. Well, there are some limitations to this, and many home users have found ways around it, by hacking up keyboards, and building arcade cabinets from scratch, but it doesn't get around some of the fundamental problems which many games have where the sound isn't quite right or the ROM dumps aren't quite what they should be.
The idea I've got for MAMOS is to utilize some open-source initiatives that are already out there (xmame, and Linux primarily) and re-write a dedicated OS only for the use of running classic arcade game software. One of the biggest logistical problems with this is going to be getting the original manufacturers to license the games or open them up to the public domain. The ultimate culmination of this project is going to be two-fold, a home console system that can be purchased along with game licenses, as well as a commercial arcade system which can be used in an arcade setting for profit (think of playing any of your favorite classic games at the neighborhood pizza place, or the arcade, or the coffee shop). I see that some of the licensing issues might be resolved by getting manufacturers to license their games for dedicated systems (a Sega machine where you can play Zaxxon, Space Harrier, or Congo Bongo), or available as CD collections of their games (Hotrod Controllers has a Capcom collection that is officially sanctioned).


The primary theory here is to utilize a standard (reproducible), PC architecture, and generate an OS that can emulate the classic Arcade systems Hardware (say through 1992) and is optimized for the specific hardware design (an embedded OS). The PC should be one with a P2/K62 era processor (app. 500mhz) and 128 MB of ram. There is a possibility that many portions of the Linux kernel can be used for the core of this, and then enhanced, utilizing some of the xmame code for reference as to how to access the memory and emulate the classic processors. The other possibility I see is generating the OS with the means of handing off and retrieving the processes from add-on PCI/ISA boards which have the original processors on them (many of the Z80-68800 era processors are still produced and should be able to, if funding and engineering is available, be integrated into 2-3 add-on boards which would then handle the processes that the original arcade hardware did, and utilize the primary PC hardware to handle the administrative functions and handle interpreting the sound and graphics structures. This design would allow a minimalization of emulation as many of the original processors would be handling the functions and the OS would only have to know how to hand the processes to the right processors.


Customizing the Core Linux Kernel should allow us to have the initial processing and memory management functioned handled. X-Mame should give us the basic information needed to handle the emulation of the old processors, as well as the interface with the ROMs. The primary needs are going to be: