一般名詞としてのエミュレータ
元々は英語で「真似る者」などの意味を持つ。
コンピューターにおけるエミュレータ
コンピューター上で異なるハードウェアの動作を模倣して本来は対応しないソフトウェアを動かす。仮想環境(VM、一つのハードウェアの中で複数の仮想マシンを同時動作させる)と重なる部分が多い。
主な用途としては、
- 新しいシステムで古いシステムとの後方互換を保つ。
- パソコン上でスマートフォンや組み込みシステムなどのソフトウェアを開発する際のテスト環境。
- 古いハードウェア(ゲーム機など)にしか対応していないソフトウェアやコンテンツを楽しむ。
など。
現在のパソコンでレトロPCの環境を再現するものや、Androidなどのモバイル向けアプリをPC上で動かすもの(あるいはその逆)、過去の家庭用ゲーム機のソフトを最近のゲーム機やパソコン上で動かすといったものがある。
エミュレータを動作させるためには、基本的に実機より遙かに高い処理能力が必要。特に複雑な構成の機種のエミュレータの開発は難題で、2基のCPUを搭載するセガサターンの場合は、同世代のプレイステーションどころかプレイステーション2よりもエミュレータの登場が遅れたと言われている。
公式エミュレーション環境の例
- バーチャルコンソール - ニンテンドー3DSとWiiU上で過去のゲーム機やアーケードゲームの環境を再現する。
- ゲームアーカイブス - PSPとPS3とPSVITA上で過去のプレイステーションソフトの環境を再現する。
- Android Emulator - Windows、Macintosh、LinuxなどのPC上でAndroidアプリの開発を行うための環境に含まれている。
- Windows XP Mode - Windows7 Professionalにあったシステム。それまで別売だったVirtualPCをWindowsの機能として組み込み、WindowsXPを直接動かす。
仮想環境を利用した互換レイヤー
- VDM/NTVDM - 32ビット版Windows上にMS-DOS環境を複数立ち上げることができる「仮想DOSマシン」。64ビットのWindowsでは動作しない。
- WOW64 - 64ビット(x86-64、ARM64)版Windows上で32ビットアプリを動かすサブシステム。64ビットのWindowsに標準で含まれている。
- Classic環境 - OSX(Mac OS X v10.4まで)でClassic Mac OSの環境を再現するサブシステム。
- Mixed Mode Manager - ClassicMacOSのうち、OS7以降にあったサブシステム。それまでのモトローラ680x0系からIBMが開発に加わったPowerPCに移行するために搭載された。680x0よりCPUの処理能力が向上し再現が容易だったことに加え、エミュレータそのものの出来も良かったのでユーザーが違いを意識する必要はほとんどなかったが、ソフトウェア側の最適化も進まないという弊害が生まれてしまった。
エミュレータと似て非なるシステム
- Rosetta - Intel Mac上で、それまでのPowerPC用ソフトウェアを動かすコード変換機構。Intel Mac用のv10.4.4から搭載されたが、v10.7で廃止された。Classic環境には対応しないほか、PowerPCとx86のコードが混在しているソフトウェアの処理もできなかった。速度もRosettaを介しているため低下してしまう。
- Rosetta 2 - Appleシリコン上でIntel Mac用ソフトウェアを動かすコード変換機構。x86-64命令をARM64命令に変換するだけなのでClassic環境のような仮想環境とは異なる。なお、Xcode12でビルドをやり直すことでどちらにも対応するUniversal Binary化することができる。
- Wine - Linux上でWindowsのアプリケーションを動作できるようにしたもの。仮想環境ではないためエミュレータにはあたらない。
非公式エミュレータに付きまとう問題
完璧に動作する保証はない。動かすソフトの著作権の問題がクリアでなく、違法コピーの問題とも隣り合わせである。