今回のテーマは「ローディング(ロード)」だ。現在の家庭用ビデオゲーム機では、ゲーム機の起動時、ゲーム開始前、さらにはゲーム中と、もはや据置型・携帯型を問わず、ローディングがつきものになっているのは言うまでもない。
これに対して、「ファミリーコンピュータ」(以下、ファミコン)のカセットがロードなしですぐに遊べたような手軽さが失われたことを嘆く声も、しばしば聞かれる。「プレイステーション」(以下、PS)版の『リッジレーサー』ではミニゲームが遊べたりと、ローディングにも趣向が凝らされることはあるが、待ち時間には変わりない。
ビデオゲームにおいて、プログラムやデータのロード中であることを示す代表的な“決まり文句”といえば、先の『リッジレーサー』でも使われた「NOW LOADING」だろう。
近年ではゲーム・アニメ関連の楽曲や、小説などの題名にも使われているこの言葉を、1980年代の日本の子どもたちに広く知らしめたのは、1986年2月に登場した「ファミリーコンピュータ ディスクシステム」(以下、ディスクシステム)だ。電源投入後の初期画面で「ディスクカード」(ディスク媒体)を挿入した際の、「NOW LOADING…」の表示をかたずを飲んで見守る少年少女の姿は、当時のありふれた光景だった。
そもそも、パソコンではファミコンの誕生前からすでにつきものになっていたローディングは、なぜ行われるのか。あらためて基本からおさらいすると、コンピューターのCPUに関わる記憶装置は、主記憶装置(メインメモリー)と補助記憶装置(マスストレージなどとも称されるが、本稿ではストレージと呼ぶ)に大別される。
ストレージはおおむね、容量あたりのコストの低さなど、主記憶にはない利点を持つ。今回取り上げるローディングはおもに、ストレージから主記憶への記憶内容のコピーに相当するが、ロード先がCPUとは別のLSI(大規模集積回路)などに付随する記憶装置という場合もある。
さて、大多数のCPUに共通する基本原則として、プログラムは主記憶に置かなければ実行できない。演算処理などの多くも、CPU内部と主記憶までの範囲が対象となる。主記憶に動作させたいプログラムや処理したいデータがない場合の解決方法のひとつが、ストレージからのローディングだ。
逆に言えば、所定の動作に必要なプログラムやデータがあらかじめ主記憶に全部収まっていれば、ストレージはなくてもいいことになる。当初のファミコンとカセットの組み合わせは、これに当てはまっていたわけだ。
ではどうして、途中からディスクシステムというストレージを導入することになったのか、ファミコンブームより後に物心ついた世代には疑問があるかもしれない。一方ファミコンブーム直撃世代の中には、「カセットのソフトなのに、なぜか待ち時間が多いように感じる」というケースもあった経験をご記憶の方も少なくないだろう。これはどういうことなのか?
こういった疑問を解くには、まずファミコン本体内部の仕組みを知るのが早いだろう。またその後の家庭用ゲーム機でのローディングの事情を追うと、なぜ今のゲーム機でローディングがつきものとなっているかもわかってくる。それでは始めよう。
※本稿では、特に注釈のない限り、「カセット」はカセットテープではなく、家庭用ゲーム機などのカートリッジを指す。また半導体メモリー単体の容量は、正確を期すならビット単位で示すべきだが、他との比較を容易にするためにバイト単位で記述している。
文/タイニーP
ファミコンのカセットは“ちょっとヘン”だった!?
ここで、ファミコン本体と初期のカセットの模式図をご覧いただこう(サウンド機能やコントローラーは省略している)。本体内には主要なLSIとして、CPUと映像LSIの「PPU」があり、それぞれにRAM(ランダム・アクセス・メモリー)が接続されている。
CPU側のRAMは、おもにプログラムの動作上で変動するデータなどを書き込むワークエリア(ワークRAM)であり、PPU側のRAMは、画面上のキャラクターや文字・背景の配置情報を書き込むビデオRAM(VRAM)になっている。
そしてカセット側には、CPUに接続されるプログラムROM(読み出し専用メモリー)と、PPUに接続されるキャラクターROMが備えられている。プログラムROMの内容は、CPUが実行するプログラムやデータで、ワークRAMと同じくCPUの主記憶にあたる(図の斜線部分が、CPUとその主記憶を示す)。キャラクターROMには、画面上に表示されるキャラクターや背景、文字の形状データが格納されている。
このカセットの仕様は、実は当時の家庭用ゲーム機では少々特異なものだった。ファミコンの開発陣を強く刺激したもののひとつに、米コレコ社の家庭用ゲーム機「コレコビジョン」が挙げられる。看板タイトルとして任天堂の『ドンキーコング』が移植され、試作機が1982年の春ごろ任天堂で披露されたのだ。
この機種は、米テキサス・インスツルメンツ(以下、TI)の映像LSI「VDP」を採用していたが、これはCPUから、キャラクターデータと配置情報の両方を、VDPに接続されたVRAMに書き込む仕組みだった。
このような構成であれば、カセットに入れるROMはCPU側につながるものだけ、最低1個でいいことになり、製造コストも抑えられる。ファミコンは本体のコストダウンに腐心したことがよく知られているが、どうしてカセットは、ROMが2個必要な仕様になったのだろうか。
大きな理由としては、ファミコンの仕様を検討する際に、『ドンキーコング』のアーケード版の基板をモデルにしたことが考えられる。
これも含め当時の業務用のビデオゲーム基板においては、プログラムとキャラクターの形状は個別にROMに入れ、プログラムのROMはCPUに、キャラクターデータのROMは映像回路に接続するのが定番の手法だった。さらに言えば、CPUを使わず論理回路のみでルールなどを構成する、より古い世代の手法を用いたビデオゲームでも、キャラクターの形状はROMに格納することがあった【※】。
※たとえば、セガのアーケード用レースゲーム『モナコGP』が該当する。
一方TIのVDPは、もともと同社の家庭用パソコン向けに開発されたもので、キャラクターをユーザー側でも変更できる機能の優先度が高かったと考えられる。反面RAMが多く必要になるため、任天堂はそのような柔軟性はひとまず不要と割り切ったわけだ【※】。
※これが、「ファミリーベーシック」でキャラクターを自由に変更できないという制約につながっている。
なお、カセットの製造コストを最優先にするなら、CPUとPPUが同じROMを分け合うようにして使うという手法もありえなくはない。ただこの場合、PPUが映像を表示している時間の大部分でROMを利用することが避けられず、設計を工夫しないと、CPU側に無駄な待ち時間が多く生じてしまう。そのため、採用するメリットに乏しいと判断されたのだろう。
キャラクターパターン不足が課題だった『ゼビウス』『スーパーマリオ』
さて当初のファミコン用カセットでは、キャラクターROMの容量は8キロバイト(KB)だった。これは、8×8ドット4色(うち1色は透明に相当する特別な色)のパターン512種類分、16×16ドットなら128種類分に相当する。文字や背景もこの範囲でまかなう必要があるものの、1981〜82年ごろのアーケードのビデオゲームと比較すれば、おおむね必要十分だったと言える。
しかしその後のゲームセンターには、多彩なキャラクターや背景によって、作品世界の奥深さと広大さを表現しようとするゲームが増えてきた。その筆頭が、1983年初めに登場した『ゼビウス』だ。
アーケード版の登場からほぼ2年後の1984年末に発売されたファミコン版は、累計100万本を超える大ヒットを記録したとはいえ、キャラクターROMはまったく足りていなかった。キャラクターのアニメパターンが削減されたうえ、名物だったナスカの地上絵もなし。加えてタイトル画面の不格好さに、アーケードとの“格の違い”を実感した子どもたちも少なくなかったはずだ。
一方1985年秋に登場した『スーパーマリオブラザーズ』(以下、スーパーマリオ)の場合は、ファミコン版がオリジナルだけにデータの最適化が徹底されており、一見不格好なところは見当たらない。それでもキャラクターROMが不足しかねなかったことに変わりはなく、たとえば「地面に生えている草と雲のドット絵は、色を変えているだけで同じパターンを使っている」というトリビアがたびたび語られている。
このような限界を乗り越えるために使われた手法のひとつが「バンク切り替え」だ。キャラクターROMに16KBや32KBといった大容量のものを使用すると、データの位置を指定する「アドレス線」の上位のケタの部分はPPUに直接接続するところがなく、余りとなる。そこでこれらを操作できるよう、追加の論理回路やカスタムLSIをカセットの基板に組み込み、ROMの内容をプログラムによって切り替えながら使う仕組みだ。
バンク切り替えという手法そのものは、パソコンではありふれたものだったが、ファミコンの場合、1985年後半以降のジャレコやコナミなどのサードパーティーのソフトから広まった。両社とも自前でファミコン用カセットを生産できる契約だったために、これが可能になったのは間違いない。
だが任天堂は、当初このようなカセットは生産していなかった。ディスクシステムの投入によって、こうした制約を一気に解消することを目指していたからに他ならない。ではここからは、冒頭でも触れたこのディスクシステムについて、詳しく見てみよう。
プレイヤーも任天堂も“夢が広がった”ディスクシステム
ファミコンのディスクシステムはカセットの代わりに、セット品のディスクドライブのインターフェースを兼ねる「RAMアダプタ」を本体に差し込んで利用する。このような、カセットのコネクターを介しての機能拡張を見込んだ設計自体は、当時の低価格パソコンや家庭用ゲーム機に広く見られるものだ。とはいえ、家庭用ゲーム機で磁気ディスクのストレージをゲームソフトの供給用に使うのは、日本はもちろん海外を含めても極めて珍しかった。
その特長として発売前後にアピールされた内容を要約すると、以下の3点にまとめられる。
・プログラムやキャラクターのデータ量を拡大できる。
・ディスクにプレイデータを(数KB程度)記録できる。
・ソフトの価格が3000円程度に下がる。販売店に設置される「ディスクライター」では、500円前後という格安の料金でディスクを新しいソフトに書き換えできる。
ディスクシステムの開発に乗り出す前後の任天堂の内部では、4000円以上するカセット版ソフトが今後も売れ続けるのか、懸念の声があったという【※】。「ゲーム&ウオッチ」を中心とした電子ゲームブームでも、メーカー各社は6000円前後の高価なおもちゃを子どもに次々に売りつけていると、“良識ある”向きから批判されていた。しかもそのブームが国内では1982年末に一気に終息し、各社とも少なからず痛手を負った経緯を考えれば、任天堂が不安を抱くのも無理からぬところだ。
そこで、製造コストの低い磁気ディスクの採用でソフトの価格を下げ、カジュアルなソフトから従来のカセットに収まらない大作まで提供を可能にする。しかもディスクを新作に書き換えられるので、飽きたソフトを何本も貯め込むこともない。このように一石二鳥のさらに上を狙ったのが、ディスクシステムだったわけだ。
(開発者の)腕が試された!? ディスクシステム
さて、ディスクシステムのRAMアダプタではその名のとおり、通常のカセットのプログラムROMとキャラクターROMが、RAMに置き換えられている。容量はプログラムRAMが32KB、キャラクターRAMが8KBで、初代『スーパーマリオ』などと同等。これに対しディスク1枚の容量は両面で約110KBあり、「カセット3本分」などと説明されることもあった。
カセットと同じ容量とはいえ、ROMとRAMとでは使い勝手が異なる。特にプログラムRAMは、ワークRAMなどとしても使えるのが大きい。本体側の2KBでは、ウォーシミュレーションゲームなどにはかなり無理があったようだ。それでも少なからぬ開発者にとって、ディスクシステムは扱い方が難しかっただろう。製品価格をファミコン本体と同程度(1万5000円)に抑えるためやむを得なかったとはいえ、一般的なディスク媒体とは異なる、やや簡易的な仕組みだったからだ。
ディスクシステムの媒体の記録領域は、目には見えないが渦巻き状の1本の帯になっている。アクセスは必ず領域全体の先頭から連続的に行われ、1回のアクセスに5秒から10秒弱かかる【※】。1回のアクセスで複数のファイルをロードすることも可能だが、ディスク上の後ろに記録されているファイルを読み込んでからその前のファイルをロードするようなことはできず、アクセスを2回に分けなければならない。
※なお本題からは外れるが、データを書き込む場合は、正常に完了したことを確認するため、アクセスはセーブ(記録)とベリファイ(検証)の最低2回行われる。
もし開発者が、アクセス1回でRAMアダプタにロードできる容量のみでソフトを完成させるなら、これでもさして問題はない。しかしそれ以上の量を扱う場合、プログラムやキャラクターのデータをそれぞれ、最初にロードするものと追加分とで別のファイルにする必要がある。そしてこれらをディスクに記録する順番やロードの手順をよく考えておかないと、実際のゲーム上では1回のアクセスで済むところを、2回も3回も繰り返す羽目になりかねないわけだ。
もちろん、ローディングの回数をできるだけ少なくするには、ファイルの数を極力減らしておくことが望ましいだろう。ゲーム中でローディング不要な範囲をどれだけ広く作りどう区切るかという、ゲームデザインの段階における検討も重要になる。また『メトロイド』がわかりやすい例だが、ローディングが入る、つまり“区切り”をまたぐ場所を、プレイヤーにもはっきり認識できるようにするといった工夫も有効だ。
言い方を変えると、ディスクシステムの容量を存分に使い、しかもローディングの少ないソフトを開発するには、職人芸的な、ある意味ではパズルじみたノウハウがさまざまに要求されたわけだ。カセット版の『スーパーマリオ』でさえ、不足気味のキャラクターROMを工夫で補っていたことを考えれば、輪をかけて難易度が高まることになる。
まして「クソゲー」の回でも取り上げたように、1985年以降ファミコンに参入するサードパーティーが急速に増加している状況で、それら“新参”の開発者の誰しもがここで述べたような点にまで注意を払える腕利きだったわけがない。中にはタイトル画面が表示されるまでの間にも、ディスクの裏返しを挟みアクセスを3回も行うソフトがあるほどだった。
「メガROM」でカセットにも“ローディング”?
一方カセット版のファミコンソフトでは、1986年の中盤になるとプログラムROM側にもバンク切り替えが利用されるようになり、1メガビット(128KB)クラスのROM、いわゆる「メガROM」も登場した。このとき、キャラクターROMも個別にバンク切り替えする手法のほかに、ディスクシステムのようにキャラクターROMに代わってRAMを搭載する手法も、一部のソフトで使われるようになった。
後者の場合はキャラクターのデータもプログラムROMに格納することになるが、バンク切り替えを使えば、キャラクターのデータはPPU側に転送するときを除いて隠しておける。この点で、開発者にとってディスクシステムよりも利便性が高かった。
ただ、必ずしもいいことずくめだったわけではない。ディスクシステムでは、基本的な処理や入出力のシステムプログラムがRAMアダプタ内に用意されており、それを使うことでPPUへのデータ転送を効率的に行うことができた。しかしカセットでは、これらの処理もすべてゲームソフト側でプログラミングしなければならない。開発者の技量によっては、キャラクターデータの転送に2〜3秒かかるケースもあったようだ。こうして、「カセットなのにやたらに待たされる」というソフトが出てきたわけだ。
ところで任天堂は、ファミコンの欧米版にあたる「NES」にはディスクシステムを投入しなかった。1987年夏に登場した北米版『ゼルダの伝説』のカセットには、プログラムROMとキャラクターRAMのほか、追加のワークRAMとバックアップ電源用の電池が備えられた。これによってプレイデータを保存する仕組みだ。そしてファミコンにも、この構造のカセットがほぼ同時期に導入されている。
こうしてディスクシステムの特長のうち、「データ量の拡大」と「プレイデータの記録」の2点は、製造コストの増加に目をつぶればカセットでも利用できるようになった。すると子どもたちにとってディスクシステムは、本体並みの追加の出費が必要なことに加え、「何かとわずらわしいローディングが入る」というデメリットの方が目立ってくる。
また『ドラゴンクエスト』シリーズなども登場し、ファミコンソフトの主軸が“重厚長大”化する中、カセットではメガROM2個、さらには単体で2メガビット(256KB)やそれ以上のROMも利用されはじめた。開発者にとっても、ディスク媒体はむしろ足かせになってしまったわけだ。1988年以降のディスクシステム用ソフトは、ややニッチな傾向のソフトや過去の人気作を安価に提供するという性格が強まることになる。
ディスクシステムからCD-ROMへ
時間軸がやや前後するが、1987年にはNECの「PCエンジン」が、翌年にはセガの「メガドライブ」が登場。任天堂からも1989年に「ゲームボーイ」、1990年には「スーパーファミコン」(以下、SFC)が発売され、日本の家庭用ゲーム機の世界は大きく様変わりした。これらはすべて、キャラクターデータなどの映像表示に使われる情報を、本体内の映像用LSIに付随するVRAMに書き込むようになっている。ファミコン登場時よりもRAMの集積度が上がり価格も下がったことで、この構成の優位性が強まったと考えられる【※】。
※セガについては、ファミコンと同世代の「SG-1000」でTIのVDPを採用しており、メガドライブでもそれと共通の仕組みにしたことになる。
なおVRAM以外に、CPUのワークRAMも増大している。特にSFCのワークRAMは128KBもあったため、カセットのROMに圧縮したデータを収め、必要に応じて展開してワークRAMやVRAMに書き込む手法もよく使われた。ただ、SFCはCPUの処理があまり速くないという弱点があり、プレイヤーが“待たされる”ケースもそれなりにあったようだ。のちには、カセット内に圧縮データの展開を行うカスタムLSIを搭載するソフトも出てきた。
この世代の据置型ゲーム機は、PCエンジンを筆頭にCD-ROMへの対応が取りざたされたことも特徴だ。ディスクシステムに背を向けた子どもたちに対し、今度は最大500メガバイト(MB)以上のケタ違いな大容量を後ろ盾にした、映像と音響の両面における大幅な演出強化を提示した。いわば、これらをローディングの“忍耐”と引き換えにしたわけだ。
そんな中、「NOW LOADING」の表示をあらためて強烈に印象づけたゲーム機として、同世代の最後発、1994年秋に発売されたSNKの「ネオジオCD」を挙げないわけにはいかないだろう。ただ、その母体である「ネオジオ」が、ファミコンとある種の共通性を持っていたことも見逃せない。まずはネオジオCDの登場に至った背景を見ていこう。