mirror of
				https://github.com/PabloMK7/citra.git
				synced 2025-10-31 13:50:03 +00:00 
			
		
		
		
	Loader: Change NCCH header types to be explicitly little-endian
This commit is contained in:
		
							parent
							
								
									2706394384
								
							
						
					
					
						commit
						721475420d
					
				
					 2 changed files with 17 additions and 18 deletions
				
			
		|  | @ -128,9 +128,8 @@ ResultStatus AppLoader_NCCH::LoadExec() { | ||||||
|     if (ResultStatus::Success == ReadCode(code)) { |     if (ResultStatus::Success == ReadCode(code)) { | ||||||
|         std::string process_name = Common::StringFromFixedZeroTerminatedBuffer( |         std::string process_name = Common::StringFromFixedZeroTerminatedBuffer( | ||||||
|                 (const char*)exheader_header.codeset_info.name, 8); |                 (const char*)exheader_header.codeset_info.name, 8); | ||||||
|         u64 program_id = *reinterpret_cast<u64_le const*>(&ncch_header.program_id[0]); |  | ||||||
| 
 | 
 | ||||||
|         SharedPtr<CodeSet> codeset = CodeSet::Create(process_name, program_id); |         SharedPtr<CodeSet> codeset = CodeSet::Create(process_name, ncch_header.program_id); | ||||||
| 
 | 
 | ||||||
|         codeset->code.offset = 0; |         codeset->code.offset = 0; | ||||||
|         codeset->code.addr = exheader_header.codeset_info.text.address; |         codeset->code.addr = exheader_header.codeset_info.text.address; | ||||||
|  |  | ||||||
|  | @ -17,31 +17,31 @@ | ||||||
| 
 | 
 | ||||||
| struct NCCH_Header { | struct NCCH_Header { | ||||||
|     u8 signature[0x100]; |     u8 signature[0x100]; | ||||||
|     u32 magic; |     u32_le magic; | ||||||
|     u32 content_size; |     u32_le content_size; | ||||||
|     u8 partition_id[8]; |     u8 partition_id[8]; | ||||||
|     u16 maker_code; |     u16_le maker_code; | ||||||
|     u16 version; |     u16_le version; | ||||||
|     u8 reserved_0[4]; |     u8 reserved_0[4]; | ||||||
|     u64_le program_id; |     u64_le program_id; | ||||||
|     u8 reserved_1[0x10]; |     u8 reserved_1[0x10]; | ||||||
|     u8 logo_region_hash[0x20]; |     u8 logo_region_hash[0x20]; | ||||||
|     u8 product_code[0x10]; |     u8 product_code[0x10]; | ||||||
|     u8 extended_header_hash[0x20]; |     u8 extended_header_hash[0x20]; | ||||||
|     u32 extended_header_size; |     u32_le extended_header_size; | ||||||
|     u8 reserved_2[4]; |     u8 reserved_2[4]; | ||||||
|     u8 flags[8]; |     u8 flags[8]; | ||||||
|     u32 plain_region_offset; |     u32_le plain_region_offset; | ||||||
|     u32 plain_region_size; |     u32_le plain_region_size; | ||||||
|     u32 logo_region_offset; |     u32_le logo_region_offset; | ||||||
|     u32 logo_region_size; |     u32_le logo_region_size; | ||||||
|     u32 exefs_offset; |     u32_le exefs_offset; | ||||||
|     u32 exefs_size; |     u32_le exefs_size; | ||||||
|     u32 exefs_hash_region_size; |     u32_le exefs_hash_region_size; | ||||||
|     u8 reserved_3[4]; |     u8 reserved_3[4]; | ||||||
|     u32 romfs_offset; |     u32_le romfs_offset; | ||||||
|     u32 romfs_size; |     u32_le romfs_size; | ||||||
|     u32 romfs_hash_region_size; |     u32_le romfs_hash_region_size; | ||||||
|     u8 reserved_4[4]; |     u8 reserved_4[4]; | ||||||
|     u8 exefs_super_block_hash[0x20]; |     u8 exefs_super_block_hash[0x20]; | ||||||
|     u8 romfs_super_block_hash[0x20]; |     u8 romfs_super_block_hash[0x20]; | ||||||
|  | @ -110,7 +110,7 @@ struct ExHeader_StorageInfo { | ||||||
| 
 | 
 | ||||||
| struct ExHeader_ARM11_SystemLocalCaps { | struct ExHeader_ARM11_SystemLocalCaps { | ||||||
|     u64_le program_id; |     u64_le program_id; | ||||||
|     u32 core_version; |     u32_le core_version; | ||||||
|     u8 reserved_flags[2]; |     u8 reserved_flags[2]; | ||||||
|     union { |     union { | ||||||
|         u8 flags0; |         u8 flags0; | ||||||
|  |  | ||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue