ピクシブ百科事典は2024年5月28日付でプライバシーポリシーを改定しました。改訂履歴

エミュレータの編集履歴

2023-07-17 21:17:22 バージョン

エミュレータ

えみゅれーた

『エミュレータ』(emulator)とは、コンピューターなどのシステムで他の機械装置の動作・機能を模倣する(エミュレーション)もの。

曖昧さ回避

一般名詞としてのエミュレータ

元々は英語で「真似る者」などの意味を持つ。pixivでは「絵柄エミュ」などと使われることもある。


フィクションのエミュレータ

  1. エイリアン9 エミュレイターズ
  2. ワイルドアームズ」(WAXF)のクラス
  3. ナイトウィザード」の侵魔

コンピューターにおけるエミュレータ

コンピューター上で異なるハードウェアの動作を模倣して本来は対応しないソフトウェアを動かす。仮想環境(VM、一つのハードウェアの中で複数の仮想マシンを同時動作させる)と重なる部分が多い。


主な用途としては、

  • 新しいシステムで古いシステムとの後方互換を保つ。
  • パソコン上でスマートフォンや組み込みシステムなどのソフトウェアを開発する際のテスト環境。
  • 古いハードウェア(ゲーム機など)にしか対応していないソフトウェアやコンテンツを楽しむ。

など。


現在のパソコンレトロPCの環境を再現するものや、Androidなどのモバイル向けアプリをPC上で動かすもの(あるいはその逆)、過去の家庭用ゲーム機のソフトを最近のゲーム機やパソコン上で動かすといったものがある。


エミュレータを動作させるためには、基本的に実機より遙かに高い処理能力が必要。特に複雑な構成の機種のエミュレータの開発は難題で、2基のCPUを搭載するセガサターンの場合は、同世代のプレイステーションどころかプレイステーション2よりもエミュレータの登場が遅れたと言われている。


公式エミュレーション環境の例

  • バーチャルコンソール - ニンテンドー3DSWiiU上で過去のゲーム機やアーケードゲームの環境を再現する。
  • ゲームアーカイブス - PSPPS3PSVITA上で過去のプレイステーションソフトの環境を再現する。
  • Android Emulator - WindowsMacintoshLinuxなどのPC上でAndroidアプリの開発を行うための環境に含まれている。
  • Windows XP Mode - Windows7 Professionalにあったシステム。それまで別売だったVirtualPCをWindowsの機能として組み込み、WindowsXPを直接動かす。当然、WindowsXPは別にアップデートする必要がある。
  • Hyper-V - Windows8 Pro以降及びWindows Server 2008R2以降に搭載される仮想環境。VirturlPC同様に仮想PCとして動作する。XP Modeと違い、Windows以外のOSを導入することもできる。Homeでは利用できないが、実は無効化されているだけなので、コマンドプロンプトからのコマンド入力で有効にすることができる。CPUの仮想化支援機能が必要なため、BIOSから有効にしておかなければならない。

