small fix.

git-svn-id: file:///Users/lillianskinner/Downloads/platinum/twl/TwlIPL/trunk@2425 b08762b0-b915-fc4b-9d8c-17b2551a87ff
This commit is contained in:
yoshida_teruhisa 2008-09-08 01:39:03 +00:00
parent adaa866498
commit a01941bc05
2 changed files with 32 additions and 51 deletions

View File

@ -19,7 +19,7 @@ ifndef TWL_IPL_COMMONDEFS_
TWL_IPL_COMMONDEFS_ = TRUE TWL_IPL_COMMONDEFS_ = TRUE
#FIRM_USE_PRODUCT_KEYS = TRUE #FIRM_USE_PRODUCT_KEYS = TRUE
#SYSM_BUILD_FOR_DEBUGGER = TRUE SYSM_BUILD_FOR_DEBUGGER = TRUE
ifeq ($(TARGET_FIRM),SYSTEMMENU) ifeq ($(TARGET_FIRM),SYSTEMMENU)
include $(TWL_IPL_RED_ROOT)/build/buildtools/commondefs.sysmenu include $(TWL_IPL_RED_ROOT)/build/buildtools/commondefs.sysmenu

View File

@ -428,6 +428,35 @@ static TitleProperty *SYSMi_CheckDebuggerBannerViewModeBoot( void )
return NULL; return NULL;
} }
static TitleProperty * SYSMi_ShortcutCardBootSub( void )
{
s_bootTitleBuf.flags.isAppRelocate = TRUE;
s_bootTitleBuf.flags.isAppLoadCompleted = FALSE;
s_bootTitleBuf.flags.isInitialShortcutSkip = TRUE; // 初回起動シーケンスを飛ばす
s_bootTitleBuf.flags.isLogoSkip = TRUE; // ロゴデモを飛ばす
s_bootTitleBuf.flags.bootType = LAUNCHER_BOOTTYPE_ROM;
s_bootTitleBuf.flags.isValid = TRUE;
// ROMヘッダバッファのコピー
{
u16 id = (u16)OS_GetLockID();
(void)OS_LockByWord( id, &SYSMi_GetWork()->lockCardRsc, NULL ); // ARM7と排他制御する
(void)SYSMi_CopyCardRomHeader();
(void)OS_UnlockByWord( id, &SYSMi_GetWork()->lockCardRsc, NULL ); // ARM7と排他制御する
OS_ReleaseLockID( id );
}
if( SYSM_GetCardRomHeader()->platform_code & PLATFORM_CODE_FLAG_TWL ) {
s_bootTitleBuf.titleID = *(u64 *)( &SYSM_GetCardRomHeader()->titleID_Lo );
}else{
// NTRアプリの時は、TitleIDがないので、GameCodeをいじって擬似的にTitleIDとする。
s_bootTitleBuf.titleID = (u64)( ( SYSM_GetCardRomHeader()->game_code[ 3 ] << 0 ) |
( SYSM_GetCardRomHeader()->game_code[ 2 ] << 8 ) |
( SYSM_GetCardRomHeader()->game_code[ 1 ] << 16 ) |
( SYSM_GetCardRomHeader()->game_code[ 0 ] << 24 ) );
}
SYSM_SetLogoDemoSkip( s_bootTitleBuf.flags.isLogoSkip );
return &s_bootTitleBuf;
}
// ショートカット起動のチェックその1 // ショートカット起動のチェックその1
static TitleProperty *SYSMi_CheckShortcutBoot1( void ) static TitleProperty *SYSMi_CheckShortcutBoot1( void )
{ {
@ -445,31 +474,7 @@ static TitleProperty *SYSMi_CheckShortcutBoot1( void )
( ( PAD_Read() == SYSM_PAD_PRODUCTION_SHORTCUT_CARD_BOOT ) && ( ( PAD_Read() == SYSM_PAD_PRODUCTION_SHORTCUT_CARD_BOOT ) &&
( !LCFG_TSD_IsFinishedBrokenTWLSettings() || !LCFG_TSD_IsFinishedInitialSetting() || !LCFG_TSD_IsFinishedInitialSetting_Launcher() ) ) ( !LCFG_TSD_IsFinishedBrokenTWLSettings() || !LCFG_TSD_IsFinishedInitialSetting() || !LCFG_TSD_IsFinishedInitialSetting_Launcher() ) )
){ ){
s_bootTitleBuf.flags.isAppRelocate = TRUE; return SYSMi_ShortcutCardBootSub();
s_bootTitleBuf.flags.isAppLoadCompleted = FALSE;
s_bootTitleBuf.flags.isInitialShortcutSkip = TRUE; // 初回起動シーケンスを飛ばす
s_bootTitleBuf.flags.isLogoSkip = TRUE; // ロゴデモを飛ばす
s_bootTitleBuf.flags.bootType = LAUNCHER_BOOTTYPE_ROM;
s_bootTitleBuf.flags.isValid = TRUE;
// ROMヘッダバッファのコピー
{
u16 id = (u16)OS_GetLockID();
(void)OS_LockByWord( id, &SYSMi_GetWork()->lockCardRsc, NULL ); // ARM7と排他制御する
(void)SYSMi_CopyCardRomHeader();
(void)OS_UnlockByWord( id, &SYSMi_GetWork()->lockCardRsc, NULL ); // ARM7と排他制御する
OS_ReleaseLockID( id );
}
if( SYSM_GetCardRomHeader()->platform_code & PLATFORM_CODE_FLAG_TWL ) {
s_bootTitleBuf.titleID = *(u64 *)( &SYSM_GetCardRomHeader()->titleID_Lo );
}else{
// NTRアプリの時は、TitleIDがないので、GameCodeをいじって擬似的にTitleIDとする。
s_bootTitleBuf.titleID = (u64)( ( SYSM_GetCardRomHeader()->game_code[ 3 ] << 0 ) |
( SYSM_GetCardRomHeader()->game_code[ 2 ] << 8 ) |
( SYSM_GetCardRomHeader()->game_code[ 1 ] << 16 ) |
( SYSM_GetCardRomHeader()->game_code[ 0 ] << 24 ) );
}
SYSM_SetLogoDemoSkip( s_bootTitleBuf.flags.isLogoSkip );
return &s_bootTitleBuf;
} }
} }
@ -523,31 +528,7 @@ static TitleProperty *SYSMi_CheckShortcutBoot2( void )
#ifdef SYSM_DO_NOT_SHOW_LAUNCHER #ifdef SYSM_DO_NOT_SHOW_LAUNCHER
else if( SYSM_IsExistCard() ) else if( SYSM_IsExistCard() )
{ {
s_bootTitleBuf.flags.isAppRelocate = TRUE; return SYSMi_ShortcutCardBootSub();
s_bootTitleBuf.flags.isAppLoadCompleted = FALSE;
s_bootTitleBuf.flags.isInitialShortcutSkip = TRUE; // 初回起動シーケンスを飛ばす
s_bootTitleBuf.flags.isLogoSkip = TRUE; // ロゴデモを飛ばす
s_bootTitleBuf.flags.bootType = LAUNCHER_BOOTTYPE_ROM;
s_bootTitleBuf.flags.isValid = TRUE;
// ROMヘッダバッファのコピー
{
u16 id = (u16)OS_GetLockID();
(void)OS_LockByWord( id, &SYSMi_GetWork()->lockCardRsc, NULL ); // ARM7と排他制御する
(void)SYSMi_CopyCardRomHeader();
(void)OS_UnlockByWord( id, &SYSMi_GetWork()->lockCardRsc, NULL ); // ARM7と排他制御する
OS_ReleaseLockID( id );
}
if( SYSM_GetCardRomHeader()->platform_code & PLATFORM_CODE_FLAG_TWL ) {
s_bootTitleBuf.titleID = *(u64 *)( &SYSM_GetCardRomHeader()->titleID_Lo );
}else{
// NTRアプリの時は、TitleIDがないので、GameCodeをいじって擬似的にTitleIDとする。
s_bootTitleBuf.titleID = (u64)( ( SYSM_GetCardRomHeader()->game_code[ 3 ] << 0 ) |
( SYSM_GetCardRomHeader()->game_code[ 2 ] << 8 ) |
( SYSM_GetCardRomHeader()->game_code[ 1 ] << 16 ) |
( SYSM_GetCardRomHeader()->game_code[ 0 ] << 24 ) );
}
SYSM_SetLogoDemoSkip( s_bootTitleBuf.flags.isLogoSkip );
return &s_bootTitleBuf;
}else }else
{ {
argument = 0; argument = 0;