diff --git a/Aaru.Decoders/Xbox/SS.cs b/Aaru.Decoders/Xbox/SS.cs index 98871aa27..b2c08dc09 100644 --- a/Aaru.Decoders/Xbox/SS.cs +++ b/Aaru.Decoders/Xbox/SS.cs @@ -77,7 +77,9 @@ public static class SS Unknown8 = new byte[16], Unknown9 = new byte[16], Unknown10 = new byte[303], - Unknown11 = new byte[104], + Unknown11 = new byte[103], + RangeVersion = response[1631], + RangeCount = response[1632], Extents = new SecuritySectorExtent[23], ExtentsCopy = new SecuritySectorExtent[23] }; @@ -110,7 +112,7 @@ public static class SS Array.Copy(response, 1120, ss.Unknown8, 0, 16); Array.Copy(response, 1180, ss.Unknown9, 0, 16); Array.Copy(response, 1208, ss.Unknown10, 0, 303); - Array.Copy(response, 1528, ss.Unknown11, 0, 104); + Array.Copy(response, 1528, ss.Unknown11, 0, 103); for(var i = 0; i < 23; i++) { @@ -354,60 +356,64 @@ public static class SS public struct SecuritySector { /// Byte 0, bits 7 to 4 Disk category field - public DiskCategory DiskCategory; + public DiskCategory DiskCategory; /// Byte 0, bits 3 to 0 Media version - public byte PartVersion; + public byte PartVersion; /// Byte 1, bits 7 to 4 120mm if 0, 80mm if 1. If UMD (60mm) 0 also. Reserved rest of values - public DVDSize DiscSize; + public DVDSize DiscSize; /// Byte 1, bits 3 to 0 Maximum data rate - public MaximumRateField MaximumRate; + public MaximumRateField MaximumRate; /// Byte 2, bit 7 Reserved - public bool Reserved3; + public bool Reserved3; /// Byte 2, bits 6 to 5 Number of layers - public byte Layers; + public byte Layers; /// Byte 2, bit 4 Track path - public bool TrackPath; + public bool TrackPath; /// Byte 2, bits 3 to 0 Layer type public LayerTypeFieldMask LayerType; /// Byte 3, bits 7 to 4 Linear density field public LinearDensityField LinearDensity; /// Byte 3, bits 3 to 0 Track density field - public TrackDensityField TrackDensity; + public TrackDensityField TrackDensity; /// Bytes 4 to 7 PSN where Data Area starts - public uint DataAreaStartPSN; + public uint DataAreaStartPSN; /// Bytes 8 to 11 PSN where Data Area ends - public uint DataAreaEndPSN; + public uint DataAreaEndPSN; /// Bytes 12 to 15 PSN where Data Area ends in Layer 0 - public uint Layer0EndPSN; + public uint Layer0EndPSN; /// Byte 27 Always 0x06 on XGD3 - public byte Unknown1; + public byte Unknown1; /// Bytes 256 to 283 Unknown, XGD2 and XGD3 - public byte[] Unknown2; + public byte[] Unknown2; /// Bytes 284 to 719 Unknown, XGD3 - public byte[] Unknown3; + public byte[] Unknown3; /// Bytes 720 to 723 Unknown - public byte[] Unknown4; + public byte[] Unknown4; /// Bytes 724 to 767 Unknown, XGD3 - public byte[] Unknown5; + public byte[] Unknown5; /// Byte 768 Version of challenge table - public byte ChallengeTableVersion; + public byte ChallengeTableVersion; /// Byte 769 Number of challenge entries - public byte NoChallengeEntries; + public byte NoChallengeEntries; /// Bytes 770 to 1022 Unknown - public ChallengeEntry[] ChallengeEntries; + public ChallengeEntry[] ChallengeEntries; /// Byte 1023 Unknown - public byte Unknown6; + public byte Unknown6; /// Bytes 1052 to 1099 Unknown, XGD1 only - public byte[] Unknown7; + public byte[] Unknown7; /// Bytes 1120 to 1135 Unknown, XGD2 and XGD3 - public byte[] Unknown8; + public byte[] Unknown8; /// Bytes 1180 to 1195 Unknown - public byte[] Unknown9; + public byte[] Unknown9; /// Bytes 1208 to 1511 Unknown - public byte[] Unknown10; - /// Bytes 1528 to 1632 - public byte[] Unknown11; + public byte[] Unknown10; + /// Bytes 1528 to 1630 + public byte[] Unknown11; + /// Byte 1631 Range version + public byte RangeVersion; + /// Byte 1632 Number of valid security extent ranges + public byte RangeCount; /// Bytes 1633 to 1839 Security extents, 23 entries of 9 bytes public SecuritySectorExtent[] Extents; /// Bytes 1840 to 2047 Copy of the security extents, 23 entries of 9 bytes