スーパーFXチップ

スーパーFXチップ（スーパーエフエックスチップ、Super FX Chip）は、スーパーファミコンの一部のロムカセットに内蔵されているコプロセッサである。

概要

任天堂の関連会社A/N Softwareによって開発され、『スターフォックス』や『スーパーマリオ ヨッシーアイランド』などのカセットに搭載された。「三次元描画方面強化回路」と銘打っており、表向きには3次元コンピュータグラフィックス、ポリゴン技術の性能補強とされているが、実際には、スーパーファミコンが持つバックグラウンド画面の拡大縮小および回転機能を駆使することによって、擬似的に三次元空間を描画する処理を担当していた。
スーパーファミコンのバックグラウンド画面を適当なサイズに切り抜き、いわゆるポリゴンの面と見立てて扱うという方法で立体空間を描画する。例えばスーパーファミコンの画面上で八面体を表示するためには、8枚のバックグラウンドを組み合わせる事によって擬似的にこれを再現する。スーパーFXチップは、スーパーファミコンが本来持つバックグラウンド描画枚数（8枚）を大幅に増加させ、その演算補助を行う。ジャギーの問題を別とすれば、いわゆる「透明色」を用いることで、複雑な形状をした平面を作ることも可能である。
ただし、あくまで擬似的に3次元空間を描画する手法であったため、立体オブジェクト同士で描画の貫通が発生する、当たり判定が出来ないといった欠点も抱えていた。

三次元描画の仕組み

スーパーファミコンをはじめとするゲーム機の多くには、スプライトやスクリーンという機能が存在する。これはごく簡単に例をあげるならば、セルアニメにおけるセル画と背景画のように、絵を何枚か重ねてひとつの画面を作り出す電子的なからくりと言える。スーパーファミコンには拡大縮小および回転機能が存在するが、既存のスクリーンの何枚かに対してこれらの機能を用いることでファイナルファンタジーシリーズの飛空挺操縦時に見られるような擬似的に三次元的な演出が可能となる。
しかし、この方法では地上や空といった、凹凸のないものの描画に限られる。障害物や建造物など背景を描くことは困難であり、自動車や飛行機といったオブジェクトの回り込み的な回転は不可能である。『クロノ・トリガー』のミニゲーム「ジェットバイク」は360度回転可能のレースゲームであったが、これは16方向それぞれから見た絵を個別にスプライトとして持つことで、擬似的にこの問題を解決していた。
そこでスクリーンそのものを適当なサイズに切り、いわゆるポリゴン面と見立てて扱うという方法が考え出された。しかし、スクリーン枚数をハードウェアの上限を越えて増やさねばならない上、各スクリーンを制御する演算装置も別途必要となる。スーパーFXチップは、この「スクリーン枚数の増加」と「外部演算装置」に対応した回路である。

技術的な仕様

番号を付さない、いわゆる「スーパーFXチップ」と呼ばれる初期のバージョンは、仕様上、21MHzのクロック周波数の処理能力を有していたが、内部的にはその半分である10.5MHzの性能しか出せなかった。後のスーパーFX GSU-2では設計修正が行われ、仕様相当の性能を引出すことが可能となった。
スーパーFXチップはいずれのバージョンにおいても命令セット及び機能の互換性を有しているが、クロック周波数と出力ピンの割当が異なる。

ポリゴン描画機能を持つハードウェアとの違い

ポリゴンとは「多角形」という意味である。ポリゴン描画とは、立体的多面体を三角形単位に分解してデータとして持ち、カメラと対象物の位置や角度を計算し、前後関係や大きさ、歪みの度合いを描画する仕組みを指す。最近のハードウェアでは演算能力の向上などからほとんど見られなくなってきたが、かつては長方形の平面に張られたテクスチャが三角形単位で歪むという現象がしばしば起きていた。これはその長方形平面が、歪んでいる三角形単位で1つのポリゴン面を構成していたからである。
一方、スーパーFXチップによるスーパーファミコンの三次元描画では、立体オブジェクトは三角形単位ではなく平面単位で構成される。ポリゴンによるモデルは、データ上は三角形単位になるが、スーパーファミコンとスーパーFXチップ上は、例えば八面体であれば8枚のスクリーンを組み合わせて扱われる。ジャギーの問題を別とすれば、いわゆる「透明色」を用いることで、複雑な形状をした平面を作ることができる。
このような仕組みのため、スーパーファミコンとスーパーFXチップによる三次元描画はポリゴンとは呼べないとする解釈もある。

テクスチャマッピング

このような特殊な三次元描画により、スーパーファミコンは、ハードウェア性能は初代のプレイステーションやセガサターンに劣りながらも、擬似的にテクスチャマッピングを施した「擬似的三次元グラフィック」を実現できた。
一般にポリゴン描画機能の場合、三角形単位による画面上の座標位置を算出し、それぞれを頂点とする形状にマッピングされるようにテクスチャに対し回転や歪みの処理を行ってから張り付ける。このため、三次元演算に加えてテクスチャを処理し、表示するプロセスを要すため、ハードウェアへの負荷が大きい。
一方、スーパーFXチップでは、最初からグラフィックスの描かれているスクリーンを操作しているだけである。テクスチャ処理を回避することで、見かけ上、ハードウェア性能以上の三次元描画を実現している。

