For recreating the video arcade game experience on the PC, MAME (Multiple Arcade Machine Emulator) is the standard. It works by recreating the hardware circuitry of older arcade machines and loading the game software within this emulated environment. Everything from the CPU, video, sound, and RAM chips is emulated. Under MAME, a wide variety of arcade machines are emulated, from the old Williams machines that ran Joust to the newer CPS3 systems that run the Street Fighter III series. Emulation support for new systems is also added from time to time.
While the official release of MAME is built for Windows, various other flavors of MAME are released for a variety of platforms. One such flavor is SDLMAME, which is easy to build in just about any *NIX environment that supports the SDL library. Another feature of SDLMAME is that it follows the official MAME releases closely: updates to MAME are quickly added to SDLMAME.
Of course, recreating the arcade circuitry is only part of reliving the video arcade gaming experience. The controls are a large part was well. One available controller is the X-Arcade Dual Joystick. The X-Arcade controllers are solidly built with the same parts used to build many arcade controllers. By default, the X-Arcade joysticks are pre-configured for use with MAME with the controller's buttons mapped to the MAME default keys right out of the box. There are also adapters available for the X-Arcade controllers so you can use them with your Dreamcast, Xbox, and PS2/3 systems in addition to your PC. While not strictly required to play games with MAME, it greatly enhances the experience.
In addition to the hardware, the software from arcade machines is also required to reproduce gameplay. Arcade machines typically store their programs in on-board ROM chips with some newer systems utilizing hard-disk drives or CDROMs. Hobbyists "dump" games from on-board ROMs into files that can be loaded into MAME for play. Games stored in hard-drives and CDROMs are dumped into CHDs, which stands for "compressed hard-drive image" and can also be loaded into MAME for play. Groups of dumped games packaged together are known as a "romset".
The MAME project maintains a list of dumped games that represent the supported MAME romset. Note that not all games in the MAME romset are working, but are included in case future releases can support them. A great resource about this romset is MAWS, which lists information about all games in the MAME romset in a searchable and browsable interface.
This concludes part 1 of this article. Part 2 (coming soon) will cover how to built and install MAME on your Linux box.