Emulation Techniques
Software becoming hardware
Emulation techniques translate one computer architecture to another, preserving playable software when original hardware becomes scarce.
Overview
One computer pretending to be another. Emulation runs software written for one machine on a different machine by intercepting machine instructions and translating them to the host system. Approaches range from interpretation (decode each instruction one by one — accurate but slow) through dynamic recompilation (translate blocks of guest code to native host code — fast but complex) to high-level emulation (replace whole subsystems with native equivalents — fastest, least accurate). Emulation preserves gaming history as original hardware ages, and powers the vintage-computing community from MAME arcade preservation through MiSTer FPGA cores to commercial mini-consoles.
The first widely-cited emulator dates to 1962 (IBM 7070 simulating IBM 1401 software for migration). Gaming emulation reached the public in the late 1990s with Nesticle (1997), ZSNES (1997), VICE (Commodore 64, 1993+), and MAME (1997).
Fast facts
- Origin (computing): IBM emulation, 1962 — pre-dates microprocessors.
- Gaming popularisation: Late 1990s — Nesticle, ZSNES, MAME, VICE.
- Modern landscape: Software emulators, FPGA recreations, mini-console hardware.
- Legal status: Emulators legal in most jurisdictions (Sony v. Connectix / Bleem precedents); ROM distribution mostly not legal without rights.
- Preservation role: Frontline of digital-game preservation alongside ROM dumping and hardware archives.
Technical approaches
| Approach | How it works | Strengths | Weaknesses |
|---|---|---|---|
| Pure interpretation | Decode and execute one instruction at a time | Simple, portable, easy to debug | Slow — typically 5-20× native overhead |
| Threaded interpretation | Pre-decoded instruction stream | Faster than pure interpretation | More memory, more complex |
| Static recompilation | Translate ROM to native code ahead-of-time | Very fast at runtime | Self-modifying code breaks it |
| Dynamic recompilation (JIT) | Translate code blocks at runtime, cache | Near-native speed, handles SMC | Complex; large memory footprint |
| High-level emulation (HLE) | Replace OS calls / GPU calls with native equivalents | Very fast | Game-specific bugs; less accurate |
| Cycle accuracy | Model timing at single-cycle (or sub-cycle) resolution | Reproduces hardware quirks games rely on | Far slower than HLE |
| FPGA reimplementation | Recreate hardware in programmable logic chip | Hardware-level accuracy, deterministic timing | Hardware cost; per-system development |
Accuracy spectrum
Different emulators target different points on the accuracy / speed curve:
| Goal | Example emulators |
|---|---|
| Fast and playable | Nesticle (1997), ZSNES (1997), Project64 (early), Dolphin (HLE mode) |
| Compatibility-focused | MAME (running thousands of arcades), RetroArch frontend |
| Cycle-accurate | bsnes / higan (SNES, by byuu), Mesen (NES), Ares, FCEUX (recent) |
| Hardware-accurate (FPGA) | MiSTer cores, Analogue Pocket / Super NT / Mega SG |
| Hybrid | Dolphin (GameCube/Wii) — HLE GPU, cycle-ish CPU |
Notable emulators by platform
| Platform | Emulators of note |
|---|---|
| Arcade | MAME (1997+) — preserves thousands of boards |
| NES | Nesticle (1997), FCEUX, Mesen, Nestopia |
| SNES | ZSNES (1997), SNES9x, bsnes / higan, Mesen-S |
| Mega Drive / Genesis | Gens, Kega Fusion, BlastEm, Genesis Plus GX |
| C64 | VICE (1993+), Hoxs64, Denise |
| ZX Spectrum | Fuse, Spectaculator, Speccy, Sinclair Bench |
| Amiga | WinUAE / FS-UAE — both emulators of the AmigaOS/hardware |
| PlayStation | ePSXe, PCSX, PCSX2 (PS2), Duckstation, RPCS3 (PS3) |
| Nintendo 64 | Project64, Mupen64Plus, Ares, simple64 |
| GameCube/Wii | Dolphin (one of the most accurate of any console emulator) |
| DS | DeSmuMe, melonDS |
| PSP | PPSSPP |
| Switch | Yuzu (until 2024 settlement), Ryujinx (until 2024 cessation) |
| Frontends | RetroArch, OpenEmu (macOS), Launchbox |
FPGA emulation
A different category — instead of running software that mimics hardware, FPGAs (Field Programmable Gate Arrays) reconfigure their physical logic to become the original hardware:
| Project | Scope |
|---|---|
| MiSTer | Open-source FPGA platform; cores for arcade boards, NES, SNES, Genesis, Amiga, ST, C64, etc. |
| Analogue Pocket | Handheld FPGA — Game Boy / GBC / GBA accuracy; openFPGA cores extend to NES, SNES, more |
| Analogue Super NT | SNES FPGA console |
| Analogue Mega SG | Mega Drive / Genesis FPGA |
| Analogue Duo | PC Engine / TG-16 FPGA |
FPGAs offer sub-pixel sub-microsecond timing fidelity that software emulation struggles with. They cost more, but for hardware purists they're the closest non-original option.
Mini-consoles and commercial emulation
Console-style emulation reached mainstream consumers via "mini" hardware:
| Product | Year | Platform emulated |
|---|---|---|
| NES Classic Mini | 2016 | NES (30 games) |
| SNES Classic Mini | 2017 | SNES (21 games) |
| PlayStation Classic | 2018 | PS1 (20 games) — emulator quality criticised |
| Mega Drive Mini | 2019 | Mega Drive — well-received emulation by M2 |
| C64 Mini / Maxi | 2018-19 | C64 — VICE-derived |
| TheA500 Mini | 2022 | Amiga — using FS-UAE |
| TheC64 | 2019+ | C64 / Vic-20 |
These shipped emulator-on-ARM-board hardware to millions; legitimised emulation as a commercial product.
Legal landscape
| Issue | Status |
|---|---|
| Emulator code itself | Generally legal (Sony v. Connectix, Sony v. Bleem precedents in US) |
| BIOS / firmware | Usually copyrighted; redistribution illegal; reverse-engineered clones exist |
| ROM files | Copyrighted; distribution generally illegal regardless of "abandonware" claims |
| Personal backups | Murky — depends on jurisdiction; not a clear safe harbour |
| Yuzu (Switch emu) settlement | 2024 — Nintendo settled $2.4M with Yuzu team; chilled active console-emulator development |
| Ryujinx | 2024 — main developer entered agreement with Nintendo; project effectively halted |
The legal pressure on active-generation console emulation has intensified since 2024. Older hardware emulation faces less direct pressure.
Preservation value
| Reason | Detail |
|---|---|
| Hardware scarcity | Original CRTs, cartridges, disks, tape decks failing |
| Media degradation | Magnetic media (tapes, floppies) deteriorate; optical discs rot; battery saves die |
| Capacitor failure | 1980s/90s electronics need recapping or fail |
| Format obsolescence | Even working hardware needs working media to play |
| Documentation | Implementing an emulator forces deep understanding |
| Accessibility | Anyone with a modern device can experience the games |
| Modding / hacking | Save states, debugger UIs, fan-translation patches, speedrun tools |
Major archives (the Internet Archive, Pouet, Hall of Light, GameBase, NESdev) and emulator authors collectively form the gaming-preservation infrastructure. Commercial preservation (Nintendo Switch Online, PlayStation Plus Premium, Antstream Arcade, Atari 50) relies on emulation tech that the hobby invented.
See also
- VICE
- RetroArch
- MAME
- Cycle Accuracy
- Game Preservation