mirror of
https://github.com/DarkStore-3DS/Project_CTR.git
synced 2026-07-05 00:39:04 +00:00
makerom v0.1
This commit is contained in:
@@ -0,0 +1,109 @@
|
||||
// Enums
|
||||
typedef enum
|
||||
{
|
||||
CIA_NO_NCCH0 = -1,
|
||||
CIA_INVALID_NCCH0 = -2,
|
||||
CIA_CONFILCTING_CONTENT_IDS = -3,
|
||||
CIA_BAD_VERSION = -4,
|
||||
} cia_errors;
|
||||
|
||||
// Structs
|
||||
typedef struct
|
||||
{
|
||||
u8 HdrSize[4];
|
||||
u8 Type[2];
|
||||
u8 Version[2];
|
||||
u8 CertChainSize[4];
|
||||
u8 TicketSize[4];
|
||||
u8 TitleMetaDataSize[4];
|
||||
u8 CXI_MetaSize[4];
|
||||
u8 ContentSize[8];
|
||||
u8 ContentIndex[0x2000];
|
||||
} CIA_Header;
|
||||
|
||||
typedef struct
|
||||
{
|
||||
u8 DependancyList[0x30*0x8];
|
||||
u8 Reserved0[0x180];
|
||||
u8 CoreVersion[4];
|
||||
u8 Reserved1[0xfc];
|
||||
} MetaData_Struct;
|
||||
|
||||
typedef struct
|
||||
{
|
||||
FILE *out;
|
||||
|
||||
u8 TitleID[8];
|
||||
u8 Title_type[4];
|
||||
u16 Version[3];
|
||||
|
||||
keys_struct *keys;
|
||||
|
||||
struct{
|
||||
u8 ca_crl_version;
|
||||
u8 signer_crl_version;
|
||||
} cert;
|
||||
|
||||
struct{
|
||||
u8 TicketIssuer[0x40];
|
||||
u8 ticket_format_ver;
|
||||
u8 TicketID[8];
|
||||
u8 DeviceID[8];
|
||||
u8 TicketVersion[3];
|
||||
u8 TitleKey[16];
|
||||
u8 UnknownDataType;
|
||||
} tik;
|
||||
|
||||
struct{
|
||||
u8 TMDIssuer[0x40];
|
||||
u8 tmd_format_ver;
|
||||
u8 TitleVersion[3];
|
||||
u8 SaveDataSize[4];
|
||||
u8 PrivSaveDataSize[4];
|
||||
u8 twl_flag;
|
||||
} tmd;
|
||||
|
||||
struct{
|
||||
u8 *content0;
|
||||
u64 content0_FileLen;
|
||||
bool IsCfa;
|
||||
bool KeyNotFound;
|
||||
bool EncryptContents;
|
||||
|
||||
FILE **ContentFilePtrs;
|
||||
u64 CCIContentOffsets[CCI_MAX_CONTENT];
|
||||
u16 ContentCount;
|
||||
u64 ContentSize[CIA_MAX_CONTENT];
|
||||
u64 ContentOffset[CIA_MAX_CONTENT];
|
||||
u16 ContentIndex[CIA_MAX_CONTENT];
|
||||
u16 ContentType[CIA_MAX_CONTENT];
|
||||
u32 ContentId[CIA_MAX_CONTENT];
|
||||
u8 ContentHash[CIA_MAX_CONTENT][0x20];
|
||||
|
||||
u8 ContentTitleId[CIA_MAX_CONTENT][8];
|
||||
u64 TotalContentSize;
|
||||
} content;
|
||||
|
||||
struct{
|
||||
COMPONENT_STRUCT Header;
|
||||
|
||||
u32 CertChainOffset;
|
||||
COMPONENT_STRUCT CertChain;
|
||||
|
||||
u32 TicketOffset;
|
||||
COMPONENT_STRUCT Ticket;
|
||||
|
||||
u32 TitleMetaDataOffset;
|
||||
COMPONENT_STRUCT TitleMetaData;
|
||||
|
||||
u32 CXI_MetaDataOffset;
|
||||
COMPONENT_STRUCT CXI_MetaData;
|
||||
|
||||
u64 ContentOffset;
|
||||
} CIA_Sections;
|
||||
|
||||
// Finish CIA data req.
|
||||
} cia_settings;
|
||||
|
||||
// Public Prototypes
|
||||
int build_CIA(user_settings *usrset);
|
||||
Reference in New Issue
Block a user