namespace SabreTools.Data.Models.XDVDFS { /// /// Xbox DVD Layout Descriptor, present at sector 33 (offset 0x10800) of an Xbox DVD Filesystem /// Only present on XGD1 and XGD2 discs /// /// /// public class LayoutDescriptor { /// /// Xbox DVD Layout descriptor signature for 2nd sector start /// For XGD2, this should be the only non-zero field /// /// 24 bytes public byte[] Signature { get; set; } = new byte[24]; // LayoutDescriptorSignature /// /// Seemingly unused 8 bytes after the signature, should be zeroed /// /// 8 bytes public byte[] Unused8Bytes { get; set; } = new byte[8]; /// /// Version number of xblayout(?) tool used to master the filesystem /// Known versions are 1.0.x.1, x = 3926 to 5120 /// If zeroed, xblayout was not used /// /// 8 bytes public FourPartVersionType XBLayoutVersion { get; set; } = new(); /// /// Version number of xbpremaster(?) tool used to master the filesystem /// If zeroed, xbpremaster was not used /// /// 8 bytes public FourPartVersionType XBPremasterVersion { get; set; } = new(); /// /// Version number of xbgamedisc(?) tool used to master the filesystem /// The major version is set to [0x01, 0x02] which may not be a ushort ? /// Known versions are 513.0.x.1 (aka 2.1.0.x.1), x = 5233 to 5849 /// If zeroed, xbgamedisc was not used /// /// 8 bytes public FourPartVersionType XBGameDiscVersion { get; set; } = new(); /// /// Version number of other microsoft tool used to master the filesystem /// May be zeroed, not always present /// /// 8 bytes public FourPartVersionType XBOther1Version { get; set; } = new(); /// /// Version number of other microsoft tool used to master the filesystem /// May be zeroed, not always present /// /// 8 bytes public FourPartVersionType XBOther2Version { get; set; } = new(); /// /// Version number of other microsoft tool used to master the filesystem /// May be zeroed, not always present /// /// 8 bytes public FourPartVersionType XBOther3Version { get; set; } = new(); /// /// Padding the remainder of sector, should be zeroed /// /// 1968 bytes public byte[] Reserved { get; set; } = new byte[1968]; } }