diff --git a/build/buildtools/commondefs.sysmenu b/build/buildtools/commondefs.sysmenu index 5b8f576d..4abbbfac 100644 --- a/build/buildtools/commondefs.sysmenu +++ b/build/buildtools/commondefs.sysmenu @@ -91,7 +91,7 @@ MAKETAD ?= $(TWLSDK_ROOT)/tools/bin/makeTad.pl ### Global Library resettings -GINCLUDES := $(SYSMENU_INCDIR) $(GINCLUDES) $(ES_ROOT)/include +GINCLUDES := $(SYSMENU_INCDIR) $(GINCLUDES) $(ES_ROOT)/twl/include GLIBRARY_DIRS := $(SYSMENU_LIBDIR) $(GLIBRARY_DIRS) GLIBRARIES := $(SYSMENU_LIBS) $(GLIBRARIES) diff --git a/build/buildtools/modulerules.sysmenu b/build/buildtools/modulerules.sysmenu index 6a51c456..35c237ac 100644 --- a/build/buildtools/modulerules.sysmenu +++ b/build/buildtools/modulerules.sysmenu @@ -25,7 +25,7 @@ include $(NITROSYSTEM_ROOT)/build/buildtools/modulerules %.tad: $(BINDIR)/$(TARGET_BIN) - $(MAKETAD) $< $@ + $(MAKETAD) $< -o $@ # .rbin $(BINDIR)/$(TARGET_BIN_BASENAME).rbin: $(OBJS) diff --git a/build/components/hyena.TWL/src/main.c b/build/components/hyena.TWL/src/main.c index 5f9a6cb9..07df48b2 100644 --- a/build/components/hyena.TWL/src/main.c +++ b/build/components/hyena.TWL/src/main.c @@ -68,7 +68,7 @@ *---------------------------------------------------------------------------*/ static void SetSCFGWork( void ); static void ResetRTC( void ); -static void ReadResetParameter( void ); +static void ReadLauncherParameter( void ); static void PrintDebugInfo(void); static OSHeapHandle InitializeAllocateSystem(void); static void InitializeFatfs(void); @@ -111,8 +111,8 @@ TwlSpMain(void) OS_InitTick(); PrintDebugInfo(); - // Cold/Hotスタート判定 - ReadResetParameter(); + // ランチャーパラメター取得(Cold/Hotスタート判定含む) + ReadLauncherParameter(); // RTCリセット ResetRTC(); // 330usくらい @@ -249,14 +249,14 @@ static void ResetRTC( void ) } -// Hot/Coldスタート判定およびリセットパラメータのリード -void ReadResetParameter( void ) +// ランチャーパラメータのリードおよびHot/Coldスタート判定 +void ReadLauncherParameter( void ) { BOOL hot; - SYSMi_GetWork()->isValidResetParam = OS_ReadResetParameter( (ResetParam *)&(SYSMi_GetWork()->resetParam), &hot ); + SYSMi_GetWork()->isValidLauncherParam = OS_ReadLauncherParameter( (LauncherParam *)&(SYSMi_GetWork()->launcherParam), &hot ); SYSMi_GetWork()->isHotStart = hot; // メインメモリのリセットパラメータをクリアしておく - MI_CpuClear32( SYSMi_GetResetParamAddr(), 0x100 ); + MI_CpuClear32( SYSMi_GetLauncherParamAddr(), 0x100 ); } diff --git a/build/libraries_sysmenu/sysmenu/ARM9/src/sysmenu_lib.c b/build/libraries_sysmenu/sysmenu/ARM9/src/sysmenu_lib.c index ca414fd6..37db38a7 100644 --- a/build/libraries_sysmenu/sysmenu/ARM9/src/sysmenu_lib.c +++ b/build/libraries_sysmenu/sysmenu/ARM9/src/sysmenu_lib.c @@ -170,13 +170,13 @@ TitleProperty *SYSM_ReadParameters( void ) // リセットパラメータの判定(リセットパラメータが有効かどうかは、ARM7でやってくれている) //----------------------------------------------------- { - if( SYSM_GetResetParamBody()->v1.flags.isLogoSkip || // ロゴデモスキップ? + if( SYSM_GetLauncherParamBody()->v1.flags.isLogoSkip || // ロゴデモスキップ? SYSMi_IsDebuggerBannerViewMode() ) { SYSM_SetLogoDemoSkip( TRUE ); } - if( SYSM_GetResetParamBody()->v1.bootTitleID ) { // アプリ直接起動の指定があったらロゴデモを飛ばして指定アプリ起動 - pBootTitle = (TitleProperty *)&SYSM_GetResetParamBody()->v1; + if( SYSM_GetLauncherParamBody()->v1.bootTitleID ) { // アプリ直接起動の指定があったらロゴデモを飛ばして指定アプリ起動 + pBootTitle = (TitleProperty *)&SYSM_GetLauncherParamBody()->v1; } } @@ -448,10 +448,10 @@ int SYSM_GetNandTitleList( TitleProperty *pTitleList_Nand, int listNum ) } -// リセットパラメータの取得 -const ResetParamBody *SYSM_GetResetParamBody( void ) +// ランチャーパラメータの取得 +const LauncherParamBody *SYSM_GetLauncherParamBody( void ) { - return (const ResetParamBody *)&SYSMi_GetWork()->resetParam.body; + return (const LauncherParamBody *)&SYSMi_GetWork()->launcherParam.body; } diff --git a/build/systemMenu_RED/Launcher/ARM9/Makefile b/build/systemMenu_RED/Launcher/ARM9/Makefile index acedb58b..c9d01755 100644 --- a/build/systemMenu_RED/Launcher/ARM9/Makefile +++ b/build/systemMenu_RED/Launcher/ARM9/Makefile @@ -17,12 +17,12 @@ #---------------------------------------------------------------------------- SUBDIRS = \ - ../../../libraries_sysmenu/reloc_info \ - ../../../libraries_sysmenu/sysmenu \ - ../../../libraries_sysmenu/settings \ - ../../../libraries_sysmenu/boot \ - ../../../libraries_sysmenu/hotsw \ - ../../../components/hyena.TWL +# ../../../libraries_sysmenu/reloc_info \ +# ../../../libraries_sysmenu/sysmenu \ +# ../../../libraries_sysmenu/settings \ +# ../../../libraries_sysmenu/boot \ +# ../../../libraries_sysmenu/hotsw \ +# ../../../components/hyena.TWL #---------------------------------------------------------------------------- diff --git a/build/systemMenu_RED/MachineSettings/ARM9/src/MachineSetting.c b/build/systemMenu_RED/MachineSettings/ARM9/src/MachineSetting.c index 3668bd29..0d3d1750 100644 --- a/build/systemMenu_RED/MachineSettings/ARM9/src/MachineSetting.c +++ b/build/systemMenu_RED/MachineSettings/ARM9/src/MachineSetting.c @@ -197,7 +197,7 @@ int MachineSettingMain( void ) { BOOL tp_select; - BootFlags tempflag = {TRUE, 0, TRUE, FALSE, FALSE, FALSE, 0}; + LauncherBootFlags tempflag = {TRUE, 0, TRUE, FALSE, FALSE, FALSE, 0}; ReadTP(); @@ -218,7 +218,7 @@ int MachineSettingMain( void ) DrawMenu( s_csr, &s_settingParam ); if( pad.trg & PAD_BUTTON_START ) { - OS_SetResetParamAndResetHardware( 0, NULL, &tempflag ); + OS_SetLauncherParamAndResetHardware( 0, NULL, &tempflag ); } if( ( pad.trg & PAD_BUTTON_A ) || ( tp_select ) ) { // メニュー項目への分岐 @@ -250,7 +250,7 @@ int MachineSettingMain( void ) break; case 6: //pictochat起動テスト - OS_SetResetParamAndResetHardware( 0, 0x0001000150434854, &tempflag ); + OS_SetLauncherParamAndResetHardware( 0, 0x0001000150434854, &tempflag ); } } } diff --git a/build/tests/AppliCooperation/CooperationA/ARM9/src/CooperationA.c b/build/tests/AppliCooperation/CooperationA/ARM9/src/CooperationA.c index b000dc88..f3214f4c 100644 --- a/build/tests/AppliCooperation/CooperationA/ARM9/src/CooperationA.c +++ b/build/tests/AppliCooperation/CooperationA/ARM9/src/CooperationA.c @@ -499,10 +499,10 @@ static void MenuScene(void) MI_CpuCopy8(s_work.parameter, arginfo->buf, 2*(PARAM_LENGTH+1)); } //B起動 - OS_SetResetParamAndResetHardware( 0, 0x00010001434f5042, &tempflag ); + OS_SetLauncherParamAndResetHardware( 0, 0x00010001434f5042, &tempflag ); break; case 2: - OS_SetResetParamAndResetHardware( 0, NULL, &tempflag ); + OS_SetLauncherParamAndResetHardware( 0, NULL, &tempflag ); //再起動 break; } diff --git a/build/tests/AppliCooperation/CooperationB/ARM9/src/CooperationB.c b/build/tests/AppliCooperation/CooperationB/ARM9/src/CooperationB.c index 196f6f25..f363fba6 100644 --- a/build/tests/AppliCooperation/CooperationB/ARM9/src/CooperationB.c +++ b/build/tests/AppliCooperation/CooperationB/ARM9/src/CooperationB.c @@ -157,12 +157,12 @@ static void MenuScene(void) // アプリ専用部分のセット MI_CpuCopy8("-r", arginfo->buf, 3); //呼び出し元アプリ起動 - OS_SetResetParamAndResetHardware( 0, (u64)0x0001000100000000 + invGameCode, &tempflag ); - //OS_SetResetParamAndResetHardware( 0, (u64)0x00010001434f5041, &tempflag ); + OS_SetLauncherParamAndResetHardware( 0, (u64)0x0001000100000000 + invGameCode, &tempflag ); + //OS_SetLauncherParamAndResetHardware( 0, (u64)0x00010001434f5041, &tempflag ); } break; case 1: - OS_SetResetParamAndResetHardware( 0, NULL, &tempflag ); + OS_SetLauncherParamAndResetHardware( 0, NULL, &tempflag ); //再起動 break; } diff --git a/build/tests/AppliCooperation/CooperationC/ARM9/src/CooperationC.c b/build/tests/AppliCooperation/CooperationC/ARM9/src/CooperationC.c index 0f36919a..a6072a80 100644 --- a/build/tests/AppliCooperation/CooperationC/ARM9/src/CooperationC.c +++ b/build/tests/AppliCooperation/CooperationC/ARM9/src/CooperationC.c @@ -499,10 +499,10 @@ static void MenuScene(void) MI_CpuCopy8(s_work.parameter, arginfo->buf, 2*(PARAM_LENGTH+1)); } //B起動 - OS_SetResetParamAndResetHardware( 0, 0x00010001434f5042, &tempflag ); + OS_SetLauncherParamAndResetHardware( 0, 0x00010001434f5042, &tempflag ); break; case 2: - OS_SetResetParamAndResetHardware( 0, NULL, &tempflag ); + OS_SetLauncherParamAndResetHardware( 0, NULL, &tempflag ); //再起動 break; } diff --git a/build/tests/RelocateChecker/ARM7/src/main.c b/build/tests/RelocateChecker/ARM7/src/main.c index 56266ef9..a9122696 100644 --- a/build/tests/RelocateChecker/ARM7/src/main.c +++ b/build/tests/RelocateChecker/ARM7/src/main.c @@ -65,7 +65,7 @@ 内部関数定義 *---------------------------------------------------------------------------*/ static void SetSCFGWork( void ); -static void ReadResetParameter( void ); +static void ReadLauncherParameter( void ); static void PrintDebugInfo(void); static OSHeapHandle InitializeAllocateSystem(void); static void InitializeFatfs(void); @@ -119,7 +119,7 @@ TwlSpMain(void) ReadUserInfo(); // Cold/Hotスタート判定 - ReadResetParameter(); + ReadLauncherParameter(); // [TODO:] カード電源ONして、ROMヘッダのみリード&チェックくらいはやっておきたい @@ -222,11 +222,11 @@ static BOOL IsEnableJTAG( void ) return value ? TRUE : FALSE; } -// Hot/Coldスタート判定およびリセットパラメータのリード +// ランチャーパラメータのリードおよびHot/Coldスタート判定 #define MCU_RESET_VALUE_BUF_ENABLE_MASK 0x80000000 #define MCU_RESET_VALUE_OFS 0 #define MCU_RESET_VALUE_LEN 1 -void ReadResetParameter( void ) +void ReadLauncherParameter( void ) { if( ( *(u32 *)HW_RESET_PARAMETER_BUF & MCU_RESET_VALUE_BUF_ENABLE_MASK ) == 0 ) { (void)MCU_GetFreeRegisters( MCU_RESET_VALUE_OFS, (u8 *)HW_RESET_PARAMETER_BUF, MCU_RESET_VALUE_LEN ); @@ -240,20 +240,20 @@ void ReadResetParameter( void ) SYSMi_GetWork()->isHotStart = FALSE; }else { SYSMi_GetWork()->isHotStart = TRUE; - // リセットパラメータ有効判定 - if( ( STD_StrNCmp( (const char *)&SYSMi_GetResetParamAddr()->header.magicCode, - SYSM_RESET_PARAM_MAGIC_CODE, - SYSM_RESET_PARAM_MAGIC_CODE_LEN ) == 0 ) && - ( SYSMi_GetResetParamAddr()->header.bodyLength > 0 ) && - ( SYSMi_GetResetParamAddr()->header.crc16 == SVC_GetCRC16( 65535, &SYSMi_GetResetParamAddr()->body, SYSMi_GetResetParamAddr()->header.bodyLength ) ) + // ランチャーパラメータ有効判定 + if( ( STD_StrNCmp( (const char *)&SYSMi_GetLauncherParamAddr()->header.magicCode, + SYSM_LAUNCHER_PARAM_MAGIC_CODE, + SYSM_LAUNCHER_PARAM_MAGIC_CODE_LEN ) == 0 ) && + ( SYSMi_GetLauncherParamAddr()->header.bodyLength > 0 ) && + ( SYSMi_GetLauncherParamAddr()->header.crc16 == SVC_GetCRC16( 65535, &SYSMi_GetLauncherParamAddr()->body, SYSMi_GetLauncherParamAddr()->header.bodyLength ) ) ) { - // リセットパラメータが有効なら、ワークに退避 - MI_CpuCopy32 ( SYSMi_GetResetParamAddr(), &SYSMi_GetWork()->resetParam, sizeof(ResetParam) ); - SYSMi_GetWork()->isValidResetParam = TRUE; + // ランチャーパラメータが有効なら、ワークに退避 + MI_CpuCopy32 ( SYSMi_GetLauncherParamAddr(), &SYSMi_GetWork()->launcherParam, sizeof(LauncherParam) ); + SYSMi_GetWork()->isValidLauncherParam = TRUE; } } - // メインメモリのリセットパラメータをクリアしておく - MI_CpuClear32( SYSMi_GetResetParamAddr(), 0x100 ); + // メインメモリのランチャーパラメータをクリアしておく + MI_CpuClear32( SYSMi_GetLauncherParamAddr(), HW_PARAM_LAUNCH_PARAM_SIZE ); } diff --git a/doc/IS繝繝舌ャ繧ャ繧ソ繧ケ繧ッ.vsd b/doc/IS繝繝舌ャ繧ャ繧ソ繧ケ繧ッ.vsd index 882c920c..3ccffdcf 100644 Binary files a/doc/IS繝繝舌ャ繧ャ繧ソ繧ケ繧ッ.vsd and b/doc/IS繝繝舌ャ繧ャ繧ソ繧ケ繧ッ.vsd differ diff --git a/doc/rom_header_format.xls b/doc/rom_header_format.xls index 5818dd3c..42156e25 100644 Binary files a/doc/rom_header_format.xls and b/doc/rom_header_format.xls differ diff --git a/doc/骰オ邂。逅.xls b/doc/骰オ邂。逅.xls index 017d1681..b92468d0 100644 Binary files a/doc/骰オ邂。逅.xls and b/doc/骰オ邂。逅.xls differ diff --git a/doc/髢狗匱逕ィ蜷遞ョ譛ャ菴薙→繧「繝励Μ繝舌う繝翫Μ莉墓ァ.vsd b/doc/髢狗匱逕ィ蜷遞ョ譛ャ菴薙→繧「繝励Μ繝舌う繝翫Μ莉墓ァ.vsd index 6dc274df..098b1c77 100644 Binary files a/doc/髢狗匱逕ィ蜷遞ョ譛ャ菴薙→繧「繝励Μ繝舌う繝翫Μ莉墓ァ.vsd and b/doc/髢狗匱逕ィ蜷遞ョ譛ャ菴薙→繧「繝励Μ繝舌う繝翫Μ莉墓ァ.vsd differ diff --git a/include/sysmenu/reset_param/ARM9/reset_param.h b/include/sysmenu/reset_param/ARM9/reset_param.h index 7c9d45f8..9409d5c4 100644 --- a/include/sysmenu/reset_param/ARM9/reset_param.h +++ b/include/sysmenu/reset_param/ARM9/reset_param.h @@ -50,29 +50,29 @@ typedef struct BootFlags { // リセットパラメータ ヘッダ -typedef struct ResetParameterHeader { +typedef struct LauncherParameterHeader { u32 magicCode; // SYSM_RESET_PARAM_MAGIC_CODEが入る u8 type; // タイプによってBodyを判別する。 u8 bodyLength; // bodyの長さ u16 crc16; // bodyのCRC16 -}ResetParamHeader; +}LauncherParamHeader; // リセットパラメータ ボディ -typedef union ResetParamBody { +typedef union LauncherParamBody { struct { // ※とりあえず最初はTitlePropertyとフォーマットを合わせておく NAMTitleId bootTitleID; // リセット後にダイレクト起動するタイトルID BootFlags flags; // リセット時のランチャー動作フラグ u8 rsv[ 4 ]; // 予約 }v1; -}ResetParamBody; +}LauncherParamBody; // リセットパラメータ -typedef struct ResetParam { - ResetParamHeader header; - ResetParamBody body; -}ResetParam; +typedef struct LauncherParam { + LauncherParamHeader header; + LauncherParamBody body; +}LauncherParam; // function's prototype------------------------------------ diff --git a/include/sysmenu/sysmenu_lib/ARM9/sysmenu_api.h b/include/sysmenu/sysmenu_lib/ARM9/sysmenu_api.h index b3dd2958..02d46b6e 100644 --- a/include/sysmenu/sysmenu_lib/ARM9/sysmenu_api.h +++ b/include/sysmenu/sysmenu_lib/ARM9/sysmenu_api.h @@ -53,10 +53,10 @@ typedef enum PlatformCode { // タイトル情報 -typedef struct TitleProperty { // この情報は、ランチャー時には認証通ってないけど、起動時には認証通すので大丈夫だろう。 - NAMTitleId titleID; // タイトルID(TitleID_Hiで起動メディアは判定できる?) - BootFlags flags; // ブート時のランチャー動作フラグ - TWLBannerFile *pBanner; // バナーへのポインタ(固定長フォーマットなら偽造されても大丈夫だろう。) +typedef struct TitleProperty { // この情報は、ランチャー時には認証通ってないけど、起動時には認証通すので大丈夫だろう。 + NAMTitleId titleID; // タイトルID(TitleID_Hiで起動メディアは判定できる?) + LauncherBootFlags flags; // ブート時のランチャー動作フラグ + TWLBannerFile *pBanner; // バナーへのポインタ(固定長フォーマットなら偽造されても大丈夫だろう。) }TitleProperty; // アプリ認証結果 @@ -102,7 +102,7 @@ extern BOOL SYSM_IsLogoDemoSkip( void ); // extern void SYSM_SetLogoDemoSkip( BOOL skip ); // ロゴデモ飛ばし状態フラグを設定する。 extern BOOL SYSM_IsValidTSD( void ); // TWL設定データは有効か? extern void SYSM_SetValidTSD( BOOL valid ); // TWL設定データの有効/無効フラグを設定する。 -extern const ResetParamBody *SYSM_GetResetParamBody( void ); // リセットパラメータの取得 +extern const LauncherParamBody *SYSM_GetLauncherParamBody( void ); // リセットパラメータの取得 // 本体設定データアクセス extern BOOL SYSM_ReadTWLSettingsFile( void ); // TWL設定データのリード diff --git a/include/sysmenu/sysmenu_lib/common/sysmenu_work.h b/include/sysmenu/sysmenu_lib/common/sysmenu_work.h index 9f7b185b..98bad295 100644 --- a/include/sysmenu/sysmenu_lib/common/sysmenu_work.h +++ b/include/sysmenu/sysmenu_lib/common/sysmenu_work.h @@ -54,7 +54,7 @@ typedef struct SYSM_work { Relocate_Info romRelocateInfo[RELOCATE_INFO_NUM]; // ROM再配置情報(arm9,arm7それぞれltdとflxで最大4つ) vu32 isARM9Start :1; // ARM9スタートフラグ vu32 isHotStart :1; // Hot/Coldスタート判定 - vu32 isValidResetParam :1; // リセットパラメータ有効 + vu32 isValidLauncherParam :1; // リセットパラメータ有効 vu32 isValidTSD :1; // NITRO設定データ無効フラグ vu32 isLogoSkip :1; // ロゴデモスキップ vu32 isOnDebugger :1; // デバッガ動作か? @@ -79,7 +79,7 @@ typedef struct SYSM_work { int cloneBootMode; u32 nCardID; // カードID - ResetParam resetParam; + LauncherParam launcherParam; // NTR-IPL2のレガシー 最終的には消すと思う BOOL enableCardNormalOnly; @@ -106,8 +106,8 @@ typedef struct SDKBootCheckInfo{ //---------------------------------------------------------------------- // SYSM共有ワーク領域のアドレス獲得 //---------------------------------------------------------------------- -// SYSMリセットパラメータアドレスの取得(※ライブラリ向け。ARM9側はSYSM_GetResetParamを使用して下さい。) -#define SYSMi_GetResetParamAddr() ( (ResetParam *)HW_PARAM_LAUNCH_PARAM ) +// SYSMリセットパラメータアドレスの取得(※ライブラリ向け。ARM9側はSYSM_GetLauncherParamを使用して下さい。) +#define SYSMi_GetLauncherParamAddr() ( (LauncherParam *)HW_PARAM_LAUNCH_PARAM ) // SYSM共有ワークの取得 #define SYSMi_GetWork() ( (SYSM_work *)HW_RED_RESERVED )