お久しぶりです。約1年ぶりにブログを書きました。
何もしていなかったわけではなく、SGDKを使ったメガドライブのプログラミングの勉強は今も続けています。今回簡単なツールを作ったので紹介します。
メガドライブは1x1CELL(8x8ドット)から4x4CELL(32x32ドット)のサイズのスプライトを扱うことができます。スプライトサイズと、スプライトパターンジェネレータの関係は上図のように、CELLが縦向きに並ぶ形になっています。
SGDKではTileSet(構造体)の形式で画像を扱いますが、VRAMにパターンジェネレータを読みこませるためには、上図のように画像を並べ替える必要があります。
各サイズのCELLの並び方です。上から下に並んでいるのがわかります。
SGDK1.34のバージョンまでは、付属のツール「ResComp」でSpriteDefinition(構造体)形式で自動で読み込んでくれていましたが、SDGK1.40からは形式がかわって、古い形式をうまく読み込めなくなりました。(もしかしたら私がわかっていないだけで、うまく読み込む方法があるかもしれませんが…。)
画像ソフトで手作業でCELLを並び替えるのはとてもめんどうなので、C#で変換用のツールを作ってみました。
画像を読み込んで、スプライトのサイズを入力し、「Editボタン」で
TileSet(構造体)用の画像が表示されます。
「Copy Tile Data」でクリップボードに画像が保存され、EDGEなどの画像編集ソフトに貼り付けて使用します。ちなみに画像を読み込んだ際に右側に表示されている画像はブラウン管での表示イメージです。
Windows用で、.NET Framework4.6.1が必要です。
半日でプログラミングして、動作チェックはいい加減にしかしていないので不具合があるかもしれません。