今回はセガマークⅢのスプライト能力について書きたいと思います。
2022/10/16追記
「Zoomed sprite test for SMS」
itoken氏がセガマークⅢとゲームギアで拡大モードの検証を行っています。
どうやらマークⅢのVDPに不具合があるようです。
拡大しても横に8枚並べることができるので実質128ドットサイズ(ただし解像度は64ドット)の
スプライトが表示できるということになります。
ゲームギアは表示解像度が180ドットなので画面の70%のタイトルロゴを背景を流しながら
表示できるということになります。
2022/02/18追記
VirtuaFighterMiniですがGGのために画面に対してドットがでかいだけで使用していませんでした。
2021/10/12追記
マークⅢモードでの倍角モードですが自分の理解がまだ足りないらしく縦横共に倍角に出来るようです。
(この機能をVirtuaFighterMiniが使用しているようです)
しかし使用条件がよくわからず単に倍角モードビットを立てるだけだと倍角になるものもあれば
縦しか倍角にならないものもあるという状況です。
自分が試したときにはちょうど縦の倍角にしかならなかった状態であった様です。
スプライトは64枚の最大8×16ドット
まず間違えないでいただきたいのは、セガマークⅢのVDPのスプライト表示数は64枚。
これはファミコンと同じ枚数です。
また、サイズもファミコン同様8×8か8×16で選べるので(影響は全てのスプライトに及ぶ)、
この点においてファミコンより劣ることはありません。
それどころか、切り替えラインのノイズ(※)に目をつむるならばスプライトダブラーも可能で
ファミコンを超える128枚をチラつかせず表示することも可能(※※)です。
ただし、8×16時において、ファミコンのスプライトはキャラクタ番号のbit0で
BG側とスプライト側のキャラクタを使い分けることで256種類を指定できますが
マークⅢはbit0が無視されるので128種類しか指定できません。
パレットは16色一本のみ
マークⅢのスプライトは64色中16色を表示することができます。
ただし、スプライト用パレットは一本しかないのでゲーム画面の使用色を16色に
全て設定する必要があります。16色使えるはずなのに今一つ似た色味しか表示できないのは
この仕様のせいです。
最大の欠点。それはスプライト属性の撤廃
RAMの少ない昔のコンシューマ機は少ないVRAMにどれだけキャラクタを詰め込めるかが
常に付きまとっていました。多くのキャラが詰め込めればその分アニメーションができますし、
キャラも多彩になりゲーム性が増すからです。
そのためにファミコンではキャラ反転ができたり、同じキャラでもパレットを変えることで
別のキャラとするいわゆる「色替え」もできるようになっています。
キャラ番号のbit0でBG側のキャラを指定できるのもスプライトの表現力をできるだけ
上げようとした仕様です。
マークⅢは、16色のためにビットデータを4倍にしてデータが増大する仕様に
したにもかかわらずTMS9918からVRAMを増加させず、またパターンを節約するための
フリップやパレットを完全に省いてしまいました。
BGは反転や複数パレット、512キャラ指定、スプライトの表示優先が使用できるのに
スプライトでは切ってしまったのです。
また、この仕様のためかは不明ですが、スプライト情報を格納するアドレッシングが
Y[64]
reserve[64]
[CHR,X][64]
という不連続な並びになっておりプログラムを不要に複雑化させています。
TMS9918のスプライトと同じ[Y,X,CHR,ATR][64]としておけば9918のプログラムコードの
流用も期待できたろうに上記の仕様に落ち着いたというのは理解に苦しみます。
TMS9918で使用できる仕様について
TMS9918はすべてのスプライトサイズを16x16と8x8で選ぶことができます。
もちろんマークⅢのVDPのTMS9918互換モードにも存在しており、マークⅢモードでは
このフラグで8x16と8x8のサイズを決定します。
さて、TMS9918にはこのほかにスプライトの倍角モードというものが存在します。
16x16dotのスプライトを2倍角に拡大して表示できるというものです。
スタージャッカーのワープやガールズガーデンのチャレンジングステージは
この機能を使用しています。
この倍角モードの優れた点は拡大して描画領域が横並び2倍になっても
表示されるというところです。
通常だと16x16を4枚で横64ドット以上は表示できません(※※※)が
倍角モードは拡大した状態で4枚並べることができるので
実質128ドット表示していることになります。
では、マークⅢモードではどうでしょう?マークⅢモードでも一応このフラグを使用できます。
(この記載について間違いがあったため記事のトップで訂正しました)
ただし、TMS9918では縦横が同時に倍角になるのに対し、マークⅢモードでは縦のみ倍角になるという、
よくわからない仕様になっています
もしこれが縦横とも倍角にできる仕様であれば当時「北斗の拳」でも
VRAMの関係上小さくするしかなかったケンシロウが倍角で表示され
もっと迫力が出た横スクロールアクションとなっていたことでしょう。
(倍角くらいであれば結構モザイクに見えずにいけるもんですよ。特にTVで見ると。)
あとがき
まあいろいろな残念仕様でゲームが作りづらいハードになってしまったのですが
一番の問題なのは、当時アーケードゲームの雄であったセガがこの決断をしたということでしょう。
ゲームを現場で作っている会社が開発者のほしいと思われる機能を理解していなかった事実。
まあ、出来合いのチップを寄せ集めたようなハードですから、設計の際に
候補に挙がったチップがそれしかなかったのか、などと思ったりもしましたが、
その後性懲りもなくゲームギア(※※※※)にも使われたことからなにか
会社間での利権があったんではないかと勘ぐっています。
================================================
※)もしかしたら切り替えラインにかかるSATの作成をX68000版ダブラーのSATの作成と同様にすると
ノイズは出ないかもしれません。 試してないので不明です。
※※)ファミコンのダブラは1frame毎に表示を前半64枚、後半64枚と切り替えることぐらいしか
できないので大抵ちらつくのです。
※※※)8×8にしたら8枚表示できるかといえばそうではなく、横並びはどの状態でも4枚
ということらしいです。
※※※※)ゲームギアはマークⅢのVDP性能に加えて使用する色を4096色中から選べることができます。
しかし、搭載されている液晶はそれを完全に生かしておらず、しかもその仕様でパレットデータが
32バイトから64バイトに増えてしまい、貴重なVBlank期間を圧迫する羽目になっています。