From 00819663a3d61ca88b9ca59617d4881aa56f2a7a Mon Sep 17 00:00:00 2001 From: yoshida_teruhisa Date: Fri, 21 Dec 2007 06:37:22 +0000 Subject: [PATCH] =?UTF-8?q?NAND=E3=82=A2=E3=83=97=E3=83=AA=E3=81=AE?= =?UTF-8?q?=E3=82=A2=E3=83=97=E3=83=AA=E7=A8=AE=E5=88=A5=E3=81=8CNTR?= =?UTF-8?q?=E3=81=A7=E3=81=82=E3=81=A3=E3=81=9F=E5=A0=B4=E5=90=88=E3=81=AE?= =?UTF-8?q?=E3=83=AD=E3=83=BC=E3=83=89=E3=81=AB=E5=AF=BE=E5=BF=9C?= 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@394 b08762b0-b915-fc4b-9d8c-17b2551a87ff --- .../sysmenu/ARM9/src/sysmenu_lib.c | 25 ++++++++++++------- 1 file changed, 16 insertions(+), 9 deletions(-) diff --git a/build/libraries_sysmenu/sysmenu/ARM9/src/sysmenu_lib.c b/build/libraries_sysmenu/sysmenu/ARM9/src/sysmenu_lib.c index ce44c53d..ca414fd6 100644 --- a/build/libraries_sysmenu/sysmenu/ARM9/src/sysmenu_lib.c +++ b/build/libraries_sysmenu/sysmenu/ARM9/src/sysmenu_lib.c @@ -517,7 +517,6 @@ BOOL SYSM_IsValidTSD( void ) // // ============================================================================ -// TWLアプリのみ対応、NTRはまだ static void SYSMi_LoadTitleThreadFunc( TitleProperty *pBootTitle ) { enum @@ -539,6 +538,7 @@ static void SYSMi_LoadTitleThreadFunc( TitleProperty *pBootTitle ) char path[256]; FSFile file[1]; BOOL bSuccess; + BOOL isTwlApp = TRUE; NAM_GetTitleBootContentPath(path, pBootTitle->titleID); bSuccess = FS_OpenFileEx(file, path, FS_FILEMODE_R); @@ -596,6 +596,7 @@ OS_TPrintf("RebootSystem failed: logo CRC error\n"); if( header[0x12] && 0x03 == 0 ) { //NTR専用ROM + isTwlApp = FALSE; } // 各領域を読み込む @@ -611,19 +612,23 @@ OS_TPrintf("RebootSystem failed: logo CRC error\n"); length [region_arm7_ntr] = *(const u32*)&header[0x03C]; destaddr[region_arm7_ntr] = *(const u32*)&header[0x038]; - source [region_arm9_twl] = *(const u32*)&header[0x1C0]; - length [region_arm9_twl] = *(const u32*)&header[0x1CC]; - destaddr[region_arm9_twl] = *(const u32*)&header[0x1C8]; - - source [region_arm7_twl] = *(const u32*)&header[0x1D0]; - length [region_arm7_twl] = *(const u32*)&header[0x1DC]; - destaddr[region_arm7_twl] = *(const u32*)&header[0x1D8]; + if( isTwlApp ) + { + source [region_arm9_twl] = *(const u32*)&header[0x1C0]; + length [region_arm9_twl] = *(const u32*)&header[0x1CC]; + destaddr[region_arm9_twl] = *(const u32*)&header[0x1C8]; + + source [region_arm7_twl] = *(const u32*)&header[0x1D0]; + length [region_arm7_twl] = *(const u32*)&header[0x1DC]; + destaddr[region_arm7_twl] = *(const u32*)&header[0x1D8]; + } // 領域読み込み先のチェック及び再配置情報データの作成 for( i=0; i= ARM9_LTD_STATIC ) continue;// nitroでは読み込まない領域 if ( !SYSM_CheckLoadRegionAndSetRelocateInfo( (RomSegmentName)i, &(destaddr[i+region_arm9_ntr]), length[i+region_arm9_ntr], - &(SYSMi_GetWork()->romRelocateInfo[i]), TRUE ) ) + &(SYSMi_GetWork()->romRelocateInfo[i]), isTwlApp ) ) { OS_TPrintf("RebootSystem failed: ROM Load Region error\n"); FS_CloseFile(file); @@ -634,6 +639,8 @@ OS_TPrintf("RebootSystem failed: logo CRC error\n"); for (i = region_header; i < region_max; ++i) { u32 len = length[i]; + + if ( !isTwlApp && i >= region_arm9_twl ) continue;// nitroでは読み込まない領域 bSuccess = FS_SeekFile(file, (s32)source[i], FS_SEEK_SET);