以下の抜粋は、アーケードパーフェクト: パックマン、モータルコンバット、その他の古典的なコインオプゲームがいかにしてリビングルームに浸透したかデビッド・L・クラドック著、ペーパーバックとKindleで入手可能フォーマット。
ダニエル・フィルナーは、こんなことが起こっていることが信じられませんでした。彼は 17 歳で、友人とジョージ ルーカスのスター ウォーズ世界の中心であるスカイウォーカー牧場をぶらぶらしていました。 「『スター・ウォーズ』が公開されたとき、私は7歳でした。これはすごかったですよ。」
はるか彼方の銀河系へのフィルナーの旅は、ラジオ シャックの TRS-80 パーソナル コンピューターに初めて触れた 11 歳のときに始まりました。彼の学校にはそれがあり、数学教師はフィルナーがクラスの他の生徒よりも優れていたため、それをいじる許可を与えました。中学校までは夏休みにプログラミングコースに登録し、Apple II の BASIC を学びました。
フィルナーは、正直に数字を好む傾向から来ました。科学者である彼の父親は、息子が噂に聞いていたアタリスや任天堂のビデオゲームをプレイして時間を無駄にすることを望まなかった。妥協案として、彼は 1981 年に発売されたテキサス・インスツルメンツのパーソナル コンピュータ TI-99/4A を購入しました。525 ドルという控えめな金額で、その PC には 3 メガヘルツのプロセッサ、256 バイトのメモリ、および記憶媒体との互換性が備わっていました。カートリッジ、フロッピーディスク、カセットテープなど。
そこで、PCのセットアップを終えた父親がこう言った。これで、彼の息子はゲームに時間を浪費する代わりに、実践的なスキルを学ぶことができました。当然のことながら、フィルナー氏が新しいコンピューターで最初にやったことはゲームの作成でした。 「7年生と8年生の頃には、次のことを書こうとしていた」ドンキーコングPET用、そしてパックマンTI994A の場合は、アクセスできる家庭用コンピュータでアーケード ゲームを再現しようとしただけです。あまり良い仕事はできませんでしたが、主にアーケード ゲームにつぎ込む 25 セントがなかったため、家庭用コンピューターでアーケード ゲームを再現するだけでプログラミングを始めました。」
パックマンフィルナーは困惑した。彼は BASIC でプログラミングしていましたが、どんなに頑張っても、ホッケーのパックの形をしたキャラクターを迷路の周りに誘導している間、4 人の幽霊はリアルタイムで自由に歩き回るのを拒否しました。まず彼が動き、次に幽霊たちが動きました。 「母が本当に気に入っていたんです」と彼は思い出した。 「母が遊んでいたのを覚えています。幽霊が勝手に動かなかったのでがっかりしました。しかし、私の母は、地面を無駄にすることなく迷路をカバーしなければならないので、それがより戦略的であると感じました。」
フィルナーさんは、家族がカリフォルニアに引っ越したとき、TI の荷物をまとめました。彼の新しい学校にはコモドール PET があり、彼はそれを再現しようと努めました。ドンキーコングわずかに良い結果が得られます。 「私のガレージのどこかに、ラベルが貼られたカセットがあります」フィルナーコングでした。ドンキーコング」と彼は言いました。
高校に入学したフィルナーは、より複雑なプログラミングへの挑戦を求めました。彼の父親は Atari ST を購入し、Filner は BASIC からアセンブリ言語に進みました。彼の目標は、ユーザーがメッセージやファイルを共有できるオンライン掲示板である独自の BBS (掲示板システム) を作成することでした。それから彼の友人のティムは彼に次のようなゲームを見せました。ボールブレザー、Lucasfilm Games (後に LucasArts に改名) によって Atari 800 PC 用に作成されたアクション ゲームです。彼らはそれを気に入り、ST に移植することにしました。フィルナーがゲームを BBS にアップロードしたところ、フィルナーが子供の頃から夢見ていた夢の仕事に就いていると主張する男から連絡が入りました。
「私は17歳で、彼は成人しており、私が近所の掲示板の運営者であることを彼は知っていました。彼は一緒にしようとしていた BBS で仕事をする必要がありましたが、彼はゲーム業界にいたことがあり、コネがあることが判明しました。彼は、私たちが Atari ST バージョンで何をしていたかを見ました。ボールブレザーそして彼は私たちにLucasfilm Gamesと連絡を取ってくれました。」
ルーカスフィルムはフィルナーとティムをスカイウォーカー牧場に招待した。グランドツアーの後、幹部らは彼らに終了契約を提示した。ボールブレザーST用。それが続いている間は楽しかったです。 「私たち二人の合計金額は2,000ドルにも満たなかったかもしれません」とフィルナーさんは語った。 「私たちは高校生でした。私たちはそれを完成させて動作させ、かなりうまくいきました。しかし、彼らはそれを出版しないことが判明した。それは何も起こらず、私たちはそれに非常に失望しました。」
1年後、フィルナー氏はカリフォルニア大学バークレー校の授業に出席していたときに、ルーカスアーツのマネージャーから電話を受けた。彼は、Atari ST バージョンのサウンド ドライバー (ハードウェアとソフトウェア間の通信を仲介するファイル) を作成するプログラマーを探していました。ザック・マックラッケンとエイリアン・マインドベンダーズは、同社独自の SCUMM (Script Creation Utility for Maniac Mansion) エンジンで動作するポイント アンド クリック アドベンチャー ゲームです。プロデューサーがフィルナー氏に連絡を取ったのは、彼が ST に詳しいプログラマーの非常に少ないリストの 1 名だったからです。こうして彼は再びジェダイになった。
「つまり、彼らは私にヨーダの名前が記載された紙の小切手を送ってきたんです。 「私は大学生で、稼いでいます…生活できる給料ではありません」とフィルナー氏は少し間を置いてから言った。「しかし、大学生が必要とするよりも多くのお金があり、コンピューターサイエンスの学位を取得し、すでに専門的に働いています。」
LucasArts は、SCUMM エンジン上でポイント アンド クリック アドベンチャーの開発を続けました。新しいゲームでは、キャラクターが画面に近づいたり画面から遠ざかったりするときに拡大縮小する機能などの新機能が導入されました。フィルナーは請負業者として残り、次のようなゲームを移植しました。織機そしてマニアックマンションアタリSTへ。エンジンの後のバージョンでは、アセンブリと C のハイブリッドで記述するなどの作業を行うことで、スキルを最高レベルに維持する必要がありました。
大学では、プレゼンテーションの学習を中心とした授業がありました。フィルナーは、ビデオゲームの作り方という好きなテーマについて話しました。同じ頃、彼はアセンブリ言語のコースに登録しました。彼の教授は、銀行向けのソフトウェア作成など、9 時から 5 時までの仕事では C のような高級言語の方がはるかに普及していたため、初日に彼らに「こんなものを使う必要はまったくないでしょう」と挨拶しましたが、彼は認めました。 、一部の学生は役に立つと思うかもしれません。
フィルナーはニヤリと笑った。 「『実際、私は今、このものを使うことでお金をもらっているんだ』という感じでした。」それは仮説ではありませんでした。それは実際に私がやっていたことでした。」
卒業後、フィルナーは Equilibrium という会社でライセンスを取得したゲームのプログラミングの仕事に就きました。彼は、ボー ジャクソン主演の野球ゲーム、アタック オブ ザ キラー トマトのキャラクターのライセンスを取得したアクション ゲーム、プレイヤーがラッパーのヴァニラ アイスの巧みな動きを披露するタイトルに取り組みました。ある日の午後、彼はある男から電話を受けて、古いアーケード ゲームのコレクションに取り組むことに興味がないか尋ねました。
フィルナーはびっくりした。彼は、この男が誰なのか、どうやって電話番号を入手したのかまったく知りませんでした。しかし、確かに、彼は興味を持っていました。
会社は Digital Eclipse で、その任務はディフェンダー、スターゲイト、および Sega Genesis で実行されるその他の古典的な Williams ゲーム。 「その男は『分かった。』と言いました。」こちらが Genesis 開発キットです。のソースコードは次のとおりですディフェンダー。作れるかどうか見てみるディフェンダー仕事。'まるでクラウンジュエルを手渡されたような気分でした。ディフェンダーのソースコードを見て、それがどのように機能するかを確認してください。私は 6809 アセンブリから 68000 アセンブリへ相互翻訳していました」とフィルナー氏は説明しました。後者は創世記によって処理されたアセンブリの方言です。 「プログラム全体を隅から隅まで理解する必要がありました。」
すべてのウィリアムズのゲームでは、画面上のすべてのピクセルをメモリ レジスタに保存するビットマップ システムが使用されていました。最終製品は十分すぎる解像度で表示されました。 2週間後、フィルナー氏はデジタル・エクリプスの担当者に電話して、ディフェンダー働く。 「素晴らしいよ」と男は言った。 「さあ、そうしてくださいスターゲイト」フィルナーはさらに早く仕事を完了しました。彼は次に進みましたロボトロン、 それからシニスター。
Digital Eclipse は、次の仕事として、Filner に同じコレクションをセガの CD ベースのコンソールであるサターンに変換してもらいたいと考えていました。この仕事は、飛び越えるのがより高いハードルであることを彼は知っていた。彼の創世記の変換は、ゲームをある言語から別の言語に翻訳することでした。サターンにはエミュレータが必要でした。もし Filner がエミュレータがどのように動作し、その作成方法を理解できれば、コレクション アーケードにある各レトロ ゲームは完璧になるでしょう。幸いなことに、DE のエンジニアの 1 人が彼に入門書をくれました。 「すべての行のすべてのバイトを手作業でマッサージする必要はありません」とフィルナー氏は言います。 「エミュレータを動作させるだけで、すぐにうまくいきます。それは正しい方法で実現します。これまでこのようなことを考えたことはなかったと思いますが、ターゲット システムがエミュレータを実行できるほど強力ではないゲームを開発する岐路に立っていたため、このゲーム用のエミュレータを構築する必要がありました。もう上から下まで知っていました。」
次の数年間で、古典的なコンソール ゲームやアーケード ゲームをエミュレートすることが Filner の専門分野になりました。彼が担当したのは、カプコン クラシック コレクションのバージョンが含まれていました。ストリートファイターII、Sega Genesis のようなゲームのアンソロジーソニック・ザ・ヘッジホッグそしてゴールデンアックス、ミッドウェイによるその他のアーケードタイトル。これらのプロジェクトやその他のプロジェクトの多くは、Digital Eclipse からの契約に基づいて彼に与えられ、その時までに彼は短縮ダイヤルに加入していました。
「彼らが手に入れたとき、ストリートファイター30周年記念コレクション、彼らはそれが私にできることだとすぐに分かりました」とフィルナー氏は語った。
✽✽✽
ダニエル・フィルナーは、出版社と協力することで物事が一定の方向に進むことを期待していました。期待していましたが、期待していませんでした。
たとえば、彼はカプコンのような資産所有者と直接話すことはめったになかったので、デジタル・エクリプスなどの請負業者に彼の代わりに話をしてくれるよう依頼した。彼のリクエストは、ストリートファイター30周年記念コレクションシンプルで、移植やエミュレーションを伴うすべてのプロジェクトと同じでした。ソース コードを入手します。ゲームのソースを持っているということは、長いロードトリップに GPS を持っているようなものです。それがなければ、彼はただ車に乗って運転しなければなりませんでした。 「通常、そんなことは起こらない」とフィルナー氏は認めた。 「これは非常に難しいことです。なぜなら、ソースコードが完全に欠落しているか、アクセスするのが難しいからです。彼らはそれが役に立つことを理解していないか気にしていないか、あるいはソースコードを自分の手から離すことに偏執的になっています。プロジェクトが終了した後にそれが起こることもあります。」
ストリートファイター30thは特殊なケースだった。プロジェクトに着手した時点で、彼はすでに次のような個人ライブラリを持っていました。SF彼は 2000 年代初頭から、さまざまなフレーバーを含むさまざまなカプコン アンソロジーに取り組んで以来、蓄積してきたコードです。ストⅡ。当時彼は雇われの仕事をしていたので、彼が作成したエミュレータは雇用主の所有物でした。それ以来、彼は自分自身でゼロから構築し、アップデートが行われるたびにそれを更新してきました。ストリートファイターに関連したプロジェクトが登場しました。
すべてのプログラマは、独自の方法でエミュレータの作成に取り組みました。どのような方法であっても、目的は変わりません。 「基本的に、エミュレータは別のハードウェアのふりをします」と、Digital Eclipse のスタジオ責任者であり、エミュレータのかなりの部分を作成したエンジニアであるマイク・ミカは言います。
すべてのエミュレーション プロジェクトの夜明けに、プログラマはエミュレートしたいプラットフォームの技術的なレイアウト、つまりプロセッサ、メモリ、オーディオ チップとビデオ チップ、およびすべてのハードウェアを操作する命令を実行するゲーム コードの言語を検討します。 。ほとんどのアーケード ゲームはアセンブリで書かれています。ゲームのメイン プロセッサである CPU の仕事は、コード内の命令を 1 つずつ読み取り、その命令が指示すること (値の加算、値の減算、値の保存、値のロード、2 つ以上の比較) を実行することです。値を指定すると、コードの他のセクションに分岐します。 「エミュレータは CPU と同じことを行います」と Filner 氏は説明しました。 「プログラム カウンターを指す番号があり、ゲーム ROM から読み取って次の命令を取得します。」
エミュレータは不可知論的です。彼らは、CPU がどのようなゲームを実行しようとしているのかを気にしません。彼らはただ指示を待って、それに基づいて動作するように CPU に指示します。 「各チップは、それがサウンド チップであろうと他のものであろうと、少しの処理を実行し、出力を生成し、入力がジョイスティック入力であるか、押されたボタンであるか、または他のものからの入力であるかどうかを確認するという同じ基本パターンに従います。チップだ」とフィルナー氏は続けた。
エミュレータは、アニメーションのフレームごとに、ゲームのネイティブ解像度でレンダリングされた画像とオーディオのストリームという 2 種類の出力を生成します。エミュレータの別の部分が、その出力をどう処理するかを決定します。通常、これは画像を拡大して画面いっぱいに表示し、オーディオを出力チャンネル (ほとんどの場合は一連のスピーカー) に送信することを意味します。 「エミュレータのコアは、どのシステム上にあるかは関係ありません。ビットマップとオーディオ サンプルのストリームを生成するだけです」とフィルナー氏は言いました。 「おそらく 18 インチ四方で、30 個のチップが搭載されているアーケード ゲームについて考えてみると、そのうちの 1 つは CPU、1 つはサウンド チップ、そして 1 つはサウンド チップと通信するための別の CPU である可能性があります。エミュレータはハードウェアが行ったことを実行するだけです。」
などの原始的なゲームポン電子的に開き、はいかいいえ、1か0のバイナリ信号を送信するゲートを備えた回路で構成されていました。そのため、コードでそれらを 1 対 1 で正確に再現することが困難になりました。技術の進歩により、エンジニアが CPU や RAM チップからゲームを作成できるようになったとき、ほとんどのコインオペ メーカーは、車輪を再発明するのではなく、それらやその他の製品を既製品から購入しました。これらのチップやボードには、作りたいものを作る方法を理解するのに役立つドキュメントが付属していました。
エミュレータの作成は依然として科学というよりは難解な技術ですが、フィルナーのような愛好家や職業プログラマーは、コインオプ メーカーの足跡をたどることでそのギャップを埋めてきました。エミュレーション プロジェクトを与えられたとき、彼らは車輪の再発明をしないように努めます。 「自動車部品について考えると、自動車を製造する企業が多数存在するようなものですが、それらの企業はすべて 3 つの部品メーカーから部品を入手しています」とフィルナー氏は説明しました。 「Z80 を搭載した自動車と 68000 プロセッサを搭載した自動車があるかもしれません。外側は好きなものにできますが、内側は誰もが使い方を知っている部品のように見えます。これらの部分をエミュレートする方法を知っていれば、すべてモジュール式です。各ハードウェア システムに固有のハードウェアの数はまだかなり少ないです。」
ある意味、ゲームのエミュレーションは簡単です。プログラマーが特定のハードウェアを理解すると、最も人気のあるアーケード マシン エミュレータである MAME などのエミュレータがそれをサポートするコードを作成できます。難しいのは、サイト運営者が変更を要求した場合です。 「何らかの方法で元の動作を変更する必要があるときはいつでも、エミュレーションのベールを突き破ることになります。物事を壊すことはできる」とフィルナー氏は語った。
全盛期に戻ってストリートファイターIIそしてティーンエイジ・ミュータント・ニンジャ・タートルズ、カプコンやコナミなどのメーカーは、現在ビデオ アーケードの代名詞となっている引用とともに FBI のロゴをフィーチャーした画面を表示しました。勝者は麻薬をやらない。 「最近、ある天才弁護士が『あの画面に映るFBI弁護士は米国政府の商標だ』と言いました」とフィルナーは回想した。まだ使用が許可されているわけではないので、削除したほうがよいでしょう。」何?いいえ、それは元のゲームの一部です。そうですね、私は法務部門に所属していないので、そのような質問をすることはできません。彼らはただ『FBIのスクリーンを取り出してください』と言うだけです。」
オリジナルのゲームを開発する場合、画面を切り取るのと同じくらい直接的な変更を加えるのは簡単です。ソース コードにアクセスできないエミュレーション プログラマーにとって、クラシック ゲームはブラック ボックスです。ゲームの ROM をクラックして逆アセンブルし、コードを精査してその画面に関連する指示を見つけることはできますが、それにはリスクが伴いました。 Filner はコードの他の部分を誤って損傷する可能性があります。代わりに、削除する必要がある画面に関連する命令から、ライン内の次の命令にジャンプする方法を見つけようとします。別のオプションは、画面をそのままにしておくが、画面をスキップする方法を実装することです。
また、パブリッシャーは、再リリースされた年を示すためにゲームの著作権画面を更新するよう要求する傾向があります。それは手術を行うというよりも、爆弾を解除するようなものです。 「著作権に関するメッセージは、ブービートラップを引き起こす可能性のある最初のものです」とフィルナー氏は語った。 「プログラマーが海賊版を防止しようとしたとき、彼らはチェックサム(ゲームが検証する一連の文字)と、チェックサムをチェックするためのチェックサムを持っていました。ブービートラップされた可能性があるものを変更するよう求められた場合、あなたは、エミュレータが何かを変更したことを認識できないようにするには、細心の注意を払う必要があります。」
フィルナーが選んだアプローチストリートファイター30thそれは、レガシーコードを変更するどころか、レガシーコードを見る必要さえなくプログラムの実行を迂回させるブレークポイント、道路標識を挿入することでした。 「ブレークポイントとは、この命令でエミュレータが停止し、この C++ 関数を呼び出すことを意味します。 C++ 関数は本質的に世界を止める魔法の時計です。それは命令と命令の間で発生し、注意していれば元のプログラムに気づかれずに変更することができます。」
フィルナーは、ストリートファイター30th、彼はカプコンから要求された他の変更を加える必要がありました。各試合の前に、ストリートファイタープレイヤーは都市や国をテーマにしたいくつかのステージから選択できます。シャイ各キャラクターの個性とその国の文化を中心に舞台を設計することでその実践を拡張しました。リュウにとっては日本の道場、ガイルにとっては背景でアイドリングしているジェット機と彼を応援するためにたむろする兵士たちを備えた米空軍の格納庫、春麗の中国市場は活気にあふれています。市民が自転車をこぎ、行ったり来たり、売り子が鶏のアクセルを踏み、家族連れが店の日陰で安全な場所から歓声を上げます。家族の後ろには、赤地に白を基調としたコカ・コーラの図像で飾られた木箱の山が置かれている。もう一つの問題のアイテムであるコーラの缶が、ガイルの格納庫の地面に置かれています。 「カプコンは、『コカ・コーラとそれについて話し合っていないので、それらを持たないほうがいいかもしれない』と判断した」とフィルナー氏は語った。 「コカ・コカ(図像)に見えないように、木箱を上書きするか消す必要がありました。
「これらのゲームにはそれぞれ 64,000 個ほどのタイルがあるので、巨大なタイルのタペストリーが存在します。マップとプレイヤー キャラクターのスプライトはこれらのタイルのリストから生成されます」と彼は言いました。 「これらの変更を行う段階になったとき、私はオーバーレイされていたクレート タイルを挿入するだけでした。タイルは実際には ROM に大きなビットマップとして保存されません。これらの変更を行うには、ROM イメージを取得してビットマップに変換するコンバータ プログラムを作成する必要がありました。その後、ビットマップを編集できるようになり、ツールはビットマップを ROM 形式に変換し直す必要がありました。」
数十年前のゲーム コンテンツの微妙な細部を変更することで、Filner はゲームを保存することで築かれたキャリアについて異なる視点を得ることができました。 「この特定のテーマは実際には保存ではありません。これにより、元のゲームの一部が破損し、法的に[再販売]が可能になります。」
アーケードパーフェクト: パックマン、モータルコンバット、その他の古典的なコインオプゲームがいかにしてリビングルームに浸透したかデビッド・L・クラドック著はペーパーバックとKindleで入手可能フォーマット。開示情報: David L. Craddock は、Arcade Perfect の著者であり、Shacknews.com のロングリード編集者です。この特集は彼の著書を推奨するものとはみなされません
David L. Craddock は、フィクション、ノンフィクション、食料品リストを執筆しています。彼は、ヤングアダルト向けのファンタジー小説「Stay Awhile and Listen」シリーズと「Gairden Chronicles」シリーズの著者です。執筆以外では、彼はマリオ、ゼルダ、ダークソウルのゲームを楽しんでおり、ダークソウル 2 がシリーズ最高である無数の理由について喜んで詳しく話してくれます。オンラインで彼をフォローしてくださいdavidlcraddock.comそして@davidlcraddock。