snes-cart

byuuさんのSNES保存計画において、エミュレータの開発と並行して進められていたのが、ゲームソフトの保存でした。それも、一般に販売された作品であれば、地域にかかわりなく、すべて対象にするという壮大なものです。
単にゲームのデータなら、すでにネットにいくらでも転がっているのですが、そうしたものにはさまざまな問題がありました。byuuさんとしても、やはり精度を追求する以上、現状のままではいけないと判断したのです。

いったい何が問題なのか、その理由は複数あります。

まず、中身が改ざんされているケースがあります。コピープロテクトを無効化するためのパッチを当てていたり、精度の低いエミュレータで動かすために改変していたり、元になかったチート機能を追加していたりするのです。またダンプして保存する過程でデータが変わってしまうこともあります。

ただ、もっとも重視されたのは、カートリッジの保存形式そのものでした。つまり、byuuさんの作業では、カートリッジの中身がメモリマップのレイアウト込みで写し取られているのです。byuuさんは、これは不可欠な要素だと言います。

* * *

大半のエミュレータは、SNESのアドレスバス全体でゲームデータをミラーリング、またはリピートさせることで動かしている。だがそれは正確でも何でもない。カートリッジ内部の基板には何百と種類があり、メモリマップのレイアウトもそれぞれ異なっている。これが重要なのだ。

というのも、ゲームによってはそのレイアウトを違法コピー検出に使っているケースがあり、コピーと判断した場合にいろんな対策を取っているからだ。いちばん有名なのは「アースバウンド」だろう。違法コピーと判断すると敵との遭遇率を大幅に上げ、いよいよラスボスと対決ということになると、それまでのセーブデータを消去してしまうのだ。

現在のエミュレータはほぼ100%の互換性を実現しており、ごく一部のゲームソフトを除けば問題にならない。それでも精度を重視する以上、メモリマップのレイアウト込みでの保存はやらないわけにはいかない。

* * *

そして、カートリッジ保存作業のために、byuuさんは世界にたったひとつしかない、特別な装置を自宅に備えつけています。これであれば、カートリッジの中身を、メモリマップのレイアウト込みで写し取ることができるのです。

収集したものについて、ROMデータ自体は非公開ですが、データからハッシュ値を取り、そちらの方は公開しています。これを使うことで、誰でもデータの比較対照が可能になるというわけです。

現在、カートリッジの保存は、アメリカで一般販売された作品については完了しています。次に日本で発売された作品に取りかかり、こちらもすでに全タイトルを入手しています。

そんな折り、あるドイツのコレクターから協力の申し出がありました。欧州で発売された、PAL規格のカートリッジを貸しても良いという話で、byuuさんはこの好意をありがたく受けることにしました。

それは500点ものカートリッジを100点ずつ5回に分けて作業するというもので、最初の100点はぶじ保存が終わり、ドイツに戻すことができました。そして2回目の荷を送ってもらったところ、未着事故が起こったのです。

PAL規格のSNESソフトを今から入手するのは容易なことではありません。そして荷の中には、かなり貴重な作品もいくつか入っていました。現在の価値からすると全部で7500ドルから1万ドルはすると見られています。郵便に保険はかけていたのですが、仮に全額補償されたところで、実際の価値を大きく下回る額でしかありません。

さらに、今回の事態を受けて、SNESカートリッジの保存計画を休止するとの告知が出されました。

ドイツ側は残りの作品も引き続き提供するつもりだったそうですが、byuuさんの方が精神的に参ってしまったのです。また、未着分を何らかの方法で補償することが先決だという判断もありました。

実はカートリッジの収集について、byuuさんはここでも並みならぬ負担を抱えていました。日本製ゲームの収集にとりかかるにあたり、それまで集めてきた保存済のアメリカ版カートリッジをすべて処分したのですが、それだけでは足りなかったため、不足分については自らローンを組んで埋め合わせているのです。

それには確定拠出年金、いわゆる401kの貸出し制度を利用したそうですが、枠いっぱい借りたそうなので、まとまった額ではあるのでしょう。またこれにはリスクも伴います。低金利であるとはいえ、勤め先を解雇されるなどして年金の加入資格を失うと、ただちに返金を求められてしまうのです。

