From bac39e78dfb674b6ce0129bd07c29bf7c35e2212 Mon Sep 17 00:00:00 2001 From: kamikawa Date: Fri, 16 May 2008 06:08:34 +0000 Subject: [PATCH] =?UTF-8?q?NAMUT=5FInit=E9=96=A2=E6=95=B0=E3=82=92?= =?UTF-8?q?=E8=BF=BD=E5=8A=A0=E3=81=97=E3=81=BE=E3=81=97=E3=81=9F=E3=80=82?= =?UTF-8?q?=EF=BC=88Alloc/Free=EF=BC=89=E3=82=92=E6=B8=A1=E3=81=97?= =?UTF-8?q?=E3=81=BE=E3=81=99=E3=80=82=20ImportJump=20=E3=81=8C=E3=81=86?= =?UTF-8?q?=E3=81=BE=E3=81=8F=E5=8B=95=E4=BD=9C=E3=81=97=E3=81=AA=E3=81=84?= =?UTF-8?q?=E5=95=8F=E9=A1=8C=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@1376 b08762b0-b915-fc4b-9d8c-17b2551a87ff --- .../libraries_sysmenu/namut/ARM9/src/namut.c | 92 ++++++++++++------- .../MachineSettings/ARM9/src/main.c | 2 + .../ImportJump/ARM9.TWL/include/ImportJump.h | 2 +- .../ImportJump/ARM9.TWL/main.rsf | 2 +- .../ImportJump/ARM9.TWL/src/import.c | 35 ++++--- .../ImportJump/ARM9.TWL/src/main.c | 5 +- .../NandInitializerRed/ARM9.TWL/src/main.c | 2 + include/sysmenu/namut.h | 15 +++ 8 files changed, 101 insertions(+), 54 deletions(-) diff --git a/build/libraries_sysmenu/namut/ARM9/src/namut.c b/build/libraries_sysmenu/namut/ARM9/src/namut.c index 7cf42123..5202e175 100644 --- a/build/libraries_sysmenu/namut/ARM9/src/namut.c +++ b/build/libraries_sysmenu/namut/ARM9/src/namut.c @@ -69,7 +69,6 @@ static const char* sFillFileList[] = "nand:/shared1/TWLCFG1.dat" }; - static u8 sClearData[CLEAR_DATA_SIZE] ATTRIBUTE_ALIGN(32); static u32 sNCFGAddr; @@ -77,6 +76,8 @@ static u32 sNCFGAddr; 内部変数定義 *---------------------------------------------------------------------------*/ +static NAMUTAlloc spAllocFunc; +static NAMUTFree spFreeFunc; static FSDirectoryEntryInfo sEntryInfo; static NAMTitleId sTitleIdArray[TITLE_LIST_MAX]; static char sCurrentFullPath[FS_ENTRY_LONGNAME_MAX]; @@ -90,11 +91,32 @@ static BOOL NAMUTi_DeleteNonprotectedTitleEntity(const char* path); static BOOL NAMUTi_ClearSavedataAll(void); static BOOL NAMUTi_MountAndFormatOtherTitleSaveData(u64 titleID, const char *arcname); static void NAMUTi_DrawNandTree(s32 depth, const char *path); -static BOOL NAMUTi_FillFile(const char* path); +static BOOL NAMUTi_RandClearFile(const char* path); static void NAMUTi_ClearWiFiSettings( void ); static void PrintDirectory(s32 depth, const char* path); static void PrintFile(s32 depth, const char* path); +/*---------------------------------------------------------------------------* + Name: NAMUT_Init + + Description: NAMUT ライブラリの初期化を行います。 + + Arguments: allocFunc: メモリ確保関数へのポインタ。 + freeFunc: メモリ解放関数へのポインタ。 + + Returns: なし。 + *---------------------------------------------------------------------------*/ +void NAMUT_Init(NAMUTAlloc allocFunc, NAMUTFree freeFunc) +{ + SDK_ASSERT( spAllocFunc == NULL ); + SDK_ASSERT( spFreeFunc == NULL ); + SDK_POINTER_ASSERT(allocFunc); + SDK_POINTER_ASSERT(freeFunc); + + spAllocFunc = allocFunc; + spFreeFunc = freeFunc; +} + /*---------------------------------------------------------------------------* Name: NAMUT_Format @@ -124,13 +146,13 @@ BOOL NAMUT_Format(void) OS_TWarning("Fail! NAMUTi_ClearSavedataAll()\n"); } - // 指定ファイルを0xffでクリアします + // 指定ファイルを乱数でクリアします for (i=0; ianime, sizeof(BannerAnime) ); + crc = SVC_GetCRC16( 0xffff, &pBanner->anime, sizeof(BannerAnime) ); solt = 1; crc += solt; - buf->h.crc16_anime = crc; + pBanner->h.crc16_anime = crc; FS_SeekFile( file, 0, FS_SEEK_SET ); - if( sizeof(BannerHeader) == FS_WriteFile(file, &buf->h, sizeof(BannerHeader)) ) + if( sizeof(BannerHeader) == FS_WriteFile(file, &pBanner->h, sizeof(BannerHeader)) ) { OS_TPrintf("OS_DeleteSubBannerFile : banner file write succeed.\n"); ret = TRUE; @@ -471,7 +498,8 @@ BOOL NAMUTi_DestroySubBanner(const char* path) OS_TPrintf("OS_DeleteSubBannerFile : banner file read failed.\n"); } FS_CloseFile(file); - + + spFreeFunc( pBanner ); return ret; } @@ -520,15 +548,15 @@ static BOOL NAMUTi_MountAndFormatOtherTitleSaveData(u64 titleID, const char *arc } /*---------------------------------------------------------------------------* - Name: NAMUTi_FillFile + Name: NAMUTi_RandClearFile - Description: 指定したファイルを0xFFで埋めます。 + Description: 指定したファイルを乱数で埋めます。 Arguments: path Returns: None *---------------------------------------------------------------------------*/ -static BOOL NAMUTi_FillFile(const char* path) +static BOOL NAMUTi_RandClearFile(const char* path) { FSFile file; diff --git a/build/systemMenu_RED/MachineSettings/ARM9/src/main.c b/build/systemMenu_RED/MachineSettings/ARM9/src/main.c index 10389ded..e9ec01f3 100644 --- a/build/systemMenu_RED/MachineSettings/ARM9/src/main.c +++ b/build/systemMenu_RED/MachineSettings/ARM9/src/main.c @@ -17,6 +17,7 @@ #include #include +#include #include "misc.h" #include "MachineSetting.h" @@ -72,6 +73,7 @@ void TwlMain(void) // NAMライブラリ初期化 NAM_Init( Alloc, Free ); // NAMUTライブラリがNAMライブラリを使用している + NAMUT_Init( Alloc, Free ); // ※本来ならランチャーからのパラメータチェックを行い、 // 初回起動シーケンスに入るパスがある diff --git a/build/systemMenu_tools/ImportJump/ARM9.TWL/include/ImportJump.h b/build/systemMenu_tools/ImportJump/ARM9.TWL/include/ImportJump.h index 3c14d6fe..b29ee37d 100644 --- a/build/systemMenu_tools/ImportJump/ARM9.TWL/include/ImportJump.h +++ b/build/systemMenu_tools/ImportJump/ARM9.TWL/include/ImportJump.h @@ -35,7 +35,7 @@ typedef struct _ImportJumpSetting u32 magicCode; // = TWLD u32 clearPublicSaveData :1; // publicセーブデータをクリアする(デフォルトOFF) u32 clearPrivateSaveData :1; // privareセーブデータをクリアする(デフォルトOFF) - u32 clearSaveBannerFile:1; // セーブバナーファイルをクリアする(デフォルトOFF) + u32 clearSubBannerFile:1; // サブバナーファイルをクリアする(デフォルトOFF) u32 importTad:1; // パスで指定されたTADファイルをインポートするか(TADの更新有無に依存) u32 rsv :28; // 予約 u32 tadRomOffset; // TADをロードしたエミュレーションROMオフセット diff --git a/build/systemMenu_tools/ImportJump/ARM9.TWL/main.rsf b/build/systemMenu_tools/ImportJump/ARM9.TWL/main.rsf index ca9d017a..f36c842a 100644 --- a/build/systemMenu_tools/ImportJump/ARM9.TWL/main.rsf +++ b/build/systemMenu_tools/ImportJump/ARM9.TWL/main.rsf @@ -154,7 +154,7 @@ Property # # DisableDebug :最終ROMではデバッグできないようにTRUEにする必要があります。 # - DisableDebug TRUE + DisableDebug FALSE ### #### END diff --git a/build/systemMenu_tools/ImportJump/ARM9.TWL/src/import.c b/build/systemMenu_tools/ImportJump/ARM9.TWL/src/import.c index 0f506cfd..b3733801 100644 --- a/build/systemMenu_tools/ImportJump/ARM9.TWL/src/import.c +++ b/build/systemMenu_tools/ImportJump/ARM9.TWL/src/import.c @@ -163,46 +163,43 @@ BOOL kamiImportTad(NAMTitleId* pTitleID) if ( NAM_GetTitleSaveFilePath(savePublicPath, savePrivatePath, tadInfo.titleInfo.titleId) != NAM_OK ) { OS_Warning(" Fail! NAM_GetTitleSaveFilePath\n"); - return FALSE; } - - // publicセーブデータFFクリア&フォーマット - if (GetImportJumpSetting()->clearPublicSaveData && tadInfo.titleInfo.publicSaveSize > 0) + else { - if (NAMUTi_ClearSavedataPublic(savePublicPath, tadInfo.titleInfo.titleId) == FALSE) + // publicセーブデータFFクリア&フォーマット + if (GetImportJumpSetting()->clearPublicSaveData && tadInfo.titleInfo.publicSaveSize > 0) { - OS_Warning(" Fail! NAMUTi_ClearSavedataPublic\n"); - return FALSE; + if (NAMUTi_ClearSavedataPublic(savePublicPath, tadInfo.titleInfo.titleId) == FALSE) + { + OS_Warning(" Fail! NAMUTi_ClearSavedataPublic\n"); + } } - } - // privateセーブデータFFクリア&フォーマット - if (GetImportJumpSetting()->clearPrivateSaveData && tadInfo.titleInfo.privateSaveSize > 0) - { - if (NAMUTi_ClearSavedataPublic(savePrivatePath, tadInfo.titleInfo.titleId) == FALSE) + // privateセーブデータFFクリア&フォーマット + if (GetImportJumpSetting()->clearPrivateSaveData && tadInfo.titleInfo.privateSaveSize > 0) { - OS_Warning(" Fail! NAMUTi_ClearSavedataPrivate\n"); - return FALSE; + if (NAMUTi_ClearSavedataPublic(savePrivatePath, tadInfo.titleInfo.titleId) == FALSE) + { + OS_Warning(" Fail! NAMUTi_ClearSavedataPrivate\n"); + } } } } // サブバナークリア処理 - if (GetImportJumpSetting()->clearSaveBannerFile) + if (GetImportJumpSetting()->clearSubBannerFile) { // サブバナーパス取得 if ( NAM_GetTitleBannerFilePath(subBannerPath, tadInfo.titleInfo.titleId) != NAM_OK ) { OS_Warning(" Fail! NAM_GetTitleBannerFilePath\n"); - return FALSE; } - - // サブバナー破壊 + else { + // サブバナー破壊 if (NAMUTi_DestroySubBanner(subBannerPath) == FALSE) { OS_Warning(" Fail! NAMUTi_DestroySubBanner\n"); - return FALSE; } } } diff --git a/build/systemMenu_tools/ImportJump/ARM9.TWL/src/main.c b/build/systemMenu_tools/ImportJump/ARM9.TWL/src/main.c index a374af5e..2bafc54a 100644 --- a/build/systemMenu_tools/ImportJump/ARM9.TWL/src/main.c +++ b/build/systemMenu_tools/ImportJump/ARM9.TWL/src/main.c @@ -21,6 +21,8 @@ #include #include #include +#include + #include "kami_font.h" #include "import.h" #include "graphics.h" @@ -97,7 +99,8 @@ TwlMain() FS_Init(FS_DMA_NOT_USE); // NAMライブラリ初期化 - NAM_Init( OS_AllocFromMain, OS_FreeToMain); + NAM_Init( OS_AllocFromMain, OS_FreeToMain ); + NAMUT_Init( OS_AllocFromMain, OS_FreeToMain ); // 表示関連初期化 InitGraphics(); diff --git a/build/systemMenu_tools/NandInitializerRed/ARM9.TWL/src/main.c b/build/systemMenu_tools/NandInitializerRed/ARM9.TWL/src/main.c index 1542dd91..937ecdff 100644 --- a/build/systemMenu_tools/NandInitializerRed/ARM9.TWL/src/main.c +++ b/build/systemMenu_tools/NandInitializerRed/ARM9.TWL/src/main.c @@ -20,6 +20,7 @@ #include #include #include +#include #include "kami_font.h" #include "process_format.h" #include "process_topmenu.h" @@ -102,6 +103,7 @@ TwlMain() // NAMライブラリ初期化 NAM_Init( OS_AllocFromMain, OS_FreeToMain); + NAMUT_Init( OS_AllocFromMain, OS_FreeToMain); // 表示関連初期化 InitGraphics(); diff --git a/include/sysmenu/namut.h b/include/sysmenu/namut.h index d00ce5b4..87b4fd92 100644 --- a/include/sysmenu/namut.h +++ b/include/sysmenu/namut.h @@ -24,6 +24,21 @@ extern "C" { #ifdef SDK_ARM9 +typedef void* (*NAMUTAlloc)(u32 size); +typedef void (*NAMUTFree)(void* ptr); + +/*---------------------------------------------------------------------------* + Name: NAMUT_Init + + Description: NAMUT ライブラリの初期化を行います。 + + Arguments: allocFunc: メモリ確保関数へのポインタ。 + freeFunc: メモリ解放関数へのポインタ。 + + Returns: なし。 + *---------------------------------------------------------------------------*/ +void NAMUT_Init(NAMUTAlloc allocFunc, NAMUTFree freeFunc); + /*---------------------------------------------------------------------------* Name: NAMUT_Format