diff --git a/build/libraries_sysmenu/util/ARM9/src/util.c b/build/libraries_sysmenu/util/ARM9/src/util.c index 8a9fd86c..49004bbb 100644 --- a/build/libraries_sysmenu/util/ARM9/src/util.c +++ b/build/libraries_sysmenu/util/ARM9/src/util.c @@ -269,6 +269,17 @@ BOOL UTL_IsROMHeaderEULARequired( void ) } +//====================================================================== +// ROMヘッダのnintendoロゴの正当性チェック +//====================================================================== +//#define CTRDG_SYSROM9_NINLOGO_ADR 0xffff0020 + +BOOL UTL_CheckNintendoLogoData( ROM_Header_Short *rh ) +{ + return !MI_CpuComp8(rh->nintendo_logo, (u8 *)CTRDG_SYSROM9_NINLOGO_ADR, NINTENDO_LOGO_DATA_LENGTH); +} + + //====================================================================== // FATALエラー処理 //====================================================================== diff --git a/include/sysmenu/util.h b/include/sysmenu/util.h index e33008a7..df636827 100644 --- a/include/sysmenu/util.h +++ b/include/sysmenu/util.h @@ -19,6 +19,7 @@ #define __SYSM_UTIL_H__ #include +#include #ifdef __cplusplus extern "C" { @@ -71,8 +72,9 @@ typedef enum FatalErrorCode { FATAL_ERROR_LOAD_READDLSIGN_FAILED = 40, FATAL_ERROR_LOAD_RELOCATEINFO_FAILED = 41, FATAL_ERROR_LOAD_READMODULE_FAILED = 42, + FATAL_ERROR_NINTENDO_LOGO_CHECK_FAILED = 43, - FATAL_ERROR_MAX = 43 + FATAL_ERROR_MAX = 44 }FatalErrorCode; @@ -106,6 +108,9 @@ extern u32 UTL_CalcPCTLMasterKey( void ); // // アプリROMヘッダの要EULAフラグ取得 extern BOOL UTL_IsROMHeaderEULARequired( void ); +// アプリROMヘッダのnintendoロゴの正当性チェック +extern BOOL UTL_CheckNintendoLogoData( ROM_Header_Short *rh ); + #endif // FATALエラー