namespace SabreTools.Models.Nitro { /// /// Nintendo DS / DSi cartridge header /// /// public sealed class CommonHeader { /// /// Game Title /// #if NET48 public string GameTitle { get; set; } #else public string? GameTitle { get; set; } #endif /// /// Gamecode /// public uint GameCode { get; set; } /// /// Makercode /// #if NET48 public string MakerCode { get; set; } #else public string? MakerCode { get; set; } #endif /// /// Unitcode /// public Unitcode UnitCode { get; set; } /// /// Encryption seed select (device code. 0 = normal) /// public byte EncryptionSeedSelect { get; set; } /// /// Devicecapacity /// public byte DeviceCapacity { get; set; } /// /// Reserved /// #if NET48 public byte[] Reserved1 { get; set; } #else public byte[]? Reserved1 { get; set; } #endif /// /// Game Revision (used by DSi titles) /// public ushort GameRevision { get; set; } /// /// ROM Version /// public byte RomVersion { get; set; } /// /// Internal flags, (Bit2: Autostart) /// public byte InternalFlags { get; set; } /// /// ARM9 rom offset /// public uint ARM9RomOffset { get; set; } /// /// ARM9 entry address /// public uint ARM9EntryAddress { get; set; } /// /// ARM9 load address /// public uint ARM9LoadAddress { get; set; } /// /// ARM9 size /// public uint ARM9Size { get; set; } /// /// ARM7 rom offset /// public uint ARM7RomOffset { get; set; } /// /// ARM7 entry address /// public uint ARM7EntryAddress { get; set; } /// /// ARM7 load address /// public uint ARM7LoadAddress { get; set; } /// /// ARM7 size /// public uint ARM7Size { get; set; } /// /// File Name Table (FNT) offset /// public uint FileNameTableOffset { get; set; } /// /// File Name Table (FNT) length /// public uint FileNameTableLength { get; set; } /// /// File Allocation Table (FNT) offset /// public uint FileAllocationTableOffset { get; set; } /// /// File Allocation Table (FNT) length /// public uint FileAllocationTableLength { get; set; } /// /// File Name Table (FNT) offset /// public uint ARM9OverlayOffset { get; set; } /// /// File Name Table (FNT) length /// public uint ARM9OverlayLength { get; set; } /// /// File Name Table (FNT) offset /// public uint ARM7OverlayOffset { get; set; } /// /// File Name Table (FNT) length /// public uint ARM7OverlayLength { get; set; } /// /// Normal card control register settings (0x00416657 for OneTimePROM) /// public uint NormalCardControlRegisterSettings { get; set; } /// /// Secure card control register settings (0x081808F8 for OneTimePROM) /// public uint SecureCardControlRegisterSettings { get; set; } /// /// Icon Banner offset (NDSi same as NDS, but with new extra entries) /// public uint IconBannerOffset { get; set; } /// /// Secure area (2K) CRC /// public ushort SecureAreaCRC { get; set; } /// /// Secure transfer timeout (0x0D7E for OneTimePROM) /// public ushort SecureTransferTimeout { get; set; } /// /// ARM9 autoload /// public uint ARM9Autoload { get; set; } /// /// ARM7 autoload /// public uint ARM7Autoload { get; set; } /// /// Secure disable /// #if NET48 public byte[] SecureDisable { get; set; } #else public byte[]? SecureDisable { get; set; } #endif /// /// NTR region ROM size (excluding DSi area) /// public uint NTRRegionRomSize { get; set; } /// /// Header size /// public uint HeaderSize { get; set; } /// ///Reserved (0x88, 0x8C, 0x90 = Unknown, used by DSi) /// #if NET48 public byte[] Reserved2 { get; set; } #else public byte[]? Reserved2 { get; set; } #endif /// /// Nintendo Logo /// #if NET48 public byte[] NintendoLogo { get; set; } #else public byte[]? NintendoLogo { get; set; } #endif /// /// Nintendo Logo CRC /// public ushort NintendoLogoCRC { get; set; } /// /// Header CRC /// public ushort HeaderCRC { get; set; } /// /// Debugger reserved /// #if NET48 public byte[] DebuggerReserved { get; set; } #else public byte[]? DebuggerReserved { get; set; } #endif } }