限界や問題点

ポリゴンによる描画では、シェーディング、レンダリングの仕様にもよるが、複数のオブジェクトが衝突し、立体座標において重なった場合、いわゆる「ポリゴンの食い合い」が生じる。これはオブジェクトや背景同士が貫通し合うという、現実には有り得ない絵を生み出す原因になるが、パーツを組み合わせて人体を作るといった「関節ポリゴン」によるオブジェクトを可能とするなどメリットも多い。また、ゲームでは多くの場合、衝突判定によって次の描画フレームではお互いのオブジェクトが反発しあって引き離されるため、あまり問題にならない。
しかし、スーパーFXチップによる擬似的三次元描画では、スクリーンの拡大縮小や回転によってポリゴン面のようなものを作り出しているにすぎず、仮にオブジェクトが衝突しても、それぞれのスクリーンがカメラから遠い順に描かれていくだけであって、そのスクリーンが他のスクリーンと食い合ったり貫通したりということはありえない。これはZバッファを持たないPlayStationでも同様である。
したがって、食い合うような状況を避けねばならず、衝突判定を大きく取る必要があった。他オブジェクトや壁などの障害物と大きく食い合う状況を作りかねない高速度のレースゲームなどには不向きであり、開発されることもなかった。『スターフォックス』では『F-ZERO』に登場する架空の反重力発生装置である「G-ディフューザーシステム」を使用しているという設定により、地面との接触を回避する理由付けがゲーム要素として盛り込まれていた。スーパーFXチップによる擬似的三次元描画技術の開発とG-ディフューザーシステムという設定のどちらが先にあったのかはともかく、この設定の所以によって「衝突が発生しづらい」状況をシナリオの側面から人為的に作り出していた。
このほか、ポリゴンによる描画では、そのポリゴン面をリアルタイムに変形させて人体の関節や、オブジェクト自体の滑らかな動きを作る、「変形ポリゴン」という技術が存在する。スーパーファミコンではこうした表現は不可能ではないが、スクリーンの透明処理や分解をリアルタイムに行う必要があり、処理能力的に困難であった。
加えて、通常、3次元コンピュータグラフィックスにはワイヤーフレーム、フラットシェーディング、グーローシェーディングなどがあるが、スーパーファミコンではワイヤーフレームによるグラフィックと面を張ったグラフィックとは、根本的に別物である。また、いわゆるフラットシェーディングのような描画しかできず、グーローシェーディングという概念自体が存在しない。

ワイルドトラックス

1994年6月8日に任天堂から発売された『ワイルドトラックス』は、スーパーFXチップの機能を最大限に引出した作品として挙げられる。
見た目はフルポリゴンによるレースゲームであり、セガの『バーチャレーシング』を小規模にしたようなイメージである。マップ、すなわち地上が全て三次元描画となっており、道はもちろん、凹凸や立体交差も存在するため、使用されたスクリーンの枚数はきわめて多い。絵の描かれた看板も登場し、スーパーファミコンの限界に挑んだ意欲作といえた。
このような表現が可能であったのも、スーパーFXチップによる描画がポリゴンではなく、擬似的三次元であったことによるものである。また、食い合いを起こさず、著しい衝突を避けるため、レースゲームとしては重い挙動の悪い車であり、スピード感は抑えられていたが、逆にゲーム性として盛り込む工夫が施されていた。
ステージによっては水上に掛かる橋があり、コースアウトすると落水する。しかし、水面に自機を沈める表現は「ポリゴンの食い合い」が描けないため不可能である。コースアウトした直後、視点に関わらず自機を画面外に出し、水面だけを表示してフェードアウトさせるという演出で回避していた。

備考

スーパーFXチップの搭載されたロムカセットでは、プログラム本体が書き込まれたROMのほかに、スーパーFXチップが組み込まれている。この、プログラム本体以外のアクセラレーターを積むという考え方は、スーパーファミコンと同様にカートリッジ式ロムカセットを使用するファミリーコンピュータの頃から存在した。
特に、ファミコン時代中期以降には音源チップの搭載がよく行われた。ファミリーコンピュータ本体の同時発音数の上限は5声（矩形波2音+三角波1音+ノイズ1音+DPCM1音）であり、音楽的にいえば、主旋律（メロディー）と伴奏とベースとリズムしか表現できないため、効果音を鳴らす場合は、いずれのチャンネルを効果音用に回さなければならない。ファミリーコンピュータにはカートリッジのピンの2つがアナログ音声出力および入力用に割り当てられており、ロムカセット側に音源チップを搭載することでチャンネル数を増やしたり、倍音成分を追加して多彩な音色を作り出すことが可能であった。ファミコン時代後期にリリースされたソフトの中には人間の声を喋らせたり、10チャンネルを越えるシンセサイザーを搭載したものも登場した。
スーパーFXチップ搭載ソフトはバーチャルコンソール化されていなかったが、ニンテンドークラシックミニ スーパーファミコンにおいて、ハードにスーパーFXチップを搭載することなく数作品が収録されている。また、Nintendo SwitchのNintendo Switch Online加入者向けに配信のスーパーファミコン Nintendo Switch Onlineでも同様に数作品が収録されている。