From feb7a436779a117adfd5160f8a200fa64daeaebd Mon Sep 17 00:00:00 2001 From: yosiokat Date: Thu, 3 Jul 2008 11:25:19 +0000 Subject: [PATCH] =?UTF-8?q?SYSM=5FGetCardTitleList=E3=81=AE=E8=BF=94?= =?UTF-8?q?=E3=82=8A=E5=80=A4=E3=82=92=E5=A4=89=E6=9B=B4=E6=99=82=E3=81=AE?= =?UTF-8?q?=E3=81=BFTRUE=E3=82=92=E8=BF=94=E3=81=99=E5=BD=A2=E3=81=AB?= =?UTF-8?q?=E5=A4=89=E6=9B=B4=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@1771 b08762b0-b915-fc4b-9d8c-17b2551a87ff --- .../sysmenu/ARM9/src/title.c | 20 +++++++++++-------- build/systemMenu_RED/Launcher/ARM9/src/main.c | 4 +++- 2 files changed, 15 insertions(+), 9 deletions(-) diff --git a/build/libraries_sysmenu/sysmenu/ARM9/src/title.c b/build/libraries_sysmenu/sysmenu/ARM9/src/title.c index f83ea295..2c1e1b08 100644 --- a/build/libraries_sysmenu/sysmenu/ARM9/src/title.c +++ b/build/libraries_sysmenu/sysmenu/ARM9/src/title.c @@ -290,24 +290,20 @@ BOOL SYSM_GetCardTitleList( TitleProperty *pTitleList_Card ) // の場合は、正常に認識できないタイトルであることを示す。 if( SYSMi_GetWork()->flags.hotsw.isCardStateChanged ) { + u16 id = (u16)OS_GetLockID(); MI_CpuClear32( pTitleList_Card, sizeof(TitleProperty) ); + (void)OS_LockByWord( id, &SYSMi_GetWork()->lockCardRsc, NULL ); // ARM7と排他制御する + // ROMヘッダバッファのコピー if( SYSM_IsExistCard() ) { - u16 id = (u16)OS_GetLockID(); - (void)OS_LockByWord( id, &SYSMi_GetWork()->lockCardRsc, NULL ); // ARM7と排他制御する // ROMヘッダのリード (void)SYSMi_CopyCardRomHeader(); - // バナーデータのリード (void)SYSMi_CopyCardBanner(); - SYSMi_GetWork()->flags.hotsw.isCardStateChanged = FALSE; // カード情報更新フラグを落とす - (void)OS_UnlockByWord( id, &SYSMi_GetWork()->lockCardRsc, NULL ); // ARM7と排他制御する - OS_ReleaseLockID( id ); - pTitleList_Card->pBanner = &s_bannerBuf[ CARD_BANNER_INDEX ]; pTitleList_Card->flags.isValid = TRUE; pTitleList_Card->flags.isAppLoadCompleted = FALSE; @@ -317,8 +313,17 @@ BOOL SYSM_GetCardTitleList( TitleProperty *pTitleList_Card ) MI_CpuCopy8( SYSM_GetCardRomHeader()->parental_control_rating_info, pTitleList_Card->sub_info.parental_control_rating_info, 0x10); pTitleList_Card->sub_info.card_region_bitmap = SYSM_GetCardRomHeader()->card_region_bitmap; pTitleList_Card->sub_info.agree_EULA_version = SYSM_GetCardRomHeader()->agree_EULA_version; + }else { + // ROMヘッダのクリア + MI_CpuClearFast( (void *)SYSM_APP_ROM_HEADER_BUF, SYSM_APP_ROM_HEADER_SIZE ); + // バナーデータのクリア + MI_CpuClearFast( &s_bannerBuf[ CARD_BANNER_INDEX ], sizeof(TWLBannerFile) ); } + SYSMi_GetWork()->flags.hotsw.isCardStateChanged = FALSE; // カード情報更新フラグを落とす + (void)OS_UnlockByWord( id, &SYSMi_GetWork()->lockCardRsc, NULL ); // ARM7と排他制御する + OS_ReleaseLockID( id ); + // タイトル情報フラグのセット pTitleList_Card->flags.bootType = LAUNCHER_BOOTTYPE_ROM; pTitleList_Card->titleID = *(u64 *)( &SYSM_GetCardRomHeader()->titleID_Lo ); @@ -1800,7 +1805,6 @@ void SYSM_TryToBootTitle( TitleProperty *pBootTitle ) { u8 *pBuffer = SYSM_Alloc( LCFG_WRITE_TEMP ); if( pBuffer != NULL ) { - LCFG_TSD_SetLastTimeBootSoftTitleID ( pBootTitle->titleID ); LCFG_TSD_SetLastTimeBootSoftPlatform( (u8)SYSM_GetAppRomHeader()->platform_code ); (void)LCFG_WriteTWLSettings( (u8 (*)[ LCFG_WRITE_TEMP ] )pBuffer ); SYSM_Free( pBuffer ); diff --git a/build/systemMenu_RED/Launcher/ARM9/src/main.c b/build/systemMenu_RED/Launcher/ARM9/src/main.c index 81451c5f..d7b80014 100644 --- a/build/systemMenu_RED/Launcher/ARM9/src/main.c +++ b/build/systemMenu_RED/Launcher/ARM9/src/main.c @@ -568,7 +568,9 @@ MAIN_LOOP_START: } // カードアプリリストの取得(スレッドで随時カード挿抜を通知されるものをメインループで取得) - (void)SYSM_GetCardTitleList( s_titleList ); + if( SYSM_GetCardTitleList( s_titleList ) ) { + OS_TPrintf( "Change CARD status.\n" ); + } // 無線ファームロードのポーリング if( PollingInstallWlanFirmware() &&