using System.Runtime.InteropServices; namespace SabreTools.Data.Models.N3DS { /// [StructLayout(LayoutKind.Sequential, CharSet = CharSet.Ansi)] public sealed class SystemControlInfo { /// /// Application title (default is "CtrApp") /// /// 8 bytes [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 8)] public string ApplicationTitle = string.Empty; /// /// Reserved /// /// 5 bytes [MarshalAs(UnmanagedType.ByValArray, SizeConst = 5)] public byte[] Reserved1 = new byte[5]; /// /// Flag (bit 0: CompressExefsCode, bit 1: SDApplication) /// public byte Flag; /// /// Remaster version /// public ushort RemasterVersion; /// /// Text code set info /// public CodeSetInfo TextCodeSetInfo = new(); /// /// Stack size /// public uint StackSize; /// /// Read-only code set info /// public CodeSetInfo ReadOnlyCodeSetInfo = new(); /// /// Reserved /// public uint Reserved2; /// /// Data code set info /// public CodeSetInfo DataCodeSetInfo = new(); /// /// BSS size /// public uint BSSSize; /// /// Dependency module (program ID) list /// /// 48 entries [MarshalAs(UnmanagedType.ByValArray, SizeConst = 48)] public ulong[]? DependencyModuleList; /// /// SystemInfo /// public SystemInfo SystemInfo = new(); } }