Emulation is using a computer program to simulate the function of another computer. Such a program is called an emulator.
This can be done for a wide variety of computers—any computer, theoretically, can be emulated. However, you're probably here for the definition that involves games. Yes, emulators that run on standard home/office computers have been developed for most consoles, as well as for older computers, for running games which originated on those platforms, allowing a user to play a game on a non-native platform.
Not surprisingly, emulation does take more processing power than the original, varying wildly depending on how similar the original platform and the one running the emulator are. For example, 80x86 emulators like DOSBox run at nearly native speed on typical 80x86 PCs, while emulators for exotic architectures like PCSX2 and RPCS3 will drag all but the mightiest multicore 80x86 rig to its knees.
The most popular computers to emulate are Arcade Games and games consoles, although emulators for other systems do exist. Most emulators are written by fans/enthusiasts, as a technical challenge, as a way of storing computing history (MAME and MESS have this as their primary goal), or as a way to run games on something other than what they were written for in the first place. A few emulators are written by the official manufacturers, such as Nintendo's acNES for GBA (used for the eReader, Game Boy Advance extras in Animal Crossing, and Classic NES Series) and the emulators used for Virtual Console titles.
In order to play games, emulators require the game software as well. These usually come in the form of ROMs (for cartridge-based games) and various disc image formats (for disc-based games). Publicly distributing ROM dumps (pirating copyrighted games) without permission is generally considered illegal, with possible, nebulous, and debatable exceptions for fair use in some cases. The veracity (and legal validity) of these beliefs have yet to be formally ruled on in either direction; and thus, talk about emulation (especially talk about ROMs themselves) is generally a very dangerous subject on Internet fora, such as the GameFAQs fora and others, which may auto-delete posts that direct other users towards emulation sites, possibly even if they don't link to games themselves, partly due to legal reasons. Morality issues are even grayer, so it's probably best not talk about it, lest you start up rampant Flame Wars, or worse yet, philosophy students bandying about terms such as "utilitarianism" or the dreaded "Kant's Categorical Imperative." There's really no reason to share such information anyway, since most web searches can provide it handily.
Nevertheless, the lure of classic games is too much for many gamers to resist, especially for games that are long out of print, were never sold in one's part of the world, were never (or were poorly) translated, or do not exist in a portable format. In addition, emulators tend to add lots of comfort features such as state freezing, upscaling, control remapping, cheats, etc., and also allow gamers to study, modify, and find interesting things to do with these games.
Emulation services such as Nintendo's Virtual Console and Time-Warner's GameTap are an attempt to replace illegal emulation by offering something similar legally: Cheap versions of classic games that you can download directly to your system. Nintendo has even called the Virtual Console iTunes for video games, referring to Apple's attempts to reduce Internet music piracy with the use of a similarly functioning but legal substitute. On the fans' side, ZX Spectrum fans at the World Of Spectrum has gone all out to ask the original producers of the games for permission to distribute them freely (Abandonware), and permission which has been granted in the majority of cases, the exceptions mostly being games published by companies that still exist who fear that they compromise the integrity of their current catalogues by allowing free download of something that ceased to be profitable to them in 1993.
Emulators are also a popular way to make a port or Updated Re-release on sufficiently powerful hardware, especially given that making a native port can be far more difficult for a variety of reasons. Many older games were coded using assembly language or other platform-specific tools, meaning that porting them to run natively on other systems would essentially require rewriting them from scratch. The source code for some games—even big ones—is outright lost (either due to misplacement, uncontrollable damage, human error, or just plain throwing it out due to it not being seen as practical to keep) further makes emulation a favorable method of porting, provided that the emulator itself can faithfully run the game(s) in questionnote . This can be done officially, or sometimes unofficially in the case of ROM hacks that expand a game beyond the original size of its cartridge, for example. Emulation can also make Compilation Rereleases or services like Virtual Console easier to implement, as it means only having to create one piece of new software instead of porting each game individually.
Even mobile gaming is now subject to Emulation, allowing the PC gamer to sit down in comfort at a 30-inch screen and study a game in depth— and hack into Freemium and Microtransaction-heavy games to their heart's delight. Due to the weakness of a Mobile's specs compared to even a mid-range PC, lag becomes completely irrelevant.
Despite the legal issues with this, some games have been given the blessing of their creators to be spread via ROMs once it becomes apparent they will fade to obscurity or never get released in a certain region. Mother 3 is an example of this; Shigesato Itoi supported the effort to get the game translated for English-speaking gamers.
In terms of accuracy or faithfulness to the system being emulated, emulators can generally be classified into two major types:
- High-level emulation (HLE) implements the system's features rather than the hardware itself. For example, rather than emulate a Graphics Processing Unit of a console, the emulator intercepts the instructions the game sends to a "GPU" and translates it to a Graphics API that the host computer can run. This started becoming popular during the The Fifth Generation of Console Video Games, made famous by Bleem!, a PlayStation emulator, and UltraHLE, a Nintendo 64 emulator which made headlines for running (major) Nintendo 64 titles at a playable framerate on hardware of the time. Used almost exclusively by emulators of The Fifth Generation of Console Video Games and after due to increasing hardware complexity.
- Low-level emulation (LLE) seeks to simulate the original hardware more faithfully instead of trying to emulate its features. They simulate the inner workings of the console or computer, sometimes even gate-by-gate or down to the last processor cycle. Higan, formerly known as bsnes, is one such example of an LLE, where author byuu took the herculean effort of reverse-engineering every single enhancement chip used on SNES games. Another key point in Higan is it syncs up every piece of hardware its emulating at the original input clock speed of the SNES at ~21-24 MHz where most other emulators sync at a much slower rate. This synchronization rate allows games with programming tricks (such as messing with the PPU while its drawing something on the screen) or odd bugs (mostly timing related issues) to actually work.
The choice between high or low-level emulation has led to some arguments from casual players and purists, the former arguing that HLEs could be developed faster and often could potentially run better on lower-end hardware or can run games better than the original hardware (e.g., the GameCube/Wii emulator Dolphin can play games at HD resolutions just fine even though the original consoles can't). So long as popular titles can be played, HLE is enough. LLE proponents argue for preservation and conservation of what can now be seen as a cultural legacy— as HLEs don't provide an accurate reference on the inner workings of a device, it therefore is unsuitable for purposes of recreating and/or documenting vintage hardware. They also argue that while HLE is easier to get start running, time spent on LLE pays itself better in the long run. In practice most modern emulators use some combination of both approaches. Typically the CPU portion is LLE while everything else is HLE.
Emulators with pages on TV Tropes:
- DOSBox (MS-DOS)
- MAME (Arcade Games)
- MESS (Various consoles and computers)
- The Pinball Arcade (Physical Pinball Tables)
- Zaccaria Pinball (Physical Pinball Tables)