401k - ウィキペディア

今回の未着分について、せめて金銭的に補償できればと考えたそうなのですが、すでにローンを抱えており、その原因である日本製ゲームのコレクションにしても、保存が終わるにはまだ2、3年はかかると思われ、今すぐ売却するわけにもいきません。

またこのカートリッジの保存作業は、higanに対しても大きな影響を及ぼしていました。

より正確なデータが確保できたことで、それを活用するためにゲームファイルの扱い方を変えたのですが、これが結果的にユーザー離れを招いてしまったのです。

それはダウンロード数に顕著に表れており、最盛期はアップグレードのたびに10万DLはあったものが、1万DLほどに減ってしまいました。

もっとも、他にもユーザー離れにつながる要素はありました。

エミュレータに限らず、アプリケーションは機能を追加するたびに操作は複雑になり、動作は遅くなります。higanも例外ではなく、機能を充実させればさせるほど、重く使いにくいものになっていったことは否めません。

さらにここにきて、higanは大きな壁につきあたっています。

ここ数年というもの、プロセッサの処理能力がさしたる伸びを見せなくなっており、それが問題になっているのです。

前回の記事にあるように、かつてbyuuさんは、エミュレータ開発者への言葉として、今の動作環境を活用することを薦めていました。場合によっては、将来の進歩を考慮してもいいとまで言っていました。ところが、この6年前の言葉が、今になってbyuuさんに重くのしかかっているのです。

これについて、再びbyuuさん自身の言葉を引いてみましょう。

* * *

ここまでの道のりには明確なパターンがある。つまり、機能を充実させれば、それだけ操作は複雑になり、動作は遅くなるということだ。だが、より複雑になっていくことは避けられない。

さきごろ任天堂版プレイステーションの試作品が発掘された。BIOSが取得されたことで、このマシンのエミュレータを作る動きが出てきている。動くゲームすらないのだが、それでも実に興味深いハードウェアであり、ゲームの歴史においても重要な存在であることから、保存する価値は十分にある。だがこのデバイスは簡単なものではない。

最近になって初めて、higanではCD-ROMのサポートを検討するようになった。それはカートリッジではなく、外部接続の別デバイスという扱いになる。さらに、システムの実行中にCD-ROMの出し入れができるようにもしなければならない。だがhiganにはそのためのメカニズムはない。そしてこの機能を追加すれば、UIはますます複雑になるだろう。

ファミコンもスーファミも、いろんな外部機器を接続できるが、これがまた大変なのだ。

SNESのボイサーくんは、日本のドラマゲームのオーディオCDにアクセスして、そこにある音声トラックを再生できるというものだ。これをエミュレートしようと思ったら、SNESの入力端子をhiganのオーディオミキサーに接続しなければならない。さらに、CDから取得した音声データのflacファイルを所定のフォルダに置いておく必要がある。それ以前に、そういうゲームの音声CDのイメージを誰かに取得してもらわないといけない。



(「エミット」。ボイサーくんを使ったドラマゲームです)

他にもいろいろある。バーコードバトラー。レーザバーディ。エクササイズバイク。そういうものをどうやってエミュレートすればいいのか見当もつかない。ただ推測できることもある。それにはたくさんのコードを新規で書かないといけない。新たなUIも必要になる。設定ファイルもたくさん必要になる。そういうことだ。
 

SNES Life Cycle
(エクササイズバイク。商品名はLife Cycle。SNESに接続できるエアロバイクで、2種類のゲームソフトに対応しています。うち1つはアニメの「スピードレーサー」、つまり日本の「マッハGoGoGo」をゲームにしたものでした)retrocollect.com

サテラビューのエミュレーションも改善の余地がある。BS-Xのゲームを動かそうと思うなら、今はもうない衛星放送ネットワークをエミュレートしないといけない。サテラビューの書き込み可能なフラッシュカートリッジも必要だし、サテラビューのプレイ回数のカウンタもリセットしないといけなくなる。さもなければ、プレイ回数が所定の値を超えた場合、ストックBIOSが自動的にプレイヤーのデータを消去してしまうのだ。そうなったら面白くないだろう。