仮想環境を利用した互換レイヤー

  • VDM/NTVDM - 32ビット版Windows上にMS-DOS環境を複数立ち上げることができる「仮想DOSマシン」。これにより16ビットアプリケーションを動作させる。9x系では、MS-DOSプロンプトから直接DOSの機能を呼び出して動かせる(このときもこの仮想マシンが動いている格好)。NT系ではカーネルにDOSの機能を持たないので、NTVDMというアプリ上の仮想空間で動作するという格好になる(ユーザーは意識しなくて良い)。NTVDMの動作にはIA-32(32ビットのx86)の仮想86モードが必要となる。IA-32を64ビットに拡張したx64の場合CPUが32ビットのLegacyモードで動いていれば動作させられるが、64ビットのLongモードにはこの機能がない。そのため、64ビット版Windowsにはこの仮想環境は含まれない。大元はOS/2にあったMVDM(マルチ仮想DOSマシン)。はじめから完全32ビットOSだったOS/2では仮想86モード上で複数のDOS環境を動作させることができ、OS/2が持っていたプリエンプティブ・マルチタスクの恩恵が受けられたほか、MS-DOSプロンプトやDOSそのものより安定動作する場合があった。
  • WOW64 - 64ビット(x64、ARM64)版Windows上で32ビットアプリを動かすサブシステム。64ビットのWindowsに標準で含まれている。ただし32ビットと64ビットのコードの混在には対応していないので、それぞれ専用にDLLやOCXを用意してやる必要がある(ブラウザのプラグインなど)。また、x86系(x86とx64)とARM系(ARM32とARM64)の相互変換には制約があり、ARM64はARM32とx86のどちらも対応しているが、x64はx86のみ変換できる(ARM32は非対応)。
  • Mixed Mode Manager - PowerPCを搭載したMacintoshで従来の680x0(68K)用のソフトウェアを動かすために搭載されたサブシステム。PowerPCは68Kに比べ圧倒的に高性能だったことに加え、エミュレータそのものの出来も非常に良かったので、ユーザーが違いを意識する必要はほぼない。ClassicMacOSのAPIの仕組みを活用して68KとPowerPCの両方のコードを混ぜることもでき、開発者は速度に影響する部分からコードの書き換えを進めることができた。このシステムがあまりにも良くできていたのでMacのPowerPCへの最適化が遅れたとも言われるが、PowerPC Macでは68K時代のソフトは実機より高速に動作したので、実際のところユーザーはほとんど困ることはなかった。
  • Classic - PowerPCで動作しているOSX(Mac OS X v10.4まで)上にClassic Mac OSを直接インストールし、専用アプリを動かすシステム。すぐにOSXに移行できなかったアプリのために用意された。Windows7のXP Modeと同様に、OS9が独立して動作している(ただしVirturlPCのようにOS9のデスクトップを独立表示させることはできない)。そのため専用アプリを起動した際の見た目はOS9と全く同じ。OS9の制約はそのまま引き継がれてしまうので、メモリ保護機能がなかったり、プリエンプティブ・マルチタスク機能がなかったりとOSXの性能の恩恵を受けられない。さらに、Classic上のOS9がクラッシュするとClassicを再起動する必要があり、ハードウェアにアクセスするものなど、一部のアプリには互換性がないという制限もあった。IntelMacには含まれない。

エミュレータに似たシステム

  • Rosetta - x86/x64のCPUを搭載したIntel Mac上で、それまでのPowerPC用ソフトウェアを動かすコード変換機構。Intel Mac用のv10.4.4から搭載されたがv10.7で廃止された。Classic環境や64ビットコードには対応しないほか、PowerPCとx86/x64のコードを同一のバイナリに混在させることもできなかった。初期のIntel Macは末期のPowerPC Macとの処理能力の差が少なく、アプリケーションによってはコード変換のオーバーヘッドによる速度低下が目立った。
  • Rosetta 2 - Appleシリコン上でIntel Mac用ソフトウェアを動かすコード変換機構。x64命令をARM64命令に変換するだけなのでClassic環境のような仮想環境とは異なる。Xcode12でビルドをやり直すことでどちらにも対応するUniversal Binary化することができる。
  • Wine - Linuxなど、UNIX系OS上でWindowsのAPIを再現し、Windowsと同じように振る舞わせることでWindowsアプリケーションを動作できるようにする、オープンソースの互換レイヤー。エミュレータではないため、仮想PCよりも高速に動作しWindowsそのもののライセンスも必要ない(足りないDLLを持ってくるときは必要)が、Microsoft公式の互換レイヤーではないため再現度は完璧ではなく(かつてIBMと共同開発していた頃のOS/2にはMicrosoft公式の互換環境「WIN-OS/2」があり、3.1までのWindowsと完璧な互換性があった。MVDMの恩恵も受けられたので安定性も高かった)、仮想PCでWindowsそのものを動かすよりも互換性の面では劣り、動かないソフトもある。

非公式エミュレータに付きまとう問題

完璧に動作する保証はない。動かすソフトの著作権の問題がクリアでなく、違法コピーの問題とも隣り合わせである。


外部リンク

問題を報告

0/3000

編集可能な部分に問題がある場合について 記事本文などに問題がある場合、ご自身での調整をお願いいたします。
問題のある行動が繰り返される場合、対象ユーザーのプロフィールページ内の「問題を報告」からご連絡ください。

報告を送信しました

見出し単位で編集できるようになりました