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;
|
BOOL isNtrMode;
|
||||||
int i;
|
int i;
|
||||||
|
|
||||||
|
// HOTSW<53>I—¹<E28094>ˆ—<CB86>‘Ò‚¿
|
||||||
|
while( ! HOTSW_isFinalized() ) {
|
||||||
|
OS_Sleep( 1 );
|
||||||
|
}
|
||||||
|
|
||||||
// エントリアドレスの正当性をチェックし、無効な場合は無限ループに入る。
|
// エントリアドレスの正当性をチェックし、無効な場合は無限ループに入る。
|
||||||
// SYSMi_CheckEntryAddress();
|
// SYSMi_CheckEntryAddress();
|
||||||
|
|
||||||
|
|||||||
@ -1908,7 +1908,7 @@ static void FinalizeHotSw(HotSwApliType type)
|
|||||||
|
|
||||||
if(type == HOTSW_APLITYPE_CARD){
|
if(type == HOTSW_APLITYPE_CARD){
|
||||||
ClearUnnecessaryCardRegister();
|
ClearUnnecessaryCardRegister();
|
||||||
return;
|
goto final;
|
||||||
}
|
}
|
||||||
|
|
||||||
isCardExist = HOTSW_IsCardExist();
|
isCardExist = HOTSW_IsCardExist();
|
||||||
@ -1918,7 +1918,7 @@ static void FinalizeHotSw(HotSwApliType type)
|
|||||||
// カードがなかったら、レジスタクリアしてリターン
|
// カードがなかったら、レジスタクリアしてリターン
|
||||||
if(!isCardExist){
|
if(!isCardExist){
|
||||||
ClearAllCardRegister();
|
ClearAllCardRegister();
|
||||||
return;
|
goto final;
|
||||||
}
|
}
|
||||||
|
|
||||||
switch(type){
|
switch(type){
|
||||||
@ -1932,7 +1932,7 @@ static void FinalizeHotSw(HotSwApliType type)
|
|||||||
|
|
||||||
OS_PutString("Failed To Change Game Mode... Card Slot Power Off\n");
|
OS_PutString("Failed To Change Game Mode... Card Slot Power Off\n");
|
||||||
|
|
||||||
return;
|
goto final;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
@ -1944,7 +1944,8 @@ static void FinalizeHotSw(HotSwApliType type)
|
|||||||
OS_Sleep(1);
|
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();
|
McPowerOn();
|
||||||
|
|
||||||
s_cbData.modeType = HOTSW_MODE2;
|
s_cbData.modeType = HOTSW_MODE2;
|
||||||
@ -1967,6 +1968,10 @@ static void FinalizeHotSw(HotSwApliType type)
|
|||||||
|
|
||||||
// 必要なレジスタ以外クリア
|
// 必要なレジスタ以外クリア
|
||||||
ClearUnnecessaryCardRegister();
|
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
|
Name: HOTSW_isEnableHotSW
|
||||||
|
|
||||||
@ -124,7 +135,7 @@ void HOTSW_FinalizeHotSWAsync( HotSwApliType apliType )
|
|||||||
*---------------------------------------------------------------------------*/
|
*---------------------------------------------------------------------------*/
|
||||||
BOOL HOTSW_isEnableHotSW(void)
|
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)
|
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;
|
HotSwApliType hotsw_type;
|
||||||
|
|
||||||
|
DC_StoreRange( head, sizeof(ROM_Header) );
|
||||||
|
|
||||||
switch( pBootTitle->flags.bootType )
|
switch( pBootTitle->flags.bootType )
|
||||||
{
|
{
|
||||||
case LAUNCHER_BOOTTYPE_NAND:
|
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;
|
SYSMi_GetWork()->flags.common.isHeaderLoadCompleted = TRUE;
|
||||||
// WRAM経由ロードの場合はAES初期化
|
|
||||||
(void)SYSM_InitDecryptAESRegion_W( (ROM_Header_Short *)destaddr[region_header] );
|
|
||||||
// HOTSW終了処理有効化
|
// HOTSW終了処理有効化
|
||||||
SYSMi_FinalizeHotSWAsync( pBootTitle, head );
|
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_isCardLoadCompleted(void);
|
||||||
|
|
||||||
|
// 終了処理が完了したかを返す
|
||||||
|
BOOL HOTSW_isFinalized(void);
|
||||||
|
|
||||||
#ifdef USE_WRAM_LOAD
|
#ifdef USE_WRAM_LOAD
|
||||||
// 活栓挿抜処理の初期化
|
// 活栓挿抜処理の初期化
|
||||||
void HOTSW_Init();
|
void HOTSW_Init();
|
||||||
|
|||||||
@ -124,6 +124,7 @@ typedef struct SYSM_work {
|
|||||||
vu16 isValidCardBanner :1; // バナーデータ更新?
|
vu16 isValidCardBanner :1; // バナーデータ更新?
|
||||||
vu16 is1stCardChecked :1; // カードデータの1stチェック完了?
|
vu16 is1stCardChecked :1; // カードデータの1stチェック完了?
|
||||||
vu16 isCardGameMode :1; // カードがゲームモードに遷移したか?
|
vu16 isCardGameMode :1; // カードがゲームモードに遷移したか?
|
||||||
|
vu16 isFinalized :1; // HOTSW<53>I—¹<E28094>ˆ—<CB86>Š®—¹
|
||||||
vu16 :0;
|
vu16 :0;
|
||||||
vu8 isCardStateChanged; // カード状態更新フラグ
|
vu8 isCardStateChanged; // カード状態更新フラグ
|
||||||
}hotsw;
|
}hotsw;
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user