analogue-logo
このところレトロゲーム界でよく見られるようになった存在としてFPGAがあります。FPGAとはプログラミングにより回路構成を改変できる集積回路のことで、その利便性の高さによって以前からレトロハードの再現に使われており、商用ベースにも乗るようになってきました。その一例が、今年春にアメリカの互換機メーカーAnalogue社より発売されたSNES互換機、Super Ntです。
このSuper Nt、FPGAが使われているほか、設計を手がけたのがレトロゲーム界の著名な技術者、ケビン・ホートン氏であることなど、発売前から注目を集める存在ではありました。

一方、このSuper Ntの登場によって、ちょっとした騒動が起こりました。Super Ntを取り上げた海外の大手ゲームサイトが、その出来ばえを称賛しつつ、FPGAだからソフトウェア・エミュレーションよりも精度が高いと受け取れるような内容の記事を載せたのです。(より具体的にいうと、そのような主張をするAnalogue社側の言い分を紹介する一方で、それが本当がどうか検証しませんでした)

これに猛然と噛みついたのが、多機種エミュレータhiganの作者byuuさんでした。byuuさんはSuper Ntの出来やホートン氏の功績を高く評価しながらも、一般論として、FPGAであればソフトウェア・エミュレーションに精度において勝るということはありえないと主張したのです。

この一件について、ここからはbyuuさん自身の言葉を要約する形で補足してみましょう。

* * *

このところ、Analogue社のSuper Ntをめぐる空騒ぎが続いている。残念なことに、一部のゲームサイトは事実に基づく報道ではなく、プレスリリースの拡大版じみた記事を載せるような真似をしているのだ。そんなわけで、まずは危うい誤解を解消することから始めたい。

・FPGAを使った機器も(言葉の意味としては)エミュレータである
・精度においてFPGAがソフトウェア・エミュレーションに勝っているとする要素はない
・遅延はホストとなるOSに起因するもので、どのプログラミング言語を選ぼうが変わりはない
・Analogue社の主張は商品を売りつけるためのものであり、誇張されていても不思議ではない

Super Ntといえど完璧ではない。すでに「レンダリングレンジャーR2」が動作しない不具合が見つかっているのだ。いずれ修正されるだろうが、このバグが示しているのは、Super NtはSNESの完全なクローンなどではないということだ。


長所と短所

個人的にはSuper Ntに対して何ら反対するところはない。それどころかすばらしい製品だと思う。まずはその利点を挙げてみよう。


ソフトウェア・エミュレータに対する利点:

・OSを介さない単機能デバイスであるため遅延が少ない
・同等のエミュレータに対して電力消費が少ない
・エミュレータと違って高価なPCを必要としない
・電源を入れるだけですぐに使える


実機に対する利点:

・高価な機材を使うことなくHDMI出力を利用できる


ただし、次のような短所もある。

・190ドルという価格は、実機の実勢価格よりもはるかに高い
・クロック周波数が60hzになっている(実機は60.09hz)。Super Ntを60.09hzで動かすことは可能だが、処理落ちなどが発生する
・フィルタやステート保存、リアルタイムでの巻き戻し、ネットプレイなどの機能がない
・自作ソフトやハックROM、翻訳パッチなどを使用するには高価なフラッシュカートリッジが必要
・自作ソフトなどの動作チェックには使えない
・すでにPCがあれば、余分なスペースを取られてしまう


もちろん、higanにも短所はある。すでに挙げた4点のほか、以下の点で劣っている。

・動作がかなり遅い
・ユーザーインタフェースが複雑
・特殊チップを使ったゲームを実行するにはファームウェアが必要
・他のエミュレータにある機能がない(ネットプレイ、巻き戻しなど)


個人的な考えを言っておくと、要するに、完璧な解決策などありえないのだ。なんであれ長所と短所がある。そして価値観とか優先事項も人によって違う。だからこそ、Super Ntとhiganがそれぞれ存在しているのは好ましいことといえる。互いに争うのではなく、共存することは可能なのだ。


エミュレーションとは

なんであれ、エミュレーションの作り方は似通っている。オリジナルのハードウェアを研究し、資料を読み込み、試験を繰り返して、その成果を実装する、というのがその工程である。

最終的にできあがるものは、オリジナルのハードウェアを忠実に再現することを目的としている。その精度はプロセッサの処理能力に左右される。つまり、精度を上げれば上げるほど、処理速度のハードルも上がることになるのだ。

そうした道を取らない方法もある。Super Ntを取り上げた記事では、Analogue社側の発言を引用するかたちで、そうしたエミュレータが批判されていた。

しかし一方で、精度を重視するエミュレータだってある。higanのように。

ところが、記事に使われているのは次のような言葉なのだ。