NTTモデムのこともある。JRAのPAT、SPATを動かすとなると、ダイアルアップモデムとリモートのISPをエミュレートしないといけない。これはリアルタイムで馬券が買えるというものなのだが、もはやそれが何かの役に立つのかどうかすらわからない。ただ、エミュレートされたコントローラで操作するダイヤルアップモデムをエミュレートするというのは、そう簡単にできることではないだろう。

わたしの希望は、ローエンドのARMハードウェアでもbsnesが走るようになるほどにCPUのパフォーマンスが向上してほしいというものだったが、いまだ実現には至っていない。ARMはそれでもパフォーマンスをごくゆっくりではあるが改善させているものの、これがx86となるとさほど変わっていない。

bsnesのコア部分はもはや、精度を保ったままでの改善が困難になってしまっている。いずれプロセッサの処理能力が向上すればコア部分をリタイアさせればいいと思っていたが、今のところそうはなっていない。だが現状のままでは、もはやさしたる向上は見込めない。これ以上何かするとなると、速度を犠牲にするしかない。

最悪なのは、さらなる複雑化と速度低下を伴いつつ、ハードウェアの機能を充実させ、サポート機種を増やしたところで、もはや誰も気にかけないだろうということだ。

エミュレーションには負担の増大と見返りの低下を伴う。そして身をもって体験したことだが、これは線形というより指数関数的に起こる。

正直いって、今後の見通しは暗い。だがそれが現実なのだ。

わたしの目標が、なるべく多くの人に愛用されるエミュレータを作ることなら、もはやbsnesのバージョン073で開発を終えておくべきだった。「高精度だがそれでも実用に耐える」エミュレータを作ることだったら、もうこの瞬間で開発を止めるべきだろう。

だがそれで終わりというのは悲しい。まだやれることはいっぱいあるのだ。そしてそれはこれからも変わらない。何かが人気がないからといって、保存しなくてもいいということにはならない。ボイサーくんにわたしもあなたも興味がないかもしれない。だが実際に日本人から要望の声が届いている。それに、自分でもエミュレートしたいと思っている。それはすでにあげた他の機器についても同じだ。

higanの今後の見通しは暗い。人気は落ちる一方であり、動作は重くなり、使い勝手は悪くなる。進歩の名の元に、そうなってしまうのだ。

どうしてこんな道を選んだのか、世間に分かってもらえるとは思っていない。引き続きhiganをサポートしてもらえるとも思っていない。ただ、わたしの究極の目的が保存作業であることは分かってもらえればと思う。いちばん人気のあるエミュレータを作ることではないのだ。

* * *

険しい道だが、こうするより仕方がなかった。人気よりも精度を求めたのだから。そう言っているのです。

現存しないネットワークを使うゲームに対応したところで、いったいそれが何の役に立つのか。蛇口をひねっても、もはや何もでてこない。そんな水道をあえて維持するようなものですが、それでも精度を追求する以上、実機で出来ることであれば、考慮もせずに切り捨てるわけにもいきません。

ただそれをやろうにも、大きな障害がたちふさがっているのです。

折しも、ムーアの法則がいよいよ終わりそうとの憶測が出ています。これまで何度も言われてきたことですが、今度ばかりはかなり深刻なようです。

これまでプロセッサの処理速度が伸びてきた背景として、半導体技術の進歩がありました。それが停滞してしまえば、いま遅いプログラムはずっと遅いままです。対策としてはソフトウェアで何とかするしかないわけですが、higanの場合はもはや限界に達しています。

どうやらSNESの保存計画は、かつてないほどの困難に直面していると言えそうです。


追記

2月23日に荷が見つかったとの発表がありました。呼びかけの結果、郵便関係者の協力を得ることができ、それが功を奏した形です。どうも途中で住所ラベルが荷から剥がれてしまい、それがトラブルの原因になったようです。

こういう結果になったからこそ言えることではありますが、今回のトラブルも悪いことばかりではありませんでした。この件が広く報じられたことで、byuuさんの長年にわたる取り組みが改めて注目されたからです。そして保存計画の続行が宣言されました。どうやらbyuuさんの旅はまだまだ終わりそうにありません。

(おわり) その1


snes-collection
(日本語にも堪能なbyuuさんの所有するゲームコレクションです)byuu_san