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.bootType = LAUNCHER_BOOTTYPE_ROM;
|
||||
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 );
|
||||
SYSM_SetLogoDemoSkip( s_bootTitle.flags.isLogoSkip );
|
||||
return &s_bootTitle;
|
||||
|
||||
@ -154,18 +154,16 @@ BOOL SYSM_GetCardTitleList( TitleProperty *pTitleList_Card )
|
||||
(void)OS_LockByWord( id, &SYSMi_GetWork()->lockCardRsc, NULL ); // ARM7と排他制御する
|
||||
|
||||
// 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コピー
|
||||
(void)SYSMi_CopyCardRomHeader();
|
||||
|
||||
// バナーデータのリード
|
||||
SYSMi_ReadCardBannerFile( SYSM_GetCardRomHeader()->banner_offset, &s_bannerBuf[ CARD_BANNER_INDEX ] );
|
||||
pTitleList_Card->pBanner = &s_bannerBuf[ CARD_BANNER_INDEX ];
|
||||
(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 = TRUE;
|
||||
pTitleList_Card->flags.isAppRelocate = TRUE;
|
||||
@ -181,6 +179,37 @@ BOOL SYSM_GetCardTitleList( TitleProperty *pTitleList_Card )
|
||||
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タイトルリストの取得
|
||||
int SYSM_GetNandTitleList( TitleProperty *pTitleList_Nand, int listNum )
|
||||
|
||||
@ -82,6 +82,8 @@ void SYSMi_EnableHotSW( BOOL enable );
|
||||
//=======================================================
|
||||
BOOL SYSMi_IsDebuggerBannerViewMode( void );
|
||||
BOOL SYSMi_CheckEntryAddress( void );
|
||||
BOOL SYSMi_CopyCardRomHeader( void );
|
||||
BOOL SYSMi_CopyCardBanner( void );
|
||||
|
||||
|
||||
#ifdef __cplusplus
|
||||
|
||||
Loading…
Reference in New Issue
Block a user