mirror of
https://github.com/rvtr/TwlIPL.git
synced 2025-10-31 06:01:12 -04:00
SDK rev.6791対応。ROMヘッダ構造体変更に対応。
git-svn-id: file:///Users/lillianskinner/Downloads/platinum/twl/TwlIPL/trunk@1697 b08762b0-b915-fc4b-9d8c-17b2551a87ff
This commit is contained in:
parent
0a90d360d0
commit
d9ff037f43
@ -159,7 +159,7 @@ static BOOL CheckHeader(void)
|
|||||||
// ƒCƒjƒVƒƒƒ‹ƒR<C692>[ƒh‚È‚Ç
|
// ƒCƒjƒVƒƒƒ‹ƒR<C692>[ƒh‚È‚Ç
|
||||||
OS_TPrintf("Initial Code : %08X (%.4s)\n", *(u32*)rhs->game_code, rhs->game_code);
|
OS_TPrintf("Initial Code : %08X (%.4s)\n", *(u32*)rhs->game_code, rhs->game_code);
|
||||||
OS_TPrintf("Platform Code : %02X\n", rhs->platform_code);
|
OS_TPrintf("Platform Code : %02X\n", rhs->platform_code);
|
||||||
OS_TPrintf("Codec Mode : %s\n", rhs->codec_mode ? "TWL" : "NITRO");
|
OS_TPrintf("Codec Mode : %s\n", rhs->exFlags.codec_mode ? "TWL" : "NITRO");
|
||||||
OS_TPrintf("Sigunature : %s\n", rhs->enable_signature ? "AVAILABLE" : "NOT AVAILABLE");
|
OS_TPrintf("Sigunature : %s\n", rhs->enable_signature ? "AVAILABLE" : "NOT AVAILABLE");
|
||||||
OS_TPrintf("AES Encryption : %s\n", rhs->enable_aes ? "AVAILABLE" : "NOT AVAILABLE");
|
OS_TPrintf("AES Encryption : %s\n", rhs->enable_aes ? "AVAILABLE" : "NOT AVAILABLE");
|
||||||
if ( rhs->enable_aes )
|
if ( rhs->enable_aes )
|
||||||
@ -190,7 +190,7 @@ static BOOL CheckHeader(void)
|
|||||||
#else
|
#else
|
||||||
if ( // no check
|
if ( // no check
|
||||||
#endif
|
#endif
|
||||||
!rhs->codec_mode || // TWL mode only
|
!rhs->exFlags.codec_mode || // TWL mode only
|
||||||
// should be in main memory
|
// should be in main memory
|
||||||
HW_TWL_MAIN_MEM > (u32)rhs->main_ram_address ||
|
HW_TWL_MAIN_MEM > (u32)rhs->main_ram_address ||
|
||||||
HW_TWL_MAIN_MEM > (u32)rhs->sub_ram_address ||
|
HW_TWL_MAIN_MEM > (u32)rhs->sub_ram_address ||
|
||||||
|
|||||||
@ -299,7 +299,7 @@ static void BOOTi_RebootCallback( void** entryp, void* mem_list_v, REBOOTTarget*
|
|||||||
// I2S停止(MCLKは動作継続)
|
// I2S停止(MCLKは動作継続)
|
||||||
reg_SND_SMX_CNT &= ~REG_SND_SMX_CNT_E_MASK;
|
reg_SND_SMX_CNT &= ~REG_SND_SMX_CNT_E_MASK;
|
||||||
|
|
||||||
if ( isNtrMode || th->s.codec_mode == OS_CODECMODE_NITRO )
|
if ( isNtrMode || th->s.exFlags.codec_mode == OS_CODECMODE_NITRO )
|
||||||
{
|
{
|
||||||
// (CODEC-DSモード)
|
// (CODEC-DSモード)
|
||||||
CDC_GoDsMode();
|
CDC_GoDsMode();
|
||||||
|
|||||||
@ -431,7 +431,7 @@ static HotSwState LoadCardData(void)
|
|||||||
s_cbData.twlFlg = TRUE;
|
s_cbData.twlFlg = TRUE;
|
||||||
}
|
}
|
||||||
else{
|
else{
|
||||||
if ( !s_cbData.pBootSegBuf->rh.s.enable_nitro_whitelist_signature )
|
if ( !s_cbData.pBootSegBuf->rh.s.exFlags.enable_nitro_whitelist_signature )
|
||||||
// NTRカードの場合はRomHeaderバッファの1ページ目以降をクリアしておく。
|
// NTRカードの場合はRomHeaderバッファの1ページ目以降をクリアしておく。
|
||||||
MI_CpuClearFast((void *)(SYSM_CARD_ROM_HEADER_BAK + PAGE_SIZE), SYSM_APP_ROM_HEADER_SIZE - PAGE_SIZE);
|
MI_CpuClearFast((void *)(SYSM_CARD_ROM_HEADER_BAK + PAGE_SIZE), SYSM_APP_ROM_HEADER_SIZE - PAGE_SIZE);
|
||||||
}
|
}
|
||||||
|
|||||||
@ -1433,7 +1433,7 @@ static AuthResult SYSMi_AuthenticateNTRCardAppHeader( TitleProperty *pBootTitle,
|
|||||||
return AUTH_RESULT_SUCCEEDED;
|
return AUTH_RESULT_SUCCEEDED;
|
||||||
}
|
}
|
||||||
|
|
||||||
if( head->s.enable_nitro_whitelist_signature )
|
if( head->s.exFlags.enable_nitro_whitelist_signature )
|
||||||
{
|
{
|
||||||
// マスタリング済みNTRカードアプリの署名チェック(実はTWLアプリと同じ)
|
// マスタリング済みNTRカードアプリの署名チェック(実はTWLアプリと同じ)
|
||||||
ret = SYSMi_AuthenticateHeaderWithSign( pBootTitle, head );
|
ret = SYSMi_AuthenticateHeaderWithSign( pBootTitle, head );
|
||||||
|
|||||||
@ -155,7 +155,7 @@ static BOOL CheckHeader(void)
|
|||||||
// イニシャルコードなど
|
// イニシャルコードなど
|
||||||
OS_TPrintf("Initial Code : %08X (%.4s)\n", *(u32*)rhs->game_code, rhs->game_code);
|
OS_TPrintf("Initial Code : %08X (%.4s)\n", *(u32*)rhs->game_code, rhs->game_code);
|
||||||
OS_TPrintf("Platform Code : %02X\n", rhs->platform_code);
|
OS_TPrintf("Platform Code : %02X\n", rhs->platform_code);
|
||||||
OS_TPrintf("Codec Mode : %s\n", rhs->codec_mode ? "TWL" : "NITRO");
|
OS_TPrintf("Codec Mode : %s\n", rhs->exFlags.codec_mode ? "TWL" : "NITRO");
|
||||||
OS_TPrintf("Sigunature : %s\n", rhs->enable_signature ? "AVAILABLE" : "NOT AVAILABLE");
|
OS_TPrintf("Sigunature : %s\n", rhs->enable_signature ? "AVAILABLE" : "NOT AVAILABLE");
|
||||||
OS_TPrintf("AES Encryption : %s\n", rhs->enable_aes ? "AVAILABLE" : "NOT AVAILABLE");
|
OS_TPrintf("AES Encryption : %s\n", rhs->enable_aes ? "AVAILABLE" : "NOT AVAILABLE");
|
||||||
if ( rhs->enable_aes )
|
if ( rhs->enable_aes )
|
||||||
@ -190,7 +190,7 @@ static BOOL CheckHeader(void)
|
|||||||
OS_TPrintf("ARM7 LTD size : %08X\n", rhs->sub_ltd_size);
|
OS_TPrintf("ARM7 LTD size : %08X\n", rhs->sub_ltd_size);
|
||||||
// 順序ほぼ最適化済み
|
// 順序ほぼ最適化済み
|
||||||
if ( rhs->platform_code != PLATFORM_CODE_TWL_LIMITED || // TWL Limited only
|
if ( rhs->platform_code != PLATFORM_CODE_TWL_LIMITED || // TWL Limited only
|
||||||
!rhs->codec_mode || // TWL mode only
|
!rhs->exFlags.codec_mode || // TWL mode only
|
||||||
!rhs->enable_signature || // Should be use ROM header signature
|
!rhs->enable_signature || // Should be use ROM header signature
|
||||||
(rhs->titleID_Hi & 0x0005) != 0x0005 || // check only NAND/SYSTEM bits (need?)
|
(rhs->titleID_Hi & 0x0005) != 0x0005 || // check only NAND/SYSTEM bits (need?)
|
||||||
// should be in main memory
|
// should be in main memory
|
||||||
|
|||||||
@ -174,7 +174,7 @@ static BOOL CheckHeader(void)
|
|||||||
// ƒCƒjƒVƒƒƒ‹ƒR<C692>[ƒh‚È‚Ç
|
// ƒCƒjƒVƒƒƒ‹ƒR<C692>[ƒh‚È‚Ç
|
||||||
OS_TPrintf("Initial Code : %08X (%.4s)\n", *(u32*)rhs->game_code, rhs->game_code);
|
OS_TPrintf("Initial Code : %08X (%.4s)\n", *(u32*)rhs->game_code, rhs->game_code);
|
||||||
OS_TPrintf("Platform Code : %02X\n", rhs->platform_code);
|
OS_TPrintf("Platform Code : %02X\n", rhs->platform_code);
|
||||||
OS_TPrintf("Codec Mode : %s\n", rhs->codec_mode ? "TWL" : "NITRO");
|
OS_TPrintf("Codec Mode : %s\n", rhs->exFlags.codec_mode ? "TWL" : "NITRO");
|
||||||
OS_TPrintf("Sigunature : %s\n", rhs->enable_signature ? "AVAILABLE" : "NOT AVAILABLE");
|
OS_TPrintf("Sigunature : %s\n", rhs->enable_signature ? "AVAILABLE" : "NOT AVAILABLE");
|
||||||
OS_TPrintf("AES Encryption : %s\n", rhs->enable_aes ? "AVAILABLE" : "NOT AVAILABLE");
|
OS_TPrintf("AES Encryption : %s\n", rhs->enable_aes ? "AVAILABLE" : "NOT AVAILABLE");
|
||||||
if ( rhs->enable_aes )
|
if ( rhs->enable_aes )
|
||||||
@ -204,7 +204,7 @@ static BOOL CheckHeader(void)
|
|||||||
#else
|
#else
|
||||||
if ( // no check
|
if ( // no check
|
||||||
#endif
|
#endif
|
||||||
!rhs->codec_mode || // TWL mode only
|
!rhs->exFlags.codec_mode || // TWL mode only
|
||||||
// should be in main memory
|
// should be in main memory
|
||||||
HW_TWL_MAIN_MEM > (u32)rhs->main_ram_address ||
|
HW_TWL_MAIN_MEM > (u32)rhs->main_ram_address ||
|
||||||
HW_TWL_MAIN_MEM > (u32)rhs->sub_ram_address ||
|
HW_TWL_MAIN_MEM > (u32)rhs->sub_ram_address ||
|
||||||
|
|||||||
@ -145,8 +145,8 @@ int main(int argc, char *argv[])
|
|||||||
// u8 codec_mode:1; // 0:NTR mode, 1:TWL mode // undeveloped
|
// u8 codec_mode:1; // 0:NTR mode, 1:TWL mode // undeveloped
|
||||||
// u8 otherParentalControls:1; // 1: Enable OtherParentalControls
|
// u8 otherParentalControls:1; // 1: Enable OtherParentalControls
|
||||||
// u8 subBannerFile:1; // 1: Enable SubBannerFile
|
// u8 subBannerFile:1; // 1: Enable SubBannerFile
|
||||||
rom_header.s.codec_mode = 1; // 0:NTR mode, 1:TWL mode // undeveloped
|
rom_header.s.exFlags.codec_mode = 1; // 0:NTR mode, 1:TWL mode // undeveloped
|
||||||
rom_header.s.availableSubBannerFile = 0; // 1: Enable SubBannerFile
|
rom_header.s.exFlags.availableSubBannerFile = 0; // 1: Enable SubBannerFile
|
||||||
|
|
||||||
|
|
||||||
// u8 titleID_Lo[ 4 ];
|
// u8 titleID_Lo[ 4 ];
|
||||||
|
|||||||
@ -21,270 +21,3 @@ typedef signed long long s64;
|
|||||||
|
|
||||||
#endif //MISC_H_
|
#endif //MISC_H_
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
#if 0
|
|
||||||
typedef struct ROM_Header_Short
|
|
||||||
{
|
|
||||||
//==========================================================
|
|
||||||
//
|
|
||||||
// NTR/TWL common
|
|
||||||
//
|
|
||||||
//==========================================================
|
|
||||||
|
|
||||||
//
|
|
||||||
// 0x000 System Reserved
|
|
||||||
//
|
|
||||||
char title_name[TITLE_NAME_MAX]; // Soft title name
|
|
||||||
char game_code[GAME_CODE_MAX]; // Game code
|
|
||||||
char maker_code[MAKER_CODE_MAX]; // Maker code
|
|
||||||
char platform_code; // Platform code bit0: not support NTR, bit1: support TWL ( NTR_only=0x00, NTR/TWL=0x03, TWL_only=0x02 )
|
|
||||||
u8 rom_type; // Rom type
|
|
||||||
u8 rom_size; // Rom size (2のrom_size乗 Mbit: ex. 128Mbitのときrom_size = 7)
|
|
||||||
|
|
||||||
u8 reserved_A[7]; // System Reserved A ( Set ALL 0 )
|
|
||||||
|
|
||||||
u8 enable_signature:1; // enable ROM Header signature
|
|
||||||
u8 enable_aes:1; // enable AES encryption
|
|
||||||
u8 developer_encrypt:1; // 開発用セキュリティがかかっている場合に"1"。製品版では"0"
|
|
||||||
u8: 5;
|
|
||||||
|
|
||||||
u8: 6;
|
|
||||||
u8 for_korea:1; // For Korea
|
|
||||||
u8 for_china:1; // For China
|
|
||||||
|
|
||||||
u8 rom_version; // Rom version
|
|
||||||
|
|
||||||
u8 comp_arm9_boot_area:1; // Compress arm9 boot area
|
|
||||||
u8 comp_arm7_boot_area:1; // Compress arm7 boot area
|
|
||||||
u8 inspect_card:1; // Show inspect card
|
|
||||||
u8 disable_clear_memory_pad:1; // for Debugger
|
|
||||||
u8 enable_twl_rom_cache_read:1; // Enable TWL ROM cacheRead command
|
|
||||||
u8: 1;
|
|
||||||
u8 warning_no_spec_rom_speed:1;// Warning not to specify rom speed
|
|
||||||
u8 disable_detect_pull_out:1; //
|
|
||||||
|
|
||||||
//
|
|
||||||
// 0x020 for Static modules (Section:B)
|
|
||||||
//
|
|
||||||
// ARM9
|
|
||||||
u32 main_rom_offset; // ROM offset
|
|
||||||
void *main_entry_address; // Entry point
|
|
||||||
void *main_ram_address; // RAM address
|
|
||||||
u32 main_size; // Module size
|
|
||||||
|
|
||||||
// ARM7
|
|
||||||
u32 sub_rom_offset; // ROM offset
|
|
||||||
void *sub_entry_address; // Entry point
|
|
||||||
void *sub_ram_address; // RAM address
|
|
||||||
u32 sub_size; // Module size
|
|
||||||
|
|
||||||
//
|
|
||||||
// 0x040 for File Name Table[FNT] (Section:C)
|
|
||||||
//
|
|
||||||
struct ROM_FNT *fnt_offset; // ROM offset
|
|
||||||
u32 fnt_size; // Table size
|
|
||||||
|
|
||||||
//
|
|
||||||
// 0x048 for File Allocation Table[FAT] (Section:E)
|
|
||||||
//
|
|
||||||
struct ROM_FAT *fat_offset; // ROM offset
|
|
||||||
u32 fat_size; // Table size
|
|
||||||
|
|
||||||
//
|
|
||||||
// 0x050 for Overlay Tables[OVT] (Section:D)
|
|
||||||
//
|
|
||||||
// ARM9
|
|
||||||
struct ROM_OVT *main_ovt_offset; // ROM offset
|
|
||||||
u32 main_ovt_size; // Table size
|
|
||||||
|
|
||||||
// ARM7
|
|
||||||
struct ROM_OVT *sub_ovt_offset; // ROM offset
|
|
||||||
u32 sub_ovt_size; // Table size
|
|
||||||
|
|
||||||
// 0x060 for ROM control parameter (Section:F)
|
|
||||||
u32 game_cmd_param; // Game command parameter
|
|
||||||
u32 secure_cmd_param; // Secure command parameter
|
|
||||||
|
|
||||||
u32 banner_offset; // Banner ROM offset
|
|
||||||
|
|
||||||
u16 secure_area_crc16; // Secure area CRC-16
|
|
||||||
u16 secure_cmd_latency; // Secure command latency ((param+2)*256 system cycles)
|
|
||||||
|
|
||||||
// since NITRO-SDK 2.0PR4
|
|
||||||
void *main_autoload_done; // ARM9 autoload done callback address (debug purpose)
|
|
||||||
void *sub_autoload_done; // ARM7 autoload done callback address (debug purpose)
|
|
||||||
|
|
||||||
u8 ctrl_reserved_B[8]; // Ctrl Reserved B (Set 0)
|
|
||||||
|
|
||||||
// since NITRO-SDK 2.0PR6
|
|
||||||
u32 rom_valid_size; // ROM Original Size
|
|
||||||
u32 rom_header_size; // ROM Header size
|
|
||||||
u32 main_module_param_offset; // Offset for table of ARM9 module parameters
|
|
||||||
u32 sub_module_param_offset; // Offset for table of ARM7 module parameters
|
|
||||||
|
|
||||||
// 0x090 - 0x0C0 System Reserved
|
|
||||||
u16 twl_card_normal_area_rom_offset; // undeveloped
|
|
||||||
u16 twl_card_keytable_area_rom_offset; // undeveloped
|
|
||||||
u16 nand_card_dl_area_rom_offset; // undeveloped
|
|
||||||
u16 nand_card_bk_area_rom_offset; // undeveloped
|
|
||||||
u8 nand_card_flag; // undeveloped
|
|
||||||
u8 reserved_B[39];
|
|
||||||
|
|
||||||
// 0x0C0 for NINTENDO logo data
|
|
||||||
u8 nintendo_logo[ NINTENDO_LOGO_DATA_LENGTH ]; // NINTENDO logo data
|
|
||||||
u16 nintendo_logo_crc16; // CRC-16
|
|
||||||
|
|
||||||
// 0x15E ROM header CRC-16
|
|
||||||
u16 header_crc16; // ROM header CRC-16
|
|
||||||
|
|
||||||
// 0x160 - 0x180 Debugger Reserved
|
|
||||||
u8 reserved_C[32]; // Debugger Reserved (Set ALL 0)
|
|
||||||
|
|
||||||
//==========================================================
|
|
||||||
//
|
|
||||||
// TWL only
|
|
||||||
//
|
|
||||||
//==========================================================
|
|
||||||
|
|
||||||
// 0x180 - 0x190 TWL-WRAM A/B/C ARM9 configuration data
|
|
||||||
u32 main_wram_config_data[8]; // developing...
|
|
||||||
|
|
||||||
// 0x1A0 - 0x1B0 TWL-WRAM A/B/C ARM7 configuration data
|
|
||||||
u32 sub_wram_config_data[4]; // developing...
|
|
||||||
|
|
||||||
// 0x1B0 - reserved.
|
|
||||||
u8 reserved_ltd_A[ 8 ];
|
|
||||||
|
|
||||||
// 0x1B8 - ARM7-SCFG
|
|
||||||
u32 arm7_scfg_ext; // SCFG-EXT
|
|
||||||
u8 arm7_scfg_clk; // SCFG-CLK
|
|
||||||
|
|
||||||
// padding(2byte)
|
|
||||||
u8 reserved_ltd_A2[ 2 ];
|
|
||||||
|
|
||||||
// 0x1BF - TWL expansion flags
|
|
||||||
u8 codec_mode:1; // 0:NTR mode, 1:TWL mode // undeveloped
|
|
||||||
u8 otherParentalControls:1; // 1: Enable OtherParentalControls
|
|
||||||
u8 saveBannerFile:1; // 1: Enable SaveBannerFile
|
|
||||||
u8 wifiConnection:1; // 1: Use WiFiConnection
|
|
||||||
u8 rsv:4;
|
|
||||||
|
|
||||||
// 0x1C0 for EX Static modules
|
|
||||||
//
|
|
||||||
// ARM9
|
|
||||||
u32 main_ltd_rom_offset; // ROM offset // undeveloped
|
|
||||||
u8 reserved_ltd_B[ 4 ];
|
|
||||||
void *main_ltd_ram_address; // RAM address // undeveloped //
|
|
||||||
u32 main_ltd_size; // Module size // undeveloped //
|
|
||||||
|
|
||||||
// ARM7
|
|
||||||
u32 sub_ltd_rom_offset; // ROM offset // undeveloped
|
|
||||||
u8 reserved_ltd_C[ 4 ];
|
|
||||||
void *sub_ltd_ram_address; // RAM address // undeveloped //
|
|
||||||
u32 sub_ltd_size; // Module size // undeveloped //
|
|
||||||
/* 注意: os_reset.c / crt0.HYB.c / crt0.LTD.c 内で 0x01c0 ~ 0x01e0 のアドレスを
|
|
||||||
ハードコーディングしています。 これら8つのメンバのオフセットを変更しないで下さい。 */
|
|
||||||
|
|
||||||
// 0x01E0 - 0x01E8 for NITRO digest area offset & size
|
|
||||||
u32 nitro_digest_area_rom_offset;
|
|
||||||
u32 nitro_digest_area_size;
|
|
||||||
|
|
||||||
// 0x01E8 - 0x01F0 for TWL digest area offset & size
|
|
||||||
u32 twl_digest_area_rom_offset;
|
|
||||||
u32 twl_digest_area_size;
|
|
||||||
|
|
||||||
// 0x01F0 - 0x01F8 for FS digest table1 offset & size
|
|
||||||
u32 digest1_table_offset;
|
|
||||||
u32 digest1_table_size;
|
|
||||||
|
|
||||||
// 0x01F8 - 0x0200 for FS digest table1 offset
|
|
||||||
u32 digest2_table_offset;
|
|
||||||
u32 digest2_table_size;
|
|
||||||
|
|
||||||
// 0x0200 - 0x0208 for FS digest config parameters
|
|
||||||
u32 digest1_block_size;
|
|
||||||
u32 digest2_covered_digest1_num;
|
|
||||||
|
|
||||||
// 0x0208 - 0x0210 for Banner for TWL
|
|
||||||
u32 banner_twl_offset;
|
|
||||||
u32 banner_twl_size;
|
|
||||||
|
|
||||||
// 0x0210 - 0x0218 for TWL rom valid size
|
|
||||||
u32 twl_rom_valid_size; // ROM Original Size
|
|
||||||
u8 reserved_ltd_D[ 4 ];
|
|
||||||
|
|
||||||
// 0x0218 - 0x0220 for TWL ltd module param offset
|
|
||||||
u32 main_ltd_module_param_offset; // Offset for table of ARM9 ltd module parameters
|
|
||||||
u32 sub_ltd_module_param_offset; // Offset for table of ARM7 ltd module parameters
|
|
||||||
|
|
||||||
// 0x0220 - 0x0230 for AES target offset & size
|
|
||||||
u32 aes_target_rom_offset;
|
|
||||||
u32 aes_target_size;
|
|
||||||
u32 aes_target2_rom_offset; // 予約
|
|
||||||
u32 aes_target2_size; // 予約
|
|
||||||
|
|
||||||
// 0x0230 - 0x0238 for TitleID
|
|
||||||
union {
|
|
||||||
u64 titleID;
|
|
||||||
struct {
|
|
||||||
u8 titleID_Lo[ 4 ];
|
|
||||||
u32 titleID_Hi;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
/* 注意: os_reset.c / crt0.HYB.c / crt0.LTD.c 内で 0x0234 をハードコーディングしています。
|
|
||||||
titleID_Hi のオフセットを変更しないで下さい。 */
|
|
||||||
|
|
||||||
// 0x0238 - 0x0240 for Public & Private Save Data Size
|
|
||||||
u32 public_save_data_size;
|
|
||||||
u32 private_save_data_size;
|
|
||||||
|
|
||||||
// 0x0240 - 0x02f0 reserved.
|
|
||||||
u8 reserved_ltd_F[ 0x2f0 - 0x240 ];
|
|
||||||
|
|
||||||
// 0x02f0 - 0x0300 Parental Controls Rating Info
|
|
||||||
u8 ParentalControlsRatingInfo[ 0x10 ];
|
|
||||||
|
|
||||||
// 0x0300 - 0x0378 Rom Segment Digest
|
|
||||||
u8 main_static_digest[ DIGEST_SIZE_SHA1 ];
|
|
||||||
u8 sub_static_digest[ DIGEST_SIZE_SHA1 ];
|
|
||||||
u8 digest2_table_digest[ DIGEST_SIZE_SHA1 ];
|
|
||||||
u8 banner_twl_digest[ DIGEST_SIZE_SHA1 ];
|
|
||||||
u8 main_ltd_static_digest[ DIGEST_SIZE_SHA1 ];
|
|
||||||
u8 sub_ltd_static_digest[ DIGEST_SIZE_SHA1 ];
|
|
||||||
|
|
||||||
}
|
|
||||||
ROM_Header_Short;
|
|
||||||
|
|
||||||
typedef struct
|
|
||||||
{
|
|
||||||
struct ROM_Header_Short s;
|
|
||||||
|
|
||||||
////
|
|
||||||
//// EXTRA SYSTEM REGION
|
|
||||||
////
|
|
||||||
|
|
||||||
//
|
|
||||||
// 0x02f0 - 0x0e00 System Reserved
|
|
||||||
//
|
|
||||||
u8 reserved_D[4 * 1024 - sizeof(ROM_Header_Short) - sizeof(RomCertificate) - RSA_KEY_LENGTH ]; // Reserved D
|
|
||||||
|
|
||||||
//
|
|
||||||
// 0x0e00 - 0x0f80 ROM Certificate
|
|
||||||
//
|
|
||||||
RomCertificate certificate;
|
|
||||||
|
|
||||||
//
|
|
||||||
// 0x0f80 - 0x1000 ROM Header Signature
|
|
||||||
//
|
|
||||||
u8 signature[ RSA_KEY_LENGTH ]; // PKCS#1_v1.5の形式でフォーマットされたSignatureDataが、RSA暗号化された状態
|
|
||||||
|
|
||||||
//
|
|
||||||
// 0x01000 - 0x04000 System Reserved
|
|
||||||
//
|
|
||||||
u8 reserved_E[12 * 1024]; // Reserved E
|
|
||||||
|
|
||||||
}
|
|
||||||
ROM_Header; // 16KB
|
|
||||||
|
|
||||||
#endif
|
|
||||||
|
|||||||
@ -71,7 +71,7 @@ extern u32 UTL_CalcPCTLMasterKey( void ); //
|
|||||||
// アプリROMヘッダの要EULAフラグ取得
|
// アプリROMヘッダの要EULAフラグ取得
|
||||||
static inline BOOL UTL_IsROMHeaderEULARequired( void )
|
static inline BOOL UTL_IsROMHeaderEULARequired( void )
|
||||||
{
|
{
|
||||||
return (BOOL)SYSM_GetAppRomHeader()->agree_EULA;
|
return (BOOL)SYSM_GetAppRomHeader()->exFlags.agree_EULA;
|
||||||
}
|
}
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user