build/buildtools/commondefs上のSYSMENU_DEBUGGER_BUILDスイッチで、

製品/開発本体用ランチャーとISデバッガ用ランチャーを別バイナリでビルドするよう変更。
SYSM_IsRunOnDebugger関数をinline展開に変更し、上記ビルドスイッチでISデバッガ用ビルド時のみ
正しく値を返すよう変更。

git-svn-id: file:///Users/lillianskinner/Downloads/platinum/twl/TwlIPL/trunk@1890 b08762b0-b915-fc4b-9d8c-17b2551a87ff
This commit is contained in:
yosiokat 2008-07-15 05:31:47 +00:00
parent 917247b71e
commit dcf17e54a3
11 changed files with 25 additions and 37 deletions

View File

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

View File

@ -18,9 +18,6 @@
ifndef TWL_SYSMENU_COMMONDEFS_
TWL_SYSMENU_COMMONDEFS_ = TRUE
#SYSMENU_DISABLE_TWL_BOOT = TRUE
#SYSMENU_DISABLE_RETAIL_BOOT = TRUE
NITRO_NO_STD_PCHDR = TRUE # プリコンパイルヘッダ抑止
EMPTY ?=
@ -100,12 +97,8 @@ SDK_NMENU_DATADIR = $(ROOT)/build/tools/TwlNMenu/data
#----------------------------------------------------------------------------
ifdef SYSMENU_DISABLE_TWL_BOOT
MACRO_FLAGS += -DSYSMENU_DISABLE_TWL_BOOT=$(SYSMENU_DISABLE_TWL_BOOT)
endif
ifdef SYSMENU_DISABLE_RETAIL_BOOT
MACRO_FLAGS += -DSYSMENU_DISABLE_RETAIL_BOOT=$(SYSMENU_DISABLE_RETAIL_BOOT)
ifeq ($(SYSMENU_DEBUGGER_BUILD),TRUE)
MACRO_FLAGS += -DSYSMENU_DEBUGGER_BUILD
endif
#----------------------------------------------------------------------------

View File

