■ご挨拶
ゲーム保存協会の堀井です。
このページをご覧の方はご存知だと思いますが、当協会は名前の通りゲームの保存、その中でもマイクロプロセッサを使ったゲームの保存にスポットを当てて活動しており、ゲームソフトだろうがゲーム機だろうがパソコンだろうが、可能な限り欠かすことなく、保存し未来に残していくことをポリシーとして、日々活動しています。
今回は、その保存する手法の一つである「エミュレーション」という技術について、お話してみようと思います。
■ソフトウエアとハードウエア
一部の例外※を除けば、ゲームはゲームのプログラムが書かれたアプリケーション側であるソフトウエアと、そのソフトウエアを走らせるハードウエアに分けて考えることができます。
物理的な回路で作られている部分がハードウエア、その上で動くプログラムがソフトウエアで、もし音楽に例えることが許されるなら、楽譜がソフトウエア、楽器がハードウエアに当たると思います。
録音技術が普及する以前、楽譜と楽器を組み合わせて残していくことで、人が音楽を伝え続けてきた様に、ゲームもソフトウエアとハードウエアを残していく事ができれば、ゲームを体験する環境そのものを未来に伝えていくことが可能になる筈です。
今回お話する「エミュレーション」という手法は楽器側、即ちハードウエアを保存していく手法の一つになります。
※最初期のゲームは回路そのものでゲームのロジックを記述していました。
■ハードウエアを残す手段とエミュレーション
ハードウエアの保存は、当時リリースされていた実物をメンテナンスしつつ残す方法や互換性をもったハードウエアを製作する等がありますが、後者の旧世代のハードウエアのアプリケーションを動かす仕組みを上位互換機能といいます。
MSX2でMSX1のゲームを、PlayStation2でPlayStationのゲームを遊んだりした経験がある方も多いと思いますが、新しいハードウエアの中に旧来のハードウエアと同等のものを組み込み、その部分を使って、以前のハードウエアに向けて書かれたゲームを含めたソフトウエアを動作させる手法で、これらがハードウエアによる上位互換という仕組みです。
対して、エミュレーションというのは、ハードウエアの構造をソフトウエアとして記述し再現する技術です。
近年ではハードウエアの仮想化などという言葉で耳にした方も多いかもしれませんし、ゲーム機に於いてもハードウエアによる上位互換機能ではなく、エミュレーションソフトウエアによるソフトウエアでの上位互換機能を実現している事例もある様です。
■エミュレーションという技術について
エミュレーションという技術は、簡単にいえばターゲットマシンのハードウエアの機能をソフトウエア化して代替する手法です。
ターゲットマシンに搭載されているプロセッサ周り、画像表示や音源、各種I/O等をソフトウエア化し、ターゲットマシン上で動いている筈のアプリケーションソフトがターゲットマシンに対して行う各種アクセスをエミュレーションソフトウエア側で受け取り、適切な処理を返し、あたかも実際のターゲットマシンがその場にあるかのような振る舞いをします。
また、エミュレーションソフトウエアの場合、ターゲットマシンのソフトウエアを何かしらの方法でハードディスク等の別のメディアに移して実行される事が多いですが、通常ターゲットマシンの挙動を可能な限り厳密に再現する実装を行うので、エミュレーターを実行しているマシンに、USB等を使った何らかの形でFDDやROMスロット等のデバイスを装着した場合、ターゲットマシンの実ゲームソフトを直接実行する様に作る事も可能です。
■可能になること、ならないこと
実機を維持できる事が理想ではありますが、部品調達等の事情で維持が困難になった場合の次善の案として、エミュレーションによる代替環境の構築は大きな選択肢になるだろうと私は考えています。
更にソフトウエアで構築されているので、移植作業という手間こそ伴うものの、未来のハードウエアで動かす事も現実的です。エミュレーションソフトを移植せずとも、動いていたハードウエアを未来のハードウエア上でエミュレーションすれば、多段重ねのエミュレーションで同じ結果を得る事も理論上可能です。
ですが、この手法で万全かと言われるとそうではなく、実機と全く同じ挙動をするエミュレーションソフトウエアを作ろうした場合、実機に搭載されている数々のデバイスの詳細な仕様書や回路図はもちろんのこと、実機と照らし合わせたそれらの資料についての検証も必要になり、万全と思えるところに至るには膨大な作業を必要とします。
その上、ある程度の再現を目指してエミュレーションソフトウエアを書く場合でも大雑把に実機のパフォーマンスに比して10倍程度の演算資源が必要となります。
また、エミュレーション環境を整えることができたとしても、アウトプットの環境は常に変わっていきます。大きなところでいえば、ここ10年でブラウン管のモニターは激減しましたし、液晶パネルの質も大きく向上しました。
ブラウン管へのアナログ入力による滲みを前提に表現された絵や、液晶パネルの反応速度の遅さを逆手にとった表現を、今日、目にすることは容易ではありません。
駆け足ではありますが、以上がエミュレーションという手法の枠組みになります。
私は、エミュレーションという技術のこれらメリットデメリットを踏まえても、日々台数が失われていく一方のハードウエアの保存という目的に対しては、恩恵の方が断然大きいと考えています。
■最後に
つらつらと勢いにまかせて書いてみましたが、如何でしたでしょうか?
年間を通して公私の区別なく日々エミュレーション技術に触れている私ですが、実機そのものの維持ではない仮想化という手法でハードウエアを保存するにしても、ハードウエアを構成する膨大な資料をしっかり集めて検証していかない事には仮想化でハードウエアを残すことすらままならないという、なんとも当たり前で大きな課題に戦慄する毎日を送っています。
特にアーケードゲーム機や家庭用ゲーム機のハードウエアは、汎用部品ではなく、それぞれ固有のデバイスを設計し、それらを組み合わせて作られている事も多く、調査や資料の収集は一筋縄ではいきません。
高い山ではありますが、少しずつでも調査収集を進めていきたいと思っています。
ハードウエアを修理するにしても、エミュレーションソフトウエアを書くにしても、足場固めを避けて通る訳にはいかないのですから。
今後とも皆さんのご支援ご助力をいただければ嬉しいです。
ゲーム保存協会 堀井