画像を表示してみよう
1、フォルダの作成。
今回はメガドライブの背景面に画像を表示します。
sgdkフォルダの2つ下の階層に名前は何でもいいので今回使うフォルダを作ります。
例 C:\develop\sgdk\sample\image
作ったフォルダの中にresフォルダを新規で作り、resフォルダの中に表示したい画像を入れていきます
2、画像を用意する。
画像は8bpp(256色)でファイル形式はbmpまたはpngにして下さい。
SGDKは内部のツールが自動でメガドライブに合うように色を調整してくれます。
そして画像表示命令があればVRAMに画像をいれたり重複するパターンがあれば自動で省略したり
ほぼ自動でやってくれます。(VRAMに複数の画像を置く場合はアドレスを指定します)
8bpp(256色)の画像ならなんでも表示する事は出来ますが、
そのままでは元の画像の色がまともに表示されません。 |
背景面とスプライト面について
メガドライブは独立した背景面が2枚あり、プレーンA、ブレーンBといいます。 8x8ピクセルを1cell単位としてパターンジェネレータテーブルで管理されてます。 そして最終的にスプライト面と背景面が合成されて画面に出力されます。 |
パレットについて
|
今回表示する画像はtitle.pngというツタンカーメンの画像ファイルです。
この画像をresフォルダの中に入れます。
3、リソース設定ファイルの作成。
画像をresフォルダに入れてから、SGDKでリソースを扱うrescompというツールに合わせる為に
resフォルダの中に新規テキストファイルで.resファイルを作ります。
例 C:\develop\sgdk\sample\image\res\res_image.res
IMAGE title_image "title.png" -1 |
このテキストをテキストエディタでres_image.resにコピペして保存して下さい。
rescompについては\sgdk\tools\rescomp\rescomp.txtに詳しく書いてあります。
背景画像のIMAGE以外にスプライトのSPRITE、VGM、PCMなど全てのリソースで使います。
4、ソースファイルの作成。
そしてimageフォルダの中に新規テキストファイルでmain.cを作成し
01
|
#include <genesis.h>
|
02
|
#include "res_image.h" //画像リソース読み込み
|
03
|
04
|
int main()
|
05
|
{
|
06
|
VDP_setPalette(0, title_image.palette->data); //パレットの設定
|
07
|
VDP_drawImageEx(BPLAN, &title_image, TILE_ATTR_FULL(PAL0, 0, 0, 0,
TILE_USERINDEX), 0, 0, 0, 1); //画像の描画
|
08
|
while (1) //メインループ
|
09
|
{
|
10
|
VDP_waitVSync();
//60分の1秒で発生するVSync待ち
|
11
|
}
|
12
|
return (0);
|
13
|
}
|
上のソースコードをコピぺします。(右上のViewSourceアイコンからコピペ用のテキスト画面が出せます)
ビルド用のバッチファイルmake.batは前回の文字表示で使った同じものをimageフォルダの中にコピーして下さい。
5、コンパイル(ビルド)
これでソースコード、画像ファイル、resファイル、ビルド用のバッチファイルが揃いました。
make.batを実行しビルドして下さい。
エラーがなければoutフォルダの中にrom.binが作成されます。
rom.binをエミュレータで読みこんで画像が表示されれば成功です。
お疲れさまでした。