From 46043f3a55c26519a62f11aa48b893d5419aa89b Mon Sep 17 00:00:00 2001 From: kamikawa Date: Thu, 10 Apr 2008 10:43:21 +0000 Subject: [PATCH] =?UTF-8?q?NandInitializer=E3=80=80=E3=81=8C=E7=84=A1?= =?UTF-8?q?=E7=B7=9A=E3=83=95=E3=82=A1=E3=83=BC=E3=83=A0=E3=82=92=E6=B6=88?= =?UTF-8?q?=E5=8E=BB=E3=81=97=E3=81=A6=E3=81=97=E3=81=BE=E3=81=86=E4=B8=8D?= =?UTF-8?q?=E5=85=B7=E5=90=88=E3=82=92=E4=BF=AE=E6=AD=A3=E3=80=82RomVersio?= =?UTF-8?q?n=20=E3=82=92=200->1=20=E3=81=B8=20=E3=83=95=E3=82=A1=E3=83=BC?= =?UTF-8?q?=E3=83=A0=E6=9B=B8=E3=81=8D=E8=BE=BC=E3=81=BF=E6=99=82=E3=81=AE?= =?UTF-8?q?=E3=82=AD=E3=83=A3=E3=83=83=E3=82=B7=E3=83=A5=E6=93=8D=E4=BD=9C?= =?UTF-8?q?=E3=82=92=E3=82=88=E3=82=8A=E5=AE=89=E5=85=A8=E3=81=AA=E5=BD=A2?= =?UTF-8?q?=E3=81=AB=E6=94=B9=E5=96=84=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@1103 b08762b0-b915-fc4b-9d8c-17b2551a87ff --- build/libraries_sysmenu/namut/ARM9/src/namut.c | 8 +++++++- .../NandInitializerRed/ARM9.TWL/main.rsf | 2 +- .../ARM9.TWL/src/process_nandfirm.c | 12 ++++++------ .../ARM9.TWL/src/process_norfirm.c | 11 ++++++----- 4 files changed, 20 insertions(+), 13 deletions(-) diff --git a/build/libraries_sysmenu/namut/ARM9/src/namut.c b/build/libraries_sysmenu/namut/ARM9/src/namut.c index ebb8f9f8..2f8395dd 100644 --- a/build/libraries_sysmenu/namut/ARM9/src/namut.c +++ b/build/libraries_sysmenu/namut/ARM9/src/namut.c @@ -282,7 +282,13 @@ static BOOL NAMUTi_DeleteNonprotectedTitleEntity(const char* path) // ディレクトリの場合 if (entryInfo.attributes & FS_ATTRIBUTE_IS_DIRECTORY) { - s8 titlePropety = (s8)(entryInfo.longname[TITLE_ID_HI_SIZE-1] - '0'); + u8 titlePropety = (u8)(entryInfo.longname[TITLE_ID_HI_SIZE-1] - '0'); + + // 文字コードで0-9とa-fは連続していないという罠 + if (titlePropety >= ('a'-'0')) + { + titlePropety -= 0x27; + } // プロテクト対象でない場合ディレクトリごと消去する if (!(titlePropety & PROTECT_TITLE_PROPERTY)) diff --git a/build/systemMenu_RED/NandInitializerRed/ARM9.TWL/main.rsf b/build/systemMenu_RED/NandInitializerRed/ARM9.TWL/main.rsf index 6af6e1c9..f5ade2ab 100644 --- a/build/systemMenu_RED/NandInitializerRed/ARM9.TWL/main.rsf +++ b/build/systemMenu_RED/NandInitializerRed/ARM9.TWL/main.rsf @@ -68,7 +68,7 @@ Property # # REMASTER VERSION: Mastering version # - #RomVersion 0 + RomVersion 1 # # ROM SPEED TYPE: [MROM/1TROM/UNDEFINED] diff --git a/build/systemMenu_RED/NandInitializerRed/ARM9.TWL/src/process_nandfirm.c b/build/systemMenu_RED/NandInitializerRed/ARM9.TWL/src/process_nandfirm.c index 3ea23f69..80c023ce 100644 --- a/build/systemMenu_RED/NandInitializerRed/ARM9.TWL/src/process_nandfirm.c +++ b/build/systemMenu_RED/NandInitializerRed/ARM9.TWL/src/process_nandfirm.c @@ -394,8 +394,6 @@ static BOOL WriteNandfirm(char* file_name) kamiFontPrintfConsoleEx(1, "Fail kamiNvramRead()!\n"); } - // 読み込みはARM7が直接メモリに書き出すため - DC_InvalidateRange(pTempBuf, sizeof(NORHeaderDS)); // 書き込み後のCRCを計算 crc_r1 = SVC_GetCRC16( 0xffff, pTempBuf, sizeof(NORHeaderDS) ); @@ -423,14 +421,16 @@ static BOOL WriteNandfirm(char* file_name) // CRCを計算するので念のためにクリアしてからリードする MI_CpuFill8( sNvramPageSizeBuffer, 0xee, NVRAM_PAGE_SIZE ); + + // 読み込みはARM7が直接メモリに書き出すため + DC_InvalidateRange(sNvramPageSizeBuffer, NVRAM_PAGE_SIZE); + if (kamiNvramRead(NVRAM_NORFIRM_RESERVED_ADDRESS, sNvramPageSizeBuffer, NVRAM_PAGE_SIZE) == KAMI_RESULT_SEND_ERROR) { kamiFontPrintfConsoleEx(1, "Fail kamiNvramRead()\n"); result = FALSE; } - // 読み込みはARM7が直接メモリに書き出すため - DC_InvalidateRange(sNvramPageSizeBuffer, NVRAM_PAGE_SIZE); // 書き込み後のCRCを計算 crc_norfirm_reserved_area_r = SVC_GetCRC16( 0xffff, sNvramPageSizeBuffer, NVRAM_PAGE_SIZE ); @@ -442,13 +442,13 @@ static BOOL WriteNandfirm(char* file_name) } #ifdef CLEAR_NON_ASIGNED_AREA_AND_RESERVED_AREA_ALL + DC_InvalidateRange( sNvramPageSizeBuffer, NVRAM_PAGE_SIZE ); // 未割り当て領域+予約領域を0クリアします(開発用) if (kamiNvramRead(NVRAM_CONFIG_DATA_OFFSET_ADDRESS, &sNvramPageSizeBuffer, NVRAM_PAGE_SIZE) == KAMI_RESULT_SEND_ERROR) { kamiFontPrintfConsoleEx(1, "Fail kamiNvramRead()\n"); result = FALSE; } - DC_InvalidateRange( sNvramPageSizeBuffer, NVRAM_PAGE_SIZE ); sReservedAreaEndAddress = (u32)(*(u16 *)sNvramPageSizeBuffer << NVRAM_CONFIG_DATA_OFFSET_SHIFT) - 0xA00;// TWL WiFi設定 + NTR WiFi設定 を差し引く //OS_Printf("end = %x\n", sReservedAreaEndAddress); @@ -476,12 +476,12 @@ static BOOL WriteNandfirm(char* file_name) result = FALSE; } + DC_InvalidateRange( sNvramPageSizeBuffer, NVRAM_PAGE_SIZE ); if (kamiNvramRead(NVRAM_CONFIG_DATA_OFFSET_ADDRESS, &sNvramPageSizeBuffer, NVRAM_PAGE_SIZE) == KAMI_RESULT_SEND_ERROR) { kamiFontPrintfConsoleEx(1, "Fail kamiNvramRead()\n"); result = FALSE; } - DC_InvalidateRange( sNvramPageSizeBuffer, NVRAM_PAGE_SIZE ); sReservedAreaEndAddress = (u32)(*(u16 *)sNvramPageSizeBuffer << NVRAM_CONFIG_DATA_OFFSET_SHIFT) - 0xA00;// TWL WiFi設定 + NTR WiFi設定 を差し引く MI_CpuFill8( sNvramPageSizeBuffer, 0x00, NVRAM_PAGE_SIZE ); diff --git a/build/systemMenu_RED/NandInitializerRed/ARM9.TWL/src/process_norfirm.c b/build/systemMenu_RED/NandInitializerRed/ARM9.TWL/src/process_norfirm.c index 93a020ce..bfa6c8c4 100644 --- a/build/systemMenu_RED/NandInitializerRed/ARM9.TWL/src/process_norfirm.c +++ b/build/systemMenu_RED/NandInitializerRed/ARM9.TWL/src/process_norfirm.c @@ -355,14 +355,15 @@ static BOOL WriteNorfirm(char* file_name) result = FALSE; } + // 読み込みはARM7が直接メモリに書き出す + DC_InvalidateRange(pTempBuf, sizeof(NORHeaderDS)); + // CRCチェックのためNvramからリード if (kamiNvramRead(0, pTempBuf, sizeof(NORHeaderDS) ) == KAMI_RESULT_SEND_ERROR) { OS_Printf("kamiNvramRead ... ERROR!\n"); } - // 読み込みはARM7が直接メモリに書き出す - DC_InvalidateRange(pTempBuf, sizeof(NORHeaderDS)); // 書き込み後のCRCを計算 crc_r1 = SVC_GetCRC16( 0xffff, pTempBuf, sizeof(NORHeaderDS) ); @@ -398,15 +399,15 @@ static BOOL WriteNorfirm(char* file_name) kamiFontPrintfConsoleEx(0, "Start CRC check\n"); kamiFontLoadScreenData(); + // 読み込みはARM7が直接メモリに書き出す + DC_InvalidateRange(pTempBuf, file_size); + // CRCチェックのためNvramからリード if (kamiNvramRead(0, pTempBuf, file_size ) == KAMI_RESULT_SEND_ERROR) { OS_Printf("kamiNvramRead ... ERROR!\n"); } - // 読み込みはARM7が直接メモリに書き出す - DC_InvalidateRange(pTempBuf, file_size); - // 書き込み後のCRCを計算 crc_r2 = SVC_GetCRC16( 0xffff, pTempBuf+512, file_size-512 );