From 082228592e9704ac25372518a98a0bb76372cc8d Mon Sep 17 00:00:00 2001 From: N1277 Date: Mon, 23 Aug 2010 05:02:14 +0000 Subject: [PATCH] =?UTF-8?q?=E6=9C=AC=E4=BD=93=E8=A8=AD=E5=AE=9A=E3=83=87?= =?UTF-8?q?=E3=83=BC=E3=82=BF=E3=82=92CTR=E3=83=A2=E3=83=BC=E3=83=89?= =?UTF-8?q?=E3=81=8B=E3=82=89=E5=8F=97=E3=81=91=E5=8F=96=E3=82=8B=E3=82=88?= =?UTF-8?q?=E3=81=86=E3=81=AB=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/branches/20100611_RedLauncher_Remodel@2958 b08762b0-b915-fc4b-9d8c-17b2551a87ff --- build/buildtools/commondefs.sysmenu | 6 ++++ .../sysmenu/ARM9/src/sysmenu_lib.c | 6 ++++ .../sysmenu/ARM9/src/title.c | 29 +++++++++---------- .../Launcher/ARM9/commondefs.launcher | 2 ++ build/systemMenu_RED/Launcher/ARM9/src/main.c | 2 ++ 5 files changed, 30 insertions(+), 15 deletions(-) diff --git a/build/buildtools/commondefs.sysmenu b/build/buildtools/commondefs.sysmenu index cce8e489..0c8a40ba 100644 --- a/build/buildtools/commondefs.sysmenu +++ b/build/buildtools/commondefs.sysmenu @@ -29,6 +29,12 @@ endif ifdef SYSM_NO_WLFIRM MACRO_FLAGS += -DSYSM_NO_WLFIRM endif +ifdef SYSM_NO_SETTINGFILE +MACRO_FLAGS += -DSYSM_NO_SETTINGFILE +endif +ifdef SYSM_NO_HWINFO +MACRO_FLAGS += -DSYSM_NO_HWINFO +endif endif NITRO_NO_STD_PCHDR = TRUE # プリコンパイルヘッダ抑止 diff --git a/build/libraries_sysmenu/sysmenu/ARM9/src/sysmenu_lib.c b/build/libraries_sysmenu/sysmenu/ARM9/src/sysmenu_lib.c index a6fd27ac..ae294afc 100644 --- a/build/libraries_sysmenu/sysmenu/ARM9/src/sysmenu_lib.c +++ b/build/libraries_sysmenu/sysmenu/ARM9/src/sysmenu_lib.c @@ -214,6 +214,9 @@ TitleProperty *SYSM_ReadParameters( void ) //----------------------------------------------------- // 本体設定データのリード(※必ずHWSecureInforリード後に実行すること。LanguageBitmapを判定に使うため) //----------------------------------------------------- +#ifdef SYSM_NO_SETTINGFILE + MI_CpuCopy8( (void*)HW_PARAM_TWL_SETTINGS_DATA_DEFAULT, LCFGi_GetTSD(), sizeof(LCFGTWLSettingsData) ); +#else // SYSM_NO_SETTINGFILE { u8 *pBuffer = SYSM_Alloc( LCFG_READ_TEMP ); if( pBuffer ) { @@ -242,6 +245,7 @@ TitleProperty *SYSM_ReadParameters( void ) LCFG_VerifyAndRecoveryNTRSettings(); // NTR設定データを読み出して、TWL設定データとベリファイし、必要ならリカバリ #endif // SYSM_NO_LOAD } +#endif // SYSM_NO_SETTINGFILE //----------------------------------------------------- // システム領域に本体設定をコピー @@ -386,8 +390,10 @@ static void SYSMi_CopyLCFGDataHWInfo( u32 dst_addr ) *(u32 *)HW_PRELOAD_PARAMETER_ADDR = dst_addr; // HWノーマル情報、HWセキュア情報をメモリに展開しておく +#ifndef SYSM_NO_HWINFO MI_CpuCopyFast( LCFGi_GetHWN(), (void *)HW_PARAM_TWL_HW_NORMAL_INFO, sizeof(LCFGTWLHWNormalInfo) ); MI_CpuCopyFast( LCFGi_GetHWS(), (void *)HW_HW_SECURE_INFO, HW_HW_SECURE_INFO_END - HW_HW_SECURE_INFO ); +#endif // SYSM_NO_HWINFO } diff --git a/build/libraries_sysmenu/sysmenu/ARM9/src/title.c b/build/libraries_sysmenu/sysmenu/ARM9/src/title.c index 04d8fd97..588f9e89 100644 --- a/build/libraries_sysmenu/sysmenu/ARM9/src/title.c +++ b/build/libraries_sysmenu/sysmenu/ARM9/src/title.c @@ -1020,12 +1020,14 @@ OS_TPrintf("RebootSystem failed: cant read file(%d, %d)\n", source[i], len); SYSM_SetLoadSucceeded(TRUE); // ここでスタック壊れていないかチェック +#ifndef SYSM_NO_LOAD if( OS_STACK_NO_ERROR != OS_GetStackStatus( &s_thread ) ) { OS_TPrintf("RebootSystem warning: stack was broken!\n"); // デバグ用。ERRORLOG_Init()がすでに呼ばれている事前提 ERRORLOG_Printf( "SYSMi_LoadTitleThreadFunc: stack was broken! %d\n", OS_GetStackStatus( &s_thread ) ); } +#endif // SYSM_NO_LOAD return; @@ -1143,8 +1145,6 @@ void SYSM_StartLoadTitle( TitleProperty *pBootTitle ) OS_Sleep( 2 ); } -#endif // SYSM_NO_LOAD - // DataOnlyなアプリはロードも起動もしない if( pBootTitle->titleID & TITLE_ID_DATA_ONLY_FLAG_MASK ) { @@ -1175,7 +1175,12 @@ void SYSM_StartLoadTitle( TitleProperty *pBootTitle ) OS_CreateThread( &s_thread, (void (*)(void *))SYSMi_LoadTitleThreadFunc, (void*)pBootTitle, stack+STACK_SIZE/sizeof(u64), STACK_SIZE,THREAD_PRIO ); OS_WakeupThreadDirect( &s_thread ); - }else { + } + else + +#endif // SYSM_NO_LOAD + + { // アプリロード済み SYSM_SetLoadSucceeded(TRUE); SYSM_SetLoadFinished(TRUE); @@ -1192,12 +1197,16 @@ void SYSM_StartLoadTitle( TitleProperty *pBootTitle ) // アプリロード済みかどうかをチェック BOOL SYSM_IsLoadTitleFinished( void ) { +#ifndef SYSM_NO_LOAD + return TRUE; +#else // SYSM_NO_LOAD // ロード済みの時は、常にTRUE if( !SYSMi_GetWork()->flags.arm9.isLoadFinished ) { // ロードスレッドの完了をチェック。 SYSM_SetLoadFinished(OS_IsThreadTerminated( &s_thread )); } return SYSMi_GetWork()->flags.arm9.isLoadFinished ? TRUE : FALSE; +#endif // SYSM_NO_LOAD } @@ -2236,9 +2245,7 @@ static void SYSMi_makeTitleIdList( void ) start = OS_GetTick(); // とりあえずゼロクリア -#ifndef SYSM_NO_ES MI_CpuClear8( (void *)HW_OS_TITLE_ID_LIST, HW_OS_TITLE_ID_LIST_SIZE ); -#endif // これから起動するアプリがTWLアプリでない if( !hs->platform_code ) @@ -2286,9 +2293,8 @@ static void SYSMi_makeTitleIdList( void ) if( same_maker_code ) { // リストに追加 -#ifndef SYSM_NO_ES list->TitleID[count] = id; -#endif + // sameMakerFlagをON list->sameMakerFlag[count/8] |= (u8)(0x1 << (count%8)); } @@ -2299,9 +2305,8 @@ static void SYSMi_makeTitleIdList( void ) ) { // リストに追加してジャンプ可能フラグON -#ifndef SYSM_NO_ES list->TitleID[count] = id; -#endif + list->appJumpFlag[count/8] |= (u8)(0x1 << (count%8)); } @@ -2318,9 +2323,7 @@ static void SYSMi_makeTitleIdList( void ) list->privateFlag[count/8] |= (u8)(0x1 << (count%8)); } // リストに強制追加 -#ifndef SYSM_NO_ES list->TitleID[count] = id; -#endif }else { // セキュアアプリでない && メーカーコードが同じ @@ -2331,17 +2334,13 @@ static void SYSMi_makeTitleIdList( void ) { list->publicFlag[count/8] |= (u8)(0x1 << (count%8)); // リストに追加 -#ifndef SYSM_NO_ES list->TitleID[count] = id; -#endif } if(pe_hs->private_save_data_size != 0) { list->privateFlag[count/8] |= (u8)(0x1 << (count%8)); // リストに追加 -#ifndef SYSM_NO_ES list->TitleID[count] = id; -#endif } } } diff --git a/build/systemMenu_RED/Launcher/ARM9/commondefs.launcher b/build/systemMenu_RED/Launcher/ARM9/commondefs.launcher index d2c36a6c..9ea96f1c 100644 --- a/build/systemMenu_RED/Launcher/ARM9/commondefs.launcher +++ b/build/systemMenu_RED/Launcher/ARM9/commondefs.launcher @@ -23,6 +23,8 @@ export SYSM_FOR_CTR = TRUE export SYSM_NO_LOAD = TRUE export SYSM_NO_ES = TRUE export SYSM_NO_WLFIRM = TRUE +export SYSM_NO_SETTINGFILE = TRUE +# export SYSM_NO_HWINFO = TRUE # COMPILE SWITCH ※最終ROM作成時は、全てFALSEにセットする。SUBDIRのビルド時にも影響するようexportで環境変数設定する。 export SYSM_DO_NOT_SHOW_LAUNCHER = FALSE diff --git a/build/systemMenu_RED/Launcher/ARM9/src/main.c b/build/systemMenu_RED/Launcher/ARM9/src/main.c index 5138731a..d036fb7e 100644 --- a/build/systemMenu_RED/Launcher/ARM9/src/main.c +++ b/build/systemMenu_RED/Launcher/ARM9/src/main.c @@ -443,12 +443,14 @@ void TwlMain( void ) SND_LockChannel((1 << L_CHANNEL) | (1 << R_CHANNEL), 0); /* ストリームスレッドの起動 */ +#ifndef SYSM_NO_ES OS_CreateThread(&s_strmThread, StrmThread, NULL, s_strmThreadStack + THREAD_STACK_SIZE / sizeof(u64), THREAD_STACK_SIZE, STREAM_THREAD_PRIO); OS_WakeupThreadDirect(&s_strmThread); +#endif // SYSM_NO_ES // end時間計測7 MEASURE_RESULT( start, "time 7 (etc...) : %dms\n" );