Files
SabreTools.Serialization/SabreTools.Data.Models/Xbox/XeMID.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

68 lines
2.4 KiB
C#

namespace SabreTools.Data.Models.Xbox
{
/// <summary>
/// Contains information specific to an XGD disc
/// </summary>
/// <remarks>
/// XGD2/3 XeMID Format Information:
///
/// AABCCCDDEFFGHH(IIIIIIII)
/// - AA => The two-ASCII-character publisher identifier (see Constants.Publishers for details)
/// - B => Platform identifier; 2 indicates Xbox 360.
/// - CCC => Game ID
/// - DD => SKU number (unique per SKU of a title)
/// - E => Region identifier (see Constants.Regions for details)
/// - FF => Base version; usually starts at 01 (can be 1 or 2 characters)
/// - G => Media type identifier (see Constants.MediaSubtypes for details)
/// - HH => Disc number stored in [disc number][total discs] format
/// - IIIIIIII => 8-hex-digit certification submission identifier; usually on test discs only
/// </remarks>
public class XeMID
{
/// <summary>
/// 2-character publisher identifier
/// </summary>
public string PublisherIdentifier { get; set; } = string.Empty;
/// <summary>
/// 1-character Platform disc is made for, 2 indicates Xbox 360
/// </summary>
public char PlatformIdentifier { get; set; }
/// <summary>
/// 3-character Game ID
/// </summary>
public string GameID { get; set; } = string.Empty;
/// <summary>
/// 2-character Title-specific SKU
/// </summary>
public string SKU { get; set; } = string.Empty;
/// <summary>
/// 1-character Region identifier character
/// </summary>
public char RegionIdentifier { get; set; }
/// <summary>
/// 2-character Base version of executables, usually starts at 01
/// </summary>
public string BaseVersion { get; set; } = string.Empty;
/// <summary>
/// 1-character Media subtype identifier
/// </summary>
public char MediaSubtypeIdentifier { get; set; }
/// <summary>
/// 2-character Disc number stored in [disc number][total discs] format
/// </summary>
public string DiscNumberIdentifier { get; set; } = string.Empty;
/// <summary>
/// 8-hex-digit certification submission identifier; usually on test discs only
/// </summary>
public string CertificationSubmissionIdentifier { get; set; } = string.Empty;
}
}