Files
SabreTools.Serialization/SabreTools.Data.Models/N3DS/ExeFSHeader.cs
Matt Nadareski 7689c6dd07 Libraries
This change looks dramatic, but it's just separating out the already-split namespaces into separate top-level folders. In theory, every single one could be built into their own Nuget package. `SabreTools.Serialization` still builds the normal Nuget package that is used by all other projects and includes all namespaces.
2026-03-21 16:26:56 -04:00

34 lines
1.3 KiB
C#

namespace SabreTools.Data.Models.N3DS
{
/// <summary>
/// ExeFS or Executable Filesystem contains information related to the
/// executable program, and is the part of the CXI format.
///
/// The ExeFS usually contains one or more of the following files:
/// - .code Contains the code binary, which can be optionally reverse-LZSS compressed via an exheader flag.
/// - logo Contains distribution licensing Binary data.
/// - banner Contains the banner which homemenu uses for this CXI.
/// - icon Contains the icon which homemenu displays for this CXI.
/// </summary>
/// <see href="https://www.3dbrew.org/wiki/ExeFS"/>
public sealed class ExeFSHeader
{
/// <summary>
/// File headers (10 headers maximum, 16 bytes each)
/// </summary>
public ExeFSFileHeader[] FileHeaders { get; set; } = [];
/// <summary>
/// Reserved
/// </summary>
/// <remarks>0x20 bytes</remarks>
public byte[] Reserved { get; set; } = new byte[0x20];
/// <summary>
/// File hashes (10 hashes maximum, 32 bytes each, one for each header)
/// </summary>
/// <remarks>SHA-256 hashes</remarks>
public byte[][] FileHashes { get; set; } = [];
}
}