@ -375,7 +375,7 @@ static HotSwState LoadCardData(void)
}
MCU_EnableDeepSleepToPowerLine( MCU_PWR_LINE_33, enableDeepSleep );
// ARM9/7で不整合が発生しないようにRomエミュレーション情報ロードは初回のみ
// ARM9/7で不整合が発生しないようにRomエミュレーション情報ロードは初回のみ
if ( ! SYSMi_GetWork()->flags.hotsw.is1stCardChecked )
{
// Romエミュレーション情報を取得
@ -389,6 +389,8 @@ static HotSwState LoadCardData(void)
s_debuggerFlg = FALSE;
}
}
// ※ROMエミュレーション情報を読まなければ、デバッガ上でカードアクセスができなくなるため、ランチャー自身をデバッグできなくなる。
// よって、ROMエミュレーション情報リード部分をデバッガビルド時以外に切ることはできない。
// 初回のRomエミュレーション情報を使用
if(HOTSWi_IsRomEmulation()){
@ -698,17 +700,6 @@ HotSwState HOTSWi_RefreshBadBlock(u32 romMode)
}
/*---------------------------------------------------------------------------*
Name: HOTSWi_IsRunOnDebugger
Description: ISデバッガ上で動作しているか
*---------------------------------------------------------------------------*/
BOOL HOTSWi_IsRunOnDebugger(void)
{
return s_debuggerFlg;
}
/*---------------------------------------------------------------------------*
Name: HOTSWi_IsRomEmulation

View File

@ -471,6 +471,7 @@ static void SYSMi_FinalizeHotSWAsync( TitleProperty *pBootTitle, ROM_Header *hea
{
case LAUNCHER_BOOTTYPE_NAND:
case LAUNCHER_BOOTTYPE_TEMP:
// ROMヘッダのアクセスコントロール情報をもとにカード状態を制御するのは "NAND/TMPブートのTWL-LTD" アプリのみ
if ( ( head->s.platform_code & PLATFORM_CODE_TWL_LIMITED ) == PLATFORM_CODE_TWL_LIMITED )
{
if(rh->s.access_control.game_card_nitro_mode){
@ -483,6 +484,7 @@ static void SYSMi_FinalizeHotSWAsync( TitleProperty *pBootTitle, ROM_Header *hea
card_state = HOTSW_CARD_STATE_POWER_OFF;
}
}
// それ以外は強制的にNTR互換Game領域にアクセス可能な状態となるDSダウンロードプレイも含む
else
{
card_state = HOTSW_CARD_STATE_GAME_MODE;
@ -953,7 +955,7 @@ static BOOL SYSMi_AuthenticateHeaderWithSign( TitleProperty *pBootTitle, ROM_Hea
key = ((OSFromFirm9Buf *)HW_FIRM_FROM_FIRM_BUF)->rsa_pubkey[keynum];
}
// デバッガが有効でTLF読み込みならば、ハッシュチェックスルーフラグを立てる
if(SYSMi_GetWork()->flags.hotsw.isOnDebugger && SYSMi_GetWork()->romEmuInfo.isTlfRom )
if( SYSM_IsRunOnDebugger() && SYSMi_GetWork()->romEmuInfo.isTlfRom )
{
s_b_dev = TRUE;
}
@ -966,7 +968,7 @@ static BOOL SYSMi_AuthenticateHeaderWithSign( TitleProperty *pBootTitle, ROM_Hea
// 開発版
key = g_devPubKey[keynum];
// デバッガが有効でTLF読み込みならば、ハッシュチェックスルーフラグを立てる
if(SYSMi_GetWork()->flags.hotsw.isOnDebugger && SYSMi_GetWork()->romEmuInfo.isTlfRom )
if( SYSM_IsRunOnDebugger() && SYSMi_GetWork()->romEmuInfo.isTlfRom )
{
s_b_dev = TRUE;
}
@ -1028,7 +1030,7 @@ static BOOL SYSMi_AuthenticateTWLHeader( TitleProperty *pBootTitle, ROM_Header *
OS_TPrintf( "Authenticate_Header : header TitleID check succeed.\n" );
}
if( head->s.enable_signature || (SYSMi_GetWork()->flags.hotsw.isOnDebugger && SYSMi_GetWork()->romEmuInfo.isTlfRom))
if( head->s.enable_signature || ( SYSM_IsRunOnDebugger() && SYSMi_GetWork()->romEmuInfo.isTlfRom))
{
return SYSMi_AuthenticateHeaderWithSign( pBootTitle, head );
}else

View File

@ -309,7 +309,7 @@ static void SYSMi_ModifySaveDataMount( LauncherBootType bootType, NAMTitleId tit
( titleID & TITLEID_MEDIA_NAND_FLAG ) ) ||
( ( bootType == LAUNCHER_BOOTTYPE_ROM ) && // ISデバッガ上で、NANDアプリがROM からブートされた時
( titleID & TITLEID_MEDIA_NAND_FLAG ) &&
( SYSMi_GetWork()->flags.hotsw.isOnDebugger ) )
SYSM_IsRunOnDebugger() )
) {
char saveFilePath[ 2 ][ FS_ENTRY_LONGNAME_MAX ];
u32 saveDataSize[ 2 ];
@ -353,7 +353,7 @@ static void SYSMi_ModifySaveDataMountForLauncher( LauncherBootType bootType, NAM
( titleID & TITLEID_MEDIA_NAND_FLAG ) ) ||
( ( bootType == LAUNCHER_BOOTTYPE_ROM ) && // ISデバッガ上で、NANDアプリがROM からブートされた時
( titleID & TITLEID_MEDIA_NAND_FLAG ) &&
( SYSMi_GetWork()->flags.hotsw.isOnDebugger ) )
SYSM_IsRunOnDebugger() )
) {
char saveFilePath[ 2 ][ FS_ENTRY_LONGNAME_MAX ];
u32 saveDataSize[ 2 ];

View File

@ -55,13 +55,6 @@ BOOL SYSM_IsLogoDemoSkip( void )
}
// ISデバッガ上で動作しているか
BOOL SYSM_IsRunOnDebugger( void )
{
return SYSMi_GetWork()->flags.hotsw.isOnDebugger;
}
// ISデバッガのバナービューモード起動かどうか
BOOL SYSMi_IsDebuggerBannerViewMode( void )
{

Binary file not shown.

View File

@ -180,9 +180,6 @@ void HOTSW_SetSecureSegmentBuffer(ModeType type ,void* buf, u32 size);
// 上記のバッファ非クリアバージョン
void HOTSWi_SetSecureSegmentBuffer(ModeType type ,void* buf, u32 size);
// ISデバッガ上で動作しているか
BOOL HOTSWi_IsRunOnDebugger(void);
// ROMをエミュレーションしているか
BOOL HOTSWi_IsRomEmulation(void);

View File

@ -132,7 +132,6 @@ extern void SYSM_SetLogoDemoSkip( BOOL skip ); //
extern BOOL SYSM_IsValidTSD( void ); // TWL設定データは有効か
extern void SYSM_SetValidTSD( BOOL valid ); // TWL設定データの有効無効フラグを設定する。
extern const LauncherParamBody *SYSM_GetLauncherParamBody( void ); // ランチャーパラメータの取得
extern BOOL SYSM_IsRunOnDebugger( void ); // ISデバッガ上で動作しているか
extern BOOL SYSM_IsLauncherHidden( void ); // ランチャーの画面を表示しないバージョンか?

View File

@ -208,6 +208,18 @@ typedef struct DeliverBROM9Key {
#define GetDeliverBROM9KeyAddr() ( (DeliverBROM9Key *)HW_WRAM_0_LTD )
#endif
// ISデバッガ上で動作しているか
static inline BOOL SYSM_IsRunOnDebugger( void )
{
#ifdef SYSMENU_DEBUGGER_BUILD
return SYSMi_GetWork()->flags.hotsw.isOnDebugger;
#else
return FALSE;
#endif
}
#ifdef __cplusplus
}
#endif