「(ソフトウェア・エミュレータの)開発者がどれほど努力したところで、ゲームを実機と同じように走らせることはできない。どんなに優れたエミュレータでも、なにかしら違いが出てきてしまう。サウンドがわずかに乱れたり、画面に表示されたスプライトが消えるはずのところでちらついたりする」

このような発言はきわめて不当である。higanは今のところ、エミュレーションに関するバグはひとつも見つかっていない。SNESのあらゆるソフトを試して、そういう結果に至っている。サウンドが乱れたり、消えるはずのスプライトがちらついたりすることもない。

記事の中でhiganに関する問題点が指摘されているわけではない。それもそのはずで、こちらはもう10年以上も、SNESのエミュレーションに関するバグをつぶすことを続けているのだ。それも報告から数日以内に。

もちろん、higanといえども完璧ではない。だがそれはSuper Ntも同じだ。結局のところ、Super NtはSNESではない。実機をトランジスタのレベルで再現しているわけではないのだ。higanと同じように、バグが見つかれば修正しないといけない。Super Ntは実機とは違う。だがそのことが記事では触れられていないのだ。


FPGA

FPGAとはプログラムによって構成可能な電子回路のことであり、プログラミングにはVerilogやVHDLといった言語を使用する。こうしたプログラムによって電子回路を動かしており、そのこと自体はC++で汎用CPUを動作させるのと変わらない。

いずれにせよ、最終的な目標は同じである。つまりそれは、オリジナルのハードウェアがもたらす体験を再現することにある。そして、効率面を除けば、FPGAに出来てソフトウェアに出来ないことなど、何ひとつない。Super Ntに出来てhiganに出来ないこともない。

FPGAは並列処理ができるため、リソースをより効率よく使えるとはいえる。だが今のCPUは、処理の切り替えをきわめて効率よく行うことができる。ソフトウェア・エミュレータは、どんなに微小なクロック周波数であってもエミュレートできるし、実機の並列処理にしても、より多くのリソースを投入すればいいだけのことだ。

ハードウェア記述言語が魔法のように優れているのなら、Cのコードを変換して自動で取り込むツールがあるのはどういうことなのか。また今のところは、大規模なアプリケーションにも向いていないようだ。

FPGAであれソフトウェア・エミュレーションであれ、開発者はSNESの挙動に関する知識をコードという形で表現し、それによって実機を再現しようとする。もし作り手がもつ実機の知識とプログラミング能力が同等であれば、FPGAであろうがソフトウェアであろうが、実現される精度もまた同等のものになるだろう。

higanの場合、SNESハードウェアの研究にフルタイムで13年間を費やし、精度を向上させてきた。またその間に数十人もの人々の協力を得てきた。一方、Super Ntの開発にかけられた時間は一年である。

Super Ntの設計者であるケビン・ホートンのことは友人だと思っているし、情報交換や共同作業も行ったことがある。こちらの名前はSuper Ntの協力者一覧に入っているが、それも理由あってのことだ。

つまり、エミュレーションとは先人の成果の上に成り立っているものなのである。Super Ntはhiganの恩恵を受けているし、higanもまたSnes 9xなどの恩恵を受けている。そしてそれは相互的なものでもある。ケビン・ホートンの研究成果はすでにhiganに取り入れられているのだ。

エミュレータの評価とはバグの有無によって測られるものではない。それはテストや検証の結果による。つまり何万もの処理を並行して、しかも適切に行えるかどうかを見ていくということだ。またこれは、たいへんな時間がかかることでもある。

Super Ntや、その作り手を批判したいわけではない。ただし、例の記事でのAnalogue社の発言には強い不満を覚えた。つまり、あらゆるソフトウェア・エミュレータはSuper Ntに劣っていると思わせるような言い方のことだ。たとえそれが先方の意図するところでなかったとしても、記事からはそう受け取れてしまうのだ。


遅延という問題

Super Ntが従来のエミュレータに勝っていることがひとつある。それが遅延である。たとえばそれは、コントローラのボタンを押してから、その結果が画面に現れるまでの所要時間のことだ。

これもまた、魔法などではない。Super Ntは動作にOSを必要としないためなのだ。エミュレータをPCで動かすと、ビデオカードやサウンドボード、入力デバイスなどが行う数千もの処理とリソースを奪い合うことになる。このようなタイムシェアリングもまた遅延の原因となるのだ。ソフトウェア・エミュレータでは、純粋なハードウェアに比べての遅延を30-50ミリ秒の範囲に抑えるというのが望ましい水準とされている。

ハードウェアとの比較において、Cで書かれたソフトウェア・エミュレータが抱える負担は、OSを除けば何ひとつない。この現状はひとえに、ハードウェアのあらゆるリソースにソフトウェア・エミュレータが直接アクセスでき、なおかつ動作の安定したリアルタイム・カーネル環境を求める需要が存在しないことに起因する。そのため今のところは、エミュレータ開発者はこのようなリソースの共有は避けられない。

