うんちくを垂れる嫌な日記

FC版ソーサリアン(もどき)の画面構成が仕組みがわかった。

文字がでるところ

文字が徐々にでてくるのは Charcter RAM の機能を使って徐々にキャラクタを書き込んでいく技法。このため TGROM を採用したようだ。

アーケードのグラディウス(初代とIII)にも Charcter RAM が載っているのでこの技法が使える。アーケード基板では Charcter は ROM にするのが普通なので、III はこれを再現するためにわざわざ Charcter RAM を搭載した気がする。

タイトル画面の BG

あの画面は4つの領域にわかれていて、画面表示中に3回の IRQ を出している。

重要なのが上から2番目の領域で、BG のキャラクタエリアを変更している。他のソフトは詳しくないけど、ここはあまりいじらないレジスタ。これを切り替えることによって BG では1画面で 0x100 通りしか選べないデータを 0x200 個 BG として使える。

charcter ROM のバンクを描画途中で切り替えるのは常套手段なのだが、キャラクタをフェードアウト/フェードインをする都合で charcter RAM なのでそれは選べない。そこで BG/Sprite アドレスを切り替えている。*1

3つ目の領域でスクロールレジスタを変えてるのは、変えなくてもできるので理由はよくわからない。



タイトル画面の sprite

色が足りなかったり、変則的な形はスプライトにしている。アドレスが切り替わるのでデータ構成に注意する必要がある。これは nametable view をみて、ないものがスプライトと思えばよい。

*1:これが常套手段だったら知ったかがうんちく垂れてると思って嫌がらせしてください