mirror of
https://github.com/rvtr/TwlIPL.git
synced 2025-10-31 06:01:12 -04:00
ショートカット起動時にカードROMヘッダを参照前にコピーするように修正。
git-svn-id: file:///Users/lillianskinner/Downloads/platinum/twl/TwlIPL/trunk@778 b08762b0-b915-fc4b-9d8c-17b2551a87ff
This commit is contained in:
parent
5b88d8c6bf
commit
6f81364cf1
@ -218,7 +218,14 @@ static TitleProperty *SYSMi_CheckShortcutBoot( void )
|
|||||||
s_bootTitle.flags.isLogoSkip = TRUE; // ロゴデモを飛ばす
|
s_bootTitle.flags.isLogoSkip = TRUE; // ロゴデモを飛ばす
|
||||||
s_bootTitle.flags.bootType = LAUNCHER_BOOTTYPE_ROM;
|
s_bootTitle.flags.bootType = LAUNCHER_BOOTTYPE_ROM;
|
||||||
s_bootTitle.flags.isValid = TRUE;
|
s_bootTitle.flags.isValid = TRUE;
|
||||||
// [TODO] 現状ではROMヘッダがまだコピーされていない
|
// ROMヘッダバッファのコピー
|
||||||
|
{
|
||||||
|
u16 id = (u16)OS_GetLockID();
|
||||||
|
(void)OS_LockByWord( id, &SYSMi_GetWork()->lockCardRsc, NULL ); // ARM7と排他制御する
|
||||||
|
(void)SYSMi_CopyCardRomHeader();
|
||||||
|
(void)OS_UnlockByWord( id, &SYSMi_GetWork()->lockCardRsc, NULL ); // ARM7と排他制御する
|
||||||
|
OS_ReleaseLockID( id );
|
||||||
|
}
|
||||||
s_bootTitle.titleID = *(u64 *)( &SYSM_GetCardRomHeader()->titleID_Lo );
|
s_bootTitle.titleID = *(u64 *)( &SYSM_GetCardRomHeader()->titleID_Lo );
|
||||||
SYSM_SetLogoDemoSkip( s_bootTitle.flags.isLogoSkip );
|
SYSM_SetLogoDemoSkip( s_bootTitle.flags.isLogoSkip );
|
||||||
return &s_bootTitle;
|
return &s_bootTitle;
|
||||||
|
|||||||
@ -154,18 +154,16 @@ BOOL SYSM_GetCardTitleList( TitleProperty *pTitleList_Card )
|
|||||||
(void)OS_LockByWord( id, &SYSMi_GetWork()->lockCardRsc, NULL ); // ARM7と排他制御する
|
(void)OS_LockByWord( id, &SYSMi_GetWork()->lockCardRsc, NULL ); // ARM7と排他制御する
|
||||||
|
|
||||||
// ROMヘッダのリード
|
// ROMヘッダのリード
|
||||||
DC_InvalidateRange( (void *)SYSM_CARD_ROM_HEADER_BAK, SYSM_CARD_ROM_HEADER_SIZE ); // キャッシュケア
|
(void)SYSMi_CopyCardRomHeader();
|
||||||
MI_CpuCopyFast( (void *)SYSM_CARD_ROM_HEADER_BAK, (void *)SYSM_CARD_ROM_HEADER_BUF, SYSM_CARD_ROM_HEADER_SIZE ); // ROMヘッダコピー
|
|
||||||
SYSMi_GetWork()->cardHeaderCrc16 = SYSMi_GetWork()->cardHeaderCrc16_bak; // ROMヘッダCRCコピー
|
|
||||||
|
|
||||||
// バナーデータのリード
|
// バナーデータのリード
|
||||||
SYSMi_ReadCardBannerFile( SYSM_GetCardRomHeader()->banner_offset, &s_bannerBuf[ CARD_BANNER_INDEX ] );
|
(void)SYSMi_CopyCardBanner();
|
||||||
pTitleList_Card->pBanner = &s_bannerBuf[ CARD_BANNER_INDEX ];
|
|
||||||
|
|
||||||
SYSMi_GetWork()->flags.hotsw.isCardStateChanged = FALSE; // カード情報更新フラグを落とす
|
SYSMi_GetWork()->flags.hotsw.isCardStateChanged = FALSE; // カード情報更新フラグを落とす
|
||||||
(void)OS_UnlockByWord( id, &SYSMi_GetWork()->lockCardRsc, NULL ); // ARM7と排他制御する
|
(void)OS_UnlockByWord( id, &SYSMi_GetWork()->lockCardRsc, NULL ); // ARM7と排他制御する
|
||||||
OS_ReleaseLockID( id );
|
OS_ReleaseLockID( id );
|
||||||
|
|
||||||
|
pTitleList_Card->pBanner = &s_bannerBuf[ CARD_BANNER_INDEX ];
|
||||||
pTitleList_Card->flags.isValid = TRUE;
|
pTitleList_Card->flags.isValid = TRUE;
|
||||||
pTitleList_Card->flags.isAppLoadCompleted = TRUE;
|
pTitleList_Card->flags.isAppLoadCompleted = TRUE;
|
||||||
pTitleList_Card->flags.isAppRelocate = TRUE;
|
pTitleList_Card->flags.isAppRelocate = TRUE;
|
||||||
@ -181,6 +179,37 @@ BOOL SYSM_GetCardTitleList( TitleProperty *pTitleList_Card )
|
|||||||
return retval;
|
return retval;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// カードROMヘッダのARM7バッファからARM9バッファへのコピー
|
||||||
|
BOOL SYSMi_CopyCardRomHeader( void )
|
||||||
|
{
|
||||||
|
BOOL retval = FALSE;
|
||||||
|
|
||||||
|
if( SYSM_IsExistCard() ) {
|
||||||
|
// ROMヘッダのリード
|
||||||
|
DC_InvalidateRange( (void *)SYSM_CARD_ROM_HEADER_BAK, SYSM_CARD_ROM_HEADER_SIZE ); // キャッシュケア
|
||||||
|
MI_CpuCopyFast( (void *)SYSM_CARD_ROM_HEADER_BAK, (void *)SYSM_CARD_ROM_HEADER_BUF, SYSM_CARD_ROM_HEADER_SIZE ); // ROMヘッダコピー
|
||||||
|
SYSMi_GetWork()->cardHeaderCrc16 = SYSMi_GetWork()->cardHeaderCrc16_bak; // ROMヘッダCRCコピー
|
||||||
|
|
||||||
|
retval = TRUE;
|
||||||
|
}
|
||||||
|
|
||||||
|
return retval;
|
||||||
|
}
|
||||||
|
|
||||||
|
// カードバナーのARM7バッファからARM9バッファへのコピー
|
||||||
|
BOOL SYSMi_CopyCardBanner( void )
|
||||||
|
{
|
||||||
|
BOOL retval = FALSE;
|
||||||
|
|
||||||
|
if( SYSM_IsExistCard() ) {
|
||||||
|
// バナーデータのリード
|
||||||
|
SYSMi_ReadCardBannerFile( SYSM_GetCardRomHeader()->banner_offset, &s_bannerBuf[ CARD_BANNER_INDEX ] );
|
||||||
|
|
||||||
|
retval = TRUE;
|
||||||
|
}
|
||||||
|
|
||||||
|
return retval;
|
||||||
|
}
|
||||||
|
|
||||||
// NANDタイトルリストの取得
|
// NANDタイトルリストの取得
|
||||||
int SYSM_GetNandTitleList( TitleProperty *pTitleList_Nand, int listNum )
|
int SYSM_GetNandTitleList( TitleProperty *pTitleList_Nand, int listNum )
|
||||||
|
|||||||
@ -82,6 +82,8 @@ void SYSMi_EnableHotSW( BOOL enable );
|
|||||||
//=======================================================
|
//=======================================================
|
||||||
BOOL SYSMi_IsDebuggerBannerViewMode( void );
|
BOOL SYSMi_IsDebuggerBannerViewMode( void );
|
||||||
BOOL SYSMi_CheckEntryAddress( void );
|
BOOL SYSMi_CheckEntryAddress( void );
|
||||||
|
BOOL SYSMi_CopyCardRomHeader( void );
|
||||||
|
BOOL SYSMi_CopyCardBanner( void );
|
||||||
|
|
||||||
|
|
||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user