mirror of
https://github.com/rvtr/TwlIPL.git
synced 2025-10-31 06:01:12 -04:00
(更新:Akabane Jumpei)
・エラー処理の修正。カード読み最中に何らかのエラーが発生した場合は、フラグ操作してバナーを消し、スロットの電源をOFFする。 git-svn-id: file:///Users/lillianskinner/Downloads/platinum/twl/TwlIPL/trunk@1410 b08762b0-b915-fc4b-9d8c-17b2551a87ff
This commit is contained in:
parent
77d735af8c
commit
c13bf5fd8b
@ -287,7 +287,6 @@ typedef struct CardBootData{
|
|||||||
|
|
||||||
BOOL twlFlg;
|
BOOL twlFlg;
|
||||||
BOOL debuggerFlg;
|
BOOL debuggerFlg;
|
||||||
BOOL illegalCardFlg;
|
|
||||||
BOOL isLoadTypeTwl;
|
BOOL isLoadTypeTwl;
|
||||||
|
|
||||||
u32 romStatus;
|
u32 romStatus;
|
||||||
|
|||||||
@ -636,7 +636,6 @@ static BOOL isTwlModeLoad(void)
|
|||||||
// PlatformCodeがTwl or Hybridの場合
|
// PlatformCodeがTwl or Hybridの場合
|
||||||
if(s_cbData.pBootSegBuf->rh.s.platform_code & 0x02){
|
if(s_cbData.pBootSegBuf->rh.s.platform_code & 0x02){
|
||||||
OS_PutString("NTR Card : TWL Application Error Illegal Card\n");
|
OS_PutString("NTR Card : TWL Application Error Illegal Card\n");
|
||||||
s_cbData.illegalCardFlg = TRUE;
|
|
||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
else{
|
else{
|
||||||
@ -1706,7 +1705,6 @@ static void HotSwThread(void *arg)
|
|||||||
|
|
||||||
HotSwState retval;
|
HotSwState retval;
|
||||||
HotSwMessageForArm7 *msg;
|
HotSwMessageForArm7 *msg;
|
||||||
BOOL breakFlg;
|
|
||||||
|
|
||||||
while(1){
|
while(1){
|
||||||
OS_ReceiveMessage(&HotSwThreadData.hotswQueue, (OSMessage *)&msg, OS_MESSAGE_BLOCK);
|
OS_ReceiveMessage(&HotSwThreadData.hotswQueue, (OSMessage *)&msg, OS_MESSAGE_BLOCK);
|
||||||
@ -1752,22 +1750,21 @@ static void HotSwThread(void *arg)
|
|||||||
if(HOTSW_IsCardExist()){
|
if(HOTSW_IsCardExist()){
|
||||||
if(!s_isPulledOut){
|
if(!s_isPulledOut){
|
||||||
if(GetMcSlotMode() == SLOT_STATUS_MODE_10){
|
if(GetMcSlotMode() == SLOT_STATUS_MODE_10){
|
||||||
if(!s_cbData.illegalCardFlg){
|
LockHotSwRsc(&SYSMi_GetWork()->lockCardRsc);
|
||||||
LockHotSwRsc(&SYSMi_GetWork()->lockCardRsc);
|
|
||||||
|
|
||||||
SYSMi_GetWork()->flags.hotsw.isExistCard = TRUE;
|
SYSMi_GetWork()->flags.hotsw.isExistCard = TRUE;
|
||||||
SYSMi_GetWork()->flags.hotsw.isCardStateChanged = TRUE;
|
SYSMi_GetWork()->flags.hotsw.isCardStateChanged = TRUE;
|
||||||
SYSMi_GetWork()->flags.hotsw.isCardLoadCompleted = TRUE;
|
SYSMi_GetWork()->flags.hotsw.isCardLoadCompleted = TRUE;
|
||||||
SYSMi_GetWork()->nCardID = s_cbData.id_gam;
|
SYSMi_GetWork()->nCardID = s_cbData.id_gam;
|
||||||
#ifdef USE_WRAM_LOAD
|
#ifdef USE_WRAM_LOAD
|
||||||
SYSMi_GetWork()->flags.hotsw.isCardGameMode = TRUE;
|
SYSMi_GetWork()->flags.hotsw.isCardGameMode = TRUE;
|
||||||
#endif
|
#endif
|
||||||
UnlockHotSwRsc(&SYSMi_GetWork()->lockCardRsc);
|
UnlockHotSwRsc(&SYSMi_GetWork()->lockCardRsc);
|
||||||
#ifdef USE_WRAM_LOAD
|
#ifdef USE_WRAM_LOAD
|
||||||
SendPxiMessage(HOTSW_CHANGE_GAMEMODE);
|
SendPxiMessage(HOTSW_CHANGE_GAMEMODE);
|
||||||
#endif
|
#endif
|
||||||
OS_PutString("ok!\n");
|
OS_PutString("ok!\n");
|
||||||
}
|
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -1776,45 +1773,15 @@ static void HotSwThread(void *arg)
|
|||||||
|
|
||||||
DebugPrintErrorMessage(retval);
|
DebugPrintErrorMessage(retval);
|
||||||
|
|
||||||
breakFlg = FALSE;
|
|
||||||
|
|
||||||
// [TODO] エラー処理見直し
|
|
||||||
switch(retval){
|
|
||||||
// 成功してたらなにもせずにぬける
|
|
||||||
case HOTSW_SUCCESS:
|
|
||||||
break;
|
|
||||||
|
|
||||||
// カードデータリード中に抜け
|
|
||||||
case HOTSW_PULLED_OUT_ERROR:
|
|
||||||
ClearCardFlgs();
|
|
||||||
s_isPulledOut = TRUE;
|
|
||||||
breakFlg = TRUE;
|
|
||||||
break;
|
|
||||||
|
|
||||||
// どのモードでも起こるエラー
|
|
||||||
case HOTSW_ID_CHECK_ERROR:
|
|
||||||
case HOTSW_CRC_CHECK_ERROR:
|
|
||||||
McPowerOff();
|
|
||||||
ClearCardFlgs();
|
|
||||||
s_isPulledOut = TRUE;
|
|
||||||
breakFlg = TRUE;
|
|
||||||
break;
|
|
||||||
|
|
||||||
// Gameモードで起こるエラー
|
|
||||||
case HOTSW_HASH_CHECK_ERROR:
|
|
||||||
case HOTSW_BUFFER_OVERRUN_ERROR:
|
|
||||||
case HOTSW_DATA_DECRYPT_ERROR:
|
|
||||||
ClearCardFlgs();
|
|
||||||
s_cbData.illegalCardFlg = TRUE;
|
|
||||||
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
if(breakFlg){
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
s_isPulledOut = FALSE;
|
s_isPulledOut = FALSE;
|
||||||
|
|
||||||
|
// <20>G<EFBFBD>‰<EFBFBD>[Ź<>—ť
|
||||||
|
if(retval != HOTSW_SUCCESS){
|
||||||
|
ClearCardFlgs();
|
||||||
|
McPowerOff();
|
||||||
|
|
||||||
|
break;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// カードが抜けてたら
|
// カードが抜けてたら
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user