2025-09-26 11:57:18 -04:00
|
|
|
using System.Runtime.InteropServices;
|
|
|
|
|
|
2025-09-26 13:06:18 -04:00
|
|
|
namespace SabreTools.Data.Models.N3DS
|
2025-09-26 11:57:18 -04:00
|
|
|
{
|
|
|
|
|
/// <see href="https://www.3dbrew.org/wiki/NCSD#Development_Card_Info_Header_Extension"/>
|
|
|
|
|
[StructLayout(LayoutKind.Sequential)]
|
|
|
|
|
public sealed class DevelopmentCardInfoHeader
|
|
|
|
|
{
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// CardDeviceReserved1
|
|
|
|
|
/// </summary>
|
|
|
|
|
/// <remarks>0x200 bytes</remarks>
|
|
|
|
|
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 0x200)]
|
2025-10-30 20:44:16 -04:00
|
|
|
public byte[] CardDeviceReserved1 = new byte[0x200];
|
2025-09-26 11:57:18 -04:00
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// TitleKey
|
|
|
|
|
/// </summary>
|
|
|
|
|
/// <remarks>0x10 bytes</remarks>
|
|
|
|
|
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 0x10)]
|
2025-10-30 20:44:16 -04:00
|
|
|
public byte[] TitleKey = new byte[0x10];
|
2025-09-26 11:57:18 -04:00
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// CardDeviceReserved2
|
|
|
|
|
/// </summary>
|
|
|
|
|
/// <remarks>0x1BF0 bytes</remarks>
|
|
|
|
|
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 0x1BF0)]
|
2025-10-30 20:44:16 -04:00
|
|
|
public byte[] CardDeviceReserved2 = new byte[0x1BF0];
|
2025-09-26 11:57:18 -04:00
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// TestData
|
|
|
|
|
/// </summary>
|
2025-10-31 13:59:28 -04:00
|
|
|
public TestData TestData = new();
|
2025-09-26 11:57:18 -04:00
|
|
|
}
|
|
|
|
|
}
|