Due to the limits of early microprocessors, most of the arcade games of the 70's and early 80's had to be written in assembly language. Coding in assembly makes for efficient code that runs in a small amount of memory. Unfortunately assembly code is very specific to a set of hardware, which makes porting the code to some other hardware a time-consuming task. Porting code means taking a program and rewriting it so that it will run on different hardware. Aside from being a time-consuming task, porting code is not the most efficient way to attack the problem -- especially if a lot of programs were written for that specific set of hardware.
Given the speed of current computers relative to the speed of the older hardware, it's actually possible to write programs that will simulate all the hardware that a particular piece of software ran on and run it as fast or faster than the original hardware allowed. Emulating the hardware is a more "general" solution because once you you do it right, you will be able to run all the old software written to run on the old hardware. A commercial example of this is Insingia's SoftPC, which allows you to run PC software on a Macintosh or a Unix workstation. There are also emulators written for a wide array of today's computer that will run Apple ][, Atari 8-bit, and Commodore 64 software.
The focus of this article is, however, on Game Emulators, particularly those that run classic arcade games. Microsoft, Williams, and others have released several "classic" arcade games where the original game code was emulated in software, utilizing the original code written for the original arcade games. I have purchased both Microsoft's "Return of Arcade" and "Williams Arcade Classics" and found all the games quite playable on a 486-based computer. You can probably get both of these and others at your local software or mail-order outlet.
Of greater interest to me is the current interest and development of emulators on the Internet. One of the best efforts I've seen thus far is a program called MAME, the Multi Arcade Machine Emulator. This program has PC and Macintosh versions and will emulate over 150 different arcade games with varying levels of accuracy -- provided you can get the ROMs for the original arcade games. ROM stands for read only memory and it stores programs which, in this case, make up the arcade game. If you look hard enough on the Internet, you can find all the necessary ROMs to plug into these emulators to play the games, though the various emulator programs warn you that unless you own the actual arcade game consoles, you are violating copyright laws by downloading and using these ROMs.
Admittedly, it's not exactly the same as playing these games in an arcade, but I've played probably a dozen different games on MAME and a few on some of the other emulators out there (KEM, MGE) and I have to say these emulators do a pretty good job and the game-play is superb. Most of the emulators are MS/DOS-based, but run well under Windows 95. They do not have fancy interfaces to them, though there are front-end programs for MAME that make the process a lot easier. They aren't quite for the faint of heart yet as you need to tweak your hardware drivers for the most optimum performance, but in many cases, they emulate the original arcade game quite faithfully and the small amount of trouble to make it work right is well worth it.
Here's a list of websites that contain more information on the emulators
I've mentioned and a lot more information about things going on in the
emulation world. My favorite of the bunch is the Atmospherical
Heights MAME Page, which has lots of cool stuff on MAME, screenshots
of all the games that MAME emulates, and links to the various ROMs for
the arcade games MAME supports.