2012-04-21

プリンスオブペルシャのソースコードを救ったギーク達

The Geeks Who Saved Prince of Persia's Source Code From Digital Death | Game|Life | Wired.com

プリンスオブペルシャのオリジナルのソースコードが発掘され、GitHubで公開されたことは記憶に新しい。しかし、その裏話はしっているだろうか。昔の電磁的記録のサルベージがいかに難しい作業であるか、認識しているだろうか。wired.comですばらしい記事がでたので、翻訳する。

WiredのGus Mastrapaはロサンゼルスで、ゲーム史に残る重要な財産を発掘する作業に立ち会った。

Jordan Mechnerは何でも保存してきた。

彼は、兄弟が近所で飛び跳ねる様を撮影した1985年に撮影したビデオテープを保存している。この動画から、彼はApple IIのPrince of Persiaのアニメーションを作成したのだ。彼はプリンスオブペルシャの制作日誌を保存している。プリンスオブペルシャ制作の上でのあらゆる出来事が記された貴重な資料だ。

2002年に、Prince of Persia: The Sands of Timeの仕事をしていたとき、この新作ゲームのプログラマーは、プレステ2用の移植に、イースターエッグとして、オリジナルのゲームを付け加えたいと考えた。そこで、Mechnerに、まだソースコードを持っているかどうかたずねた。

「ノープロブレム」とMechnerは考えた。「私はなんだって保存しているんだ」と。

Apple IIの完成されたゲームは、インターネット上で容易に手に入る。しかしソースコードは、Mechnerが自ら、自分の使っていたApple IIのために書き上げたオリジナルのプログラムは、どこにも見当たらなかった。Mechnerはできる限り探し、ソースコードを持っていそうな人物に知る限りたずねたが、ついに発見できなかった。

十年後、Mechnerの父親は、押入れの奥に埋もれていた昔の私物が入っている箱を送ってきた。そこには、まだ未開封のヨーロッパ版プリンスオブペルシャの間に挟まって、ホコリまみれになっているフロッピーディスクがあった。ラベルには、「プリンスオブペルシャ ソースコード (Apple) ©1989 Jordan Mechner (オリジナル)」と書かれていた。

ディスクは見つかった。しかし、データはどうするのか。

こういうとき、Xファイルのエージェント、Fox Mulderが技術的な問題を抱えていたならば、ツテのギーク達、すなわちThe Lone Gunmenを呼ぶものだ。Mechnerも、ツテのギーグ部隊に連絡した。4月のある月曜日の朝、彼らをロサンゼルスの自宅に呼びつけた。

Jordan Mechnerの邸宅は、ロサンゼルス通りのハリウッドヒルの下にある。この場所にしては非常によく手入れの行き届いている邸宅である。

白い小型トラックが停車し、ビンテージコンピューターコレクターのTony Diazがやってきた。彼はオーシャンサイドから、はるばる80マイルも車を走らせて、Mechnerの失われた文化財産を発掘するためにやってきたのだ。彼はトラックから何箱もの機材を積み下ろした。大昔のApple IIコンピューター、ドライブ、ケーブルの類である。彼は今日この日のために必要となるかもしれない機材をすべて持ってやってきたのである。もし、そのディスクに情報が含まれているならば、吸い出すのだ。

機材のいくつかは、錆び付いていたり塗がはげていたりしていた。しかし、Diazには本物のスキルがある。この男は、小一時間でApple IIのフロッピーディスクドライブを分解、再結合できる男である。機材はいくつかは、みすぼらしい見た目をしている。しかしこの男の本物のスキルによって、この長年、動作する状態に保たれてきたのだ。

The Internet Archiveの活動家、Jason Scottも、この日のために、はるばるニューヨーク市からKryoFluxディスクリーダーを携えて飛んできた。これはソフトウェア保存家御用達の、大昔の磁気記録データを読み込むための機材である。

昔のゲームデザイナーは、自分が文化財産の上に座っているとは思いもしないものだ。Scottの目的は、かつての先進的な著作物を、消失から救うことである。

