mirror of
https://github.com/rvtr/TwlIPL.git
synced 2025-10-31 06:01:12 -04:00
(更新:Akabane Jumpei)
・Romエミュレーション情報読み関数を修正 git-svn-id: file:///Users/lillianskinner/Downloads/platinum/twl/TwlIPL/trunk@430 b08762b0-b915-fc4b-9d8c-17b2551a87ff
This commit is contained in:
parent
43ce9db66c
commit
d7c6cb4e6a
@ -16,9 +16,6 @@ extern "C" {
|
||||
// Function Describe
|
||||
// ===========================================================================
|
||||
// ■ ノーマルモードのコマンド ■
|
||||
// DSカードType2のRomエミュレーションデータの読み込み
|
||||
void ReadRomEmulationData_DSType2(CardBootData *cbd);
|
||||
|
||||
// DSカードType2のノーマルモードのBoot Segment(4Kbyte)読み込み
|
||||
void ReadBootSegNormal_DSType2(CardBootData *cbd);
|
||||
|
||||
|
||||
@ -29,37 +29,6 @@ static void SetMCSCR(void);
|
||||
// ■--------------------------------------■
|
||||
// ■ ノーマルモードのコマンド ■
|
||||
// ■--------------------------------------■
|
||||
/*---------------------------------------------------------------------------*
|
||||
Name: ReadRomEmulationData_DSType2
|
||||
|
||||
Description: DSカードType2のRomエミュレーションデータの読み込み
|
||||
*---------------------------------------------------------------------------*/
|
||||
void ReadRomEmulationData_DSType2(CardBootData *cbd)
|
||||
{
|
||||
u32 count=0;
|
||||
u32 temp;
|
||||
u32 *dst = cbd->romEmuBuf;
|
||||
|
||||
// MCCMD レジスタ設定
|
||||
reg_HOTSW_MCCMD0 = 0x3e000000;
|
||||
reg_HOTSW_MCCMD1 = 0x0;
|
||||
|
||||
// MCCNT1 レジスタ設定 (START = 1 PC = 001(1ページリード)に latency1 = 0x5fe)
|
||||
reg_HOTSW_MCCNT1 = START_MASK | PC_MASK & (0x1 << PC_SHIFT) | (0x5fe & LATENCY1_MASK);
|
||||
|
||||
// MCCNTレジスタのRDYフラグをポーリングして、フラグが立ったらデータをMCD1レジスタに再度セット。スタートフラグが0になるまでループ。
|
||||
while(reg_HOTSW_MCCNT1 & START_FLG_MASK){
|
||||
while(!(reg_HOTSW_MCCNT1 & READY_FLG_MASK)){}
|
||||
if(count >= ROM_EMULATION_START_OFS && count < ROM_EMULATION_END_OFS){
|
||||
*dst++ = reg_HOTSW_MCD1;
|
||||
}
|
||||
else{
|
||||
temp = reg_HOTSW_MCD1;
|
||||
}
|
||||
count+=4;
|
||||
}
|
||||
}
|
||||
|
||||
/*---------------------------------------------------------------------------*
|
||||
Name: ReadIDNormal_DSType2
|
||||
|
||||
|
||||
@ -46,6 +46,7 @@ static void SetMCSCR(void);
|
||||
|
||||
static void GenVA_VB_VD(void);
|
||||
static void LoadTable(void);
|
||||
static void ReadRomEmulationData(void);
|
||||
static void ReadIDNormal(void);
|
||||
static void DecryptObjectFile(void);
|
||||
|
||||
@ -242,14 +243,7 @@ BOOL HOTSW_Boot(void)
|
||||
OS_TPrintf(" | Secure Command Latency : 0x%08x\n", s_cbData.pBootSegBuf->rh.s.secure_cmd_latency);
|
||||
|
||||
// Romエミュレーションデータを取得
|
||||
if(s_cbData.cardType == DS_CARD_TYPE_1){
|
||||
// Type1の場合
|
||||
MI_CpuCopy8(s_cbData.pBootSegBuf->rh.s.reserved_C, s_cbData.romEmuBuf, ROM_EMULATION_DATA_SIZE);
|
||||
}
|
||||
else if(s_cbData.cardType == DS_CARD_TYPE_2){
|
||||
// Type2の場合
|
||||
ReadRomEmulationData_DSType2(&s_cbData);
|
||||
}
|
||||
ReadRomEmulationData();
|
||||
OS_TPrintf("Rom Emulation Data : 0x%08x\n",s_cbData.romEmuBuf[0]);
|
||||
|
||||
// ROMヘッダCRCを算出してチェック。NintendoロゴCRCも確認。
|
||||
@ -572,6 +566,37 @@ static void LoadTable(void)
|
||||
}
|
||||
}
|
||||
|
||||
/*---------------------------------------------------------------------------*
|
||||
Name: ReadRomEmulationData
|
||||
|
||||
Description: Romエミュレーションデータの読み込み
|
||||
*---------------------------------------------------------------------------*/
|
||||
static void ReadRomEmulationData(void)
|
||||
{
|
||||
u32 count=0;
|
||||
u32 temp;
|
||||
u32 *dst = &s_cbData.romEmuBuf;
|
||||
|
||||
// MCCMD レジスタ設定
|
||||
reg_HOTSW_MCCMD0 = 0x3e000000;
|
||||
reg_HOTSW_MCCMD1 = 0x0;
|
||||
|
||||
// MCCNT1 レジスタ設定 (START = 1 PC = 001(1ページリード)に latency1 = 0x5fe)
|
||||
reg_HOTSW_MCCNT1 = START_MASK | PC_MASK & (0x1 << PC_SHIFT) | (0x5fe & LATENCY1_MASK);
|
||||
|
||||
// MCCNTレジスタのRDYフラグをポーリングして、フラグが立ったらデータをMCD1レジスタに再度セット。スタートフラグが0になるまでループ。
|
||||
while(reg_HOTSW_MCCNT1 & START_FLG_MASK){
|
||||
while(!(reg_HOTSW_MCCNT1 & READY_FLG_MASK)){}
|
||||
if(count >= ROM_EMULATION_START_OFS && count < ROM_EMULATION_END_OFS){
|
||||
*dst++ = reg_HOTSW_MCD1;
|
||||
}
|
||||
else{
|
||||
temp = reg_HOTSW_MCD1;
|
||||
}
|
||||
count+=4;
|
||||
}
|
||||
}
|
||||
|
||||
/* -----------------------------------------------------------------
|
||||
* ReadIDNormal関数
|
||||
*
|
||||
|
||||
Loading…
Reference in New Issue
Block a user