From 002608f6ffe823e5b45a7aba5d331ecf486dd0cf Mon Sep 17 00:00:00 2001 From: kamikawa Date: Tue, 26 Aug 2008 13:21:22 +0000 Subject: [PATCH] =?UTF-8?q?=E6=9C=AC=E4=BD=93=E5=88=9D=E6=9C=9F=E5=8C=96?= =?UTF-8?q?=E5=87=A6=E7=90=86=E3=81=AB=E3=82=B7=E3=83=A7=E3=83=83=E3=83=97?= =?UTF-8?q?=E3=81=AE=E3=82=A2=E3=82=AB=E3=82=A6=E3=83=B3=E3=83=88=E6=83=85?= =?UTF-8?q?=E5=A0=B1=E3=82=92=E6=B6=88=E3=81=99=E5=87=A6=E7=90=86=E3=82=92?= =?UTF-8?q?=E8=BF=BD=E5=8A=A0=E3=80=82=20=E6=9C=AC=E4=BD=93=E5=88=9D?= =?UTF-8?q?=E6=9C=9F=E5=8C=96=E6=99=82=E3=81=AE=E3=83=A1=E3=83=A2=E3=83=AA?= =?UTF-8?q?=E3=83=AA=E3=83=BC=E3=82=AF=E3=82=92=E4=BF=AE=E6=AD=A3=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit git-svn-id: file:///Users/lillianskinner/Downloads/platinum/twl/TwlIPL/trunk@2280 b08762b0-b915-fc4b-9d8c-17b2551a87ff --- .../libraries_sysmenu/namut/ARM9/src/namut.c | 87 ++++++++++++++++++- 1 file changed, 83 insertions(+), 4 deletions(-) diff --git a/build/libraries_sysmenu/namut/ARM9/src/namut.c b/build/libraries_sysmenu/namut/ARM9/src/namut.c index 8b9aeaaa..2468c5df 100644 --- a/build/libraries_sysmenu/namut/ARM9/src/namut.c +++ b/build/libraries_sysmenu/namut/ARM9/src/namut.c @@ -62,6 +62,9 @@ static const char* sFillFileList[] = #define BACKLIGHT_INITIAL_VALUE 3 // 本体初期化時に設定するバックライト輝度 #define NAMUT_SHARE_ARCHIVE_MAX 6 // shareデータ個数 +#define SHOP_TITLE_ID 0x00030015484E4600 // ショップのTitleID(リージョン除く) +#define TITLE_ID_MASK_EXCEPT_REGION 0xFFFFFFFFFFFFFF00 // TitleIDのマスク(リージョン除く) + /*---------------------------------------------------------------------------* 内部変数定義 *---------------------------------------------------------------------------*/ @@ -82,6 +85,7 @@ static BOOL NAMUTi_InitShareData(void); static BOOL NAMUTi_MountAndFormatOtherTitleSaveData(u64 titleID, const char *arcname); static BOOL NAMUTi_RandClearFile(const char* path); static BOOL NAMUTi_ClearWiFiSettings( void ); +static BOOL NAMUTi_DeleteShopAccount( void ); static void* NAMUT_Alloc(u32 size); static void NAMUT_Free(void* buffer); @@ -128,6 +132,13 @@ BOOL NAMUT_Format(void) OS_TWarning("Fail! NAMUTi_DeleteNonprotectedTitle()\n"); } + // ショップアカウント情報を削除します + if (!NAMUTi_DeleteShopAccount()) + { + ret = FALSE; + OS_TWarning("Fail! NAMUTi_DeleteShopAccount()\n"); + } + // プロテクトタイトルのセーブデータを初期化します if (!NAMUTi_ClearSavedataAll()) { @@ -164,10 +175,18 @@ BOOL NAMUT_Format(void) } // WiFi設定データをクリアします - ret &= NAMUTi_ClearWiFiSettings(); + if (!NAMUTi_ClearWiFiSettings()) + { + ret = FALSE; + OS_TWarning("Fail! NAMUTi_ClearWiFiSettings()\n"); + } // 本体設定データのクリア - ret &= NAMUT_ClearTWLSettings( TRUE ); + if (!NAMUT_ClearTWLSettings( TRUE )) + { + ret = FALSE; + OS_TWarning("Fail! NAMUT_ClearTWLSettings()\n"); + } // RTCのクリアは必要ない。2008.06.25 小野沢確認。 // 本体初期化後の初回起動シーケンス起動時にRTCをクリアするため。 @@ -332,7 +351,6 @@ BOOL NAMUT_DeleteNandTmpDirectory(void) Returns: None *---------------------------------------------------------------------------*/ - static BOOL NAMUTi_DeleteNonprotectedTitle(void) { char dirPath[NAM_PATH_LEN]; @@ -427,7 +445,6 @@ static BOOL NAMUTi_DeleteNonprotectedTitle(void) Returns: None *---------------------------------------------------------------------------*/ - static BOOL NAMUTi_ClearSavedataAll( void ) { u32 title_num; @@ -489,6 +506,8 @@ static BOOL NAMUTi_ClearSavedataAll( void ) else { ret = FALSE; } } + NAMUT_Free(pTitleIdArray); + return ret; } @@ -966,6 +985,66 @@ static BOOL NAMUTi_ClearWiFiSettings( void ) return TRUE; } +/*---------------------------------------------------------------------------* + Name: NAMUTi_DeleteShopAccount + + Description: ショップのアカウント情報を消去します。 + + Arguments: None + + Returns: None + *---------------------------------------------------------------------------*/ +static BOOL NAMUTi_DeleteShopAccount( void ) +{ + u32 title_num; + NAMTitleId* pTitleIdArray; + char path[ FS_ENTRY_LONGNAME_MAX ]; + BOOL ret = TRUE; + s32 i; + + // タイトル数取得 + title_num = (u32)NAM_GetNumTitles(); + + // タイトルID配列用メモリ確保 + pTitleIdArray = NAMUT_Alloc(sizeof(NAMTitleId)*title_num); + if (pTitleIdArray == NULL) + { + OS_TWarning("Allocation failed in %s\n", __func__); + return FALSE; + } + + // タイトルリスト取得 + if (NAM_GetTitleList(pTitleIdArray, title_num) != NAM_OK) + { + OS_TWarning("Fail! NAM_GetTitleList() in %s\n", __func__); + NAMUT_Free(pTitleIdArray); + return FALSE; + } + + // ショップを検索する + for (i=0;i