44 lines
981 B
C++
44 lines
981 B
C++
|
|
#pragma once
|
||
|
|
|
||
|
|
#include <ctrff/helper.hpp>
|
||
|
|
#include <ctrff/pd_p_api.hpp>
|
||
|
|
#include <ctrff/smdh.hpp>
|
||
|
|
#include <pd.hpp>
|
||
|
|
|
||
|
|
namespace ctrff {
|
||
|
|
class NCCH : public BinFile {
|
||
|
|
public:
|
||
|
|
NCCH() {}
|
||
|
|
~NCCH() {}
|
||
|
|
|
||
|
|
PD::u8 Sig[0x100];
|
||
|
|
PD::u32 Magic;
|
||
|
|
PD::u32 ContentLen; // 1 (Media Unit) = 0x200 bytes
|
||
|
|
PD::u64 PartitionID;
|
||
|
|
PD::u16 MarkerCode;
|
||
|
|
PD::u16 Version;
|
||
|
|
PD::u32 Wtf;
|
||
|
|
PD::u64 ProgramID;
|
||
|
|
PD::u8 Reserved[0x10];
|
||
|
|
PD::u8 LogoHash[0x20]; // Firm 5.0.0-11+
|
||
|
|
PD::u8 ProdCode[0x10];
|
||
|
|
PD::u8 ExHeaderHash[0x20];
|
||
|
|
PD::u32 ExHeaderLen;
|
||
|
|
PD::u32 Reserved1;
|
||
|
|
PD::u64 Flags;
|
||
|
|
PD::u32 PlainRegionOff; // In Media Units
|
||
|
|
PD::u32 PlainRegionSize;
|
||
|
|
PD::u32 LogoRegionOff;
|
||
|
|
PD::u32 LogoRegionSize;
|
||
|
|
PD::u32 ExeFsOff;
|
||
|
|
PD::u32 ExeFsSize;
|
||
|
|
PD::u32 ExeFsHashRegionSize;
|
||
|
|
PD::u32 Reserved2;
|
||
|
|
PD::u32 RomFsOff;
|
||
|
|
PD::u32 RomFsSize;
|
||
|
|
PD::u32 RomFsHashRegionSize;
|
||
|
|
PD::u32 Reserved;
|
||
|
|
PD::u8 ExeFsSuperBlockHash[0x20];
|
||
|
|
PD::u8 RomFsSuperBlockHash[0x20];
|
||
|
|
};
|
||
|
|
} // namespace ctrff
|