mirror of
https://github.com/rvtr/TwlIPL.git
synced 2025-10-31 06:01:12 -04:00
TWLアニメーションバナー対応
・サンプルとしてPICTOCHATのアイコンをTWLバナーに変更 ・SDKのツールmakebanner.TWLをビルドしておかないと、PICTOCHATのバナーがビルドできません ・バナーの白枠が見づらかったのでランチャーの背景色を若干変更 git-svn-id: file:///Users/lillianskinner/Downloads/platinum/twl/TwlIPL/trunk@544 b08762b0-b915-fc4b-9d8c-17b2551a87ff
This commit is contained in:
parent
5c183b6f10
commit
2c5b3337da
@ -33,6 +33,49 @@
|
|||||||
// bannerCounter.c
|
// bannerCounter.c
|
||||||
//===============================================
|
//===============================================
|
||||||
|
|
||||||
|
void BNC_incrementCount( BannerCounter *c )
|
||||||
|
{
|
||||||
|
// TWLのみカウントインクリメント
|
||||||
|
if( c->banner->h.platform == BANNER_PLATFORM_TWL )
|
||||||
|
{
|
||||||
|
if( c->banner->anime.control[0].frameCount == 0 )
|
||||||
|
{
|
||||||
|
// アニメに終端しか存在しない
|
||||||
|
OS_TPrintf( "BNC_incrementCount:Only a Terminator!\n" );
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
c->count++;
|
||||||
|
if( c->count >= c->banner->anime.control[c->control].frameCount )
|
||||||
|
{
|
||||||
|
// カウント値がコントロールのフレームカウントを超えたので次のコントロールへ
|
||||||
|
c->control++;
|
||||||
|
c->count = 0;
|
||||||
|
|
||||||
|
//ループ及び停止の処理
|
||||||
|
if( c->control >= BANNER_ANIME_CONTROL_INFO_NUM )
|
||||||
|
{
|
||||||
|
// コントロールが限界を超えたら無条件でループ
|
||||||
|
BNC_resetCount( c );
|
||||||
|
}
|
||||||
|
else if( c->banner->anime.control[c->control].frameCount == 0 )
|
||||||
|
{
|
||||||
|
// コントロールのフレームカウントが0なら終端到達
|
||||||
|
if( c->banner->anime.control[c->control].animeType == 0 )
|
||||||
|
{
|
||||||
|
// アニメタイプ0ならループ
|
||||||
|
BNC_resetCount( c );
|
||||||
|
}
|
||||||
|
else if( c->banner->anime.control[c->control].animeType == 1 )
|
||||||
|
{
|
||||||
|
// アニメタイプ1なら停止(一つ前のコントロールに戻す)
|
||||||
|
c->control--;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
FrameAnimeData BNC_getFAD( BannerCounter *c )
|
FrameAnimeData BNC_getFAD( BannerCounter *c )
|
||||||
{
|
{
|
||||||
FrameAnimeData ret;
|
FrameAnimeData ret;
|
||||||
@ -40,12 +83,26 @@ FrameAnimeData BNC_getFAD( BannerCounter *c )
|
|||||||
{
|
{
|
||||||
ret.image = c->banner->v1.image;
|
ret.image = c->banner->v1.image;
|
||||||
ret.pltt = c->banner->v1.pltt;
|
ret.pltt = c->banner->v1.pltt;
|
||||||
ret.vflip = FALSE;
|
|
||||||
ret.hflip = FALSE;
|
ret.hflip = FALSE;
|
||||||
|
ret.vflip = FALSE;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
//TODO:TWLアニメーションバナーのデータを読んでフレームのデータを返す
|
if( c->banner->anime.control[0].frameCount == 0 )
|
||||||
|
{
|
||||||
|
// アニメに終端しか存在しない
|
||||||
|
OS_TPrintf( "BNC_getFAD:Only a Terminator!\n" );
|
||||||
|
ret.image = c->banner->v1.image;
|
||||||
|
ret.pltt = c->banner->v1.pltt;
|
||||||
|
ret.hflip = FALSE;
|
||||||
|
ret.vflip = FALSE;
|
||||||
|
return ret;
|
||||||
|
}
|
||||||
|
// コントロールデータを読んで、現在のフレームに該当するデータを返す
|
||||||
|
ret.image = c->banner->anime.image[ c->banner->anime.control[c->control].normal.cellNo ];
|
||||||
|
ret.pltt = c->banner->anime.pltt[ c->banner->anime.control[c->control].normal.plttNo ];
|
||||||
|
ret.hflip = c->banner->anime.control[c->control].normal.flipType & 0x1;
|
||||||
|
ret.vflip = (c->banner->anime.control[c->control].normal.flipType & 0x2) >> 1;
|
||||||
}
|
}
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|||||||
@ -29,7 +29,8 @@ extern "C" {
|
|||||||
|
|
||||||
typedef struct BannerCounter
|
typedef struct BannerCounter
|
||||||
{
|
{
|
||||||
u32 count;
|
u32 control;
|
||||||
|
u8 count;
|
||||||
TWLBannerFile *banner;
|
TWLBannerFile *banner;
|
||||||
}
|
}
|
||||||
BannerCounter;
|
BannerCounter;
|
||||||
@ -49,12 +50,7 @@ FrameAnimeData;
|
|||||||
static inline void BNC_resetCount( BannerCounter *c )
|
static inline void BNC_resetCount( BannerCounter *c )
|
||||||
{
|
{
|
||||||
c->count = 0;
|
c->count = 0;
|
||||||
}
|
c->control = 0;
|
||||||
|
|
||||||
static inline void BNC_initCounter( BannerCounter *c, TWLBannerFile *b)
|
|
||||||
{
|
|
||||||
c->banner = b;
|
|
||||||
c->count = 0;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static inline void BNC_setBanner( BannerCounter *c, TWLBannerFile *b)
|
static inline void BNC_setBanner( BannerCounter *c, TWLBannerFile *b)
|
||||||
@ -62,16 +58,18 @@ static inline void BNC_setBanner( BannerCounter *c, TWLBannerFile *b)
|
|||||||
c->banner = b;
|
c->banner = b;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static inline void BNC_initCounter( BannerCounter *c, TWLBannerFile *b)
|
||||||
|
{
|
||||||
|
BNC_setBanner( c, b );
|
||||||
|
BNC_resetCount( c );
|
||||||
|
}
|
||||||
|
|
||||||
static inline TWLBannerFile* BNC_getBanner( BannerCounter *c )
|
static inline TWLBannerFile* BNC_getBanner( BannerCounter *c )
|
||||||
{
|
{
|
||||||
return c->banner;
|
return c->banner;
|
||||||
}
|
}
|
||||||
|
|
||||||
static inline void BNC_incrementCount( BannerCounter *c )
|
void BNC_incrementCount( BannerCounter *c );
|
||||||
{
|
|
||||||
c->count++;
|
|
||||||
}
|
|
||||||
|
|
||||||
FrameAnimeData BNC_getFAD( BannerCounter *c );
|
FrameAnimeData BNC_getFAD( BannerCounter *c );
|
||||||
FrameAnimeData BNC_getFADAndIncCount( BannerCounter *c );
|
FrameAnimeData BNC_getFADAndIncCount( BannerCounter *c );
|
||||||
|
|
||||||
|
|||||||
@ -79,8 +79,10 @@ extern u16 bg_scr_data2[32 * 32];
|
|||||||
static void LoadBannerFiles( void );
|
static void LoadBannerFiles( void );
|
||||||
static void BannerInit( void );
|
static void BannerInit( void );
|
||||||
static void SetDefaultBanner( TitleProperty *titleprop );
|
static void SetDefaultBanner( TitleProperty *titleprop );
|
||||||
static void SetAffineAnimation( int cursor );
|
static void SetAffineAnimation( BOOL (*flipparam)[4] );
|
||||||
static void BannerDraw(int cursor, int selected, TitleProperty *titleprop);
|
static void SetBannerCounter( TitleProperty *titleprop );
|
||||||
|
static void SetOAMAttr( void );
|
||||||
|
static void BannerDraw( int selected, TitleProperty *titleprop);
|
||||||
static BOOL SelectCenterFunc( u16 *csr, TPData *tgt );
|
static BOOL SelectCenterFunc( u16 *csr, TPData *tgt );
|
||||||
static BOOL SelectFunc( u16 *csr, TPData *tgt );
|
static BOOL SelectFunc( u16 *csr, TPData *tgt );
|
||||||
static void ProcessBackLightPads( void );
|
static void ProcessBackLightPads( void );
|
||||||
@ -200,27 +202,33 @@ static void SetDefaultBanner( TitleProperty *titleprop )
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// アフィンパラメータの設定
|
// 中央2枚(banner_oam_attr[2],banner_oam_attr[3])のバナーのアフィンパラメータの設定
|
||||||
static void SetAffineAnimation( int cursor )
|
// flipparamは左h,左v,右h,右vの順序
|
||||||
|
static void SetAffineAnimation( BOOL (*flipparam)[4] )
|
||||||
{
|
{
|
||||||
MtxFx22 mtx;
|
MtxFx22 mtx;
|
||||||
static double wav;
|
static double wav;
|
||||||
if(cursor%FRAME_PER_SELECT == 0){ // 適当に波打たせてみる
|
fx32 param;
|
||||||
|
|
||||||
|
if(s_csr%FRAME_PER_SELECT == 0){ // 適当に波打たせてみる
|
||||||
double s = sin(wav);
|
double s = sin(wav);
|
||||||
s_selected_banner_size = FX32_HALF - (long)( 0x80 * ( s - 1 ) );
|
s_selected_banner_size = FX32_HALF - (long)( 0x80 * ( s - 1 ) );
|
||||||
mtx._00 = s_selected_banner_size;
|
param = s_selected_banner_size;
|
||||||
if(!s_wavstop) wav += 0.1;
|
if(!s_wavstop) wav += 0.1;
|
||||||
}else{ // 適当に大きさを変えてみる
|
}else{ // 適当に大きさを変えてみる
|
||||||
mtx._00 = FX32_HALF + FX32_HALF*(cursor%FRAME_PER_SELECT)/FRAME_PER_SELECT;
|
param = FX32_HALF + FX32_HALF*(s_csr%FRAME_PER_SELECT)/FRAME_PER_SELECT;
|
||||||
wav = 0;
|
wav = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
mtx._00 = param * ( (*flipparam)[0] ? -1 : 1 );
|
||||||
mtx._01 = 0;
|
mtx._01 = 0;
|
||||||
mtx._10 = 0;
|
mtx._10 = 0;
|
||||||
mtx._11 = mtx._00;
|
mtx._11 = param * ( (*flipparam)[1] ? -1 : 1 );
|
||||||
G2_SetOBJAffine((GXOamAffine *)(&banner_oam_attr[0]), &mtx);
|
G2_SetOBJAffine((GXOamAffine *)(&banner_oam_attr[0]), &mtx);// 中央左のバナー
|
||||||
mtx._00 = FX32_ONE - FX32_HALF*(cursor%FRAME_PER_SELECT)/FRAME_PER_SELECT;
|
param = FX32_ONE - FX32_HALF*(s_csr%FRAME_PER_SELECT)/FRAME_PER_SELECT;
|
||||||
mtx._11 = mtx._00;
|
mtx._00 = param * ( (*flipparam)[2] ? -1 : 1 );
|
||||||
G2_SetOBJAffine((GXOamAffine *)(&banner_oam_attr[4]), &mtx);
|
mtx._11 = param * ( (*flipparam)[3] ? -1 : 1 );
|
||||||
|
G2_SetOBJAffine((GXOamAffine *)(&banner_oam_attr[4]), &mtx);// 中央右のバナー
|
||||||
}
|
}
|
||||||
|
|
||||||
static void SetBannerCounter( TitleProperty *titleprop )
|
static void SetBannerCounter( TitleProperty *titleprop )
|
||||||
@ -241,27 +249,14 @@ static void SetBannerCounter( TitleProperty *titleprop )
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// バナー関係の描画
|
// OAMデータの設定
|
||||||
// 思ったよりVRAMへのロードが高速だったので、
|
static void SetOAMAttr( void )
|
||||||
// 特に難しいことを考えず表示するイメージデータだけ毎フレームVRAMにロード
|
|
||||||
static void BannerDraw(int cursor, int selected, TitleProperty *titleprop)
|
|
||||||
{
|
{
|
||||||
int l;
|
int l;
|
||||||
int div1 = cursor / FRAME_PER_SELECT;
|
int div1 = s_csr / FRAME_PER_SELECT;
|
||||||
int div2 = cursor % FRAME_PER_SELECT;
|
int div2 = s_csr % FRAME_PER_SELECT;
|
||||||
static int fadecount = 0;
|
BOOL flipparam[4];
|
||||||
static int old_selected = -1;
|
|
||||||
|
|
||||||
// デフォルトバナーをTitlePropertyに埋め込み
|
|
||||||
SetDefaultBanner( titleprop );
|
|
||||||
|
|
||||||
// アフィンパラメータだけ先に設定しておく
|
|
||||||
SetAffineAnimation( cursor );
|
|
||||||
|
|
||||||
// バナーカウンタのバナーセット
|
|
||||||
SetBannerCounter( titleprop );
|
|
||||||
|
|
||||||
// OAMデータ設定
|
|
||||||
for (l=0;l<MAX_SHOW_BANNER;l++)
|
for (l=0;l<MAX_SHOW_BANNER;l++)
|
||||||
{
|
{
|
||||||
int num = div1 - 2 + l;
|
int num = div1 - 2 + l;
|
||||||
@ -280,23 +275,68 @@ static void BannerDraw(int cursor, int selected, TitleProperty *titleprop)
|
|||||||
banner_oam_attr[l].charNo = l*4;
|
banner_oam_attr[l].charNo = l*4;
|
||||||
|
|
||||||
// 位置およびエフェクトの設定
|
// 位置およびエフェクトの設定
|
||||||
if(l == 2 || l == 3) // 中央付近で大きくなったり小さくなったりする二つのバナー
|
if(l == 2 || l == 3)
|
||||||
{
|
{
|
||||||
|
// 中央付近で大きくなったり小さくなったりする二つのバナー
|
||||||
G2_SetOBJEffect(&banner_oam_attr[l], GX_OAM_EFFECT_AFFINE_DOUBLE, l-2);
|
G2_SetOBJEffect(&banner_oam_attr[l], GX_OAM_EFFECT_AFFINE_DOUBLE, l-2);
|
||||||
G2_SetOBJPosition(&banner_oam_attr[l],
|
G2_SetOBJPosition(&banner_oam_attr[l],
|
||||||
BANNER_FAR_LEFT_POS - BANNER_WIDTH/2 + l*(BANNER_WIDTH + BANNER_INTERVAL) - div2 * DOT_PER_FRAME,
|
BANNER_FAR_LEFT_POS - BANNER_WIDTH/2 + l*(BANNER_WIDTH + BANNER_INTERVAL) - div2 * DOT_PER_FRAME,
|
||||||
BANNER_TOP - BANNER_HEIGHT/2 );
|
BANNER_TOP - BANNER_HEIGHT/2 );
|
||||||
|
flipparam[(l-2)*2] = fad.hflip;// フリップ情報は一旦保存
|
||||||
|
flipparam[(l-2)*2+1] = fad.vflip;
|
||||||
}
|
}
|
||||||
else // その他のバナー
|
else
|
||||||
{
|
{
|
||||||
|
// その他のバナー
|
||||||
|
GXOamEffect effect = GX_OAM_EFFECT_NONE;
|
||||||
|
if( fad.vflip )
|
||||||
|
{
|
||||||
|
if( fad.hflip )
|
||||||
|
{
|
||||||
|
effect = GX_OAM_EFFECT_FLIP_HV;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
effect = GX_OAM_EFFECT_FLIP_V;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else if( fad.hflip )
|
||||||
|
{
|
||||||
|
effect = GX_OAM_EFFECT_FLIP_H;
|
||||||
|
}
|
||||||
banner_oam_attr[l].x = BANNER_FAR_LEFT_POS + l*(BANNER_WIDTH + BANNER_INTERVAL) - div2 * DOT_PER_FRAME;
|
banner_oam_attr[l].x = BANNER_FAR_LEFT_POS + l*(BANNER_WIDTH + BANNER_INTERVAL) - div2 * DOT_PER_FRAME;
|
||||||
G2_SetOBJEffect(&banner_oam_attr[l],GX_OAM_EFFECT_NONE,0);
|
|
||||||
|
G2_SetOBJEffect(&banner_oam_attr[l],effect,0);
|
||||||
}
|
}
|
||||||
}else
|
}else
|
||||||
{
|
{
|
||||||
|
// そのoamが担当する場所にはバナーがない
|
||||||
G2_SetOBJEffect(&banner_oam_attr[l],GX_OAM_EFFECT_NODISPLAY,0);
|
G2_SetOBJEffect(&banner_oam_attr[l],GX_OAM_EFFECT_NODISPLAY,0);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// アフィンパラメータの設定
|
||||||
|
SetAffineAnimation( &flipparam );
|
||||||
|
}
|
||||||
|
|
||||||
|
// バナー関係の描画
|
||||||
|
// 思ったよりVRAMへのロードが高速だったので、
|
||||||
|
// 特に難しいことを考えず表示するイメージデータだけ毎フレームVRAMにロード
|
||||||
|
static void BannerDraw(int selected, TitleProperty *titleprop)
|
||||||
|
{
|
||||||
|
static int fadecount = 0;
|
||||||
|
static int old_selected = -1;
|
||||||
|
|
||||||
|
// デフォルトバナーをTitlePropertyに埋め込み
|
||||||
|
SetDefaultBanner( titleprop );
|
||||||
|
|
||||||
|
// バナーカウンタのバナーセット
|
||||||
|
SetBannerCounter( titleprop );
|
||||||
|
|
||||||
|
// OAMデータの設定
|
||||||
|
SetOAMAttr();
|
||||||
|
|
||||||
|
// OAMをVRAMへロード
|
||||||
DC_FlushRange(&banner_oam_attr, sizeof(banner_oam_attr));
|
DC_FlushRange(&banner_oam_attr, sizeof(banner_oam_attr));
|
||||||
GX_LoadOAM(&banner_oam_attr, 0, sizeof(banner_oam_attr));
|
GX_LoadOAM(&banner_oam_attr, 0, sizeof(banner_oam_attr));
|
||||||
|
|
||||||
@ -377,7 +417,7 @@ BOOL LauncherFadeout( TitleProperty *pTitleList )
|
|||||||
DrawScrollBar( pTitleList );
|
DrawScrollBar( pTitleList );
|
||||||
|
|
||||||
#ifdef DBGBNR
|
#ifdef DBGBNR
|
||||||
BannerDraw( s_csr, selected, pTitleList );
|
BannerDraw( selected, pTitleList );
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
// 描画少し追加
|
// 描画少し追加
|
||||||
@ -662,7 +702,7 @@ TitleProperty *LauncherMain( TitleProperty *pTitleList )
|
|||||||
DrawScrollBar( pTitleList );
|
DrawScrollBar( pTitleList );
|
||||||
|
|
||||||
#ifdef DBGBNR
|
#ifdef DBGBNR
|
||||||
BannerDraw( s_csr, selected, pTitleList );
|
BannerDraw( selected, pTitleList );
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
// RTC情報の取得&表示
|
// RTC情報の取得&表示
|
||||||
|
|||||||
@ -20,8 +20,9 @@ include $(TWL_IPL_RED_ROOT)/build/buildtools/commondefs
|
|||||||
|
|
||||||
ICON_DIR = ./icon
|
ICON_DIR = ./icon
|
||||||
|
|
||||||
BANNER_ICON = $(ICON_DIR)/gameIcon.bmp
|
BANNER_SPEC = test-utf16_v3.TWL.bsf
|
||||||
BANNER_SPEC = banner_v3.bsf
|
|
||||||
|
MAKEBANNER = $(TWL_TOOLSDIR)/bin/makebanner.TWL.exe
|
||||||
|
|
||||||
TARGETS = banner.bnr
|
TARGETS = banner.bnr
|
||||||
INSTALL_DIR = ./
|
INSTALL_DIR = ./
|
||||||
@ -30,9 +31,6 @@ INSTALL_TARGETS = $(TARGETS)
|
|||||||
BANNER_ICON_NAME = $(basename $(BANNER_ICON))
|
BANNER_ICON_NAME = $(basename $(BANNER_ICON))
|
||||||
|
|
||||||
LDIRT_CLEAN = $(TARGETS) \
|
LDIRT_CLEAN = $(TARGETS) \
|
||||||
$(BANNER_ICON_NAME).nbfs \
|
|
||||||
$(BANNER_ICON_NAME).nbfc \
|
|
||||||
$(BANNER_ICON_NAME).nbfp \
|
|
||||||
$(TARGETS:.bnr=.srl)
|
$(TARGETS:.bnr=.srl)
|
||||||
|
|
||||||
include $(TWL_IPL_RED_ROOT)/build/buildtools/modulerules
|
include $(TWL_IPL_RED_ROOT)/build/buildtools/modulerules
|
||||||
@ -42,8 +40,7 @@ include $(TWL_IPL_RED_ROOT)/build/buildtools/modulerules
|
|||||||
#----------------------------------------------------------------------------
|
#----------------------------------------------------------------------------
|
||||||
do-build: $(TARGETS)
|
do-build: $(TARGETS)
|
||||||
|
|
||||||
$(TARGETS): $(BANNER_SPEC) $(BANNER_ICON)
|
$(TARGETS): $(BANNER_SPEC)
|
||||||
$(NTEXCONV) -no -bg -bgb -bgnc $(BANNER_ICON) >/dev/null && \
|
$(MAKEBANNER) -d -p TWL $(BANNER_SPEC) $(TARGETS)
|
||||||
$(MAKEBANNER) -d -N $(BANNER_ICON_NAME) $(BANNER_SPEC) $(TARGETS)
|
|
||||||
|
|
||||||
#
|
#
|
||||||
|
|||||||
BIN
build/systemMenu_RED/PictoChat/banner/icon/msk_pictchat_icon.bin
Normal file
BIN
build/systemMenu_RED/PictoChat/banner/icon/msk_pictchat_icon.bin
Normal file
Binary file not shown.
BIN
build/systemMenu_RED/PictoChat/banner/test-utf16_v3.TWL.bsf
Normal file
BIN
build/systemMenu_RED/PictoChat/banner/test-utf16_v3.TWL.bsf
Normal file
Binary file not shown.
@ -6,12 +6,12 @@ u32 bg_char_data[8 * 6] = {
|
|||||||
0xaaaaaaaa, 0xbbbbbbbb, 0xcccccccc, 0xcccccccc,
|
0xaaaaaaaa, 0xbbbbbbbb, 0xcccccccc, 0xcccccccc,
|
||||||
0xdddddddd, 0xdddddddd, 0xdddddddd, 0xeeeeeeee,// 0002h
|
0xdddddddd, 0xdddddddd, 0xdddddddd, 0xeeeeeeee,// 0002h
|
||||||
0xeeeeeeee, 0xeeeeeeee, 0xeeeeeeee, 0xeeeeeeee,
|
0xeeeeeeee, 0xeeeeeeee, 0xeeeeeeee, 0xeeeeeeee,
|
||||||
0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff,// 0003h
|
0xeeeeeeee, 0xeeeeeeee, 0xeeeeeeee, 0xeeeeeeee,// 0003h
|
||||||
0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff,
|
0xeeeeeeee, 0xeeeeeeee, 0xeeeeeeee, 0xeeeeeeee,
|
||||||
0x11111111, 0x11111111, 0x11111111, 0x11111111,// 0004h
|
0x11111111, 0x11111111, 0x11111111, 0x11111111,// 0004h
|
||||||
0x11111111, 0x11111111, 0x11111111, 0x11111111,
|
0x11111111, 0x11111111, 0x11111111, 0x11111111,
|
||||||
0xffffffff, 0xffffff11, 0xffffff11, 0xffff11ff,// 0005h(\)
|
0xeeeeeeee, 0xeeeeee11, 0xeeeeee11, 0xeeee11ee,// 0005h(\)
|
||||||
0xffff11ff, 0xff11ffff, 0xff11ffff, 0x11ffffff,
|
0xeeee11ee, 0xee11eeee, 0xee11eeee, 0x11eeeeee,
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
@ -66,6 +66,6 @@ u16 bg_scr_data[32 * 32]=
|
|||||||
0x1802,0x1802,0x1802,0x1802,0x1802,0x1802,0x1802,0x1802,0x1802,0x1802,0x1802,0x1802,0x1802,0x1802,0x1802,0x1802,
|
0x1802,0x1802,0x1802,0x1802,0x1802,0x1802,0x1802,0x1802,0x1802,0x1802,0x1802,0x1802,0x1802,0x1802,0x1802,0x1802,
|
||||||
0x1801,0x1801,0x1801,0x1801,0x1801,0x1801,0x1801,0x1801,0x1801,0x1801,0x1801,0x1801,0x1801,0x1801,0x1801,0x1801,//23
|
0x1801,0x1801,0x1801,0x1801,0x1801,0x1801,0x1801,0x1801,0x1801,0x1801,0x1801,0x1801,0x1801,0x1801,0x1801,0x1801,//23
|
||||||
0x1801,0x1801,0x1801,0x1801,0x1801,0x1801,0x1801,0x1801,0x1801,0x1801,0x1801,0x1801,0x1801,0x1801,0x1801,0x1801,
|
0x1801,0x1801,0x1801,0x1801,0x1801,0x1801,0x1801,0x1801,0x1801,0x1801,0x1801,0x1801,0x1801,0x1801,0x1801,0x1801,
|
||||||
};// Buffer for screen data(背景の枠)
|
};// Bueeer eor screen data(背景の枠)
|
||||||
|
|
||||||
u16 bg_scr_data2[32 * 32];//スクリーンデータ2
|
u16 bg_scr_data2[32 * 32];//スクリーンデータ2
|
||||||
Loading…
Reference in New Issue
Block a user