「彼らにしてみれば、単なる古物に過ぎない」とScottは言う。「その価値に気づかせてやるのだ」。スタンフォード大学や、アメリカ議会図書館、The Strong National Museum of Playのような団体には、ソフトウェアを保存するための部門がある。Scottが今日、ここにやってきたのは、昔のゲームや製品を、ホコリまみれの電子墓場から救うための長年の活動の一環である。

MechnerとScottとDiazは、トラックからMechnerの家に機材を運び込んだ。裏庭には、こじんまりとした来客用の小屋がある。ハリウッドライターなら誰でもそうするように(Mechnerはゲームのみならず、グラフィックノベルや台本の仕事にも関わっている)、彼はゲストハウスを自宅の事務所に改装しているのだ。小屋の中には、来客用の皮のソファーがあり、書架には台本や獲得した賞が山積みになっている。

Mechnerの作業場は、その一角にある。整理されたデスクに、アップルのモニターが鎮座している。近くの壁に、誰かが標語を貼りつけたらしい。「コンピューターの前に座り、次に何をすべきか考えることなかれ」と。

Diazは木製のテーブルの上に機材を設置しはじめた。彼はベージュ色のApple IIコンピューターのプラスチックのケースや、ディスクドライブやモニターを接続した。その大昔の機器が組み立てられていく様は壮観であった。

ギーク達の目的は、単にこのMechnerの昔のディスクが動作するかどうかを確かめるだけではない。今日はまさに、昔のコードを電子墓場から発掘して、インターネット上に公開せんとする日なのだ。だからこそ、彼らは単にApple IIコンピューターのみならず、Diazの機材が必要なのだ。DiazはコンピューターをEthernetケーブルと接続した。DiazはモダンなDellのノートPCを使って、今日発掘されるであろう文化財産を吸い出すつもりなのだ。

まず最大の目的であるプリンスオブペルシャのソースコードディスクに挑戦する前に、すこし軽いものから始めることにした。箱の中には、Mechnerが、試したいフロッピーディスクは山とあったのだ。ディスクのラベルによれば、この何十年、日の目を見てこなかった、初期のMechnerの作品が入っているはずだからだ。

まずDiazは機材が正しく動作するかどうか確かめるために、それほど重要ではないディスクから始めた。彼はLocksmith 6.0というツールを実行した。この大昔のツールは、コピープロテクトされたディスクを複製するためのツールである。最初に試した数枚のフロッピーは、完全な状態でなかった。スキャン結果はモニター上にASCII文字列で表示されていった。ドットは正しくスキャンされたセクター、数字は読み込むのに時間のかかったセクター、Dは時間をかけても読み込めないデータである。Dがいくつかあった。結果はあまり喜ばしくない。

Mechnerはディスクを段ボール箱から取り出し始めた。段ボール箱はフロッピーの重さを支えるため、透明な荷造り用のテープで補強されていた。積み重なったディスクは箱を半インチほど歪めていた。「最初発見したとき、ディスクにはホコリが積もっていたんだ」とMechnerは言った。

Diazはホコリについては心配していなかった。「おれはエラーだらけのディスクを取り扱ったこともある」と彼は言った。「コケが生えていたり汚れていたりするんでね」と。彼はフロッピーディスクを洗浄する方法について語り始めた。なんと、ケースから取り出して流しに持って行き、食器用洗剤で洗うのだという。この作業はソフトウェア保存家のJason Scottを震え上がらせた。「好きにすればいいさ」と彼は言った。幸運にも、そのような極端な作業は必要なかった。

MechnerのApple DOS 3.3は正しく複製できた。「今まで読み込まれたものがないものに取り掛かろう」とMechnerは 言った。「Quadris」からやろう。

このゲームの名前は、ある有名な古典的ゲームの別宇宙版のようである。実際の所、ほぼ同じである。Mechnerが最初のゲームであるカラテカを作ってイェール大学を卒業してから彼はBroderbundというゲームパブリッシャーで働いた。会社に入って数ヶ月して、製品候補が届いた。そのゲームは、テトリスという名前であった。

「当時、社内でこのディスクが大はやりしてね」とMechnerは言った。「プログラマーは全員、このゲームにハマッてしまったのだよ。仕事を放り出してテトリスのハイスコア合戦をやったもんさ」

