Although the concept of emulation existed before the prominence of video game consoles, the most common definition of it today within the context of gaming consists of running older games on platforms for which they were not originally designed without altering the games' source code. Unlike porting, revising a game's code so that it can run natively on another platform, the goal of emulation is generally to successfully simulate a platform for compatibility on different hardware. Despite the common association it has with the practice of illegally downloading copyrighted ROMs and ISOs, emulators themselves are legal under specific contexts, assuming no copyrighted information from the original manufacturer's hardware (ie: system BIOS files) is present in the coding without their permission.
Types of Emulation
Emulation can take place with the help of hardware, software, or a hybrid of the two in order to achieve desired results. The most common type of emulation found today is software emulation due to the proliferation of software emulators for both commercial purposes in services like GameTap and Xbox Live and private exploits in tandem with common programs found on the Internet. The aforementioned hardware and hybrid techniques can be more convenient and stable depending on the situation.
Hardware emulation requires the usage of tangible components to emulate a given platform. Prior to the current generation of consoles, typical uses of this method provided backwards compatibility with games of older systems, usually those of the same series. One example can be found with Nintendo's Game Boy, wherein more modern platforms like the Game Boy Color and Game Boy Advance contain the necessary components on their circuit boards necessary to run games from previous iterations. The Nintendo DS does this to a lesser extent, as it only comes with the means to play Game Boy Advance games.
A less mainstream use of hardware emulation can be found in the video game development industry, although this practice hasn't been common for several hardware generations due to the prominence of development kits, which outright provide native hardware along with the necessary development tools for a given platform.
Standard Features in Hardware Emulation
- Wide software compatibility library
- True to the original hardware's characteristics
- Few, if any, substantial alterations made to the hardware
- Complete transparency during emulation (user cannot tell emulation is being used)
Software emulation is typically employed in situations deemed impossible or impractical to use the actual hardware in the process of emulation. Therefore, programs used to emulate a platform usually have the central goal of ensuring the performance on the new console is identical to that found on the old console, at least on a superficial level. Although the PC is the most popular platform for software emulation, successful emulators have also been created on console and handheld platforms as well. Online services allowing one to play dated video games on more complex machines often use this form of emulation to deliver their content.
In development situations, software emulators may be among the only tools at a developer's disposal until hardware-oriented development kits arrive. This most commonly happens while games are being designed for a new generation of consoles whose parts may not yet be entirely finalized. For those instances, development of a game typically takes place with the hypothetical limits of a proposed specification being kept in mind; tweaks are then made after finalized hardware and software development kits arrive.
In the current generation of consoles, the Xbox 360, the Wii's Virtual Console, and certain revisions of the PlayStation 3 use software emulation in order to have backwards compatibility with previous systems. On the Xbox 360, software emulation is used because none of the original Xbox's hardware is present on the console and those games must be emulated individually. (Games employing the same engine, however, require less fine-tuning due to similar internal structures.) On certain models of the Playstation 3, software emulation is cheaper to utilize. One major caveat of using software emulation on consoles in such a manner is that the quality of emulation varies depending on the game being played. While some work as they would on their native platforms, noticeable issues are often found; the result of how the emulation is being performed. The programming designs of emulators can also greatly influence their performance, as results can vary wildly depending on the purposes in mind for the emulator as well as their implementation. (Emulators designed only for specific games are often notorious for being problematic if used for unintended games. Software emulation on the Wii, however, isn't limited to past Nintendo consoles exclusively, as games from the Neo Geo, Sega Master System, Sega Genesis, and others are available.
The only handheld system in the current generation that officially uses a software emulator is Sony's PlayStation Portable. Despite being designed to run downloadable PlayStation games purchased from the PlayStation Store, the emulator itself is capable of running other games unofficially with mixed results.
Standard Features in Software Emulation
- Save states are typically included as part of the software, allowing users to save their progress at any point in a game, including ones for which the developer might not typically allow, and reload at that same point
- Accessory emulation, although this is much more common with unofficial emulators
- For disc-based systems, reduced load times if the game is directly stored on the hard drive
Many times the decision is made to implement features employed by both software and hardware emulation. Sony's PlayStation 2, as well as early releases of the PlayStation 3, are the most widely recognizable examples of this type of emulation, as they both contain the internal hardware from older systems required to run their respective games while still using enhancement software. These enhancements tend to be simple graphical improvements such as upscaling and antialiasing.
Standard Features in an Emulation Hybrid
- Reliable software compatibility with accurate emulation
- Able to add superficial enhancements via software which may not be possible with solely the hardware
Over the years, emulators have risen in popularity due to a variety of factors. While some of the ideals behind them have become mainstream practices since their inception, others have drawn controversy in various online communities and as such remain debated topics in specific circles. Misinterpretation, societal perception, and personal beliefs of Free Use laws cause controversy in emulation circles around the net.
The concept of using emulation as a means archival exists due to the presence of a few increasingly pertinent factors, the justification of which can often be disputed. The first issue concerns the concept of bit-rot, or the deterioration of data due to aging in computerized storage mediums. Because cartridges are especially prone to this as they age, archival is often used as a justification to emulate systems in order to ensure that their games are preserved in a more permanent form. Also, in the United States, archival is dependent upon a provision of Free Use laws allowing for the transfer of data to another platform if using the original platform is deemed impractical. Considering how older hardware like the Nintendo Entertainment System isn't immutable, archival is intended to be used as a way to circumvent preservation issues arising from such trends. Furthermore, in instances where historians have access to unreleased or prototype versions of games and have a need to examine them, emulation is often the only option they have available to them, as the availability of development hardware that can natively run it is often scarce at best. In addition, software emulators that are used in this context often come with more features and tools than even the original development hardware possessed, including, but not limited to, real-time debugging features and Assembly code decompilation capabilities.
Although it has been mentioned earlier already that emulation can be used for commercial development, it is almost always the only choice for those who wish to partake in homebrew and open source development, as the legal acquisition of official development kits for most platforms is impossible without a license. (Specific exceptions exist, such as with the Wonderswan, as well as the Net Yaroze edition of the PlayStation 1 that was produced by Sony, although these sorts of instances are far and few between in the industry.) In those cases, the coding, compiling, and other such tasks take place as normal while reliable software emulators that accurately emulate the chosen platform are used for testing. Often times only a few emulators at most for any given platform are capable of exactly replicating the hardware and its associated quirks of a given console to a satisfactory degree, as most popular emulators, especially for those for more recent consoles such as the Nintendo 64 and PlayStation 2 tend to be coded more on an individual game-by-game basis rather than outright replicating every nuance of increasingly complex hardware. The experience provided to users in those instances is superficially the same as running the game on its native console, but often there are enough differences both small and large that such emulators are not considered reliable enough to be used in a development setting. Commercial hardware is often used for additional testing to ensure that no new problems crop up under real world conditions, although this may happen later in development, depending on the system.
In order to profit on nostalgia, the practice of allowing consumers to pay for older games on newer systems has been gaining popularity. This can be done via a retail outlet or through an online store, the latter being more common today. In the former, a specific set of games are packaged with an emulator designed to play them on a specific platform, usually a console. The emulators accompanying these compilations vary in quality, as they can either use specific emulators for individual games or they may contain regular, open source emulators prepared for use by the seller. In the online arena, games are given out in a downloadable form at a set price, with varying methods used to achieve proper emulation.
Game files that can be run inside emulators typically come in one of two file formats: ROM or ISO. Which file type a given game utilizes depends on the platform; consoles that use cartridges result in games that can only be distributed via a ROM file, while disc-based systems can only have their games replicated in the form of an ISO file. Although from a practicality standpoint they tend to serve the same purpose in emulation and are as such often believed to be synonymous, in reality, they represent vastly different things. The reasons behind this are due to inherent hardware and data structure differences between cartridges and discs, which are explained in greater detail below.
In general, ROM files tend to contain only two types of data. The first of these, which always appears first in a ROM file, is the header, which provides basic identification information related to the original information, typically including at least the game's title at minimum. Although the header itself is a result of the ROM copying process and as such is extra data that is not actually present on a cartridge, headers provide useful, but otherwise unnecessary, information that enables emulators and ROM copiers to run better. Headers are most useful for older games such as those on the NES, as they can provide vital information that tells an emulator whether a cartridge originally utilized any special hardware in order to function. After the header is the actual ROM data itself, containing all of the code and variables that are necessary for a game to run, essentially functioning as a game's DNA. The reason it is called "ROM data" and, by extension, a "ROM file" has the name that it does is because it is extracted from a specific chip or set of chips on every cartridge known as the "ROM," or "read-only memory." Certain types of cartridges, especially those that are prototypes of existing games, tend to have this data extracted from the EEPROM, or "electrically erasable programmable read-only memory," although it otherwise operates the same in practice as conventional ROM chips, save for the data overwriting capabilities.
It should be noted, however, that because only part of a cartridge is necessary to extract the entirety of this data, ROM files themselves are not inherently complete replications of a cartridge. Gathering any additional data beyond that contained on a ROM chip is typically unnecessary, since it is expected that either an emulator or ROM copier can provide the environment necessary to interpret and execute that data. Although most ROMs are contained within one file, even if they pull data off of multiple ROM chips, some platforms, particularly arcade systems, have multiple files that all have to work in tandem in order to function properly. This is typically less common for game ROMs for home platforms, since even if the data extracted from a game initially results in multiple ROM files, they are often able to be synthesized in one file without compromising the integrity of any one original file's data. ROM files themselves often come in a variety of file extensions, which are typically the result of the hardware used to copy the data that, in turn, become the de facto standard that are read by emulators.
ISO Files/Disk Images
Similar to ROM files, ISO files are copies of game data that are extracted from discs. However, unlike ROM files, which contain only a specific segment of a cartridge in its data, ISO files are more detailed in that not only is the raw data of the original disc itself necessary to accurately copy it, but even the file structure that dictates how that data is supposed to be organized. While ROM files themselves also contain individual files and file structures, they are rarely in a tangible, easily extractable form given the nature of how ROM data is written to a cartridge. The name "ISO" itself is in reference to the international governing body of standards that dictates and influences how files should be organized and read in disc-based mediums, among a variety of other things. This is why games for systems that don't use non-proprietary discs can often be directly read by computers, as they abide by the same standards as conventional CDs, DVDs, and Blu-Rays. While many disc-based games have .iso counterparts, similarly to ROM files, the actual file extension can vary depending on the methodology used to extract the data, although the resulting files themselves otherwise still contain all of the same structural data.
ISOs also belong to a larger genre of files known as "disk images," which encompass any and all non-cartridge means of data storage, including floppy/floppy-like disks (ie: Apple II and Famicom Disk System discs) and Zip/Zip-like disks (ie: the Nintendo 64DD), among others. The principles behind how the data is represented and stored are otherwise the same as that of ISOs.
Although a large number of emulators exist that cover nearly every major platform ever released and many of the more obscure ones, there are a handful that are more worthy of recognition on a historical and technical level. Although their reliability by today's standards is often considered subpar, their existence paved the way for future generations of emulators.
Bleem's fame can be summarized in two ways, both of which are arguably of equal importance. First, Bleem is noted for having been the first widely-released commercial emulator that efficiently utilized a popular platform, the PlayStation, and made its respective games playable on a PC. While commercial emulators existed prior to Bleem for consoles such as the NES, Bleem was the first one to get major recognition and make a noticeable impact on game-playing culture. Secondly, Bleem is infamous for the legal battle it brought to its creators by Sony, who claimed that the emulator brought in illegal competition. Although the developers of Bleem ultimately won the case, their business had to shut down because of the costly legal fees. A Dreamcast version of Bleem was also in development during this period. This version was designed to support more specific games on each disc and only a few games received official support, although the emulator can be configured for unofficial games, often able to produce results that are visually superior than officially sanctioned ones that Sony has provided via hardware emulation on platforms like the PlayStation 2.
MAME, the Multiple Arcade Machine Emulator, is known for the wide breadth of arcade systems it covers, with thousands of arcade games being emulated in some manner. From a technical standpoint, MAME is prominent because its developers choose to meticulously emulate the original arcade machines so as to properly replicate every nuance of the original hardware. Additionally, its fame is due to the variety of different operating systems on which it is available, including outright consoles like the Xbox. MAME is predominantly an emulator for arcade machines rendering sprites, although some polygons are serviceable. Ideologically related to MAME is MESS, or "Multi Emulator Super System," whose goals and methods are similar to MAME, except targeted towards consoles and handhelds.
Yuji Naka's Nintendo Entertainment System Emulator
Although this emulator has never been examined by the public, Yuji Naka, a man commonly associated with the Sonic the Hedgehog franchise, created a basic Nintendo Entertainment System emulator for the Sega Genesis. Despite the fact that it was only partially capable of playing Super Mario Bros. at a speed less than ideal, it is nonetheless a retro example of console emulation. During that generation, NES emulation was mainly used with DOS.
Giri Giri was a prominent Sega Saturn emulator for the PC that was able to run games at a playable speed. It was eventually acquired by Sega and used to run a commercial emulation subscription service in Japan. Aside from being an emulator that was acquired by the target system's manufacturer, Giri Giri's importance also comes from a later event, specifically the creation of Cassini, as it became another Saturn emulator that was freely available. However, because Cassini was based off the source code of Giri Giri, the legality of its existence has drawn it controversy while nevertheless becoming one of the most popular Saturn emulators today.
Because emulators allow users to have access to and manipulate a platform without the requisite hardware's presence, they are often vital tools in projects undertaken by various members of underground communities. Most emulators used in such contexts are predominantly for older consoles from the 1980s to early 1990s, although sometimes they still play a role in projects pertaining to younger games for newer machines. The legality of many of these undertakings is usually dubious, if not outright illegal. Developers and publishers, however, have historically not resorted to taking any major legal action in such instances, presumably because the products that are affected tend to have negligible economic impact on them.
In translation projects, emulators are usually employed by a team a means to go undergo debug tests without resorting to the usage of expensive physical hardware such as copiers. Additionally, more developed emulators may also be used directly in the translation development process itself, as many are capable of disassembling the games and indicating programming routines which are being used in real time. On the consumer end, emulators are used to play translated games after a patch has been applied, as few people typically have the means to play on the actual system due to anti-piracy lockouts.
Much like in the area of translations, hacks use emulators for testing purposes. After a game's ROM has been edited via a specifically designed tool or manually with things such as hex editors, a recompiled ROM is often used in tandem with an emulator to ensure that the new modifications work as intended. Except for a few specific exceptions, emulators are also usually the only means of enabling the public to play these hacks once they have been published online.