diff --git a/build/systemMenu_RED/ImportJump/ARM9.TWL/include/ImportJump.h b/build/systemMenu_RED/ImportJump/ARM9.TWL/include/ImportJump.h index b486a100..3c14d6fe 100644 --- a/build/systemMenu_RED/ImportJump/ARM9.TWL/include/ImportJump.h +++ b/build/systemMenu_RED/ImportJump/ARM9.TWL/include/ImportJump.h @@ -46,15 +46,14 @@ typedef struct _ImportJumpSetting 定数定義 *---------------------------------------------------------------------------*/ +#define IMPORT_TAD_ROM_OFS 0x00800000 +#define IMPORT_JUMP_SETTING_OFS (IMPORT_TAD_ROM_OFS - CARD_ROM_PAGE_SIZE) + /*---------------------------------------------------------------------------* 関数定義 *---------------------------------------------------------------------------*/ -inline ImportJump* GetImportJumpSetting(void) -{ - // リセット後は各PSRAMの先頭8MBしか保証されない - return (ImportJump *)HW_TWL_MAIN_MEM_EX; -} +ImportJump* GetImportJumpSetting( void ); /*===========================================================================*/ diff --git a/build/systemMenu_RED/ImportJump/ARM9.TWL/src/import.c b/build/systemMenu_RED/ImportJump/ARM9.TWL/src/import.c index 0823e317..0f506cfd 100644 --- a/build/systemMenu_RED/ImportJump/ARM9.TWL/src/import.c +++ b/build/systemMenu_RED/ImportJump/ARM9.TWL/src/import.c @@ -45,6 +45,7 @@ static void* spStack; static u32 sCurrentProgress; static vu8 sNowImport = FALSE; +static ImportJump sImportJumpSetting; /*---------------------------------------------------------------------------* 内部関数宣言 @@ -323,3 +324,32 @@ static void UpdateNandBoxCount( void ) } } +/*---------------------------------------------------------------------------* + Name: GetImportJumpSetting + + Description: + + Arguments: None. + + Returns: None. + *---------------------------------------------------------------------------*/ + +ImportJump* GetImportJumpSetting( void ) +{ + static BOOL inited = FALSE; + + if ( ! inited ) + { + // 開発用CPUでのみリード + if ( *(u8*)(OS_CHIPTYPE_DEBUGGER_ADDR) & OS_CHIPTYPE_DEBUGGER_MASK ) + { + u16 id = (u16)OS_GetLockID(); + CARD_LockRom( id ); + CARD_ReadRom( MI_DMA_NOT_USE, (void*)IMPORT_JUMP_SETTING_OFS, &sImportJumpSetting, sizeof(ImportJump) ); + CARD_UnlockRom( id ); + } + inited = TRUE; + } + + return &sImportJumpSetting; +}