エミュレータとリバースエンジニアリング
エミュレータの意味
『エミュレータ』という言葉は、「emulate(模範)」という意味の単語が由来(コラム1)。
そして、エミュレータの定義は、「あるデバイス上で動作するアプリケーションを、別の異なるデバイス環境で動作させるためのソフトウェア」である。
単に『エミュ(エミュレータの略)』といった場合、「ゲームエミュレータ(何らかのハード専用のゲームを、他のPCやハード上で起動するためのソフト)」という意味であることも多い。
「コンピューターの構成の基礎知識」1と0の極限を目指す機械
(コラム1)このブログ
実は、このブログの名前である「エミュー」は、鳥の方でなく、エミュレータが由来。
「アカシックレコード(宇宙すべての真理リスト)的なもののエミュ(模倣)」みたいになれたらいいな、という超大げさでうぬぼれてる意味合い
機械を真似る機械
元々エミュレータとは、コンピューターでなくとも、ある機械を真似た機械のことであった。
また、コンピューター関係者が使い始めたころも、異なるPCに対応したOSなどを、別のPCで動かすためのソフトというような意味合いであった。
「OSとは何か」直感的なGUI、仮想の領域。アプリケーションの裏で起きてること
ゲームエミュレーターが注目されだしたのは、PCの性能が向上したのと、ビデオゲームやアーケードゲームの人気の高まりが合わさってのことと思われる。
コンピューターゲームの誕生「ゲーム機以前のゲーム機の歴史」
リバースエンジニアリングとは何か
市販されているマシンなどを分解したり、動作原理を解析したりする行為を『リバースエンジニアリング』というが、この手法を利用して、そのマシンと同じような動作をするマシンを作ることができる。
エミュレータ開発とリバースエンジニアリングの関連は深いと言われる。
実物のものなどをリバースエンジニアリングして、データとして再現するというような手法もある。
リバースエンジニアリングはコンピュータウイルスなどの対策法を見つけるためにも役立てられるが、逆に対策されてたり、特定のターゲットに特化させたコンピュータウイルスの複製や再配布などが問題になることもある。
コピー防止の目的などで設定されているライセンスキーの解除なども問題になりがち(コラム2)。
(コラム2)完全に閉ざした環境のプログラムは有効たりえるか
リバースエンジニアリングが絶対されないようにするには、システムのプログラム部分だけを物理的に完全に閉ざした環境を構築するしかないかもしれない。
だが完全に閉ざされた領域のプログラムで、システムは動作するのだろうか。
ゲームエミュレータのメリット
本来対応しているゲーム機以外でゲームをすることに何の意味があるのか。
メリットはいくつもある。
イメージデータとして管理できる
例えばエミュレーターでは、基本的にディスクなどに入っている ゲームROMのデータをイメージデータとして抽出し、そのイメージデータを利用して、ゲーム環境を構築する。
つまりディスクのような物理的な母体がいらなくなるから、そういうのを保存するための現実のスペースが節約できる。
ファミコンソフトのような古いゲームのソフトならば、今の時代の基準でいうと非常に容量が軽いので、一つのハードディスクの中に大量のゲームデータを保存しておける。
イメージデータとして管理もしやすいために、バックアップも容易である。
たった1枚のゲームディスクが壊れるかどうか、ということに気を使う必要もなくなる。
ゲーム環境の改善
本来は携帯ゲームのような小さな画面でしかできないゲームを、大画面に広げてプレイすることができるし、より優れた液晶画面でグラフィックを表示させることもできる。
ハード性能の問題で、出力の抑えられているグラフィックなども、本来のレベルのものが堪能できたりする。
PCだけでなく、本来と別のゲーム機でゲームをすることも可能。
例えば元は据え置き機のゲームを、携帯ゲームとしてプレイしたりもできる。
さらに一部でしかセーブできないゲームをどこでもセーブ可能としたり 本来はオフライン専用のゲームをオンライン対応にしたりといったエミュレーターも多く存在する。
この世界のどこかでは、懐かしのゲームで、本来はできないオンライン対戦を楽しんでいるマニアたちもいるのである。
データの書き換え、いわゆる改造やチートもしやすい。
さらにエミュレータはゲームを開発する場合においても、PC上で製作中のゲームを、PC上でそのまま起動できるために、テストプレイの時間ロスに繋がる。
ゲームエミュレータの問題点
再現性は完璧にできるか
エミュレーターの最大のデメリットとしては、やはり別のマシンを仮想的に別のマシン上で実現させるという特性上、本来必要なものよりも、強力なCPUやグラフィックボードの性能を要求するということである。
動作自体が不安定な場合も多く、再現性を高めるための研究開発は 続けられているが、最新のものに対応するにはやはり時間がかかる。
違法行為の問題
デメリットというか、よく問題視されているのが、抽出した市販ゲームのROMデータを、 ファイル共有ソフトなどを使って、ネット上に勝手に配布したりする行為である。
「ファイル共有ソフト」仕組みと利点。P2Pソフトとは何か。
これは明確な著作権侵害行為であるが、エミュレーターという言葉が一般に普及し始めた当時は、犯罪であることすら知らない人も多かったようだ。
ただしゲームROMを配布するという行為自体は共有ソフトの本来の目的として、あまり間違っているとは言えない。
本来想定されているのは、自作や著作権フリーのゲームなどを配布したりすること。
また、ゲームソフトからROMデータを抽出する行為のことは、「吸い出し」といい、それをするための「吸い出し機」というマシンもある。
SFの話。世界プログラム説とエミュレータ
現実の宇宙は、少なくとも機構上は、量子コンピューター的だと考えられている。
「量子コンピュータとは何か」仕組み、宇宙の原理、実用化したらどうなるか 「宇宙プログラム説」量子コンピュータのシミュレーションの可能性
もしコントロールが効くようになったらどうなるのだろうか。
例えば誰かがゲームをプレイする様子を見ていて、その機構を量子コンピューター上に表現できるようになったとする。
この世界がすでにそのような量子コンピューターであるのならば、物事のほとんどはエミュレートされたものなのかもしれない。
だがその場合、オリジナルというのは何なのか。
この世界に、それまで存在していないものを作るとは、いったいどういうことなのだろうか。
量子ひとつをエミュレートできるか
もし世界が量子コンピューターであるとすると、この世界の何かのデータを吸い出し機で抽出し、エミュレーターで再現することも可能かもしれない。
ただ、そういうことが可能だとして、例えば量子ひとつをエミュレートできるだろうか。
量子の振る舞いにはランダム性がつきまとうことはよく知られている。
「量子論」波動で揺らぐ現実。プランクからシュレーディンガーへ
もし本当に世界がゲームで、量子がただの変数であるのなら、変数自体をコピーしたりということはできるかもしれない。
だがおそらくそれは、この宇宙の根本の素材が量子であるという考え方の、さらに上をいかなければならないだろう。
ようするに、この世界が量子コンピューター的であることと、量子という存在の振る舞いが変数的であることに関しては根拠がわりとある。
だが、量子のランダム性が、そのさらに背後にあるプログラムによるものという証拠はない。
おそらく量子の振る舞いのランダムというのは、そう決められているものではなく、そう決まっているものだと、普通は考えられるわけである。
しかし量子一個がどれだけ不確定なものでも、それが集まって物質は確かなものになってくるというのは、我々自身が経験的に知っていることだ。
それならばしっかりとエミュレートできるだろう。
地球エミュレータ、宇宙エミュレータ
何かの仕掛けなどに限って言えば、大規模なものになるほど、細部の仕組みがわりとごまかし効くかもしれない。
例えば、地球のような生態系を丸々エミュレートするとして、誕生したコピー地球は、存在してる生命体にある程度共通点があっても、どれも違うものかもしれない。
「ガイア理論」地球は生き物か。人間、生命体、生態系の謎
ようするに、地球によく似ているけれど違う星というものになるかもしれない。
そう考えると、未来にて、地球と同じようだけど、細部の異なるような惑星ばかりが発見されたら。
あるいはもっと大きく、にたような太陽系や銀河系(実際、 これらはよく似ているのかもしれない)。
よく似た観測可能な宇宙ばかりなら、それがあるではなく、そればかりなら、本当にどこかにこの宇宙のエミュレータがあるのかもしれない。
「インフレーション理論」ビッグバンをわかりやすくした宇宙論