diff --git a/build/libraries_sysmenu/hotsw/ARM7/src/hotsw.c b/build/libraries_sysmenu/hotsw/ARM7/src/hotsw.c index df190d8c..089af9ef 100644 --- a/build/libraries_sysmenu/hotsw/ARM7/src/hotsw.c +++ b/build/libraries_sysmenu/hotsw/ARM7/src/hotsw.c @@ -498,30 +498,37 @@ static HotSwState LoadBannerData(void) { BOOL state; HotSwState retval = HOTSW_SUCCESS; - + // バナーリード if( s_cbData.pBootSegBuf->rh.s.banner_offset ) { retval = s_funcTable[s_cbData.cardType].ReadPage_G(&s_cbData, s_cbData.pBootSegBuf->rh.s.banner_offset, (u32 *)SYSM_CARD_BANNER_BUF, sizeof(TWLBannerFile) ); + + // バナーリードが成功していたら各種フラグTRUE その他の場合はFALSE (この関数の外で排他制御されているからここでは排他制御しないでOK) + state = (retval == HOTSW_SUCCESS) ? TRUE : FALSE; + SYSMi_GetWork()->flags.hotsw.isValidCardBanner = state; + SYSMi_GetWork()->flags.hotsw.isCardStateChanged = (u8)state; + SYSMi_GetWork()->flags.hotsw.isExistCard = state; } else{ // バナーデータが登録されていない場合 (この関数の外で排他制御されているからここでは排他制御しないでOK) SYSMi_GetWork()->flags.hotsw.isValidCardBanner = FALSE; SYSMi_GetWork()->flags.hotsw.isExistCard = TRUE; SYSMi_GetWork()->flags.hotsw.isCardStateChanged = TRUE; - SYSMi_GetWork()->flags.hotsw.is1stCardChecked = TRUE; - - return retval; } - // バナーリードが成功していたら各種フラグTRUE その他の場合はFALSE (この関数の外で排他制御されているからここでは排他制御しないでOK) - state = (retval == HOTSW_SUCCESS) ? TRUE : FALSE; - SYSMi_GetWork()->flags.hotsw.isValidCardBanner = state; - SYSMi_GetWork()->flags.hotsw.isCardStateChanged = (u8)state; - SYSMi_GetWork()->flags.hotsw.isExistCard = state; - SYSMi_GetWork()->flags.hotsw.is1stCardChecked = TRUE; + if ( SYSMi_GetWork()->flags.hotsw.isExistCard ) + { + SYSMi_GetWork()->flags.hotsw.isInspectCard = ((ROM_Header_Short *)SYSM_CARD_ROM_HEADER_BAK)->inspect_card; + } + else + { + SYSMi_GetWork()->flags.hotsw.isInspectCard = FALSE; + } + +// SYSMi_GetWork()->flags.hotsw.is1stCardChecked = TRUE; return retval; } diff --git a/build/libraries_sysmenu/sysmenu/ARM9/src/sysmenu_lib.c b/build/libraries_sysmenu/sysmenu/ARM9/src/sysmenu_lib.c index e377121c..ff7765db 100644 --- a/build/libraries_sysmenu/sysmenu/ARM9/src/sysmenu_lib.c +++ b/build/libraries_sysmenu/sysmenu/ARM9/src/sysmenu_lib.c @@ -218,6 +218,7 @@ static TitleProperty *SYSMi_CheckShortcutBoot( void ) s_bootTitle.flags.isLogoSkip = TRUE; // ロゴデモを飛ばす s_bootTitle.flags.bootType = LAUNCHER_BOOTTYPE_ROM; s_bootTitle.flags.isValid = TRUE; + // [TODO] 現状ではROMヘッダがまだコピーされていない s_bootTitle.titleID = *(u64 *)( &SYSM_GetCardRomHeader()->titleID_Lo ); SYSM_SetLogoDemoSkip( s_bootTitle.flags.isLogoSkip ); return &s_bootTitle; diff --git a/build/libraries_sysmenu/sysmenu/common/src/status.c b/build/libraries_sysmenu/sysmenu/common/src/status.c index 2fbb5bb2..3fc8ec41 100644 --- a/build/libraries_sysmenu/sysmenu/common/src/status.c +++ b/build/libraries_sysmenu/sysmenu/common/src/status.c @@ -93,7 +93,7 @@ BOOL SYSM_IsExistCard( void ) // 検査用カードが差さっているか? BOOL SYSM_IsInspectCard( void ) { - return ( SYSM_IsExistCard() && SYSM_GetCardRomHeader()->inspect_card ); + return ( SYSM_IsExistCard() && SYSMi_GetWork()->flags.hotsw.isInspectCard ); } diff --git a/include/sysmenu/sysmenu_lib/common/sysmenu_work.h b/include/sysmenu/sysmenu_lib/common/sysmenu_work.h index c5df1068..e854b577 100644 --- a/include/sysmenu/sysmenu_lib/common/sysmenu_work.h +++ b/include/sysmenu/sysmenu_lib/common/sysmenu_work.h @@ -93,6 +93,7 @@ typedef struct SYSM_work { }common; struct { vu16 isExistCard :1; // 有効なNTR/TWLカードが存在するか? + vu16 isInspectCard :1; // 検査カードか? vu16 isOnDebugger :1; // デバッガ動作か? vu16 isEnableHotSW :1; // 活線挿抜有効? vu16 isBusyHotSW :1; // 活線挿抜処理中?