HyperNeoGeoの加法ブレンディング

Haze氏ページに、Hyper Neogeo 64の加法混色(ブレンド)表示について解説されています。

Hyper Neogeo 64ハードウェアの機能の一つに加法ブレンドがある(個人的にはこのハードがサポートする混色モードはこれだけなのか少し疑問)。加法ブレンドはその名のとおり、他の色に別な色を追加することだ(これに対して、アルファブレンディングは目的の色との平均を取る)。

基本的には、ブレンドイメージの真っ黒い部分は影響せず、少しでも白やグレーの部分があれば元イメージが白くなる(実際には、両者のビットマップはグレースケールではなくフルカラーのこともあるので、もう少し複雑だ)。

前回のMAMEの更新で、スプライト用にこのブレンドの基本機能(バグありで)を追加したので、いろいろな箇所で効果を見ることができる。

一方で、タイルマップレイヤーに対してもこれは特殊効果として使用されている。「サムライスピリッツ2」がよい例で、いろいろなステージでダストエフェクトやライティングのエフェクトに用いられている。次のスクリーンショットは「サムライスピリッツ2」のアトラクトモードで光線表示に使っている箇所だ(左が元のタイルマップデータ、右が加法ブレンドを有効にしたもの)。

効果自体はわずかだが、実機では3D表示とミックスされ、きれいな表示となる。

オリジナルの「侍魂」でもこの効果は使われている。スクリーンショットではかなりわかりくいが、これは固定のレイヤーとして背景全体を覆っているためだ。つまり、エフェクトレイヤーである。これは移動に伴って動き、霧や雪などを表現するものとして背景イメージに効果を加えている。

もちろん、物事はそれほどシンプルなわけではない。MAMEはタイルマップ描画機能でネイティブに加法ブレンディングをサポートしていない。そこで、この機能を実装するためtilemap.cの半分をコピーしてドライバに直接組み込む必要があった。さらに、実機でどのようにこの機能を有効にしているかもまだはっきりしていない。そのため、現在は一部のデバッグキーへの実装になっている。

加法ブレンディングとRGB制御レジスタを統合できれば、オブジェクトのフェードアウトやホワイトアウトなど、その他のエフェクトにもブレンディングを使用できるだろう。個人的には、ゲームのあちこちでこれを行っている感じがする。同時にこれにより、どのレジスタがどの種類のフェードを指定してそれをオンにしているのか、はたまたブレンディングをオンにしているのかの区別を複雑なものにしている。

私としては、Hyper Neogeo 64のエミュレーションがCPS3のときのように一気に完成するとは考えていない。3Dは特にトリッキーで、今のところ動作しているのは「餓狼伝説 -ワイルドアンビジョン-」だけだし、「武力ONE」は3D RAMに強烈なハックを行って無理矢理一部を動かしている状態だ。これらは全くもって実際のハードウェアの動作にはほど遠い。まだテストケースは限られているが、システムは複雑で、タイルマップ順やエフェクト切り替えのようなシンプルなものでさえ、これらが同時に使用されているため、各ビットを切り分けることが難しい。また、更なる障害なのは、3D系を主に担当している開発者たちがこのドライバに全く興味が無いと見られることだ。

つまり、あと2、3年以内にこれらのゲームが完全にプレイ可能になることを期待してはいけない。

Standing in a Spotlight

前の記事
次の記事