mirror of
https://github.com/rvtr/TwlIPL.git
synced 2025-10-31 06:01:12 -04:00
ROMエミュレーション情報を初回ロード時しか読まないように変更。
git-svn-id: file:///Users/lillianskinner/Downloads/platinum/twl/TwlIPL/trunk@1018 b08762b0-b915-fc4b-9d8c-17b2551a87ff
This commit is contained in:
parent
9220e19858
commit
e7279e61d2
@ -38,7 +38,7 @@ HotSwState ChangeModeNormal2(CardBootData *cbd);
|
|||||||
HotSwState LoadTable(void);
|
HotSwState LoadTable(void);
|
||||||
|
|
||||||
// デバッガのROMエミュレーション情報読み込み
|
// デバッガのROMエミュレーション情報読み込み
|
||||||
HotSwState ReadRomEmulationData(CardBootData *cbd);
|
HotSwState ReadRomEmulationInfo(CardBootData *cbd);
|
||||||
|
|
||||||
|
|
||||||
// ■ セキュアモードのコマンド ■
|
// ■ セキュアモードのコマンド ■
|
||||||
|
|||||||
@ -318,11 +318,11 @@ HotSwState LoadTable(void)
|
|||||||
}
|
}
|
||||||
|
|
||||||
/*---------------------------------------------------------------------------*
|
/*---------------------------------------------------------------------------*
|
||||||
Name: ReadRomEmulationData
|
Name: ReadRomEmulationInfo
|
||||||
|
|
||||||
Description: Romエミュレーションデータの読み込み
|
Description: Romエミュレーション情報の読み込み
|
||||||
*---------------------------------------------------------------------------*/
|
*---------------------------------------------------------------------------*/
|
||||||
HotSwState ReadRomEmulationData(CardBootData *cbd)
|
HotSwState ReadRomEmulationInfo(CardBootData *cbd)
|
||||||
{
|
{
|
||||||
u32 count=0;
|
u32 count=0;
|
||||||
u32 temp;
|
u32 temp;
|
||||||
|
|||||||
@ -94,7 +94,6 @@ HotSwState HOTSWi_RefreshBadBlock(u32 romMode);
|
|||||||
#include <twl/ltdwram_begin.h>
|
#include <twl/ltdwram_begin.h>
|
||||||
|
|
||||||
static char encrypt_object_key[] ATTRIBUTE_ALIGN(4) = "encryObj";
|
static char encrypt_object_key[] ATTRIBUTE_ALIGN(4) = "encryObj";
|
||||||
static char rom_emu_info[] ATTRIBUTE_ALIGN(4) = "TWLD";
|
|
||||||
|
|
||||||
static u16 s_RscLockID;
|
static u16 s_RscLockID;
|
||||||
static u16 s_CardLockID;
|
static u16 s_CardLockID;
|
||||||
@ -311,8 +310,7 @@ static HotSwState LoadCardData(void)
|
|||||||
s_cbData.cardType = (s_cbData.id_nml & HOTSW_ROMID_1TROM_MASK) ? DS_CARD_TYPE_2 : DS_CARD_TYPE_1;
|
s_cbData.cardType = (s_cbData.id_nml & HOTSW_ROMID_1TROM_MASK) ? DS_CARD_TYPE_2 : DS_CARD_TYPE_1;
|
||||||
|
|
||||||
{
|
{
|
||||||
u8 i;
|
SYSMRomEmuInfo *romEmuInfo = (void *)s_cbData.romEmuBuf;
|
||||||
u8 *romEmuInf = (u8 *)s_cbData.romEmuBuf;
|
|
||||||
|
|
||||||
// バナーリードが完了して、フラグ処理が終わるまでARM9と排他制御する
|
// バナーリードが完了して、フラグ処理が終わるまでARM9と排他制御する
|
||||||
LockHotSwRsc(&SYSMi_GetWork()->lockCardRsc);
|
LockHotSwRsc(&SYSMi_GetWork()->lockCardRsc);
|
||||||
@ -321,19 +319,27 @@ static HotSwState LoadCardData(void)
|
|||||||
state = s_funcTable[s_cbData.cardType].ReadBootSegment_N(&s_cbData);
|
state = s_funcTable[s_cbData.cardType].ReadBootSegment_N(&s_cbData);
|
||||||
retval = (retval == HOTSW_SUCCESS) ? state : retval;
|
retval = (retval == HOTSW_SUCCESS) ? state : retval;
|
||||||
|
|
||||||
// Romエミュレーション情報を取得
|
// ARM9/7で不整合が発生しないようにRomエミュレーション情報ロードは初回のみ
|
||||||
state = ReadRomEmulationData(&s_cbData);
|
if ( ! SYSMi_GetWork()->flags.hotsw.is1stCardChecked )
|
||||||
retval = (retval == HOTSW_SUCCESS) ? state : retval;
|
{
|
||||||
|
// Romエミュレーション情報を取得
|
||||||
|
state = ReadRomEmulationInfo(&s_cbData);
|
||||||
|
retval = (retval == HOTSW_SUCCESS) ? state : retval;
|
||||||
|
|
||||||
// 取得したRomエミュレーション情報を比較
|
// 取得したRomエミュレーション情報を比較
|
||||||
s_cbData.debuggerFlg = TRUE;
|
s_cbData.debuggerFlg = TRUE;
|
||||||
for(i=0; i<4; i++){
|
if ( romEmuInfo->magic_code != SYSM_ROMEMU_INFO_MAGIC_CODE ){
|
||||||
if ( rom_emu_info[i] != romEmuInf[i] ){
|
|
||||||
s_cbData.debuggerFlg = FALSE;
|
s_cbData.debuggerFlg = FALSE;
|
||||||
break;
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
if(s_cbData.debuggerFlg){
|
// 初回のRomエミュレーション情報を使用
|
||||||
|
if(s_cbData.debuggerFlg &&
|
||||||
|
#ifndef DEBUG_USED_CARD_SLOT_B_
|
||||||
|
romEmuInfo->isEnableSlot1){
|
||||||
|
#else
|
||||||
|
romEmuInfo->isEnableSlot2){
|
||||||
|
#endif
|
||||||
OS_PutString("Read Debugger\n");
|
OS_PutString("Read Debugger\n");
|
||||||
s_cbData.cardType = ROM_EMULATION;
|
s_cbData.cardType = ROM_EMULATION;
|
||||||
s_cbData.gameCommondParam = s_cbData.pBootSegBuf->rh.s.game_cmd_param & ~SCRAMBLE_MASK;
|
s_cbData.gameCommondParam = s_cbData.pBootSegBuf->rh.s.game_cmd_param & ~SCRAMBLE_MASK;
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user