たしかに、遅延がもっとも気になる点だというなら、現時点ではFPGAデバイスを選ぶべきだろう。ソフトウェア・エミュレーションの遅延は、現在の技術においてはほとんど分からないまでになっているものの、他のアプリケーションと並行して動かせるようにしている限り、完全に取り除くことはできない。

最高のソフトウェア・エミュレータとは、ハードウェアに比べてその遅延を8ミリ秒以内に抑えられたものになるだろう。higanも実機と区別できないほどの水準になっているとは思う。ただ、そのような遅延を実現できているかどうか、こちらにはそれを実証するための機材がないのだ。そのため、この点についてはまた別の機会に譲りたい。


後の世代に向けて

Analogue社側は、レトロゲームに対する深い愛着を表明している。それは本当だと思う。

ただし、SNESのエミュレーションにおける精度追求について真剣に取り組んでいるのは、何も彼らが初めてではない。こちらは2004年に始めているのだ。

それにAnalogue社は、後の世代にSNESを継承することを目的としているわけでもない。あくまで目的は、利益を上げることにある。

Super Ntの最後の一台が壊れてしまったら、それはもはや人々の記憶にのみ残る存在となるだろう。なにしろSuper Ntは、SNESの実機がそうであるように、ブラックボックスなのだから。

生活のために稼ぎたいと思っている人を批判するつもりはない。ただし、理解していただきたいのは、あの記事は、ジャーナリズムなどではなく、内容が事実なのかどうか検証もしていない。つまり商品の宣伝にほかならないということだ。

こちらとしては、自らのライフワークが曲解されるようなことがあれば、これからも指摘していくつもりだ。この文章がそうであるように。

互換機はゲームソフトのROMカートリッジを必要とするが、カートリッジもゲーム機本体と同じで、いつかは壊れる。つまり、いつかは使い物にならなくなる。一方、ソフトウェア・エミュレーションなら、ゲーム機本体もゲームソフトも、すべてデジタルの形で保存されるのだ。

なお、公平を期すために指摘しておきたいことがある。ケビン・ホートンはSuper Ntの開発において得られた知見をいずれ公開すると発言している。まさにそれこそが保存作業なのだ。これは称賛されるべきことであり、ケビンやAnalogue社など関係者に深く感謝しなければならない。Super Ntがあったからこそ、そのような情報もまた得られたのだから。


おわりに

この文章を書いたのは、Super Ntを取り上げた記事が、こちらの業績を意図的に無視していたためだ。もう一度、念押ししておこう。

Super Ntがhiganより精度が高いということはない。

もしそうでないというなら、実証してみるがいい。

もっともこれは、higanがSuper Ntより精度が高い、ということを意味するわけでもない。本当のところは、時間だけが教えてくれるだろう。そしてそれぞれの作者の性格を考えれば、Super Ntやhiganになにか問題が見つかれば、なるべく早く解決されるよう対策が取られるはずである。またその過程において、互いに協力できればいいと思う。

これは、こちらがどうこうできる話ではないが、もしFPGAはソフトウェア・エミュレーションに比べ精度が高いという主張が今後も繰り返されるならば、本当のところが何なのか、きちんと指摘されなければならないのだ。

Super Ntはすぐれた技術者が手がけた、すぐれた製品である。ただし、精度に関する自慢話は控えるべきだ。端的にいってそれは誤りであり、何の裏付けもない。そして、本当の意味でゲームの保存活動に取り組んでいる人々を見くびっていることになるのだから。

* * *

要はFPGAなら何でもエミュレータより精度が高いという話が出回っており、そのことを批判しているのです。当たり前のようですが、FPGAもエミュレータもそれぞれ出来不出来があるわけで、長年エミュレータの開発に心血を注いできたbyuuさんとしては、このような無神経な物言いには我慢がならなかったことでしょう。

またbyuuさんには反論しなければならない事情もありました。なにしろいまや、精度最優先のSNESエミュレータを作っているのは世界でbyuuさんただ一人であり、そのbyuuさんが何も言わなければ、誤った観念が世間に定着してしまうかもしれなかったのです。

なお、このブログでもたびたび取り上げているbyuuさんですが、この10月よりアメリカから東京に移住されています。もともと20年近い日本語学習者で読み書きもかなりのレベルにあり、言葉の面では日本暮らしにも不自由ないことでしょう。もちろんゲームの保存活動も継続されるとのことで、今後ますますの活躍に期待したいところです。


FPGAs Aren't Magic - byuu.org

関連するエントリ:
精度の代償~究極のSNES保存計画と消えたカートリッジ その1 エミュレータ編
精度の代償~究極のSNES保存計画と消えたカートリッジ その2 ゲームソフト編
対立と融和〜レトロゲームの互換機メーカーとオープンソースのエミュレータ開発者をめぐる複雑な関係