mirror of
https://github.com/rvtr/TwlIPL.git
synced 2025-10-31 06:01:12 -04:00
ARM9からのメッセージでARM7でカードデータを読み出すときに、GameモードのIDチェックを行うコードを追加
git-svn-id: file:///Users/lillianskinner/Downloads/platinum/twl/TwlIPL/branches/20080910_debug_dht_phase1@2473 b08762b0-b915-fc4b-9d8c-17b2551a87ff
This commit is contained in:
parent
0e81e6d409
commit
e0827cccc8
@ -237,6 +237,7 @@ typedef enum HotSwState{
|
|||||||
HOTSW_BUFFER_OVERRUN_ERROR,
|
HOTSW_BUFFER_OVERRUN_ERROR,
|
||||||
HOTSW_MODE_ERROR,
|
HOTSW_MODE_ERROR,
|
||||||
HOTSW_ILLEGAL_CARD_ERROR,
|
HOTSW_ILLEGAL_CARD_ERROR,
|
||||||
|
HOTSW_GAMEMODE_ID_CHECK_ERROR,
|
||||||
HOTSW_UNEXPECTED_ERROR
|
HOTSW_UNEXPECTED_ERROR
|
||||||
} HotSwState;
|
} HotSwState;
|
||||||
|
|
||||||
|
|||||||
@ -144,6 +144,8 @@ static u16 s_bondingOp;
|
|||||||
|
|
||||||
static u32 s_BootSegBufSize, s_SecureSegBufSize, s_Secure2SegBufSize;
|
static u32 s_BootSegBufSize, s_SecureSegBufSize, s_Secure2SegBufSize;
|
||||||
|
|
||||||
|
static u32 s_gameID;
|
||||||
|
|
||||||
static BootSegmentData *s_pBootSegBuffer;
|
static BootSegmentData *s_pBootSegBuffer;
|
||||||
static u32 *s_pSecureSegBuffer;
|
static u32 *s_pSecureSegBuffer;
|
||||||
static u32 *s_pSecure2SegBuffer;
|
static u32 *s_pSecure2SegBuffer;
|
||||||
@ -537,6 +539,9 @@ static HotSwState LoadCardData(void)
|
|||||||
|
|
||||||
goto finalize;
|
goto finalize;
|
||||||
}
|
}
|
||||||
|
else{
|
||||||
|
s_gameID = s_cbData.id_gam;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// バナーファイルの読み込み
|
// バナーファイルの読み込み
|
||||||
@ -916,6 +921,11 @@ static void ReadCardData(u32 src, u32 dest, u32 size)
|
|||||||
// カードのロック
|
// カードのロック
|
||||||
CARD_LockRom(s_CardLockID);
|
CARD_LockRom(s_CardLockID);
|
||||||
|
|
||||||
|
ReadIDGame(&s_cbData);
|
||||||
|
if(s_cbData.id_gam != s_gameID){
|
||||||
|
state = HOTSW_GAMEMODE_ID_CHECK_ERROR;
|
||||||
|
}
|
||||||
|
|
||||||
while(size > 0 && state == HOTSW_SUCCESS){
|
while(size > 0 && state == HOTSW_SUCCESS){
|
||||||
// --- Boot Segment
|
// --- Boot Segment
|
||||||
if(src >= HOTSW_BOOTSEGMENT_AREA_OFS && src < HOTSW_KEYTABLE_AREA_OFS){
|
if(src >= HOTSW_BOOTSEGMENT_AREA_OFS && src < HOTSW_KEYTABLE_AREA_OFS){
|
||||||
@ -974,6 +984,13 @@ static void ReadCardData(u32 src, u32 dest, u32 size)
|
|||||||
dest += sendSize;
|
dest += sendSize;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
ReadIDGame(&s_cbData);
|
||||||
|
if(s_cbData.id_gam != s_gameID){
|
||||||
|
if(state == HOTSW_SUCCESS){
|
||||||
|
state = HOTSW_GAMEMODE_ID_CHECK_ERROR;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// カードのアンロック
|
// カードのアンロック
|
||||||
CARD_UnlockRom(s_CardLockID);
|
CARD_UnlockRom(s_CardLockID);
|
||||||
|
|
||||||
@ -1002,6 +1019,10 @@ static void ReadCardData(u32 src, u32 dest, u32 size)
|
|||||||
retval = CARD_READ_MODE_ERROR;
|
retval = CARD_READ_MODE_ERROR;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
case HOTSW_GAMEMODE_ID_CHECK_ERROR:
|
||||||
|
retval = CARD_READ_ID_CHECK_ERROR;
|
||||||
|
break;
|
||||||
|
|
||||||
default:
|
default:
|
||||||
retval = CARD_READ_UNEXPECTED_ERROR;
|
retval = CARD_READ_UNEXPECTED_ERROR;
|
||||||
break;
|
break;
|
||||||
|
|||||||
@ -43,6 +43,7 @@ typedef enum CardDataReadState {
|
|||||||
CARD_READ_BUFFER_OVERRUN_ERROR,
|
CARD_READ_BUFFER_OVERRUN_ERROR,
|
||||||
CARD_READ_MODE_ERROR,
|
CARD_READ_MODE_ERROR,
|
||||||
CARD_READ_BUSY,
|
CARD_READ_BUSY,
|
||||||
|
CARD_READ_ID_CHECK_ERROR,
|
||||||
CARD_READ_UNEXPECTED_ERROR
|
CARD_READ_UNEXPECTED_ERROR
|
||||||
}
|
}
|
||||||
CardDataReadState;
|
CardDataReadState;
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user