using System.Runtime.InteropServices; namespace SabreTools.Data.Models.N3DS { /// /// The test data is the same one encountered in development DS/DSi cartridges. /// /// [StructLayout(LayoutKind.Sequential)] public sealed class TestData { /// /// The bytes FF 00 FF 00 AA 55 AA 55. /// /// 8 bytes [MarshalAs(UnmanagedType.ByValArray, SizeConst = 8)] public byte[] Signature = new byte[8]; /// /// An ascending byte sequence equal to the offset mod 256 (08 09 0A ... FE FF 00 01 ... FF). /// /// 0x1F8 bytes [MarshalAs(UnmanagedType.ByValArray, SizeConst = 0x1F8)] public byte[] AscendingByteSequence = new byte[0x1F8]; /// /// A descending byte sequence equal to 255 minus the offset mod 256 (FF FE FD ... 00 FF DE ... 00). /// /// 0x200 bytes [MarshalAs(UnmanagedType.ByValArray, SizeConst = 0x200)] public byte[] DescendingByteSequence = new byte[0x200]; /// /// Filled with 00 (0b00000000) bytes. /// /// 0x200 bytes [MarshalAs(UnmanagedType.ByValArray, SizeConst = 0x200)] public byte[] Filled00 = new byte[0x200]; /// /// Filled with FF (0b11111111) bytes. /// /// 0x200 bytes [MarshalAs(UnmanagedType.ByValArray, SizeConst = 0x200)] public byte[] FilledFF = new byte[0x200]; /// /// Filled with 0F (0b00001111) bytes. /// /// 0x200 bytes [MarshalAs(UnmanagedType.ByValArray, SizeConst = 0x200)] public byte[] Filled0F = new byte[0x200]; /// /// Filled with F0 (0b11110000) bytes. /// /// 0x200 bytes [MarshalAs(UnmanagedType.ByValArray, SizeConst = 0x200)] public byte[] FilledF0 = new byte[0x200]; /// /// Filled with 55 (0b01010101) bytes. /// /// 0x200 bytes [MarshalAs(UnmanagedType.ByValArray, SizeConst = 0x200)] public byte[] Filled55 = new byte[0x200]; /// /// Filled with AA (0b10101010) bytes. /// /// 0x1FF bytes [MarshalAs(UnmanagedType.ByValArray, SizeConst = 0x1FF)] public byte[] FilledAA = new byte[0x1FF]; /// /// The final byte is 00 (0b00000000). /// public byte FinalByte; } }