それにも関わらず、Broderbundはテトリスを却下した。「まあ」と上司は考えた、「うちんとこのオタクなプログラマーはこのゲームにハマっているが、しかし一般大衆にはウケんだろう」と。

「ディスクは送り返し、テトリスのコピーは全部破棄しなきゃならなかったんだ」とMechnerは言った。「持ち続けているのはよくないことだったんだけどね」と。しかし、会社の社員は全員、テトリスにはまってしまったので、プログラマーのRoland Gustafssonは、一日かけてゲームをリバースエンジニアリングし、非正規のクローンをQuadrisと名付けたのだ。

Apple IIのディスクドライブが動き始めた。ソフトウェアはDiazのドライブにコピーされた。「動かしてみたい?」と彼はたずねた。皆、首を縦に振った。

Mechnerはキーボードに向かい、初心者レベルを選んで開始した。ブロックが画面を落ち始めた。しかし彼は、どのキーで回転、降下させるのか覚えていなかった。mechnerは一つづつキーを押して、辛抱強くキーを探し始めた。彼があるキーを叩いたとき、テトリスが画面から消え失せて、退屈そうなユーティリティ画面が現れた。

何が起こったのか最初に把握したのは、Diazであった。「ボスキーだな」と彼は言った。「遊んでないで仕事をしているように見せかけるのさ」と。Gustafsonは、他の多くのコンピューターゲームプログラマーと同じように、Quadrisで遊んでいる最中に上司がやってきたときのため、仕事をしているようにみせかけるパニックボタンを実装していたのだ。

「傑作だ」とMechnerは言った。

Quadrisのデータを確保できたTony Diazは、ディスクをJason Scottに渡した。単に昔の失われたゲームをプレイできたというだけで満足する者もいるだろう。しかし、Scottは将来の世代のことを考えているのだ。完全なる磁気読み取りによって初めて、すべてが正しく読み込まれて保存されたことを確証できるのだ。

「インディアナジョーンズみたいなものさ」とMechnerは言った。「墓に入って、彫像をつかんで、逃げ出すのさ。黄金の彫像を手に入れたんだ」

MechnerはさらにDiazにディスクを渡し、黄金の彫像は発掘され続けた。この当時のコンピューター少年なら誰でもするように、Mechnerは古いフロッピーに、新しいデータを書きこんでいた。「どれかに、Time ZoneというRoberta Williamのアドベンチャーゲームが入っていたんだ」とmechener。「今では、自分の初期の作品が入っているわけだ」

「これは貴重だぞ」と彼は言った。「これは別のゲームで、プリンスオブペルシャと共に、とっくの昔に失われたと思っていたゲームだ」と。ソースコードのみならず、完全なゲームが入っていた。「私はこのゲームのプログラミングに一年かけたんだ」と彼は言った。「しかし、存在していたという証拠はなかった」

Diazはディスクをタイムマシンに差し込んだ。そしてMechnerに、どのような名前をつけるべきかたずねた。

「アステロイド」と彼は答えた。

若いプログラマーとして、Jordan Mechnerは、何か商業的価値のあるものをつくろうとしていた。彼はApple IIでよく売れたゲームをみて、アーケードゲームのスペースインベーダーのクローンは、よくできていると考えた。そこで、彼はAtariのアステロイドを試みた。しかし、彼のクローンが完成する前に、ゲームパブリッシャーはパクリを糾弾するようになったので、開発は止まってしまった。

アステロイドの復旧はQuadrisのようにスムーズにはいかなかった。Diazがゲームをロードしてみると、Mechnerはグラフィックが正しく描画されていないことに気がついた。小惑星はバグっているような挙動を示した。オリジナルのコードのエラーなのだろうか。Mechenerの大学のApple IIとDiazの機材は別の設定を使っているのか。ディスクはデータを正しく保存できていないのか。Mechnerのアステロイドは救われたが、修復作業が必要だ。

最後に、最大の黄金の彫像を発掘する時がきた。「プリンスオブペルシャ ソースコード (Apple) ©1989 Jordan Mechner (オリジナル)」とラベル書きされた昔のディスクだ。Diazはディスクを差し込んだ。「きっとうまくいくさ」とMechnerは言った。

