diff options
| author | 2015-10-10 21:51:06 -0400 | |
|---|---|---|
| committer | 2015-10-10 22:35:22 -0400 | |
| commit | 721475420dd2863c2cb9142f1fc3f89e2a9d46d5 (patch) | |
| tree | 7522160ba1989e2c1a784cdf4298b6cba4f3f4f6 /src/core/loader | |
| parent | Loader: Implement encryption check (diff) | |
| download | yuzu-721475420dd2863c2cb9142f1fc3f89e2a9d46d5.tar.gz yuzu-721475420dd2863c2cb9142f1fc3f89e2a9d46d5.tar.xz yuzu-721475420dd2863c2cb9142f1fc3f89e2a9d46d5.zip | |
Loader: Change NCCH header types to be explicitly little-endian
Diffstat (limited to 'src/core/loader')
| -rw-r--r-- | src/core/loader/ncch.cpp | 3 | ||||
| -rw-r--r-- | src/core/loader/ncch.h | 32 |
2 files changed, 17 insertions, 18 deletions
diff --git a/src/core/loader/ncch.cpp b/src/core/loader/ncch.cpp index c67d25b55..68b3f546e 100644 --- a/src/core/loader/ncch.cpp +++ b/src/core/loader/ncch.cpp | |||
| @@ -128,9 +128,8 @@ ResultStatus AppLoader_NCCH::LoadExec() { | |||
| 128 | if (ResultStatus::Success == ReadCode(code)) { | 128 | if (ResultStatus::Success == ReadCode(code)) { |
| 129 | std::string process_name = Common::StringFromFixedZeroTerminatedBuffer( | 129 | std::string process_name = Common::StringFromFixedZeroTerminatedBuffer( |
| 130 | (const char*)exheader_header.codeset_info.name, 8); | 130 | (const char*)exheader_header.codeset_info.name, 8); |
| 131 | u64 program_id = *reinterpret_cast<u64_le const*>(&ncch_header.program_id[0]); | ||
| 132 | 131 | ||
| 133 | SharedPtr<CodeSet> codeset = CodeSet::Create(process_name, program_id); | 132 | SharedPtr<CodeSet> codeset = CodeSet::Create(process_name, ncch_header.program_id); |
| 134 | 133 | ||
| 135 | codeset->code.offset = 0; | 134 | codeset->code.offset = 0; |
| 136 | codeset->code.addr = exheader_header.codeset_info.text.address; | 135 | codeset->code.addr = exheader_header.codeset_info.text.address; |
diff --git a/src/core/loader/ncch.h b/src/core/loader/ncch.h index fd7c65814..ca6772a78 100644 --- a/src/core/loader/ncch.h +++ b/src/core/loader/ncch.h | |||
| @@ -17,31 +17,31 @@ | |||
| 17 | 17 | ||
| 18 | struct NCCH_Header { | 18 | struct NCCH_Header { |
| 19 | u8 signature[0x100]; | 19 | u8 signature[0x100]; |
| 20 | u32 magic; | 20 | u32_le magic; |
| 21 | u32 content_size; | 21 | u32_le content_size; |
| 22 | u8 partition_id[8]; | 22 | u8 partition_id[8]; |
| 23 | u16 maker_code; | 23 | u16_le maker_code; |
| 24 | u16 version; | 24 | u16_le version; |
| 25 | u8 reserved_0[4]; | 25 | u8 reserved_0[4]; |
| 26 | u64_le program_id; | 26 | u64_le program_id; |
| 27 | u8 reserved_1[0x10]; | 27 | u8 reserved_1[0x10]; |
| 28 | u8 logo_region_hash[0x20]; | 28 | u8 logo_region_hash[0x20]; |
| 29 | u8 product_code[0x10]; | 29 | u8 product_code[0x10]; |
| 30 | u8 extended_header_hash[0x20]; | 30 | u8 extended_header_hash[0x20]; |
| 31 | u32 extended_header_size; | 31 | u32_le extended_header_size; |
| 32 | u8 reserved_2[4]; | 32 | u8 reserved_2[4]; |
| 33 | u8 flags[8]; | 33 | u8 flags[8]; |
| 34 | u32 plain_region_offset; | 34 | u32_le plain_region_offset; |
| 35 | u32 plain_region_size; | 35 | u32_le plain_region_size; |
| 36 | u32 logo_region_offset; | 36 | u32_le logo_region_offset; |
| 37 | u32 logo_region_size; | 37 | u32_le logo_region_size; |
| 38 | u32 exefs_offset; | 38 | u32_le exefs_offset; |
| 39 | u32 exefs_size; | 39 | u32_le exefs_size; |
| 40 | u32 exefs_hash_region_size; | 40 | u32_le exefs_hash_region_size; |
| 41 | u8 reserved_3[4]; | 41 | u8 reserved_3[4]; |
| 42 | u32 romfs_offset; | 42 | u32_le romfs_offset; |
| 43 | u32 romfs_size; | 43 | u32_le romfs_size; |
| 44 | u32 romfs_hash_region_size; | 44 | u32_le romfs_hash_region_size; |
| 45 | u8 reserved_4[4]; | 45 | u8 reserved_4[4]; |
| 46 | u8 exefs_super_block_hash[0x20]; | 46 | u8 exefs_super_block_hash[0x20]; |
| 47 | u8 romfs_super_block_hash[0x20]; | 47 | u8 romfs_super_block_hash[0x20]; |
| @@ -110,7 +110,7 @@ struct ExHeader_StorageInfo { | |||
| 110 | 110 | ||
| 111 | struct ExHeader_ARM11_SystemLocalCaps { | 111 | struct ExHeader_ARM11_SystemLocalCaps { |
| 112 | u64_le program_id; | 112 | u64_le program_id; |
| 113 | u32 core_version; | 113 | u32_le core_version; |
| 114 | u8 reserved_flags[2]; | 114 | u8 reserved_flags[2]; |
| 115 | union { | 115 | union { |
| 116 | u8 flags0; | 116 | u8 flags0; |