namespace SabreTools.Models.IRD { /// /// public class File { /// /// "3IRD" /// public byte[]? Magic { get; set; } /// /// Version /// /// Versions 6 - 9 are accepted public byte Version { get; set; } /// /// The same value stored in PARAM.SFO / TITLE_ID /// /// 9 bytes, ASCII, stored without dashes public string? TitleID { get; set; } /// /// Number of bytes that follow containing the title /// public byte TitleLength { get; set; } /// /// The same value stored in PARAM.SFO / TITLE /// /// bytes, ASCII public string? Title { get; set; } /// /// The same value stored in PARAM.SFO / PS3_SYSTEM_VER /// /// 4 bytes, ASCII, missing uses "0000" public string? SystemVersion { get; set; } /// /// The same value stored in PARAM.SFO / VERSION /// /// 5 bytes, ASCII public string? GameVersion { get; set; } /// /// The same value stored in PARAM.SFO / APP_VER /// /// 5 bytes, ASCII public string? AppVersion { get; set; } /// /// Length of the gzip-compressed header data /// public uint HeaderLength { get; set; } /// /// Gzip-compressed header data /// public byte[]? Header { get; set; } /// /// Length of the gzip-compressed footer data /// public uint FooterLength { get; set; } /// /// Gzip-compressed footer data /// public byte[]? Footer { get; set; } /// /// Number of complete regions in the image /// public byte RegionCount { get; set; } /// /// MD5 hashes for all complete regions in the image /// /// regions, 16-bytes per hash public byte[][]? RegionHashes { get; set; } /// /// Number of decrypted files in the image /// public uint FileCount { get; set; } /// /// Starting sector for each decrypted file /// /// files, alternating with each entry public ulong[]? FileKeys { get; set; } /// /// MD5 hashes for all decrypted files in the image /// /// files, 16-bytes per hash, alternating with each entry public byte[][]? FileHashes { get; set; } /// /// Extra Config, usually 0x0000 /// public ushort ExtraConfig { get; set; } /// /// Attachments, usually 0x0000 /// public ushort Attachments { get; set; } /// /// D1 key /// /// 16 bytes public byte[]? Data1Key { get; set; } /// /// D2 key /// /// 16 bytes public byte[]? Data2Key { get; set; } /// /// Uncompressed PIC data /// /// 115 bytes, before D1/D2 keys on version 9 public byte[]? PIC { get; set; } /// /// Unique Identifier /// /// Not present on version 6 and prior, after AppVersion on version 7 public uint UID { get; set; } /// /// IRD content CRC /// public uint CRC { get; set; } } }