Tutorial.5 ビットマップモード(4)

mode5

サイズ160*128
フレームバッファ2
色/パレット32768色
伸縮回転可能

mode5です。ポイントは画面のサイズが小さく160*128で、32768色。
パレットは使わず、mode3のように2バイトを色データとしています。
フレームバッファは2となっています。

画面サイズが小さいため、画像は画面左上に表示されます。
右側や下側などの表示されない領域は真っ黒のままで見栄えが悪いです。

mode5の画像を表示

#include "lib/gba.h"
#include "res.h"

//---------------------------------------------------------------------------
void WaitForVsync(void)
{
	while(*(vu16*)0x4000006 >= 160) {};
	while(*(vu16*)0x4000006 <  160) {};
}
//---------------------------------------------------------------------------
void Mode5SetFrame(u8* img, u32 f)
{
	u8* fr;

	if(f == 1)
	{
		fr = (u8*)0x6000000;
	}
	else
	{
		fr = (u8*)0x600A000;
	}

	u32 x, y;

	for(y=0; y<160; y++)
	{
		for(x=0; x<240; x++)
		{
			fr[y*240+x] = img[y*240+x];
		}
	}
}
//---------------------------------------------------------------------------
int main(void)
{
	// モード設定。フレーム2を指定
	SetMode(MODE_5 | BG2_ENABLE | BACKBUFFER);

	// 画像の読み込み
	Mode5SetFrame((u8*)&frame1Bitmap, 1);
	Mode5SetFrame((u8*)&frame2Bitmap, 2);


	for(;;)
	{
	    WaitForVsync();
	}
}

動作画面

モード5で、160x128の画像の表示(フレーム2と1)

clip_1.png
clip_2.png

履歴

  • 2014/12/21

添付ファイル: fileclip_2.png 231件 [詳細] fileclip_1.png 214件 [詳細]

Last-modified: 2015-10-07 (水) 21:24:15 (2206d)