From 09f495246d325dfe6c1a5786616bcb58530fd4b1 Mon Sep 17 00:00:00 2001 From: yoshida_teruhisa Date: Thu, 1 Nov 2007 08:39:35 +0000 Subject: [PATCH] =?UTF-8?q?=E3=83=90=E3=83=8A=E3=83=BC=E3=81=AE=E8=BF=BD?= =?UTF-8?q?=E5=8A=A0=E3=80=82=20systemMenu=E3=81=A7TitleProperty=E3=81=AB?= =?UTF-8?q?=E6=BA=96=E3=81=98=E3=81=9F=E3=83=90=E3=83=8A=E3=83=BC=E8=A1=A8?= =?UTF-8?q?=E7=A4=BA=E3=81=AE=E5=AE=9F=E8=A3=85=E3=80=82=20=E3=82=BD?= =?UTF-8?q?=E3=83=BC=E3=82=B9=E3=81=8C=E7=BE=8E=E3=81=97=E3=81=8F=E3=81=AA?= =?UTF-8?q?=E3=81=84=E3=80=82=E8=83=8C=E6=99=AF=E7=9C=9F=E3=81=A3=E7=99=BD?= =?UTF-8?q?=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit git-svn-id: file:///Users/lillianskinner/Downloads/platinum/twl/TwlIPL/trunk@93 b08762b0-b915-fc4b-9d8c-17b2551a87ff --- build/systemMenu_RED/Launcher/ARM9/main.rsf | 2 +- .../Launcher/ARM9/src/launcher.c | 203 ++++++++++++------ build/systemMenu_RED/data/CardBanner.bnr | Bin 0 -> 2624 bytes build/systemMenu_RED/data/DownloadBanner.bnr | Bin 0 -> 2624 bytes build/systemMenu_RED/data/EmptyBanner.bnr | Bin 0 -> 2624 bytes build/systemMenu_RED/data/PictoChatBanner.bnr | Bin 0 -> 2624 bytes build/systemMenu_RED/data/SettingBanner.bnr | Bin 0 -> 2624 bytes build/systemMenu_RED/data/myGameBanner.bnr | Bin 2624 -> 0 bytes build/systemMenu_RED/data/myGameBanner2.bnr | Bin 2624 -> 0 bytes 9 files changed, 135 insertions(+), 70 deletions(-) create mode 100644 build/systemMenu_RED/data/CardBanner.bnr create mode 100644 build/systemMenu_RED/data/DownloadBanner.bnr create mode 100644 build/systemMenu_RED/data/EmptyBanner.bnr create mode 100644 build/systemMenu_RED/data/PictoChatBanner.bnr create mode 100644 build/systemMenu_RED/data/SettingBanner.bnr delete mode 100644 build/systemMenu_RED/data/myGameBanner.bnr delete mode 100644 build/systemMenu_RED/data/myGameBanner2.bnr diff --git a/build/systemMenu_RED/Launcher/ARM9/main.rsf b/build/systemMenu_RED/Launcher/ARM9/main.rsf index bec679d7..ca531130 100644 --- a/build/systemMenu_RED/Launcher/ARM9/main.rsf +++ b/build/systemMenu_RED/Launcher/ARM9/main.rsf @@ -143,5 +143,5 @@ RomSpec Segment ALL HostRoot ../../data Root /data - File NTR_IPL_font_m.NFTR myGameBanner.bnr myGameBanner2.bnr + File NTR_IPL_font_m.NFTR CardBanner.bnr DownloadBanner.bnr EmptyBanner.bnr PictoChatBanner.bnr SettingBanner.bnr } \ No newline at end of file diff --git a/build/systemMenu_RED/Launcher/ARM9/src/launcher.c b/build/systemMenu_RED/Launcher/ARM9/src/launcher.c index fdd3ed52..5581150f 100644 --- a/build/systemMenu_RED/Launcher/ARM9/src/launcher.c +++ b/build/systemMenu_RED/Launcher/ARM9/src/launcher.c @@ -38,7 +38,7 @@ static void DrawLauncher(u16 nowCsr, const MenuParam *pMenu); // global variable ------------------------------------- // static variable ------------------------------------- -static u16 s_csr = 0; // メニューのカーソル位置 +static int s_csr = 0; // メニューのカーソル位置 static const u16 *s_pStrLauncher[ LAUNCHER_ELEMENT_NUM ]; // ロゴメニュー用文字テーブルへのポインタリスト // const data ----------------------------------------- @@ -106,76 +106,132 @@ static const u16 *const str_backlight[] = { // ランチャー //====================================================== -// きめうちバナー +// バナー表示関係(暫定) #define DBGBNR #ifdef DBGBNR -#define MAX_TITLE_PROPERTY 40 -static BannerFile *banner; -static BannerFile *banner2; -static TitleProperty tp[MAX_TITLE_PROPERTY]; -static GXOamAttr banner_oam_attr; -static GXOamAttr banner_oam_attr2; +static const u8 TITLE_PROPERTY_NUM = 40; +static BannerFile *empty_banner; +static BannerFile *card_banner; +static BannerFile *pictochat_banner; +static BannerFile *download_banner; +static BannerFile *setting_banner; +static TitleProperty tp[TITLE_PROPERTY_NUM]; +static u8 image_index_list[TITLE_PROPERTY_NUM]; +static const int MAX_SHOW_BANNER = 6; +static GXOamAttr banner_oam_attr[MAX_SHOW_BANNER]; +static u8 *pbanner_image_list[TITLE_PROPERTY_NUM*2]; +static int banner_count = 0; -// バナー画像のロード及びOBJ関係初期化 -// 実際には、受け取ったリストからイメージデータのアドレスを取得してVRAMにイメージデータをロードし、 -// 表示するぶんだけ毎フレームGXOamAttrにしてやる必要があるっぽい -// VRAMに格納したデータへは、リストのインデックスからアクセス? +static void LoadBannerFiles() +{ + // ファイル読み込み部分。多分emptyバナーだけ読み込む事になる。本来、アプリ系は外部から取得 + // 最後に解放しないと駄目。だが、どこで解放すればいいのやら…… + u32 size = CMN_LoadFile( (void **)&empty_banner, "data/EmptyBanner.bnr", &g_allocator); + NNS_G2D_ASSERT( size > 0 ); + size = CMN_LoadFile( (void **)&card_banner, "data/CardBanner.bnr", &g_allocator); + NNS_G2D_ASSERT( size > 0 ); + size = CMN_LoadFile( (void **)&pictochat_banner, "data/PictochatBanner.bnr", &g_allocator); + NNS_G2D_ASSERT( size > 0 ); + size = CMN_LoadFile( (void **)&download_banner, "data/DownloadBanner.bnr", &g_allocator); + NNS_G2D_ASSERT( size > 0 ); + size = CMN_LoadFile( (void **)&setting_banner, "data/SettingBanner.bnr", &g_allocator); + NNS_G2D_ASSERT( size > 0 ); +} + +// パレットの読み込みやOBJ関係の初期化 static void BannerInit() { int l; - u32 size = CMN_LoadFile( (void **)&banner, "data/myGameBanner.bnr", &g_allocator); - NNS_G2D_ASSERT( size > 0 ); - size = CMN_LoadFile( (void **)&banner2, "data/myGameBanner2.bnr", &g_allocator); - NNS_G2D_ASSERT( size > 0 ); + LoadBannerFiles(); + // ここでやるべきじゃない気がするBGとOBJの設定 GX_SetVisiblePlane(GX_PLANEMASK_OBJ | GX_PLANEMASK_BG0); // display only OBJ&BG0 - GX_SetOBJVRamModeChar(GX_OBJVRAMMODE_CHAR_1D_32K); // 2D mapping mode + GX_SetOBJVRamModeChar(GX_OBJVRAMMODE_CHAR_1D_128K); // 2D mapping mode - GX_LoadOBJPltt( banner->v1.pltt, 0, BNR_PLTT_SIZE ); - GX_LoadOBJ(banner->v1.image, 0x20, BNR_IMAGE_SIZE); - G2_SetOBJAttr( &banner_oam_attr, // OAM pointer - 128, // X position - 128, // Y position - 0, // Priority - GX_OAM_MODE_NORMAL, // Bitmap mode - FALSE, // mosaic off - GX_OAM_EFFECT_NONE, // affine off - GX_OAM_SHAPE_32x32, // 32x32 size - GX_OAM_COLOR_16, // 16 color - 1, // charactor - 0, // palette - 0); // affine - DC_FlushRange(&banner_oam_attr, sizeof(banner_oam_attr)); + // パレット読み込み + GX_LoadOBJPltt( empty_banner->v1.pltt, 0, BNR_PLTT_SIZE ); - GX_LoadOBJ(banner2->v1.image, 0x20+BNR_IMAGE_SIZE, BNR_IMAGE_SIZE); - G2_SetOBJAttr( &banner_oam_attr2, // OAM pointer - 128, // X position - 128, // Y position - 0, // Priority - GX_OAM_MODE_NORMAL, // Bitmap mode - FALSE, // mosaic off - GX_OAM_EFFECT_NONE, // affine off - GX_OAM_SHAPE_32x32, // 32x32 size - GX_OAM_COLOR_16, // 16 color - 17, // charactor - 0, // palette - 0); // affine - DC_FlushRange(&banner_oam_attr2, sizeof(banner_oam_attr)); - - for(l=0;lv1.image; + for(m=0;mv1.gameName[GetNCDWork()->option.language]; + int width = NNS_G2dTextCanvasGetStringWidth(&gTextCanvas, str, NULL); + PutStringUTF16( (256-width)/2, 48, TXT_COLOR_BLACK, str ); + } } #endif //DBGBNR @@ -204,7 +260,7 @@ void LauncherInit( TitleProperty *pTitleList ) s_launcherPos[ 0 ].enable = FALSE; // DSカードが無い時は、先頭要素を無効にする。 } - DrawMenu( s_csr, &s_launcherParam ); + //DrawMenu( s_csr, &s_launcherParam ); SVC_CpuClear( 0x0000, &tpd, sizeof(TpWork), 16 ); @@ -228,7 +284,14 @@ TitleProperty *LauncherMain( TitleProperty *pTitleList ) static BOOL touch_bl = FALSE; BOOL tp_bl_on_off = FALSE; BOOL tp_select = FALSE; - u16 csr_old; + static int csr_v = 0; + static int selected = 0; + + // 文字描画クリア + NNS_G2dCharCanvasClear(&gCanvas,TXT_COLOR_WHITE); + + PrintfSJIS( 0, 0, TXT_COLOR_BLUE, "TWL-SYSTEM MENU ver.%06x", SYSMENU_VER ); + DrawBackLightSwitch(); // RTC情報の取得&表示 GetAndDrawRtcData(); @@ -255,23 +318,25 @@ TitleProperty *LauncherMain( TitleProperty *pTitleList ) //-------------------------------------- // キー入力処理 //-------------------------------------- - if(pad.trg & PAD_KEY_DOWN){ // カーソルの移動 - if( ++s_csr == LAUNCHER_ELEMENT_NUM ) { - s_csr = 0; - } + if(pad.cont & PAD_KEY_RIGHT){ // バナー選択 + if(csr_v == 0) csr_v = 1; } - if( pad.trg & PAD_KEY_UP ){ - if( --s_csr & 0x80 ) { - s_csr = LAUNCHER_ELEMENT_NUM - 1; - } + if( pad.cont & PAD_KEY_LEFT ){ + if(csr_v == 0) csr_v = -1; } - csr_old = s_csr; - tp_select = SelectMenuByTP( &s_csr, &s_launcherParam ); + s_csr += csr_v; + if((TITLE_PROPERTY_NUM-1)*12 < s_csr) s_csr = (TITLE_PROPERTY_NUM-1)*12; + if( s_csr < 0 ) s_csr = 0; + if(s_csr%12 == 0){ + csr_v = 0; + selected = s_csr/12; + } + // tp_select = SelectMenuByTP( &s_csr, &s_launcherParam ); - DrawMenu( s_csr, &s_launcherParam ); + // DrawMenu( s_csr, &s_launcherParam ); #ifdef DBGBNR - BannerDraw(); + BannerDraw( s_csr, selected, NULL ); #endif if( ( pad.trg & PAD_BUTTON_A ) || ( tp_select ) ) { // メニュー項目への分岐 diff --git a/build/systemMenu_RED/data/CardBanner.bnr b/build/systemMenu_RED/data/CardBanner.bnr new file mode 100644 index 0000000000000000000000000000000000000000..3e87abc4614784ccfd77f8e01eda7f62ef614060 GIT binary patch literal 2624 zcmd^`YEW5V>TI6T^W-XYn|r*zAFFme~bK zWwVE*vzf!j#$u8*$p(eFT$Oa26O>fPteuT;zC9Ze@(*MOe)F;O&AyK}JM096!RL*M z4LECzMx&ov>+~c^(j@62DouKbYNkDPiuMR?t(1~VZObOdp-+!vA)eHaTsxIN^FZ1ZFh`ixwd7x_GP4Cx>lj!ngwHi5XOE# z*w5ho7IFGM=Y5Y?U*I_cA%x?BVhlwgHWol}u)d9!gW!xAxQ=3)reUBM78bT`+sy1N zqhJ{G#(&`E3uptpUc30=%E8si>x3{l~f(5ALy8klXfINTyyRee$ T{+Ho?uKRa${{Op^>;C@$S=}%| literal 0 HcmV?d00001 diff --git a/build/systemMenu_RED/data/DownloadBanner.bnr b/build/systemMenu_RED/data/DownloadBanner.bnr new file mode 100644 index 0000000000000000000000000000000000000000..f14caef20710f04b5e0de104af7171b1283006b4 GIT binary patch literal 2624 zcmd^SO*(@adV|t1>BvgGBL&Jh)G7P zfKO7&%apRRP4gPvoaTO`8}COT91*pGZq)J{4>ymZ-HkrV^aI};1fDB=PgEfs!mp#o zwOWq>nsc?*vs(*2o71lrqXUDMEoX#bIF_M1)&)?~9ivoo^pZBy4O?C(_>dzyKD9fZ z5FJ-kpJE*erBq-+QHDXNg#-|rGit%I0cOjfh(mN;*EEP`AhBgxdT!@6N}4vK{RbXC z1DlZb<#Vqte!MhxWqxAw#@=*x>-`=7%JDDwW_ XA@>X2|02HeBJaOb@c-ZKLihg%8rDS= literal 0 HcmV?d00001 diff --git a/build/systemMenu_RED/data/EmptyBanner.bnr b/build/systemMenu_RED/data/EmptyBanner.bnr new file mode 100644 index 0000000000000000000000000000000000000000..35bb2e40d4f126bf3a919da6fbc8240e7b9c4bd7 GIT binary patch literal 2624 zcmd^9zi-n(7(K+&fdRJ}m@3t&P`gAzb}Dr!LwuJ)g(4KVEHqv~7eRi|0m*4WVznhk z7H4OOZMIe#OssHvi87-NfR`!difTa_$->XFOkW=BBLY9dp*Gq`{Fl^1n_Y zMty3J(EA9zZ($z^rBq-;QHFu2Wfe`3&0!451~6Milrcf3X&MH|D8ksXEORPPYs?x( z#rO|+_y%M`-aWtdsqpR2%)-X`+D+zXXm;PCm;8h2qQJJ vjJZp;$Q!bqkJ$fGE|Ds!=Q{s7&OXoQ|ByV*b^a&hajx?_IsgAX$aVg|aiky4 literal 0 HcmV?d00001 diff --git a/build/systemMenu_RED/data/PictoChatBanner.bnr b/build/systemMenu_RED/data/PictoChatBanner.bnr new file mode 100644 index 0000000000000000000000000000000000000000..87072f9aa865cb681d87eee8b1656ef8b1351031 GIT binary patch literal 2624 zcmd^d8QBMy0 ziXSSK?Em%eE1*ivGSy30l}uMLMo2V{BN1W)N{=DSrqB$hK@+AtTnQMga5`t1(E#Dg zl=3>ItnSe=V_ecd>y6c!MB+Je5RK)a+mk8!r>|s`HluC|k?`EE_>qYaxPX9%m;vnx zv-yMuh;2_id|e)=p3A7~(7Nl-aU9=uY~Q_s)NJ3W)qJ~VwZ`#4jH2Tb7Y@QQkE1b49)d^Az;SH0ZCe&L%Ryt;b?s6vGisLAvi<>YzJf9# zZ+EVJym@kK;r7t?{KXZG6Rk*(Umb#}^4B z56BXENM4W~@|x@tpFAhe@T?lONY+Wa((~WI9Z==<-z1MKJ^x4e?N@pI{fhtp?p1pJ Fe*mGdGSdJ6 literal 0 HcmV?d00001 diff --git a/build/systemMenu_RED/data/SettingBanner.bnr b/build/systemMenu_RED/data/SettingBanner.bnr new file mode 100644 index 0000000000000000000000000000000000000000..e1f6218ecb8c07862ee762358d8f853af61e5582 GIT binary patch literal 2624 zcmd^W)7@vkPtQL2I@^BJXX_u?RaKVd zpFGct(=02pYzTCb4T0_!Lwydrgq>@xmDc;J8=~^lZ0%5~XNO8wJ|4}KlBtq1355_? zY8l6$-VyD=W|`JA$xh67H)75y;`(vOV;?MrywKgFLWiQz=Q&VQ_D@uyPI^GD9`vL* zkZJbwqJK}O31WPiZUzwH3$Yc5vp5i2esC63Fz`tTBEbRCB${90d-H-O6%Y6&MEwR) ztKm|WF|Ozxr(=1XfK9M8P6h$!AVwfYKsbaT6G$J@;Zw=`7pv(ebp*M{b|DTY$EJqk zO|fmyu`SQJ1x(AcP1CbXqdDFk{21;0ia|KqAa@jp;V24M*6|)0p(Y*CLfUsUcF+LX zReuMLTiJ-Q5o19t%Q6gzVWY9*I96p>8Kz-0jsL*S*I+aD;rWekw}0Q6x!aoia{p+d zczCnfZhdY4U0aCWzb?1$eNI=eIy!aOpJkjqVRLMmy*AqF6?%-xg2|!wD-#7NJ(zssqAX&glde^iH9FZ~+{7en7Aty9 z)RX8TOF@tdGTUD4q1AB}|3p2^ZtP(_b=(|^w3m#aP)eoo_a?~(#r3#q$eTCc`~QCL zeY1iFFP!{q{3tEn$4#3#I_yVo&i~oJp-~b&W!aG>K4>Z%d$+%x?yH?{F+bf zeK$>W?@iNSJzQeN z)v+?Oj-_jk^|T2xUApnubj-(7AY;$;l%Y)Kl?VNzR$K!T@rtbm!csqi66x; z;<@N+c^WHQ=fo{>SKJo6#ThXw`swr2lY71u`$bg$Dt;KYZJ#0W;)m1XB&?Q;#n$gb zmxoBD?G&b6G(tJ@Q;|mL5cmjXKzTZX_cSFbOJjHok*5)Mt+IHI!s3`~-S+B#&8q;P zad;hsTVjqN00Z~)XvgVL$Q-tIQ-q$ZFWFgu@arD0f)uvGoS92V-W@w$;_Y24v z53ac_?IFXGE+RR%+dTEVxcNy(XKCQaHjKoW8z+xbqZ5a59`9HrfhFf>RF)Qj5Dj7j z!W2c`JiSC6?V7uN9Y>A41DokEut{UyTp`==KC~y<4{di_3Xrl7cbbA#2{Fge7k9|m zve$RuX`GgJ(r;g@5N*Zo^ZsX1V-i#A&7P;mXYMl7nQOt__!LfQSJ%ZU2OFL~&pp3j zJMK=NCAaSnxdzOi#oZZq&p|R>%7AU zI(;x2y{|$RU3YH>ch$QeeCpxDD6oV(<~!9!>3#3OwcLN-{CnZz`TrB1QBPx4>x*4i z;(T8I(SFh2zUPZchiYek^^>d>9}L(1_L_%#=lq!PA9t4h e^r+@1wlBiwxBJuA9$x+P>iT!;7R&nK$X@~Il-5=N diff --git a/build/systemMenu_RED/data/myGameBanner2.bnr b/build/systemMenu_RED/data/myGameBanner2.bnr deleted file mode 100644 index 8a361a66ed9ca12e741ddc0a63e640d63d38df81..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2624 zcmdT^Ply|36o0LUtV<6jDtL^^g2}=9$)trM9!$Pzu`E_&C$4SjvQ0bL*mM(;th20Q zuSqQwq#h;+LQ#-ez0`x&=~k+y?O}GKhb;)En}Za*WCR!2-4@5+n`8}2*WY7eJ2NUH~}-cfq+0wFhce-57)MBTMgT?OkLA79387+)-1DLgPPioGi25bwLW90s?4d*sID6O zKznu7bqb5Fqie2ny9=^GcihW2ZP&gz2eJ;&&so~MWwk%+#rM31xsJf=jkR;@=D9zR z#xN1MUNdrFI+zZo8>_|NjiRpQc4t(5wE$5AEdS+bJJxyjbRce|{fF-~bRVvW~ zBT9ai4!Ancjasy?S&{?yaJC`hxgH+!Y;hL3|`W7r%)iFVK0|dry2Vz7*8H8 zDTe9kGmXQqiE)wCpG%*FZO>;^tbA}ryaTK4Vzc#o(B&~w=_QKOL7Jcvg{exDbOL;W z3ZOEb!grpsRHP|<#VF8;`&LD~Ct>lXZ{716{)bluKGX0z4$BF|9mGBkp9-Sppk>Vo z-=+%5DSYqTQpjSom(u9}WmKC-JzUK!YAw)He%~vQF&PMv-n#(BDLkp-5VpHbOb1Y)!g8xW@?@|Ni?>gd(H(bp_$^|>* z5jAEpwZZIpYJBD{3;nrP{Eg4yl=pQTIF(?-)91OD|F)g>C(jbz1Ku3ot0K-Em-n6b zrUESZ9!%T^L}K(Rc0W$iuZZs}&#j0$xudK