mirror of
https://github.com/rvtr/TwlIPL.git
synced 2025-10-31 06:01:12 -04:00
本体設定データをCTRモードから受け取るように。
git-svn-id: file:///Users/lillianskinner/Downloads/platinum/twl/TwlIPL/branches/20100611_RedLauncher_Remodel@2958 b08762b0-b915-fc4b-9d8c-17b2551a87ff
This commit is contained in:
parent
9deba792f2
commit
082228592e
@ -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 # プリコンパイルヘッダ抑止
|
||||
|
||||
@ -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
|
||||
}
|
||||
|
||||
|
||||
|
||||
@ -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
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -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
|
||||
|
||||
@ -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" );
|
||||
|
||||
Loading…
Reference in New Issue
Block a user