Processes and software for emulating retro hardware (e.g. MAME, QEMU). NOT EVERY EMULATION QUESTION IS ON-TOPIC; SEE TAG WIKI.

Emulation is the process of imitating software or hardware (usually hardware) with a program in order to run other (usually older) programs that require the emulated software or hardware to function.

Related terms are: simulation and virtualization. ‘Simulation’ usually implies faithful, low-level replication of the target system up to its other physical characteristics, aiming for bug-for-bug compatibility; in contrast, ‘virtualization’ usually only guarantees behaviour officially supported in the API contract and may provide some integration with the host system, within the confines of a sandbox. However, such distinctions are not reflected in this tag.

Not every emulation question is on-topic. Questions concerning the mere use and configuration of an emulator against a host platform are better asked elsewhere. Implementation of emulators is generally accepted as on-topic; fine-tuning and recommendations are more controversial. See Is emulation on topic? for a meta discussion on the subject.

Sample questions:

  • Which Commodore 64 emulator offers better compatibility for ⟨game⟩?
  • What platforms are supported by MAME?
  • How does a ⟨machine⟩ emulator handle 50Hz (PAL) games on a 60Hz (VGA) display?