Sega Virtua Processorのメモ

スーパーファミコンにSuper FXが有るならばメガドライブにはSega Virtua Processorが有る。
SuperFXもSVPも16 x 16 = 32の乗算を備えたある種のDSPであり、SuperFXがスーパーファミコンのコンパニオンチップとしてデザインされているのに比べると、SVPの機能性は純然たるDSPにより近い。
SuperFXはスーパーファミコンの異常に遅いバスを補うためにいくつかのキャッシュ戦略を備えているが、SVPはDSPをかなり素直に使用している。

SVPを搭載したゲームはバーチャレーシングしか存在しないが、バーチャレーシングの場合、カートリッジ上の128KiB RAMでDSPとインターフェースし、DSPそのものはフリーランさせてMD本体は

  1. 頂点情報の供給
  2. カートリッジRAMに生成されたビットマップ(tilemap)の転送 @ 15fps

を行っているといわれている。MDのVRAMはCPUからも見えない(= カートリッジバスに出ていない)ため本体のDMAを常に使用する必要があり、転送中はDSPは停止されていることになる。
ラスタライズのアルゴリズムは判然としない。
VRAMへのDMAはそんなに速くないので、フルスクリーンの完全なアップデートを行うと15fps程度しか出すことができない。この部分はどうしようもないので、この15fps制約から逆算してDSPのスペックを決めたのではないかと考えられる。(ちなみにSuper32Xでは自前のビデオ出力回路を内蔵することでこの制約を回避していて、専用のケーブルが必要になってしまっている。)
バーチャレーシングModel1上のゲームだったので一切のテクスチャがゲームに存在しない。SuperFXのゲームはStarFoxの昔から限定的なテクスチャを備えていたのに比べると、SVPのゲームは多少見劣りしてしまう。SVP自体のスペックにはかなり余裕が感じられるので、オリジナルタイトルが存在すればまた違ったかもしれないが。。同時期(〜1994)のセガは他に32X、サターン、Model2を平行して開発しており、SVPが顧みられた可能性は低い。
SVPのスペックには諸説有る:

まぁこの手の差異は概ね"演算能力"と"表示能力"の差になる。しかし、500 x 15 = 7500なので、9000 - 7500 = 1500ポリゴン分の演算能力がどこかに消えていることになる。実に16.7 %。
この16.7 %はピクセルの打ち込みに使用されていると考えられる。つまり、SVPそのものには9000ポリゴン/sec、つまり、(四角ポリゴンであると仮定して)36000頂点/sec分の転送/演算能力はあるものの、SVPは頂点の処理だけではなくピクセルの打ち込みも行っているためその分DSPサイクルが消費されているのではないだろうか。
... というわけで、SVPのような見た目のゲームを作りたければ:

  • 16色
  • 15 fps
  • 四角ポリゴン、光源処理なし
  • 500ポリゴン / frame

なゲームを作ることになる。500ポリゴンって厳しいものが有るな。。PS/SS世代のハードが約5000〜10000ポリゴン/frame(しかもテクスチャされている)をターゲットにできるので技術の進歩を感じる。
(ちなみにSVPコードのプログラマとしてクレジットされている堀修氏は、後にRez等でテクニカルディレクタを務める( http://rez.sega.jp/backstage/index.html )。)