From a9f937baa3e5dd35a08187fe5170176abe859c8c Mon Sep 17 00:00:00 2001 From: Matt Nadareski Date: Tue, 17 Dec 2024 22:38:57 -0500 Subject: [PATCH] Find remaining non-explicit endinaness calls --- .../Deserializers/AACS.cs | 18 +-- SabreTools.Serialization/Deserializers/BSP.cs | 2 +- SabreTools.Serialization/Deserializers/CFB.cs | 2 +- SabreTools.Serialization/Deserializers/IRD.cs | 12 +- .../Deserializers/InstallShieldArchiveV3.cs | 6 +- .../Deserializers/LZKWAJ.cs | 22 +-- .../Deserializers/LZQBasic.cs | 2 +- .../Deserializers/LZSZDD.cs | 2 +- .../Deserializers/MicrosoftCabinet.cs | 46 +++--- .../Deserializers/N3DS.cs | 6 +- .../Deserializers/Nitro.cs | 2 +- .../Deserializers/PKZIP.cs | 114 +++++++------- .../Deserializers/PlayJAudio.cs | 90 +++++------ .../Deserializers/PlayJPlaylist.cs | 2 +- SabreTools.Serialization/Deserializers/SGA.cs | 144 +++++++++--------- .../Deserializers/VBSP.cs | 56 +++---- SabreTools.Serialization/Deserializers/XZP.cs | 6 +- .../Extensions.PortableExecutable.cs | 32 ++-- .../Wrappers/PortableExecutable.cs | 2 +- 19 files changed, 283 insertions(+), 283 deletions(-) diff --git a/SabreTools.Serialization/Deserializers/AACS.cs b/SabreTools.Serialization/Deserializers/AACS.cs index 4197e8b8..09a4d7d3 100644 --- a/SabreTools.Serialization/Deserializers/AACS.cs +++ b/SabreTools.Serialization/Deserializers/AACS.cs @@ -97,7 +97,7 @@ namespace SabreTools.Serialization.Deserializers var obj = new CopyrightRecord(); obj.RecordType = (RecordType)data.ReadByteValue(); - obj.RecordLength = data.ReadUInt24(); + obj.RecordLength = data.ReadUInt24LittleEndian(); if (obj.RecordLength > 4) { byte[] copyright = data.ReadBytes((int)(obj.RecordLength - 4)); @@ -135,7 +135,7 @@ namespace SabreTools.Serialization.Deserializers var obj = new DriveRevocationListRecord(); obj.RecordType = (RecordType)data.ReadByteValue(); - obj.RecordLength = data.ReadUInt24(); + obj.RecordLength = data.ReadUInt24LittleEndian(); obj.TotalNumberOfEntries = data.ReadUInt32BigEndian(); // Try to parse the signature blocks @@ -191,7 +191,7 @@ namespace SabreTools.Serialization.Deserializers var obj = new EndOfMediaKeyBlockRecord(); obj.RecordType = (RecordType)data.ReadByteValue(); - obj.RecordLength = data.ReadUInt24(); + obj.RecordLength = data.ReadUInt24LittleEndian(); if (obj.RecordLength > 4) obj.SignatureData = data.ReadBytes((int)(obj.RecordLength - 4)); @@ -211,7 +211,7 @@ namespace SabreTools.Serialization.Deserializers var obj = new ExplicitSubsetDifferenceRecord(); obj.RecordType = (RecordType)data.ReadByteValue(); - obj.RecordLength = data.ReadUInt24(); + obj.RecordLength = data.ReadUInt24LittleEndian(); // Try to parse the subset differences var subsetDifferences = new List(); @@ -259,7 +259,7 @@ namespace SabreTools.Serialization.Deserializers var obj = new HostRevocationListRecord(); obj.RecordType = (RecordType)data.ReadByteValue(); - obj.RecordLength = data.ReadUInt24(); + obj.RecordLength = data.ReadUInt24LittleEndian(); obj.TotalNumberOfEntries = data.ReadUInt32BigEndian(); // Try to parse the signature blocks @@ -317,7 +317,7 @@ namespace SabreTools.Serialization.Deserializers var obj = new MediaKeyDataRecord(); obj.RecordType = (RecordType)data.ReadByteValue(); - obj.RecordLength = data.ReadUInt24(); + obj.RecordLength = data.ReadUInt24LittleEndian(); // Try to parse the media keys var mediaKeys = new List(); @@ -361,7 +361,7 @@ namespace SabreTools.Serialization.Deserializers var obj = new SubsetDifferenceIndexRecord(); obj.RecordType = (RecordType)data.ReadByteValue(); - obj.RecordLength = data.ReadUInt24(); + obj.RecordLength = data.ReadUInt24LittleEndian(); obj.Span = data.ReadUInt32BigEndian(); // Try to parse the offsets @@ -388,7 +388,7 @@ namespace SabreTools.Serialization.Deserializers var obj = new TypeAndVersionRecord(); obj.RecordType = (RecordType)data.ReadByteValue(); - obj.RecordLength = data.ReadUInt24(); + obj.RecordLength = data.ReadUInt24LittleEndian(); obj.MediaKeyBlockType = (MediaKeyBlockType)data.ReadUInt32BigEndian(); obj.VersionNumber = data.ReadUInt32BigEndian(); @@ -405,7 +405,7 @@ namespace SabreTools.Serialization.Deserializers var obj = new VerifyMediaKeyRecord(); obj.RecordType = (RecordType)data.ReadByteValue(); - obj.RecordLength = data.ReadUInt24(); + obj.RecordLength = data.ReadUInt24LittleEndian(); obj.CiphertextValue = data.ReadBytes(0x10); return obj; diff --git a/SabreTools.Serialization/Deserializers/BSP.cs b/SabreTools.Serialization/Deserializers/BSP.cs index b68fc348..22469de6 100644 --- a/SabreTools.Serialization/Deserializers/BSP.cs +++ b/SabreTools.Serialization/Deserializers/BSP.cs @@ -485,7 +485,7 @@ namespace SabreTools.Serialization.Deserializers { var lump = new VisibilityLump(); - lump.NumClusters = data.ReadInt32(); + lump.NumClusters = data.ReadInt32LittleEndian(); // BSP29 has an incompatible value here int bytesNeeded = lump.NumClusters * 8; diff --git a/SabreTools.Serialization/Deserializers/CFB.cs b/SabreTools.Serialization/Deserializers/CFB.cs index 398a58c4..7e22fe77 100644 --- a/SabreTools.Serialization/Deserializers/CFB.cs +++ b/SabreTools.Serialization/Deserializers/CFB.cs @@ -317,7 +317,7 @@ namespace SabreTools.Serialization.Deserializers for (int i = 0; i < sectorNumbers.Length; i++) { - sectorNumbers[i] = (SectorNumber)data.ReadUInt32(); + sectorNumbers[i] = (SectorNumber)data.ReadUInt32LittleEndian(); } return sectorNumbers; diff --git a/SabreTools.Serialization/Deserializers/IRD.cs b/SabreTools.Serialization/Deserializers/IRD.cs index b75406a7..45fdcfea 100644 --- a/SabreTools.Serialization/Deserializers/IRD.cs +++ b/SabreTools.Serialization/Deserializers/IRD.cs @@ -44,7 +44,7 @@ namespace SabreTools.Serialization.Deserializers ird.AppVersion = Encoding.ASCII.GetString(appVersion); if (ird.Version == 7) - ird.UID = data.ReadUInt32(); + ird.UID = data.ReadUInt32LittleEndian(); ird.HeaderLength = data.ReadByteValue(); ird.Header = data.ReadBytes((int)ird.HeaderLength); @@ -63,12 +63,12 @@ namespace SabreTools.Serialization.Deserializers ird.FileHashes = new byte[ird.FileCount][]; for (int i = 0; i < ird.FileCount; i++) { - ird.FileKeys[i] = data.ReadUInt64(); + ird.FileKeys[i] = data.ReadUInt64LittleEndian(); ird.FileHashes[i] = data.ReadBytes(16) ?? []; } - ird.ExtraConfig = data.ReadUInt16(); - ird.Attachments = data.ReadUInt16(); + ird.ExtraConfig = data.ReadUInt16LittleEndian(); + ird.Attachments = data.ReadUInt16LittleEndian(); if (ird.Version >= 9) ird.PIC = data.ReadBytes(115); @@ -80,9 +80,9 @@ namespace SabreTools.Serialization.Deserializers ird.PIC = data.ReadBytes(115); if (ird.Version > 7) - ird.UID = data.ReadUInt32(); + ird.UID = data.ReadUInt32LittleEndian(); - ird.CRC = data.ReadUInt32(); + ird.CRC = data.ReadUInt32LittleEndian(); return ird; } diff --git a/SabreTools.Serialization/Deserializers/InstallShieldArchiveV3.cs b/SabreTools.Serialization/Deserializers/InstallShieldArchiveV3.cs index f4a721c4..86f01eac 100644 --- a/SabreTools.Serialization/Deserializers/InstallShieldArchiveV3.cs +++ b/SabreTools.Serialization/Deserializers/InstallShieldArchiveV3.cs @@ -95,10 +95,10 @@ namespace SabreTools.Serialization.Deserializers { var obj = new Models.InstallShieldArchiveV3.Directory(); - obj.FileCount = data.ReadUInt16(); - obj.ChunkSize = data.ReadUInt16(); + obj.FileCount = data.ReadUInt16LittleEndian(); + obj.ChunkSize = data.ReadUInt16LittleEndian(); - ushort nameLength = data.ReadUInt16(); + ushort nameLength = data.ReadUInt16LittleEndian(); byte[] nameBytes = data.ReadBytes(nameLength); obj.Name = Encoding.ASCII.GetString(nameBytes); diff --git a/SabreTools.Serialization/Deserializers/LZKWAJ.cs b/SabreTools.Serialization/Deserializers/LZKWAJ.cs index 0055b4a9..2ee65f20 100644 --- a/SabreTools.Serialization/Deserializers/LZKWAJ.cs +++ b/SabreTools.Serialization/Deserializers/LZKWAJ.cs @@ -43,12 +43,12 @@ namespace SabreTools.Serialization.Deserializers #if NET20 || NET35 if ((header.HeaderFlags & KWAJHeaderFlags.HasDecompressedLength) != 0) - extensions.DecompressedLength = data.ReadUInt32(); + extensions.DecompressedLength = data.ReadUInt32LittleEndian(); if ((header.HeaderFlags & KWAJHeaderFlags.HasUnknownFlag) != 0) - extensions.UnknownPurpose = data.ReadUInt16(); + extensions.UnknownPurpose = data.ReadUInt16LittleEndian(); if ((header.HeaderFlags & KWAJHeaderFlags.HasPrefixedData) != 0) { - extensions.UnknownDataLength = data.ReadUInt16(); + extensions.UnknownDataLength = data.ReadUInt16LittleEndian(); extensions.UnknownData = data.ReadBytes((int)extensions.UnknownDataLength); } if ((header.HeaderFlags & KWAJHeaderFlags.HasFileName) != 0) @@ -57,17 +57,17 @@ namespace SabreTools.Serialization.Deserializers extensions.FileExtension = data.ReadNullTerminatedAnsiString(); if ((header.HeaderFlags & KWAJHeaderFlags.HasPrefixedData) != 0) { - extensions.ArbitraryTextLength = data.ReadUInt16(); + extensions.ArbitraryTextLength = data.ReadUInt16LittleEndian(); extensions.ArbitraryText = data.ReadBytes((int)extensions.ArbitraryTextLength); } #else if (header.HeaderFlags.HasFlag(KWAJHeaderFlags.HasDecompressedLength)) - extensions.DecompressedLength = data.ReadUInt32(); + extensions.DecompressedLength = data.ReadUInt32LittleEndian(); if (header.HeaderFlags.HasFlag(KWAJHeaderFlags.HasUnknownFlag)) - extensions.UnknownPurpose = data.ReadUInt16(); + extensions.UnknownPurpose = data.ReadUInt16LittleEndian(); if (header.HeaderFlags.HasFlag(KWAJHeaderFlags.HasPrefixedData)) { - extensions.UnknownDataLength = data.ReadUInt16(); + extensions.UnknownDataLength = data.ReadUInt16LittleEndian(); extensions.UnknownData = data.ReadBytes((int)extensions.UnknownDataLength); } if (header.HeaderFlags.HasFlag(KWAJHeaderFlags.HasFileName)) @@ -76,7 +76,7 @@ namespace SabreTools.Serialization.Deserializers extensions.FileExtension = data.ReadNullTerminatedAnsiString(); if (header.HeaderFlags.HasFlag(KWAJHeaderFlags.HasPrefixedData)) { - extensions.ArbitraryTextLength = data.ReadUInt16(); + extensions.ArbitraryTextLength = data.ReadUInt16LittleEndian(); extensions.ArbitraryText = data.ReadBytes((int)extensions.ArbitraryTextLength); } #endif @@ -108,12 +108,12 @@ namespace SabreTools.Serialization.Deserializers if (Encoding.ASCII.GetString(header.Magic) != Encoding.ASCII.GetString(KWAJSignatureBytes)) return null; - header.CompressionType = (KWAJCompressionType)data.ReadUInt16(); + header.CompressionType = (KWAJCompressionType)data.ReadUInt16LittleEndian(); if (header.CompressionType > KWAJCompressionType.MSZIP) return null; - header.DataOffset = data.ReadUInt16(); - header.HeaderFlags = (KWAJHeaderFlags)data.ReadUInt16(); + header.DataOffset = data.ReadUInt16LittleEndian(); + header.HeaderFlags = (KWAJHeaderFlags)data.ReadUInt16LittleEndian(); return header; } diff --git a/SabreTools.Serialization/Deserializers/LZQBasic.cs b/SabreTools.Serialization/Deserializers/LZQBasic.cs index cc542ccd..0577fee8 100644 --- a/SabreTools.Serialization/Deserializers/LZQBasic.cs +++ b/SabreTools.Serialization/Deserializers/LZQBasic.cs @@ -57,7 +57,7 @@ namespace SabreTools.Serialization.Deserializers if (Encoding.ASCII.GetString(header.Magic) != Encoding.ASCII.GetString(QBasicSignatureBytes)) return null; - header.RealLength = data.ReadUInt32(); + header.RealLength = data.ReadUInt32LittleEndian(); return header; } diff --git a/SabreTools.Serialization/Deserializers/LZSZDD.cs b/SabreTools.Serialization/Deserializers/LZSZDD.cs index 84b15dee..741060f8 100644 --- a/SabreTools.Serialization/Deserializers/LZSZDD.cs +++ b/SabreTools.Serialization/Deserializers/LZSZDD.cs @@ -62,7 +62,7 @@ namespace SabreTools.Serialization.Deserializers return null; header.LastChar = (char)data.ReadByteValue(); - header.RealLength = data.ReadUInt32(); + header.RealLength = data.ReadUInt32LittleEndian(); return header; } diff --git a/SabreTools.Serialization/Deserializers/MicrosoftCabinet.cs b/SabreTools.Serialization/Deserializers/MicrosoftCabinet.cs index c5255be3..cc390e52 100644 --- a/SabreTools.Serialization/Deserializers/MicrosoftCabinet.cs +++ b/SabreTools.Serialization/Deserializers/MicrosoftCabinet.cs @@ -103,18 +103,18 @@ namespace SabreTools.Serialization.Deserializers if (header.Signature != SignatureString) return null; - header.Reserved1 = data.ReadUInt32(); - header.CabinetSize = data.ReadUInt32(); - header.Reserved2 = data.ReadUInt32(); - header.FilesOffset = data.ReadUInt32(); - header.Reserved3 = data.ReadUInt32(); + header.Reserved1 = data.ReadUInt32LittleEndian(); + header.CabinetSize = data.ReadUInt32LittleEndian(); + header.Reserved2 = data.ReadUInt32LittleEndian(); + header.FilesOffset = data.ReadUInt32LittleEndian(); + header.Reserved3 = data.ReadUInt32LittleEndian(); header.VersionMinor = data.ReadByteValue(); header.VersionMajor = data.ReadByteValue(); - header.FolderCount = data.ReadUInt16(); - header.FileCount = data.ReadUInt16(); - header.Flags = (HeaderFlags)data.ReadUInt16(); - header.SetID = data.ReadUInt16(); - header.CabinetIndex = data.ReadUInt16(); + header.FolderCount = data.ReadUInt16LittleEndian(); + header.FileCount = data.ReadUInt16LittleEndian(); + header.Flags = (HeaderFlags)data.ReadUInt16LittleEndian(); + header.SetID = data.ReadUInt16LittleEndian(); + header.CabinetIndex = data.ReadUInt16LittleEndian(); #if NET20 || NET35 if ((header.Flags & HeaderFlags.RESERVE_PRESENT) != 0) @@ -122,7 +122,7 @@ namespace SabreTools.Serialization.Deserializers if (header.Flags.HasFlag(HeaderFlags.RESERVE_PRESENT)) #endif { - header.HeaderReservedSize = data.ReadUInt16(); + header.HeaderReservedSize = data.ReadUInt16LittleEndian(); if (header.HeaderReservedSize > 60_000) return null; @@ -166,9 +166,9 @@ namespace SabreTools.Serialization.Deserializers { var folder = new CFFOLDER(); - folder.CabStartOffset = data.ReadUInt32(); - folder.DataCount = data.ReadUInt16(); - folder.CompressionType = (CompressionType)data.ReadUInt16(); + folder.CabStartOffset = data.ReadUInt32LittleEndian(); + folder.DataCount = data.ReadUInt16LittleEndian(); + folder.CompressionType = (CompressionType)data.ReadUInt16LittleEndian(); if (header.FolderReservedSize > 0) folder.ReservedData = data.ReadBytes(header.FolderReservedSize); @@ -201,9 +201,9 @@ namespace SabreTools.Serialization.Deserializers { var dataBlock = new CFDATA(); - dataBlock.Checksum = data.ReadUInt32(); - dataBlock.CompressedSize = data.ReadUInt16(); - dataBlock.UncompressedSize = data.ReadUInt16(); + dataBlock.Checksum = data.ReadUInt32LittleEndian(); + dataBlock.CompressedSize = data.ReadUInt16LittleEndian(); + dataBlock.UncompressedSize = data.ReadUInt16LittleEndian(); if (dataReservedSize > 0) dataBlock.ReservedData = data.ReadBytes(dataReservedSize); @@ -223,12 +223,12 @@ namespace SabreTools.Serialization.Deserializers { var file = new CFFILE(); - file.FileSize = data.ReadUInt32(); - file.FolderStartOffset = data.ReadUInt32(); - file.FolderIndex = (FolderIndex)data.ReadUInt16(); - file.Date = data.ReadUInt16(); - file.Time = data.ReadUInt16(); - file.Attributes = (Models.MicrosoftCabinet.FileAttributes)data.ReadUInt16(); + file.FileSize = data.ReadUInt32LittleEndian(); + file.FolderStartOffset = data.ReadUInt32LittleEndian(); + file.FolderIndex = (FolderIndex)data.ReadUInt16LittleEndian(); + file.Date = data.ReadUInt16LittleEndian(); + file.Time = data.ReadUInt16LittleEndian(); + file.Attributes = (Models.MicrosoftCabinet.FileAttributes)data.ReadUInt16LittleEndian(); #if NET20 || NET35 if ((file.Attributes & Models.MicrosoftCabinet.FileAttributes.NAME_IS_UTF) != 0) diff --git a/SabreTools.Serialization/Deserializers/N3DS.cs b/SabreTools.Serialization/Deserializers/N3DS.cs index 2451cbc3..69bd3e39 100644 --- a/SabreTools.Serialization/Deserializers/N3DS.cs +++ b/SabreTools.Serialization/Deserializers/N3DS.cs @@ -367,7 +367,7 @@ namespace SabreTools.Serialization.Deserializers byte[] magicId = data.ReadBytes(4); obj.MagicID = Encoding.ASCII.GetString(magicId).TrimEnd('\0'); obj.ContentSizeInMediaUnits = data.ReadUInt32LittleEndian(); - obj.PartitionId = data.ReadUInt64(); + obj.PartitionId = data.ReadUInt64LittleEndian(); obj.MakerCode = data.ReadUInt16LittleEndian(); obj.Version = data.ReadUInt16LittleEndian(); obj.VerificationHash = data.ReadUInt32LittleEndian(); @@ -433,7 +433,7 @@ namespace SabreTools.Serialization.Deserializers obj.MagicNumber = Encoding.ASCII.GetString(magicNumber).TrimEnd('\0'); obj.ImageSizeInMediaUnits = data.ReadUInt32LittleEndian(); obj.MediaId = data.ReadBytes(8); - obj.PartitionsFSType = (FilesystemType)data.ReadUInt64(); + obj.PartitionsFSType = (FilesystemType)data.ReadUInt64LittleEndian(); obj.PartitionsCryptType = data.ReadBytes(8); obj.PartitionsTable = new PartitionTableEntry[8]; @@ -452,7 +452,7 @@ namespace SabreTools.Serialization.Deserializers obj.PartitionIdTable = new ulong[8]; for (int i = 0; i < 8; i++) { - obj.PartitionIdTable[i] = data.ReadUInt64(); + obj.PartitionIdTable[i] = data.ReadUInt64LittleEndian(); } obj.Reserved1 = data.ReadBytes(0x20); diff --git a/SabreTools.Serialization/Deserializers/Nitro.cs b/SabreTools.Serialization/Deserializers/Nitro.cs index 7407e963..a2f9dd4f 100644 --- a/SabreTools.Serialization/Deserializers/Nitro.cs +++ b/SabreTools.Serialization/Deserializers/Nitro.cs @@ -288,7 +288,7 @@ namespace SabreTools.Serialization.Deserializers } if (entry.Folder) - entry.Index = data.ReadUInt16(); + entry.Index = data.ReadUInt16LittleEndian(); return entry; } diff --git a/SabreTools.Serialization/Deserializers/PKZIP.cs b/SabreTools.Serialization/Deserializers/PKZIP.cs index 8ade7ade..6c5a9f6a 100644 --- a/SabreTools.Serialization/Deserializers/PKZIP.cs +++ b/SabreTools.Serialization/Deserializers/PKZIP.cs @@ -321,7 +321,7 @@ namespace SabreTools.Serialization.Deserializers while (data.Position > 0) { // Read the potential signature - uint possibleSignature = data.ReadUInt32(); + uint possibleSignature = data.ReadUInt32LittleEndian(); if (possibleSignature == EndOfCentralDirectoryRecordSignature) { long signaturePosition = data.Position - 4; @@ -361,17 +361,17 @@ namespace SabreTools.Serialization.Deserializers { var record = new EndOfCentralDirectoryRecord(); - record.Signature = data.ReadUInt32(); + record.Signature = data.ReadUInt32LittleEndian(); if (record.Signature != EndOfCentralDirectoryRecordSignature) return null; - record.DiskNumber = data.ReadUInt16(); - record.StartDiskNumber = data.ReadUInt16(); - record.TotalEntriesOnDisk = data.ReadUInt16(); - record.TotalEntries = data.ReadUInt16(); - record.CentralDirectorySize = data.ReadUInt32(); - record.CentralDirectoryOffset = data.ReadUInt32(); - record.FileCommentLength = data.ReadUInt16(); + record.DiskNumber = data.ReadUInt16LittleEndian(); + record.StartDiskNumber = data.ReadUInt16LittleEndian(); + record.TotalEntriesOnDisk = data.ReadUInt16LittleEndian(); + record.TotalEntries = data.ReadUInt16LittleEndian(); + record.CentralDirectorySize = data.ReadUInt32LittleEndian(); + record.CentralDirectoryOffset = data.ReadUInt32LittleEndian(); + record.FileCommentLength = data.ReadUInt16LittleEndian(); if (record.FileCommentLength > 0 && data.Position + record.FileCommentLength <= data.Length) { byte[] commentBytes = data.ReadBytes(record.FileCommentLength); @@ -402,7 +402,7 @@ namespace SabreTools.Serialization.Deserializers while (data.Position > 0) { // Read the potential signature - uint possibleSignature = data.ReadUInt32(); + uint possibleSignature = data.ReadUInt32LittleEndian(); if (possibleSignature == EndOfCentralDirectoryLocator64Signature) { long signaturePosition = data.Position - 4; @@ -442,20 +442,20 @@ namespace SabreTools.Serialization.Deserializers { var record = new EndOfCentralDirectoryRecord64(); - record.Signature = data.ReadUInt32(); + record.Signature = data.ReadUInt32LittleEndian(); if (record.Signature != EndOfCentralDirectoryRecord64Signature) return null; - record.DirectoryRecordSize = data.ReadUInt64(); + record.DirectoryRecordSize = data.ReadUInt64LittleEndian(); record.HostSystem = (HostSystem)data.ReadByteValue(); record.VersionMadeBy = data.ReadByteValue(); - record.VersionNeededToExtract = data.ReadUInt16(); - record.DiskNumber = data.ReadUInt32(); - record.StartDiskNumber = data.ReadUInt32(); - record.TotalEntriesOnDisk = data.ReadUInt64(); - record.TotalEntries = data.ReadUInt64(); - record.CentralDirectorySize = data.ReadUInt64(); - record.CentralDirectoryOffset = data.ReadUInt64(); + record.VersionNeededToExtract = data.ReadUInt16LittleEndian(); + record.DiskNumber = data.ReadUInt32LittleEndian(); + record.StartDiskNumber = data.ReadUInt32LittleEndian(); + record.TotalEntriesOnDisk = data.ReadUInt64LittleEndian(); + record.TotalEntries = data.ReadUInt64LittleEndian(); + record.CentralDirectorySize = data.ReadUInt64LittleEndian(); + record.CentralDirectoryOffset = data.ReadUInt64LittleEndian(); // TODO: Handle the ExtensibleDataSector -- How to detect if exists? @@ -471,27 +471,27 @@ namespace SabreTools.Serialization.Deserializers { var header = new CentralDirectoryFileHeader(); - header.Signature = data.ReadUInt32(); + header.Signature = data.ReadUInt32LittleEndian(); if (header.Signature != CentralDirectoryFileHeaderSignature) return null; header.HostSystem = (HostSystem)data.ReadByteValue(); header.VersionMadeBy = data.ReadByteValue(); - header.VersionNeededToExtract = data.ReadUInt16(); - header.Flags = (GeneralPurposeBitFlags)data.ReadUInt16(); - header.CompressionMethod = (CompressionMethod)data.ReadUInt16(); - header.LastModifedFileTime = data.ReadUInt16(); - header.LastModifiedFileDate = data.ReadUInt16(); - header.CRC32 = data.ReadUInt32(); - header.CompressedSize = data.ReadUInt32(); - header.UncompressedSize = data.ReadUInt32(); - header.FileNameLength = data.ReadUInt16(); - header.ExtraFieldLength = data.ReadUInt16(); - header.FileCommentLength = data.ReadUInt16(); - header.DiskNumberStart = data.ReadUInt16(); - header.InternalFileAttributes = (InternalFileAttributes)data.ReadUInt16(); - header.ExternalFileAttributes = data.ReadUInt32(); - header.RelativeOffsetOfLocalHeader = data.ReadUInt32(); + header.VersionNeededToExtract = data.ReadUInt16LittleEndian(); + header.Flags = (GeneralPurposeBitFlags)data.ReadUInt16LittleEndian(); + header.CompressionMethod = (CompressionMethod)data.ReadUInt16LittleEndian(); + header.LastModifedFileTime = data.ReadUInt16LittleEndian(); + header.LastModifiedFileDate = data.ReadUInt16LittleEndian(); + header.CRC32 = data.ReadUInt32LittleEndian(); + header.CompressedSize = data.ReadUInt32LittleEndian(); + header.UncompressedSize = data.ReadUInt32LittleEndian(); + header.FileNameLength = data.ReadUInt16LittleEndian(); + header.ExtraFieldLength = data.ReadUInt16LittleEndian(); + header.FileCommentLength = data.ReadUInt16LittleEndian(); + header.DiskNumberStart = data.ReadUInt16LittleEndian(); + header.InternalFileAttributes = (InternalFileAttributes)data.ReadUInt16LittleEndian(); + header.ExternalFileAttributes = data.ReadUInt32LittleEndian(); + header.RelativeOffsetOfLocalHeader = data.ReadUInt32LittleEndian(); if (header.FileNameLength > 0 && data.Position + header.FileNameLength <= data.Length) { @@ -539,7 +539,7 @@ namespace SabreTools.Serialization.Deserializers while (data.Position > 0) { // Read the potential signature - uint possibleSignature = data.ReadUInt32(); + uint possibleSignature = data.ReadUInt32LittleEndian(); if (possibleSignature == ArchiveExtraDataRecordSignature) { long signaturePosition = data.Position - 4; @@ -579,11 +579,11 @@ namespace SabreTools.Serialization.Deserializers { var record = new ArchiveExtraDataRecord(); - record.Signature = data.ReadUInt32(); + record.Signature = data.ReadUInt32LittleEndian(); if (record.Signature != ArchiveExtraDataRecordSignature) return null; - record.ExtraFieldLength = data.ReadUInt32(); + record.ExtraFieldLength = data.ReadUInt32LittleEndian(); if (record.ExtraFieldLength > 0 && data.Position + record.ExtraFieldLength <= data.Length) { byte[] extraBytes = data.ReadBytes((int)record.ExtraFieldLength); @@ -605,20 +605,20 @@ namespace SabreTools.Serialization.Deserializers { var header = new LocalFileHeader(); - header.Signature = data.ReadUInt32(); + header.Signature = data.ReadUInt32LittleEndian(); if (header.Signature != LocalFileHeaderSignature) return null; - header.Version = data.ReadUInt16(); - header.Flags = (GeneralPurposeBitFlags)data.ReadUInt16(); - header.CompressionMethod = (CompressionMethod)data.ReadUInt16(); - header.LastModifedFileTime = data.ReadUInt16(); - header.LastModifiedFileDate = data.ReadUInt16(); - header.CRC32 = data.ReadUInt32(); - header.CompressedSize = data.ReadUInt32(); - header.UncompressedSize = data.ReadUInt32(); - header.FileNameLength = data.ReadUInt16(); - header.ExtraFieldLength = data.ReadUInt16(); + header.Version = data.ReadUInt16LittleEndian(); + header.Flags = (GeneralPurposeBitFlags)data.ReadUInt16LittleEndian(); + header.CompressionMethod = (CompressionMethod)data.ReadUInt16LittleEndian(); + header.LastModifedFileTime = data.ReadUInt16LittleEndian(); + header.LastModifiedFileDate = data.ReadUInt16LittleEndian(); + header.CRC32 = data.ReadUInt32LittleEndian(); + header.CompressedSize = data.ReadUInt32LittleEndian(); + header.UncompressedSize = data.ReadUInt32LittleEndian(); + header.FileNameLength = data.ReadUInt16LittleEndian(); + header.ExtraFieldLength = data.ReadUInt16LittleEndian(); if (header.FileNameLength > 0 && data.Position + header.FileNameLength <= data.Length) { @@ -650,13 +650,13 @@ namespace SabreTools.Serialization.Deserializers var dataDescriptor = new DataDescriptor(); // Signatures are expected but not required - dataDescriptor.Signature = data.ReadUInt32(); + dataDescriptor.Signature = data.ReadUInt32LittleEndian(); if (dataDescriptor.Signature != DataDescriptorSignature) data.Seek(-4, SeekOrigin.Current); - dataDescriptor.CRC32 = data.ReadUInt32(); - dataDescriptor.CompressedSize = data.ReadUInt32(); - dataDescriptor.UncompressedSize = data.ReadUInt32(); + dataDescriptor.CRC32 = data.ReadUInt32LittleEndian(); + dataDescriptor.CompressedSize = data.ReadUInt32LittleEndian(); + dataDescriptor.UncompressedSize = data.ReadUInt32LittleEndian(); return dataDescriptor; } @@ -671,13 +671,13 @@ namespace SabreTools.Serialization.Deserializers var zip64DataDescriptor = new DataDescriptor64(); // Signatures are expected but not required - zip64DataDescriptor.Signature = data.ReadUInt32(); + zip64DataDescriptor.Signature = data.ReadUInt32LittleEndian(); if (zip64DataDescriptor.Signature != DataDescriptorSignature) data.Seek(-4, SeekOrigin.Current); - zip64DataDescriptor.CRC32 = data.ReadUInt32(); - zip64DataDescriptor.CompressedSize = data.ReadUInt64(); - zip64DataDescriptor.UncompressedSize = data.ReadUInt64(); + zip64DataDescriptor.CRC32 = data.ReadUInt32LittleEndian(); + zip64DataDescriptor.CompressedSize = data.ReadUInt64LittleEndian(); + zip64DataDescriptor.UncompressedSize = data.ReadUInt64LittleEndian(); return zip64DataDescriptor; } diff --git a/SabreTools.Serialization/Deserializers/PlayJAudio.cs b/SabreTools.Serialization/Deserializers/PlayJAudio.cs index fc389094..9bf1b6b0 100644 --- a/SabreTools.Serialization/Deserializers/PlayJAudio.cs +++ b/SabreTools.Serialization/Deserializers/PlayJAudio.cs @@ -95,7 +95,7 @@ namespace SabreTools.Serialization.Deserializers } // Set the unknown value 2 - audioFile.UnknownValue2 = data.ReadUInt32(); + audioFile.UnknownValue2 = data.ReadUInt32LittleEndian(); #endregion @@ -137,7 +137,7 @@ namespace SabreTools.Serialization.Deserializers #region Data Files Count // Set the data files count - audioFile.DataFilesCount = data.ReadUInt32(); + audioFile.DataFilesCount = data.ReadUInt32LittleEndian(); #endregion @@ -183,11 +183,11 @@ namespace SabreTools.Serialization.Deserializers AudioHeader audioHeader; // Get the common header pieces - uint signature = data.ReadUInt32(); + uint signature = data.ReadUInt32LittleEndian(); if (signature != SignatureUInt32) return null; - uint version = data.ReadUInt32(); + uint version = data.ReadUInt32LittleEndian(); // Build the header according to version uint unknownOffset1; @@ -199,16 +199,16 @@ namespace SabreTools.Serialization.Deserializers v1.Signature = signature; v1.Version = version; - v1.TrackID = data.ReadUInt32(); - v1.UnknownOffset1 = data.ReadUInt32(); - v1.UnknownOffset2 = data.ReadUInt32(); - v1.UnknownOffset3 = data.ReadUInt32(); - v1.Unknown1 = data.ReadUInt32(); - v1.Unknown2 = data.ReadUInt32(); - v1.Year = data.ReadUInt32(); + v1.TrackID = data.ReadUInt32LittleEndian(); + v1.UnknownOffset1 = data.ReadUInt32LittleEndian(); + v1.UnknownOffset2 = data.ReadUInt32LittleEndian(); + v1.UnknownOffset3 = data.ReadUInt32LittleEndian(); + v1.Unknown1 = data.ReadUInt32LittleEndian(); + v1.Unknown2 = data.ReadUInt32LittleEndian(); + v1.Year = data.ReadUInt32LittleEndian(); v1.TrackNumber = data.ReadByteValue(); v1.Subgenre = (Subgenre)data.ReadByteValue(); - v1.Duration = data.ReadUInt32(); + v1.Duration = data.ReadUInt32LittleEndian(); audioHeader = v1; unknownOffset1 = v1.UnknownOffset1; @@ -220,29 +220,29 @@ namespace SabreTools.Serialization.Deserializers v2.Signature = signature; v2.Version = version; - v2.Unknown1 = data.ReadUInt32(); - v2.Unknown2 = data.ReadUInt32(); - v2.Unknown3 = data.ReadUInt32(); - v2.Unknown4 = data.ReadUInt32(); - v2.Unknown5 = data.ReadUInt32(); - v2.Unknown6 = data.ReadUInt32(); - v2.UnknownOffset1 = data.ReadUInt32(); - v2.Unknown7 = data.ReadUInt32(); - v2.Unknown8 = data.ReadUInt32(); - v2.Unknown9 = data.ReadUInt32(); - v2.UnknownOffset2 = data.ReadUInt32(); - v2.Unknown10 = data.ReadUInt32(); - v2.Unknown11 = data.ReadUInt32(); - v2.Unknown12 = data.ReadUInt32(); - v2.Unknown13 = data.ReadUInt32(); - v2.Unknown14 = data.ReadUInt32(); - v2.Unknown15 = data.ReadUInt32(); - v2.Unknown16 = data.ReadUInt32(); - v2.Unknown17 = data.ReadUInt32(); - v2.TrackID = data.ReadUInt32(); - v2.Year = data.ReadUInt32(); - v2.TrackNumber = data.ReadUInt32(); - v2.Unknown18 = data.ReadUInt32(); + v2.Unknown1 = data.ReadUInt32LittleEndian(); + v2.Unknown2 = data.ReadUInt32LittleEndian(); + v2.Unknown3 = data.ReadUInt32LittleEndian(); + v2.Unknown4 = data.ReadUInt32LittleEndian(); + v2.Unknown5 = data.ReadUInt32LittleEndian(); + v2.Unknown6 = data.ReadUInt32LittleEndian(); + v2.UnknownOffset1 = data.ReadUInt32LittleEndian(); + v2.Unknown7 = data.ReadUInt32LittleEndian(); + v2.Unknown8 = data.ReadUInt32LittleEndian(); + v2.Unknown9 = data.ReadUInt32LittleEndian(); + v2.UnknownOffset2 = data.ReadUInt32LittleEndian(); + v2.Unknown10 = data.ReadUInt32LittleEndian(); + v2.Unknown11 = data.ReadUInt32LittleEndian(); + v2.Unknown12 = data.ReadUInt32LittleEndian(); + v2.Unknown13 = data.ReadUInt32LittleEndian(); + v2.Unknown14 = data.ReadUInt32LittleEndian(); + v2.Unknown15 = data.ReadUInt32LittleEndian(); + v2.Unknown16 = data.ReadUInt32LittleEndian(); + v2.Unknown17 = data.ReadUInt32LittleEndian(); + v2.TrackID = data.ReadUInt32LittleEndian(); + v2.Year = data.ReadUInt32LittleEndian(); + v2.TrackNumber = data.ReadUInt32LittleEndian(); + v2.Unknown18 = data.ReadUInt32LittleEndian(); audioHeader = v2; unknownOffset1 = v2.UnknownOffset1 + 0x54; @@ -253,33 +253,33 @@ namespace SabreTools.Serialization.Deserializers return null; } - audioHeader.TrackLength = data.ReadUInt16(); + audioHeader.TrackLength = data.ReadUInt16LittleEndian(); byte[] track = data.ReadBytes(audioHeader.TrackLength); audioHeader.Track = Encoding.ASCII.GetString(track); - audioHeader.ArtistLength = data.ReadUInt16(); + audioHeader.ArtistLength = data.ReadUInt16LittleEndian(); byte[] artist = data.ReadBytes(audioHeader.ArtistLength); audioHeader.Artist = Encoding.ASCII.GetString(artist); - audioHeader.AlbumLength = data.ReadUInt16(); + audioHeader.AlbumLength = data.ReadUInt16LittleEndian(); byte[] album = data.ReadBytes(audioHeader.AlbumLength); audioHeader.Album = Encoding.ASCII.GetString(album); - audioHeader.WriterLength = data.ReadUInt16(); + audioHeader.WriterLength = data.ReadUInt16LittleEndian(); byte[] writer = data.ReadBytes(audioHeader.WriterLength); audioHeader.Writer = Encoding.ASCII.GetString(writer); - audioHeader.PublisherLength = data.ReadUInt16(); + audioHeader.PublisherLength = data.ReadUInt16LittleEndian(); byte[] publisher = data.ReadBytes(audioHeader.PublisherLength); audioHeader.Publisher = Encoding.ASCII.GetString(publisher); - audioHeader.LabelLength = data.ReadUInt16(); + audioHeader.LabelLength = data.ReadUInt16LittleEndian(); byte[] label = data.ReadBytes(audioHeader.LabelLength); audioHeader.Label = Encoding.ASCII.GetString(label); if (data.Position - initialOffset < unknownOffset1) { - audioHeader.CommentsLength = data.ReadUInt16(); + audioHeader.CommentsLength = data.ReadUInt16LittleEndian(); byte[] comments = data.ReadBytes(audioHeader.CommentsLength); audioHeader.Comments = Encoding.ASCII.GetString(comments); } @@ -296,7 +296,7 @@ namespace SabreTools.Serialization.Deserializers { var unknownBlock1 = new UnknownBlock1(); - unknownBlock1.Length = data.ReadUInt32(); + unknownBlock1.Length = data.ReadUInt32LittleEndian(); unknownBlock1.Data = data.ReadBytes((int)unknownBlock1.Length); return unknownBlock1; @@ -325,10 +325,10 @@ namespace SabreTools.Serialization.Deserializers { var dataFile = new DataFile(); - dataFile.FileNameLength = data.ReadUInt16(); + dataFile.FileNameLength = data.ReadUInt16LittleEndian(); byte[] fileName = data.ReadBytes(dataFile.FileNameLength); dataFile.FileName = Encoding.ASCII.GetString(fileName); - dataFile.DataLength = data.ReadUInt32(); + dataFile.DataLength = data.ReadUInt32LittleEndian(); dataFile.Data = data.ReadBytes((int)dataFile.DataLength); return dataFile; diff --git a/SabreTools.Serialization/Deserializers/PlayJPlaylist.cs b/SabreTools.Serialization/Deserializers/PlayJPlaylist.cs index ec34cdc0..76225ee8 100644 --- a/SabreTools.Serialization/Deserializers/PlayJPlaylist.cs +++ b/SabreTools.Serialization/Deserializers/PlayJPlaylist.cs @@ -66,7 +66,7 @@ namespace SabreTools.Serialization.Deserializers { var playlistHeader = new PlaylistHeader(); - playlistHeader.TrackCount = data.ReadUInt32(); + playlistHeader.TrackCount = data.ReadUInt32LittleEndian(); if (playlistHeader.TrackCount > int.MaxValue) return null; diff --git a/SabreTools.Serialization/Deserializers/SGA.cs b/SabreTools.Serialization/Deserializers/SGA.cs index 07adfcb4..397d1d41 100644 --- a/SabreTools.Serialization/Deserializers/SGA.cs +++ b/SabreTools.Serialization/Deserializers/SGA.cs @@ -66,8 +66,8 @@ namespace SabreTools.Serialization.Deserializers if (signature != SignatureString) return null; - ushort majorVersion = data.ReadUInt16(); - ushort minorVersion = data.ReadUInt16(); + ushort majorVersion = data.ReadUInt16LittleEndian(); + ushort minorVersion = data.ReadUInt16LittleEndian(); if (minorVersion != 0) return null; @@ -85,9 +85,9 @@ namespace SabreTools.Serialization.Deserializers byte[] header4Name = data.ReadBytes(count: 128); header4.Name = Encoding.Unicode.GetString(header4Name).TrimEnd('\0'); header4.HeaderMD5 = data.ReadBytes(0x10); - header4.HeaderLength = data.ReadUInt32(); - header4.FileDataOffset = data.ReadUInt32(); - header4.Dummy0 = data.ReadUInt32(); + header4.HeaderLength = data.ReadUInt32LittleEndian(); + header4.FileDataOffset = data.ReadUInt32LittleEndian(); + header4.Dummy0 = data.ReadUInt32LittleEndian(); return header4; @@ -101,9 +101,9 @@ namespace SabreTools.Serialization.Deserializers header6.MinorVersion = minorVersion; byte[] header6Name = data.ReadBytes(count: 128); header6.Name = Encoding.Unicode.GetString(header6Name).TrimEnd('\0'); - header6.HeaderLength = data.ReadUInt32(); - header6.FileDataOffset = data.ReadUInt32(); - header6.Dummy0 = data.ReadUInt32(); + header6.HeaderLength = data.ReadUInt32LittleEndian(); + header6.FileDataOffset = data.ReadUInt32LittleEndian(); + header6.Dummy0 = data.ReadUInt32LittleEndian(); return header6; @@ -743,14 +743,14 @@ namespace SabreTools.Serialization.Deserializers { var directoryHeader4 = new DirectoryHeader4(); - directoryHeader4.SectionOffset = data.ReadUInt32(); - directoryHeader4.SectionCount = data.ReadUInt16(); - directoryHeader4.FolderOffset = data.ReadUInt32(); - directoryHeader4.FolderCount = data.ReadUInt16(); - directoryHeader4.FileOffset = data.ReadUInt32(); - directoryHeader4.FileCount = data.ReadUInt16(); - directoryHeader4.StringTableOffset = data.ReadUInt32(); - directoryHeader4.StringTableCount = data.ReadUInt16(); + directoryHeader4.SectionOffset = data.ReadUInt32LittleEndian(); + directoryHeader4.SectionCount = data.ReadUInt16LittleEndian(); + directoryHeader4.FolderOffset = data.ReadUInt32LittleEndian(); + directoryHeader4.FolderCount = data.ReadUInt16LittleEndian(); + directoryHeader4.FileOffset = data.ReadUInt32LittleEndian(); + directoryHeader4.FileCount = data.ReadUInt16LittleEndian(); + directoryHeader4.StringTableOffset = data.ReadUInt32LittleEndian(); + directoryHeader4.StringTableCount = data.ReadUInt16LittleEndian(); return directoryHeader4; } @@ -764,14 +764,14 @@ namespace SabreTools.Serialization.Deserializers { var directoryHeader5 = new DirectoryHeader5(); - directoryHeader5.SectionOffset = data.ReadUInt32(); - directoryHeader5.SectionCount = data.ReadUInt32(); - directoryHeader5.FolderOffset = data.ReadUInt32(); - directoryHeader5.FolderCount = data.ReadUInt32(); - directoryHeader5.FileOffset = data.ReadUInt32(); - directoryHeader5.FileCount = data.ReadUInt32(); - directoryHeader5.StringTableOffset = data.ReadUInt32(); - directoryHeader5.StringTableCount = data.ReadUInt32(); + directoryHeader5.SectionOffset = data.ReadUInt32LittleEndian(); + directoryHeader5.SectionCount = data.ReadUInt32LittleEndian(); + directoryHeader5.FolderOffset = data.ReadUInt32LittleEndian(); + directoryHeader5.FolderCount = data.ReadUInt32LittleEndian(); + directoryHeader5.FileOffset = data.ReadUInt32LittleEndian(); + directoryHeader5.FileCount = data.ReadUInt32LittleEndian(); + directoryHeader5.StringTableOffset = data.ReadUInt32LittleEndian(); + directoryHeader5.StringTableCount = data.ReadUInt32LittleEndian(); return directoryHeader5; } @@ -785,16 +785,16 @@ namespace SabreTools.Serialization.Deserializers { var directoryHeader7 = new DirectoryHeader7(); - directoryHeader7.SectionOffset = data.ReadUInt32(); - directoryHeader7.SectionCount = data.ReadUInt32(); - directoryHeader7.FolderOffset = data.ReadUInt32(); - directoryHeader7.FolderCount = data.ReadUInt32(); - directoryHeader7.FileOffset = data.ReadUInt32(); - directoryHeader7.FileCount = data.ReadUInt32(); - directoryHeader7.StringTableOffset = data.ReadUInt32(); - directoryHeader7.StringTableCount = data.ReadUInt32(); - directoryHeader7.HashTableOffset = data.ReadUInt32(); - directoryHeader7.BlockSize = data.ReadUInt32(); + directoryHeader7.SectionOffset = data.ReadUInt32LittleEndian(); + directoryHeader7.SectionCount = data.ReadUInt32LittleEndian(); + directoryHeader7.FolderOffset = data.ReadUInt32LittleEndian(); + directoryHeader7.FolderCount = data.ReadUInt32LittleEndian(); + directoryHeader7.FileOffset = data.ReadUInt32LittleEndian(); + directoryHeader7.FileCount = data.ReadUInt32LittleEndian(); + directoryHeader7.StringTableOffset = data.ReadUInt32LittleEndian(); + directoryHeader7.StringTableCount = data.ReadUInt32LittleEndian(); + directoryHeader7.HashTableOffset = data.ReadUInt32LittleEndian(); + directoryHeader7.BlockSize = data.ReadUInt32LittleEndian(); return directoryHeader7; } @@ -813,11 +813,11 @@ namespace SabreTools.Serialization.Deserializers section4.Alias = Encoding.ASCII.GetString(section4Alias).TrimEnd('\0'); byte[] section4Name = data.ReadBytes(64); section4.Name = Encoding.ASCII.GetString(section4Name).TrimEnd('\0'); - section4.FolderStartIndex = data.ReadUInt16(); - section4.FolderEndIndex = data.ReadUInt16(); - section4.FileStartIndex = data.ReadUInt16(); - section4.FileEndIndex = data.ReadUInt16(); - section4.FolderRootIndex = data.ReadUInt16(); + section4.FolderStartIndex = data.ReadUInt16LittleEndian(); + section4.FolderEndIndex = data.ReadUInt16LittleEndian(); + section4.FileStartIndex = data.ReadUInt16LittleEndian(); + section4.FileEndIndex = data.ReadUInt16LittleEndian(); + section4.FolderRootIndex = data.ReadUInt16LittleEndian(); return section4; } @@ -836,11 +836,11 @@ namespace SabreTools.Serialization.Deserializers section5.Alias = Encoding.ASCII.GetString(section5Alias).TrimEnd('\0'); byte[] section5Name = data.ReadBytes(64); section5.Name = Encoding.ASCII.GetString(section5Name).TrimEnd('\0'); - section5.FolderStartIndex = data.ReadUInt32(); - section5.FolderEndIndex = data.ReadUInt32(); - section5.FileStartIndex = data.ReadUInt32(); - section5.FileEndIndex = data.ReadUInt32(); - section5.FolderRootIndex = data.ReadUInt32(); + section5.FolderStartIndex = data.ReadUInt32LittleEndian(); + section5.FolderEndIndex = data.ReadUInt32LittleEndian(); + section5.FileStartIndex = data.ReadUInt32LittleEndian(); + section5.FileEndIndex = data.ReadUInt32LittleEndian(); + section5.FolderRootIndex = data.ReadUInt32LittleEndian(); return section5; } @@ -855,12 +855,12 @@ namespace SabreTools.Serialization.Deserializers { var folder4 = new Folder4(); - folder4.NameOffset = data.ReadUInt32(); + folder4.NameOffset = data.ReadUInt32LittleEndian(); folder4.Name = null; // Read from string table - folder4.FolderStartIndex = data.ReadUInt16(); - folder4.FolderEndIndex = data.ReadUInt16(); - folder4.FileStartIndex = data.ReadUInt16(); - folder4.FileEndIndex = data.ReadUInt16(); + folder4.FolderStartIndex = data.ReadUInt16LittleEndian(); + folder4.FolderEndIndex = data.ReadUInt16LittleEndian(); + folder4.FileStartIndex = data.ReadUInt16LittleEndian(); + folder4.FileEndIndex = data.ReadUInt16LittleEndian(); return folder4; } @@ -875,12 +875,12 @@ namespace SabreTools.Serialization.Deserializers { var folder5 = new Folder5(); - folder5.NameOffset = data.ReadUInt32(); + folder5.NameOffset = data.ReadUInt32LittleEndian(); folder5.Name = null; // Read from string table - folder5.FolderStartIndex = data.ReadUInt32(); - folder5.FolderEndIndex = data.ReadUInt32(); - folder5.FileStartIndex = data.ReadUInt32(); - folder5.FileEndIndex = data.ReadUInt32(); + folder5.FolderStartIndex = data.ReadUInt32LittleEndian(); + folder5.FolderEndIndex = data.ReadUInt32LittleEndian(); + folder5.FileStartIndex = data.ReadUInt32LittleEndian(); + folder5.FileEndIndex = data.ReadUInt32LittleEndian(); return folder5; } @@ -895,12 +895,12 @@ namespace SabreTools.Serialization.Deserializers { var file4 = new File4(); - file4.NameOffset = data.ReadUInt32(); + file4.NameOffset = data.ReadUInt32LittleEndian(); file4.Name = null; // Read from string table - file4.Offset = data.ReadUInt32(); - file4.SizeOnDisk = data.ReadUInt32(); - file4.Size = data.ReadUInt32(); - file4.TimeModified = data.ReadUInt32(); + file4.Offset = data.ReadUInt32LittleEndian(); + file4.SizeOnDisk = data.ReadUInt32LittleEndian(); + file4.Size = data.ReadUInt32LittleEndian(); + file4.TimeModified = data.ReadUInt32LittleEndian(); file4.Dummy0 = data.ReadByteValue(); file4.Type = data.ReadByteValue(); @@ -917,15 +917,15 @@ namespace SabreTools.Serialization.Deserializers { var file6 = new File6(); - file6.NameOffset = data.ReadUInt32(); + file6.NameOffset = data.ReadUInt32LittleEndian(); file6.Name = null; // Read from string table - file6.Offset = data.ReadUInt32(); - file6.SizeOnDisk = data.ReadUInt32(); - file6.Size = data.ReadUInt32(); - file6.TimeModified = data.ReadUInt32(); + file6.Offset = data.ReadUInt32LittleEndian(); + file6.SizeOnDisk = data.ReadUInt32LittleEndian(); + file6.Size = data.ReadUInt32LittleEndian(); + file6.TimeModified = data.ReadUInt32LittleEndian(); file6.Dummy0 = data.ReadByteValue(); file6.Type = data.ReadByteValue(); - file6.CRC32 = data.ReadUInt32(); + file6.CRC32 = data.ReadUInt32LittleEndian(); return file6; } @@ -940,16 +940,16 @@ namespace SabreTools.Serialization.Deserializers { var file7 = new File7(); - file7.NameOffset = data.ReadUInt32(); + file7.NameOffset = data.ReadUInt32LittleEndian(); file7.Name = null; // Read from string table - file7.Offset = data.ReadUInt32(); - file7.SizeOnDisk = data.ReadUInt32(); - file7.Size = data.ReadUInt32(); - file7.TimeModified = data.ReadUInt32(); + file7.Offset = data.ReadUInt32LittleEndian(); + file7.SizeOnDisk = data.ReadUInt32LittleEndian(); + file7.Size = data.ReadUInt32LittleEndian(); + file7.TimeModified = data.ReadUInt32LittleEndian(); file7.Dummy0 = data.ReadByteValue(); file7.Type = data.ReadByteValue(); - file7.CRC32 = data.ReadUInt32(); - file7.HashOffset = data.ReadUInt32(); + file7.CRC32 = data.ReadUInt32LittleEndian(); + file7.HashOffset = data.ReadUInt32LittleEndian(); return file7; } diff --git a/SabreTools.Serialization/Deserializers/VBSP.cs b/SabreTools.Serialization/Deserializers/VBSP.cs index 7d5fe0b3..4cbb242b 100644 --- a/SabreTools.Serialization/Deserializers/VBSP.cs +++ b/SabreTools.Serialization/Deserializers/VBSP.cs @@ -410,14 +410,14 @@ namespace SabreTools.Serialization.Deserializers { var lump = new VisibilityLump(); - lump.NumClusters = data.ReadInt32(); + lump.NumClusters = data.ReadInt32LittleEndian(); lump.ByteOffsets = new int[lump.NumClusters][]; for (int i = 0; i < lump.NumClusters; i++) { lump.ByteOffsets[i] = new int[2]; for (int j = 0; j < 2; j++) { - lump.ByteOffsets[i][j] = data.ReadInt32(); + lump.ByteOffsets[i][j] = data.ReadInt32LittleEndian(); } } @@ -505,10 +505,10 @@ namespace SabreTools.Serialization.Deserializers { var model = new PhysModel(); - model.ModelIndex = data.ReadInt32(); - model.DataSize = data.ReadInt32(); - model.KeydataSize = data.ReadInt32(); - model.SolidCount = data.ReadInt32(); + model.ModelIndex = data.ReadInt32LittleEndian(); + model.DataSize = data.ReadInt32LittleEndian(); + model.KeydataSize = data.ReadInt32LittleEndian(); + model.SolidCount = data.ReadInt32LittleEndian(); model.Solids = new PhysSolid[model.SolidCount]; for (int i = 0; i < model.Solids.Length; i++) { @@ -529,7 +529,7 @@ namespace SabreTools.Serialization.Deserializers { var solid = new PhysSolid(); - solid.Size = data.ReadInt32(); + solid.Size = data.ReadInt32LittleEndian(); if (solid.Size > 0) solid.CollisionData = data.ReadBytes(solid.Size); @@ -563,7 +563,7 @@ namespace SabreTools.Serialization.Deserializers { var lump = new OcclusionLump(); - lump.Count = data.ReadInt32(); + lump.Count = data.ReadInt32LittleEndian(); lump.Data = new OccluderData[lump.Count]; for (int i = 0; i < lump.Count; i++) { @@ -571,7 +571,7 @@ namespace SabreTools.Serialization.Deserializers if (occluderData != null) lump.Data[i] = occluderData; } - lump.PolyDataCount = data.ReadInt32(); + lump.PolyDataCount = data.ReadInt32LittleEndian(); lump.PolyData = new OccluderPolyData[lump.Count]; for (int i = 0; i < lump.Count; i++) { @@ -579,11 +579,11 @@ namespace SabreTools.Serialization.Deserializers if (polyData != null) lump.PolyData[i] = polyData; } - lump.VertexIndexCount = data.ReadInt32(); + lump.VertexIndexCount = data.ReadInt32LittleEndian(); lump.VertexIndicies = new int[lump.VertexIndexCount]; for (int i = 0; i < lump.VertexIndexCount; i++) { - lump.VertexIndicies[i] = data.ReadInt32(); + lump.VertexIndicies[i] = data.ReadInt32LittleEndian(); } return lump; @@ -616,29 +616,29 @@ namespace SabreTools.Serialization.Deserializers { var leaf = new VbspLeaf(); - leaf.Contents = (VbspContents)data.ReadUInt32(); - leaf.Cluster = data.ReadInt16(); - leaf.AreaFlags = data.ReadInt16(); + leaf.Contents = (VbspContents)data.ReadUInt32LittleEndian(); + leaf.Cluster = data.ReadInt16LittleEndian(); + leaf.AreaFlags = data.ReadInt16LittleEndian(); leaf.Mins = new short[3]; for (int i = 0; i < leaf.Mins.Length; i++) { - leaf.Mins[i] = data.ReadInt16(); + leaf.Mins[i] = data.ReadInt16LittleEndian(); } leaf.Maxs = new short[3]; for (int i = 0; i < leaf.Maxs.Length; i++) { - leaf.Maxs[i] = data.ReadInt16(); + leaf.Maxs[i] = data.ReadInt16LittleEndian(); } - leaf.FirstLeafFace = data.ReadUInt16(); - leaf.NumLeafFaces = data.ReadUInt16(); - leaf.FirstLeafBrush = data.ReadUInt16(); - leaf.NumLeafBrushes = data.ReadUInt16(); - leaf.LeafWaterDataID = data.ReadInt16(); + leaf.FirstLeafFace = data.ReadUInt16LittleEndian(); + leaf.NumLeafFaces = data.ReadUInt16LittleEndian(); + leaf.FirstLeafBrush = data.ReadUInt16LittleEndian(); + leaf.NumLeafBrushes = data.ReadUInt16LittleEndian(); + leaf.LeafWaterDataID = data.ReadInt16LittleEndian(); if (version == 1) leaf.AmbientLighting = data.ReadType(); else - leaf.Padding = data.ReadInt16(); + leaf.Padding = data.ReadInt16LittleEndian(); return leaf; } @@ -653,7 +653,7 @@ namespace SabreTools.Serialization.Deserializers var marksurfaces = new List(); while (data.Position < offset + length) { - marksurfaces.Add(data.ReadUInt16()); + marksurfaces.Add(data.ReadUInt16LittleEndian()); } return new MarksurfacesLump { Marksurfaces = [.. marksurfaces] }; @@ -687,7 +687,7 @@ namespace SabreTools.Serialization.Deserializers var surfedges = new List(); while (data.Position < offset + length) { - surfedges.Add(data.ReadInt32()); + surfedges.Add(data.ReadInt32LittleEndian()); } return new SurfedgesLump { Surfedges = [.. surfedges] }; @@ -739,7 +739,7 @@ namespace SabreTools.Serialization.Deserializers var map = new List(); while (data.Position < offset + length) { - map.Add(data.ReadUInt16()); + map.Add(data.ReadUInt16LittleEndian()); } return new LeafFacesLump { Map = [.. map] }; @@ -755,7 +755,7 @@ namespace SabreTools.Serialization.Deserializers var map = new List(); while (data.Position < offset + length) { - map.Add(data.ReadUInt16()); + map.Add(data.ReadUInt16LittleEndian()); } return new LeafBrushesLump { Map = [.. map] }; @@ -842,7 +842,7 @@ namespace SabreTools.Serialization.Deserializers { var lump = new GameLump(); - lump.LumpCount = data.ReadInt32(); + lump.LumpCount = data.ReadInt32LittleEndian(); lump.Directories = new GameLumpDirectory[lump.LumpCount]; for (int i = 0; i < lump.LumpCount; i++) { @@ -914,7 +914,7 @@ namespace SabreTools.Serialization.Deserializers var offsets = new List(); while (data.Position < offset + length) { - offsets.Add(data.ReadInt32()); + offsets.Add(data.ReadInt32LittleEndian()); } return new TexdataStringTable { Offsets = [.. offsets] }; diff --git a/SabreTools.Serialization/Deserializers/XZP.cs b/SabreTools.Serialization/Deserializers/XZP.cs index 2336ff08..d0573672 100644 --- a/SabreTools.Serialization/Deserializers/XZP.cs +++ b/SabreTools.Serialization/Deserializers/XZP.cs @@ -152,9 +152,9 @@ namespace SabreTools.Serialization.Deserializers { var obj = new DirectoryItem(); - obj.FileNameCRC = data.ReadUInt32(); - obj.NameOffset = data.ReadUInt32(); - obj.TimeCreated = data.ReadUInt32(); + obj.FileNameCRC = data.ReadUInt32LittleEndian(); + obj.NameOffset = data.ReadUInt32LittleEndian(); + obj.TimeCreated = data.ReadUInt32LittleEndian(); // Cache the current offset long currentPosition = data.Position; diff --git a/SabreTools.Serialization/Extensions.PortableExecutable.cs b/SabreTools.Serialization/Extensions.PortableExecutable.cs index c7ad7a7b..bf7ad49d 100644 --- a/SabreTools.Serialization/Extensions.PortableExecutable.cs +++ b/SabreTools.Serialization/Extensions.PortableExecutable.cs @@ -298,10 +298,10 @@ namespace SabreTools.Serialization dialogTemplateExtended.ExtendedStyle = (ExtendedWindowStyles)entry.Data.ReadUInt32LittleEndian(ref offset); dialogTemplateExtended.Style = (WindowStyles)entry.Data.ReadUInt32LittleEndian(ref offset); dialogTemplateExtended.DialogItems = entry.Data.ReadUInt16LittleEndian(ref offset); - dialogTemplateExtended.PositionX = entry.Data.ReadInt16(ref offset); - dialogTemplateExtended.PositionY = entry.Data.ReadInt16(ref offset); - dialogTemplateExtended.WidthX = entry.Data.ReadInt16(ref offset); - dialogTemplateExtended.HeightY = entry.Data.ReadInt16(ref offset); + dialogTemplateExtended.PositionX = entry.Data.ReadInt16LittleEndian(ref offset); + dialogTemplateExtended.PositionY = entry.Data.ReadInt16LittleEndian(ref offset); + dialogTemplateExtended.WidthX = entry.Data.ReadInt16LittleEndian(ref offset); + dialogTemplateExtended.HeightY = entry.Data.ReadInt16LittleEndian(ref offset); #region Menu resource @@ -442,10 +442,10 @@ namespace SabreTools.Serialization dialogItemTemplate.HelpID = entry.Data.ReadUInt32LittleEndian(ref offset); dialogItemTemplate.ExtendedStyle = (ExtendedWindowStyles)entry.Data.ReadUInt32LittleEndian(ref offset); dialogItemTemplate.Style = (WindowStyles)entry.Data.ReadUInt32LittleEndian(ref offset); - dialogItemTemplate.PositionX = entry.Data.ReadInt16(ref offset); - dialogItemTemplate.PositionY = entry.Data.ReadInt16(ref offset); - dialogItemTemplate.WidthX = entry.Data.ReadInt16(ref offset); - dialogItemTemplate.HeightY = entry.Data.ReadInt16(ref offset); + dialogItemTemplate.PositionX = entry.Data.ReadInt16LittleEndian(ref offset); + dialogItemTemplate.PositionY = entry.Data.ReadInt16LittleEndian(ref offset); + dialogItemTemplate.WidthX = entry.Data.ReadInt16LittleEndian(ref offset); + dialogItemTemplate.HeightY = entry.Data.ReadInt16LittleEndian(ref offset); dialogItemTemplate.ID = entry.Data.ReadUInt32LittleEndian(ref offset); #region Class resource @@ -548,10 +548,10 @@ namespace SabreTools.Serialization dialogTemplate.Style = (WindowStyles)entry.Data.ReadUInt32LittleEndian(ref offset); dialogTemplate.ExtendedStyle = (ExtendedWindowStyles)entry.Data.ReadUInt32LittleEndian(ref offset); dialogTemplate.ItemCount = entry.Data.ReadUInt16LittleEndian(ref offset); - dialogTemplate.PositionX = entry.Data.ReadInt16(ref offset); - dialogTemplate.PositionY = entry.Data.ReadInt16(ref offset); - dialogTemplate.WidthX = entry.Data.ReadInt16(ref offset); - dialogTemplate.HeightY = entry.Data.ReadInt16(ref offset); + dialogTemplate.PositionX = entry.Data.ReadInt16LittleEndian(ref offset); + dialogTemplate.PositionY = entry.Data.ReadInt16LittleEndian(ref offset); + dialogTemplate.WidthX = entry.Data.ReadInt16LittleEndian(ref offset); + dialogTemplate.HeightY = entry.Data.ReadInt16LittleEndian(ref offset); #region Menu resource @@ -698,10 +698,10 @@ namespace SabreTools.Serialization dialogItemTemplate.Style = (WindowStyles)entry.Data.ReadUInt32LittleEndian(ref offset); dialogItemTemplate.ExtendedStyle = (ExtendedWindowStyles)entry.Data.ReadUInt32LittleEndian(ref offset); - dialogItemTemplate.PositionX = entry.Data.ReadInt16(ref offset); - dialogItemTemplate.PositionY = entry.Data.ReadInt16(ref offset); - dialogItemTemplate.WidthX = entry.Data.ReadInt16(ref offset); - dialogItemTemplate.HeightY = entry.Data.ReadInt16(ref offset); + dialogItemTemplate.PositionX = entry.Data.ReadInt16LittleEndian(ref offset); + dialogItemTemplate.PositionY = entry.Data.ReadInt16LittleEndian(ref offset); + dialogItemTemplate.WidthX = entry.Data.ReadInt16LittleEndian(ref offset); + dialogItemTemplate.HeightY = entry.Data.ReadInt16LittleEndian(ref offset); dialogItemTemplate.ID = entry.Data.ReadUInt16LittleEndian(ref offset); #region Class resource diff --git a/SabreTools.Serialization/Wrappers/PortableExecutable.cs b/SabreTools.Serialization/Wrappers/PortableExecutable.cs index 94518249..3aacaab5 100644 --- a/SabreTools.Serialization/Wrappers/PortableExecutable.cs +++ b/SabreTools.Serialization/Wrappers/PortableExecutable.cs @@ -1045,7 +1045,7 @@ namespace SabreTools.Serialization.Wrappers { // Read the signature int offset = 0; - uint signature = entryData.ReadUInt32(ref offset); + uint signature = entryData.ReadUInt32LittleEndian(ref offset); // Reset the offset offset = 0;