diff --git a/build/buildtools/modulerules.sysmenu b/build/buildtools/modulerules.sysmenu index 35c237ac..973fac58 100644 --- a/build/buildtools/modulerules.sysmenu +++ b/build/buildtools/modulerules.sysmenu @@ -25,7 +25,7 @@ include $(NITROSYSTEM_ROOT)/build/buildtools/modulerules %.tad: $(BINDIR)/$(TARGET_BIN) - $(MAKETAD) $< -o $@ + $(MAKETAD) $< $(MAKETAD_FLAGS) -o $@ # .rbin $(BINDIR)/$(TARGET_BIN_BASENAME).rbin: $(OBJS) diff --git a/build/systemMenu_RED/Launcher/ARM9/Makefile b/build/systemMenu_RED/Launcher/ARM9/Makefile index 194c8407..2cb15d0b 100644 --- a/build/systemMenu_RED/Launcher/ARM9/Makefile +++ b/build/systemMenu_RED/Launcher/ARM9/Makefile @@ -61,6 +61,7 @@ ADDRESS_DTCM = 0x0e000000 DEFAULT_COMP_ARM7 = hyena MAKEROM_FLAGS += -F -DTITLEID_LO='$(TITLEID_LO)' +MAKETAD_FLAGS += -s include $(TWLSDK_ROOT)/add-ins/es/commondefs.es include $(TWL_IPL_RED_ROOT)/build/buildtools/commondefs diff --git a/build/systemMenu_RED/Launcher/ARM9/main.rsf b/build/systemMenu_RED/Launcher/ARM9/main.rsf index 144dfc1d..837cfa37 100644 --- a/build/systemMenu_RED/Launcher/ARM9/main.rsf +++ b/build/systemMenu_RED/Launcher/ARM9/main.rsf @@ -95,7 +95,7 @@ Property # BANNER FILE: generated from Banner Spec File # #BannerFile ./etc/myGameBanner.bnr - BannerFile $(TWLSDK_ROOT)/include/twl/specfiles/default.bnr + BannerFile ../banner/banner.bnr ### ### Setting for TWL diff --git a/build/systemMenu_RED/Launcher/ARM9/src/launcher.c b/build/systemMenu_RED/Launcher/ARM9/src/launcher.c index b2d06b19..3d4e0426 100644 --- a/build/systemMenu_RED/Launcher/ARM9/src/launcher.c +++ b/build/systemMenu_RED/Launcher/ARM9/src/launcher.c @@ -509,6 +509,7 @@ static TitleProperty *ProcessPads( TitleProperty *pTitleList ) u16 dummy; u16 tp_lr = 3; TitleProperty *ret = NULL; + LauncherBootFlags tempflag = {TRUE, 0, TRUE, FALSE, FALSE, FALSE, 0}; // バックライト関係のキー処理 ProcessBackLightPads(); @@ -530,6 +531,10 @@ static TitleProperty *ProcessPads( TitleProperty *pTitleList ) { s_wavstop = FALSE; } + + if( pad.trg & PAD_BUTTON_B ) { + OS_SetLauncherParamAndResetHardware( 0, NULL, &tempflag ); + } if(pad.cont & PAD_KEY_RIGHT || tp_lr == 1){ // バナー選択 if(csr_v == 0) csr_v = 1; diff --git a/build/systemMenu_RED/Launcher/Makefile b/build/systemMenu_RED/Launcher/Makefile index 02cacbf9..9cf34e12 100644 --- a/build/systemMenu_RED/Launcher/Makefile +++ b/build/systemMenu_RED/Launcher/Makefile @@ -20,7 +20,7 @@ include $(TWLSDK_ROOT)/build/buildtools/commondefs #---------------------------------------------------------------------------- -SUBDIRS = ARM9 +SUBDIRS = banner ARM9 #---------------------------------------------------------------------------- diff --git a/build/systemMenu_RED/Launcher/banner/Makefile b/build/systemMenu_RED/Launcher/banner/Makefile new file mode 100644 index 00000000..ea261271 --- /dev/null +++ b/build/systemMenu_RED/Launcher/banner/Makefile @@ -0,0 +1,49 @@ +#! make -f +#---------------------------------------------------------------------------- +# Project: TwlIPL +# File: Makefile +# +# Copyright 2007 Nintendo. All rights reserved. +# +# These coded instructions, statements, and computer programs contain +# proprietary information of Nintendo of America Inc. and/or Nintendo +# Company Ltd., and are protected by Federal copyright law. They may +# not be disclosed to third parties or copied or duplicated in any form, +# in whole or in part, without the prior written consent of Nintendo. +# +# $Date:: 2007-10-03#$ +# $Rev: 1319 $ +# $Author: kitase_hirotake $ +#---------------------------------------------------------------------------- + +include $(TWL_IPL_RED_ROOT)/build/buildtools/commondefs + +ICON_DIR = ./icon + +BANNER_ICON = $(ICON_DIR)/gameIcon.bmp +BANNER_SPEC = banner_v3.bsf + +TARGETS = banner.bnr +INSTALL_DIR = ./ +INSTALL_TARGETS = $(TARGETS) + +BANNER_ICON_NAME = $(basename $(BANNER_ICON)) + +LDIRT_CLEAN = $(TARGETS) \ + $(BANNER_ICON_NAME).nbfs \ + $(BANNER_ICON_NAME).nbfc \ + $(BANNER_ICON_NAME).nbfp \ + $(TARGETS:.bnr=.srl) + +include $(TWL_IPL_RED_ROOT)/build/buildtools/modulerules + +#---------------------------------------------------------------------------- +# build +#---------------------------------------------------------------------------- +do-build: $(TARGETS) + +$(TARGETS): $(BANNER_SPEC) $(BANNER_ICON) + $(NTEXCONV) -no -bg -bgb -bgnc $(BANNER_ICON) >/dev/null && \ + $(MAKEBANNER) -d -N $(BANNER_ICON_NAME) $(BANNER_SPEC) $(TARGETS) + +# diff --git a/build/systemMenu_RED/Launcher/banner/banner_v3.bsf b/build/systemMenu_RED/Launcher/banner/banner_v3.bsf new file mode 100644 index 00000000..975188c4 Binary files /dev/null and b/build/systemMenu_RED/Launcher/banner/banner_v3.bsf differ diff --git a/build/systemMenu_RED/Launcher/banner/icon/gameIcon.bmp b/build/systemMenu_RED/Launcher/banner/icon/gameIcon.bmp new file mode 100644 index 00000000..da2dda86 Binary files /dev/null and b/build/systemMenu_RED/Launcher/banner/icon/gameIcon.bmp differ diff --git a/build/systemMenu_RED/MachineSettings/ARM9/Makefile b/build/systemMenu_RED/MachineSettings/ARM9/Makefile index 2a0afbd8..50ad594b 100644 --- a/build/systemMenu_RED/MachineSettings/ARM9/Makefile +++ b/build/systemMenu_RED/MachineSettings/ARM9/Makefile @@ -46,6 +46,7 @@ SRCS = main.c MachineSetting.c \ LINCLUDES = $(MISC_DIR)/include MAKEROM_FLAGS += -DTITLEID_LO='$(TITLEID_LO)' +MAKETAD_FLAGS += -s #LLIBRARIES += libreset_param$(TWL_LIBSUFFIX).a diff --git a/build/systemMenu_RED/PictoChat/ARM9/Makefile b/build/systemMenu_RED/PictoChat/ARM9/Makefile index 59d7db08..d1972761 100644 --- a/build/systemMenu_RED/PictoChat/ARM9/Makefile +++ b/build/systemMenu_RED/PictoChat/ARM9/Makefile @@ -39,6 +39,7 @@ SRCS = main.c PictoChat.c \ LINCLUDES = $(MISC_DIR)/include MAKEROM_FLAGS += -DTITLEID_LO='$(TITLEID_LO)' +MAKETAD_FLAGS += -s include $(TWL_IPL_RED_ROOT)/build/buildtools/commondefs diff --git a/build/tests/ExecPreLoadedApp/ARM9/ARM9-TS.lsf b/build/tests/ExecPreLoadedApp/ARM9/ARM9-TS.lsf new file mode 100644 index 00000000..17f40824 --- /dev/null +++ b/build/tests/ExecPreLoadedApp/ARM9/ARM9-TS.lsf @@ -0,0 +1,54 @@ +#---------------------------------------------------------------------------- +# Project: TwlSDK - include +# File: ARM9-BB.lsf +# +# Copyright 2007 Nintendo. All rights reserved. +# +# These coded insructions, statements, and computer programs contain +# proprietary information of Nintendo of America Inc. and/or Nintendo +# Company Ltd., and are protected by Federal copyright law. They may +# not be disclosed to third parties or copied or duplicated in any form, +# in whole or in part, without the prior written consent of Nintendo. +# +# $Date:: 2007-11-20#$ +# $Rev: 221 $ +# $Author: yoshida_teruhisa $ +#---------------------------------------------------------------------------- +# +# TWL LCF SPEC FILE +# + +Static $(TARGET_NAME) +{ + Address 0x02800000 + Object $(OBJS_STATIC) + Library $(LLIBS) $(GLIBS) $(CW_LIBS) +} + + +Autoload ITCM +{ + Address 0x01ff8000 + Object * (.itcm) + Object $(OBJS_AUTOLOAD) (.text) + Object $(OBJS_AUTOLOAD) (.rodata) +} + +Autoload DTCM +{ + Address $(ADDRESS_DTCM) + Object * (.dtcm) + Object $(OBJS_AUTOLOAD) (.data) + Object $(OBJS_AUTOLOAD) (.sdata) + Object $(OBJS_AUTOLOAD) (.bss) + Object $(OBJS_AUTOLOAD) (.sbss) +} + +Ltdautoload LTDMAIN +{ + # NITRO/TWL 共有のオーバーレイが在る場合は、さらにその後ろに配置する必要があります。 + After $(TARGET_NAME) + Object * (.ltdmain) + Object $(OBJS_LTDAUTOLOAD) + Library $(LLIBS_EX) $(GLIBS_EX) +} diff --git a/build/tests/ExecPreLoadedApp/ARM9/Makefile b/build/tests/ExecPreLoadedApp/ARM9/Makefile new file mode 100644 index 00000000..0390f39d --- /dev/null +++ b/build/tests/ExecPreLoadedApp/ARM9/Makefile @@ -0,0 +1,66 @@ +#! make -f +#---------------------------------------------------------------------------- +# Project: TwlSDK - demos - simpleShoot-1 +# File: Makefile +# +# Copyright 2007 Nintendo. All rights reserved. +# +# These coded instructions, statements, and computer programs contain +# proprietary information of Nintendo of America Inc. and/or Nintendo +# Company Ltd., and are protected by Federal copyright law. They may +# not be disclosed to third parties or copied or duplicated in any form, +# in whole or in part, without the prior written consent of Nintendo. +# +# $Date:: $ +# $Rev: $ +# $Author: $ +#---------------------------------------------------------------------------- + +#---------------------------------------------------------------------------- + +TARGET_FIRM = SYSTEMMENU +TARGET_PLATFORM = TWL +TWL_ARCHGEN = LIMITED + +TITLEID_LO = MLEP +TARGET_TAD = $(BINDIR)/$(TITLEID_LO).$(TWL_BUILD_DIR).tad + +TARGET_BIN = main.srl + +LCFILE_SPEC = ARM9-TS.lsf +ROM_SPEC = main.rsf + +MISC_DIR = $(TWL_IPL_RED_ROOT)/build/systemMenu_RED/misc + +SRCS = main.c ExecPreLoadedApp.c \ + $(MISC_DIR)/src/misc.c $(MISC_DIR)/src/cmn.c + +LINCLUDES = $(MISC_DIR)/include + +LLIBRARIES += libnam$(TWL_LIBSUFFIX).a \ + libese$(TWL_LIBSUFFIX).a \ + libreloc_info$(TWL_LIBSUFFIX).a + +ADDRESS_DTCM = 0x0e000000 + +DEFAULT_COMP_ARM7 = hyena + +MAKEROM_FLAGS += -F -DTITLEID_LO='$(TITLEID_LO)' + +include $(TWLSDK_ROOT)/add-ins/es/commondefs.es +include $(TWL_IPL_RED_ROOT)/build/buildtools/commondefs + +LDIRT_CLEAN = $(TARGET_TAD) +INSTALL_TARGETS = $(TARGET_TAD) +INSTALL_DIR = $(SDK_NMENU_DATADIR) + +#---------------------------------------------------------------------------- + +do-build : $(TARGETS) + + +include $(TWL_IPL_RED_ROOT)/build/buildtools/modulerules + +#---------------------------------------------------------------------------- + +#===== End of Makefile ===== diff --git a/build/tests/ExecPreLoadedApp/ARM9/main.rsf b/build/tests/ExecPreLoadedApp/ARM9/main.rsf new file mode 100644 index 00000000..6cba2afe --- /dev/null +++ b/build/tests/ExecPreLoadedApp/ARM9/main.rsf @@ -0,0 +1,184 @@ +#---------------------------------------------------------------------------- +# Project: TwlSDK - include +# File: ROM-BB.rsf +# +# Copyright 2007 Nintendo. All rights reserved. +# +# These coded insructions, statements, and computer programs contain +# proprietary information of Nintendo of America Inc. and/or Nintendo +# Company Ltd., and are protected by Federal copyright law. They may +# not be disclosed to third parties or copied or duplicated in any form, +# in whole or in part, without the prior written consent of Nintendo. +# +# $Date:: 2007-12-19#$ +# $Rev: 378 $ +# $Author: yoshida_teruhisa $ +#---------------------------------------------------------------------------- +# +# TWL ROM SPEC FILE +# + +Arm9 +{ + Static "$(MAKEROM_ARM9:r).TWL.FLX.sbin$(COMPSUFFIX9)" + OverlayDefs "$(MAKEROM_ARM9:r)_defs.TWL.FLX.sbin$(COMPSUFFIX9)" + OverlayTable "$(MAKEROM_ARM9:r)_table.TWL.FLX.sbin$(COMPSUFFIX9)" + Elf "$(MAKEROM_ARM9:r).tef" +} + +Arm7 +{ + Static "$(MAKEROM_ARM7_BASE:r).TWL.FLX.sbin$(COMPSUFFIX7)" + OverlayDefs "$(MAKEROM_ARM7_BASE:r)_defs.TWL.FLX.sbin$(COMPSUFFIX7)" + OverlayTable "$(MAKEROM_ARM7_BASE:r)_table.TWL.FLX.sbin$(COMPSUFFIX7)" + Elf "$(MAKEROM_ARM7_BASE:r).tef" +} + +Arm9.Ltd +{ + Static "$(MAKEROM_ARM9:r).TWL.LTD.sbin$(COMPSUFFIX9)" + OverlayDefs "$(MAKEROM_ARM9:r)_defs.TWL.LTD.sbin$(COMPSUFFIX9)" + OverlayTable "$(MAKEROM_ARM9:r)_table.TWL.LTD.sbin$(COMPSUFFIX9)" +} + +Arm7.Ltd +{ + Static "$(MAKEROM_ARM7_BASE:r).TWL.LTD.sbin$(COMPSUFFIX7)" + OverlayDefs "$(MAKEROM_ARM7_BASE:r)_defs.TWL.LTD.sbin$(COMPSUFFIX7)" + OverlayTable "$(MAKEROM_ARM7_BASE:r)_table.TWL.LTD.sbin$(COMPSUFFIX7)" +} + +Property +{ + ### + ### Settings for FinalROM + ### + #### BEGIN + # + # TITLE NAME: Your product name within 12bytes + # + #TitleName "YourAppName" + + # + # MAKER CODE: Your company ID# in 2 ascii words + # issued by NINTENDO + # + #MakerCode "00" + + # + # REMASTER VERSION: Mastering version + # + #RomVersion 0 + + # + # ROM SPEED TYPE: [MROM/1TROM/UNDEFINED] + # + RomSpeedType $(MAKEROM_ROMSPEED) + + # + # ROM SIZE: in bit [64M/128M/256M/512M/1G/2G] + # + #RomSize 128M + #RomSize 256M + + # + # ROM PADDING: TRUE if finalrom + # + #RomFootPadding TRUE + + # + # ROM HEADER TEMPLATE: Provided to every product by NINTENDO + # + #RomHeaderTemplate ./etc/rom_header.template.sbin + + # + # BANNER FILE: generated from Banner Spec File + # + #BannerFile ./etc/myGameBanner.bnr + BannerFile ../banner/banner.bnr + + ### + ### Setting for TWL + ### + # + # BANNER FILE: + # + BannerTWLFile $(TWLSDK_ROOT)/include/twl/specfiles/default.bnr + + # + # Certification FILE: + # + Certificate $(TWLSDK_ROOT)/include/twl/specfiles/default_sgn.sbin + + # + # Digest parameters: + # + DigestParam 1024 32 + + # + # WRAM mapping: [MAP_BB_HYB/MAP_BB_LTD/MAP_TS_HYB/MAP_TS_LTD] + # don't have to edit + # +# WramMapping $(MAKEROM_WRAM_MAPPING) + WramMappingDirect $(TWL_IPL_RED_ROOT)/build/components/hyena.TWL/wram_regs/wram_regs.rbin + + # + # Codec mode: + # don't have to edit + # + CodecMode $(MAKEROM_CODEC_MODE) + + ### + #### END +} + +AppendProperty +{ + # + # Publisher : "Nintendo" + # don't have to edit + Publisher Nintendo + + # + # Application type : [USER/SYSTEM] + # don't have to edit + AppType User + + # + # launch title on the launcher : [TRUE/FALSE] + # don't have to edit + Launch TRUE + + # + # Boot allowed Media: [GameCard/NAND] + # + Media NAND + + # + # GameCode for TitleID : Your GameCode in 4 ascii words + # + GameCode $(TITLEID_LO) + + # + # Public save data size: [16K/32K/64K/128K/256K/512K/1M/2M/4M/8M] + # + #PublicSaveDataSize 32K + + # + # Private save data size: [16K/32K/64K/128K/256K/512K/1M/2M/4M/8M] + # + #PrivateSaveDataSize 16K + + # + # Enable SaveBannerFile + #SaveBannerFile TRUE +} + +RomSpec +{ + Offset 0x00000000 + Segment ALL + HostRoot $(TWL_IPL_RED_ROOT)/build/systemMenu_RED/data + Root /data + File NTR_IPL_font_m.NFTR +} \ No newline at end of file diff --git a/build/tests/ExecPreLoadedApp/ARM9/src/ExecPreLoadedApp.c b/build/tests/ExecPreLoadedApp/ARM9/src/ExecPreLoadedApp.c new file mode 100644 index 00000000..6a4a876c --- /dev/null +++ b/build/tests/ExecPreLoadedApp/ARM9/src/ExecPreLoadedApp.c @@ -0,0 +1,180 @@ +/*---------------------------------------------------------------------------* + Project: TwlIPL + File: ExecPreLoadedApp.c + + Copyright 2007 Nintendo. All rights reserved. + + These coded instructions, statements, and computer programs contain + proprietary information of Nintendo of America Inc. and/or Nintendo + Company Ltd., and are protected by Federal copyright law. They may + not be disclosed to third parties or copied or duplicated in any form, + in whole or in part, without the prior written consent of Nintendo. + + $Date:: 2007-10-31#$ + $Rev: 91 $ + $Author: yosiokat $ + *---------------------------------------------------------------------------*/ + +#include +#include +#include "misc.h" +#include "ExecPreLoadedApp.h" + +// define data------------------------------------------ +#define RETURN_BUTTON_TOP_X 2 +#define RETURN_BUTTON_TOP_Y 21 +#define RETURN_BUTTON_BOTTOM_X ( RETURN_BUTTON_TOP_X + 8 ) +#define RETURN_BUTTON_BOTTOM_Y ( RETURN_BUTTON_TOP_Y + 2 ) + +#define MLEP_MENU_ELEMENT_NUM 7 // メニューの項目数 + +#define PARAM_LENGTH 10 + +// extern data------------------------------------------ + +// function's prototype declaration--------------------- + +static void MenuScene( void ); + +// global variable ------------------------------------- +extern RTCDrawProperty g_rtcDraw; + +// static variable ------------------------------------- +static u16 s_csr = 0; +static void(*s_pNowProcess)(void); + +// const data ----------------------------------------- +static const u16 *s_pStrMenu[ MLEP_MENU_ELEMENT_NUM ] = +{ + L"再配置チェッカ0(再配置無し)", + L"再配置チェッカ1(逆順コピー)", + L"再配置チェッカ2(正順コピー1)", + L"再配置チェッカ3(正順コピー2)", + L"再配置チェッカ4(エラー)", + L"再配置チェッカ5(WRAMへ配置)", + L"ランチャーに戻る", +}; + +static MenuPos s_menuPos[] = { + { TRUE, 4 * 8, 8 * 8 }, + { TRUE, 4 * 8, 10 * 8 }, + { TRUE, 4 * 8, 12 * 8 }, + { TRUE, 4 * 8, 14 * 8 }, + { TRUE, 4 * 8, 16 * 8 }, + { TRUE, 4 * 8, 18 * 8 }, + { TRUE, 4 * 8, 20 * 8 }, +}; + +static const MenuParam s_menuParam = { + MLEP_MENU_ELEMENT_NUM, + TXT_COLOR_BLACK, + TXT_COLOR_GREEN, + TXT_COLOR_RED, + &s_menuPos[ 0 ], + (const u16 **)&s_pStrMenu, +}; + +//====================================================== +// テストプログラム +//====================================================== + +static void DrawMenuScene( void ) +{ + PutStringUTF16( 1 * 8, 0 * 8, TXT_COLOR_BLUE, (const u16 *)L"ExecPreLoadedApp"); + // メニュー項目 + DrawMenu( s_csr, &s_menuParam ); +} + +static void MenuInit( void ) +{ + GX_DispOff(); + GXS_DispOff(); + NNS_G2dCharCanvasClear( &gCanvas, TXT_COLOR_WHITE ); + + PutStringUTF16( 1 * 8, 0 * 8, TXT_COLOR_BLUE, (const u16 *)L"ExecPreLoadedApp"); + GetAndDrawRTCData( &g_rtcDraw, TRUE ); + + SVC_CpuClear( 0x0000, &tpd, sizeof(TpWork), 16 ); + + GXS_SetVisiblePlane( GX_PLANEMASK_BG0 ); + + s_pNowProcess = MenuScene; + + DrawMenuScene(); + + GX_DispOn(); + GXS_DispOn(); +} + +static void MenuScene(void) +{ + BOOL tp_select = FALSE; + LauncherBootFlags tempflag = {TRUE, 0, TRUE, FALSE, FALSE, FALSE, 0}; + + ReadTP(); + + //-------------------------------------- + // キー入力処理 + //-------------------------------------- + if( pad.trg & PAD_KEY_DOWN ){ // カーソルの移動 + if( ++s_csr == MLEP_MENU_ELEMENT_NUM ) { + s_csr=0; + } + } + if( pad.trg & PAD_KEY_UP ){ + if( --s_csr & 0x80 ) { + s_csr=MLEP_MENU_ELEMENT_NUM - 1; + } + } + tp_select = SelectMenuByTP( &s_csr, &s_menuParam ); + + DrawMenuScene(); + + if( ( pad.trg & PAD_BUTTON_A ) || ( tp_select ) ) { // メニュー項目への分岐 + if( s_menuPos[ s_csr ].enable ) { + switch( s_csr ) { + case 0: + //アプリ起動 + OS_SetLauncherParamAndResetHardware( 0, 0x0001000152434b30, &tempflag ); // RCK0 + break; + case 1: + //アプリ起動 + OS_SetLauncherParamAndResetHardware( 0, 0x0001000152434b31, &tempflag ); // RCK1 + break; + case 2: + //アプリ起動 + OS_SetLauncherParamAndResetHardware( 0, 0x0001000152434b32, &tempflag ); // RCK2 + break; + case 3: + //アプリ起動 + OS_SetLauncherParamAndResetHardware( 0, 0x0001000152434b33, &tempflag ); // RCK3 + break; + case 4: + //アプリ起動 + OS_SetLauncherParamAndResetHardware( 0, 0x0001000152434b34, &tempflag ); // RCK4 + break; + case 5: + //アプリ起動 + OS_SetLauncherParamAndResetHardware( 0, 0x0001000152434b35, &tempflag ); // RCK5 + break; + case 6: + OS_SetLauncherParamAndResetHardware( 0, NULL, &tempflag ); + //再起動 + break; + } + } + } +} + +// 初期化 +void ExecPreLoadedAppInit( void ) +{ + ChangeUserColor( TSD_GetUserColor() ); + MenuInit(); +} + +// メインループ +void ExecPreLoadedAppMain(void) +{ + s_pNowProcess(); +} diff --git a/build/tests/ExecPreLoadedApp/ARM9/src/ExecPreLoadedApp.h b/build/tests/ExecPreLoadedApp/ARM9/src/ExecPreLoadedApp.h new file mode 100644 index 00000000..aa427c35 --- /dev/null +++ b/build/tests/ExecPreLoadedApp/ARM9/src/ExecPreLoadedApp.h @@ -0,0 +1,37 @@ +/*---------------------------------------------------------------------------* + Project: TwlIPL + File: ExecPreLoadedApp.h + + Copyright 2007 Nintendo. All rights reserved. + + These coded instructions, statements, and computer programs contain + proprietary information of Nintendo of America Inc. and/or Nintendo + Company Ltd., and are protected by Federal copyright law. They may + not be disclosed to third parties or copied or duplicated in any form, + in whole or in part, without the prior written consent of Nintendo. + + $Date:: 2007-10-30#$ + $Rev: 73 $ + $Author: yosiokat $ + *---------------------------------------------------------------------------*/ + +#ifndef __COOPERATION_B_H__ +#define __COOPERATION_B_H__ + +#ifdef __cplusplus +extern "C" { +#endif + + +#include + +// define data---------------------------------------------------------- + +void ExecPreLoadedAppInit( void ); +void ExecPreLoadedAppMain( void ); + +#ifdef __cplusplus +} +#endif + +#endif // __COOPERATION_B_H__ diff --git a/build/tests/ExecPreLoadedApp/ARM9/src/main.c b/build/tests/ExecPreLoadedApp/ARM9/src/main.c new file mode 100644 index 00000000..d7ea4285 --- /dev/null +++ b/build/tests/ExecPreLoadedApp/ARM9/src/main.c @@ -0,0 +1,109 @@ +/*---------------------------------------------------------------------------* + Project: TwlIPL + File: main.c + + Copyright 2007 Nintendo. All rights reserved. + + These coded instructions, statements, and computer programs contain + proprietary information of Nintendo of America Inc. and/or Nintendo + Company Ltd., and are protected by Federal copyright law. They may + not be disclosed to third parties or copied or duplicated in any form, + in whole or in part, without the prior written consent of Nintendo. + + $Date:: 2007-11-27#$ + $Rev: 272 $ + $Author: yosiokat $ + *---------------------------------------------------------------------------*/ + +#include +#include "misc.h" +#include "ExecPreLoadedApp.h" + +// extern data----------------------------------------------------------------- + +// define data----------------------------------------------------------------- + +// function's prototype------------------------------------------------------- +static void INTR_VBlank( void ); + +// global variable------------------------------------------------------------- + +// static variable------------------------------------------------------------- +BOOL g_isValidTSD; +RTCDrawProperty g_rtcDraw = { + TRUE, RTC_DATE_TOP_X, RTC_DATE_TOP_Y, RTC_TIME_TOP_X, RTC_TIME_TOP_Y +}; + +// const data------------------------------------------------------------------ + + +// ============================================================================ +// function's description +// ============================================================================ +void TwlMain(void) +{ + + // 初期化---------------------------------- + OS_Init(); + OS_InitTick(); + + (void)OS_EnableIrq(); + (void)OS_EnableInterrupts(); + + GX_Init(); + GX_SetPower(GX_POWER_ALL); // 各ロジック パワーON + FS_Init( 3 ); + + // 割り込み許可---------------------------- + (void)OS_SetIrqFunction(OS_IE_V_BLANK, INTR_VBlank); + (void)OS_EnableIrqMask(OS_IE_V_BLANK); + (void)GX_VBlankIntr(TRUE); + + // デバイス初期化------------------------------- + TP_Init(); + (void)RTC_Init(); + + // システムの初期化------------------ + InitAllocator(); + + // ※本来ならランチャーからのパラメータチェックを行い、 + // 初回起動シーケンスに入るパスがある + + // TWL設定のリード + SYSM_SetAllocFunc( Alloc, Free ); // SYSM_ReadTWLSettingsFile()の実行に必要。 + + // :::::::::::::::::::::::::::::::::::::::::::::: + // TWL設定データファイルの読み込み + // :::::::::::::::::::::::::::::::::::::::::::::: + (void)THW_ReadSecureInfo(); + g_isValidTSD = SYSM_ReadTWLSettingsFile(); + if( g_isValidTSD ) { + SYSM_CaribrateTP(); + } + + InitBG(); + GetAndDrawRTCData( &g_rtcDraw, TRUE ); + + ExecPreLoadedAppInit(); + // メインループ---------------------------- + while(1){ + OS_WaitIrq(1, OS_IE_V_BLANK); // Vブランク割り込み待ち + + ReadKeyPad(); // キー入力の取得 + ReadTP(); // TP入力の取得 + + ExecPreLoadedAppMain(); + } +} + + +// ============================================================================ +// 割り込み処理 +// ============================================================================ + +// Vブランク割り込み +static void INTR_VBlank(void) +{ + OS_SetIrqCheckFlag(OS_IE_V_BLANK); // Vブランク割込チェックのセット +} + diff --git a/build/tests/ExecPreLoadedApp/Makefile b/build/tests/ExecPreLoadedApp/Makefile new file mode 100644 index 00000000..9cf34e12 --- /dev/null +++ b/build/tests/ExecPreLoadedApp/Makefile @@ -0,0 +1,30 @@ +#! make -f +#---------------------------------------------------------------------------- +# Project: TwlIPL +# File: Makefile +# +# Copyright 2007 Nintendo. All rights reserved. +# +# These coded instructions, statements, and computer programs contain +# proprietary information of Nintendo of America Inc. and/or Nintendo +# Company Ltd., and are protected by Federal copyright law. They may +# not be disclosed to third parties or copied or duplicated in any form, +# in whole or in part, without the prior written consent of Nintendo. +# +# $Date:: 2007-10-03#$ +# $Rev: 1319 $ +# $Author: kitase_hirotake $ +#---------------------------------------------------------------------------- + +include $(TWLSDK_ROOT)/build/buildtools/commondefs + +#---------------------------------------------------------------------------- + +SUBDIRS = banner ARM9 + +#---------------------------------------------------------------------------- + +include $(TWLSDK_ROOT)/build/buildtools/modulerules + + +#===== End of Makefile ===== diff --git a/build/tests/ExecPreLoadedApp/banner/Makefile b/build/tests/ExecPreLoadedApp/banner/Makefile new file mode 100644 index 00000000..ea261271 --- /dev/null +++ b/build/tests/ExecPreLoadedApp/banner/Makefile @@ -0,0 +1,49 @@ +#! make -f +#---------------------------------------------------------------------------- +# Project: TwlIPL +# File: Makefile +# +# Copyright 2007 Nintendo. All rights reserved. +# +# These coded instructions, statements, and computer programs contain +# proprietary information of Nintendo of America Inc. and/or Nintendo +# Company Ltd., and are protected by Federal copyright law. They may +# not be disclosed to third parties or copied or duplicated in any form, +# in whole or in part, without the prior written consent of Nintendo. +# +# $Date:: 2007-10-03#$ +# $Rev: 1319 $ +# $Author: kitase_hirotake $ +#---------------------------------------------------------------------------- + +include $(TWL_IPL_RED_ROOT)/build/buildtools/commondefs + +ICON_DIR = ./icon + +BANNER_ICON = $(ICON_DIR)/gameIcon.bmp +BANNER_SPEC = banner_v3.bsf + +TARGETS = banner.bnr +INSTALL_DIR = ./ +INSTALL_TARGETS = $(TARGETS) + +BANNER_ICON_NAME = $(basename $(BANNER_ICON)) + +LDIRT_CLEAN = $(TARGETS) \ + $(BANNER_ICON_NAME).nbfs \ + $(BANNER_ICON_NAME).nbfc \ + $(BANNER_ICON_NAME).nbfp \ + $(TARGETS:.bnr=.srl) + +include $(TWL_IPL_RED_ROOT)/build/buildtools/modulerules + +#---------------------------------------------------------------------------- +# build +#---------------------------------------------------------------------------- +do-build: $(TARGETS) + +$(TARGETS): $(BANNER_SPEC) $(BANNER_ICON) + $(NTEXCONV) -no -bg -bgb -bgnc $(BANNER_ICON) >/dev/null && \ + $(MAKEBANNER) -d -N $(BANNER_ICON_NAME) $(BANNER_SPEC) $(TARGETS) + +# diff --git a/build/tests/ExecPreLoadedApp/banner/banner_v3.bsf b/build/tests/ExecPreLoadedApp/banner/banner_v3.bsf new file mode 100644 index 00000000..1471d41d Binary files /dev/null and b/build/tests/ExecPreLoadedApp/banner/banner_v3.bsf differ diff --git a/build/tests/ExecPreLoadedApp/banner/icon/gameIcon.bmp b/build/tests/ExecPreLoadedApp/banner/icon/gameIcon.bmp new file mode 100644 index 00000000..3ee487c3 Binary files /dev/null and b/build/tests/ExecPreLoadedApp/banner/icon/gameIcon.bmp differ diff --git a/build/tests/Makefile b/build/tests/Makefile index 8002d17b..dbbf4f3f 100644 --- a/build/tests/Makefile +++ b/build/tests/Makefile @@ -20,7 +20,7 @@ include $(TWLSDK_ROOT)/build/buildtools/commondefs #---------------------------------------------------------------------------- -SUBDIRS = RelocateChecker AppliCooperation +SUBDIRS = RelocateChecker AppliCooperation ExecPreLoadedApp #---------------------------------------------------------------------------- diff --git a/build/tests/RelocateChecker/ARM7/Makefile.0 b/build/tests/RelocateChecker/ARM7/Makefile.0 index 5fbe712e..2efecdfe 100644 --- a/build/tests/RelocateChecker/ARM7/Makefile.0 +++ b/build/tests/RelocateChecker/ARM7/Makefile.0 @@ -40,9 +40,9 @@ LLIBRARY_DIRS += ../crt/ARM7/obj/ARM7-TS.LTD/$(TWL_BUILD_DIR) CRT0_O = crt0_rc.LTD.TWL.o TARGET_FOB += ARM7FLX.fob -FBDSIZE_ARM7FLX = 50000 +FBDSIZE_ARM7FLX = 4 TARGET_FOB += ARM7LTD.fob -FBDSIZE_ARM7LTD = 540672 +FBDSIZE_ARM7LTD = 4 #---------------------------------------------------------------------------- include $(TWL_IPL_RED_ROOT)/build/tests/RelocateChecker/buildtools/commondefs diff --git a/build/tests/RelocateChecker/ARM7/Makefile.2 b/build/tests/RelocateChecker/ARM7/Makefile.2 index 41d5b9e3..fc88fc33 100644 --- a/build/tests/RelocateChecker/ARM7/Makefile.2 +++ b/build/tests/RelocateChecker/ARM7/Makefile.2 @@ -40,9 +40,9 @@ LLIBRARY_DIRS += ../crt/ARM7/obj/ARM7-TS.LTD/$(TWL_BUILD_DIR) CRT0_O = crt0_rc.LTD.TWL.o TARGET_FOB += ARM7FLX.fob -FBDSIZE_ARM7FLX = 50000 +FBDSIZE_ARM7FLX = 4 TARGET_FOB += ARM7LTD.fob -FBDSIZE_ARM7LTD = 540672 +FBDSIZE_ARM7LTD = 4 #---------------------------------------------------------------------------- include $(TWL_IPL_RED_ROOT)/build/tests/RelocateChecker/buildtools/commondefs @@ -59,7 +59,7 @@ endif #MACRO_FLAGS += -DSDK_ARM7COMP_LTD MAKELCF_FLAGS += -DADDRESS_LTDWRAM='0x037c0000' \ - -DADDRESS_FLXMAIN='0x02370000' \ + -DADDRESS_FLXMAIN='0x0237fffc' \ -DADDRESS_BOOTCORE='0x0380f000' \ -DCRT0_O='$(CRT0_O)' diff --git a/build/tests/RelocateChecker/ARM7/Makefile.4 b/build/tests/RelocateChecker/ARM7/Makefile.4 index b6b800a0..f5a29453 100644 --- a/build/tests/RelocateChecker/ARM7/Makefile.4 +++ b/build/tests/RelocateChecker/ARM7/Makefile.4 @@ -42,7 +42,7 @@ CRT0_O = crt0_rc.LTD.TWL.o TARGET_FOB += ARM7FLX.fob FBDSIZE_ARM7FLX = 4 TARGET_FOB += ARM7LTD.fob -FBDSIZE_ARM7LTD = 540672 +FBDSIZE_ARM7LTD = 4 #---------------------------------------------------------------------------- include $(TWL_IPL_RED_ROOT)/build/tests/RelocateChecker/buildtools/commondefs diff --git a/build/tests/RelocateChecker/ARM7/hyena_rc2.lcf.template b/build/tests/RelocateChecker/ARM7/hyena_rc2.lcf.template index 904593ec..029d2df8 100644 --- a/build/tests/RelocateChecker/ARM7/hyena_rc2.lcf.template +++ b/build/tests/RelocateChecker/ARM7/hyena_rc2.lcf.template @@ -566,7 +566,7 @@ SECTIONS SDK_LTDAUTOLOAD.LTDMAIN.BSS_END = SDK_LTDAUTOLOAD.LTDMAIN.START; SDK_LTDAUTOLOAD.LTDMAIN.SIZE = 0; SDK_LTDAUTOLOAD.LTDMAIN.BSS_SIZE = 0; - SDK_LTDAUTOLOAD_TOP_START = 0x02e70000; + SDK_LTDAUTOLOAD_TOP_START = 0x02e7fffc; SDK_LTDAUTOLOAD_TOP_SIZE = 4; # STATIC 領域が無い代わりに 4 bytes のダミーがバイナリファイルの先頭に入る # SDK_LTDAUTOLOAD_START = SDK_LTDAUTOLOAD_TOP_START + SDK_LTDAUTOLOAD_TOP_SIZE; SDK_LTDAUTOLOAD_SIZE = 0; diff --git a/build/tests/RelocateChecker/ARM9/Makefile.0 b/build/tests/RelocateChecker/ARM9/Makefile.0 index 602552cc..1ae632c3 100644 --- a/build/tests/RelocateChecker/ARM9/Makefile.0 +++ b/build/tests/RelocateChecker/ARM9/Makefile.0 @@ -29,10 +29,10 @@ MAKELCF_FLAGS += -DADDRESS_FLXMAIN='0x02000400' TARGET_FOB = ARM9FLX.fob #ARM9_FLX_addsize -FBDSIZE_ARM9FLX = 1310720 +FBDSIZE_ARM9FLX = 4 TARGET_FOB += ARM9LTD.fob #ARM9_LTD_addsize -FBDSIZE_ARM9LTD = 2097152 +FBDSIZE_ARM9LTD = 4 TARGET_NUMBER = 0 TARGET_NAME = RelocateChecker$(TARGET_NUMBER) diff --git a/build/tests/RelocateChecker/ARM9/Makefile.2 b/build/tests/RelocateChecker/ARM9/Makefile.2 index 8d0bfe37..9579246a 100644 --- a/build/tests/RelocateChecker/ARM9/Makefile.2 +++ b/build/tests/RelocateChecker/ARM9/Makefile.2 @@ -29,10 +29,10 @@ MAKELCF_FLAGS += -DADDRESS_FLXMAIN='0x02000400' TARGET_FOB = ARM9FLX.fob #ARM9_FLX_addsize -FBDSIZE_ARM9FLX = 1310720 +FBDSIZE_ARM9FLX = 4 TARGET_FOB += ARM9LTD.fob #ARM9_LTD_addsize -FBDSIZE_ARM9LTD = 2097152 +FBDSIZE_ARM9LTD = 4 TARGET_NUMBER = 2 TARGET_NAME = RelocateChecker$(TARGET_NUMBER) diff --git a/build/tests/RelocateChecker/ARM9/Makefile.4 b/build/tests/RelocateChecker/ARM9/Makefile.4 index 856d9e1b..a446d6ab 100644 --- a/build/tests/RelocateChecker/ARM9/Makefile.4 +++ b/build/tests/RelocateChecker/ARM9/Makefile.4 @@ -32,7 +32,7 @@ TARGET_FOB = ARM9FLX.fob FBDSIZE_ARM9FLX = 4 TARGET_FOB += ARM9LTD.fob #ARM9_LTD_addsize -FBDSIZE_ARM9LTD = 2097152 +FBDSIZE_ARM9LTD = 4 TARGET_NUMBER = 4 TARGET_NAME = RelocateChecker$(TARGET_NUMBER) diff --git a/build/tests/RelocateChecker/ARM9/rc2.lcf.template b/build/tests/RelocateChecker/ARM9/rc2.lcf.template index b745f901..35b45072 100644 --- a/build/tests/RelocateChecker/ARM9/rc2.lcf.template +++ b/build/tests/RelocateChecker/ARM9/rc2.lcf.template @@ -658,7 +658,7 @@ SECTIONS SDK_LTDAUTOLOAD.LTDMAIN.BSS_EDN = SDK_LTDAUTOLOAD.LTDMAIN.START; SDK_LTDAUTOLOAD.LTDMAIN.SIZE = 0; SDK_LTDAUTOLOAD.LTDMAIN.BSS_SIZE = 0; - SDK_LTDAUTOLOAD_TOP_START = 0x023ffff0; + SDK_LTDAUTOLOAD_TOP_START = 0x023ffffc; SDK_LTDAUTOLOAD_TOP_SIZE = 4; # STATIC 領域が無い代わりに 4 bytes のダミーがバイナリファイルの先頭に入る # SDK_LTDAUTOLOAD_START = SDK_LTDAUTOLOAD_TOP_START + SDK_LTDAUTOLOAD_TOP_SIZE; SDK_LTDAUTOLOAD_SIZE = 0;