mirror of
https://github.com/SabreTools/SabreTools.Serialization.git
synced 2026-04-23 22:59:48 +00:00
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.
34 lines
1.3 KiB
C#
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; } = [];
|
|
}
|
|
}
|