diff --git a/build/libraries_sysmenu/namut/ARM9/src/namut.c b/build/libraries_sysmenu/namut/ARM9/src/namut.c index ba69d1b6..1ba188a3 100644 --- a/build/libraries_sysmenu/namut/ARM9/src/namut.c +++ b/build/libraries_sysmenu/namut/ARM9/src/namut.c @@ -164,8 +164,8 @@ BOOL NAMUT_Format(void) // WiFi設定データをクリアします NAMUTi_ClearWiFiSettings(); - // SoftBoxCountの更新を行います - NAMUT_UpdateSoftBoxCount(); + // 本体設定データのクリア + ret &= NAMUT_ClearTWLSettings( TRUE ); return ret; } @@ -610,39 +610,42 @@ BOOL NAMUT_GetSoftBoxCount( u8* installed, u8* free ) } /*---------------------------------------------------------------------------* - Name: NAMUT_UpdateSoftBoxCount + Name: NAMUT_ClearTWLSettings - Description: InstalledSoftBoxCount, FreeSoftBoxCount の値を - 現在のNANDの状態に合わせて更新します。 + Description: TWL本体設定データのクリアを行います。 Arguments: None. Returns: 成功ならTRUE *---------------------------------------------------------------------------*/ -BOOL NAMUT_UpdateSoftBoxCount( void ) +BOOL NAMUT_ClearTWLSettings( BOOL doWriteback ) { - u8 installedSoftBoxCount; - u8 freeSoftBoxCount; - u8 *pBuffer; - - // InstalledSoftBoxCount, FreeSoftBoxCount を数えなおす - if (!NAMUT_GetSoftBoxCount(&installedSoftBoxCount, &freeSoftBoxCount)) + BOOL retval = TRUE; + + // 本体設定データのクリア。TPキャリブレーションデータは残す。 { - return FALSE; + LCFGTWLTPCalibData calib; + u32 installedSoftBoxCount; + + // installedSoftBoxCountの取得 + if ( NAM_OK != NAM_GetInstalledSoftBoxCount( &installedSoftBoxCount ) ) { + return FALSE; + } + + LCFG_TSD_GetTPCalibration( &calib ); + LCFG_ClearTWLSettings( (u8)installedSoftBoxCount ); + LCFG_TSD_SetTPCalibration( &calib ); } -// OS_Printf("installedSoftBoxCount = %d\n", installedSoftBoxCount); -// OS_Printf("freeSoftBoxCount = %d\n", freeSoftBoxCount); - - // LCFGライブラリの静的変数に対する更新 - LCFG_TSD_SetInstalledSoftBoxCount( installedSoftBoxCount ); - LCFG_TSD_SetFreeSoftBoxCount( freeSoftBoxCount ); - // LCFGライブラリの静的変数の値をNANDに反映 - pBuffer = spAllocFunc( LCFG_WRITE_TEMP ); - if (!pBuffer) { return FALSE; } - (void)LCFG_WriteTWLSettings( (u8 (*)[ LCFG_WRITE_TEMP ] )pBuffer ); - spFreeFunc( pBuffer ); + if( doWriteback ) { + u8 *pBuffer = spAllocFunc( LCFG_WRITE_TEMP ); + if (!pBuffer) { return FALSE; } + // ミラーリングデータの両方に書き込みを行う。 + retval &= LCFG_WriteTWLSettings( (u8 (*)[ LCFG_WRITE_TEMP ] )pBuffer ); + retval &= LCFG_WriteTWLSettings( (u8 (*)[ LCFG_WRITE_TEMP ] )pBuffer ); + spFreeFunc( pBuffer ); + } return TRUE; } @@ -752,8 +755,7 @@ static void NAMUTi_ClearWiFiSettings( void ) #define NCFG_ADDR 0x20 #define NTR_WIFI_DATA_SIZE 0x400 #define TWL_WIFI_DATA_SIZE 0x600 -#define NTR_MACHINE_SETTINGS_DATA_SIZE 0x200 - int total_size = ( NTR_WIFI_DATA_SIZE + TWL_WIFI_DATA_SIZE + NTR_MACHINE_SETTINGS_DATA_SIZE); + int total_size = ( NTR_WIFI_DATA_SIZE + TWL_WIFI_DATA_SIZE ); if (!NVRAMi_IsInitialized()) { NVRAMi_Init(); diff --git a/build/libraries_sysmenu/util/ARM9/src/util.c b/build/libraries_sysmenu/util/ARM9/src/util.c index 24caa413..624b9947 100644 --- a/build/libraries_sysmenu/util/ARM9/src/util.c +++ b/build/libraries_sysmenu/util/ARM9/src/util.c @@ -259,31 +259,3 @@ BOOL UTL_CheckRTCTime( RTCTime *timep ) return TRUE; } -//====================================================================== -// タイトル数取得 -//====================================================================== - -// ローンチ対象のアプリ数カウント -int UTL_GetInstalledSoftBoxCount( void ) -{ - int l; - int listNum; - int validNum = 0; - OSTitleId titleIDArray[ LCFG_TWL_FREE_SOFT_BOX_COUNT_MAX ]; - - MI_CpuClear32( titleIDArray, sizeof(titleIDArray) ); - - // インストールされているNANDアプリ全タイトルのTitleID取得 - listNum = NAM_GetNumTitles(); - (void)NAM_GetTitleList( titleIDArray, (u32)listNum ); - - // 取得したタイトルがローンチ対象かどうかをチェック - for( l = 0; l < listNum; l++ ) { - // "Not Launch"でない かつ "Data Only"でない なら有効なタイトルとしてリストに追加 - if( ( titleIDArray[ l ] & ( TITLE_ID_NOT_LAUNCH_FLAG_MASK | TITLE_ID_DATA_ONLY_FLAG_MASK ) ) == 0 ) { - validNum++; - } - } - return validNum; -} - diff --git a/include/sysmenu/namut.h b/include/sysmenu/namut.h index c1edd945..e46bcfd9 100644 --- a/include/sysmenu/namut.h +++ b/include/sysmenu/namut.h @@ -137,6 +137,19 @@ BOOL NAMUTi_DestroySubBanner(const char* path); BOOL NAMUT_DeleteNandDirectory(const char *path); +/*---------------------------------------------------------------------------* + Name: NAMUT_ClearTWLSettings + + Description: TWL本体設定データのクリアを行います。 + + Arguments: TRUE : クリアした値をNANDにライトバックします。 + FALSE: NANDへのライトバックは行いません。 + + Returns: 成功ならTRUE + *---------------------------------------------------------------------------*/ +BOOL NAMUT_ClearTWLSettings( BOOL doWriteback ); + + #endif // SDK_ARM9 #ifdef __cplusplus diff --git a/include/sysmenu/util.h b/include/sysmenu/util.h index 4ccfe0ff..7533ef7a 100644 --- a/include/sysmenu/util.h +++ b/include/sysmenu/util.h @@ -55,9 +55,6 @@ extern BOOL UTL_IsLeapYear100( u32 year ); // extern u32 UTL_CalcPCTLInquiryCode( void ); // 問い合わせコード(10進8桁)算出 extern u32 UTL_CalcPCTLMasterKey( void ); // マスターキー  (10進5桁)算出(※内部でRTC_GetDateを使用します。) -// タイトル数取得(内部でNAMを使用するので、NAM_Initが事前に呼ばれている必要あり) -extern int UTL_GetInstalledSoftBoxCount( void ); - // アプリROMヘッダの要EULAフラグ取得 static inline BOOL UTL_IsROMHeaderEULARequired( void ) {