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 is created by either regular optical drives reading the data, or specialized tools for game cartridges. 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.
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. 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.