Diazのコンピューターが嬉しい結果を出した。エラーなし。「コピーができたぞ」と彼は言った。「さて、ディスクの中に何が入っているかみてみるか」

巨大なカレッジリングをつけたDiazの指が、昔のApple IIのベージュ色のキーの上で踊った。ディスク上のディレクトリを読み進めていき、"Source Images and levels"を見つけた。

「よし」とMechenerは、ファイル名やタイムスタンプを見ながら言った。「これだ。これは正しい。これこそがファイルの名前だ」

「探しているものは、99パーセント、これだ」と彼は言った。「もしこれが読み込めなかったとしたら、もうおしまいだった。永久に失われるところだったのだ」

ソースコードは救われた。さてどうする。Mechnerはどうすべきかを知っている。世界に公開するのだ

「これで、プリンスオブペルシャのソースコードに興味があるものは、誰でも読むことができるのだ」と彼は言った。「検証し、改造できる」

「公開はいつからにしますか」とJason Scottが言った。

「今夜だ」と躊躇なくMechnerは言った。

しかし、まだ一日は終わっていない。コピーし、スキャンすべき財宝、昔のディスクはまだまだたくさんある。Mechnerのボランティアチームのエキスパート達はこの機会を有効に活用する予定である。まだ仕事はたくさんのこっている。Mechnerの妻子は、母屋で彼を待っていた。書かれるべき台本もある。新しいゲームも作らなければならない。しかし今、Mechnerはそんなことに関わるべき意欲を見いだせない。

「これ以上に楽しいことは何もない」と彼は、別の昔の箱を開けながら言った。

これが、ソフトウェアの発掘作業である。ソフトウェアを保存するのはなぜ難しいのか。それは、磁気を利用した記録装置の寿命は、どんなに理想の状態でも、せいぜい数十年だからだ。数十年前の記録装置を読み込むには、とんでもなく面倒な作業が必要になる。

そして、記録媒体が情報を保持できる期間は、新しい記録媒体ほど短くなっている。今のHDDは、動作に高度な精度を要求するので、可動部がすこしズレただけで動作しなくなる。HDDを分解して修理できる技術者はそういない。HDDはまだましな方だ。単に分解してディスクの磁気情報を高い精度で読みこめば復元できる望みもある。フラッシュメモリはさらに難しい。フラッシュメモリの保持期間は、FDやHDDより短い。フラッシュメモリは、単にディスクの磁気情報を読み込むというわけにも行かない。

ソフトウェアは保存されるべき重要な文化財産である。ソフトウェアは将来の世代のために、完璧な状態で保存し、歴史家の研究資料となるべきである。現代の著作権法とDRMは、ソフトウェア保存の大いなる脅威である。もし、これを読んでなお、DRMは必要だと考えるだろうか。電磁的記録を固定する媒体の寿命は、せいぜい数十年。データを保存するためには、常に新しい媒体に複製していかなければならないのだ。だから、ひとつの媒体に固定されて複製できないデータは、著作権による保護期間が切れるはるか前に、読み出せなくなってしまう。

事実、多くのソフトウェアはすでに失われている。皮肉なことに、現代において、ソフトウェアの保存活動をしているのは、海賊である。

本の虫: なぜ歴史には海賊が必要なのか

3 comments:

shiro said...

本題とは関係ないところですが、"Jordan Mechner’s house is nestled at the base of the Hollywood hills on one of those Los Angeles streets so verdant and well-maintained that you’d never know that the smoggy grime of Hollywood Boulevard was mere blocks away." のくだりは、「Jordan Mechnerの家は、ハリウッドの丘の麓にある入り組んだ通りのひとつにある。ロサンゼルスのこの界隈の通りの例にもれず、スモッグで薄汚れたハリウッド大通りまでほんの数ブロックであることを感じさせないほど青々として手入れが行き届いている」のような感じかと。(冗長になるので刈り込んだのかもしれませんが、Hollywood hillsとLos Angeles streetsはどちらも固有名詞ではないので)

Anonymous said...

記事のタイトルミスってませんか?(ソースオード?)

江添亮 said...

修正。