namespace SabreTools.Models.Nitro { /// /// Nintendo DSi extended cart header /// /// public sealed class ExtendedDSiHeader { /// /// Global MBK1..MBK5 Settings /// public uint[]? GlobalMBK15Settings { get; set; } /// /// Local MBK6..MBK8 Settings for ARM9 /// public uint[]? LocalMBK68SettingsARM9 { get; set; } /// /// Local MBK6..MBK8 Settings for ARM7 /// public uint[]? LocalMBK68SettingsARM7 { get; set; } /// /// Global MBK9 Setting /// public uint GlobalMBK9Setting { get; set; } /// /// Region Flags /// public uint RegionFlags { get; set; } /// /// Access control /// public uint AccessControl { get; set; } /// /// ARM7 SCFG EXT mask (controls which devices to enable) /// public uint ARM7SCFGEXTMask { get; set; } /// /// Reserved/flags? When bit2 of byte 0x1bf is set, usage of banner.sav from the title data dir is enabled.(additional banner data) /// public uint ReservedFlags { get; set; } /// /// ARM9i rom offset /// public uint ARM9iRomOffset { get; set; } /// /// Reserved /// public uint Reserved3 { get; set; } /// /// ARM9i load address /// public uint ARM9iLoadAddress { get; set; } /// /// ARM9i size { get; set; } /// public uint ARM9iSize { get; set; } /// /// ARM7i rom offset /// public uint ARM7iRomOffset { get; set; } /// /// Pointer to base address where various structures and parameters are passed to the title - what is that??? /// public uint Reserved4 { get; set; } /// /// ARM7i load address /// public uint ARM7iLoadAddress { get; set; } /// /// ARM7i size { get; set; } /// public uint ARM7iSize { get; set; } /// /// Digest NTR region offset /// public uint DigestNTRRegionOffset { get; set; } /// /// Digest NTR region length /// public uint DigestNTRRegionLength { get; set; } // /// Digest TWL region offset /// public uint DigestTWLRegionOffset { get; set; } /// /// Digest TWL region length /// public uint DigestTWLRegionLength { get; set; } // /// Digest Sector Hashtable region offset /// public uint DigestSectorHashtableRegionOffset { get; set; } /// /// Digest Sector Hashtable region length /// public uint DigestSectorHashtableRegionLength { get; set; } // /// Digest Block Hashtable region offset /// public uint DigestBlockHashtableRegionOffset { get; set; } /// /// Digest Block Hashtable region length /// public uint DigestBlockHashtableRegionLength { get; set; } /// /// Digest Sector size /// public uint DigestSectorSize { get; set; } /// /// Digeset Block Sectorount /// public uint DigestBlockSectorCount { get; set; } /// /// Icon Banner Size (usually 0x23C0) /// public uint IconBannerSize { get; set; } /// /// Unknown (used by DSi) /// public uint Unknown1 { get; set; } /// /// NTR+TWL region ROM size (total size including DSi area) /// public uint NTRTWLRegionRomSize { get; set; } /// /// Unknown (used by DSi) /// public byte[]? Unknown2 { get; set; } /// /// Modcrypt area 1 offset /// public uint ModcryptArea1Offset { get; set; } /// /// Modcrypt area 1 size /// public uint ModcryptArea1Size { get; set; } /// /// Modcrypt area 2 offset /// public uint ModcryptArea2Offset { get; set; } /// /// Modcrypt area 2 size /// public uint ModcryptArea2Size { get; set; } /// /// Title ID /// public byte[]? TitleID { get; set; } /// /// DSiWare: "public.sav" size /// public uint DSiWarePublicSavSize { get; set; } /// /// DSiWare: "private.sav" size /// public uint DSiWarePrivateSavSize { get; set; } /// /// Reserved (zero) /// public byte[]? ReservedZero { get; set; } /// /// Unknown (used by DSi) /// public byte[]? Unknown3 { get; set; } /// /// ARM9 (with encrypted secure area) SHA1 HMAC hash /// public byte[]? ARM9WithSecureAreaSHA1HMACHash { get; set; } /// /// ARM7 SHA1 HMAC hash /// public byte[]? ARM7SHA1HMACHash { get; set; } /// /// Digest master SHA1 HMAC hash /// public byte[]? DigestMasterSHA1HMACHash { get; set; } /// /// Banner SHA1 HMAC hash /// public byte[]? BannerSHA1HMACHash { get; set; } /// /// ARM9i (decrypted) SHA1 HMAC hash /// public byte[]? ARM9iDecryptedSHA1HMACHash { get; set; } /// /// ARM7i (decrypted) SHA1 HMAC hash /// public byte[]? ARM7iDecryptedSHA1HMACHash { get; set; } /// /// Reserved /// public byte[]? Reserved5 { get; set; } /// /// ARM9 (without secure area) SHA1 HMAC hash /// public byte[]? ARM9NoSecureAreaSHA1HMACHash { get; set; } /// /// Reserved /// public byte[]? Reserved6 { get; set; } /// /// Reserved and unchecked region, always zero. Used for passing arguments in debug environment. /// public byte[]? ReservedAndUnchecked { get; set; } /// /// RSA signature (the first 0xE00 bytes of the header are signed with an 1024-bit RSA signature). /// public byte[]? RSASignature { get; set; } } }