using System.Runtime.InteropServices; namespace SabreTools.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; /// /// 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; /// /// 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; /// /// Filled with 00 (0b00000000) bytes. /// /// 0x200 bytes [MarshalAs(UnmanagedType.ByValArray, SizeConst = 0x200)] public byte[]? Filled00; /// /// Filled with FF (0b11111111) bytes. /// /// 0x200 bytes [MarshalAs(UnmanagedType.ByValArray, SizeConst = 0x200)] public byte[]? FilledFF; /// /// Filled with 0F (0b00001111) bytes. /// /// 0x200 bytes [MarshalAs(UnmanagedType.ByValArray, SizeConst = 0x200)] public byte[]? Filled0F; /// /// Filled with F0 (0b11110000) bytes. /// /// 0x200 bytes [MarshalAs(UnmanagedType.ByValArray, SizeConst = 0x200)] public byte[]? FilledF0; /// /// Filled with 55 (0b01010101) bytes. /// /// 0x200 bytes [MarshalAs(UnmanagedType.ByValArray, SizeConst = 0x200)] public byte[]? Filled55; /// /// Filled with AA (0b10101010) bytes. /// /// 0x1FF bytes [MarshalAs(UnmanagedType.ByValArray, SizeConst = 0x1FF)] public byte[]? FilledAA; /// /// The final byte is 00 (0b00000000). /// public byte FinalByte; } }