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();
}
}