diff --git a/include/ctrff/cia.hpp b/include/ctrff/cia.hpp new file mode 100644 index 0000000..6dca70e --- /dev/null +++ b/include/ctrff/cia.hpp @@ -0,0 +1,24 @@ +#pragma once + +#include +#include +#include +#include + +namespace ctrff { +class Cia : public BinFile { + public: + Cia() {} + ~Cia() {} + + PD::u32 HeaderSize; + PD::u16 Type; + PD::u16 Version; + PD::u32 CertChainSize; + PD::u32 TikSize; + PD::u32 TmdFileSize; + PD::u32 MetaSize; + PD::u64 ContentSize; + PD::u8 ContentIndex[0x2000]; +}; +} // namespace ctrff \ No newline at end of file diff --git a/include/ctrff/ncch.hpp b/include/ctrff/ncch.hpp new file mode 100644 index 0000000..5581f85 --- /dev/null +++ b/include/ctrff/ncch.hpp @@ -0,0 +1,44 @@ +#pragma once + +#include +#include +#include +#include + +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 \ No newline at end of file