mirror of
https://github.com/rvtr/TwlIPL.git
synced 2025-10-31 06:01:12 -04:00
ブート直前のROMヘッダ処理をARM7へまとめて可読性を向上。
git-svn-id: file:///Users/lillianskinner/Downloads/platinum/twl/TwlIPL/trunk@2159 b08762b0-b915-fc4b-9d8c-17b2551a87ff
This commit is contained in:
parent
bf5fec7c5c
commit
0d02bf8b67
@ -27,6 +27,7 @@
|
||||
#include <firm/aes/ARM7/aes_init.h>
|
||||
#include "reboot.h"
|
||||
#include "internal_api.h"
|
||||
#include "../../../hotsw/ARM7/include/hotswTypes.h"
|
||||
|
||||
extern void SPI_Lock(u32 id);
|
||||
extern void SPI_Unlock(u32 id);
|
||||
@ -136,12 +137,14 @@ BOOL BOOT_WaitStart( void )
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
// SDKのFinalize処理後に呼び出される
|
||||
static void BOOTi_RebootCallback( void** entryp, void* mem_list_v, REBOOTTarget* target )
|
||||
{
|
||||
#pragma unused(entryp)
|
||||
u32* mem_list = mem_list_v;
|
||||
ROM_Header *th = (void*)REBOOTi_GetTwlRomHeaderAddr();
|
||||
ROM_Header *dh = (void*)REBOOTi_GetRomHeaderAddr();
|
||||
ROM_Header *ch = (void*)HW_CARD_ROM_HEADER;
|
||||
BOOL isNtrMode;
|
||||
u32 spiLockId;
|
||||
|
||||
@ -153,15 +156,25 @@ static void BOOTi_RebootCallback( void** entryp, void* mem_list_v, REBOOTTarget*
|
||||
MI_CpuCopyFast( th, dh, HW_CARD_ROM_HEADER_SIZE );
|
||||
|
||||
// カードNTR-ROMヘッダをNANDアプリやDSダウンロードプレイのためコピー
|
||||
MI_CpuCopyFast( (void*)SYSM_CARD_ROM_HEADER_BAK, (void*)HW_CARD_ROM_HEADER, HW_CARD_ROM_HEADER_SIZE );
|
||||
MI_CpuCopyFast( (void*)SYSM_CARD_ROM_HEADER_BAK, ch, HW_CARD_ROM_HEADER_SIZE );
|
||||
|
||||
if ( (((ROM_Header *)SYSM_CARD_ROM_HEADER_BAK)->s.platform_code & PLATFORM_CODE_FLAG_TWL) && (dh->s.platform_code & PLATFORM_CODE_FLAG_TWL) ){
|
||||
// カードTWL-ROMヘッダをHW_TWL_CARD_ROM_HEADER_BUFにコピー
|
||||
MI_CpuCopyFast( (void*)SYSM_CARD_ROM_HEADER_BAK, (void*)HW_TWL_CARD_ROM_HEADER_BUF, HW_TWL_CARD_ROM_HEADER_BUF_SIZE );
|
||||
}
|
||||
|
||||
// デバッガによるROMエミュレーション時はNTR-ROMヘッダバッファの
|
||||
// ゲームコマンドパラメータをスクランブルOFF設定に書き換える
|
||||
if ( SYSM_IsRunOnDebugger() )
|
||||
{
|
||||
// NitroSDKバグ対策でブートメディア種別に関わらずROMヘッダを常時書き換え
|
||||
dh->s.game_cmd_param &= ~SCRAMBLE_MASK;
|
||||
}
|
||||
// カードROMヘッダ(非キャッシュ領域)は常時設定
|
||||
ch->s.game_cmd_param = SYSMi_GetWork()->gameCommondParam;
|
||||
|
||||
// この処理は、DSダウンロードプレイ側で行う。
|
||||
// MI_CpuCopyFast ( (void *)HW_CARD_ROM_HEADER, (void *)MB_CARD_ROM_HEADER_ADDRESS, 0x160);
|
||||
// MI_CpuCopyFast ( ch, (void *)MB_CARD_ROM_HEADER_ADDRESS, 0x160);
|
||||
|
||||
// ブラックリストをチェックし、起動制限をかける
|
||||
BOOTi_CheckTitleBlackList( (void*)th );
|
||||
|
||||
@ -91,6 +91,7 @@ void BOOT_Ready( void )
|
||||
}
|
||||
|
||||
// ブート準備をして、ARM7からの通知を待つ。
|
||||
// SDKのFinalize処理後に呼び出される
|
||||
static void BOOTi_RebootCallback( void** entryp, void* mem_list_v, REBOOTTarget* target )
|
||||
{
|
||||
#pragma unused(entryp)
|
||||
@ -199,19 +200,6 @@ static void BOOTi_RebootCallback( void** entryp, void* mem_list_v, REBOOTTarget*
|
||||
*target = REBOOT_TARGET_DS_APP;
|
||||
}
|
||||
|
||||
// デバッガによるROMエミュレーション時はNTR-ROMヘッダバッファの
|
||||
// ゲームコマンドパラメータをスクランブルOFF設定に書き換える
|
||||
if ( SYSM_IsRunOnDebugger() )
|
||||
{
|
||||
// NitroSDKバグ対策でブートメディア種別に関わらずROMヘッダを常時書き換え
|
||||
dh->s.game_cmd_param &= ~SCRAMBLE_MASK;
|
||||
}
|
||||
{
|
||||
// カードROMヘッダ(非キャッシュ領域)は常時設定
|
||||
ROM_Header *ch = (void*)HW_CARD_ROM_HEADER;
|
||||
ch->s.game_cmd_param = SYSMi_GetWork()->gameCommondParam;
|
||||
}
|
||||
|
||||
// 鍵は不要になるので、消しておく
|
||||
{
|
||||
OSFromFirmBuf* fromFirm = (void*)HW_FIRM_FROM_FIRM_BUF;
|
||||
|
||||
Loading…
Reference in New Issue
Block a user