画像を表示してみよう


1、フォルダの作成。

今回はメガドライブの背景面に画像を表示します。
sgdkフォルダの2つ下の階層に名前は何でもいいので今回使うフォルダを作ります。
例 C:\develop\sgdk\sample\image
作ったフォルダの中にresフォルダを新規で作り、resフォルダの中に表示したい画像を入れていきます

2、画像を用意する。

画像は8bpp(256色)でファイル形式はbmpまたはpngにして下さい。
SGDKは内部のツールが自動でメガドライブに合うように色を調整してくれます。
そして画像表示命令があればVRAMに画像をいれたり重複するパターンがあれば自動で省略したり
ほぼ自動でやってくれます。(VRAMに複数の画像を置く場合はアドレスを指定します)

 8bpp(256色)の画像ならなんでも表示する事は出来ますが、

そのままでは元の画像の色がまともに表示されません。
メガドライブに合う画像512色(bit333)の中で16色だけを使った画像を用意する事で
実際のイメージと近い画像を表示出来ます。
自分の場合はbit333で16色に減色させるのにxpadieproを使い
パレットの調整とドット打ちにedgeを使ってます。

 

背景面とスプライト面について

 

メガドライブは独立した背景面が2枚あり、プレーンA、ブレーンBといいます。

8x8ピクセルを1cell単位としてパターンジェネレータテーブルで管理されてます。

そして最終的にスプライト面と背景面が合成されて画面に出力されます。

 

パレットについて


メガドライブは基本的に512色中64色を表示できます。
16色のパレットが4つ用意されていてBGとスプライト共有で使えます。
1番パレットの初めの色が背景色です。
2番パレット以降の初めの色が透明色です。
ハイライトシャドウ機能を有効にした場合は
4番パレットの最後の色がシャドウ色、最後の一つ前の色がハイライト色になります。

 

今回表示する画像はtitle.pngというツタンカーメンの画像ファイルです。

ダウンロード
ツタンカーメン画像
title.png
PNGファイル 8.6 KB

この画像を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をエミュレータで読みこんで画像が表示されれば成功です。
お疲れさまでした。

ダウンロード
今回のファイル一式
image.zip
zip ( 圧縮 ) ファイル 9.1 KB