GameCardNitroMode指定+Twlカードがささっていた場合はTwlモードまで遷移させるように修正

git-svn-id: file:///Users/lillianskinner/Downloads/platinum/twl/TwlIPL/branches/20110608_CardToSD@3016 b08762b0-b915-fc4b-9d8c-17b2551a87ff
This commit is contained in:
(no author) 2011-06-17 08:56:53 +00:00
parent 670d718e3e
commit 2943905f10
2 changed files with 33 additions and 1 deletions

View File

@ -1957,6 +1957,26 @@ static BOOL ChangeGameMode(void)
SetMCSCR(); SetMCSCR();
state = s_funcTable[s_isRomEmu].ChangeMode_S(&s_cbData); state = s_funcTable[s_isRomEmu].ChangeMode_S(&s_cbData);
if(s_cbData.pBootSegBuf->rh.s.platform_code & PLATFORM_CODE_FLAG_TWL)
{
s_cbData.modeType = HOTSW_MODE2;
McPowerOff();
McPowerOn();
state = ReadBootSegNormal(&s_cbData);
MakeBlowfishTableTWL(&s_cbData, 8, s_bondingOp);
GenVA_VB_VD();
state = ChangeModeNormal2(&s_cbData);
// ---------------------- Secure2 Mode ----------------------
state = s_funcTable[s_isRomEmu].SetPNG_S(&s_cbData);
SetMCSCR();
state = s_funcTable[s_isRomEmu].ChangeMode_S(&s_cbData);
}
// ---------------------- Game Mode ---------------------- // ---------------------- Game Mode ----------------------
state = ReadIDGame(&s_cbData); state = ReadIDGame(&s_cbData);

View File

@ -17,6 +17,7 @@
// Function Prototype ------------------------------------------------------- // Function Prototype -------------------------------------------------------
static BLOWFISH_CTX keytable2;
/*---------------------------------------------------------------------------* /*---------------------------------------------------------------------------*
Name: MakeBlowfishTableDSForNAND Name: MakeBlowfishTableDSForNAND
@ -66,10 +67,21 @@ void MakeBlowfishTableTWL(CardBootData *cbd, s32 keyLen, u16 bondingOp)
BLOWFISH_CTX *ctx = &cbd->keyTable2; BLOWFISH_CTX *ctx = &cbd->keyTable2;
void *tempCTX; void *tempCTX;
static BOOL isFirst = TRUE;
// 製品機の場合 // 製品機の場合
if(bondingOp == SCFG_OP_PRODUCT){ if(bondingOp == SCFG_OP_PRODUCT){
MI_CpuCopyFast((void *)((OSFromFirm7Buf *)HW_FIRM_FROM_FIRM_BUF)->twl_blowfish, (void *)ctx, sizeof(BLOWFISH_CTX)); if( isFirst )
{
MI_CpuCopyFast((void *)((OSFromFirm7Buf *)HW_FIRM_FROM_FIRM_BUF)->twl_blowfish, (void *)ctx, sizeof(BLOWFISH_CTX));
MI_CpuCopy8((void *)ctx, (void *)&keytable2, sizeof(BLOWFISH_CTX));
isFirst = FALSE;
}
else
{
MI_CpuCopyFast((void *)&keytable2, (void *)ctx, sizeof(BLOWFISH_CTX));
}
} }
// 開発機の場合 // 開発機の場合
else{ else{