mirror of
https://github.com/rvtr/TwlIPL.git
synced 2025-10-31 06:01:12 -04:00
NANDアプリブート時にカードアプリのROMヘッダを参照している箇所を修正。
HOTSW終了処理の完了をARM9で確認。 git-svn-id: file:///Users/lillianskinner/Downloads/platinum/twl/TwlIPL/trunk@1383 b08762b0-b915-fc4b-9d8c-17b2551a87ff
This commit is contained in:
parent
b8ca604cc3
commit
d42503d188
@ -61,6 +61,11 @@ void BOOT_Ready( void )
|
||||
BOOL isNtrMode;
|
||||
int i;
|
||||
|
||||
// HOTSW<53>I—¹<E28094>ˆ—<CB86>‘Ò‚¿
|
||||
while( ! HOTSW_isFinalized() ) {
|
||||
OS_Sleep( 1 );
|
||||
}
|
||||
|
||||
// エントリアドレスの正当性をチェックし、無効な場合は無限ループに入る。
|
||||
// SYSMi_CheckEntryAddress();
|
||||
|
||||
|
||||
@ -1908,7 +1908,7 @@ static void FinalizeHotSw(HotSwApliType type)
|
||||
|
||||
if(type == HOTSW_APLITYPE_CARD){
|
||||
ClearUnnecessaryCardRegister();
|
||||
return;
|
||||
goto final;
|
||||
}
|
||||
|
||||
isCardExist = HOTSW_IsCardExist();
|
||||
@ -1918,7 +1918,7 @@ static void FinalizeHotSw(HotSwApliType type)
|
||||
// カードがなかったら、レジスタクリアしてリターン
|
||||
if(!isCardExist){
|
||||
ClearAllCardRegister();
|
||||
return;
|
||||
goto final;
|
||||
}
|
||||
|
||||
switch(type){
|
||||
@ -1932,7 +1932,7 @@ static void FinalizeHotSw(HotSwApliType type)
|
||||
|
||||
OS_PutString("Failed To Change Game Mode... Card Slot Power Off\n");
|
||||
|
||||
return;
|
||||
goto final;
|
||||
}
|
||||
break;
|
||||
|
||||
@ -1944,7 +1944,8 @@ static void FinalizeHotSw(HotSwApliType type)
|
||||
OS_Sleep(1);
|
||||
}
|
||||
|
||||
if(s_cbData.pBootSegBuf->rh.s.game_card_on){
|
||||
// NANDアプリヘッダはコピー済み
|
||||
if(((ROM_Header*)SYSM_CARD_ROM_HEADER_BUF)->s.game_card_on){
|
||||
McPowerOn();
|
||||
|
||||
s_cbData.modeType = HOTSW_MODE2;
|
||||
@ -1967,6 +1968,10 @@ static void FinalizeHotSw(HotSwApliType type)
|
||||
|
||||
// 必要なレジスタ以外クリア
|
||||
ClearUnnecessaryCardRegister();
|
||||
|
||||
final:
|
||||
// 終了完了通知
|
||||
SYSMi_GetWork()->flags.hotsw.isFinalized = TRUE;
|
||||
}
|
||||
|
||||
|
||||
|
||||
@ -117,6 +117,17 @@ void HOTSW_FinalizeHotSWAsync( HotSwApliType apliType )
|
||||
}
|
||||
|
||||
|
||||
/*---------------------------------------------------------------------------*
|
||||
Name: HOTSW_isFinalized
|
||||
|
||||
Description: 終了処理が完了したかを返す
|
||||
*---------------------------------------------------------------------------*/
|
||||
BOOL HOTSW_isFinalized(void)
|
||||
{
|
||||
return SYSMi_GetWork()->flags.hotsw.isFinalized;
|
||||
}
|
||||
|
||||
|
||||
/*---------------------------------------------------------------------------*
|
||||
Name: HOTSW_isEnableHotSW
|
||||
|
||||
@ -124,7 +135,7 @@ void HOTSW_FinalizeHotSWAsync( HotSwApliType apliType )
|
||||
*---------------------------------------------------------------------------*/
|
||||
BOOL HOTSW_isEnableHotSW(void)
|
||||
{
|
||||
return SYSMi_GetWork()->flags.hotsw.isEnableHotSW ? TRUE : FALSE;
|
||||
return SYSMi_GetWork()->flags.hotsw.isEnableHotSW;
|
||||
}
|
||||
|
||||
|
||||
@ -135,7 +146,7 @@ BOOL HOTSW_isEnableHotSW(void)
|
||||
*---------------------------------------------------------------------------*/
|
||||
BOOL HOTSW_isCardLoadCompleted(void)
|
||||
{
|
||||
return SYSMi_GetWork()->flags.hotsw.isCardLoadCompleted ? TRUE : FALSE;
|
||||
return SYSMi_GetWork()->flags.hotsw.isCardLoadCompleted;
|
||||
}
|
||||
|
||||
|
||||
|
||||
@ -401,6 +401,8 @@ static void SYSMi_FinalizeHotSWAsync( TitleProperty *pBootTitle, ROM_Header *hea
|
||||
{
|
||||
HotSwApliType hotsw_type;
|
||||
|
||||
DC_StoreRange( head, sizeof(ROM_Header) );
|
||||
|
||||
switch( pBootTitle->flags.bootType )
|
||||
{
|
||||
case LAUNCHER_BOOTTYPE_NAND:
|
||||
@ -692,10 +694,10 @@ OS_TPrintf("RebootSystem failed: cant read file(%d, %d)\n", source[i], len);
|
||||
{
|
||||
// ヘッダ読み込み完了フラグを立てる
|
||||
SYSMi_GetWork()->flags.common.isHeaderLoadCompleted = TRUE;
|
||||
// WRAM経由ロードの場合はAES初期化
|
||||
(void)SYSM_InitDecryptAESRegion_W( (ROM_Header_Short *)destaddr[region_header] );
|
||||
// HOTSW終了処理有効化
|
||||
SYSMi_FinalizeHotSWAsync( pBootTitle, head );
|
||||
// WRAM経由ロードの場合はAES初期化
|
||||
(void)SYSM_InitDecryptAESRegion_W( (ROM_Header_Short *)destaddr[region_header] );
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@ -107,6 +107,9 @@ BOOL HOTSW_isEnableHotSW(void);
|
||||
// カードアプリのロードが完了しているかを返す
|
||||
BOOL HOTSW_isCardLoadCompleted(void);
|
||||
|
||||
// 終了処理が完了したかを返す
|
||||
BOOL HOTSW_isFinalized(void);
|
||||
|
||||
#ifdef USE_WRAM_LOAD
|
||||
// 活栓挿抜処理の初期化
|
||||
void HOTSW_Init();
|
||||
|
||||
@ -124,6 +124,7 @@ typedef struct SYSM_work {
|
||||
vu16 isValidCardBanner :1; // バナーデータ更新?
|
||||
vu16 is1stCardChecked :1; // カードデータの1stチェック完了?
|
||||
vu16 isCardGameMode :1; // カードがゲームモードに遷移したか?
|
||||
vu16 isFinalized :1; // HOTSW<53>I—¹<E28094>ˆ—<CB86>Š®—¹
|
||||
vu16 :0;
|
||||
vu8 isCardStateChanged; // カード状態更新フラグ
|
||||
}hotsw;
|
||||
|
||||
Loading…
Reference in New Issue
Block a user