Video game console emulator

A video game console emulator is a type of emulator that allows a computing device to emulate a video game console's hardware and play its games on the emulating platform. More often than not, emulators carry additional features that surpass the limitations of the original hardware, such as broader controller compatibility, timescale control, greater performance, clearer quality, easier access to memory modifications (like GameShark), one-click cheat codes, and unlocking of gameplay features. Emulators are also a useful tool in the development process of homebrew demos and the creation of new games for older, discontinued, or more rare consoles.
The code and data of a game are typically supplied to the emulator by means of a ROM file (a copy of game cartridge data) or an ISO image (a copy of optical media), which are created by either specialized tools for game cartridges, or regular optical drives reading the data. Most games retain their copyright despite the increasing time-span of the original system and products' discontinuation; this leaves regular consumers and emulation enthusiasts to resort to obtaining games freely across various internet sites rather than legitimately purchasing and ripping the contents (although for optical media, this is becoming popular for legitimate owners). As an alternative, specialized adapters such as the Retrode allow emulators to directly access the data on game cartridges without needing to copy it into a ROM image first.
History.
By the mid-1990s, personal computers had progressed to the point where it was technically feasible to replicate the behavior of some of the earliest consoles entirely through software, and the first unauthorized, non-commercial console emulators began to appear. These early programs were often incomplete, only partially emulating a given system, resulting in defects. Few manufacturers published technical specifications for their hardware, which left programmers to deduce the exact workings of a console through reverse engineering. Nintendo's consoles tended to be the most commonly studied, for example the most advanced early emulators reproduced the workings of the Nintendo Entertainment System, the Super Nintendo Entertainment System, and the Game Boy. The first such recognize emulator was released around 1996, being one of the prototype projects that eventually merged into the SNES9X product. Programs like Marat Fayzullin's iNES, VirtualGameBoy, Pasofami (NES), Super Pasofami (SNES), and VSMC (SNES) were the most popular console emulators of this era. A curiosity was also Yuji Naka's unreleased NES emulator for the Genesis, possibly marking the first instance of a software emulator running on a console. Additionally, as the Internet gained wider availability, distribution of both emulator software and ROM images became more common, helping to popularity emulators.
Legal attention was drawn to emulations with the release of UltraHLE, an emulator for the Nintendo 64 released in 1999 while the Nintendo 64 was still Nintendo's primary console - its next console, the GameCube, would not be released until 2001. UltraHLE was the first emulator to be released for a current console, and it was seen to have some effect on Nintendo 64 sales, though to what degree compared with diminishing sales on the aging consoles was not clear. Nintendo pursued legal action to stop the emulator project, and while the original authors ceased development, the project continued by others who had gotten the source code. Since then, Nintendo has generally taken the lead in actions against emulation projects or distributions of emulated games from their consoles compared to other console or arcade manufacturers.
This rise in popularity opened the door to foreign video games, and exposed North American gamers to Nintendo's censorship policies. This rapid growth in the development of emulators in turn fed the growth of the ROM hacking and fan-translation. The release of projects such as RPGe's English language translation of "Final Fantasy V" drew even more users into the emulation scene.
Methods.
Emulators can be designed in three ways: purely operating in software which is the most common form such as MAME using arcade ROM images; purely operating in hardware such as the ColecoVision's adapter to accept Atari VCS cartridges, and hybrid solutions, such as hardware bridgeboards for various Amiga computers that could run IBM PC-compatible software.
An emulator is created typically through reverse engineering of the hardware information as to avoid any possible conflicts with non-public intellectual property. Some information may be made public for developers on the hardware's specifications which can be used to start efforts on emulation but there are often layers of information that remain as trade secrets such as encryption details. Operating code stored in the hardware's BIOS may be disassembled to be analyzed in a clean room design, with one person performing the disassembling and another person, separately, documenting the function of the code. Once enough information of how the hardware interprets the game software, an emulation on the target hardware can then be constructed. Emulation developers typically avoid any information that may come from untraceable sources to avoid contaminating the clean room nature of their project. For example, in 2020, a large trove of information related to Nintendo's consoles was leaked, and teams working on Nintendo console emulators such as the Dolphin emulator for GameCube and Wii stated they were staying far away from the leaked information to avoid tainting their project.
Once an emulator is written, it then requires a copy of the game software to be obtained, a step that may have legal consequences. Typically, this requires the user to make a copy of the contents of the ROM cartridge to computer files or images that can be read by the emulator, a process known as "dumping" the contents of the ROM. A similar concept applies to other proprietary formats, such as for PlayStation CD games. While not required for emulation of the earliest arcade or home console, most emulators also require a dump of the hardware's BIOS, which could vary with distribution region and hardware revisions. In some cases, emulators allow for the application of ROM patches which update the ROM or BIOS dump to fix incompatibilities with newer platforms or change aspects of the game itself. The emulator subsequently uses the BIOS dump to mimic the hardware while the ROM dump (with any patches) is used to replicate the game software.
Perspectives.
Outside of official usage, emulation has generally been seen negatively by video game console manufacturers and game developers. The largest concern is nature of copyright infringement related to ROM images of games, typically distributed freely and without hardware restrictions. While this directly impacts potential sales of emulated games and thus the publishers and developers, the nature of the value chain of the industry can lead to potential financial harm to console makers. Further, emulation challenges the industry's use of the razorblade model for console games, where consoles are sold near cost and revenue instead obtained from licenses on game sales. With console emulation being developed even while consoles are still on the market, console manufacturers are forced to continue to innovate, bring more games for their systems to market, and move quickly onto new technology to continue their business model. There are further concerns related to intellectual property of the console's branding and of games' assets that could be misused, though these are issues less with emulation itself but with how the software is subsequently used.
Alternatively, emulation is seen to enhance video game preservation efforts, both in shifting game information from outdated technology into newer, more persistent formats, and providing software or hardware alternates to aged hardware. Some users of emulation also see emulation as means to preserve games from companies that have long-since gone bankrupt or disappeared from the industry's earlier market crash and contractions, and where ownership of the property is unclear. Emulation can also be seen as a means to enhance functionality of the original game that would otherwise not be possible, such as adding in localizations via ROM patches or new features such as save states. 
Legal issues.
United States.
As computers and global computer networks continued to advance and emulator developers grew more skilled in their work, the length of time between the commercial release of a console and its successful emulation began to shrink. Fifth generation consoles such as Nintendo 64, PlayStation and sixth generation handhelds, such as the Game Boy Advance, saw significant progress toward emulation during their production. This led to an effort by console manufacturers to stop unofficial emulation, but consistent failures such as "Sega v. Accolade" 977 F.2d 1510 (9th Cir. 1992), "Sony Computer Entertainment, Inc. v. Connectix Corporation" 203 F.3d 596 (2000), and "Sony Computer Entertainment America v. Bleem" 214 F.3d 1022 (2000), have had the opposite effect, which has ruled that emulators, developed through clean room design, are legal. Librarian of Congress The Librarian of Congress, under the Digital Millennium Copyright Act (DMCA), has codified these rules as allowed exemptions to bypass technical copyright protections on console hardware. However, emulator developers cannot incorporate code that may have been embedded within the hardware BIOS, nor ship the BIOS image with their emulators.
Unauthorized distribution of copyrighted code remains illegal, according to both country-specific copyright and international copyright law under the Berne Convention. Accordingly, video game publishers and developers have taken legal action against websites that illegally redistribute their copyrighted software, successfully forcing sites to remove their titles or taking down the websites entirely.
Under United States law, obtaining a dumped copy of the original machine's BIOS is legal under the ruling "Lewis Galoob Toys, Inc. v. Nintendo of America, Inc.", 964 F.2d 965 (9th Cir. 1992) as fair use as long as the user obtained a legally purchased copy of the machine. To mitigate this however, several emulators for platforms such as Game Boy Advance are capable of running without a BIOS file, using high-level emulation to simulate BIOS subroutines at a slight cost in emulation accuracy.
Impersonation by malware.
Due to their popularity, emulators have also been a target of online scams in the form of trojan horse programs designed to mimic the appearance of a legitimate emulator, which are then promoted through spam, on YouTube and elsewhere. Some scams, such as the purported "PCSX4" emulator, have even gone so far as to setting up a fake GitHub repository, presumably for added trustworthiness especially to those unfamiliar with open-source software development. The Federal Trade Commission has since issued an advisory warning users to avoid downloading such software, in response to reports of a purported Nintendo Switch emulator released by various websites as a front for a survey scam.
Official use.
Due to the high demand of playing old games on modern systems, consoles have begun incorporating emulation technology. The most notable of these is Nintendo's Virtual Console. Originally released for the Wii, but present on the 3DS and Wii U, "Virtual Console" uses software emulation to allow the purchasing and playing of games for old systems on this modern hardware. Though not all games are available, the Virtual Console has a large collection of games spanning a wide variety of consoles. The Virtual Console's library of past games currently consists of titles originating from the Nintendo Entertainment System, Super NES, Game Boy, Game Boy Color, Nintendo 64, Game Boy Advance, Nintendo DS, and Wii, as well as Sega's Master System and Genesis/Mega Drive, NEC's TurboGrafx-16, and SNK's Neo Geo. The service for the Wii also includes games for platforms that were known only in select regions, such as the Commodore 64 (Europe and North America) and MSX (Japan), as well as Virtual Console Arcade, which allows players to download video arcade games. Virtual Console titles have been downloaded over ten million times. Each game is distributed with a dedicated emulator tweaked to run the game as well as possible. However, it lacks the enhancements that unofficial emulators provide, and many titles are still unavailable.
Until the 4.0.0 firmware update, the Nintendo Switch system software contained an embedded NES emulator, referred to internally as "flog", running the game "Golf" (with motion controller support using Joy-Con). The Easter egg was believed to be a tribute to former Nintendo president Satoru Iwata, who died in 2015: the game was only accessible on July 11 (the date of his death), "Golf" was programmed by Iwata, and the game was activated by performing a gesture that Iwata had famously used during Nintendo's video presentations. It was suggested that the inclusion of "Golf" was intended as a digital form of omamori—a traditional form of Japanese amulets intended to provide luck or protection. As part of its Nintendo Switch Online subscription service, Nintendo subsequently released an app featuring an on-demand library of NES and SNES titles updated regularly. The app features similar features to Virtual Console titles, including save states, as well as a pixel scaler mode and an effect that simulates CRT television displays.
Due to differences in hardware, the Xbox 360 is not natively backwards compatible with original Xbox games. However, Microsoft achieved backwards compatibility with popular titles through an emulator. On June 15, 2015, Microsoft announced the Xbox One would be backwards compatible with Xbox 360 through Emulation. In June 2017, they announced Xbox original titles would also be available for backwards compatibility through emulation, but because the Xbox original runs on the x86 architecture, CPU emulation is unnecessary, greatly improving performance. The PlayStation 3 uses software emulation to play original PlayStation titles, and the PlayStation Store sells games that run through an emulator within the machine. In the original Japanese and North American 60GB models, original PS2 hardware is present to run titles; however all PAL models, and later models released in Japan and North America removed some PS2 hardware components, replacing it with software emulation working alongside the video hardware to achieve partial hardware/software emulation. In later releases, backwards compatibility with PS2 titles was completely removed along with the PS2 graphics chip, and eventually Sony released PS2 titles with software emulation on the PlayStation Store.
Commercial developers have also used emulation as a means to repackage and reissue older games on newer consoles in retail releases. For example, Sega has created several collections of "Sonic the Hedgehog" games. Before the "Virtual Console", Nintendo also used this tactic, such as Game Boy Advance re-releases of NES titles in the Classic NES Series.
Other uses.
Although the primary purpose of emulation is to make older video-games execute on newer systems, there are several advantages inherent in the extra flexibility of software emulation that were not possible on the original systems.
ROM hacking and modification.
Disk image loading is a necessity for most console emulators, as most computing devices do not have the hardware required to run older console games directly from the physical game media itself. Even with optical media system emulators such as the PlayStation and PlayStation 2, attempting to run games from the actual disc may cause problems such as hangs and malfunction as PC optical drives are not designed to spin discs the way those consoles do. This, however, has led to the advantage of it being far easier to modify the actual game's files contained within the game ROMs. Amateur programmers and gaming enthusiasts have produced translations of foreign games, rewritten dialogue within a game, applied fixes to bugs that were present in the original game, as well as updating old sports games with modern rosters. It is even possible to use high-resolution texture pack upgrades for 3-D games and sometimes 2-D if available and possible.
Enhanced technical features.
Software that emulates a console can be improved with additional capabilities that the original system did not have. These include Enhanced graphical capabilities, such as spatial anti-aliasing, upscaling of the framebuffer resolution to match high definition and even higher display resolutions, as well as anisotropic filtering (texture sharpening).
Emulation software may offer improved audio capabilities (e.g. decreased latency and better audio interpolation), enhanced save states (which allow the user to save a game at any point for debugging or re-try) and decreased boot and loading times. Some emulators feature an option to "quickly" boot a game, bypassing the console manufacturer's original splash screens.
Furthermore, emulation software may offer online multiplayer functionality and the ability to speed up and slow down the emulation speed. This allows the user to fast-forward through unwanted cutscenes for example, or the ability to disable the framelimiter entirely (useful for benchmarking purposes).
Bypassing regional lockouts.
Some consoles have a regional lockout, preventing the user from being able to play games outside of the designated game region. This can be considered a nuisance for console gamers as some games feature seemingly inexplicable localization differences between regions, such as differences in the time requirements for driving missions and license tests on "Gran Turismo 4", and the PAL version of "Final Fantasy X" which added more ingame skills, changes to some bosses, and even more bosses, Dark Aeons, that weren't available in the American NTSC release of the game.
Although it is usually possible to modify the consoles themselves to bypass regional lockouts, console modifications can cause problems with screens not being displayed correctly and games running too fast or slow, due to the fact that the console itself may not be designed to output to the correct format for the game. These problems can be overcome on emulators, as they are usually designed with their own output modules, which can run both NTSC and PAL games without issue.
Cheating and widescreen functionality.
Many emulators, for example Snes9x, make it far easier to load console-based cheats, without requiring potentially expensive proprietary hardware devices such as those used by GameShark and Action Replay. Freeware tools allow codes given by such programs to be converted into code that can be read directly by the emulator's built-in cheating system, and even allow cheats to be toggled from the menu. The debugging tools featured in many emulators also aid gamers in creating their own such cheats. 
Similar systems can also be used to enable Widescreen Hacks for certain games, allowing the user to play games which were not originally intended for widescreen, without having to worry about aspect ratio distortion on widescreen monitors.