diff --git a/BurnOutSharp.Wrappers/BFPK.cs b/BurnOutSharp.Wrappers/BFPK.cs index 1c5d15e3..ab9f01db 100644 --- a/BurnOutSharp.Wrappers/BFPK.cs +++ b/BurnOutSharp.Wrappers/BFPK.cs @@ -203,8 +203,8 @@ namespace BurnOutSharp.Wrappers Console.WriteLine(" Header Information:"); Console.WriteLine(" -------------------------"); Console.WriteLine($" Magic: {Magic}"); - Console.WriteLine($" Version: {Version}"); - Console.WriteLine($" Files: {Files}"); + Console.WriteLine($" Version: {Version} (0x{Version:X})"); + Console.WriteLine($" Files: {Files} (0x{Files:X})"); Console.WriteLine(); } @@ -225,11 +225,11 @@ namespace BurnOutSharp.Wrappers { var entry = FileTable[i]; Console.WriteLine($" File Table Entry {i}"); - Console.WriteLine($" Name size = {entry.NameSize}"); + Console.WriteLine($" Name size = {entry.NameSize} (0x{entry.NameSize:X})"); Console.WriteLine($" Name = {entry.Name}"); - Console.WriteLine($" Uncompressed size = {entry.UncompressedSize}"); - Console.WriteLine($" Offset = {entry.Offset}"); - Console.WriteLine($" Compressed Size = {entry.CompressedSize}"); + Console.WriteLine($" Uncompressed size = {entry.UncompressedSize} (0x{entry.UncompressedSize:X})"); + Console.WriteLine($" Offset = {entry.Offset} (0x{entry.Offset:X})"); + Console.WriteLine($" Compressed Size = {entry.CompressedSize} (0x{entry.CompressedSize:X})"); } } Console.WriteLine(); diff --git a/BurnOutSharp.Wrappers/BSP.cs b/BurnOutSharp.Wrappers/BSP.cs index c873b167..32249d6c 100644 --- a/BurnOutSharp.Wrappers/BSP.cs +++ b/BurnOutSharp.Wrappers/BSP.cs @@ -127,7 +127,7 @@ namespace BurnOutSharp.Wrappers { Console.WriteLine(" Header Information:"); Console.WriteLine(" -------------------------"); - Console.WriteLine($" Version: {Version}"); + Console.WriteLine($" Version: {Version} (0x{Version:X})"); Console.WriteLine(); } @@ -159,8 +159,8 @@ namespace BurnOutSharp.Wrappers } Console.WriteLine($" Lump {i}{specialLumpName}"); - Console.WriteLine($" Offset: {lump.Offset}"); - Console.WriteLine($" Length: {lump.Length}"); + Console.WriteLine($" Offset: {lump.Offset} (0x{lump.Offset:X})"); + Console.WriteLine($" Length: {lump.Length} (0x{lump.Length:X})"); } } Console.WriteLine(); @@ -174,7 +174,11 @@ namespace BurnOutSharp.Wrappers Console.WriteLine(" Texture Header Information:"); Console.WriteLine(" -------------------------"); Console.WriteLine($" Texture count: {TextureCount}"); - Console.WriteLine($" Offsets: {string.Join(", ", Offsets)}"); + Console.WriteLine($" Offsets:"); + for (int i = 0; i < Offsets.Length; i++) + { + Console.WriteLine($" Offset {i}: {Offsets[i]} (0x{Offsets[i]:X})"); + } Console.WriteLine(); } @@ -196,11 +200,15 @@ namespace BurnOutSharp.Wrappers var texture = Textures[i]; Console.WriteLine($" Texture {i}"); Console.WriteLine($" Name: {texture.Name}"); - Console.WriteLine($" Width: {texture.Width}"); - Console.WriteLine($" Height: {texture.Height}"); - Console.WriteLine($" Offsets: {string.Join(", ", texture.Offsets)}"); + Console.WriteLine($" Width: {texture.Width} (0x{texture.Width:X})"); + Console.WriteLine($" Height: {texture.Height} (0x{texture.Height:X})"); + Console.WriteLine($" Offsets:"); + for (int j = 0; j < texture.Offsets.Length; j++) + { + Console.WriteLine($" Offset {j}: {Offsets[i]} (0x{texture.Offsets[j]:X})"); + } // Skip texture data - Console.WriteLine($" Palette size: {texture.PaletteSize}"); + Console.WriteLine($" Palette size: {texture.PaletteSize} (0x{texture.PaletteSize:X})"); // Skip palette data } } diff --git a/BurnOutSharp.Wrappers/CFB.cs b/BurnOutSharp.Wrappers/CFB.cs index 15a483f1..344c2cf8 100644 --- a/BurnOutSharp.Wrappers/CFB.cs +++ b/BurnOutSharp.Wrappers/CFB.cs @@ -364,27 +364,27 @@ namespace BurnOutSharp.Wrappers { Console.WriteLine(" File Header Information:"); Console.WriteLine(" -------------------------"); - Console.WriteLine($" Signature: {Signature}"); + Console.WriteLine($" Signature: {Signature} (0x{Signature:X})"); Console.WriteLine($" CLSID: {CLSID}"); - Console.WriteLine($" Minor version: {MinorVersion}"); - Console.WriteLine($" Major version: {MajorVersion}"); - Console.WriteLine($" Byte order: {ByteOrder}"); - Console.WriteLine($" Sector shift: {SectorShift} [{(long)Math.Pow(2, SectorShift)}]"); - Console.WriteLine($" Mini sector shift: {MiniSectorShift} [{(long)Math.Pow(2, MiniSectorShift)}]"); + Console.WriteLine($" Minor version: {MinorVersion} (0x{MinorVersion:X})"); + Console.WriteLine($" Major version: {MajorVersion} (0x{MajorVersion:X})"); + Console.WriteLine($" Byte order: {ByteOrder} (0x{ByteOrder:X})"); + Console.WriteLine($" Sector shift: {SectorShift} (0x{SectorShift:X}) => {SectorSize}"); + Console.WriteLine($" Mini sector shift: {MiniSectorShift} (0x{MiniSectorShift:X}) => {MiniSectorSize}"); Console.WriteLine($" Reserved: {BitConverter.ToString(Reserved).Replace('-', ' ')}"); - Console.WriteLine($" Number of directory sectors: {NumberOfDirectorySectors}"); - Console.WriteLine($" Number of FAT sectors: {NumberOfFATSectors}"); - Console.WriteLine($" First directory sector location: {FirstDirectorySectorLocation}"); - Console.WriteLine($" Transaction signature number: {TransactionSignatureNumber}"); - Console.WriteLine($" Mini stream cutoff size: {MiniStreamCutoffSize}"); - Console.WriteLine($" First mini FAT sector location: {FirstMiniFATSectorLocation}"); - Console.WriteLine($" Number of mini FAT sectors: {NumberOfMiniFATSectors}"); - Console.WriteLine($" First DIFAT sector location: {FirstDIFATSectorLocation}"); - Console.WriteLine($" Number of DIFAT sectors: {NumberOfDIFATSectors}"); + Console.WriteLine($" Number of directory sectors: {NumberOfDirectorySectors} (0x{NumberOfDirectorySectors:X})"); + Console.WriteLine($" Number of FAT sectors: {NumberOfFATSectors} (0x{NumberOfFATSectors:X})"); + Console.WriteLine($" First directory sector location: {FirstDirectorySectorLocation} (0x{FirstDirectorySectorLocation:X})"); + Console.WriteLine($" Transaction signature number: {TransactionSignatureNumber} (0x{TransactionSignatureNumber:X})"); + Console.WriteLine($" Mini stream cutoff size: {MiniStreamCutoffSize} (0x{MiniStreamCutoffSize:X})"); + Console.WriteLine($" First mini FAT sector location: {FirstMiniFATSectorLocation} (0x{FirstMiniFATSectorLocation:X})"); + Console.WriteLine($" Number of mini FAT sectors: {NumberOfMiniFATSectors} (0x{NumberOfMiniFATSectors:X})"); + Console.WriteLine($" First DIFAT sector location: {FirstDIFATSectorLocation} (0x{FirstDIFATSectorLocation:X})"); + Console.WriteLine($" Number of DIFAT sectors: {NumberOfDIFATSectors} (0x{NumberOfDIFATSectors:X})"); Console.WriteLine($" DIFAT:"); for (int i = 0; i < DIFAT.Length; i++) { - Console.WriteLine($" DIFAT Entry {i}: {DIFAT[i]}"); + Console.WriteLine($" DIFAT Entry {i}: {DIFAT[i]} (0x{DIFAT[i]:X})"); } Console.WriteLine(); } @@ -404,7 +404,7 @@ namespace BurnOutSharp.Wrappers { for (int i = 0; i < FATSectorNumbers.Length; i++) { - Console.WriteLine($" FAT Sector Entry {i}: {FATSectorNumbers[i]}"); + Console.WriteLine($" FAT Sector Entry {i}: {FATSectorNumbers[i]} (0x{FATSectorNumbers[i]:X})"); } } Console.WriteLine(); @@ -425,7 +425,7 @@ namespace BurnOutSharp.Wrappers { for (int i = 0; i < MiniFATSectorNumbers.Length; i++) { - Console.WriteLine($" Mini FAT Sector Entry {i}: {MiniFATSectorNumbers[i]}"); + Console.WriteLine($" Mini FAT Sector Entry {i}: {MiniFATSectorNumbers[i]} (0x{MiniFATSectorNumbers[i]:X})"); } } Console.WriteLine(); @@ -446,7 +446,7 @@ namespace BurnOutSharp.Wrappers { for (int i = 0; i < DIFATSectorNumbers.Length; i++) { - Console.WriteLine($" DIFAT Sector Entry {i}: {DIFATSectorNumbers[i]}"); + Console.WriteLine($" DIFAT Sector Entry {i}: {DIFATSectorNumbers[i]} (0x{DIFATSectorNumbers[i]:X})"); } } Console.WriteLine(); @@ -470,18 +470,18 @@ namespace BurnOutSharp.Wrappers var directoryEntry = DirectoryEntries[i]; Console.WriteLine($" Directory Entry {i}"); Console.WriteLine($" Name: {directoryEntry.Name}"); - Console.WriteLine($" Name length: {directoryEntry.NameLength}"); - Console.WriteLine($" Object type: {directoryEntry.ObjectType}"); - Console.WriteLine($" Color flag: {directoryEntry.ColorFlag}"); - Console.WriteLine($" Left sibling ID: {directoryEntry.LeftSiblingID}"); - Console.WriteLine($" Right sibling ID: {directoryEntry.RightSiblingID}"); - Console.WriteLine($" Child ID: {directoryEntry.ChildID}"); + Console.WriteLine($" Name length: {directoryEntry.NameLength} (0x{directoryEntry.NameLength:X})"); + Console.WriteLine($" Object type: {directoryEntry.ObjectType} (0x{directoryEntry.ObjectType:X})"); + Console.WriteLine($" Color flag: {directoryEntry.ColorFlag} (0x{directoryEntry.ColorFlag:X})"); + Console.WriteLine($" Left sibling ID: {directoryEntry.LeftSiblingID} (0x{directoryEntry.LeftSiblingID:X})"); + Console.WriteLine($" Right sibling ID: {directoryEntry.RightSiblingID} (0x{directoryEntry.RightSiblingID:X})"); + Console.WriteLine($" Child ID: {directoryEntry.ChildID} (0x{directoryEntry.ChildID:X})"); Console.WriteLine($" CLSID: {directoryEntry.CLSID}"); - Console.WriteLine($" State bits: {directoryEntry.StateBits}"); - Console.WriteLine($" Creation time: {directoryEntry.CreationTime}"); - Console.WriteLine($" Modification time: {directoryEntry.ModifiedTime}"); - Console.WriteLine($" Staring sector location: {directoryEntry.StartingSectorLocation}"); - Console.WriteLine($" Stream size: {directoryEntry.StreamSize}"); + Console.WriteLine($" State bits: {directoryEntry.StateBits} (0x{directoryEntry.StateBits:X})"); + Console.WriteLine($" Creation time: {directoryEntry.CreationTime} (0x{directoryEntry.CreationTime:X})"); + Console.WriteLine($" Modification time: {directoryEntry.ModifiedTime} (0x{directoryEntry.ModifiedTime:X})"); + Console.WriteLine($" Staring sector location: {directoryEntry.StartingSectorLocation} (0x{directoryEntry.StartingSectorLocation:X})"); + Console.WriteLine($" Stream size: {directoryEntry.StreamSize} (0x{directoryEntry.StreamSize:X})"); } } Console.WriteLine(); diff --git a/BurnOutSharp.Wrappers/CIA.cs b/BurnOutSharp.Wrappers/CIA.cs index b278769f..ec32a248 100644 --- a/BurnOutSharp.Wrappers/CIA.cs +++ b/BurnOutSharp.Wrappers/CIA.cs @@ -339,14 +339,14 @@ namespace BurnOutSharp.Wrappers { Console.WriteLine(" CIA Header Information:"); Console.WriteLine(" -------------------------"); - Console.WriteLine($" Header size: {HeaderSize}"); - Console.WriteLine($" Type: {Type}"); - Console.WriteLine($" Version: {Version}"); - Console.WriteLine($" Certificate chain size: {CertificateChainSize}"); - Console.WriteLine($" Ticket size: {TicketSize}"); - Console.WriteLine($" TMD file size: {TMDFileSize}"); - Console.WriteLine($" Meta size: {MetaSize}"); - Console.WriteLine($" Content size: {ContentSize}"); + Console.WriteLine($" Header size: {HeaderSize} (0x{HeaderSize:X})"); + Console.WriteLine($" Type: {Type} (0x{Type:X})"); + Console.WriteLine($" Version: {Version} (0x{Version:X})"); + Console.WriteLine($" Certificate chain size: {CertificateChainSize} (0x{CertificateChainSize:X})"); + Console.WriteLine($" Ticket size: {TicketSize} (0x{TicketSize:X})"); + Console.WriteLine($" TMD file size: {TMDFileSize} (0x{TMDFileSize:X})"); + Console.WriteLine($" Meta size: {MetaSize} (0x{MetaSize:X})"); + Console.WriteLine($" Content size: {ContentSize} (0x{ContentSize:X})"); Console.WriteLine($" Content index: {BitConverter.ToString(ContentIndex).Replace('-', ' ')}"); Console.WriteLine(); } @@ -377,21 +377,21 @@ namespace BurnOutSharp.Wrappers } Console.WriteLine($" Certificate {i}{certificateName}"); - Console.WriteLine($" Signature type: {certificate.SignatureType}"); - Console.WriteLine($" Signature size: {certificate.SignatureSize}"); - Console.WriteLine($" Padding size: {certificate.PaddingSize}"); + Console.WriteLine($" Signature type: {certificate.SignatureType} (0x{certificate.SignatureType:X})"); + Console.WriteLine($" Signature size: {certificate.SignatureSize} (0x{certificate.SignatureSize:X})"); + Console.WriteLine($" Padding size: {certificate.PaddingSize} (0x{certificate.PaddingSize:X})"); Console.WriteLine($" Signature: {BitConverter.ToString(certificate.Signature).Replace('-', ' ')}"); Console.WriteLine($" Padding: {BitConverter.ToString(certificate.Padding).Replace('-', ' ')}"); Console.WriteLine($" Issuer: {certificate.Issuer ?? "[NULL]"}"); - Console.WriteLine($" Key type: {certificate.KeyType}"); + Console.WriteLine($" Key type: {certificate.KeyType} (0x{certificate.KeyType:X})"); Console.WriteLine($" Name: {certificate.Name ?? "[NULL]"}"); - Console.WriteLine($" Expiration time: {certificate.ExpirationTime}"); + Console.WriteLine($" Expiration time: {certificate.ExpirationTime} (0x{certificate.ExpirationTime:X})"); switch (certificate.KeyType) { case Models.N3DS.PublicKeyType.RSA_4096: case Models.N3DS.PublicKeyType.RSA_2048: Console.WriteLine($" Modulus: {BitConverter.ToString(certificate.RSAModulus).Replace('-', ' ')}"); - Console.WriteLine($" Public exponent: {certificate.RSAPublicExponent}"); + Console.WriteLine($" Public exponent: {certificate.RSAPublicExponent} (0x{certificate.RSAPublicExponent:X})"); Console.WriteLine($" Padding: {BitConverter.ToString(certificate.RSAPadding).Replace('-', ' ')}"); break; case Models.N3DS.PublicKeyType.EllipticCurve: @@ -411,33 +411,37 @@ namespace BurnOutSharp.Wrappers { Console.WriteLine(" Ticket Information:"); Console.WriteLine(" -------------------------"); - Console.WriteLine($" Signature type: {T_SignatureType}"); - Console.WriteLine($" Signature size: {T_SignatureSize}"); - Console.WriteLine($" Padding size: {T_PaddingSize}"); + Console.WriteLine($" Signature type: {T_SignatureType} (0x{T_SignatureType:X})"); + Console.WriteLine($" Signature size: {T_SignatureSize} (0x{T_SignatureSize:X})"); + Console.WriteLine($" Padding size: {T_PaddingSize} (0x{T_PaddingSize:X})"); Console.WriteLine($" Signature: {BitConverter.ToString(T_Signature).Replace('-', ' ')}"); Console.WriteLine($" Padding: {BitConverter.ToString(T_Padding).Replace('-', ' ')}"); Console.WriteLine($" Issuer: {T_Issuer ?? "[NULL]"}"); Console.WriteLine($" ECC public key: {BitConverter.ToString(T_ECCPublicKey).Replace('-', ' ')}"); - Console.WriteLine($" Version: {T_Version}"); - Console.WriteLine($" CaCrlVersion: {T_CaCrlVersion}"); - Console.WriteLine($" SignerCrlVersion: {T_SignerCrlVersion}"); + Console.WriteLine($" Version: {T_Version} (0x{T_Version:X})"); + Console.WriteLine($" CaCrlVersion: {T_CaCrlVersion} (0x{T_CaCrlVersion:X})"); + Console.WriteLine($" SignerCrlVersion: {T_SignerCrlVersion} (0x{T_SignerCrlVersion:X})"); Console.WriteLine($" Title key: {BitConverter.ToString(T_TitleKey).Replace('-', ' ')}"); - Console.WriteLine($" Reserved 1: {T_Reserved1}"); - Console.WriteLine($" Ticket ID: {T_TicketID}"); - Console.WriteLine($" Console ID: {T_ConsoleID}"); - Console.WriteLine($" Title ID {T_TitleID}"); + Console.WriteLine($" Reserved 1: {T_Reserved1} (0x{T_Reserved1:X})"); + Console.WriteLine($" Ticket ID: {T_TicketID} (0x{T_TicketID:X})"); + Console.WriteLine($" Console ID: {T_ConsoleID} (0x{T_ConsoleID:X})"); + Console.WriteLine($" Title ID {T_TitleID} (0x{T_TitleID:X})"); Console.WriteLine($" Reserved 2: {BitConverter.ToString(T_Reserved2).Replace('-', ' ')}"); - Console.WriteLine($" Ticket title version: {T_TicketTitleVersion}"); + Console.WriteLine($" Ticket title version: {T_TicketTitleVersion} (0x{T_TicketTitleVersion:X})"); Console.WriteLine($" Reserved 3: {BitConverter.ToString(T_Reserved3).Replace('-', ' ')}"); - Console.WriteLine($" License type: {T_LicenseType}"); - Console.WriteLine($" Common keY index: {T_CommonKeyYIndex}"); + Console.WriteLine($" License type: {T_LicenseType} (0x{T_LicenseType:X})"); + Console.WriteLine($" Common keY index: {T_CommonKeyYIndex} (0x{T_CommonKeyYIndex:X})"); Console.WriteLine($" Reserved 4: {BitConverter.ToString(T_Reserved4).Replace('-', ' ')}"); - Console.WriteLine($" eShop Account ID?: {T_eShopAccountID}"); - Console.WriteLine($" Reserved 5: {T_Reserved5}"); - Console.WriteLine($" Audit: {T_Audit}"); + Console.WriteLine($" eShop Account ID?: {T_eShopAccountID} (0x{T_eShopAccountID:X})"); + Console.WriteLine($" Reserved 5: {T_Reserved5} (0x{T_Reserved5:X})"); + Console.WriteLine($" Audit: {T_Audit} (0x{T_Audit:X})"); Console.WriteLine($" Reserved 6: {BitConverter.ToString(T_Reserved6).Replace('-', ' ')}"); - Console.WriteLine($" Limits: {string.Join(", ", T_Limits)}"); - Console.WriteLine($" Content index size: {T_ContentIndexSize}"); + Console.WriteLine($" Limits:"); + for (int i = 0; i < T_Limits.Length; i++) + { + Console.WriteLine($" Limit {i}: {T_Limits[i]} (0x{T_Limits[i]:X})"); + } + Console.WriteLine($" Content index size: {T_ContentIndexSize} (0x{T_ContentIndexSize:X})"); Console.WriteLine($" Content index: {BitConverter.ToString(T_ContentIndex).Replace('-', ' ')}"); Console.WriteLine(); @@ -461,21 +465,21 @@ namespace BurnOutSharp.Wrappers } Console.WriteLine($" Certificate {i}{certificateName}"); - Console.WriteLine($" Signature type: {certificate.SignatureType}"); - Console.WriteLine($" Signature size: {certificate.SignatureSize}"); - Console.WriteLine($" Padding size: {certificate.PaddingSize}"); + Console.WriteLine($" Signature type: {certificate.SignatureType} (0x{certificate.SignatureType:X})"); + Console.WriteLine($" Signature size: {certificate.SignatureSize} (0x{certificate.SignatureSize:X})"); + Console.WriteLine($" Padding size: {certificate.PaddingSize} (0x{certificate.PaddingSize:X})"); Console.WriteLine($" Signature: {BitConverter.ToString(certificate.Signature).Replace('-', ' ')}"); Console.WriteLine($" Padding: {BitConverter.ToString(certificate.Padding).Replace('-', ' ')}"); Console.WriteLine($" Issuer: {certificate.Issuer ?? "[NULL]"}"); - Console.WriteLine($" Key type: {certificate.KeyType}"); + Console.WriteLine($" Key type: {certificate.KeyType} (0x{certificate.KeyType:X})"); Console.WriteLine($" Name: {certificate.Name ?? "[NULL]"}"); - Console.WriteLine($" Expiration time: {certificate.ExpirationTime}"); + Console.WriteLine($" Expiration time: {certificate.ExpirationTime} (0x{certificate.ExpirationTime:X})"); switch (certificate.KeyType) { case Models.N3DS.PublicKeyType.RSA_4096: case Models.N3DS.PublicKeyType.RSA_2048: Console.WriteLine($" Modulus: {BitConverter.ToString(certificate.RSAModulus).Replace('-', ' ')}"); - Console.WriteLine($" Public exponent: {certificate.RSAPublicExponent}"); + Console.WriteLine($" Public exponent: {certificate.RSAPublicExponent} (0x{certificate.RSAPublicExponent:X})"); Console.WriteLine($" Padding: {BitConverter.ToString(certificate.RSAPadding).Replace('-', ' ')}"); break; case Models.N3DS.PublicKeyType.EllipticCurve: @@ -495,29 +499,29 @@ namespace BurnOutSharp.Wrappers { Console.WriteLine(" Title Metadata Information:"); Console.WriteLine(" -------------------------"); - Console.WriteLine($" Signature type: {TMD_SignatureType}"); - Console.WriteLine($" Signature size: {TMD_SignatureSize}"); - Console.WriteLine($" Padding size: {TMD_PaddingSize}"); + Console.WriteLine($" Signature type: {TMD_SignatureType} (0x{TMD_SignatureType:X})"); + Console.WriteLine($" Signature size: {TMD_SignatureSize} (0x{TMD_SignatureSize:X})"); + Console.WriteLine($" Padding size: {TMD_PaddingSize} (0x{TMD_PaddingSize:X})"); Console.WriteLine($" Signature: {BitConverter.ToString(TMD_Signature).Replace('-', ' ')}"); Console.WriteLine($" Padding 1: {BitConverter.ToString(TMD_Padding1).Replace('-', ' ')}"); Console.WriteLine($" Issuer: {TMD_Issuer ?? "[NULL]"}"); - Console.WriteLine($" Version: {TMD_Version}"); - Console.WriteLine($" CaCrlVersion: {TMD_CaCrlVersion}"); - Console.WriteLine($" SignerCrlVersion: {TMD_SignerCrlVersion}"); - Console.WriteLine($" Reserved 1: {TMD_Reserved1}"); - Console.WriteLine($" System version: {TMD_SystemVersion}"); - Console.WriteLine($" Title ID: {TMD_TitleID}"); - Console.WriteLine($" Title type: {TMD_TitleType}"); - Console.WriteLine($" Group ID: {TMD_GroupID}"); - Console.WriteLine($" Save data size: {TMD_SaveDataSize}"); - Console.WriteLine($" SRL private save data size: {TMD_SRLPrivateSaveDataSize}"); + Console.WriteLine($" Version: {TMD_Version} (0x{TMD_Version:X})"); + Console.WriteLine($" CaCrlVersion: {TMD_CaCrlVersion} (0x{TMD_CaCrlVersion:X})"); + Console.WriteLine($" SignerCrlVersion: {TMD_SignerCrlVersion} (0x{TMD_SignerCrlVersion:X})"); + Console.WriteLine($" Reserved 1: {TMD_Reserved1} (0x{TMD_Reserved1:X})"); + Console.WriteLine($" System version: {TMD_SystemVersion} (0x{TMD_SystemVersion:X})"); + Console.WriteLine($" Title ID: {TMD_TitleID} (0x{TMD_TitleID:X})"); + Console.WriteLine($" Title type: {TMD_TitleType} (0x{TMD_TitleType:X})"); + Console.WriteLine($" Group ID: {TMD_GroupID} (0x{TMD_GroupID:X})"); + Console.WriteLine($" Save data size: {TMD_SaveDataSize} (0x{TMD_SaveDataSize:X})"); + Console.WriteLine($" SRL private save data size: {TMD_SRLPrivateSaveDataSize} (0x{TMD_SRLPrivateSaveDataSize:X})"); Console.WriteLine($" Reserved 2: {BitConverter.ToString(TMD_Reserved2).Replace('-', ' ')}"); - Console.WriteLine($" SRL flag: {TMD_SRLFlag}"); + Console.WriteLine($" SRL flag: {TMD_SRLFlag} (0x{TMD_SRLFlag:X})"); Console.WriteLine($" Reserved 3: {BitConverter.ToString(TMD_Reserved3).Replace('-', ' ')}"); - Console.WriteLine($" Access rights: {TMD_AccessRights}"); - Console.WriteLine($" Title version: {TMD_TitleVersion}"); - Console.WriteLine($" Content count: {TMD_ContentCount}"); - Console.WriteLine($" Boot content: {TMD_BootContent}"); + Console.WriteLine($" Access rights: {TMD_AccessRights} (0x{TMD_AccessRights:X})"); + Console.WriteLine($" Title version: {TMD_TitleVersion} (0x{TMD_TitleVersion:X})"); + Console.WriteLine($" Content count: {TMD_ContentCount} (0x{TMD_ContentCount:X})"); + Console.WriteLine($" Boot content: {TMD_BootContent} (0x{TMD_BootContent:X})"); Console.WriteLine($" Padding 2: {BitConverter.ToString(TMD_Padding2).Replace('-', ' ')}"); Console.WriteLine($" SHA-256 hash of the content info records: {BitConverter.ToString(TMD_SHA256HashContentInfoRecords).Replace('-', ' ')}"); Console.WriteLine(); @@ -534,8 +538,8 @@ namespace BurnOutSharp.Wrappers { var contentInfoRecord = TMD_ContentInfoRecords[i]; Console.WriteLine($" Content Info Record {i}"); - Console.WriteLine($" Content index offset: {contentInfoRecord.ContentIndexOffset}"); - Console.WriteLine($" Content command count: {contentInfoRecord.ContentCommandCount}"); + Console.WriteLine($" Content index offset: {contentInfoRecord.ContentIndexOffset} (0x{contentInfoRecord.ContentIndexOffset:X})"); + Console.WriteLine($" Content command count: {contentInfoRecord.ContentCommandCount} (0x{contentInfoRecord.ContentCommandCount:X})"); Console.WriteLine($" SHA-256 hash of the next {contentInfoRecord.ContentCommandCount} records not hashed: {BitConverter.ToString(contentInfoRecord.UnhashedContentRecordsSHA256Hash).Replace('-', ' ')}"); } } @@ -553,10 +557,10 @@ namespace BurnOutSharp.Wrappers { var contentChunkRecord = TMD_ContentChunkRecords[i]; Console.WriteLine($" Content Chunk Record {i}"); - Console.WriteLine($" Content ID: {contentChunkRecord.ContentId}"); - Console.WriteLine($" Content index: {contentChunkRecord.ContentIndex}"); - Console.WriteLine($" Content type: {contentChunkRecord.ContentType}"); - Console.WriteLine($" Content size: {contentChunkRecord.ContentSize}"); + Console.WriteLine($" Content ID: {contentChunkRecord.ContentId} (0x{contentChunkRecord.ContentId:X})"); + Console.WriteLine($" Content index: {contentChunkRecord.ContentIndex} (0x{contentChunkRecord.ContentIndex:X})"); + Console.WriteLine($" Content type: {contentChunkRecord.ContentType} (0x{contentChunkRecord.ContentType:X})"); + Console.WriteLine($" Content size: {contentChunkRecord.ContentSize} (0x{contentChunkRecord.ContentSize:X})"); Console.WriteLine($" SHA-256 hash: {BitConverter.ToString(contentChunkRecord.SHA256Hash).Replace('-', ' ')}"); } } @@ -582,21 +586,21 @@ namespace BurnOutSharp.Wrappers } Console.WriteLine($" Certificate {i}{certificateName}"); - Console.WriteLine($" Signature type: {certificate.SignatureType}"); - Console.WriteLine($" Signature size: {certificate.SignatureSize}"); - Console.WriteLine($" Padding size: {certificate.PaddingSize}"); + Console.WriteLine($" Signature type: {certificate.SignatureType} (0x{certificate.SignatureType:X})"); + Console.WriteLine($" Signature size: {certificate.SignatureSize} (0x{certificate.SignatureSize:X})"); + Console.WriteLine($" Padding size: {certificate.PaddingSize} (0x{certificate.PaddingSize:X})"); Console.WriteLine($" Signature: {BitConverter.ToString(certificate.Signature).Replace('-', ' ')}"); Console.WriteLine($" Padding: {BitConverter.ToString(certificate.Padding).Replace('-', ' ')}"); Console.WriteLine($" Issuer: {certificate.Issuer ?? "[NULL]"}"); - Console.WriteLine($" Key type: {certificate.KeyType}"); + Console.WriteLine($" Key type: {certificate.KeyType} (0x{certificate.KeyType:X})"); Console.WriteLine($" Name: {certificate.Name ?? "[NULL]"}"); - Console.WriteLine($" Expiration time: {certificate.ExpirationTime}"); + Console.WriteLine($" Expiration time: {certificate.ExpirationTime} (0x{certificate.ExpirationTime:X})"); switch (certificate.KeyType) { case Models.N3DS.PublicKeyType.RSA_4096: case Models.N3DS.PublicKeyType.RSA_2048: Console.WriteLine($" Modulus: {BitConverter.ToString(certificate.RSAModulus).Replace('-', ' ')}"); - Console.WriteLine($" Public exponent: {certificate.RSAPublicExponent}"); + Console.WriteLine($" Public exponent: {certificate.RSAPublicExponent} (0x{certificate.RSAPublicExponent:X})"); Console.WriteLine($" Padding: {BitConverter.ToString(certificate.RSAPadding).Replace('-', ' ')}"); break; case Models.N3DS.PublicKeyType.EllipticCurve: @@ -637,39 +641,39 @@ namespace BurnOutSharp.Wrappers else { Console.WriteLine($" RSA-2048 SHA-256 signature: {BitConverter.ToString(partitionHeader.RSA2048Signature).Replace('-', ' ')}"); - Console.WriteLine($" Magic ID: {partitionHeader.MagicID}"); - Console.WriteLine($" Content size in media units: {partitionHeader.ContentSizeInMediaUnits}"); - Console.WriteLine($" Partition ID: {partitionHeader.PartitionId}"); - Console.WriteLine($" Maker code: {partitionHeader.MakerCode}"); - Console.WriteLine($" Version: {partitionHeader.Version}"); - Console.WriteLine($" Verification hash: {partitionHeader.VerificationHash}"); + Console.WriteLine($" Magic ID: {partitionHeader.MagicID} (0x{partitionHeader.MagicID:X})"); + Console.WriteLine($" Content size in media units: {partitionHeader.ContentSizeInMediaUnits} (0x{partitionHeader.ContentSizeInMediaUnits:X})"); + Console.WriteLine($" Partition ID: {partitionHeader.PartitionId} (0x{partitionHeader.PartitionId:X})"); + Console.WriteLine($" Maker code: {partitionHeader.MakerCode} (0x{partitionHeader.MakerCode:X})"); + Console.WriteLine($" Version: {partitionHeader.Version} (0x{partitionHeader.Version:X})"); + Console.WriteLine($" Verification hash: {partitionHeader.VerificationHash} (0x{partitionHeader.VerificationHash:X})"); Console.WriteLine($" Program ID: {BitConverter.ToString(partitionHeader.ProgramId).Replace('-', ' ')}"); Console.WriteLine($" Reserved 1: {BitConverter.ToString(partitionHeader.Reserved1).Replace('-', ' ')}"); Console.WriteLine($" Logo region SHA-256 hash: {BitConverter.ToString(partitionHeader.LogoRegionHash).Replace('-', ' ')}"); - Console.WriteLine($" Product code: {partitionHeader.ProductCode}"); + Console.WriteLine($" Product code: {partitionHeader.ProductCode} (0x{partitionHeader.ProductCode:X})"); Console.WriteLine($" Extended header SHA-256 hash: {BitConverter.ToString(partitionHeader.ExtendedHeaderHash).Replace('-', ' ')}"); - Console.WriteLine($" Extended header size in bytes: {partitionHeader.ExtendedHeaderSizeInBytes}"); + Console.WriteLine($" Extended header size in bytes: {partitionHeader.ExtendedHeaderSizeInBytes} (0x{partitionHeader.ExtendedHeaderSizeInBytes:X})"); Console.WriteLine($" Reserved 2: {BitConverter.ToString(partitionHeader.Reserved2).Replace('-', ' ')}"); Console.WriteLine(" Flags:"); - Console.WriteLine($" Reserved 0: {partitionHeader.Flags.Reserved0}"); - Console.WriteLine($" Reserved 1: {partitionHeader.Flags.Reserved1}"); - Console.WriteLine($" Reserved 2: {partitionHeader.Flags.Reserved2}"); - Console.WriteLine($" Crypto method: {partitionHeader.Flags.CryptoMethod}"); - Console.WriteLine($" Content platform: {partitionHeader.Flags.ContentPlatform}"); - Console.WriteLine($" Content type: {partitionHeader.Flags.MediaPlatformIndex}"); - Console.WriteLine($" Content unit size: {partitionHeader.Flags.ContentUnitSize}"); - Console.WriteLine($" Bitmasks: {partitionHeader.Flags.BitMasks}"); - Console.WriteLine($" Plain region offset, in media units: {partitionHeader.PlainRegionOffsetInMediaUnits}"); - Console.WriteLine($" Plain region size, in media units: {partitionHeader.PlainRegionSizeInMediaUnits}"); - Console.WriteLine($" Logo region offset, in media units: {partitionHeader.LogoRegionOffsetInMediaUnits}"); - Console.WriteLine($" Logo region size, in media units: {partitionHeader.LogoRegionSizeInMediaUnits}"); - Console.WriteLine($" ExeFS offset, in media units: {partitionHeader.ExeFSOffsetInMediaUnits}"); - Console.WriteLine($" ExeFS size, in media units: {partitionHeader.ExeFSSizeInMediaUnits}"); - Console.WriteLine($" ExeFS hash region size, in media units: {partitionHeader.ExeFSHashRegionSizeInMediaUnits}"); + Console.WriteLine($" Reserved 0: {partitionHeader.Flags.Reserved0} (0x{partitionHeader.Flags.Reserved0:X})"); + Console.WriteLine($" Reserved 1: {partitionHeader.Flags.Reserved1} (0x{partitionHeader.Flags.Reserved1:X})"); + Console.WriteLine($" Reserved 2: {partitionHeader.Flags.Reserved2} (0x{partitionHeader.Flags.Reserved2:X})"); + Console.WriteLine($" Crypto method: {partitionHeader.Flags.CryptoMethod} (0x{partitionHeader.Flags.CryptoMethod:X})"); + Console.WriteLine($" Content platform: {partitionHeader.Flags.ContentPlatform} (0x{partitionHeader.Flags.ContentPlatform:X})"); + Console.WriteLine($" Content type: {partitionHeader.Flags.MediaPlatformIndex} (0x{partitionHeader.Flags.MediaPlatformIndex:X})"); + Console.WriteLine($" Content unit size: {partitionHeader.Flags.ContentUnitSize} (0x{partitionHeader.Flags.ContentUnitSize:X})"); + Console.WriteLine($" Bitmasks: {partitionHeader.Flags.BitMasks} (0x{partitionHeader.Flags.BitMasks:X})"); + Console.WriteLine($" Plain region offset, in media units: {partitionHeader.PlainRegionOffsetInMediaUnits} (0x{partitionHeader.PlainRegionOffsetInMediaUnits:X})"); + Console.WriteLine($" Plain region size, in media units: {partitionHeader.PlainRegionSizeInMediaUnits} (0x{partitionHeader.PlainRegionSizeInMediaUnits:X})"); + Console.WriteLine($" Logo region offset, in media units: {partitionHeader.LogoRegionOffsetInMediaUnits} (0x{partitionHeader.LogoRegionOffsetInMediaUnits:X})"); + Console.WriteLine($" Logo region size, in media units: {partitionHeader.LogoRegionSizeInMediaUnits} (0x{partitionHeader.LogoRegionSizeInMediaUnits:X})"); + Console.WriteLine($" ExeFS offset, in media units: {partitionHeader.ExeFSOffsetInMediaUnits} (0x{partitionHeader.ExeFSOffsetInMediaUnits:X})"); + Console.WriteLine($" ExeFS size, in media units: {partitionHeader.ExeFSSizeInMediaUnits} (0x{partitionHeader.ExeFSSizeInMediaUnits:X})"); + Console.WriteLine($" ExeFS hash region size, in media units: {partitionHeader.ExeFSHashRegionSizeInMediaUnits} (0x{partitionHeader.ExeFSHashRegionSizeInMediaUnits:X})"); Console.WriteLine($" Reserved 3: {BitConverter.ToString(partitionHeader.Reserved3).Replace('-', ' ')}"); - Console.WriteLine($" RomFS offset, in media units: {partitionHeader.RomFSOffsetInMediaUnits}"); - Console.WriteLine($" RomFS size, in media units: {partitionHeader.RomFSSizeInMediaUnits}"); - Console.WriteLine($" RomFS hash region size, in media units: {partitionHeader.RomFSHashRegionSizeInMediaUnits}"); + Console.WriteLine($" RomFS offset, in media units: {partitionHeader.RomFSOffsetInMediaUnits} (0x{partitionHeader.RomFSOffsetInMediaUnits:X})"); + Console.WriteLine($" RomFS size, in media units: {partitionHeader.RomFSSizeInMediaUnits} (0x{partitionHeader.RomFSSizeInMediaUnits:X})"); + Console.WriteLine($" RomFS hash region size, in media units: {partitionHeader.RomFSHashRegionSizeInMediaUnits} (0x{partitionHeader.RomFSHashRegionSizeInMediaUnits:X})"); Console.WriteLine($" Reserved 4: {BitConverter.ToString(partitionHeader.Reserved4).Replace('-', ' ')}"); Console.WriteLine($" ExeFS superblock SHA-256 hash: {BitConverter.ToString(partitionHeader.ExeFSSuperblockHash).Replace('-', ' ')}"); Console.WriteLine($" RomFS superblock SHA-256 hash: {BitConverter.ToString(partitionHeader.RomFSSuperblockHash).Replace('-', ' ')}"); @@ -694,7 +698,7 @@ namespace BurnOutSharp.Wrappers { Console.WriteLine(value: $" Title ID dependency list: {BitConverter.ToString(MD_TitleIDDependencyList).Replace('-', ' ')}"); Console.WriteLine($" Reserved 1: {BitConverter.ToString(MD_Reserved1).Replace('-', ' ')}"); - Console.WriteLine($" Core version: {MD_CoreVersion}"); + Console.WriteLine($" Core version: {MD_CoreVersion} (0x{MD_CoreVersion:X})"); Console.WriteLine($" Reserved 2: {BitConverter.ToString(MD_Reserved2).Replace('-', ' ')}"); Console.WriteLine($" Icon data: {BitConverter.ToString(MD_IconData).Replace('-', ' ')}"); } diff --git a/BurnOutSharp.Wrappers/GCF.cs b/BurnOutSharp.Wrappers/GCF.cs index 9976cf04..250a7df6 100644 --- a/BurnOutSharp.Wrappers/GCF.cs +++ b/BurnOutSharp.Wrappers/GCF.cs @@ -518,17 +518,17 @@ namespace BurnOutSharp.Wrappers { Console.WriteLine(" Header Information:"); Console.WriteLine(" -------------------------"); - Console.WriteLine($" Dummy 0: {Dummy0}"); - Console.WriteLine($" Major version: {MajorVersion}"); - Console.WriteLine($" Minor version: {MinorVersion}"); - Console.WriteLine($" Cache ID: {CacheID}"); - Console.WriteLine($" Last version played: {LastVersionPlayed}"); - Console.WriteLine($" Dummy 1: {Dummy1}"); - Console.WriteLine($" Dummy 2: {Dummy2}"); - Console.WriteLine($" File size: {FileSize}"); - Console.WriteLine($" Block size: {BlockSize}"); - Console.WriteLine($" Block count: {BlockCount}"); - Console.WriteLine($" Dummy 3: {Dummy3}"); + Console.WriteLine($" Dummy 0: {Dummy0} (0x{Dummy0:X})"); + Console.WriteLine($" Major version: {MajorVersion} (0x{MajorVersion:X})"); + Console.WriteLine($" Minor version: {MinorVersion} (0x{MinorVersion:X})"); + Console.WriteLine($" Cache ID: {CacheID} (0x{CacheID:X})"); + Console.WriteLine($" Last version played: {LastVersionPlayed} (0x{LastVersionPlayed:X})"); + Console.WriteLine($" Dummy 1: {Dummy1} (0x{Dummy1:X})"); + Console.WriteLine($" Dummy 2: {Dummy2} (0x{Dummy2:X})"); + Console.WriteLine($" File size: {FileSize} (0x{FileSize:X})"); + Console.WriteLine($" Block size: {BlockSize} (0x{BlockSize:X})"); + Console.WriteLine($" Block count: {BlockCount} (0x{BlockCount:X})"); + Console.WriteLine($" Dummy 3: {Dummy3} (0x{Dummy3:X})"); Console.WriteLine(); } @@ -539,14 +539,14 @@ namespace BurnOutSharp.Wrappers { Console.WriteLine(" Block Entry Header Information:"); Console.WriteLine(" -------------------------"); - Console.WriteLine($" Block count: {BEH_BlockCount}"); - Console.WriteLine($" Blocks used: {BEH_BlocksUsed}"); - Console.WriteLine($" Dummy 0: {BEH_Dummy0}"); - Console.WriteLine($" Dummy 1: {BEH_Dummy1}"); - Console.WriteLine($" Dummy 2: {BEH_Dummy2}"); - Console.WriteLine($" Dummy 3: {BEH_Dummy3}"); - Console.WriteLine($" Dummy 4: {BEH_Dummy4}"); - Console.WriteLine($" Checksum: {BEH_Checksum}"); + Console.WriteLine($" Block count: {BEH_BlockCount} (0x{BEH_BlockCount:X})"); + Console.WriteLine($" Blocks used: {BEH_BlocksUsed} (0x{BEH_BlocksUsed:X})"); + Console.WriteLine($" Dummy 0: {BEH_Dummy0} (0x{BEH_Dummy0:X})"); + Console.WriteLine($" Dummy 1: {BEH_Dummy1} (0x{BEH_Dummy1:X})"); + Console.WriteLine($" Dummy 2: {BEH_Dummy2} (0x{BEH_Dummy2:X})"); + Console.WriteLine($" Dummy 3: {BEH_Dummy3} (0x{BEH_Dummy3:X})"); + Console.WriteLine($" Dummy 4: {BEH_Dummy4} (0x{BEH_Dummy4:X})"); + Console.WriteLine($" Checksum: {BEH_Checksum} (0x{BEH_Checksum:X})"); Console.WriteLine(); } @@ -567,13 +567,13 @@ namespace BurnOutSharp.Wrappers { var blockEntry = BlockEntries[i]; Console.WriteLine($" Block Entry {i}"); - Console.WriteLine($" Entry flags: {blockEntry.EntryFlags}"); - Console.WriteLine($" File data offset: {blockEntry.FileDataOffset}"); - Console.WriteLine($" File data size: {blockEntry.FileDataSize}"); - Console.WriteLine($" First data block index: {blockEntry.FirstDataBlockIndex}"); - Console.WriteLine($" Next block entry index: {blockEntry.NextBlockEntryIndex}"); - Console.WriteLine($" Previous block entry index: {blockEntry.PreviousBlockEntryIndex}"); - Console.WriteLine($" Directory index: {blockEntry.DirectoryIndex}"); + Console.WriteLine($" Entry flags: {blockEntry.EntryFlags} (0x{blockEntry.EntryFlags:X})"); + Console.WriteLine($" File data offset: {blockEntry.FileDataOffset} (0x{blockEntry.FileDataOffset:X})"); + Console.WriteLine($" File data size: {blockEntry.FileDataSize} (0x{blockEntry.FileDataSize:X})"); + Console.WriteLine($" First data block index: {blockEntry.FirstDataBlockIndex} (0x{blockEntry.FirstDataBlockIndex:X})"); + Console.WriteLine($" Next block entry index: {blockEntry.NextBlockEntryIndex} (0x{blockEntry.NextBlockEntryIndex:X})"); + Console.WriteLine($" Previous block entry index: {blockEntry.PreviousBlockEntryIndex} (0x{blockEntry.PreviousBlockEntryIndex:X})"); + Console.WriteLine($" Directory index: {blockEntry.DirectoryIndex} (0x{blockEntry.DirectoryIndex:X})"); } } Console.WriteLine(); @@ -586,10 +586,10 @@ namespace BurnOutSharp.Wrappers { Console.WriteLine(" Fragmentation Map Header Information:"); Console.WriteLine(" -------------------------"); - Console.WriteLine($" Block count: {FMH_BlockCount}"); - Console.WriteLine($" First unused entry: {FMH_FirstUnusedEntry}"); - Console.WriteLine($" Terminator: {FMH_Terminator}"); - Console.WriteLine($" Checksum: {FMH_Checksum}"); + Console.WriteLine($" Block count: {FMH_BlockCount} (0x{FMH_BlockCount:X})"); + Console.WriteLine($" First unused entry: {FMH_FirstUnusedEntry} (0x{FMH_FirstUnusedEntry:X})"); + Console.WriteLine($" Terminator: {FMH_Terminator} (0x{FMH_Terminator:X})"); + Console.WriteLine($" Checksum: {FMH_Checksum} (0x{FMH_Checksum:X})"); Console.WriteLine(); } @@ -610,7 +610,7 @@ namespace BurnOutSharp.Wrappers { var fragmentationMap = FragmentationMaps[i]; Console.WriteLine($" Fragmentation Map {i}"); - Console.WriteLine($" Next data block index: {fragmentationMap.NextDataBlockIndex}"); + Console.WriteLine($" Next data block index: {fragmentationMap.NextDataBlockIndex} (0x{fragmentationMap.NextDataBlockIndex:X})"); } } Console.WriteLine(); @@ -629,11 +629,11 @@ namespace BurnOutSharp.Wrappers } else { - Console.WriteLine($" Block count: {BEMH_BlockCount}"); - Console.WriteLine($" First block entry index: {BEMH_FirstBlockEntryIndex}"); - Console.WriteLine($" Last block entry index: {BEMH_LastBlockEntryIndex}"); - Console.WriteLine($" Dummy 0: {BEMH_Dummy0}"); - Console.WriteLine($" Checksum: {BEMH_Checksum}"); + Console.WriteLine($" Block count: {BEMH_BlockCount} (0x{BEMH_BlockCount:X})"); + Console.WriteLine($" First block entry index: {BEMH_FirstBlockEntryIndex} (0x{BEMH_FirstBlockEntryIndex:X})"); + Console.WriteLine($" Last block entry index: {BEMH_LastBlockEntryIndex} (0x{BEMH_LastBlockEntryIndex:X})"); + Console.WriteLine($" Dummy 0: {BEMH_Dummy0} (0x{BEMH_Dummy0:X})"); + Console.WriteLine($" Checksum: {BEMH_Checksum} (0x{BEMH_Checksum:X})"); } Console.WriteLine(); } @@ -655,8 +655,8 @@ namespace BurnOutSharp.Wrappers { var blockEntryMap = BlockEntryMaps[i]; Console.WriteLine($" Block Entry Map {i}"); - Console.WriteLine($" Previous data block index: {blockEntryMap.PreviousBlockEntryIndex}"); - Console.WriteLine($" Next data block index: {blockEntryMap.NextBlockEntryIndex}"); + Console.WriteLine($" Previous data block index: {blockEntryMap.PreviousBlockEntryIndex} (0x{blockEntryMap.PreviousBlockEntryIndex:X})"); + Console.WriteLine($" Next data block index: {blockEntryMap.NextBlockEntryIndex} (0x{blockEntryMap.NextBlockEntryIndex:X})"); } } Console.WriteLine(); @@ -669,20 +669,20 @@ namespace BurnOutSharp.Wrappers { Console.WriteLine(" Directory Header Information:"); Console.WriteLine(" -------------------------"); - Console.WriteLine($" Dummy 0: {DH_Dummy0}"); - Console.WriteLine($" Cache ID: {DH_CacheID}"); - Console.WriteLine($" Last version played: {DH_LastVersionPlayed}"); - Console.WriteLine($" Item count: {DH_ItemCount}"); - Console.WriteLine($" File count: {DH_FileCount}"); - Console.WriteLine($" Dummy 1: {DH_Dummy1}"); - Console.WriteLine($" Directory size: {DH_DirectorySize}"); - Console.WriteLine($" Name size: {DH_NameSize}"); - Console.WriteLine($" Info 1 count: {DH_Info1Count}"); - Console.WriteLine($" Copy count: {DH_CopyCount}"); - Console.WriteLine($" Local count: {DH_LocalCount}"); - Console.WriteLine($" Dummy 2: {DH_Dummy2}"); - Console.WriteLine($" Dummy 3: {DH_Dummy3}"); - Console.WriteLine($" Checksum: {DH_Checksum}"); + Console.WriteLine($" Dummy 0: {DH_Dummy0} (0x{DH_Dummy0:X})"); + Console.WriteLine($" Cache ID: {DH_CacheID} (0x{DH_CacheID:X})"); + Console.WriteLine($" Last version played: {DH_LastVersionPlayed} (0x{DH_LastVersionPlayed:X})"); + Console.WriteLine($" Item count: {DH_ItemCount} (0x{DH_ItemCount:X})"); + Console.WriteLine($" File count: {DH_FileCount} (0x{DH_FileCount:X})"); + Console.WriteLine($" Dummy 1: {DH_Dummy1} (0x{DH_Dummy1:X})"); + Console.WriteLine($" Directory size: {DH_DirectorySize} (0x{DH_DirectorySize:X})"); + Console.WriteLine($" Name size: {DH_NameSize} (0x{DH_NameSize:X})"); + Console.WriteLine($" Info 1 count: {DH_Info1Count} (0x{DH_Info1Count:X})"); + Console.WriteLine($" Copy count: {DH_CopyCount} (0x{DH_CopyCount:X})"); + Console.WriteLine($" Local count: {DH_LocalCount} (0x{DH_LocalCount:X})"); + Console.WriteLine($" Dummy 2: {DH_Dummy2} (0x{DH_Dummy2:X})"); + Console.WriteLine($" Dummy 3: {DH_Dummy3} (0x{DH_Dummy3:X})"); + Console.WriteLine($" Checksum: {DH_Checksum} (0x{DH_Checksum:X})"); Console.WriteLine(); } @@ -703,14 +703,14 @@ namespace BurnOutSharp.Wrappers { var directoryEntry = DirectoryEntries[i]; Console.WriteLine($" Directory Entry {i}"); - Console.WriteLine($" Name offset: {directoryEntry.NameOffset}"); - Console.WriteLine($" Name: {directoryEntry.Name}"); - Console.WriteLine($" Item size: {directoryEntry.ItemSize}"); - Console.WriteLine($" Checksum index: {directoryEntry.ChecksumIndex}"); - Console.WriteLine($" Directory flags: {directoryEntry.DirectoryFlags}"); - Console.WriteLine($" Parent index: {directoryEntry.ParentIndex}"); - Console.WriteLine($" Next index: {directoryEntry.NextIndex}"); - Console.WriteLine($" First index: {directoryEntry.FirstIndex}"); + Console.WriteLine($" Name offset: {directoryEntry.NameOffset} (0x{directoryEntry.NameOffset:X})"); + Console.WriteLine($" Name: {directoryEntry.Name ?? "[NULL]"}"); + Console.WriteLine($" Item size: {directoryEntry.ItemSize} (0x{directoryEntry.ItemSize:X})"); + Console.WriteLine($" Checksum index: {directoryEntry.ChecksumIndex} (0x{directoryEntry.ChecksumIndex:X})"); + Console.WriteLine($" Directory flags: {directoryEntry.DirectoryFlags} (0x{directoryEntry.DirectoryFlags:X})"); + Console.WriteLine($" Parent index: {directoryEntry.ParentIndex} (0x{directoryEntry.ParentIndex:X})"); + Console.WriteLine($" Next index: {directoryEntry.NextIndex} (0x{directoryEntry.NextIndex:X})"); + Console.WriteLine($" First index: {directoryEntry.FirstIndex} (0x{directoryEntry.FirstIndex:X})"); } } Console.WriteLine(); @@ -733,7 +733,7 @@ namespace BurnOutSharp.Wrappers { var directoryInfoEntry = DirectoryInfo1Entries[i]; Console.WriteLine($" Directory Info 1 Entry {i}"); - Console.WriteLine($" Dummy 0: {directoryInfoEntry.Dummy0}"); + Console.WriteLine($" Dummy 0: {directoryInfoEntry.Dummy0} (0x{directoryInfoEntry.Dummy0:X})"); } } Console.WriteLine(); @@ -756,7 +756,7 @@ namespace BurnOutSharp.Wrappers { var directoryInfoEntry = DirectoryInfo2Entries[i]; Console.WriteLine($" Directory Info 2 Entry {i}"); - Console.WriteLine($" Dummy 0: {directoryInfoEntry.Dummy0}"); + Console.WriteLine($" Dummy 0: {directoryInfoEntry.Dummy0} (0x{directoryInfoEntry.Dummy0:X})"); } } Console.WriteLine(); @@ -779,7 +779,7 @@ namespace BurnOutSharp.Wrappers { var directoryCopyEntry = DirectoryCopyEntries[i]; Console.WriteLine($" Directory Copy Entry {i}"); - Console.WriteLine($" Directory index: {directoryCopyEntry.DirectoryIndex}"); + Console.WriteLine($" Directory index: {directoryCopyEntry.DirectoryIndex} (0x{directoryCopyEntry.DirectoryIndex:X})"); } } Console.WriteLine(); @@ -802,7 +802,7 @@ namespace BurnOutSharp.Wrappers { var directoryLocalEntry = DirectoryLocalEntries[i]; Console.WriteLine($" Directory Local Entry {i}"); - Console.WriteLine($" Directory index: {directoryLocalEntry.DirectoryIndex}"); + Console.WriteLine($" Directory index: {directoryLocalEntry.DirectoryIndex} (0x{directoryLocalEntry.DirectoryIndex:X})"); } } Console.WriteLine(); @@ -821,8 +821,8 @@ namespace BurnOutSharp.Wrappers } else { - Console.WriteLine($" Dummy 0: {DMH_Dummy0}"); - Console.WriteLine($" Dummy 1: {DMH_Dummy1}"); + Console.WriteLine($" Dummy 0: {DMH_Dummy0} (0x{DMH_Dummy0:X})"); + Console.WriteLine($" Dummy 1: {DMH_Dummy1} (0x{DMH_Dummy1:X})"); } Console.WriteLine(); } @@ -844,7 +844,7 @@ namespace BurnOutSharp.Wrappers { var directoryMapEntry = DirectoryMapEntries[i]; Console.WriteLine($" Directory Map Entry {i}"); - Console.WriteLine($" First block index: {directoryMapEntry.FirstBlockIndex}"); + Console.WriteLine($" First block index: {directoryMapEntry.FirstBlockIndex} (0x{directoryMapEntry.FirstBlockIndex:X})"); } } Console.WriteLine(); @@ -857,8 +857,8 @@ namespace BurnOutSharp.Wrappers { Console.WriteLine(" Checksum Header Information:"); Console.WriteLine(" -------------------------"); - Console.WriteLine($" Dummy 0: {CH_Dummy0}"); - Console.WriteLine($" Checksum size: {CH_ChecksumSize}"); + Console.WriteLine($" Dummy 0: {CH_Dummy0} (0x{CH_Dummy0:X})"); + Console.WriteLine($" Checksum size: {CH_ChecksumSize} (0x{CH_ChecksumSize:X})"); Console.WriteLine(); } @@ -869,10 +869,10 @@ namespace BurnOutSharp.Wrappers { Console.WriteLine(" Checksum Map Header Information:"); Console.WriteLine(" -------------------------"); - Console.WriteLine($" Dummy 0: {CMH_Dummy0}"); - Console.WriteLine($" Dummy 1: {CMH_Dummy1}"); - Console.WriteLine($" Item count: {CMH_ItemCount}"); - Console.WriteLine($" Checksum count: {CMH_ChecksumCount}"); + Console.WriteLine($" Dummy 0: {CMH_Dummy0} (0x{CMH_Dummy0:X})"); + Console.WriteLine($" Dummy 1: {CMH_Dummy1} (0x{CMH_Dummy1:X})"); + Console.WriteLine($" Item count: {CMH_ItemCount} (0x{CMH_ItemCount:X})"); + Console.WriteLine($" Checksum count: {CMH_ChecksumCount} (0x{CMH_ChecksumCount:X})"); Console.WriteLine(); } @@ -893,8 +893,8 @@ namespace BurnOutSharp.Wrappers { var checksumMapEntry = ChecksumMapEntries[i]; Console.WriteLine($" Checksum Map Entry {i}"); - Console.WriteLine($" Checksum count: {checksumMapEntry.ChecksumCount}"); - Console.WriteLine($" First checksum index: {checksumMapEntry.FirstChecksumIndex}"); + Console.WriteLine($" Checksum count: {checksumMapEntry.ChecksumCount} (0x{checksumMapEntry.ChecksumCount:X})"); + Console.WriteLine($" First checksum index: {checksumMapEntry.FirstChecksumIndex} (0x{checksumMapEntry.FirstChecksumIndex:X})"); } } Console.WriteLine(); @@ -917,7 +917,7 @@ namespace BurnOutSharp.Wrappers { var checksumEntry = ChecksumEntries[i]; Console.WriteLine($" Checksum Entry {i}"); - Console.WriteLine($" Checksum: {checksumEntry.Checksum}"); + Console.WriteLine($" Checksum: {checksumEntry.Checksum} (0x{checksumEntry.Checksum:X})"); } } Console.WriteLine(); @@ -930,12 +930,12 @@ namespace BurnOutSharp.Wrappers { Console.WriteLine(" Data Block Header Information:"); Console.WriteLine(" -------------------------"); - Console.WriteLine($" Last version played: {DBH_LastVersionPlayed}"); - Console.WriteLine($" Block count: {DBH_BlockCount}"); - Console.WriteLine($" Block size: {DBH_BlockSize}"); - Console.WriteLine($" First block offset: {DBH_FirstBlockOffset}"); - Console.WriteLine($" Blocks used: {DBH_BlocksUsed}"); - Console.WriteLine($" Checksum: {DBH_Checksum}"); + Console.WriteLine($" Last version played: {DBH_LastVersionPlayed} (0x{DBH_LastVersionPlayed:X})"); + Console.WriteLine($" Block count: {DBH_BlockCount} (0x{DBH_BlockCount:X})"); + Console.WriteLine($" Block size: {DBH_BlockSize} (0x{DBH_BlockSize:X})"); + Console.WriteLine($" First block offset: {DBH_FirstBlockOffset} (0x{DBH_FirstBlockOffset:X})"); + Console.WriteLine($" Blocks used: {DBH_BlocksUsed} (0x{DBH_BlocksUsed:X})"); + Console.WriteLine($" Checksum: {DBH_Checksum} (0x{DBH_Checksum:X})"); Console.WriteLine(); } diff --git a/BurnOutSharp.Wrappers/MSDOS.cs b/BurnOutSharp.Wrappers/MSDOS.cs index 2e64ba17..6aa51320 100644 --- a/BurnOutSharp.Wrappers/MSDOS.cs +++ b/BurnOutSharp.Wrappers/MSDOS.cs @@ -165,19 +165,19 @@ namespace BurnOutSharp.Wrappers Console.WriteLine(" Header Information:"); Console.WriteLine(" -------------------------"); Console.WriteLine($" Magic number: {Magic}"); - Console.WriteLine($" Last page bytes: {LastPageBytes}"); - Console.WriteLine($" Pages: {Pages}"); - Console.WriteLine($" Relocation items: {RelocationItems}"); - Console.WriteLine($" Header paragraph size: {HeaderParagraphSize}"); - Console.WriteLine($" Minimum extra paragraphs: {MinimumExtraParagraphs}"); - Console.WriteLine($" Maximum extra paragraphs: {MaximumExtraParagraphs}"); - Console.WriteLine($" Initial SS value: {InitialSSValue}"); - Console.WriteLine($" Initial SP value: {InitialSPValue}"); - Console.WriteLine($" Checksum: {Checksum}"); - Console.WriteLine($" Initial IP value: {InitialIPValue}"); - Console.WriteLine($" Initial CS value: {InitialCSValue}"); - Console.WriteLine($" Relocation table address: {RelocationTableAddr}"); - Console.WriteLine($" Overlay number: {OverlayNumber}"); + Console.WriteLine($" Last page bytes: {LastPageBytes} (0x{LastPageBytes:X})"); + Console.WriteLine($" Pages: {Pages} (0x{Pages:X})"); + Console.WriteLine($" Relocation items: {RelocationItems} (0x{RelocationItems:X})"); + Console.WriteLine($" Header paragraph size: {HeaderParagraphSize} (0x{HeaderParagraphSize:X})"); + Console.WriteLine($" Minimum extra paragraphs: {MinimumExtraParagraphs} (0x{MinimumExtraParagraphs:X})"); + Console.WriteLine($" Maximum extra paragraphs: {MaximumExtraParagraphs} (0x{MaximumExtraParagraphs:X})"); + Console.WriteLine($" Initial SS value: {InitialSSValue} (0x{InitialSSValue:X})"); + Console.WriteLine($" Initial SP value: {InitialSPValue} (0x{InitialSPValue:X})"); + Console.WriteLine($" Checksum: {Checksum} (0x{Checksum:X})"); + Console.WriteLine($" Initial IP value: {InitialIPValue} (0x{InitialIPValue:X})"); + Console.WriteLine($" Initial CS value: {InitialCSValue} (0x{InitialCSValue:X})"); + Console.WriteLine($" Relocation table address: {RelocationTableAddr} (0x{RelocationTableAddr:X})"); + Console.WriteLine($" Overlay number: {OverlayNumber} (0x{OverlayNumber:X})"); } /// @@ -197,8 +197,8 @@ namespace BurnOutSharp.Wrappers { var entry = RelocationTable[i]; Console.WriteLine($" Relocation Table Entry {i}"); - Console.WriteLine($" Offset = {entry.Offset}"); - Console.WriteLine($" Segment = {entry.Segment}"); + Console.WriteLine($" Offset: {entry.Offset} (0x{entry.Offset:X})"); + Console.WriteLine($" Segment: {entry.Segment} (0x{entry.Segment:X})"); } } Console.WriteLine(); diff --git a/BurnOutSharp.Wrappers/MicrosoftCabinet.cs b/BurnOutSharp.Wrappers/MicrosoftCabinet.cs index 347b1126..6e4a2817 100644 --- a/BurnOutSharp.Wrappers/MicrosoftCabinet.cs +++ b/BurnOutSharp.Wrappers/MicrosoftCabinet.cs @@ -415,24 +415,24 @@ namespace BurnOutSharp.Wrappers Console.WriteLine(" Header Information:"); Console.WriteLine(" -------------------------"); Console.WriteLine($" Signature: {Signature}"); - Console.WriteLine($" Reserved 1: {Reserved1}"); - Console.WriteLine($" Cabinet size: {CabinetSize}"); - Console.WriteLine($" Reserved 2: {Reserved2}"); - Console.WriteLine($" Files offset: {FilesOffset}"); - Console.WriteLine($" Reserved 3: {Reserved3}"); - Console.WriteLine($" Minor version: {VersionMinor}"); - Console.WriteLine($" Major version: {VersionMajor}"); - Console.WriteLine($" Folder count: {FolderCount}"); - Console.WriteLine($" File count: {FileCount}"); - Console.WriteLine($" Flags: {Flags}"); - Console.WriteLine($" Set ID: {SetID}"); - Console.WriteLine($" Cabinet index: {CabinetIndex}"); + Console.WriteLine($" Reserved 1: {Reserved1} (0x{Reserved1:X})"); + Console.WriteLine($" Cabinet size: {CabinetSize} (0x{CabinetSize:X})"); + Console.WriteLine($" Reserved 2: {Reserved2} (0x{Reserved2:X})"); + Console.WriteLine($" Files offset: {FilesOffset} (0x{FilesOffset:X})"); + Console.WriteLine($" Reserved 3: {Reserved3} (0x{Reserved3:X})"); + Console.WriteLine($" Minor version: {VersionMinor} (0x{VersionMinor:X})"); + Console.WriteLine($" Major version: {VersionMajor} (0x{VersionMajor:X})"); + Console.WriteLine($" Folder count: {FolderCount} (0x{FolderCount:X})"); + Console.WriteLine($" File count: {FileCount} (0x{FileCount:X})"); + Console.WriteLine($" Flags: {Flags} (0x{Flags:X})"); + Console.WriteLine($" Set ID: {SetID} (0x{SetID:X})"); + Console.WriteLine($" Cabinet index: {CabinetIndex} (0x{CabinetIndex:X})"); if (Flags.HasFlag(Models.MicrosoftCabinet.HeaderFlags.RESERVE_PRESENT)) { - Console.WriteLine($" Header reserved size: {HeaderReservedSize}"); - Console.WriteLine($" Folder reserved size: {FolderReservedSize}"); - Console.WriteLine($" Data reserved size: {DataReservedSize}"); + Console.WriteLine($" Header reserved size: {HeaderReservedSize} (0x{HeaderReservedSize:X})"); + Console.WriteLine($" Folder reserved size: {FolderReservedSize} (0x{FolderReservedSize:X})"); + Console.WriteLine($" Data reserved size: {DataReservedSize} (0x{DataReservedSize:X})"); if (ReservedData == null) Console.WriteLine($" Reserved data = [NULL]"); else @@ -471,9 +471,9 @@ namespace BurnOutSharp.Wrappers { var entry = Folders[i]; Console.WriteLine($" Folder {i}"); - Console.WriteLine($" Cab start offset = {entry.CabStartOffset}"); - Console.WriteLine($" Data count = {entry.DataCount}"); - Console.WriteLine($" Compression type = {entry.CompressionType}"); + Console.WriteLine($" Cab start offset = {entry.CabStartOffset} (0x{entry.CabStartOffset:X})"); + Console.WriteLine($" Data count = {entry.DataCount} (0x{entry.DataCount:X})"); + Console.WriteLine($" Compression type = {entry.CompressionType} (0x{entry.CompressionType:X})"); Console.WriteLine($" Masked compression type = {entry.CompressionType & Models.MicrosoftCabinet.CompressionType.MASK_TYPE}"); if (entry.ReservedData == null) Console.WriteLine($" Reserved data = [NULL]"); @@ -493,9 +493,9 @@ namespace BurnOutSharp.Wrappers { Models.MicrosoftCabinet.CFDATA dataBlock = entry.DataBlocks[j]; Console.WriteLine($" Data Block {j}"); - Console.WriteLine($" Checksum = {dataBlock.Checksum}"); - Console.WriteLine($" Compressed size = {dataBlock.CompressedSize}"); - Console.WriteLine($" Uncompressed size = {dataBlock.UncompressedSize}"); + Console.WriteLine($" Checksum = {dataBlock.Checksum} (0x{dataBlock.Checksum:X})"); + Console.WriteLine($" Compressed size = {dataBlock.CompressedSize} (0x{dataBlock.CompressedSize:X})"); + Console.WriteLine($" Uncompressed size = {dataBlock.UncompressedSize} (0x{dataBlock.UncompressedSize:X})"); if (dataBlock.ReservedData == null) Console.WriteLine($" Reserved data = [NULL]"); else @@ -525,13 +525,13 @@ namespace BurnOutSharp.Wrappers { var entry = Files[i]; Console.WriteLine($" File {i}"); - Console.WriteLine($" File size = {entry.FileSize}"); - Console.WriteLine($" Folder start offset = {entry.FolderStartOffset}"); - Console.WriteLine($" Folder index = {entry.FolderIndex}"); - Console.WriteLine($" Date = {entry.Date}"); - Console.WriteLine($" Time = {entry.Time}"); - Console.WriteLine($" Attributes = {entry.Attributes}"); - Console.WriteLine($" Name = {entry.Name}"); + Console.WriteLine($" File size = {entry.FileSize} (0x{entry.FileSize:X})"); + Console.WriteLine($" Folder start offset = {entry.FolderStartOffset} (0x{entry.FolderStartOffset:X})"); + Console.WriteLine($" Folder index = {entry.FolderIndex} (0x{entry.FolderIndex:X})"); + Console.WriteLine($" Date = {entry.Date} (0x{entry.Date:X})"); + Console.WriteLine($" Time = {entry.Time} (0x{entry.Time:X})"); + Console.WriteLine($" Attributes = {entry.Attributes} (0x{entry.Attributes:X})"); + Console.WriteLine($" Name = {entry.Name ?? "[NULL]"}"); } } Console.WriteLine(); diff --git a/BurnOutSharp.Wrappers/N3DS.cs b/BurnOutSharp.Wrappers/N3DS.cs index dc7acd8e..6977ca7a 100644 --- a/BurnOutSharp.Wrappers/N3DS.cs +++ b/BurnOutSharp.Wrappers/N3DS.cs @@ -302,10 +302,10 @@ namespace BurnOutSharp.Wrappers Console.WriteLine(" NCSD Header Information:"); Console.WriteLine(" -------------------------"); Console.WriteLine($" RSA-2048 SHA-256 signature: {BitConverter.ToString(RSA2048Signature).Replace('-', ' ')}"); - Console.WriteLine($" Magic number: {MagicNumber}"); - Console.WriteLine($" Image size in media units: {ImageSizeInMediaUnits}"); + Console.WriteLine($" Magic number: {MagicNumber} (0x{MagicNumber:X})"); + Console.WriteLine($" Image size in media units: {ImageSizeInMediaUnits} (0x{ImageSizeInMediaUnits:X})"); Console.WriteLine($" Media ID: {BitConverter.ToString(MediaId).Replace('-', ' ')}"); - Console.WriteLine($" Partitions filesystem type: {PartitionsFSType}"); + Console.WriteLine($" Partitions filesystem type: {PartitionsFSType} (0x{PartitionsFSType:X})"); Console.WriteLine($" Partitions crypt type: {BitConverter.ToString(PartitionsCryptType).Replace('-', ' ')}"); Console.WriteLine(); @@ -315,8 +315,8 @@ namespace BurnOutSharp.Wrappers { var partitionTableEntry = PartitionsTable[i]; Console.WriteLine($" Partition table entry {i}"); - Console.WriteLine($" Offset: {partitionTableEntry.Offset}"); - Console.WriteLine($" Length: {partitionTableEntry.Length}"); + Console.WriteLine($" Offset: {partitionTableEntry.Offset} (0x{partitionTableEntry.Offset:X})"); + Console.WriteLine($" Length: {partitionTableEntry.Length} (0x{partitionTableEntry.Length:X})"); } Console.WriteLine(); @@ -324,8 +324,8 @@ namespace BurnOutSharp.Wrappers if (PartitionsFSType == Models.N3DS.FilesystemType.Normal || PartitionsFSType == Models.N3DS.FilesystemType.None) { Console.WriteLine($" Exheader SHA-256 hash: {BitConverter.ToString(ExheaderHash).Replace('-', ' ')}"); - Console.WriteLine($" Additional header size: {AdditionalHeaderSize}"); - Console.WriteLine($" Sector zero offset: {SectorZeroOffset}"); + Console.WriteLine($" Additional header size: {AdditionalHeaderSize} (0x{AdditionalHeaderSize:X})"); + Console.WriteLine($" Sector zero offset: {SectorZeroOffset} (0x{SectorZeroOffset:X})"); Console.WriteLine($" Partition flags: {BitConverter.ToString(PartitionFlags).Replace('-', ' ')}"); Console.WriteLine(); @@ -333,14 +333,14 @@ namespace BurnOutSharp.Wrappers Console.WriteLine(" -------------------------"); for (int i = 0; i < PartitionIdTable.Length; i++) { - Console.WriteLine($" Partition {i} ID: {PartitionIdTable[i]}"); + Console.WriteLine($" Partition {i} ID: {PartitionIdTable[i]} (0x{PartitionIdTable[i]:X})"); } Console.WriteLine(); Console.WriteLine($" Reserved 1: {BitConverter.ToString(Reserved1).Replace('-', ' ')}"); Console.WriteLine($" Reserved 2: {BitConverter.ToString(Reserved2).Replace('-', ' ')}"); - Console.WriteLine($" Firmware update byte 1: {FirmUpdateByte1}"); - Console.WriteLine($" Firmware update byte 2: {FirmUpdateByte2}"); + Console.WriteLine($" Firmware update byte 1: {FirmUpdateByte1} (0x{FirmUpdateByte1:X})"); + Console.WriteLine($" Firmware update byte 2: {FirmUpdateByte2} (0x{FirmUpdateByte2:X})"); } // If we have a firmware image @@ -360,16 +360,16 @@ namespace BurnOutSharp.Wrappers { Console.WriteLine(" Card Info Header Information:"); Console.WriteLine(" -------------------------"); - Console.WriteLine($" Writable address in media units: {CIH_WritableAddressMediaUnits}"); - Console.WriteLine($" Card info bitmask: {CIH_CardInfoBitmask}"); + Console.WriteLine($" Writable address in media units: {CIH_WritableAddressMediaUnits} (0x{CIH_WritableAddressMediaUnits:X})"); + Console.WriteLine($" Card info bitmask: {CIH_CardInfoBitmask} (0x{CIH_CardInfoBitmask:X})"); Console.WriteLine($" Reserved 1: {BitConverter.ToString(CIH_Reserved1).Replace('-', ' ')}"); - Console.WriteLine($" Filled size of cartridge: {CIH_FilledSize}"); + Console.WriteLine($" Filled size of cartridge: {CIH_FilledSize} (0x{CIH_FilledSize:X})"); Console.WriteLine($" Reserved 2: {BitConverter.ToString(CIH_Reserved2).Replace('-', ' ')}"); - Console.WriteLine($" Title version: {CIH_TitleVersion}"); - Console.WriteLine($" Card revision: {CIH_CardRevision}"); + Console.WriteLine($" Title version: {CIH_TitleVersion} (0x{CIH_TitleVersion:X})"); + Console.WriteLine($" Card revision: {CIH_CardRevision} (0x{CIH_CardRevision:X})"); Console.WriteLine($" Reserved 3: {BitConverter.ToString(CIH_Reserved3).Replace('-', ' ')}"); Console.WriteLine($" Title ID of CVer in included update partition: {BitConverter.ToString(CIH_CVerTitleID).Replace('-', ' ')}"); - Console.WriteLine($" Version number of CVer in included update partition: {CIH_CVerVersionNumber}"); + Console.WriteLine($" Version number of CVer in included update partition: {CIH_CVerVersionNumber} (0x{CIH_CVerVersionNumber:X})"); Console.WriteLine($" Reserved 4: {BitConverter.ToString(CIH_Reserved4).Replace('-', ' ')}"); Console.WriteLine(); } @@ -399,36 +399,34 @@ namespace BurnOutSharp.Wrappers Console.WriteLine(" Backup Header:"); Console.WriteLine(" -------------------------"); - Console.WriteLine($" Magic ID: {DCIH_ID_BackupHeader.MagicID}"); - Console.WriteLine($" Content size in media units: {DCIH_ID_BackupHeader.ContentSizeInMediaUnits}"); - Console.WriteLine($" Partition ID: {DCIH_ID_BackupHeader.PartitionId}"); - Console.WriteLine($" Maker code: {DCIH_ID_BackupHeader.MakerCode}"); - Console.WriteLine($" Version: {DCIH_ID_BackupHeader.Version}"); - Console.WriteLine($" Verification hash: {DCIH_ID_BackupHeader.VerificationHash}"); + Console.WriteLine($" Magic ID: {DCIH_ID_BackupHeader.MagicID} (0x{DCIH_ID_BackupHeader.MagicID:X})"); + Console.WriteLine($" Content size in media units: {DCIH_ID_BackupHeader.ContentSizeInMediaUnits} (0x{DCIH_ID_BackupHeader.ContentSizeInMediaUnits:X})"); + Console.WriteLine($" Partition ID: {DCIH_ID_BackupHeader.PartitionId} (0x{DCIH_ID_BackupHeader.PartitionId:X})"); + Console.WriteLine($" Maker code: {DCIH_ID_BackupHeader.MakerCode} (0x{DCIH_ID_BackupHeader.MakerCode:X})"); + Console.WriteLine($" Version: {DCIH_ID_BackupHeader.Version} (0x{DCIH_ID_BackupHeader.Version:X})"); + Console.WriteLine($" Verification hash: {DCIH_ID_BackupHeader.VerificationHash} (0x{DCIH_ID_BackupHeader.VerificationHash:X})"); Console.WriteLine($" Program ID: {BitConverter.ToString(DCIH_ID_BackupHeader.ProgramId).Replace('-', ' ')}"); Console.WriteLine($" Reserved 1: {BitConverter.ToString(DCIH_ID_BackupHeader.Reserved1).Replace('-', ' ')}"); Console.WriteLine($" Logo region SHA-256 hash: {BitConverter.ToString(DCIH_ID_BackupHeader.LogoRegionHash).Replace('-', ' ')}"); - Console.WriteLine($" Product code: {DCIH_ID_BackupHeader.ProductCode}"); + Console.WriteLine($" Product code: {DCIH_ID_BackupHeader.ProductCode} (0x{DCIH_ID_BackupHeader.ProductCode:X})"); Console.WriteLine($" Extended header SHA-256 hash: {BitConverter.ToString(DCIH_ID_BackupHeader.ExtendedHeaderHash).Replace('-', ' ')}"); - Console.WriteLine($" Extended header size in bytes: {DCIH_ID_BackupHeader.ExtendedHeaderSizeInBytes}"); + Console.WriteLine($" Extended header size in bytes: {DCIH_ID_BackupHeader.ExtendedHeaderSizeInBytes} (0x{DCIH_ID_BackupHeader.ExtendedHeaderSizeInBytes:X})"); Console.WriteLine($" Reserved 2: {BitConverter.ToString(DCIH_ID_BackupHeader.Reserved2).Replace('-', ' ')}"); - Console.WriteLine($" Flags: {DCIH_ID_BackupHeader.Flags}"); - Console.WriteLine($" Plain region offset, in media units: {DCIH_ID_BackupHeader.PlainRegionOffsetInMediaUnits}"); - Console.WriteLine($" Plain region size, in media units: {DCIH_ID_BackupHeader.PlainRegionSizeInMediaUnits}"); - Console.WriteLine($" Logo region offset, in media units: {DCIH_ID_BackupHeader.LogoRegionOffsetInMediaUnits}"); - Console.WriteLine($" Logo region size, in media units: {DCIH_ID_BackupHeader.LogoRegionSizeInMediaUnits}"); - Console.WriteLine($" ExeFS offset, in media units: {DCIH_ID_BackupHeader.ExeFSOffsetInMediaUnits}"); - Console.WriteLine($" ExeFS size, in media units: {DCIH_ID_BackupHeader.ExeFSSizeInMediaUnits}"); - Console.WriteLine($" ExeFS hash region size, in media units: {DCIH_ID_BackupHeader.ExeFSHashRegionSizeInMediaUnits}"); + Console.WriteLine($" Flags: {DCIH_ID_BackupHeader.Flags} (0x{DCIH_ID_BackupHeader.Flags:X})"); + Console.WriteLine($" Plain region offset, in media units: {DCIH_ID_BackupHeader.PlainRegionOffsetInMediaUnits} (0x{DCIH_ID_BackupHeader.PlainRegionOffsetInMediaUnits:X})"); + Console.WriteLine($" Plain region size, in media units: {DCIH_ID_BackupHeader.PlainRegionSizeInMediaUnits} (0x{DCIH_ID_BackupHeader.PlainRegionSizeInMediaUnits:X})"); + Console.WriteLine($" Logo region offset, in media units: {DCIH_ID_BackupHeader.LogoRegionOffsetInMediaUnits} (0x{DCIH_ID_BackupHeader.LogoRegionOffsetInMediaUnits:X})"); + Console.WriteLine($" Logo region size, in media units: {DCIH_ID_BackupHeader.LogoRegionSizeInMediaUnits} (0x{DCIH_ID_BackupHeader.LogoRegionSizeInMediaUnits:X})"); + Console.WriteLine($" ExeFS offset, in media units: {DCIH_ID_BackupHeader.ExeFSOffsetInMediaUnits} (0x{DCIH_ID_BackupHeader.ExeFSOffsetInMediaUnits:X})"); + Console.WriteLine($" ExeFS size, in media units: {DCIH_ID_BackupHeader.ExeFSSizeInMediaUnits} (0x{DCIH_ID_BackupHeader.ExeFSSizeInMediaUnits:X})"); + Console.WriteLine($" ExeFS hash region size, in media units: {DCIH_ID_BackupHeader.ExeFSHashRegionSizeInMediaUnits} (0x{DCIH_ID_BackupHeader.ExeFSHashRegionSizeInMediaUnits:X})"); Console.WriteLine($" Reserved 3: {BitConverter.ToString(DCIH_ID_BackupHeader.Reserved3).Replace('-', ' ')}"); - Console.WriteLine($" RomFS offset, in media units: {DCIH_ID_BackupHeader.RomFSOffsetInMediaUnits}"); - Console.WriteLine($" RomFS size, in media units: {DCIH_ID_BackupHeader.RomFSSizeInMediaUnits}"); - Console.WriteLine($" RomFS hash region size, in media units: {DCIH_ID_BackupHeader.RomFSHashRegionSizeInMediaUnits}"); + Console.WriteLine($" RomFS offset, in media units: {DCIH_ID_BackupHeader.RomFSOffsetInMediaUnits} (0x{DCIH_ID_BackupHeader.RomFSOffsetInMediaUnits:X})"); + Console.WriteLine($" RomFS size, in media units: {DCIH_ID_BackupHeader.RomFSSizeInMediaUnits} (0x{DCIH_ID_BackupHeader.RomFSSizeInMediaUnits:X})"); + Console.WriteLine($" RomFS hash region size, in media units: {DCIH_ID_BackupHeader.RomFSHashRegionSizeInMediaUnits} (0x{DCIH_ID_BackupHeader.RomFSHashRegionSizeInMediaUnits:X})"); Console.WriteLine($" Reserved 4: {BitConverter.ToString(DCIH_ID_BackupHeader.Reserved4).Replace('-', ' ')}"); Console.WriteLine($" ExeFS superblock SHA-256 hash: {BitConverter.ToString(DCIH_ID_BackupHeader.ExeFSSuperblockHash).Replace('-', ' ')}"); Console.WriteLine($" RomFS superblock SHA-256 hash: {BitConverter.ToString(DCIH_ID_BackupHeader.RomFSSuperblockHash).Replace('-', ' ')}"); - - // TODO: Print Backup Header? Console.WriteLine(); Console.WriteLine($" Card device reserved 1: {BitConverter.ToString(DCIH_CardDeviceReserved1).Replace('-', ' ')}"); @@ -481,39 +479,39 @@ namespace BurnOutSharp.Wrappers else { Console.WriteLine($" RSA-2048 SHA-256 signature: {BitConverter.ToString(partitionHeader.RSA2048Signature).Replace('-', ' ')}"); - Console.WriteLine($" Magic ID: {partitionHeader.MagicID}"); - Console.WriteLine($" Content size in media units: {partitionHeader.ContentSizeInMediaUnits}"); - Console.WriteLine($" Partition ID: {partitionHeader.PartitionId}"); - Console.WriteLine($" Maker code: {partitionHeader.MakerCode}"); - Console.WriteLine($" Version: {partitionHeader.Version}"); - Console.WriteLine($" Verification hash: {partitionHeader.VerificationHash}"); + Console.WriteLine($" Magic ID: {partitionHeader.MagicID} (0x{partitionHeader.MagicID:X})"); + Console.WriteLine($" Content size in media units: {partitionHeader.ContentSizeInMediaUnits} (0x{partitionHeader.ContentSizeInMediaUnits:X})"); + Console.WriteLine($" Partition ID: {partitionHeader.PartitionId} (0x{partitionHeader.PartitionId:X})"); + Console.WriteLine($" Maker code: {partitionHeader.MakerCode} (0x{partitionHeader.MakerCode:X})"); + Console.WriteLine($" Version: {partitionHeader.Version} (0x{partitionHeader.Version:X})"); + Console.WriteLine($" Verification hash: {partitionHeader.VerificationHash} (0x{partitionHeader.VerificationHash:X})"); Console.WriteLine($" Program ID: {BitConverter.ToString(partitionHeader.ProgramId).Replace('-', ' ')}"); Console.WriteLine($" Reserved 1: {BitConverter.ToString(partitionHeader.Reserved1).Replace('-', ' ')}"); Console.WriteLine($" Logo region SHA-256 hash: {BitConverter.ToString(partitionHeader.LogoRegionHash).Replace('-', ' ')}"); - Console.WriteLine($" Product code: {partitionHeader.ProductCode}"); + Console.WriteLine($" Product code: {partitionHeader.ProductCode} (0x{partitionHeader.ProductCode:X})"); Console.WriteLine($" Extended header SHA-256 hash: {BitConverter.ToString(partitionHeader.ExtendedHeaderHash).Replace('-', ' ')}"); - Console.WriteLine($" Extended header size in bytes: {partitionHeader.ExtendedHeaderSizeInBytes}"); + Console.WriteLine($" Extended header size in bytes: {partitionHeader.ExtendedHeaderSizeInBytes} (0x{partitionHeader.ExtendedHeaderSizeInBytes:X})"); Console.WriteLine($" Reserved 2: {BitConverter.ToString(partitionHeader.Reserved2).Replace('-', ' ')}"); Console.WriteLine(" Flags:"); - Console.WriteLine($" Reserved 0: {partitionHeader.Flags.Reserved0}"); - Console.WriteLine($" Reserved 1: {partitionHeader.Flags.Reserved1}"); - Console.WriteLine($" Reserved 2: {partitionHeader.Flags.Reserved2}"); - Console.WriteLine($" Crypto method: {partitionHeader.Flags.CryptoMethod}"); - Console.WriteLine($" Content platform: {partitionHeader.Flags.ContentPlatform}"); - Console.WriteLine($" Content type: {partitionHeader.Flags.MediaPlatformIndex}"); - Console.WriteLine($" Content unit size: {partitionHeader.Flags.ContentUnitSize}"); - Console.WriteLine($" Bitmasks: {partitionHeader.Flags.BitMasks}"); - Console.WriteLine($" Plain region offset, in media units: {partitionHeader.PlainRegionOffsetInMediaUnits}"); - Console.WriteLine($" Plain region size, in media units: {partitionHeader.PlainRegionSizeInMediaUnits}"); - Console.WriteLine($" Logo region offset, in media units: {partitionHeader.LogoRegionOffsetInMediaUnits}"); - Console.WriteLine($" Logo region size, in media units: {partitionHeader.LogoRegionSizeInMediaUnits}"); - Console.WriteLine($" ExeFS offset, in media units: {partitionHeader.ExeFSOffsetInMediaUnits}"); - Console.WriteLine($" ExeFS size, in media units: {partitionHeader.ExeFSSizeInMediaUnits}"); - Console.WriteLine($" ExeFS hash region size, in media units: {partitionHeader.ExeFSHashRegionSizeInMediaUnits}"); + Console.WriteLine($" Reserved 0: {partitionHeader.Flags.Reserved0} (0x{partitionHeader.Flags.Reserved0:X})"); + Console.WriteLine($" Reserved 1: {partitionHeader.Flags.Reserved1} (0x{partitionHeader.Flags.Reserved1:X})"); + Console.WriteLine($" Reserved 2: {partitionHeader.Flags.Reserved2} (0x{partitionHeader.Flags.Reserved2:X})"); + Console.WriteLine($" Crypto method: {partitionHeader.Flags.CryptoMethod} (0x{partitionHeader.Flags.CryptoMethod:X})"); + Console.WriteLine($" Content platform: {partitionHeader.Flags.ContentPlatform} (0x{partitionHeader.Flags.ContentPlatform:X})"); + Console.WriteLine($" Content type: {partitionHeader.Flags.MediaPlatformIndex} (0x{partitionHeader.Flags.MediaPlatformIndex:X})"); + Console.WriteLine($" Content unit size: {partitionHeader.Flags.ContentUnitSize} (0x{partitionHeader.Flags.ContentUnitSize:X})"); + Console.WriteLine($" Bitmasks: {partitionHeader.Flags.BitMasks} (0x{partitionHeader.Flags.BitMasks:X})"); + Console.WriteLine($" Plain region offset, in media units: {partitionHeader.PlainRegionOffsetInMediaUnits} (0x{partitionHeader.PlainRegionOffsetInMediaUnits:X})"); + Console.WriteLine($" Plain region size, in media units: {partitionHeader.PlainRegionSizeInMediaUnits} (0x{partitionHeader.PlainRegionSizeInMediaUnits:X})"); + Console.WriteLine($" Logo region offset, in media units: {partitionHeader.LogoRegionOffsetInMediaUnits} (0x{partitionHeader.LogoRegionOffsetInMediaUnits:X})"); + Console.WriteLine($" Logo region size, in media units: {partitionHeader.LogoRegionSizeInMediaUnits} (0x{partitionHeader.LogoRegionSizeInMediaUnits:X})"); + Console.WriteLine($" ExeFS offset, in media units: {partitionHeader.ExeFSOffsetInMediaUnits} (0x{partitionHeader.ExeFSOffsetInMediaUnits:X})"); + Console.WriteLine($" ExeFS size, in media units: {partitionHeader.ExeFSSizeInMediaUnits} (0x{partitionHeader.ExeFSSizeInMediaUnits:X})"); + Console.WriteLine($" ExeFS hash region size, in media units: {partitionHeader.ExeFSHashRegionSizeInMediaUnits} (0x{partitionHeader.ExeFSHashRegionSizeInMediaUnits:X})"); Console.WriteLine($" Reserved 3: {BitConverter.ToString(partitionHeader.Reserved3).Replace('-', ' ')}"); - Console.WriteLine($" RomFS offset, in media units: {partitionHeader.RomFSOffsetInMediaUnits}"); - Console.WriteLine($" RomFS size, in media units: {partitionHeader.RomFSSizeInMediaUnits}"); - Console.WriteLine($" RomFS hash region size, in media units: {partitionHeader.RomFSHashRegionSizeInMediaUnits}"); + Console.WriteLine($" RomFS offset, in media units: {partitionHeader.RomFSOffsetInMediaUnits} (0x{partitionHeader.RomFSOffsetInMediaUnits:X})"); + Console.WriteLine($" RomFS size, in media units: {partitionHeader.RomFSSizeInMediaUnits} (0x{partitionHeader.RomFSSizeInMediaUnits:X})"); + Console.WriteLine($" RomFS hash region size, in media units: {partitionHeader.RomFSHashRegionSizeInMediaUnits} (0x{partitionHeader.RomFSHashRegionSizeInMediaUnits:X})"); Console.WriteLine($" Reserved 4: {BitConverter.ToString(partitionHeader.Reserved4).Replace('-', ' ')}"); Console.WriteLine($" ExeFS superblock SHA-256 hash: {BitConverter.ToString(partitionHeader.ExeFSSuperblockHash).Replace('-', ' ')}"); Console.WriteLine($" RomFS superblock SHA-256 hash: {BitConverter.ToString(partitionHeader.RomFSSuperblockHash).Replace('-', ' ')}"); @@ -549,57 +547,57 @@ namespace BurnOutSharp.Wrappers Console.WriteLine($" System control info:"); Console.WriteLine($" Application title: {extendedHeader.SCI.ApplicationTitle}"); Console.WriteLine($" Reserved 1: {BitConverter.ToString(extendedHeader.SCI.Reserved1).Replace('-', ' ')}"); - Console.WriteLine($" Flag: {extendedHeader.SCI.Flag}"); - Console.WriteLine($" Remaster version: {extendedHeader.SCI.RemasterVersion}"); + Console.WriteLine($" Flag: {extendedHeader.SCI.Flag} (0x{extendedHeader.SCI.Flag:X})"); + Console.WriteLine($" Remaster version: {extendedHeader.SCI.RemasterVersion} (0x{extendedHeader.SCI.RemasterVersion:X})"); Console.WriteLine($" Text code set info:"); - Console.WriteLine($" Address: {extendedHeader.SCI.TextCodeSetInfo.Address}"); - Console.WriteLine($" Physical region size (in page-multiples): {extendedHeader.SCI.TextCodeSetInfo.PhysicalRegionSizeInPages}"); - Console.WriteLine($" Size (in bytes): {extendedHeader.SCI.TextCodeSetInfo.SizeInBytes}"); + Console.WriteLine($" Address: {extendedHeader.SCI.TextCodeSetInfo.Address} (0x{extendedHeader.SCI.TextCodeSetInfo.Address:X})"); + Console.WriteLine($" Physical region size (in page-multiples): {extendedHeader.SCI.TextCodeSetInfo.PhysicalRegionSizeInPages} (0x{extendedHeader.SCI.TextCodeSetInfo.PhysicalRegionSizeInPages:X})"); + Console.WriteLine($" Size (in bytes): {extendedHeader.SCI.TextCodeSetInfo.SizeInBytes} (0x{extendedHeader.SCI.TextCodeSetInfo.SizeInBytes:X})"); - Console.WriteLine($" Stack size: {extendedHeader.SCI.StackSize}"); + Console.WriteLine($" Stack size: {extendedHeader.SCI.StackSize} (0x{extendedHeader.SCI.StackSize:X})"); Console.WriteLine($" Read-only code set info:"); - Console.WriteLine($" Address: {extendedHeader.SCI.ReadOnlyCodeSetInfo.Address}"); - Console.WriteLine($" Physical region size (in page-multiples): {extendedHeader.SCI.ReadOnlyCodeSetInfo.PhysicalRegionSizeInPages}"); - Console.WriteLine($" Size (in bytes): {extendedHeader.SCI.ReadOnlyCodeSetInfo.SizeInBytes}"); + Console.WriteLine($" Address: {extendedHeader.SCI.ReadOnlyCodeSetInfo.Address} (0x{extendedHeader.SCI.ReadOnlyCodeSetInfo.Address:X})"); + Console.WriteLine($" Physical region size (in page-multiples): {extendedHeader.SCI.ReadOnlyCodeSetInfo.PhysicalRegionSizeInPages} (0x{extendedHeader.SCI.ReadOnlyCodeSetInfo.PhysicalRegionSizeInPages:X})"); + Console.WriteLine($" Size (in bytes): {extendedHeader.SCI.ReadOnlyCodeSetInfo.SizeInBytes} (0x{extendedHeader.SCI.ReadOnlyCodeSetInfo.SizeInBytes:X})"); Console.WriteLine($" Reserved 2: {BitConverter.ToString(extendedHeader.SCI.Reserved2).Replace('-', newChar: ' ')}"); Console.WriteLine($" Data code set info:"); - Console.WriteLine($" Address: {extendedHeader.SCI.DataCodeSetInfo.Address}"); - Console.WriteLine($" Physical region size (in page-multiples): {extendedHeader.SCI.DataCodeSetInfo.PhysicalRegionSizeInPages}"); - Console.WriteLine($" Size (in bytes): {extendedHeader.SCI.DataCodeSetInfo.SizeInBytes}"); + Console.WriteLine($" Address: {extendedHeader.SCI.DataCodeSetInfo.Address} (0x{extendedHeader.SCI.DataCodeSetInfo.Address:X})"); + Console.WriteLine($" Physical region size (in page-multiples): {extendedHeader.SCI.DataCodeSetInfo.PhysicalRegionSizeInPages} (0x{extendedHeader.SCI.DataCodeSetInfo.PhysicalRegionSizeInPages:X})"); + Console.WriteLine($" Size (in bytes): {extendedHeader.SCI.DataCodeSetInfo.SizeInBytes} (0x{extendedHeader.SCI.DataCodeSetInfo.SizeInBytes:X})"); - Console.WriteLine($" BSS size: {extendedHeader.SCI.BSSSize}"); + Console.WriteLine($" BSS size: {extendedHeader.SCI.BSSSize} (0x{extendedHeader.SCI.BSSSize:X})"); Console.WriteLine($" Dependency module list: {string.Join(", ", extendedHeader.SCI.DependencyModuleList)}"); Console.WriteLine($" System info:"); - Console.WriteLine($" SaveData size: {extendedHeader.SCI.SystemInfo.SaveDataSize}"); - Console.WriteLine($" Jump ID: {extendedHeader.SCI.SystemInfo.JumpID}"); + Console.WriteLine($" SaveData size: {extendedHeader.SCI.SystemInfo.SaveDataSize} (0x{extendedHeader.SCI.SystemInfo.SaveDataSize:X})"); + Console.WriteLine($" Jump ID: {extendedHeader.SCI.SystemInfo.JumpID} (0x{extendedHeader.SCI.SystemInfo.JumpID:X})"); Console.WriteLine($" Reserved: {BitConverter.ToString(extendedHeader.SCI.SystemInfo.Reserved).Replace('-', newChar: ' ')}"); Console.WriteLine($" Access control info:"); Console.WriteLine($" ARM11 local system capabilities:"); - Console.WriteLine($" Program ID: {extendedHeader.ACI.ARM11LocalSystemCapabilities.ProgramID}"); - Console.WriteLine($" Core version: {extendedHeader.ACI.ARM11LocalSystemCapabilities.CoreVersion}"); - Console.WriteLine($" Flag 1: {extendedHeader.ACI.ARM11LocalSystemCapabilities.Flag1}"); - Console.WriteLine($" Flag 2: {extendedHeader.ACI.ARM11LocalSystemCapabilities.Flag2}"); - Console.WriteLine($" Flag 0: {extendedHeader.ACI.ARM11LocalSystemCapabilities.Flag0}"); - Console.WriteLine($" Priority: {extendedHeader.ACI.ARM11LocalSystemCapabilities.Priority}"); + Console.WriteLine($" Program ID: {extendedHeader.ACI.ARM11LocalSystemCapabilities.ProgramID} (0x{extendedHeader.ACI.ARM11LocalSystemCapabilities.ProgramID:X})"); + Console.WriteLine($" Core version: {extendedHeader.ACI.ARM11LocalSystemCapabilities.CoreVersion} (0x{extendedHeader.ACI.ARM11LocalSystemCapabilities.CoreVersion:X})"); + Console.WriteLine($" Flag 1: {extendedHeader.ACI.ARM11LocalSystemCapabilities.Flag1} (0x{extendedHeader.ACI.ARM11LocalSystemCapabilities.Flag1:X})"); + Console.WriteLine($" Flag 2: {extendedHeader.ACI.ARM11LocalSystemCapabilities.Flag2} (0x{extendedHeader.ACI.ARM11LocalSystemCapabilities.Flag2:X})"); + Console.WriteLine($" Flag 0: {extendedHeader.ACI.ARM11LocalSystemCapabilities.Flag0} (0x{extendedHeader.ACI.ARM11LocalSystemCapabilities.Flag0:X})"); + Console.WriteLine($" Priority: {extendedHeader.ACI.ARM11LocalSystemCapabilities.Priority} (0x{extendedHeader.ACI.ARM11LocalSystemCapabilities.Priority:X})"); Console.WriteLine($" Resource limit descriptors: {string.Join(", ", extendedHeader.ACI.ARM11LocalSystemCapabilities.ResourceLimitDescriptors)}"); Console.WriteLine($" Storage info:"); - Console.WriteLine($" Extdata ID: {extendedHeader.ACI.ARM11LocalSystemCapabilities.StorageInfo.ExtdataID}"); + Console.WriteLine($" Extdata ID: {extendedHeader.ACI.ARM11LocalSystemCapabilities.StorageInfo.ExtdataID} (0x{extendedHeader.ACI.ARM11LocalSystemCapabilities.StorageInfo.ExtdataID:X})"); Console.WriteLine($" System savedata IDs: {BitConverter.ToString(extendedHeader.ACI.ARM11LocalSystemCapabilities.StorageInfo.SystemSavedataIDs).Replace('-', newChar: ' ')}"); Console.WriteLine($" Storage accessible unique IDs: {BitConverter.ToString(extendedHeader.ACI.ARM11LocalSystemCapabilities.StorageInfo.StorageAccessibleUniqueIDs).Replace('-', newChar: ' ')}"); Console.WriteLine($" File system access info: {BitConverter.ToString(extendedHeader.ACI.ARM11LocalSystemCapabilities.StorageInfo.FileSystemAccessInfo).Replace('-', newChar: ' ')}"); - Console.WriteLine($" Other attributes: {extendedHeader.ACI.ARM11LocalSystemCapabilities.StorageInfo.OtherAttributes}"); + Console.WriteLine($" Other attributes: {extendedHeader.ACI.ARM11LocalSystemCapabilities.StorageInfo.OtherAttributes} (0x{extendedHeader.ACI.ARM11LocalSystemCapabilities.StorageInfo.OtherAttributes:X})"); Console.WriteLine($" Service access control: {string.Join(", ", extendedHeader.ACI.ARM11LocalSystemCapabilities.ServiceAccessControl)}"); Console.WriteLine($" Extended service access control: {string.Join(", ", extendedHeader.ACI.ARM11LocalSystemCapabilities.ExtendedServiceAccessControl)}"); Console.WriteLine($" Reserved: {BitConverter.ToString(extendedHeader.ACI.ARM11LocalSystemCapabilities.Reserved).Replace('-', newChar: ' ')}"); - Console.WriteLine($" Resource limit cateogry: {extendedHeader.ACI.ARM11LocalSystemCapabilities.ResourceLimitCategory}"); + Console.WriteLine($" Resource limit cateogry: {extendedHeader.ACI.ARM11LocalSystemCapabilities.ResourceLimitCategory} (0x{extendedHeader.ACI.ARM11LocalSystemCapabilities.ResourceLimitCategory:X})"); Console.WriteLine($" ARM11 kernel capabilities:"); Console.WriteLine($" Descriptors: {string.Join(", ", extendedHeader.ACI.ARM11KernelCapabilities.Descriptors)}"); @@ -607,7 +605,7 @@ namespace BurnOutSharp.Wrappers Console.WriteLine($" ARM9 access control:"); Console.WriteLine($" Descriptors: {BitConverter.ToString(extendedHeader.ACI.ARM9AccessControl.Descriptors).Replace('-', newChar: ' ')}"); - Console.WriteLine($" Descriptor version: {extendedHeader.ACI.ARM9AccessControl.DescriptorVersion}"); + Console.WriteLine($" Descriptor version: {extendedHeader.ACI.ARM9AccessControl.DescriptorVersion} (0x{extendedHeader.ACI.ARM9AccessControl.DescriptorVersion:X})"); Console.WriteLine($" AccessDec signature (RSA-2048-SHA256): {BitConverter.ToString(extendedHeader.AccessDescSignature).Replace('-', ' ')}"); Console.WriteLine($" NCCH HDR RSA-2048 public key: {BitConverter.ToString(extendedHeader.NCCHHDRPublicKey).Replace('-', ' ')}"); @@ -615,25 +613,25 @@ namespace BurnOutSharp.Wrappers Console.WriteLine($" Access control info (for limitations of first ACI):"); Console.WriteLine($" ARM11 local system capabilities:"); - Console.WriteLine($" Program ID: {extendedHeader.ACIForLimitations.ARM11LocalSystemCapabilities.ProgramID}"); - Console.WriteLine($" Core version: {extendedHeader.ACIForLimitations.ARM11LocalSystemCapabilities.CoreVersion}"); - Console.WriteLine($" Flag 1: {extendedHeader.ACIForLimitations.ARM11LocalSystemCapabilities.Flag1}"); - Console.WriteLine($" Flag 2: {extendedHeader.ACIForLimitations.ARM11LocalSystemCapabilities.Flag2}"); - Console.WriteLine($" Flag 0: {extendedHeader.ACIForLimitations.ARM11LocalSystemCapabilities.Flag0}"); - Console.WriteLine($" Priority: {extendedHeader.ACIForLimitations.ARM11LocalSystemCapabilities.Priority}"); + Console.WriteLine($" Program ID: {extendedHeader.ACIForLimitations.ARM11LocalSystemCapabilities.ProgramID} (0x{extendedHeader.ACIForLimitations.ARM11LocalSystemCapabilities.ProgramID:X})"); + Console.WriteLine($" Core version: {extendedHeader.ACIForLimitations.ARM11LocalSystemCapabilities.CoreVersion} (0x{extendedHeader.ACIForLimitations.ARM11LocalSystemCapabilities.CoreVersion:X})"); + Console.WriteLine($" Flag 1: {extendedHeader.ACIForLimitations.ARM11LocalSystemCapabilities.Flag1} (0x{extendedHeader.ACIForLimitations.ARM11LocalSystemCapabilities.Flag1:X})"); + Console.WriteLine($" Flag 2: {extendedHeader.ACIForLimitations.ARM11LocalSystemCapabilities.Flag2} (0x{extendedHeader.ACIForLimitations.ARM11LocalSystemCapabilities.Flag2:X})"); + Console.WriteLine($" Flag 0: {extendedHeader.ACIForLimitations.ARM11LocalSystemCapabilities.Flag0} (0x{extendedHeader.ACIForLimitations.ARM11LocalSystemCapabilities.Flag0:X})"); + Console.WriteLine($" Priority: {extendedHeader.ACIForLimitations.ARM11LocalSystemCapabilities.Priority} (0x{extendedHeader.ACIForLimitations.ARM11LocalSystemCapabilities.Priority:X})"); Console.WriteLine($" Resource limit descriptors: {string.Join(", ", extendedHeader.ACIForLimitations.ARM11LocalSystemCapabilities.ResourceLimitDescriptors)}"); Console.WriteLine($" Storage info:"); - Console.WriteLine($" Extdata ID: {extendedHeader.ACIForLimitations.ARM11LocalSystemCapabilities.StorageInfo.ExtdataID}"); + Console.WriteLine($" Extdata ID: {extendedHeader.ACIForLimitations.ARM11LocalSystemCapabilities.StorageInfo.ExtdataID} (0x{extendedHeader.ACIForLimitations.ARM11LocalSystemCapabilities.StorageInfo.ExtdataID:X})"); Console.WriteLine($" System savedata IDs: {BitConverter.ToString(extendedHeader.ACIForLimitations.ARM11LocalSystemCapabilities.StorageInfo.SystemSavedataIDs).Replace('-', newChar: ' ')}"); Console.WriteLine($" Storage accessible unique IDs: {BitConverter.ToString(extendedHeader.ACIForLimitations.ARM11LocalSystemCapabilities.StorageInfo.StorageAccessibleUniqueIDs).Replace('-', newChar: ' ')}"); Console.WriteLine($" File system access info: {BitConverter.ToString(extendedHeader.ACIForLimitations.ARM11LocalSystemCapabilities.StorageInfo.FileSystemAccessInfo).Replace('-', newChar: ' ')}"); - Console.WriteLine($" Other attributes: {extendedHeader.ACIForLimitations.ARM11LocalSystemCapabilities.StorageInfo.OtherAttributes}"); + Console.WriteLine($" Other attributes: {extendedHeader.ACIForLimitations.ARM11LocalSystemCapabilities.StorageInfo.OtherAttributes} (0x{extendedHeader.ACIForLimitations.ARM11LocalSystemCapabilities.StorageInfo.OtherAttributes:X})"); Console.WriteLine($" Service access control: {string.Join(", ", extendedHeader.ACIForLimitations.ARM11LocalSystemCapabilities.ServiceAccessControl)}"); Console.WriteLine($" Extended service access control: {string.Join(", ", extendedHeader.ACIForLimitations.ARM11LocalSystemCapabilities.ExtendedServiceAccessControl)}"); Console.WriteLine($" Reserved: {BitConverter.ToString(extendedHeader.ACIForLimitations.ARM11LocalSystemCapabilities.Reserved).Replace('-', newChar: ' ')}"); - Console.WriteLine($" Resource limit cateogry: {extendedHeader.ACIForLimitations.ARM11LocalSystemCapabilities.ResourceLimitCategory}"); + Console.WriteLine($" Resource limit cateogry: {extendedHeader.ACIForLimitations.ARM11LocalSystemCapabilities.ResourceLimitCategory} (0x{extendedHeader.ACIForLimitations.ARM11LocalSystemCapabilities.ResourceLimitCategory:X})"); Console.WriteLine($" ARM11 kernel capabilities:"); Console.WriteLine($" Descriptors: {string.Join(", ", extendedHeader.ACIForLimitations.ARM11KernelCapabilities.Descriptors)}"); @@ -641,7 +639,7 @@ namespace BurnOutSharp.Wrappers Console.WriteLine($" ARM9 access control:"); Console.WriteLine($" Descriptors: {BitConverter.ToString(extendedHeader.ACIForLimitations.ARM9AccessControl.Descriptors).Replace('-', newChar: ' ')}"); - Console.WriteLine($" Descriptor version: {extendedHeader.ACIForLimitations.ARM9AccessControl.DescriptorVersion}"); + Console.WriteLine($" Descriptor version: {extendedHeader.ACIForLimitations.ARM9AccessControl.DescriptorVersion} (0x{extendedHeader.ACIForLimitations.ARM9AccessControl.DescriptorVersion:X})"); } } } @@ -677,8 +675,8 @@ namespace BurnOutSharp.Wrappers var fileHeader = exeFSHeader.FileHeaders[j]; Console.WriteLine(value: $" File Header {j}"); Console.WriteLine(value: $" File name: {fileHeader.FileName}"); - Console.WriteLine(value: $" File offset: {fileHeader.FileOffset}"); - Console.WriteLine(value: $" File size: {fileHeader.FileSize}"); + Console.WriteLine(value: $" File offset: {fileHeader.FileOffset} (0x{fileHeader.FileOffset:X})"); + Console.WriteLine(value: $" File size: {fileHeader.FileSize} (0x{fileHeader.FileSize:X})"); } Console.WriteLine(value: $" Reserved: {BitConverter.ToString(exeFSHeader.Reserved).Replace('-', ' ')}"); @@ -720,22 +718,22 @@ namespace BurnOutSharp.Wrappers else { Console.WriteLine(value: $" Magic string: {romFSHeader.MagicString}"); - Console.WriteLine(value: $" Magic number: {romFSHeader.MagicNumber}"); - Console.WriteLine(value: $" Master hash size: {romFSHeader.MasterHashSize}"); - Console.WriteLine(value: $" Level 1 logical offset: {romFSHeader.Level1LogicalOffset}"); - Console.WriteLine(value: $" Level 1 hashdata size: {romFSHeader.Level1HashdataSize}"); - Console.WriteLine(value: $" Level 1 block size: {romFSHeader.Level1BlockSizeLog2}"); + Console.WriteLine(value: $" Magic number: {romFSHeader.MagicNumber} (0x{romFSHeader.MagicNumber:X})"); + Console.WriteLine(value: $" Master hash size: {romFSHeader.MasterHashSize} (0x{romFSHeader.MasterHashSize:X})"); + Console.WriteLine(value: $" Level 1 logical offset: {romFSHeader.Level1LogicalOffset} (0x{romFSHeader.Level1LogicalOffset:X})"); + Console.WriteLine(value: $" Level 1 hashdata size: {romFSHeader.Level1HashdataSize} (0x{romFSHeader.Level1HashdataSize:X})"); + Console.WriteLine(value: $" Level 1 block size: {romFSHeader.Level1BlockSizeLog2} (0x{romFSHeader.Level1BlockSizeLog2:X})"); Console.WriteLine(value: $" Reserved 1: {BitConverter.ToString(romFSHeader.Reserved1).Replace('-', ' ')}"); - Console.WriteLine(value: $" Level 2 logical offset: {romFSHeader.Level2LogicalOffset}"); - Console.WriteLine(value: $" Level 2 hashdata size: {romFSHeader.Level2HashdataSize}"); - Console.WriteLine(value: $" Level 2 block size: {romFSHeader.Level2BlockSizeLog2}"); + Console.WriteLine(value: $" Level 2 logical offset: {romFSHeader.Level2LogicalOffset} (0x{romFSHeader.Level2LogicalOffset:X})"); + Console.WriteLine(value: $" Level 2 hashdata size: {romFSHeader.Level2HashdataSize} (0x{romFSHeader.Level2HashdataSize:X})"); + Console.WriteLine(value: $" Level 2 block size: {romFSHeader.Level2BlockSizeLog2} (0x{romFSHeader.Level2BlockSizeLog2:X})"); Console.WriteLine(value: $" Reserved 2: {BitConverter.ToString(romFSHeader.Reserved2).Replace('-', ' ')}"); - Console.WriteLine(value: $" Level 3 logical offset: {romFSHeader.Level3LogicalOffset}"); - Console.WriteLine(value: $" Level 3 hashdata size: {romFSHeader.Level3HashdataSize}"); - Console.WriteLine(value: $" Level 3 block size: {romFSHeader.Level3BlockSizeLog2}"); + Console.WriteLine(value: $" Level 3 logical offset: {romFSHeader.Level3LogicalOffset} (0x{romFSHeader.Level3LogicalOffset:X})"); + Console.WriteLine(value: $" Level 3 hashdata size: {romFSHeader.Level3HashdataSize} (0x{romFSHeader.Level3HashdataSize:X})"); + Console.WriteLine(value: $" Level 3 block size: {romFSHeader.Level3BlockSizeLog2} (0x{romFSHeader.Level3BlockSizeLog2:X})"); Console.WriteLine(value: $" Reserved 3: {BitConverter.ToString(romFSHeader.Reserved3).Replace('-', ' ')}"); Console.WriteLine(value: $" Reserved 4: {BitConverter.ToString(romFSHeader.Reserved4).Replace('-', ' ')}"); - Console.WriteLine(value: $" Optional info size: {romFSHeader.OptionalInfoSize}"); + Console.WriteLine(value: $" Optional info size: {romFSHeader.OptionalInfoSize} (0x{romFSHeader.OptionalInfoSize:X})"); } } } diff --git a/BurnOutSharp.Wrappers/NCF.cs b/BurnOutSharp.Wrappers/NCF.cs index 0562d7fb..212b792c 100644 --- a/BurnOutSharp.Wrappers/NCF.cs +++ b/BurnOutSharp.Wrappers/NCF.cs @@ -291,17 +291,17 @@ namespace BurnOutSharp.Wrappers { Console.WriteLine(" Header Information:"); Console.WriteLine(" -------------------------"); - Console.WriteLine($" Dummy 0: {Dummy0}"); - Console.WriteLine($" Major version: {MajorVersion}"); - Console.WriteLine($" Minor version: {MinorVersion}"); - Console.WriteLine($" Cache ID: {CacheID}"); - Console.WriteLine($" Last version played: {LastVersionPlayed}"); - Console.WriteLine($" Dummy 1: {Dummy1}"); - Console.WriteLine($" Dummy 2: {Dummy2}"); - Console.WriteLine($" File size: {FileSize}"); - Console.WriteLine($" Block size: {BlockSize}"); - Console.WriteLine($" Block count: {BlockCount}"); - Console.WriteLine($" Dummy 3: {Dummy3}"); + Console.WriteLine($" Dummy 0: {Dummy0} (0x{Dummy0:X})"); + Console.WriteLine($" Major version: {MajorVersion} (0x{MajorVersion:X})"); + Console.WriteLine($" Minor version: {MinorVersion} (0x{MinorVersion:X})"); + Console.WriteLine($" Cache ID: {CacheID} (0x{CacheID:X})"); + Console.WriteLine($" Last version played: {LastVersionPlayed} (0x{LastVersionPlayed:X})"); + Console.WriteLine($" Dummy 1: {Dummy1} (0x{Dummy1:X})"); + Console.WriteLine($" Dummy 2: {Dummy2} (0x{Dummy2:X})"); + Console.WriteLine($" File size: {FileSize} (0x{FileSize:X})"); + Console.WriteLine($" Block size: {BlockSize} (0x{BlockSize:X})"); + Console.WriteLine($" Block count: {BlockCount} (0x{BlockCount:X})"); + Console.WriteLine($" Dummy 3: {Dummy3} (0x{Dummy3:X})"); Console.WriteLine(); } @@ -312,20 +312,20 @@ namespace BurnOutSharp.Wrappers { Console.WriteLine(" Directory Header Information:"); Console.WriteLine(" -------------------------"); - Console.WriteLine($" Dummy 0: {DH_Dummy0}"); - Console.WriteLine($" Cache ID: {DH_CacheID}"); - Console.WriteLine($" Last version played: {DH_LastVersionPlayed}"); - Console.WriteLine($" Item count: {DH_ItemCount}"); - Console.WriteLine($" File count: {DH_FileCount}"); - Console.WriteLine($" Checksum data length: {DH_ChecksumDataLength}"); - Console.WriteLine($" Directory size: {DH_DirectorySize}"); - Console.WriteLine($" Name size: {DH_NameSize}"); - Console.WriteLine($" Info 1 count: {DH_Info1Count}"); - Console.WriteLine($" Copy count: {DH_CopyCount}"); - Console.WriteLine($" Local count: {DH_LocalCount}"); - Console.WriteLine($" Dummy 1: {DH_Dummy1}"); - Console.WriteLine($" Dummy 2: {DH_Dummy2}"); - Console.WriteLine($" Checksum: {DH_Checksum}"); + Console.WriteLine($" Dummy 0: {DH_Dummy0} (0x{DH_Dummy0:X})"); + Console.WriteLine($" Cache ID: {DH_CacheID} (0x{DH_CacheID:X})"); + Console.WriteLine($" Last version played: {DH_LastVersionPlayed} (0x{DH_LastVersionPlayed:X})"); + Console.WriteLine($" Item count: {DH_ItemCount} (0x{DH_ItemCount:X})"); + Console.WriteLine($" File count: {DH_FileCount} (0x{DH_FileCount:X})"); + Console.WriteLine($" Checksum data length: {DH_ChecksumDataLength} (0x{DH_ChecksumDataLength:X})"); + Console.WriteLine($" Directory size: {DH_DirectorySize} (0x{DH_DirectorySize:X})"); + Console.WriteLine($" Name size: {DH_NameSize} (0x{DH_NameSize:X})"); + Console.WriteLine($" Info 1 count: {DH_Info1Count} (0x{DH_Info1Count:X})"); + Console.WriteLine($" Copy count: {DH_CopyCount} (0x{DH_CopyCount:X})"); + Console.WriteLine($" Local count: {DH_LocalCount} (0x{DH_LocalCount:X})"); + Console.WriteLine($" Dummy 1: {DH_Dummy1} (0x{DH_Dummy1:X})"); + Console.WriteLine($" Dummy 2: {DH_Dummy2} (0x{DH_Dummy2:X})"); + Console.WriteLine($" Checksum: {DH_Checksum} (0x{DH_Checksum:X})"); Console.WriteLine(); } @@ -346,14 +346,14 @@ namespace BurnOutSharp.Wrappers { var directoryEntry = DirectoryEntries[i]; Console.WriteLine($" Directory Entry {i}"); - Console.WriteLine($" Name offset: {directoryEntry.NameOffset}"); + Console.WriteLine($" Name offset: {directoryEntry.NameOffset} (0x{directoryEntry.NameOffset:X})"); Console.WriteLine($" Name: {directoryEntry.Name}"); - Console.WriteLine($" Item size: {directoryEntry.ItemSize}"); - Console.WriteLine($" Checksum index: {directoryEntry.ChecksumIndex}"); - Console.WriteLine($" Directory flags: {directoryEntry.DirectoryFlags}"); - Console.WriteLine($" Parent index: {directoryEntry.ParentIndex}"); - Console.WriteLine($" Next index: {directoryEntry.NextIndex}"); - Console.WriteLine($" First index: {directoryEntry.FirstIndex}"); + Console.WriteLine($" Item size: {directoryEntry.ItemSize} (0x{directoryEntry.ItemSize:X})"); + Console.WriteLine($" Checksum index: {directoryEntry.ChecksumIndex} (0x{directoryEntry.ChecksumIndex:X})"); + Console.WriteLine($" Directory flags: {directoryEntry.DirectoryFlags} (0x{directoryEntry.DirectoryFlags:X})"); + Console.WriteLine($" Parent index: {directoryEntry.ParentIndex} (0x{directoryEntry.ParentIndex:X})"); + Console.WriteLine($" Next index: {directoryEntry.NextIndex} (0x{directoryEntry.NextIndex:X})"); + Console.WriteLine($" First index: {directoryEntry.FirstIndex} (0x{directoryEntry.FirstIndex:X})"); } } Console.WriteLine(); @@ -376,7 +376,7 @@ namespace BurnOutSharp.Wrappers { var directoryInfoEntry = DirectoryInfo1Entries[i]; Console.WriteLine($" Directory Info 1 Entry {i}"); - Console.WriteLine($" Dummy 0: {directoryInfoEntry.Dummy0}"); + Console.WriteLine($" Dummy 0: {directoryInfoEntry.Dummy0} (0x{directoryInfoEntry.Dummy0:X})"); } } Console.WriteLine(); @@ -399,7 +399,7 @@ namespace BurnOutSharp.Wrappers { var directoryInfoEntry = DirectoryInfo2Entries[i]; Console.WriteLine($" Directory Info 2 Entry {i}"); - Console.WriteLine($" Dummy 0: {directoryInfoEntry.Dummy0}"); + Console.WriteLine($" Dummy 0: {directoryInfoEntry.Dummy0} (0x{directoryInfoEntry.Dummy0:X})"); } } Console.WriteLine(); @@ -422,7 +422,7 @@ namespace BurnOutSharp.Wrappers { var directoryCopyEntry = DirectoryCopyEntries[i]; Console.WriteLine($" Directory Copy Entry {i}"); - Console.WriteLine($" Directory index: {directoryCopyEntry.DirectoryIndex}"); + Console.WriteLine($" Directory index: {directoryCopyEntry.DirectoryIndex} (0x{directoryCopyEntry.DirectoryIndex:X})"); } } Console.WriteLine(); @@ -445,7 +445,7 @@ namespace BurnOutSharp.Wrappers { var directoryLocalEntry = DirectoryLocalEntries[i]; Console.WriteLine($" Directory Local Entry {i}"); - Console.WriteLine($" Directory index: {directoryLocalEntry.DirectoryIndex}"); + Console.WriteLine($" Directory index: {directoryLocalEntry.DirectoryIndex} (0x{directoryLocalEntry.DirectoryIndex:X})"); } } Console.WriteLine(); @@ -458,8 +458,8 @@ namespace BurnOutSharp.Wrappers { Console.WriteLine(" Unknown Header Information:"); Console.WriteLine(" -------------------------"); - Console.WriteLine($" Dummy 0: {UH_Dummy0}"); - Console.WriteLine($" Dummy 1: {UH_Dummy1}"); + Console.WriteLine($" Dummy 0: {UH_Dummy0} (0x{UH_Dummy0:X})"); + Console.WriteLine($" Dummy 1: {UH_Dummy1} (0x{UH_Dummy1:X})"); Console.WriteLine(); } @@ -480,7 +480,7 @@ namespace BurnOutSharp.Wrappers { var unknownEntry = UnknownEntries[i]; Console.WriteLine($" Unknown Entry {i}"); - Console.WriteLine($" Dummy 0: {unknownEntry.Dummy0}"); + Console.WriteLine($" Dummy 0: {unknownEntry.Dummy0} (0x{unknownEntry.Dummy0:X})"); } } Console.WriteLine(); @@ -493,8 +493,8 @@ namespace BurnOutSharp.Wrappers { Console.WriteLine(" Checksum Header Information:"); Console.WriteLine(" -------------------------"); - Console.WriteLine($" Dummy 0: {CH_Dummy0}"); - Console.WriteLine($" Checksum size: {CH_ChecksumSize}"); + Console.WriteLine($" Dummy 0: {CH_Dummy0} (0x{CH_Dummy0:X})"); + Console.WriteLine($" Checksum size: {CH_ChecksumSize} (0x{CH_ChecksumSize:X})"); Console.WriteLine(); } @@ -505,10 +505,10 @@ namespace BurnOutSharp.Wrappers { Console.WriteLine(" Checksum Map Header Information:"); Console.WriteLine(" -------------------------"); - Console.WriteLine($" Dummy 0: {CMH_Dummy0}"); - Console.WriteLine($" Dummy 1: {CMH_Dummy1}"); - Console.WriteLine($" Item count: {CMH_ItemCount}"); - Console.WriteLine($" Checksum count: {CMH_ChecksumCount}"); + Console.WriteLine($" Dummy 0: {CMH_Dummy0} (0x{CMH_Dummy0:X})"); + Console.WriteLine($" Dummy 1: {CMH_Dummy1} (0x{CMH_Dummy1:X})"); + Console.WriteLine($" Item count: {CMH_ItemCount} (0x{CMH_ItemCount:X})"); + Console.WriteLine($" Checksum count: {CMH_ChecksumCount} (0x{CMH_ChecksumCount:X})"); Console.WriteLine(); } @@ -529,8 +529,8 @@ namespace BurnOutSharp.Wrappers { var checksumMapEntry = ChecksumMapEntries[i]; Console.WriteLine($" Checksum Map Entry {i}"); - Console.WriteLine($" Checksum count: {checksumMapEntry.ChecksumCount}"); - Console.WriteLine($" First checksum index: {checksumMapEntry.FirstChecksumIndex}"); + Console.WriteLine($" Checksum count: {checksumMapEntry.ChecksumCount} (0x{checksumMapEntry.ChecksumCount:X})"); + Console.WriteLine($" First checksum index: {checksumMapEntry.FirstChecksumIndex} (0x{checksumMapEntry.FirstChecksumIndex:X})"); } } Console.WriteLine(); @@ -553,7 +553,7 @@ namespace BurnOutSharp.Wrappers { var checksumEntry = ChecksumEntries[i]; Console.WriteLine($" Checksum Entry {i}"); - Console.WriteLine($" Checksum: {checksumEntry.Checksum}"); + Console.WriteLine($" Checksum: {checksumEntry.Checksum} (0x{checksumEntry.Checksum:X})"); } } Console.WriteLine(); diff --git a/BurnOutSharp.Wrappers/NewExecutable.cs b/BurnOutSharp.Wrappers/NewExecutable.cs index 58d59a71..ece74f56 100644 --- a/BurnOutSharp.Wrappers/NewExecutable.cs +++ b/BurnOutSharp.Wrappers/NewExecutable.cs @@ -306,19 +306,19 @@ namespace BurnOutSharp.Wrappers Console.WriteLine(" MS-DOS Stub Header Information:"); Console.WriteLine(" -------------------------"); Console.WriteLine($" Magic number: {Stub_Magic}"); - Console.WriteLine($" Last page bytes: {Stub_LastPageBytes}"); - Console.WriteLine($" Pages: {Stub_Pages}"); - Console.WriteLine($" Relocation items: {Stub_RelocationItems}"); - Console.WriteLine($" Header paragraph size: {Stub_HeaderParagraphSize}"); - Console.WriteLine($" Minimum extra paragraphs: {Stub_MinimumExtraParagraphs}"); - Console.WriteLine($" Maximum extra paragraphs: {Stub_MaximumExtraParagraphs}"); - Console.WriteLine($" Initial SS value: {Stub_InitialSSValue}"); - Console.WriteLine($" Initial SP value: {Stub_InitialSPValue}"); - Console.WriteLine($" Checksum: {Stub_Checksum}"); - Console.WriteLine($" Initial IP value: {Stub_InitialIPValue}"); - Console.WriteLine($" Initial CS value: {Stub_InitialCSValue}"); - Console.WriteLine($" Relocation table address: {Stub_RelocationTableAddr}"); - Console.WriteLine($" Overlay number: {Stub_OverlayNumber}"); + Console.WriteLine($" Last page bytes: {Stub_LastPageBytes} (0x{Stub_LastPageBytes:X})"); + Console.WriteLine($" Pages: {Stub_Pages} (0x{Stub_Pages:X})"); + Console.WriteLine($" Relocation items: {Stub_RelocationItems} (0x{Stub_RelocationItems:X})"); + Console.WriteLine($" Header paragraph size: {Stub_HeaderParagraphSize} (0x{Stub_HeaderParagraphSize:X})"); + Console.WriteLine($" Minimum extra paragraphs: {Stub_MinimumExtraParagraphs} (0x{Stub_MinimumExtraParagraphs:X})"); + Console.WriteLine($" Maximum extra paragraphs: {Stub_MaximumExtraParagraphs} (0x{Stub_MaximumExtraParagraphs:X})"); + Console.WriteLine($" Initial SS value: {Stub_InitialSSValue} (0x{Stub_InitialSSValue:X})"); + Console.WriteLine($" Initial SP value: {Stub_InitialSPValue} (0x{Stub_InitialSPValue:X})"); + Console.WriteLine($" Checksum: {Stub_Checksum} (0x{Stub_Checksum:X})"); + Console.WriteLine($" Initial IP value: {Stub_InitialIPValue} (0x{Stub_InitialIPValue:X})"); + Console.WriteLine($" Initial CS value: {Stub_InitialCSValue} (0x{Stub_InitialCSValue:X})"); + Console.WriteLine($" Relocation table address: {Stub_RelocationTableAddr} (0x{Stub_RelocationTableAddr:X})"); + Console.WriteLine($" Overlay number: {Stub_OverlayNumber} (0x{Stub_OverlayNumber:X})"); Console.WriteLine(); } @@ -330,10 +330,10 @@ namespace BurnOutSharp.Wrappers Console.WriteLine(" MS-DOS Stub Extended Header Information:"); Console.WriteLine(" -------------------------"); Console.WriteLine($" Reserved words: {string.Join(", ", Stub_Reserved1)}"); - Console.WriteLine($" OEM identifier: {Stub_OEMIdentifier}"); - Console.WriteLine($" OEM information: {Stub_OEMInformation}"); + Console.WriteLine($" OEM identifier: {Stub_OEMIdentifier} (0x{Stub_OEMIdentifier:X})"); + Console.WriteLine($" OEM information: {Stub_OEMInformation} (0x{Stub_OEMInformation:X})"); Console.WriteLine($" Reserved words: {string.Join(", ", Stub_Reserved2)}"); - Console.WriteLine($" New EXE header address: {Stub_NewExeHeaderAddr}"); + Console.WriteLine($" New EXE header address: {Stub_NewExeHeaderAddr} (0x{Stub_NewExeHeaderAddr:X})"); Console.WriteLine(); } @@ -345,36 +345,36 @@ namespace BurnOutSharp.Wrappers Console.WriteLine(" Header Information:"); Console.WriteLine(" -------------------------"); Console.WriteLine($" Magic number: {Magic}"); - Console.WriteLine($" Linker version: {LinkerVersion}"); - Console.WriteLine($" Linker revision: {LinkerRevision}"); - Console.WriteLine($" Entry table offset: {EntryTableOffset}"); - Console.WriteLine($" Entry table size: {EntryTableSize}"); - Console.WriteLine($" CRC checksum: {CrcChecksum}"); - Console.WriteLine($" Flag word: {FlagWord}"); - Console.WriteLine($" Automatic data segment number: {AutomaticDataSegmentNumber}"); - Console.WriteLine($" Initial heap allocation: {InitialHeapAlloc}"); - Console.WriteLine($" Initial stack allocation: {InitialStackAlloc}"); - Console.WriteLine($" Initial CS:IP setting: {InitialCSIPSetting}"); - Console.WriteLine($" Initial SS:SP setting: {InitialSSSPSetting}"); - Console.WriteLine($" File segment count: {FileSegmentCount}"); - Console.WriteLine($" Module reference table size: {ModuleReferenceTableSize}"); - Console.WriteLine($" Non-resident name table size: {NonResidentNameTableSize}"); - Console.WriteLine($" Segment table offset: {SegmentTableOffset}"); - Console.WriteLine($" Resource table offset: {ResourceTableOffset}"); - Console.WriteLine($" Resident name table offset: {ResidentNameTableOffset}"); - Console.WriteLine($" Module reference table offset: {ModuleReferenceTableOffset}"); - Console.WriteLine($" Imported names table offset: {ImportedNamesTableOffset}"); - Console.WriteLine($" Non-resident name table offset: {NonResidentNamesTableOffset}"); - Console.WriteLine($" Moveable entries count: {MovableEntriesCount}"); - Console.WriteLine($" Segment alignment shift count: {SegmentAlignmentShiftCount}"); - Console.WriteLine($" Resource entries count: {ResourceEntriesCount}"); - Console.WriteLine($" Target operating system: {TargetOperatingSystem}"); - Console.WriteLine($" Additional flags: {AdditionalFlags}"); - Console.WriteLine($" Return thunk offset: {ReturnThunkOffset}"); - Console.WriteLine($" Segment reference thunk offset: {SegmentReferenceThunkOffset}"); - Console.WriteLine($" Minimum code swap area size: {MinCodeSwapAreaSize}"); - Console.WriteLine($" Windows SDK revision: {WindowsSDKRevision}"); - Console.WriteLine($" Windows SDK version: {WindowsSDKVersion}"); + Console.WriteLine($" Linker version: {LinkerVersion} (0x{LinkerVersion:X})"); + Console.WriteLine($" Linker revision: {LinkerRevision} (0x{LinkerRevision:X})"); + Console.WriteLine($" Entry table offset: {EntryTableOffset} (0x{EntryTableOffset:X})"); + Console.WriteLine($" Entry table size: {EntryTableSize} (0x{EntryTableSize:X})"); + Console.WriteLine($" CRC checksum: {CrcChecksum} (0x{CrcChecksum:X})"); + Console.WriteLine($" Flag word: {FlagWord} (0x{FlagWord:X})"); + Console.WriteLine($" Automatic data segment number: {AutomaticDataSegmentNumber} (0x{AutomaticDataSegmentNumber:X})"); + Console.WriteLine($" Initial heap allocation: {InitialHeapAlloc} (0x{InitialHeapAlloc:X})"); + Console.WriteLine($" Initial stack allocation: {InitialStackAlloc} (0x{InitialStackAlloc:X})"); + Console.WriteLine($" Initial CS:IP setting: {InitialCSIPSetting} (0x{InitialCSIPSetting:X})"); + Console.WriteLine($" Initial SS:SP setting: {InitialSSSPSetting} (0x{InitialSSSPSetting:X})"); + Console.WriteLine($" File segment count: {FileSegmentCount} (0x{FileSegmentCount:X})"); + Console.WriteLine($" Module reference table size: {ModuleReferenceTableSize} (0x{ModuleReferenceTableSize:X})"); + Console.WriteLine($" Non-resident name table size: {NonResidentNameTableSize} (0x{NonResidentNameTableSize:X})"); + Console.WriteLine($" Segment table offset: {SegmentTableOffset} (0x{SegmentTableOffset:X})"); + Console.WriteLine($" Resource table offset: {ResourceTableOffset} (0x{ResourceTableOffset:X})"); + Console.WriteLine($" Resident name table offset: {ResidentNameTableOffset} (0x{ResidentNameTableOffset:X})"); + Console.WriteLine($" Module reference table offset: {ModuleReferenceTableOffset} (0x{ModuleReferenceTableOffset:X})"); + Console.WriteLine($" Imported names table offset: {ImportedNamesTableOffset} (0x{ImportedNamesTableOffset:X})"); + Console.WriteLine($" Non-resident name table offset: {NonResidentNamesTableOffset} (0x{NonResidentNamesTableOffset:X})"); + Console.WriteLine($" Moveable entries count: {MovableEntriesCount} (0x{MovableEntriesCount:X})"); + Console.WriteLine($" Segment alignment shift count: {SegmentAlignmentShiftCount} (0x{SegmentAlignmentShiftCount:X})"); + Console.WriteLine($" Resource entries count: {ResourceEntriesCount} (0x{ResourceEntriesCount:X})"); + Console.WriteLine($" Target operating system: {TargetOperatingSystem} (0x{TargetOperatingSystem:X})"); + Console.WriteLine($" Additional flags: {AdditionalFlags} (0x{AdditionalFlags:X})"); + Console.WriteLine($" Return thunk offset: {ReturnThunkOffset} (0x{ReturnThunkOffset:X})"); + Console.WriteLine($" Segment reference thunk offset: {SegmentReferenceThunkOffset} (0x{SegmentReferenceThunkOffset:X})"); + Console.WriteLine($" Minimum code swap area size: {MinCodeSwapAreaSize} (0x{MinCodeSwapAreaSize:X})"); + Console.WriteLine($" Windows SDK revision: {WindowsSDKRevision} (0x{WindowsSDKRevision:X})"); + Console.WriteLine($" Windows SDK version: {WindowsSDKVersion} (0x{WindowsSDKVersion:X})"); Console.WriteLine(); } @@ -395,10 +395,10 @@ namespace BurnOutSharp.Wrappers { var entry = SegmentTable[i]; Console.WriteLine($" Segment Table Entry {i}"); - Console.WriteLine($" Offset = {entry.Offset}"); - Console.WriteLine($" Length = {entry.Length}"); - Console.WriteLine($" Flag word = {entry.FlagWord}"); - Console.WriteLine($" Minimum allocation size = {entry.MinimumAllocationSize}"); + Console.WriteLine($" Offset: {entry.Offset}"); + Console.WriteLine($" Length: {entry.Length}"); + Console.WriteLine($" Flag word: {entry.FlagWord}"); + Console.WriteLine($" Minimum allocation size: {entry.MinimumAllocationSize}"); } } Console.WriteLine(); @@ -411,7 +411,7 @@ namespace BurnOutSharp.Wrappers { Console.WriteLine(" Resource Table Information:"); Console.WriteLine(" -------------------------"); - Console.WriteLine($" Alignment shift count: {ResourceTable.AlignmentShiftCount}"); + Console.WriteLine($" Alignment shift count: {ResourceTable.AlignmentShiftCount} (0x{ResourceTable.AlignmentShiftCount:X})"); if (ResourceEntriesCount == 0 || ResourceTable.ResourceTypes.Length == 0) { Console.WriteLine(" No resource table items"); @@ -423,9 +423,9 @@ namespace BurnOutSharp.Wrappers // TODO: If not integer type, print out name var entry = ResourceTable.ResourceTypes[i]; Console.WriteLine($" Resource Table Entry {i}"); - Console.WriteLine($" Type ID = {entry.TypeID} (Is Integer Type: {entry.IsIntegerType()})"); - Console.WriteLine($" Resource count = {entry.ResourceCount}"); - Console.WriteLine($" Reserved = {entry.Reserved}"); + Console.WriteLine($" Type ID: {entry.TypeID} (0x{entry.TypeID:X}) (Is Integer Type: {entry.IsIntegerType()})"); + Console.WriteLine($" Resource count: {entry.ResourceCount}"); + Console.WriteLine($" Reserved: {entry.Reserved}"); Console.WriteLine($" Resources = "); if (entry.ResourceCount == 0 || entry.Resources.Length == 0) { @@ -438,11 +438,11 @@ namespace BurnOutSharp.Wrappers // TODO: If not integer type, print out name var resource = entry.Resources[j]; Console.WriteLine($" Resource Entry {i}"); - Console.WriteLine($" Offset = {resource.Offset}"); - Console.WriteLine($" Length = {resource.Length}"); - Console.WriteLine($" Flag word = {resource.FlagWord}"); - Console.WriteLine($" Resource ID = {resource.ResourceID} (Is Integer Type: {resource.IsIntegerType()})"); - Console.WriteLine($" Reserved = {resource.Reserved}"); + Console.WriteLine($" Offset: {resource.Offset}"); + Console.WriteLine($" Length: {resource.Length}"); + Console.WriteLine($" Flag word: {resource.FlagWord}"); + Console.WriteLine($" Resource ID: {resource.ResourceID} (Is Integer Type: {resource.IsIntegerType()})"); + Console.WriteLine($" Reserved: {resource.Reserved}"); } } } @@ -457,8 +457,8 @@ namespace BurnOutSharp.Wrappers foreach (var typeAndNameString in ResourceTable.TypeAndNameStrings) { Console.WriteLine($" Resource Type/Name Offset {typeAndNameString.Key}"); - Console.WriteLine($" Length = {typeAndNameString.Value.Length}"); - Console.WriteLine($" Text = {Encoding.ASCII.GetString(typeAndNameString.Value.Text)}"); + Console.WriteLine($" Length: {typeAndNameString.Value.Length}"); + Console.WriteLine($" Text: {Encoding.ASCII.GetString(typeAndNameString.Value.Text)}"); } } Console.WriteLine(); @@ -481,9 +481,9 @@ namespace BurnOutSharp.Wrappers { var entry = ResidentNameTable[i]; Console.WriteLine($" Resident-Name Table Entry {i}"); - Console.WriteLine($" Length = {entry.Length}"); - Console.WriteLine($" Name string = {(entry.NameString != null ? Encoding.ASCII.GetString(entry.NameString) : "[EMPTY]")}"); - Console.WriteLine($" Ordinal number = {entry.OrdinalNumber}"); + Console.WriteLine($" Length: {entry.Length}"); + Console.WriteLine($" Name string: {(entry.NameString != null ? Encoding.ASCII.GetString(entry.NameString) : "[EMPTY]")}"); + Console.WriteLine($" Ordinal number: {entry.OrdinalNumber}"); } } Console.WriteLine(); @@ -507,7 +507,7 @@ namespace BurnOutSharp.Wrappers // TODO: Read the imported names table and print value here var entry = ModuleReferenceTable[i]; Console.WriteLine($" Module-Reference Table Entry {i}"); - Console.WriteLine($" Offset = {entry.Offset} (adjusted to be {entry.Offset + Stub_NewExeHeaderAddr + ImportedNamesTableOffset})"); + Console.WriteLine($" Offset: {entry.Offset} (adjusted to be {entry.Offset + Stub_NewExeHeaderAddr + ImportedNamesTableOffset})"); } } Console.WriteLine(); @@ -529,8 +529,8 @@ namespace BurnOutSharp.Wrappers foreach (var entry in ImportedNameTable) { Console.WriteLine($" Imported-Name Table at Offset {entry.Key}"); - Console.WriteLine($" Length = {entry.Value.Length}"); - Console.WriteLine($" Name string = {(entry.Value.NameString != null ? Encoding.ASCII.GetString(entry.Value.NameString) : "[EMPTY]")}"); + Console.WriteLine($" Length: {entry.Value.Length}"); + Console.WriteLine($" Name string: {(entry.Value.NameString != null ? Encoding.ASCII.GetString(entry.Value.NameString) : "[EMPTY]")}"); } } Console.WriteLine(); @@ -553,19 +553,19 @@ namespace BurnOutSharp.Wrappers { var entry = EntryTable[i]; Console.WriteLine($" Entry Table Entry {i}"); - Console.WriteLine($" Entry count = {entry.EntryCount}"); - Console.WriteLine($" Segment indicator = {entry.SegmentIndicator} ({entry.GetEntryType()})"); + Console.WriteLine($" Entry count: {entry.EntryCount}"); + Console.WriteLine($" Segment indicator: {entry.SegmentIndicator} ({entry.GetEntryType()})"); switch (entry.GetEntryType()) { case BurnOutSharp.Models.NewExecutable.SegmentEntryType.FixedSegment: - Console.WriteLine($" Flag word = {entry.FixedFlagWord}"); - Console.WriteLine($" Offset = {entry.FixedOffset}"); + Console.WriteLine($" Flag word: {entry.FixedFlagWord}"); + Console.WriteLine($" Offset: {entry.FixedOffset}"); break; case BurnOutSharp.Models.NewExecutable.SegmentEntryType.MoveableSegment: - Console.WriteLine($" Flag word = {entry.MoveableFlagWord}"); - Console.WriteLine($" Reserved = {entry.MoveableReserved}"); - Console.WriteLine($" Segment number = {entry.MoveableSegmentNumber}"); - Console.WriteLine($" Offset = {entry.MoveableOffset}"); + Console.WriteLine($" Flag word: {entry.MoveableFlagWord}"); + Console.WriteLine($" Reserved: {entry.MoveableReserved}"); + Console.WriteLine($" Segment number: {entry.MoveableSegmentNumber}"); + Console.WriteLine($" Offset: {entry.MoveableOffset}"); break; } } @@ -590,9 +590,9 @@ namespace BurnOutSharp.Wrappers { var entry = NonResidentNameTable[i]; Console.WriteLine($" Nonresident-Name Table Entry {i}"); - Console.WriteLine($" Length = {entry.Length}"); - Console.WriteLine($" Name string = {(entry.NameString != null ? Encoding.ASCII.GetString(entry.NameString) : "[EMPTY]")}"); - Console.WriteLine($" Ordinal number = {entry.OrdinalNumber}"); + Console.WriteLine($" Length: {entry.Length}"); + Console.WriteLine($" Name string: {(entry.NameString != null ? Encoding.ASCII.GetString(entry.NameString) : "[EMPTY]")}"); + Console.WriteLine($" Ordinal number: {entry.OrdinalNumber}"); } } Console.WriteLine(); diff --git a/BurnOutSharp.Wrappers/Nitro.cs b/BurnOutSharp.Wrappers/Nitro.cs index 811b4831..e5ba7e3b 100644 --- a/BurnOutSharp.Wrappers/Nitro.cs +++ b/BurnOutSharp.Wrappers/Nitro.cs @@ -395,44 +395,44 @@ namespace BurnOutSharp.Wrappers Console.WriteLine(" Common Header Information:"); Console.WriteLine(" -------------------------"); Console.WriteLine($" Game title: {GameTitle ?? "[NULL]"}"); - Console.WriteLine($" Game code: {GameCode}"); + Console.WriteLine($" Game code: {GameCode} (0x{GameCode:X})"); Console.WriteLine($" Maker code: {MakerCode ?? "[NULL]"}"); - Console.WriteLine($" Unit code: {UnitCode}"); - Console.WriteLine($" Encryption seed select: {EncryptionSeedSelect}"); - Console.WriteLine($" Device capacity: {DeviceCapacity}"); + Console.WriteLine($" Unit code: {UnitCode} (0x{UnitCode:X})"); + Console.WriteLine($" Encryption seed select: {EncryptionSeedSelect} (0x{EncryptionSeedSelect:X})"); + Console.WriteLine($" Device capacity: {DeviceCapacity} (0x{DeviceCapacity:X})"); Console.WriteLine($" Reserved 1: {BitConverter.ToString(Reserved1).Replace('-', ' ')}"); - Console.WriteLine($" Game revision: {GameRevision}"); - Console.WriteLine($" Rom version: {RomVersion}"); - Console.WriteLine($" ARM9 rom offset: {ARM9RomOffset}"); - Console.WriteLine($" ARM9 entry address: {ARM9EntryAddress}"); - Console.WriteLine($" ARM9 load address: {ARM9LoadAddress}"); - Console.WriteLine($" ARM9 size: {ARM9Size}"); - Console.WriteLine($" ARM7 rom offset: {ARM7RomOffset}"); - Console.WriteLine($" ARM7 entry address: {ARM7EntryAddress}"); - Console.WriteLine($" ARM7 load address: {ARM7LoadAddress}"); - Console.WriteLine($" ARM7 size: {ARM7Size}"); - Console.WriteLine($" File name table offset: {FileNameTableOffset}"); - Console.WriteLine($" File name table length: {FileNameTableLength}"); - Console.WriteLine($" File allocation table offset: {FileAllocationTableOffset}"); - Console.WriteLine($" File allocation table length: {FileAllocationTableLength}"); - Console.WriteLine($" ARM9 overlay offset: {ARM9OverlayOffset}"); - Console.WriteLine($" ARM9 overlay length: {ARM9OverlayLength}"); - Console.WriteLine($" ARM7 overlay offset: {ARM7OverlayOffset}"); - Console.WriteLine($" ARM7 overlay length: {ARM7OverlayLength}"); - Console.WriteLine($" Normal card control register settings: {NormalCardControlRegisterSettings}"); - Console.WriteLine($" Secure card control register settings: {SecureCardControlRegisterSettings}"); - Console.WriteLine($" Icon banner offset: {IconBannerOffset}"); - Console.WriteLine($" Secure area CRC: {SecureAreaCRC}"); - Console.WriteLine($" Secure transfer timeout: {SecureTransferTimeout}"); - Console.WriteLine($" ARM9 autoload: {ARM9Autoload}"); - Console.WriteLine($" ARM7 autoload: {ARM7Autoload}"); - Console.WriteLine($" Secure disable: {SecureDisable}"); - Console.WriteLine($" NTR region rom size: {NTRRegionRomSize}"); - Console.WriteLine($" Header size: {HeaderSize}"); + Console.WriteLine($" Game revision: {GameRevision} (0x{GameRevision:X})"); + Console.WriteLine($" Rom version: {RomVersion} (0x{RomVersion:X})"); + Console.WriteLine($" ARM9 rom offset: {ARM9RomOffset} (0x{ARM9RomOffset:X})"); + Console.WriteLine($" ARM9 entry address: {ARM9EntryAddress} (0x{ARM9EntryAddress:X})"); + Console.WriteLine($" ARM9 load address: {ARM9LoadAddress} (0x{ARM9LoadAddress:X})"); + Console.WriteLine($" ARM9 size: {ARM9Size} (0x{ARM9Size:X})"); + Console.WriteLine($" ARM7 rom offset: {ARM7RomOffset} (0x{ARM7RomOffset:X})"); + Console.WriteLine($" ARM7 entry address: {ARM7EntryAddress} (0x{ARM7EntryAddress:X})"); + Console.WriteLine($" ARM7 load address: {ARM7LoadAddress} (0x{ARM7LoadAddress:X})"); + Console.WriteLine($" ARM7 size: {ARM7Size} (0x{ARM7Size:X})"); + Console.WriteLine($" File name table offset: {FileNameTableOffset} (0x{FileNameTableOffset:X})"); + Console.WriteLine($" File name table length: {FileNameTableLength} (0x{FileNameTableLength:X})"); + Console.WriteLine($" File allocation table offset: {FileAllocationTableOffset} (0x{FileAllocationTableOffset:X})"); + Console.WriteLine($" File allocation table length: {FileAllocationTableLength} (0x{FileAllocationTableLength:X})"); + Console.WriteLine($" ARM9 overlay offset: {ARM9OverlayOffset} (0x{ARM9OverlayOffset:X})"); + Console.WriteLine($" ARM9 overlay length: {ARM9OverlayLength} (0x{ARM9OverlayLength:X})"); + Console.WriteLine($" ARM7 overlay offset: {ARM7OverlayOffset} (0x{ARM7OverlayOffset:X})"); + Console.WriteLine($" ARM7 overlay length: {ARM7OverlayLength} (0x{ARM7OverlayLength:X})"); + Console.WriteLine($" Normal card control register settings: {NormalCardControlRegisterSettings} (0x{NormalCardControlRegisterSettings:X})"); + Console.WriteLine($" Secure card control register settings: {SecureCardControlRegisterSettings} (0x{SecureCardControlRegisterSettings:X})"); + Console.WriteLine($" Icon banner offset: {IconBannerOffset} (0x{IconBannerOffset:X})"); + Console.WriteLine($" Secure area CRC: {SecureAreaCRC} (0x{SecureAreaCRC:X})"); + Console.WriteLine($" Secure transfer timeout: {SecureTransferTimeout} (0x{SecureTransferTimeout:X})"); + Console.WriteLine($" ARM9 autoload: {ARM9Autoload} (0x{ARM9Autoload:X})"); + Console.WriteLine($" ARM7 autoload: {ARM7Autoload} (0x{ARM7Autoload:X})"); + Console.WriteLine($" Secure disable: {SecureDisable} (0x{SecureDisable:X})"); + Console.WriteLine($" NTR region rom size: {NTRRegionRomSize} (0x{NTRRegionRomSize:X})"); + Console.WriteLine($" Header size: {HeaderSize} (0x{HeaderSize:X})"); Console.WriteLine($" Reserved 2: {BitConverter.ToString(Reserved2).Replace('-', ' ')}"); Console.WriteLine($" Nintendo logo: {BitConverter.ToString(NintendoLogo).Replace('-', ' ')}"); - Console.WriteLine($" Nintendo logo CRC: {NintendoLogoCRC}"); - Console.WriteLine($" Header CRC: {HeaderCRC}"); + Console.WriteLine($" Nintendo logo CRC: {NintendoLogoCRC} (0x{NintendoLogoCRC:X})"); + Console.WriteLine($" Header CRC: {HeaderCRC} (0x{HeaderCRC:X})"); Console.WriteLine($" Debugger reserved: {BitConverter.ToString(DebuggerReserved).Replace('-', ' ')}"); Console.WriteLine(); } @@ -453,38 +453,38 @@ namespace BurnOutSharp.Wrappers Console.WriteLine($" Global MBK1..MBK5 settings: {string.Join(", ", GlobalMBK15Settings)}"); Console.WriteLine($" Local MBK6..MBK8 settings for ARM9: {string.Join(", ", LocalMBK68SettingsARM9)}"); Console.WriteLine($" Local MBK6..MBK8 settings for ARM7: {string.Join(", ", LocalMBK68SettingsARM7)}"); - Console.WriteLine($" Global MBK9 setting: {GlobalMBK9Setting}"); - Console.WriteLine($" Region flags: {RegionFlags}"); - Console.WriteLine($" Access control: {AccessControl}"); - Console.WriteLine($" ARM7 SCFG EXT mask: {ARM7SCFGEXTMask}"); - Console.WriteLine($" Reserved/flags?: {ReservedFlags}"); - Console.WriteLine($" ARM9i rom offset: {ARM9iRomOffset}"); - Console.WriteLine($" Reserved 3: {Reserved3}"); - Console.WriteLine($" ARM9i load address: {ARM9iLoadAddress}"); - Console.WriteLine($" ARM9i size: {ARM9iSize}"); - Console.WriteLine($" ARM7i rom offset: {ARM7iRomOffset}"); - Console.WriteLine($" Reserved 4: {Reserved4}"); - Console.WriteLine($" ARM7i load address: {ARM7iLoadAddress}"); - Console.WriteLine($" ARM7i size: {ARM7iSize}"); - Console.WriteLine($" Digest NTR region offset: {DigestNTRRegionOffset}"); - Console.WriteLine($" Digest NTR region length: {DigestNTRRegionLength}"); - Console.WriteLine($" Digest TWL region offset: {DigestTWLRegionOffset}"); - Console.WriteLine($" Digest TWL region length: {DigestTWLRegionLength}"); - Console.WriteLine($" Digest sector hashtable region offset: {DigestSectorHashtableRegionOffset}"); - Console.WriteLine($" Digest sector hashtable region length: {DigestSectorHashtableRegionLength}"); - Console.WriteLine($" Digest block hashtable region offset: {DigestBlockHashtableRegionOffset}"); - Console.WriteLine($" Digest block hashtable region length: {DigestBlockHashtableRegionLength}"); - Console.WriteLine($" Digest sector size: {DigestSectorSize}"); - Console.WriteLine($" Digest block sector count: {DigestBlockSectorCount}"); - Console.WriteLine($" Icon banner size: {IconBannerSize}"); - Console.WriteLine($" Unknown 1: {Unknown1}"); - Console.WriteLine($" Modcrypt area 1 offset: {ModcryptArea1Offset}"); - Console.WriteLine($" Modcrypt area 1 size: {ModcryptArea1Size}"); - Console.WriteLine($" Modcrypt area 2 offset: {ModcryptArea2Offset}"); - Console.WriteLine($" Modcrypt area 2 size: {ModcryptArea2Size}"); + Console.WriteLine($" Global MBK9 setting: {GlobalMBK9Setting} (0x{GlobalMBK9Setting:X})"); + Console.WriteLine($" Region flags: {RegionFlags} (0x{RegionFlags:X})"); + Console.WriteLine($" Access control: {AccessControl} (0x{AccessControl:X})"); + Console.WriteLine($" ARM7 SCFG EXT mask: {ARM7SCFGEXTMask} (0x{ARM7SCFGEXTMask:X})"); + Console.WriteLine($" Reserved/flags?: {ReservedFlags} (0x{ReservedFlags:X})"); + Console.WriteLine($" ARM9i rom offset: {ARM9iRomOffset} (0x{ARM9iRomOffset:X})"); + Console.WriteLine($" Reserved 3: {Reserved3} (0x{Reserved3:X})"); + Console.WriteLine($" ARM9i load address: {ARM9iLoadAddress} (0x{ARM9iLoadAddress:X})"); + Console.WriteLine($" ARM9i size: {ARM9iSize} (0x{ARM9iSize:X})"); + Console.WriteLine($" ARM7i rom offset: {ARM7iRomOffset} (0x{ARM7iRomOffset:X})"); + Console.WriteLine($" Reserved 4: {Reserved4} (0x{Reserved4:X})"); + Console.WriteLine($" ARM7i load address: {ARM7iLoadAddress} (0x{ARM7iLoadAddress:X})"); + Console.WriteLine($" ARM7i size: {ARM7iSize} (0x{ARM7iSize:X})"); + Console.WriteLine($" Digest NTR region offset: {DigestNTRRegionOffset} (0x{DigestNTRRegionOffset:X})"); + Console.WriteLine($" Digest NTR region length: {DigestNTRRegionLength} (0x{DigestNTRRegionLength:X})"); + Console.WriteLine($" Digest TWL region offset: {DigestTWLRegionOffset} (0x{DigestTWLRegionOffset:X})"); + Console.WriteLine($" Digest TWL region length: {DigestTWLRegionLength} (0x{DigestTWLRegionLength:X})"); + Console.WriteLine($" Digest sector hashtable region offset: {DigestSectorHashtableRegionOffset} (0x{DigestSectorHashtableRegionOffset:X})"); + Console.WriteLine($" Digest sector hashtable region length: {DigestSectorHashtableRegionLength} (0x{DigestSectorHashtableRegionLength:X})"); + Console.WriteLine($" Digest block hashtable region offset: {DigestBlockHashtableRegionOffset} (0x{DigestBlockHashtableRegionOffset:X})"); + Console.WriteLine($" Digest block hashtable region length: {DigestBlockHashtableRegionLength} (0x{DigestBlockHashtableRegionLength:X})"); + Console.WriteLine($" Digest sector size: {DigestSectorSize} (0x{DigestSectorSize:X})"); + Console.WriteLine($" Digest block sector count: {DigestBlockSectorCount} (0x{DigestBlockSectorCount:X})"); + Console.WriteLine($" Icon banner size: {IconBannerSize} (0x{IconBannerSize:X})"); + Console.WriteLine($" Unknown 1: {Unknown1} (0x{Unknown1:X})"); + Console.WriteLine($" Modcrypt area 1 offset: {ModcryptArea1Offset} (0x{ModcryptArea1Offset:X})"); + Console.WriteLine($" Modcrypt area 1 size: {ModcryptArea1Size} (0x{ModcryptArea1Size:X})"); + Console.WriteLine($" Modcrypt area 2 offset: {ModcryptArea2Offset} (0x{ModcryptArea2Offset:X})"); + Console.WriteLine($" Modcrypt area 2 size: {ModcryptArea2Size} (0x{ModcryptArea2Size:X})"); Console.WriteLine($" Title ID: {BitConverter.ToString(TitleID).Replace('-', ' ')}"); - Console.WriteLine($" DSiWare 'public.sav' size: {DSiWarePublicSavSize}"); - Console.WriteLine($" DSiWare 'private.sav' size: {DSiWarePrivateSavSize}"); + Console.WriteLine($" DSiWare 'public.sav' size: {DSiWarePublicSavSize} (0x{DSiWarePublicSavSize:X})"); + Console.WriteLine($" DSiWare 'private.sav' size: {DSiWarePrivateSavSize} (0x{DSiWarePrivateSavSize:X})"); Console.WriteLine($" Reserved (zero): {BitConverter.ToString(ReservedZero).Replace('-', ' ')}"); Console.WriteLine($" Unknown 2: {BitConverter.ToString(Unknown2).Replace('-', ' ')}"); Console.WriteLine($" ARM9 (with encrypted secure area) SHA1 HMAC hash: {BitConverter.ToString(ARM9WithSecureAreaSHA1HMACHash).Replace('-', ' ')}"); @@ -543,16 +543,17 @@ namespace BurnOutSharp.Wrappers { var entry = FolderAllocationTable[i]; Console.WriteLine($" Folder Allocation Table Entry {i}"); - Console.WriteLine($" Start offset: {entry.StartOffset}"); - Console.WriteLine($" First file index: {entry.FirstFileIndex}"); + Console.WriteLine($" Start offset: {entry.StartOffset} (0x{entry.StartOffset:X})"); + Console.WriteLine($" First file index: {entry.FirstFileIndex} (0x{entry.FirstFileIndex:X})"); if (entry.Unknown == 0xF0) { - Console.WriteLine($" Parent folder index: {entry.ParentFolderIndex}"); - Console.WriteLine($" Unknown: {entry.Unknown}"); + Console.WriteLine($" Parent folder index: {entry.ParentFolderIndex} (0x{entry.ParentFolderIndex:X})"); + Console.WriteLine($" Unknown: {entry.Unknown} (0x{entry.Unknown:X})"); } else { - Console.WriteLine($" Total entries: {(entry.Unknown << 8) | entry.ParentFolderIndex}"); + ushort totalEntries = (ushort)((entry.Unknown << 8) | entry.ParentFolderIndex); + Console.WriteLine($" Total entries: {totalEntries} (0x{totalEntries:X})"); } } } @@ -576,10 +577,10 @@ namespace BurnOutSharp.Wrappers { var entry = NameList[i]; Console.WriteLine($" Name List Entry {i}"); - Console.WriteLine($" Folder: {entry.Folder}"); + Console.WriteLine($" Folder: {entry.Folder} (0x{entry.Folder:X})"); Console.WriteLine($" Name: {entry.Name ?? "[NULL]"}"); if (entry.Folder) - Console.WriteLine($" Index: {entry.Index}"); + Console.WriteLine($" Index: {entry.Index} (0x{entry.Index:X})"); } } Console.WriteLine(); @@ -602,8 +603,8 @@ namespace BurnOutSharp.Wrappers { var entry = FileAllocationTable[i]; Console.WriteLine($" File Allocation Table Entry {i}"); - Console.WriteLine($" Start offset: {entry.StartOffset}"); - Console.WriteLine($" End offset: {entry.EndOffset}"); + Console.WriteLine($" Start offset: {entry.StartOffset} (0x{entry.StartOffset:X})"); + Console.WriteLine($" End offset: {entry.EndOffset} (0x{entry.EndOffset:X})"); } } Console.WriteLine(); diff --git a/BurnOutSharp.Wrappers/PAK.cs b/BurnOutSharp.Wrappers/PAK.cs index e31dc1d5..b51c191c 100644 --- a/BurnOutSharp.Wrappers/PAK.cs +++ b/BurnOutSharp.Wrappers/PAK.cs @@ -119,8 +119,8 @@ namespace BurnOutSharp.Wrappers Console.WriteLine(" Header Information:"); Console.WriteLine(" -------------------------"); Console.WriteLine($" Signature: {Signature}"); - Console.WriteLine($" Directory offset: {DirectoryOffset}"); - Console.WriteLine($" Directory length: {DirectoryLength}"); + Console.WriteLine($" Directory offset: {DirectoryOffset} (0x{DirectoryOffset:X})"); + Console.WriteLine($" Directory length: {DirectoryLength} (0x{DirectoryLength:X})"); Console.WriteLine(); } @@ -142,8 +142,8 @@ namespace BurnOutSharp.Wrappers var directoryItem = DirectoryItems[i]; Console.WriteLine($" Directory Item {i}"); Console.WriteLine($" Item name: {directoryItem.ItemName}"); - Console.WriteLine($" Item offset: {directoryItem.ItemOffset}"); - Console.WriteLine($" Item length: {directoryItem.ItemLength}"); + Console.WriteLine($" Item offset: {directoryItem.ItemOffset} (0x{directoryItem.ItemOffset:X})"); + Console.WriteLine($" Item length: {directoryItem.ItemLength} (0x{directoryItem.ItemLength:X})"); } } Console.WriteLine(); diff --git a/BurnOutSharp.Wrappers/PortableExecutable.cs b/BurnOutSharp.Wrappers/PortableExecutable.cs index 965dfab8..cac01dcc 100644 --- a/BurnOutSharp.Wrappers/PortableExecutable.cs +++ b/BurnOutSharp.Wrappers/PortableExecutable.cs @@ -1091,7 +1091,7 @@ namespace BurnOutSharp.Wrappers string sectionName = Encoding.UTF8.GetString(section.Name); uint sectionAddr = section.PointerToRawData; uint sectionEnd = sectionAddr + section.VirtualSize; - Console.WriteLine($"{sectionName}: {sectionAddr} -> {sectionEnd}"); + Console.WriteLine($"{sectionName}: {sectionAddr} -> {sectionEnd} ({sectionAddr:X} -> {sectionEnd:X})"); } } @@ -1132,19 +1132,19 @@ namespace BurnOutSharp.Wrappers Console.WriteLine(" MS-DOS Stub Header Information:"); Console.WriteLine(" -------------------------"); Console.WriteLine($" Magic number: {Stub_Magic}"); - Console.WriteLine($" Last page bytes: {Stub_LastPageBytes}"); - Console.WriteLine($" Pages: {Stub_Pages}"); - Console.WriteLine($" Relocation items: {Stub_RelocationItems}"); - Console.WriteLine($" Header paragraph size: {Stub_HeaderParagraphSize}"); - Console.WriteLine($" Minimum extra paragraphs: {Stub_MinimumExtraParagraphs}"); - Console.WriteLine($" Maximum extra paragraphs: {Stub_MaximumExtraParagraphs}"); - Console.WriteLine($" Initial SS value: {Stub_InitialSSValue}"); - Console.WriteLine($" Initial SP value: {Stub_InitialSPValue}"); - Console.WriteLine($" Checksum: {Stub_Checksum}"); - Console.WriteLine($" Initial IP value: {Stub_InitialIPValue}"); - Console.WriteLine($" Initial CS value: {Stub_InitialCSValue}"); - Console.WriteLine($" Relocation table address: {Stub_RelocationTableAddr}"); - Console.WriteLine($" Overlay number: {Stub_OverlayNumber}"); + Console.WriteLine($" Last page bytes: {Stub_LastPageBytes} (0x{Stub_LastPageBytes:X})"); + Console.WriteLine($" Pages: {Stub_Pages} (0x{Stub_Pages:X})"); + Console.WriteLine($" Relocation items: {Stub_RelocationItems} (0x{Stub_RelocationItems:X})"); + Console.WriteLine($" Header paragraph size: {Stub_HeaderParagraphSize} (0x{Stub_HeaderParagraphSize:X})"); + Console.WriteLine($" Minimum extra paragraphs: {Stub_MinimumExtraParagraphs} (0x{Stub_MinimumExtraParagraphs:X})"); + Console.WriteLine($" Maximum extra paragraphs: {Stub_MaximumExtraParagraphs} (0x{Stub_MaximumExtraParagraphs:X})"); + Console.WriteLine($" Initial SS value: {Stub_InitialSSValue} (0x{Stub_InitialSSValue:X})"); + Console.WriteLine($" Initial SP value: {Stub_InitialSPValue} (0x{Stub_InitialSPValue:X})"); + Console.WriteLine($" Checksum: {Stub_Checksum} (0x{Stub_Checksum:X})"); + Console.WriteLine($" Initial IP value: {Stub_InitialIPValue} (0x{Stub_InitialIPValue:X})"); + Console.WriteLine($" Initial CS value: {Stub_InitialCSValue} (0x{Stub_InitialCSValue:X})"); + Console.WriteLine($" Relocation table address: {Stub_RelocationTableAddr} (0x{Stub_RelocationTableAddr:X})"); + Console.WriteLine($" Overlay number: {Stub_OverlayNumber} (0x{Stub_OverlayNumber:X})"); Console.WriteLine(); } @@ -1156,10 +1156,10 @@ namespace BurnOutSharp.Wrappers Console.WriteLine(" MS-DOS Stub Extended Header Information:"); Console.WriteLine(" -------------------------"); Console.WriteLine($" Reserved words: {string.Join(", ", Stub_Reserved1)}"); - Console.WriteLine($" OEM identifier: {Stub_OEMIdentifier}"); - Console.WriteLine($" OEM information: {Stub_OEMInformation}"); + Console.WriteLine($" OEM identifier: {Stub_OEMIdentifier} (0x{Stub_OEMIdentifier:X})"); + Console.WriteLine($" OEM information: {Stub_OEMInformation} (0x{Stub_OEMInformation:X})"); Console.WriteLine($" Reserved words: {string.Join(", ", Stub_Reserved2)}"); - Console.WriteLine($" New EXE header address: {Stub_NewExeHeaderAddr}"); + Console.WriteLine($" New EXE header address: {Stub_NewExeHeaderAddr} (0x{Stub_NewExeHeaderAddr:X})"); Console.WriteLine(); } @@ -1171,13 +1171,13 @@ namespace BurnOutSharp.Wrappers Console.WriteLine(" COFF File Header Information:"); Console.WriteLine(" -------------------------"); Console.WriteLine($" Signature: {Signature}"); - Console.WriteLine($" Machine: {Machine}"); - Console.WriteLine($" Number of sections: {NumberOfSections}"); - Console.WriteLine($" Time/Date stamp: {TimeDateStamp}"); - Console.WriteLine($" Pointer to symbol table: {PointerToSymbolTable}"); - Console.WriteLine($" Number of symbols: {NumberOfSymbols}"); - Console.WriteLine($" Size of optional header: {SizeOfOptionalHeader}"); - Console.WriteLine($" Characteristics: {Characteristics}"); + Console.WriteLine($" Machine: {Machine} (0x{Machine:X})"); + Console.WriteLine($" Number of sections: {NumberOfSections} (0x{NumberOfSections:X})"); + Console.WriteLine($" Time/Date stamp: {TimeDateStamp} (0x{TimeDateStamp:X})"); + Console.WriteLine($" Pointer to symbol table: {PointerToSymbolTable} (0x{PointerToSymbolTable:X})"); + Console.WriteLine($" Number of symbols: {NumberOfSymbols} (0x{NumberOfSymbols:X})"); + Console.WriteLine($" Size of optional header: {SizeOfOptionalHeader} (0x{SizeOfOptionalHeader:X})"); + Console.WriteLine($" Characteristics: {Characteristics} (0x{Characteristics:X})"); Console.WriteLine(); } @@ -1194,150 +1194,150 @@ namespace BurnOutSharp.Wrappers } else { - Console.WriteLine($" Magic: {OH_Magic}"); - Console.WriteLine($" Major linker version: {OH_MajorLinkerVersion}"); - Console.WriteLine($" Minor linker version: {OH_MinorLinkerVersion}"); - Console.WriteLine($" Size of code section: {OH_SizeOfCode}"); - Console.WriteLine($" Size of initialized data: {OH_SizeOfInitializedData}"); - Console.WriteLine($" Size of uninitialized data: {OH_SizeOfUninitializedData}"); - Console.WriteLine($" Address of entry point: {OH_AddressOfEntryPoint}"); - Console.WriteLine($" Base of code: {OH_BaseOfCode}"); + Console.WriteLine($" Magic: {OH_Magic} (0x{OH_Magic:X})"); + Console.WriteLine($" Major linker version: {OH_MajorLinkerVersion} (0x{OH_MajorLinkerVersion:X})"); + Console.WriteLine($" Minor linker version: {OH_MinorLinkerVersion} (0x{OH_MinorLinkerVersion:X})"); + Console.WriteLine($" Size of code section: {OH_SizeOfCode} (0x{OH_SizeOfCode:X})"); + Console.WriteLine($" Size of initialized data: {OH_SizeOfInitializedData} (0x{OH_SizeOfInitializedData:X})"); + Console.WriteLine($" Size of uninitialized data: {OH_SizeOfUninitializedData} (0x{OH_SizeOfUninitializedData:X})"); + Console.WriteLine($" Address of entry point: {OH_AddressOfEntryPoint} (0x{OH_AddressOfEntryPoint:X})"); + Console.WriteLine($" Base of code: {OH_BaseOfCode} (0x{OH_BaseOfCode:X})"); if (OH_Magic == Models.PortableExecutable.OptionalHeaderMagicNumber.PE32) - Console.WriteLine($" Base of data: {OH_BaseOfData}"); + Console.WriteLine($" Base of data: {OH_BaseOfData} (0x{OH_BaseOfData:X})"); - Console.WriteLine($" Image base: {OH_ImageBase}"); - Console.WriteLine($" Section alignment: {OH_SectionAlignment}"); - Console.WriteLine($" File alignment: {OH_FileAlignment}"); - Console.WriteLine($" Major operating system version: {OH_MajorOperatingSystemVersion}"); - Console.WriteLine($" Minor operating system version: {OH_MinorOperatingSystemVersion}"); - Console.WriteLine($" Major image version: {OH_MajorImageVersion}"); - Console.WriteLine($" Minor image version: {OH_MinorImageVersion}"); - Console.WriteLine($" Major subsystem version: {OH_MajorSubsystemVersion}"); - Console.WriteLine($" Minor subsystem version: {OH_MinorSubsystemVersion}"); - Console.WriteLine($" Win32 version value: {OH_Win32VersionValue}"); - Console.WriteLine($" Size of image: {OH_SizeOfImage}"); - Console.WriteLine($" Size of headers: {OH_SizeOfHeaders}"); - Console.WriteLine($" Checksum: {OH_CheckSum}"); - Console.WriteLine($" Subsystem: {OH_Subsystem}"); - Console.WriteLine($" DLL characteristics: {OH_DllCharacteristics}"); - Console.WriteLine($" Size of stack reserve: {OH_SizeOfStackReserve}"); - Console.WriteLine($" Size of stack commit: {OH_SizeOfStackCommit}"); - Console.WriteLine($" Size of heap reserve: {OH_SizeOfHeapReserve}"); - Console.WriteLine($" Size of heap commit: {OH_SizeOfHeapCommit}"); - Console.WriteLine($" Loader flags: {OH_LoaderFlags}"); - Console.WriteLine($" Number of data-directory entries: {OH_NumberOfRvaAndSizes}"); + Console.WriteLine($" Image base: {OH_ImageBase} (0x{OH_ImageBase:X})"); + Console.WriteLine($" Section alignment: {OH_SectionAlignment} (0x{OH_SectionAlignment:X})"); + Console.WriteLine($" File alignment: {OH_FileAlignment} (0x{OH_FileAlignment:X})"); + Console.WriteLine($" Major operating system version: {OH_MajorOperatingSystemVersion} (0x{OH_MajorOperatingSystemVersion:X})"); + Console.WriteLine($" Minor operating system version: {OH_MinorOperatingSystemVersion} (0x{OH_MinorOperatingSystemVersion:X})"); + Console.WriteLine($" Major image version: {OH_MajorImageVersion} (0x{OH_MajorImageVersion:X})"); + Console.WriteLine($" Minor image version: {OH_MinorImageVersion} (0x{OH_MinorImageVersion:X})"); + Console.WriteLine($" Major subsystem version: {OH_MajorSubsystemVersion} (0x{OH_MajorSubsystemVersion:X})"); + Console.WriteLine($" Minor subsystem version: {OH_MinorSubsystemVersion} (0x{OH_MinorSubsystemVersion:X})"); + Console.WriteLine($" Win32 version value: {OH_Win32VersionValue} (0x{OH_Win32VersionValue:X})"); + Console.WriteLine($" Size of image: {OH_SizeOfImage} (0x{OH_SizeOfImage:X})"); + Console.WriteLine($" Size of headers: {OH_SizeOfHeaders} (0x{OH_SizeOfHeaders:X})"); + Console.WriteLine($" Checksum: {OH_CheckSum} (0x{OH_CheckSum:X})"); + Console.WriteLine($" Subsystem: {OH_Subsystem} (0x{OH_Subsystem:X})"); + Console.WriteLine($" DLL characteristics: {OH_DllCharacteristics} (0x{OH_DllCharacteristics:X})"); + Console.WriteLine($" Size of stack reserve: {OH_SizeOfStackReserve} (0x{OH_SizeOfStackReserve:X})"); + Console.WriteLine($" Size of stack commit: {OH_SizeOfStackCommit} (0x{OH_SizeOfStackCommit:X})"); + Console.WriteLine($" Size of heap reserve: {OH_SizeOfHeapReserve} (0x{OH_SizeOfHeapReserve:X})"); + Console.WriteLine($" Size of heap commit: {OH_SizeOfHeapCommit} (0x{OH_SizeOfHeapCommit:X})"); + Console.WriteLine($" Loader flags: {OH_LoaderFlags} (0x{OH_LoaderFlags:X})"); + Console.WriteLine($" Number of data-directory entries: {OH_NumberOfRvaAndSizes} (0x{OH_NumberOfRvaAndSizes:X})"); if (OH_ExportTable != null) { Console.WriteLine(" Export Table (1)"); - Console.WriteLine($" Virtual address: {OH_ExportTable.VirtualAddress}"); - Console.WriteLine($" Physical address: {OH_ExportTable.VirtualAddress.ConvertVirtualAddress(SectionTable)}"); - Console.WriteLine($" Size: {OH_ExportTable.Size}"); + Console.WriteLine($" Virtual address: {OH_ExportTable.VirtualAddress} (0x{OH_ExportTable.VirtualAddress:X})"); + Console.WriteLine($" Physical address: {OH_ExportTable.VirtualAddress.ConvertVirtualAddress(SectionTable)} (0x{OH_ExportTable.VirtualAddress.ConvertVirtualAddress(SectionTable):X})"); + Console.WriteLine($" Size: {OH_ExportTable.Size} (0x{OH_ExportTable.Size:X})"); } if (OH_ImportTable != null) { Console.WriteLine(" Import Table (2)"); - Console.WriteLine($" Virtual address: {OH_ImportTable.VirtualAddress}"); - Console.WriteLine($" Physical address: {OH_ImportTable.VirtualAddress.ConvertVirtualAddress(SectionTable)}"); - Console.WriteLine($" Size: {OH_ImportTable.Size}"); + Console.WriteLine($" Virtual address: {OH_ImportTable.VirtualAddress} (0x{OH_ImportTable.VirtualAddress:X})"); + Console.WriteLine($" Physical address: {OH_ImportTable.VirtualAddress.ConvertVirtualAddress(SectionTable)} (0x{OH_ImportTable.VirtualAddress.ConvertVirtualAddress(SectionTable):X})"); + Console.WriteLine($" Size: {OH_ImportTable.Size} (0x{OH_ImportTable.Size:X})"); } if (OH_ResourceTable != null) { Console.WriteLine(" Resource Table (3)"); - Console.WriteLine($" Virtual address: {OH_ResourceTable.VirtualAddress}"); - Console.WriteLine($" Physical address: {OH_ResourceTable.VirtualAddress.ConvertVirtualAddress(SectionTable)}"); - Console.WriteLine($" Size: {OH_ResourceTable.Size}"); + Console.WriteLine($" Virtual address: {OH_ResourceTable.VirtualAddress} (0x{OH_ResourceTable.VirtualAddress:X})"); + Console.WriteLine($" Physical address: {OH_ResourceTable.VirtualAddress.ConvertVirtualAddress(SectionTable)} (0x{OH_ResourceTable.VirtualAddress.ConvertVirtualAddress(SectionTable):X})"); + Console.WriteLine($" Size: {OH_ResourceTable.Size} (0x{OH_ResourceTable.Size:X})"); } if (OH_ExceptionTable != null) { Console.WriteLine(" Exception Table (4)"); - Console.WriteLine($" Virtual address: {OH_ExceptionTable.VirtualAddress}"); - Console.WriteLine($" Physical address: {OH_ExceptionTable.VirtualAddress.ConvertVirtualAddress(SectionTable)}"); - Console.WriteLine($" Size: {OH_ExceptionTable.Size}"); + Console.WriteLine($" Virtual address: {OH_ExceptionTable.VirtualAddress} (0x{OH_ExceptionTable.VirtualAddress:X})"); + Console.WriteLine($" Physical address: {OH_ExceptionTable.VirtualAddress.ConvertVirtualAddress(SectionTable)} (0x{OH_ExceptionTable.VirtualAddress.ConvertVirtualAddress(SectionTable):X})"); + Console.WriteLine($" Size: {OH_ExceptionTable.Size} (0x{OH_ExceptionTable.Size:X})"); } if (OH_CertificateTable != null) { Console.WriteLine(" Certificate Table (5)"); - Console.WriteLine($" Virtual address: {OH_CertificateTable.VirtualAddress}"); - Console.WriteLine($" Physical address: {OH_CertificateTable.VirtualAddress.ConvertVirtualAddress(SectionTable)}"); - Console.WriteLine($" Size: {OH_CertificateTable.Size}"); + Console.WriteLine($" Virtual address: {OH_CertificateTable.VirtualAddress} (0x{OH_CertificateTable.VirtualAddress:X})"); + Console.WriteLine($" Physical address: {OH_CertificateTable.VirtualAddress.ConvertVirtualAddress(SectionTable)} (0x{OH_CertificateTable.VirtualAddress.ConvertVirtualAddress(SectionTable):X})"); + Console.WriteLine($" Size: {OH_CertificateTable.Size} (0x{OH_CertificateTable.Size:X})"); } if (OH_BaseRelocationTable != null) { Console.WriteLine(" Base Relocation Table (6)"); - Console.WriteLine($" Virtual address: {OH_BaseRelocationTable.VirtualAddress}"); - Console.WriteLine($" Physical address: {OH_BaseRelocationTable.VirtualAddress.ConvertVirtualAddress(SectionTable)}"); - Console.WriteLine($" Size: {OH_BaseRelocationTable.Size}"); + Console.WriteLine($" Virtual address: {OH_BaseRelocationTable.VirtualAddress} (0x{OH_BaseRelocationTable.VirtualAddress:X})"); + Console.WriteLine($" Physical address: {OH_BaseRelocationTable.VirtualAddress.ConvertVirtualAddress(SectionTable)} (0x{OH_BaseRelocationTable.VirtualAddress.ConvertVirtualAddress(SectionTable):X})"); + Console.WriteLine($" Size: {OH_BaseRelocationTable.Size} (0x{OH_BaseRelocationTable.Size:X})"); } if (OH_Debug != null) { Console.WriteLine(" Debug Table (7)"); - Console.WriteLine($" Virtual address: {OH_Debug.VirtualAddress}"); - Console.WriteLine($" Physical address: {OH_Debug.VirtualAddress.ConvertVirtualAddress(SectionTable)}"); - Console.WriteLine($" Size: {OH_Debug.Size}"); + Console.WriteLine($" Virtual address: {OH_Debug.VirtualAddress} (0x{OH_Debug.VirtualAddress:X})"); + Console.WriteLine($" Physical address: {OH_Debug.VirtualAddress.ConvertVirtualAddress(SectionTable)} (0x{OH_Debug.VirtualAddress.ConvertVirtualAddress(SectionTable):X})"); + Console.WriteLine($" Size: {OH_Debug.Size} (0x{OH_Debug.Size:X})"); } if (OH_NumberOfRvaAndSizes >= 8) { Console.WriteLine(" Architecture Table (8)"); - Console.WriteLine($" Virtual address: 0"); - Console.WriteLine($" Physical address: 0"); - Console.WriteLine($" Size: 0"); + Console.WriteLine($" Virtual address: 0 (0x00000000)"); + Console.WriteLine($" Physical address: 0 (0x00000000)"); + Console.WriteLine($" Size: 0 (0x00000000)"); } if (OH_GlobalPtr != null) { Console.WriteLine(" Global Pointer Register (9)"); - Console.WriteLine($" Virtual address: {OH_GlobalPtr.VirtualAddress}"); - Console.WriteLine($" Physical address: {OH_GlobalPtr.VirtualAddress.ConvertVirtualAddress(SectionTable)}"); - Console.WriteLine($" Size: {OH_GlobalPtr.Size}"); + Console.WriteLine($" Virtual address: {OH_GlobalPtr.VirtualAddress} (0x{OH_GlobalPtr.VirtualAddress:X})"); + Console.WriteLine($" Physical address: {OH_GlobalPtr.VirtualAddress.ConvertVirtualAddress(SectionTable)} (0x{OH_GlobalPtr.VirtualAddress.ConvertVirtualAddress(SectionTable):X})"); + Console.WriteLine($" Size: {OH_GlobalPtr.Size} (0x{OH_GlobalPtr.Size:X})"); } if (OH_ThreadLocalStorageTable != null) { Console.WriteLine(" Thread Local Storage (TLS) Table (10)"); - Console.WriteLine($" Virtual address: {OH_ThreadLocalStorageTable.VirtualAddress}"); - Console.WriteLine($" Physical address: {OH_ThreadLocalStorageTable.VirtualAddress.ConvertVirtualAddress(SectionTable)}"); - Console.WriteLine($" Size: {OH_ThreadLocalStorageTable.Size}"); + Console.WriteLine($" Virtual address: {OH_ThreadLocalStorageTable.VirtualAddress} (0x{OH_ThreadLocalStorageTable.VirtualAddress:X})"); + Console.WriteLine($" Physical address: {OH_ThreadLocalStorageTable.VirtualAddress.ConvertVirtualAddress(SectionTable)} (0x{OH_ThreadLocalStorageTable.VirtualAddress.ConvertVirtualAddress(SectionTable):X})"); + Console.WriteLine($" Size: {OH_ThreadLocalStorageTable.Size} (0x{OH_ThreadLocalStorageTable.Size:X})"); } if (OH_LoadConfigTable != null) { Console.WriteLine(" Load Config Table (11)"); - Console.WriteLine($" Virtual address: {OH_LoadConfigTable.VirtualAddress}"); - Console.WriteLine($" Physical address: {OH_LoadConfigTable.VirtualAddress.ConvertVirtualAddress(SectionTable)}"); - Console.WriteLine($" Size: {OH_LoadConfigTable.Size}"); + Console.WriteLine($" Virtual address: {OH_LoadConfigTable.VirtualAddress} (0x{OH_LoadConfigTable.VirtualAddress:X})"); + Console.WriteLine($" Physical address: {OH_LoadConfigTable.VirtualAddress.ConvertVirtualAddress(SectionTable)} (0x{OH_LoadConfigTable.VirtualAddress.ConvertVirtualAddress(SectionTable):X})"); + Console.WriteLine($" Size: {OH_LoadConfigTable.Size} (0x{OH_LoadConfigTable.Size:X})"); } if (OH_BoundImport != null) { Console.WriteLine(" Bound Import Table (12)"); - Console.WriteLine($" Virtual address: {OH_BoundImport.VirtualAddress}"); - Console.WriteLine($" Physical address: {OH_BoundImport.VirtualAddress.ConvertVirtualAddress(SectionTable)}"); - Console.WriteLine($" Size: {OH_BoundImport.Size}"); + Console.WriteLine($" Virtual address: {OH_BoundImport.VirtualAddress} (0x{OH_BoundImport.VirtualAddress:X})"); + Console.WriteLine($" Physical address: {OH_BoundImport.VirtualAddress.ConvertVirtualAddress(SectionTable)} (0x{OH_BoundImport.VirtualAddress.ConvertVirtualAddress(SectionTable):X})"); + Console.WriteLine($" Size: {OH_BoundImport.Size} (0x{OH_BoundImport.Size:X})"); } if (OH_ImportAddressTable != null) { Console.WriteLine(" Import Address Table (13)"); - Console.WriteLine($" Virtual address: {OH_ImportAddressTable.VirtualAddress}"); - Console.WriteLine($" Physical address: {OH_ImportAddressTable.VirtualAddress.ConvertVirtualAddress(SectionTable)}"); - Console.WriteLine($" Size: {OH_ImportAddressTable.Size}"); + Console.WriteLine($" Virtual address: {OH_ImportAddressTable.VirtualAddress} (0x{OH_ImportAddressTable.VirtualAddress:X})"); + Console.WriteLine($" Physical address: {OH_ImportAddressTable.VirtualAddress.ConvertVirtualAddress(SectionTable)} (0x{OH_ImportAddressTable.VirtualAddress.ConvertVirtualAddress(SectionTable):X})"); + Console.WriteLine($" Size: {OH_ImportAddressTable.Size} (0x{OH_ImportAddressTable.Size:X})"); } if (OH_DelayImportDescriptor != null) { Console.WriteLine(" Delay Import Descriptior (14)"); - Console.WriteLine($" Virtual address: {OH_DelayImportDescriptor.VirtualAddress}"); - Console.WriteLine($" Physical address: {OH_DelayImportDescriptor.VirtualAddress.ConvertVirtualAddress(SectionTable)}"); - Console.WriteLine($" Size: {OH_DelayImportDescriptor.Size}"); + Console.WriteLine($" Virtual address: {OH_DelayImportDescriptor.VirtualAddress} (0x{OH_DelayImportDescriptor.VirtualAddress:X})"); + Console.WriteLine($" Physical address: {OH_DelayImportDescriptor.VirtualAddress.ConvertVirtualAddress(SectionTable)} (0x{OH_DelayImportDescriptor.VirtualAddress.ConvertVirtualAddress(SectionTable):X})"); + Console.WriteLine($" Size: {OH_DelayImportDescriptor.Size} (0x{OH_DelayImportDescriptor.Size:X})"); } if (OH_CLRRuntimeHeader != null) { Console.WriteLine(" CLR Runtime Header (15)"); - Console.WriteLine($" Virtual address: {OH_CLRRuntimeHeader.VirtualAddress}"); - Console.WriteLine($" Physical address: {OH_CLRRuntimeHeader.VirtualAddress.ConvertVirtualAddress(SectionTable)}"); - Console.WriteLine($" Size: {OH_CLRRuntimeHeader.Size}"); + Console.WriteLine($" Virtual address: {OH_CLRRuntimeHeader.VirtualAddress} (0x{OH_CLRRuntimeHeader.VirtualAddress:X})"); + Console.WriteLine($" Physical address: {OH_CLRRuntimeHeader.VirtualAddress.ConvertVirtualAddress(SectionTable)} (0x{OH_CLRRuntimeHeader.VirtualAddress.ConvertVirtualAddress(SectionTable):X})"); + Console.WriteLine($" Size: {OH_CLRRuntimeHeader.Size} (0x{OH_CLRRuntimeHeader.Size:X})"); } if (OH_NumberOfRvaAndSizes >= 16) { Console.WriteLine(" Reserved (16)"); - Console.WriteLine($" Virtual address: 0"); - Console.WriteLine($" Physical address: 0"); - Console.WriteLine($" Size: 0"); + Console.WriteLine($" Virtual address: 0 (0x00000000)"); + Console.WriteLine($" Physical address: 0 (0x00000000)"); + Console.WriteLine($" Size: 0 (0x00000000)"); } } Console.WriteLine(); @@ -1360,17 +1360,17 @@ namespace BurnOutSharp.Wrappers { var entry = SectionTable[i]; Console.WriteLine($" Section Table Entry {i}"); - Console.WriteLine($" Name = {Encoding.UTF8.GetString(entry.Name)}"); - Console.WriteLine($" Virtual size = {entry.VirtualSize}"); - Console.WriteLine($" Virtual address = {entry.VirtualAddress}"); - Console.WriteLine($" Physical address: {entry.VirtualAddress.ConvertVirtualAddress(SectionTable)}"); - Console.WriteLine($" Size of raw data = {entry.SizeOfRawData}"); - Console.WriteLine($" Pointer to raw data = {entry.PointerToRawData}"); - Console.WriteLine($" Pointer to relocations = {entry.PointerToRelocations}"); - Console.WriteLine($" Pointer to linenumbers = {entry.PointerToLinenumbers}"); - Console.WriteLine($" Number of relocations = {entry.NumberOfRelocations}"); - Console.WriteLine($" Number of linenumbers = {entry.NumberOfLinenumbers}"); - Console.WriteLine($" Characteristics = {entry.Characteristics}"); + Console.WriteLine($" Name: {Encoding.UTF8.GetString(entry.Name).TrimEnd('\0')}"); + Console.WriteLine($" Virtual size: {entry.VirtualSize} (0x{entry.VirtualSize:X})"); + Console.WriteLine($" Virtual address: {entry.VirtualAddress} (0x{entry.VirtualAddress:X})"); + Console.WriteLine($" Physical address: {entry.VirtualAddress.ConvertVirtualAddress(SectionTable)} (0x{entry.VirtualAddress.ConvertVirtualAddress(SectionTable):X})"); + Console.WriteLine($" Size of raw data: {entry.SizeOfRawData} (0x{entry.SizeOfRawData:X})"); + Console.WriteLine($" Pointer to raw data: {entry.PointerToRawData} (0x{entry.PointerToRawData:X})"); + Console.WriteLine($" Pointer to relocations: {entry.PointerToRelocations} (0x{entry.PointerToRelocations:X})"); + Console.WriteLine($" Pointer to linenumbers: {entry.PointerToLinenumbers} (0x{entry.PointerToLinenumbers:X})"); + Console.WriteLine($" Number of relocations: {entry.NumberOfRelocations} (0x{entry.NumberOfRelocations:X})"); + Console.WriteLine($" Number of linenumbers: {entry.NumberOfLinenumbers} (0x{entry.NumberOfLinenumbers:X})"); + Console.WriteLine($" Characteristics: {entry.Characteristics} (0x{entry.Characteristics:X})"); // TODO: Add COFFRelocations // TODO: Add COFFLineNumbers } @@ -1405,18 +1405,18 @@ namespace BurnOutSharp.Wrappers { if (entry.ShortName != null) { - Console.WriteLine($" Short name = {Encoding.UTF8.GetString(entry.ShortName)}"); + Console.WriteLine($" Short name: {Encoding.UTF8.GetString(entry.ShortName).TrimEnd('\0')}"); } else { - Console.WriteLine($" Zeroes = {entry.Zeroes}"); - Console.WriteLine($" Offset = {entry.Offset}"); + Console.WriteLine($" Zeroes: {entry.Zeroes} (0x{entry.Zeroes:X})"); + Console.WriteLine($" Offset: {entry.Offset} (0x{entry.Offset:X})"); } - Console.WriteLine($" Value = {entry.Value}"); - Console.WriteLine($" Section number = {entry.SectionNumber}"); - Console.WriteLine($" Symbol type = {entry.SymbolType}"); - Console.WriteLine($" Storage class = {entry.StorageClass}"); - Console.WriteLine($" Number of aux symbols = {entry.NumberOfAuxSymbols}"); + Console.WriteLine($" Value: {entry.Value} (0x{entry.Value:X})"); + Console.WriteLine($" Section number: {entry.SectionNumber} (0x{entry.SectionNumber:X})"); + Console.WriteLine($" Symbol type: {entry.SymbolType} (0x{entry.SymbolType:X})"); + Console.WriteLine($" Storage class: {entry.StorageClass} (0x{entry.StorageClass:X})"); + Console.WriteLine($" Number of aux symbols: {entry.NumberOfAuxSymbols} (0x{entry.NumberOfAuxSymbols:X})"); auxSymbolsRemaining = entry.NumberOfAuxSymbols; if (auxSymbolsRemaining == 0) @@ -1458,51 +1458,51 @@ namespace BurnOutSharp.Wrappers } else if (currentSymbolType == 1) { - Console.WriteLine($" Tag index = {entry.AuxFormat1TagIndex}"); - Console.WriteLine($" Total size = {entry.AuxFormat1TotalSize}"); - Console.WriteLine($" Pointer to linenumber = {entry.AuxFormat1PointerToLinenumber}"); - Console.WriteLine($" Pointer to next function = {entry.AuxFormat1PointerToNextFunction}"); - Console.WriteLine($" Unused = {entry.AuxFormat1Unused}"); + Console.WriteLine($" Tag index: {entry.AuxFormat1TagIndex} (0x{entry.AuxFormat1TagIndex:X})"); + Console.WriteLine($" Total size: {entry.AuxFormat1TotalSize} (0x{entry.AuxFormat1TotalSize:X})"); + Console.WriteLine($" Pointer to linenumber: {entry.AuxFormat1PointerToLinenumber} (0x{entry.AuxFormat1PointerToLinenumber:X})"); + Console.WriteLine($" Pointer to next function: {entry.AuxFormat1PointerToNextFunction} (0x{entry.AuxFormat1PointerToNextFunction:X})"); + Console.WriteLine($" Unused: {entry.AuxFormat1Unused} (0x{entry.AuxFormat1Unused:X})"); auxSymbolsRemaining--; } else if (currentSymbolType == 2) { - Console.WriteLine($" Unused = {entry.AuxFormat2Unused1}"); - Console.WriteLine($" Linenumber = {entry.AuxFormat2Linenumber}"); - Console.WriteLine($" Unused = {entry.AuxFormat2Unused2}"); - Console.WriteLine($" Pointer to next function = {entry.AuxFormat2PointerToNextFunction}"); - Console.WriteLine($" Unused = {entry.AuxFormat2Unused3}"); + Console.WriteLine($" Unused: {entry.AuxFormat2Unused1} (0x{entry.AuxFormat2Unused1:X})"); + Console.WriteLine($" Linenumber: {entry.AuxFormat2Linenumber} (0x{entry.AuxFormat2Linenumber:X})"); + Console.WriteLine($" Unused: {entry.AuxFormat2Unused2} (0x{entry.AuxFormat2Unused2:X})"); + Console.WriteLine($" Pointer to next function: {entry.AuxFormat2PointerToNextFunction} (0x{entry.AuxFormat2PointerToNextFunction:X})"); + Console.WriteLine($" Unused: {entry.AuxFormat2Unused3} (0x{entry.AuxFormat2Unused3:X})"); auxSymbolsRemaining--; } else if (currentSymbolType == 3) { - Console.WriteLine($" Tag index = {entry.AuxFormat3TagIndex}"); - Console.WriteLine($" Characteristics = {entry.AuxFormat3Characteristics}"); - Console.WriteLine($" Unused = {BitConverter.ToString(entry.AuxFormat3Unused).Replace("-", string.Empty)}"); + Console.WriteLine($" Tag index: {entry.AuxFormat3TagIndex} (0x{entry.AuxFormat3TagIndex:X})"); + Console.WriteLine($" Characteristics: {entry.AuxFormat3Characteristics} (0x{entry.AuxFormat3Characteristics:X})"); + Console.WriteLine($" Unused: {BitConverter.ToString(entry.AuxFormat3Unused).Replace("-", string.Empty)}"); auxSymbolsRemaining--; } else if (currentSymbolType == 4) { - Console.WriteLine($" File name = {Encoding.ASCII.GetString(entry.AuxFormat4FileName)}"); + Console.WriteLine($" File name: {Encoding.ASCII.GetString(entry.AuxFormat4FileName).TrimEnd('\0')}"); auxSymbolsRemaining--; } else if (currentSymbolType == 5) { - Console.WriteLine($" Length = {entry.AuxFormat5Length}"); - Console.WriteLine($" Number of relocations = {entry.AuxFormat5NumberOfRelocations}"); - Console.WriteLine($" Number of linenumbers = {entry.AuxFormat5NumberOfLinenumbers}"); - Console.WriteLine($" Checksum = {entry.AuxFormat5CheckSum}"); - Console.WriteLine($" Number = {entry.AuxFormat5Number}"); - Console.WriteLine($" Selection = {entry.AuxFormat5Selection}"); - Console.WriteLine($" Unused = {BitConverter.ToString(entry.AuxFormat5Unused).Replace("-", string.Empty)}"); + Console.WriteLine($" Length: {entry.AuxFormat5Length} (0x{entry.AuxFormat5Length:X})"); + Console.WriteLine($" Number of relocations: {entry.AuxFormat5NumberOfRelocations} (0x{entry.AuxFormat5NumberOfRelocations:X})"); + Console.WriteLine($" Number of linenumbers: {entry.AuxFormat5NumberOfLinenumbers} (0x{entry.AuxFormat5NumberOfLinenumbers:X})"); + Console.WriteLine($" Checksum: {entry.AuxFormat5CheckSum} (0x{entry.AuxFormat5CheckSum:X})"); + Console.WriteLine($" Number: {entry.AuxFormat5Number} (0x{entry.AuxFormat5Number:X})"); + Console.WriteLine($" Selection: {entry.AuxFormat5Selection} (0x{entry.AuxFormat5Selection:X})"); + Console.WriteLine($" Unused: {BitConverter.ToString(entry.AuxFormat5Unused).Replace("-", string.Empty)}"); auxSymbolsRemaining--; } else if (currentSymbolType == 6) { - Console.WriteLine($" Aux type = {entry.AuxFormat6AuxType}"); - Console.WriteLine($" Reserved = {entry.AuxFormat6Reserved1}"); - Console.WriteLine($" Symbol table index = {entry.AuxFormat6SymbolTableIndex}"); - Console.WriteLine($" Reserved = {BitConverter.ToString(entry.AuxFormat6Reserved2).Replace("-", string.Empty)}"); + Console.WriteLine($" Aux type: {entry.AuxFormat6AuxType} (0x{entry.AuxFormat6AuxType:X})"); + Console.WriteLine($" Reserved: {entry.AuxFormat6Reserved1} (0x{entry.AuxFormat6Reserved1:X})"); + Console.WriteLine($" Symbol table index: {entry.AuxFormat6SymbolTableIndex} (0x{entry.AuxFormat6SymbolTableIndex:X})"); + Console.WriteLine($" Reserved: {BitConverter.ToString(entry.AuxFormat6Reserved2).Replace("-", string.Empty)}"); auxSymbolsRemaining--; } @@ -1522,12 +1522,12 @@ namespace BurnOutSharp.Wrappers } else { - Console.WriteLine($" Total size: {COFFStringTable.TotalSize}"); + Console.WriteLine($" Total size: {COFFStringTable.TotalSize} (0x{COFFStringTable.TotalSize:X})"); for (int i = 0; i < COFFStringTable.Strings.Length; i++) { string entry = COFFStringTable.Strings[i]; Console.WriteLine($" COFF String Table Entry {i})"); - Console.WriteLine($" Value = {entry}"); + Console.WriteLine($" Value: {entry}"); } } } @@ -1553,9 +1553,9 @@ namespace BurnOutSharp.Wrappers { var entry = AttributeCertificateTable[i]; Console.WriteLine($" Attribute Certificate Table Entry {i}"); - Console.WriteLine($" Length = {entry.Length}"); - Console.WriteLine($" Revision = {entry.Revision}"); - Console.WriteLine($" Certificate type = {entry.CertificateType}"); + Console.WriteLine($" Length: {entry.Length} (0x{entry.Length:X})"); + Console.WriteLine($" Revision: {entry.Revision} (0x{entry.Revision:X})"); + Console.WriteLine($" Certificate type: {entry.CertificateType} (0x{entry.CertificateType:X})"); Console.WriteLine(); if (entry.CertificateType == Models.PortableExecutable.WindowsCertificateType.WIN_CERT_TYPE_PKCS_SIGNED_DATA) { @@ -1611,14 +1611,14 @@ namespace BurnOutSharp.Wrappers } else { - Console.WriteLine($" Attributes = {DelayLoadDirectoryTable.Attributes}"); - Console.WriteLine($" Name RVA = {DelayLoadDirectoryTable.Name}"); - Console.WriteLine($" Module handle = {DelayLoadDirectoryTable.ModuleHandle}"); - Console.WriteLine($" Delay import address table RVA = {DelayLoadDirectoryTable.DelayImportAddressTable}"); - Console.WriteLine($" Delay import name table RVA = {DelayLoadDirectoryTable.DelayImportNameTable}"); - Console.WriteLine($" Bound delay import table RVA = {DelayLoadDirectoryTable.BoundDelayImportTable}"); - Console.WriteLine($" Unload delay import table RVA = {DelayLoadDirectoryTable.UnloadDelayImportTable}"); - Console.WriteLine($" Timestamp = {DelayLoadDirectoryTable.TimeStamp}"); + Console.WriteLine($" Attributes: {DelayLoadDirectoryTable.Attributes} (0x{DelayLoadDirectoryTable.Attributes:X})"); + Console.WriteLine($" Name RVA: {DelayLoadDirectoryTable.Name} (0x{DelayLoadDirectoryTable.Name:X})"); + Console.WriteLine($" Module handle: {DelayLoadDirectoryTable.ModuleHandle} (0x{DelayLoadDirectoryTable.ModuleHandle:X})"); + Console.WriteLine($" Delay import address table RVA: {DelayLoadDirectoryTable.DelayImportAddressTable} (0x{DelayLoadDirectoryTable.DelayImportAddressTable:X})"); + Console.WriteLine($" Delay import name table RVA: {DelayLoadDirectoryTable.DelayImportNameTable} (0x{DelayLoadDirectoryTable.DelayImportNameTable:X})"); + Console.WriteLine($" Bound delay import table RVA: {DelayLoadDirectoryTable.BoundDelayImportTable} (0x{DelayLoadDirectoryTable.BoundDelayImportTable:X})"); + Console.WriteLine($" Unload delay import table RVA: {DelayLoadDirectoryTable.UnloadDelayImportTable} (0x{DelayLoadDirectoryTable.UnloadDelayImportTable:X})"); + Console.WriteLine($" Timestamp: {DelayLoadDirectoryTable.TimeStamp} (0x{DelayLoadDirectoryTable.TimeStamp:X})"); } Console.WriteLine(); } @@ -1642,9 +1642,9 @@ namespace BurnOutSharp.Wrappers { var baseRelocationTableEntry = BaseRelocationTable[i]; Console.WriteLine($" Base Relocation Table Entry {i}"); - Console.WriteLine($" Page RVA: {baseRelocationTableEntry.PageRVA}"); - Console.WriteLine($" Page physical address: {baseRelocationTableEntry.PageRVA.ConvertVirtualAddress(SectionTable)}"); - Console.WriteLine($" Block size: {baseRelocationTableEntry.BlockSize}"); + Console.WriteLine($" Page RVA: {baseRelocationTableEntry.PageRVA} (0x{baseRelocationTableEntry.PageRVA:X})"); + Console.WriteLine($" Page physical address: {baseRelocationTableEntry.PageRVA.ConvertVirtualAddress(SectionTable)} (0x{baseRelocationTableEntry.PageRVA.ConvertVirtualAddress(SectionTable):X})"); + Console.WriteLine($" Block size: {baseRelocationTableEntry.BlockSize} (0x{baseRelocationTableEntry.BlockSize:X})"); Console.WriteLine($" Base Relocation Table {i} Type and Offset Information:"); Console.WriteLine(" -------------------------"); @@ -1658,8 +1658,8 @@ namespace BurnOutSharp.Wrappers { var typeOffsetFieldEntry = baseRelocationTableEntry.TypeOffsetFieldEntries[j]; Console.WriteLine($" Type and Offset Entry {j}"); - Console.WriteLine($" Type: {typeOffsetFieldEntry.BaseRelocationType}"); - Console.WriteLine($" Offset: {typeOffsetFieldEntry.Offset}"); + Console.WriteLine($" Type: {typeOffsetFieldEntry.BaseRelocationType} (0x{typeOffsetFieldEntry.BaseRelocationType:X})"); + Console.WriteLine($" Offset: {typeOffsetFieldEntry.Offset} (0x{typeOffsetFieldEntry.Offset:X})"); } } } @@ -1687,14 +1687,14 @@ namespace BurnOutSharp.Wrappers { var debugDirectoryEntry = DebugTable.DebugDirectoryTable[i]; Console.WriteLine($" Debug Directory Table Entry {i}"); - Console.WriteLine($" Characteristics: {debugDirectoryEntry.Characteristics}"); - Console.WriteLine($" Time/Date stamp: {debugDirectoryEntry.TimeDateStamp}"); - Console.WriteLine($" Major version: {debugDirectoryEntry.MajorVersion}"); - Console.WriteLine($" Minor version: {debugDirectoryEntry.MinorVersion}"); - Console.WriteLine($" Debug type: {debugDirectoryEntry.DebugType}"); - Console.WriteLine($" Size of data: {debugDirectoryEntry.SizeOfData}"); - Console.WriteLine($" Address of raw data: {debugDirectoryEntry.AddressOfRawData}"); - Console.WriteLine($" Pointer to raw data: {debugDirectoryEntry.PointerToRawData}"); + Console.WriteLine($" Characteristics: {debugDirectoryEntry.Characteristics} (0x{debugDirectoryEntry.Characteristics:X})"); + Console.WriteLine($" Time/Date stamp: {debugDirectoryEntry.TimeDateStamp} (0x{debugDirectoryEntry.TimeDateStamp:X})"); + Console.WriteLine($" Major version: {debugDirectoryEntry.MajorVersion} (0x{debugDirectoryEntry.MajorVersion:X})"); + Console.WriteLine($" Minor version: {debugDirectoryEntry.MinorVersion} (0x{debugDirectoryEntry.MinorVersion:X})"); + Console.WriteLine($" Debug type: {debugDirectoryEntry.DebugType} (0x{debugDirectoryEntry.DebugType:X})"); + Console.WriteLine($" Size of data: {debugDirectoryEntry.SizeOfData} (0x{debugDirectoryEntry.SizeOfData:X})"); + Console.WriteLine($" Address of raw data: {debugDirectoryEntry.AddressOfRawData} (0x{debugDirectoryEntry.AddressOfRawData:X})"); + Console.WriteLine($" Pointer to raw data: {debugDirectoryEntry.PointerToRawData} (0x{debugDirectoryEntry.PointerToRawData:X})"); } } Console.WriteLine(); @@ -1718,18 +1718,18 @@ namespace BurnOutSharp.Wrappers Console.WriteLine(); Console.WriteLine(" Export Directory Table Information:"); Console.WriteLine(" -------------------------"); - Console.WriteLine($" Export flags: {ExportTable.ExportDirectoryTable.ExportFlags}"); - Console.WriteLine($" Time/Date stamp: {ExportTable.ExportDirectoryTable.TimeDateStamp}"); - Console.WriteLine($" Major version: {ExportTable.ExportDirectoryTable.MajorVersion}"); - Console.WriteLine($" Minor version: {ExportTable.ExportDirectoryTable.MinorVersion}"); - Console.WriteLine($" Name RVA: {ExportTable.ExportDirectoryTable.NameRVA}"); + Console.WriteLine($" Export flags: {ExportTable.ExportDirectoryTable.ExportFlags} (0x{ExportTable.ExportDirectoryTable.ExportFlags:X})"); + Console.WriteLine($" Time/Date stamp: {ExportTable.ExportDirectoryTable.TimeDateStamp} (0x{ExportTable.ExportDirectoryTable.TimeDateStamp:X})"); + Console.WriteLine($" Major version: {ExportTable.ExportDirectoryTable.MajorVersion} (0x{ExportTable.ExportDirectoryTable.MajorVersion:X})"); + Console.WriteLine($" Minor version: {ExportTable.ExportDirectoryTable.MinorVersion} (0x{ExportTable.ExportDirectoryTable.MinorVersion:X})"); + Console.WriteLine($" Name RVA: {ExportTable.ExportDirectoryTable.NameRVA} (0x{ExportTable.ExportDirectoryTable.NameRVA:X})"); Console.WriteLine($" Name: {ExportTable.ExportDirectoryTable.Name}"); - Console.WriteLine($" Ordinal base: {ExportTable.ExportDirectoryTable.OrdinalBase}"); - Console.WriteLine($" Address table entries: {ExportTable.ExportDirectoryTable.AddressTableEntries}"); - Console.WriteLine($" Number of name pointers: {ExportTable.ExportDirectoryTable.NumberOfNamePointers}"); - Console.WriteLine($" Export address table RVA: {ExportTable.ExportDirectoryTable.ExportAddressTableRVA}"); - Console.WriteLine($" Name pointer table RVA: {ExportTable.ExportDirectoryTable.NamePointerRVA}"); - Console.WriteLine($" Ordinal table RVA: {ExportTable.ExportDirectoryTable.OrdinalTableRVA}"); + Console.WriteLine($" Ordinal base: {ExportTable.ExportDirectoryTable.OrdinalBase} (0x{ExportTable.ExportDirectoryTable.OrdinalBase:X})"); + Console.WriteLine($" Address table entries: {ExportTable.ExportDirectoryTable.AddressTableEntries} (0x{ExportTable.ExportDirectoryTable.AddressTableEntries:X})"); + Console.WriteLine($" Number of name pointers: {ExportTable.ExportDirectoryTable.NumberOfNamePointers} (0x{ExportTable.ExportDirectoryTable.NumberOfNamePointers:X})"); + Console.WriteLine($" Export address table RVA: {ExportTable.ExportDirectoryTable.ExportAddressTableRVA} (0x{ExportTable.ExportDirectoryTable.ExportAddressTableRVA:X})"); + Console.WriteLine($" Name pointer table RVA: {ExportTable.ExportDirectoryTable.NamePointerRVA} (0x{ExportTable.ExportDirectoryTable.NamePointerRVA:X})"); + Console.WriteLine($" Ordinal table RVA: {ExportTable.ExportDirectoryTable.OrdinalTableRVA} (0x{ExportTable.ExportDirectoryTable.OrdinalTableRVA:X})"); Console.WriteLine(); Console.WriteLine(" Export Address Table Information:"); @@ -1744,7 +1744,7 @@ namespace BurnOutSharp.Wrappers { var exportAddressTableEntry = ExportTable.ExportAddressTable[i]; Console.WriteLine($" Export Address Table Entry {i}"); - Console.WriteLine($" Export RVA / Forwarder RVA: {exportAddressTableEntry.ExportRVA}"); + Console.WriteLine($" Export RVA / Forwarder RVA: {exportAddressTableEntry.ExportRVA} (0x{exportAddressTableEntry.ExportRVA:X})"); } } Console.WriteLine(); @@ -1761,7 +1761,7 @@ namespace BurnOutSharp.Wrappers { var namePointerTableEntry = ExportTable.NamePointerTable.Pointers[i]; Console.WriteLine($" Name Pointer Table Entry {i}"); - Console.WriteLine($" Pointer: {namePointerTableEntry}"); + Console.WriteLine($" Pointer: {namePointerTableEntry} (0x{namePointerTableEntry:X})"); } } Console.WriteLine(); @@ -1778,7 +1778,7 @@ namespace BurnOutSharp.Wrappers { var ordinalTableEntry = ExportTable.OrdinalTable.Indexes[i]; Console.WriteLine($" Ordinal Table Entry {i}"); - Console.WriteLine($" Index: {ordinalTableEntry}"); + Console.WriteLine($" Index: {ordinalTableEntry} (0x{ordinalTableEntry:X})"); } } Console.WriteLine(); @@ -1830,14 +1830,14 @@ namespace BurnOutSharp.Wrappers { var importDirectoryTableEntry = ImportTable.ImportDirectoryTable[i]; Console.WriteLine($" Import Directory Table Entry {i}"); - Console.WriteLine($" Import lookup table RVA: {importDirectoryTableEntry.ImportLookupTableRVA}"); - Console.WriteLine($" Import lookup table Physical Address: {importDirectoryTableEntry.ImportLookupTableRVA.ConvertVirtualAddress(SectionTable)}"); - Console.WriteLine($" Time/Date stamp: {importDirectoryTableEntry.TimeDateStamp}"); - Console.WriteLine($" Forwarder chain: {importDirectoryTableEntry.ForwarderChain}"); - Console.WriteLine($" Name RVA: {importDirectoryTableEntry.NameRVA}"); + Console.WriteLine($" Import lookup table RVA: {importDirectoryTableEntry.ImportLookupTableRVA} (0x{importDirectoryTableEntry.ImportLookupTableRVA:X})"); + Console.WriteLine($" Import lookup table Physical Address: {importDirectoryTableEntry.ImportLookupTableRVA.ConvertVirtualAddress(SectionTable)} (0x{importDirectoryTableEntry.ImportLookupTableRVA.ConvertVirtualAddress(SectionTable):X})"); + Console.WriteLine($" Time/Date stamp: {importDirectoryTableEntry.TimeDateStamp} (0x{importDirectoryTableEntry.TimeDateStamp:X})"); + Console.WriteLine($" Forwarder chain: {importDirectoryTableEntry.ForwarderChain} (0x{importDirectoryTableEntry.ForwarderChain:X})"); + Console.WriteLine($" Name RVA: {importDirectoryTableEntry.NameRVA} (0x{importDirectoryTableEntry.NameRVA:X})"); Console.WriteLine($" Name: {importDirectoryTableEntry.Name}"); - Console.WriteLine($" Import address table RVA: {importDirectoryTableEntry.ImportAddressTableRVA}"); - Console.WriteLine($" Import address table Physical Address: {importDirectoryTableEntry.ImportAddressTableRVA.ConvertVirtualAddress(SectionTable)}"); + Console.WriteLine($" Import address table RVA: {importDirectoryTableEntry.ImportAddressTableRVA} (0x{importDirectoryTableEntry.ImportAddressTableRVA:X})"); + Console.WriteLine($" Import address table Physical Address: {importDirectoryTableEntry.ImportAddressTableRVA.ConvertVirtualAddress(SectionTable)} (0x{importDirectoryTableEntry.ImportAddressTableRVA.ConvertVirtualAddress(SectionTable):X})"); } } Console.WriteLine(); @@ -1868,15 +1868,15 @@ namespace BurnOutSharp.Wrappers { var importLookupTableEntry = importLookupTable[i]; Console.WriteLine($" Import Lookup Table {index} Entry {i}"); - Console.WriteLine($" Ordinal/Name flag: {importLookupTableEntry.OrdinalNameFlag}"); + Console.WriteLine($" Ordinal/Name flag: {importLookupTableEntry.OrdinalNameFlag} (0x{importLookupTableEntry.OrdinalNameFlag:X})"); if (importLookupTableEntry.OrdinalNameFlag) { - Console.WriteLine($" Ordinal number: {importLookupTableEntry.OrdinalNumber}"); + Console.WriteLine($" Ordinal number: {importLookupTableEntry.OrdinalNumber} (0x{importLookupTableEntry.OrdinalNumber:X})"); } else { - Console.WriteLine($" Hint/Name table RVA: {importLookupTableEntry.HintNameTableRVA}"); - Console.WriteLine($" Hint/Name table Physical Address: {importLookupTableEntry.HintNameTableRVA.ConvertVirtualAddress(SectionTable)}"); + Console.WriteLine($" Hint/Name table RVA: {importLookupTableEntry.HintNameTableRVA} (0x{importLookupTableEntry.HintNameTableRVA:X})"); + Console.WriteLine($" Hint/Name table Physical Address: {importLookupTableEntry.HintNameTableRVA.ConvertVirtualAddress(SectionTable)} (0x{importLookupTableEntry.HintNameTableRVA.ConvertVirtualAddress(SectionTable):X})"); } } } @@ -1910,15 +1910,15 @@ namespace BurnOutSharp.Wrappers { var importAddressTableEntry = importAddressTable[i]; Console.WriteLine($" Import Address Table {index} Entry {i}"); - Console.WriteLine($" Ordinal/Name flag: {importAddressTableEntry.OrdinalNameFlag}"); + Console.WriteLine($" Ordinal/Name flag: {importAddressTableEntry.OrdinalNameFlag} (0x{importAddressTableEntry.OrdinalNameFlag:X})"); if (importAddressTableEntry.OrdinalNameFlag) { - Console.WriteLine($" Ordinal number: {importAddressTableEntry.OrdinalNumber}"); + Console.WriteLine($" Ordinal number: {importAddressTableEntry.OrdinalNumber} (0x{importAddressTableEntry.OrdinalNumber:X})"); } else { - Console.WriteLine($" Hint/Name table RVA: {importAddressTableEntry.HintNameTableRVA}"); - Console.WriteLine($" Hint/Name table Physical Address: {importAddressTableEntry.HintNameTableRVA.ConvertVirtualAddress(SectionTable)}"); + Console.WriteLine($" Hint/Name table RVA: {importAddressTableEntry.HintNameTableRVA} (0x{importAddressTableEntry.HintNameTableRVA:X})"); + Console.WriteLine($" Hint/Name table Physical Address: {importAddressTableEntry.HintNameTableRVA.ConvertVirtualAddress(SectionTable)} (0x{importAddressTableEntry.HintNameTableRVA.ConvertVirtualAddress(SectionTable):X})"); } } } @@ -1938,7 +1938,7 @@ namespace BurnOutSharp.Wrappers { var hintNameTableEntry = ImportTable.HintNameTable[i]; Console.WriteLine($" Hint/Name Table Entry {i}"); - Console.WriteLine($" Hint: {hintNameTableEntry.Hint}"); + Console.WriteLine($" Hint: {hintNameTableEntry.Hint} (0x{hintNameTableEntry.Hint:X})"); Console.WriteLine($" Name: {hintNameTableEntry.Name}"); } } @@ -1974,12 +1974,12 @@ namespace BurnOutSharp.Wrappers string padding = new string(' ', (level + 1) * 2); Console.WriteLine($"{padding}Table level: {level}"); - Console.WriteLine($"{padding}Characteristics: {table.Characteristics}"); - Console.WriteLine($"{padding}Time/Date stamp: {table.TimeDateStamp}"); - Console.WriteLine($"{padding}Major version: {table.MajorVersion}"); - Console.WriteLine($"{padding}Minor version: {table.MinorVersion}"); - Console.WriteLine($"{padding}Number of name entries: {table.NumberOfNameEntries}"); - Console.WriteLine($"{padding}Number of ID entries: {table.NumberOfIDEntries}"); + Console.WriteLine($"{padding}Characteristics: {table.Characteristics} (0x{table.Characteristics:X})"); + Console.WriteLine($"{padding}Time/Date stamp: {table.TimeDateStamp} (0x{table.TimeDateStamp:X})"); + Console.WriteLine($"{padding}Major version: {table.MajorVersion} (0x{table.MajorVersion:X})"); + Console.WriteLine($"{padding}Minor version: {table.MinorVersion} (0x{table.MinorVersion:X})"); + Console.WriteLine($"{padding}Number of name entries: {table.NumberOfNameEntries} (0x{table.NumberOfNameEntries:X})"); + Console.WriteLine($"{padding}Number of ID entries: {table.NumberOfIDEntries} (0x{table.NumberOfIDEntries:X})"); Console.WriteLine(); Console.WriteLine($"{padding}Entries"); @@ -2015,12 +2015,12 @@ namespace BurnOutSharp.Wrappers Console.WriteLine($"{padding}Item level: {level}"); if (entry.NameOffset != default) { - Console.WriteLine($"{padding}Name offset: {entry.NameOffset}"); + Console.WriteLine($"{padding}Name offset: {entry.NameOffset} (0x{entry.NameOffset:X})"); Console.WriteLine($"{padding}Name ({entry.Name.Length}): {Encoding.UTF8.GetString(entry.Name.UnicodeString ?? new byte[0])}"); } else { - Console.WriteLine($"{padding}Integer ID: {entry.IntegerID}"); + Console.WriteLine($"{padding}Integer ID: {entry.IntegerID} (0x{entry.IntegerID:X})"); } if (entry.DataEntry != null) @@ -2040,10 +2040,10 @@ namespace BurnOutSharp.Wrappers Console.WriteLine($"{padding}Base types: {string.Join(", ", types)}"); Console.WriteLine($"{padding}Entry level: {level}"); - Console.WriteLine($"{padding}Data RVA: {entry.DataRVA}"); - Console.WriteLine($"{padding}Size: {entry.Size}"); - Console.WriteLine($"{padding}Codepage: {entry.Codepage}"); - Console.WriteLine($"{padding}Reserved: {entry.Reserved}"); + Console.WriteLine($"{padding}Data RVA: {entry.DataRVA} (0x{entry.DataRVA:X})"); + Console.WriteLine($"{padding}Size: {entry.Size} (0x{entry.Size:X})"); + Console.WriteLine($"{padding}Codepage: {entry.Codepage} (0x{entry.Codepage:X})"); + Console.WriteLine($"{padding}Reserved: {entry.Reserved} (0x{entry.Reserved:X})"); // TODO: Print out per-type data if (types != null && types.Count > 0 && types[0] is uint resourceType) @@ -2170,8 +2170,8 @@ namespace BurnOutSharp.Wrappers if (menu.MenuHeader != null) { - Console.WriteLine($"{padding}Version: {menu.MenuHeader.Version}"); - Console.WriteLine($"{padding}Header size: {menu.MenuHeader.HeaderSize}"); + Console.WriteLine($"{padding}Version: {menu.MenuHeader.Version} (0x{menu.MenuHeader.Version:X})"); + Console.WriteLine($"{padding}Header size: {menu.MenuHeader.HeaderSize} (0x{menu.MenuHeader.HeaderSize:X})"); Console.WriteLine(); Console.WriteLine($"{padding}Menu items"); Console.WriteLine($"{padding}-------------------------"); @@ -2188,24 +2188,24 @@ namespace BurnOutSharp.Wrappers Console.WriteLine($"{padding}Menu item {i}"); if (menuItem.NormalMenuText != null) { - Console.WriteLine($"{padding} Resource info: {menuItem.NormalResInfo}"); - Console.WriteLine($"{padding} Menu text: {menuItem.NormalMenuText}"); + Console.WriteLine($"{padding} Resource info: {menuItem.NormalResInfo} (0x{menuItem.NormalResInfo:X})"); + Console.WriteLine($"{padding} Menu text: {menuItem.NormalMenuText} (0x{menuItem.NormalMenuText:X})"); } else { - Console.WriteLine($"{padding} Item type: {menuItem.PopupItemType}"); - Console.WriteLine($"{padding} State: {menuItem.PopupState}"); - Console.WriteLine($"{padding} ID: {menuItem.PopupID}"); - Console.WriteLine($"{padding} Resource info: {menuItem.PopupResInfo}"); - Console.WriteLine($"{padding} Menu text: {menuItem.PopupMenuText}"); + Console.WriteLine($"{padding} Item type: {menuItem.PopupItemType} (0x{menuItem.PopupItemType:X})"); + Console.WriteLine($"{padding} State: {menuItem.PopupState} (0x{menuItem.PopupState:X})"); + Console.WriteLine($"{padding} ID: {menuItem.PopupID} (0x{menuItem.PopupID:X})"); + Console.WriteLine($"{padding} Resource info: {menuItem.PopupResInfo} (0x{menuItem.PopupResInfo:X})"); + Console.WriteLine($"{padding} Menu text: {menuItem.PopupMenuText} (0x{menuItem.PopupMenuText:X})"); } } } else if (menu.ExtendedMenuHeader != null) { - Console.WriteLine($"{padding}Version: {menu.ExtendedMenuHeader.Version}"); - Console.WriteLine($"{padding}Offset: {menu.ExtendedMenuHeader.Offset}"); - Console.WriteLine($"{padding}Help ID: {menu.ExtendedMenuHeader.HelpID}"); + Console.WriteLine($"{padding}Version: {menu.ExtendedMenuHeader.Version} (0x{menu.ExtendedMenuHeader.Version:X})"); + Console.WriteLine($"{padding}Offset: {menu.ExtendedMenuHeader.Offset} (0x{menu.ExtendedMenuHeader.Offset:X})"); + Console.WriteLine($"{padding}Help ID: {menu.ExtendedMenuHeader.HelpID} (0x{menu.ExtendedMenuHeader.HelpID:X})"); Console.WriteLine(); Console.WriteLine($"{padding}Menu items"); Console.WriteLine($"{padding}-------------------------"); @@ -2222,11 +2222,11 @@ namespace BurnOutSharp.Wrappers var menuItem = menu.ExtendedMenuItems[i]; Console.WriteLine($"{padding}Dialog item template {i}"); - Console.WriteLine($"{padding} Item type: {menuItem.ItemType}"); - Console.WriteLine($"{padding} State: {menuItem.State}"); - Console.WriteLine($"{padding} ID: {menuItem.ID}"); - Console.WriteLine($"{padding} Flags: {menuItem.Flags}"); - Console.WriteLine($"{padding} Menu text: {menuItem.MenuText}"); + Console.WriteLine($"{padding} Item type: {menuItem.ItemType} (0x{menuItem.ItemType:X})"); + Console.WriteLine($"{padding} State: {menuItem.State} (0x{menuItem.State:X})"); + Console.WriteLine($"{padding} ID: {menuItem.ID} (0x{menuItem.ID:X})"); + Console.WriteLine($"{padding} Flags: {menuItem.Flags} (0x{menuItem.Flags:X})"); + Console.WriteLine($"{padding} Menu text: {menuItem.MenuText} (0x{menuItem.MenuText:X})"); } } else @@ -2252,19 +2252,19 @@ namespace BurnOutSharp.Wrappers if (dialogBox.DialogTemplate != null) { - Console.WriteLine($"{padding}Style: {dialogBox.DialogTemplate.Style}"); - Console.WriteLine($"{padding}Extended style: {dialogBox.DialogTemplate.ExtendedStyle}"); - Console.WriteLine($"{padding}Item count: {dialogBox.DialogTemplate.ItemCount}"); - Console.WriteLine($"{padding}X-coordinate of upper-left corner: {dialogBox.DialogTemplate.PositionX}"); - Console.WriteLine($"{padding}Y-coordinate of upper-left corner: {dialogBox.DialogTemplate.PositionY}"); - Console.WriteLine($"{padding}Width of the dialog box: {dialogBox.DialogTemplate.WidthX}"); - Console.WriteLine($"{padding}Height of the dialog box: {dialogBox.DialogTemplate.HeightY}"); + Console.WriteLine($"{padding}Style: {dialogBox.DialogTemplate.Style} (0x{dialogBox.DialogTemplate.Style:X})"); + Console.WriteLine($"{padding}Extended style: {dialogBox.DialogTemplate.ExtendedStyle} (0x{dialogBox.DialogTemplate.ExtendedStyle:X})"); + Console.WriteLine($"{padding}Item count: {dialogBox.DialogTemplate.ItemCount} (0x{dialogBox.DialogTemplate.ItemCount:X})"); + Console.WriteLine($"{padding}X-coordinate of upper-left corner: {dialogBox.DialogTemplate.PositionX} (0x{dialogBox.DialogTemplate.PositionX:X})"); + Console.WriteLine($"{padding}Y-coordinate of upper-left corner: {dialogBox.DialogTemplate.PositionY} (0x{dialogBox.DialogTemplate.PositionY:X})"); + Console.WriteLine($"{padding}Width of the dialog box: {dialogBox.DialogTemplate.WidthX} (0x{dialogBox.DialogTemplate.WidthX:X})"); + Console.WriteLine($"{padding}Height of the dialog box: {dialogBox.DialogTemplate.HeightY} (0x{dialogBox.DialogTemplate.HeightY:X})"); Console.WriteLine($"{padding}Menu resource: {dialogBox.DialogTemplate.MenuResource ?? "[EMPTY]"}"); - Console.WriteLine($"{padding}Menu resource ordinal: {dialogBox.DialogTemplate.MenuResourceOrdinal}"); + Console.WriteLine($"{padding}Menu resource ordinal: {dialogBox.DialogTemplate.MenuResourceOrdinal} (0x{dialogBox.DialogTemplate.MenuResourceOrdinal:X})"); Console.WriteLine($"{padding}Class resource: {dialogBox.DialogTemplate.ClassResource ?? "[EMPTY]"}"); - Console.WriteLine($"{padding}Class resource ordinal: {dialogBox.DialogTemplate.ClassResourceOrdinal}"); + Console.WriteLine($"{padding}Class resource ordinal: {dialogBox.DialogTemplate.ClassResourceOrdinal} (0x{dialogBox.DialogTemplate.ClassResourceOrdinal:X})"); Console.WriteLine($"{padding}Title resource: {dialogBox.DialogTemplate.TitleResource ?? "[EMPTY]"}"); - Console.WriteLine($"{padding}Point size value: {dialogBox.DialogTemplate.PointSizeValue}"); + Console.WriteLine($"{padding}Point size value: {dialogBox.DialogTemplate.PointSizeValue} (0x{dialogBox.DialogTemplate.PointSizeValue:X})"); Console.WriteLine($"{padding}Typeface: {dialogBox.DialogTemplate.Typeface ?? "[EMPTY]"}"); Console.WriteLine(); Console.WriteLine($"{padding}Dialog item templates"); @@ -2282,18 +2282,18 @@ namespace BurnOutSharp.Wrappers var dialogItemTemplate = dialogBox.DialogItemTemplates[i]; Console.WriteLine($"{padding}Dialog item template {i}"); - Console.WriteLine($"{padding} Style: {dialogItemTemplate.Style}"); - Console.WriteLine($"{padding} Extended style: {dialogItemTemplate.ExtendedStyle}"); - Console.WriteLine($"{padding} X-coordinate of upper-left corner: {dialogItemTemplate.PositionX}"); - Console.WriteLine($"{padding} Y-coordinate of upper-left corner: {dialogItemTemplate.PositionY}"); - Console.WriteLine($"{padding} Width of the control: {dialogItemTemplate.WidthX}"); - Console.WriteLine($"{padding} Height of the control: {dialogItemTemplate.HeightY}"); - Console.WriteLine($"{padding} ID: {dialogItemTemplate.ID}"); + Console.WriteLine($"{padding} Style: {dialogItemTemplate.Style} (0x{dialogItemTemplate.Style:X})"); + Console.WriteLine($"{padding} Extended style: {dialogItemTemplate.ExtendedStyle} (0x{dialogItemTemplate.ExtendedStyle:X})"); + Console.WriteLine($"{padding} X-coordinate of upper-left corner: {dialogItemTemplate.PositionX} (0x{dialogItemTemplate.PositionX:X})"); + Console.WriteLine($"{padding} Y-coordinate of upper-left corner: {dialogItemTemplate.PositionY} (0x{dialogItemTemplate.PositionY:X})"); + Console.WriteLine($"{padding} Width of the control: {dialogItemTemplate.WidthX} (0x{dialogItemTemplate.WidthX:X})"); + Console.WriteLine($"{padding} Height of the control: {dialogItemTemplate.HeightY} (0x{dialogItemTemplate.HeightY:X})"); + Console.WriteLine($"{padding} ID: {dialogItemTemplate.ID} (0x{dialogItemTemplate.ID:X})"); Console.WriteLine($"{padding} Class resource: {dialogItemTemplate.ClassResource ?? "[EMPTY]"}"); - Console.WriteLine($"{padding} Class resource ordinal: {dialogItemTemplate.ClassResourceOrdinal}"); + Console.WriteLine($"{padding} Class resource ordinal: {dialogItemTemplate.ClassResourceOrdinal} (0x{dialogItemTemplate.ClassResourceOrdinal:X})"); Console.WriteLine($"{padding} Title resource: {dialogItemTemplate.TitleResource ?? "[EMPTY]"}"); - Console.WriteLine($"{padding} Title resource ordinal: {dialogItemTemplate.TitleResourceOrdinal}"); - Console.WriteLine($"{padding} Creation data size: {dialogItemTemplate.CreationDataSize}"); + Console.WriteLine($"{padding} Title resource ordinal: {dialogItemTemplate.TitleResourceOrdinal} (0x{dialogItemTemplate.TitleResourceOrdinal:X})"); + Console.WriteLine($"{padding} Creation data size: {dialogItemTemplate.CreationDataSize} (0x{dialogItemTemplate.CreationDataSize:X})"); if (dialogItemTemplate.CreationData != null && dialogItemTemplate.CreationData.Length != 0) Console.WriteLine($"{padding} Creation data: {BitConverter.ToString(dialogItemTemplate.CreationData).Replace("-", string.Empty)}"); else @@ -2302,25 +2302,25 @@ namespace BurnOutSharp.Wrappers } else if (dialogBox.ExtendedDialogTemplate != null) { - Console.WriteLine($"{padding}Version: {dialogBox.ExtendedDialogTemplate.Version}"); - Console.WriteLine($"{padding}Signature: {dialogBox.ExtendedDialogTemplate.Signature}"); - Console.WriteLine($"{padding}Help ID: {dialogBox.ExtendedDialogTemplate.HelpID}"); - Console.WriteLine($"{padding}Extended style: {dialogBox.ExtendedDialogTemplate.ExtendedStyle}"); - Console.WriteLine($"{padding}Style: {dialogBox.ExtendedDialogTemplate.Style}"); - Console.WriteLine($"{padding}Item count: {dialogBox.ExtendedDialogTemplate.DialogItems}"); - Console.WriteLine($"{padding}X-coordinate of upper-left corner: {dialogBox.ExtendedDialogTemplate.PositionX}"); - Console.WriteLine($"{padding}Y-coordinate of upper-left corner: {dialogBox.ExtendedDialogTemplate.PositionY}"); - Console.WriteLine($"{padding}Width of the dialog box: {dialogBox.ExtendedDialogTemplate.WidthX}"); - Console.WriteLine($"{padding}Height of the dialog box: {dialogBox.ExtendedDialogTemplate.HeightY}"); + Console.WriteLine($"{padding}Version: {dialogBox.ExtendedDialogTemplate.Version} (0x{dialogBox.ExtendedDialogTemplate.Version:X})"); + Console.WriteLine($"{padding}Signature: {dialogBox.ExtendedDialogTemplate.Signature} (0x{dialogBox.ExtendedDialogTemplate.Signature:X})"); + Console.WriteLine($"{padding}Help ID: {dialogBox.ExtendedDialogTemplate.HelpID} (0x{dialogBox.ExtendedDialogTemplate.HelpID:X})"); + Console.WriteLine($"{padding}Extended style: {dialogBox.ExtendedDialogTemplate.ExtendedStyle} (0x{dialogBox.ExtendedDialogTemplate.ExtendedStyle:X})"); + Console.WriteLine($"{padding}Style: {dialogBox.ExtendedDialogTemplate.Style} (0x{dialogBox.ExtendedDialogTemplate.Style:X})"); + Console.WriteLine($"{padding}Item count: {dialogBox.ExtendedDialogTemplate.DialogItems} (0x{dialogBox.ExtendedDialogTemplate.DialogItems:X})"); + Console.WriteLine($"{padding}X-coordinate of upper-left corner: {dialogBox.ExtendedDialogTemplate.PositionX} (0x{dialogBox.ExtendedDialogTemplate.PositionX:X})"); + Console.WriteLine($"{padding}Y-coordinate of upper-left corner: {dialogBox.ExtendedDialogTemplate.PositionY} (0x{dialogBox.ExtendedDialogTemplate.PositionY:X})"); + Console.WriteLine($"{padding}Width of the dialog box: {dialogBox.ExtendedDialogTemplate.WidthX} (0x{dialogBox.ExtendedDialogTemplate.WidthX:X})"); + Console.WriteLine($"{padding}Height of the dialog box: {dialogBox.ExtendedDialogTemplate.HeightY} (0x{dialogBox.ExtendedDialogTemplate.HeightY:X})"); Console.WriteLine($"{padding}Menu resource: {dialogBox.ExtendedDialogTemplate.MenuResource ?? "[EMPTY]"}"); - Console.WriteLine($"{padding}Menu resource ordinal: {dialogBox.ExtendedDialogTemplate.MenuResourceOrdinal}"); + Console.WriteLine($"{padding}Menu resource ordinal: {dialogBox.ExtendedDialogTemplate.MenuResourceOrdinal} (0x{dialogBox.ExtendedDialogTemplate.MenuResourceOrdinal:X})"); Console.WriteLine($"{padding}Class resource: {dialogBox.ExtendedDialogTemplate.ClassResource ?? "[EMPTY]"}"); - Console.WriteLine($"{padding}Class resource ordinal: {dialogBox.ExtendedDialogTemplate.ClassResourceOrdinal}"); + Console.WriteLine($"{padding}Class resource ordinal: {dialogBox.ExtendedDialogTemplate.ClassResourceOrdinal} (0x{dialogBox.ExtendedDialogTemplate.ClassResourceOrdinal:X})"); Console.WriteLine($"{padding}Title resource: {dialogBox.ExtendedDialogTemplate.TitleResource ?? "[EMPTY]"}"); - Console.WriteLine($"{padding}Point size: {dialogBox.ExtendedDialogTemplate.PointSize}"); - Console.WriteLine($"{padding}Weight: {dialogBox.ExtendedDialogTemplate.Weight}"); - Console.WriteLine($"{padding}Italic: {dialogBox.ExtendedDialogTemplate.Italic}"); - Console.WriteLine($"{padding}Character set: {dialogBox.ExtendedDialogTemplate.CharSet}"); + Console.WriteLine($"{padding}Point size: {dialogBox.ExtendedDialogTemplate.PointSize} (0x{dialogBox.ExtendedDialogTemplate.PointSize:X})"); + Console.WriteLine($"{padding}Weight: {dialogBox.ExtendedDialogTemplate.Weight} (0x{dialogBox.ExtendedDialogTemplate.Weight:X})"); + Console.WriteLine($"{padding}Italic: {dialogBox.ExtendedDialogTemplate.Italic} (0x{dialogBox.ExtendedDialogTemplate.Italic:X})"); + Console.WriteLine($"{padding}Character set: {dialogBox.ExtendedDialogTemplate.CharSet} (0x{dialogBox.ExtendedDialogTemplate.CharSet:X})"); Console.WriteLine($"{padding}Typeface: {dialogBox.ExtendedDialogTemplate.Typeface ?? "[EMPTY]"}"); Console.WriteLine(); Console.WriteLine($"{padding}Dialog item templates"); @@ -2338,19 +2338,19 @@ namespace BurnOutSharp.Wrappers var dialogItemTemplate = dialogBox.ExtendedDialogItemTemplates[i]; Console.WriteLine($"{padding}Dialog item template {i}"); - Console.WriteLine($"{padding} Help ID: {dialogItemTemplate.HelpID}"); - Console.WriteLine($"{padding} Extended style: {dialogItemTemplate.ExtendedStyle}"); - Console.WriteLine($"{padding} Style: {dialogItemTemplate.Style}"); - Console.WriteLine($"{padding} X-coordinate of upper-left corner: {dialogItemTemplate.PositionX}"); - Console.WriteLine($"{padding} Y-coordinate of upper-left corner: {dialogItemTemplate.PositionY}"); - Console.WriteLine($"{padding} Width of the control: {dialogItemTemplate.WidthX}"); - Console.WriteLine($"{padding} Height of the control: {dialogItemTemplate.HeightY}"); - Console.WriteLine($"{padding} ID: {dialogItemTemplate.ID}"); + Console.WriteLine($"{padding} Help ID: {dialogItemTemplate.HelpID} (0x{dialogItemTemplate.HelpID:X})"); + Console.WriteLine($"{padding} Extended style: {dialogItemTemplate.ExtendedStyle} (0x{dialogItemTemplate.ExtendedStyle:X})"); + Console.WriteLine($"{padding} Style: {dialogItemTemplate.Style} (0x{dialogItemTemplate.Style:X})"); + Console.WriteLine($"{padding} X-coordinate of upper-left corner: {dialogItemTemplate.PositionX} (0x{dialogItemTemplate.PositionX:X})"); + Console.WriteLine($"{padding} Y-coordinate of upper-left corner: {dialogItemTemplate.PositionY} (0x{dialogItemTemplate.PositionY:X})"); + Console.WriteLine($"{padding} Width of the control: {dialogItemTemplate.WidthX} (0x{dialogItemTemplate.WidthX:X})"); + Console.WriteLine($"{padding} Height of the control: {dialogItemTemplate.HeightY} (0x{dialogItemTemplate.HeightY:X})"); + Console.WriteLine($"{padding} ID: {dialogItemTemplate.ID} (0x{dialogItemTemplate.ID:X})"); Console.WriteLine($"{padding} Class resource: {dialogItemTemplate.ClassResource ?? "[EMPTY]"}"); - Console.WriteLine($"{padding} Class resource ordinal: {dialogItemTemplate.ClassResourceOrdinal}"); + Console.WriteLine($"{padding} Class resource ordinal: {dialogItemTemplate.ClassResourceOrdinal} (0x{dialogItemTemplate.ClassResourceOrdinal:X})"); Console.WriteLine($"{padding} Title resource: {dialogItemTemplate.TitleResource ?? "[EMPTY]"}"); - Console.WriteLine($"{padding} Title resource ordinal: {dialogItemTemplate.TitleResourceOrdinal}"); - Console.WriteLine($"{padding} Creation data size: {dialogItemTemplate.CreationDataSize}"); + Console.WriteLine($"{padding} Title resource ordinal: {dialogItemTemplate.TitleResourceOrdinal} (0x{dialogItemTemplate.TitleResourceOrdinal:X})"); + Console.WriteLine($"{padding} Creation data size: {dialogItemTemplate.CreationDataSize} (0x{dialogItemTemplate.CreationDataSize:X})"); if (dialogItemTemplate.CreationData != null && dialogItemTemplate.CreationData.Length != 0) Console.WriteLine($"{padding} Creation data: {BitConverter.ToString(dialogItemTemplate.CreationData).Replace("-", string.Empty)}"); else @@ -2423,10 +2423,10 @@ namespace BurnOutSharp.Wrappers { var acceleratorTableEntry = acceleratorTable[i]; Console.WriteLine($"{padding}Accelerator Table Entry {i}:"); - Console.WriteLine($"{padding} Flags: {acceleratorTableEntry.Flags}"); - Console.WriteLine($"{padding} Ansi: {acceleratorTableEntry.Ansi}"); - Console.WriteLine($"{padding} Id: {acceleratorTableEntry.Id}"); - Console.WriteLine($"{padding} Padding: {acceleratorTableEntry.Padding}"); + Console.WriteLine($"{padding} Flags: {acceleratorTableEntry.Flags} (0x{acceleratorTableEntry.Flags:X})"); + Console.WriteLine($"{padding} Ansi: {acceleratorTableEntry.Ansi} (0x{acceleratorTableEntry.Ansi:X})"); + Console.WriteLine($"{padding} Id: {acceleratorTableEntry.Id} (0x{acceleratorTableEntry.Id:X})"); + Console.WriteLine($"{padding} Padding: {acceleratorTableEntry.Padding} (0x{acceleratorTableEntry.Padding:X})"); } } @@ -2475,7 +2475,7 @@ namespace BurnOutSharp.Wrappers return; } - Console.WriteLine($"{padding}Number of blocks: {messageTable.NumberOfBlocks}"); + Console.WriteLine($"{padding}Number of blocks: {messageTable.NumberOfBlocks} (0x{messageTable.NumberOfBlocks:X})"); Console.WriteLine(); Console.WriteLine($"{padding}Message resource blocks"); Console.WriteLine($"{padding}-------------------------"); @@ -2492,9 +2492,9 @@ namespace BurnOutSharp.Wrappers var messageResourceBlock = messageTable.Blocks[i]; Console.WriteLine($"{padding}Message resource block {i}"); - Console.WriteLine($"{padding} Low ID: {messageResourceBlock.LowId}"); - Console.WriteLine($"{padding} High ID: {messageResourceBlock.HighId}"); - Console.WriteLine($"{padding} Offset to entries: {messageResourceBlock.OffsetToEntries}"); + Console.WriteLine($"{padding} Low ID: {messageResourceBlock.LowId} (0x{messageResourceBlock.LowId:X})"); + Console.WriteLine($"{padding} High ID: {messageResourceBlock.HighId} (0x{messageResourceBlock.HighId:X})"); + Console.WriteLine($"{padding} Offset to entries: {messageResourceBlock.OffsetToEntries} (0x{messageResourceBlock.OffsetToEntries:X})"); } } Console.WriteLine(); @@ -2514,8 +2514,8 @@ namespace BurnOutSharp.Wrappers var messageResourceEntry = kvp.Value; Console.WriteLine($"{padding}Message resource entry {index}"); - Console.WriteLine($"{padding} Length: {messageResourceEntry.Length}"); - Console.WriteLine($"{padding} Flags: {messageResourceEntry.Flags}"); + Console.WriteLine($"{padding} Length: {messageResourceEntry.Length} (0x{messageResourceEntry.Length:X})"); + Console.WriteLine($"{padding} Flags: {messageResourceEntry.Flags} (0x{messageResourceEntry.Flags:X})"); Console.WriteLine($"{padding} Text: {messageResourceEntry.Text}"); } } @@ -2554,32 +2554,32 @@ namespace BurnOutSharp.Wrappers return; } - Console.WriteLine($"{padding}Length: {versionInfo.Length}"); - Console.WriteLine($"{padding}Value length: {versionInfo.ValueLength}"); - Console.WriteLine($"{padding}Resource type: {versionInfo.ResourceType}"); + Console.WriteLine($"{padding}Length: {versionInfo.Length} (0x{versionInfo.Length:X})"); + Console.WriteLine($"{padding}Value length: {versionInfo.ValueLength} (0x{versionInfo.ValueLength:X})"); + Console.WriteLine($"{padding}Resource type: {versionInfo.ResourceType} (0x{versionInfo.ResourceType:X})"); Console.WriteLine($"{padding}Key: {versionInfo.Key}"); if (versionInfo.ValueLength != 0 && versionInfo.Value != null) { - Console.WriteLine($"{padding}[Fixed File Info] Signature: {versionInfo.Value.Signature}"); - Console.WriteLine($"{padding}[Fixed File Info] Struct version: {versionInfo.Value.StrucVersion}"); - Console.WriteLine($"{padding}[Fixed File Info] File version (MS): {versionInfo.Value.FileVersionMS}"); - Console.WriteLine($"{padding}[Fixed File Info] File version (LS): {versionInfo.Value.FileVersionLS}"); - Console.WriteLine($"{padding}[Fixed File Info] Product version (MS): {versionInfo.Value.ProductVersionMS}"); - Console.WriteLine($"{padding}[Fixed File Info] Product version (LS): {versionInfo.Value.ProductVersionLS}"); - Console.WriteLine($"{padding}[Fixed File Info] File flags mask: {versionInfo.Value.FileFlagsMask}"); - Console.WriteLine($"{padding}[Fixed File Info] File flags: {versionInfo.Value.FileFlags}"); - Console.WriteLine($"{padding}[Fixed File Info] File OS: {versionInfo.Value.FileOS}"); - Console.WriteLine($"{padding}[Fixed File Info] Type: {versionInfo.Value.FileType}"); - Console.WriteLine($"{padding}[Fixed File Info] Subtype: {versionInfo.Value.FileSubtype}"); - Console.WriteLine($"{padding}[Fixed File Info] File date (MS): {versionInfo.Value.FileDateMS}"); - Console.WriteLine($"{padding}[Fixed File Info] File date (LS): {versionInfo.Value.FileDateLS}"); + Console.WriteLine($"{padding}[Fixed File Info] Signature: {versionInfo.Value.Signature} (0x{versionInfo.Value.Signature:X})"); + Console.WriteLine($"{padding}[Fixed File Info] Struct version: {versionInfo.Value.StrucVersion} (0x{versionInfo.Value.StrucVersion:X})"); + Console.WriteLine($"{padding}[Fixed File Info] File version (MS): {versionInfo.Value.FileVersionMS} (0x{versionInfo.Value.FileVersionMS:X})"); + Console.WriteLine($"{padding}[Fixed File Info] File version (LS): {versionInfo.Value.FileVersionLS} (0x{versionInfo.Value.FileVersionLS:X})"); + Console.WriteLine($"{padding}[Fixed File Info] Product version (MS): {versionInfo.Value.ProductVersionMS} (0x{versionInfo.Value.ProductVersionMS:X})"); + Console.WriteLine($"{padding}[Fixed File Info] Product version (LS): {versionInfo.Value.ProductVersionLS} (0x{versionInfo.Value.ProductVersionLS:X})"); + Console.WriteLine($"{padding}[Fixed File Info] File flags mask: {versionInfo.Value.FileFlagsMask} (0x{versionInfo.Value.FileFlagsMask:X})"); + Console.WriteLine($"{padding}[Fixed File Info] File flags: {versionInfo.Value.FileFlags} (0x{versionInfo.Value.FileFlags:X})"); + Console.WriteLine($"{padding}[Fixed File Info] File OS: {versionInfo.Value.FileOS} (0x{versionInfo.Value.FileOS:X})"); + Console.WriteLine($"{padding}[Fixed File Info] Type: {versionInfo.Value.FileType} (0x{versionInfo.Value.FileType:X})"); + Console.WriteLine($"{padding}[Fixed File Info] Subtype: {versionInfo.Value.FileSubtype} (0x{versionInfo.Value.FileSubtype:X})"); + Console.WriteLine($"{padding}[Fixed File Info] File date (MS): {versionInfo.Value.FileDateMS} (0x{versionInfo.Value.FileDateMS:X})"); + Console.WriteLine($"{padding}[Fixed File Info] File date (LS): {versionInfo.Value.FileDateLS} (0x{versionInfo.Value.FileDateLS:X})"); } if (versionInfo.StringFileInfo != null) { - Console.WriteLine($"{padding}[String File Info] Length: {versionInfo.StringFileInfo.Length}"); - Console.WriteLine($"{padding}[String File Info] Value length: {versionInfo.StringFileInfo.ValueLength}"); - Console.WriteLine($"{padding}[String File Info] Resource type: {versionInfo.StringFileInfo.ResourceType}"); + Console.WriteLine($"{padding}[String File Info] Length: {versionInfo.StringFileInfo.Length} (0x{versionInfo.StringFileInfo.Length:X})"); + Console.WriteLine($"{padding}[String File Info] Value length: {versionInfo.StringFileInfo.ValueLength} (0x{versionInfo.StringFileInfo.ValueLength:X})"); + Console.WriteLine($"{padding}[String File Info] Resource type: {versionInfo.StringFileInfo.ResourceType} (0x{versionInfo.StringFileInfo.ResourceType:X})"); Console.WriteLine($"{padding}[String File Info] Key: {versionInfo.StringFileInfo.Key}"); Console.WriteLine($"{padding}Children:"); Console.WriteLine($"{padding}-------------------------"); @@ -2593,9 +2593,9 @@ namespace BurnOutSharp.Wrappers { var stringFileInfoChildEntry = versionInfo.StringFileInfo.Children[i]; - Console.WriteLine($"{padding} [String Table {i}] Length: {stringFileInfoChildEntry.Length}"); - Console.WriteLine($"{padding} [String Table {i}] Value length: {stringFileInfoChildEntry.ValueLength}"); - Console.WriteLine($"{padding} [String Table {i}] ResourceType: {stringFileInfoChildEntry.ResourceType}"); + Console.WriteLine($"{padding} [String Table {i}] Length: {stringFileInfoChildEntry.Length} (0x{stringFileInfoChildEntry.Length:X})"); + Console.WriteLine($"{padding} [String Table {i}] Value length: {stringFileInfoChildEntry.ValueLength} (0x{stringFileInfoChildEntry.ValueLength:X})"); + Console.WriteLine($"{padding} [String Table {i}] ResourceType: {stringFileInfoChildEntry.ResourceType} (0x{stringFileInfoChildEntry.ResourceType:X})"); Console.WriteLine($"{padding} [String Table {i}] Key: {stringFileInfoChildEntry.Key}"); Console.WriteLine($"{padding} [String Table {i}] Children:"); Console.WriteLine($"{padding} -------------------------"); @@ -2609,9 +2609,9 @@ namespace BurnOutSharp.Wrappers { var stringDataEntry = stringFileInfoChildEntry.Children[j]; - Console.WriteLine($"{padding} [String Data {j}] Length: {stringDataEntry.Length}"); - Console.WriteLine($"{padding} [String Data {j}] Value length: {stringDataEntry.ValueLength}"); - Console.WriteLine($"{padding} [String Data {j}] ResourceType: {stringDataEntry.ResourceType}"); + Console.WriteLine($"{padding} [String Data {j}] Length: {stringDataEntry.Length} (0x{stringDataEntry.Length:X})"); + Console.WriteLine($"{padding} [String Data {j}] Value length: {stringDataEntry.ValueLength} (0x{stringDataEntry.ValueLength:X})"); + Console.WriteLine($"{padding} [String Data {j}] ResourceType: {stringDataEntry.ResourceType} (0x{stringDataEntry.ResourceType:X})"); Console.WriteLine($"{padding} [String Data {j}] Key: {stringDataEntry.Key}"); Console.WriteLine($"{padding} [String Data {j}] Value: {stringDataEntry.Value}"); } @@ -2622,9 +2622,9 @@ namespace BurnOutSharp.Wrappers if (versionInfo.VarFileInfo != null) { - Console.WriteLine($"{padding}[Var File Info] Length: {versionInfo.VarFileInfo.Length}"); - Console.WriteLine($"{padding}[Var File Info] Value length: {versionInfo.VarFileInfo.ValueLength}"); - Console.WriteLine($"{padding}[Var File Info] Resource type: {versionInfo.VarFileInfo.ResourceType}"); + Console.WriteLine($"{padding}[Var File Info] Length: {versionInfo.VarFileInfo.Length} (0x{versionInfo.VarFileInfo.Length:X})"); + Console.WriteLine($"{padding}[Var File Info] Value length: {versionInfo.VarFileInfo.ValueLength} (0x{versionInfo.VarFileInfo.ValueLength:X})"); + Console.WriteLine($"{padding}[Var File Info] Resource type: {versionInfo.VarFileInfo.ResourceType} (0x{versionInfo.VarFileInfo.ResourceType:X})"); Console.WriteLine($"{padding}[Var File Info] Key: {versionInfo.VarFileInfo.Key}"); Console.WriteLine($"{padding}Children:"); Console.WriteLine($"{padding}-------------------------"); @@ -2638,9 +2638,9 @@ namespace BurnOutSharp.Wrappers { var varFileInfoChildEntry = versionInfo.VarFileInfo.Children[i]; - Console.WriteLine($"{padding} [String Table {i}] Length: {varFileInfoChildEntry.Length}"); - Console.WriteLine($"{padding} [String Table {i}] Value length: {varFileInfoChildEntry.ValueLength}"); - Console.WriteLine($"{padding} [String Table {i}] ResourceType: {varFileInfoChildEntry.ResourceType}"); + Console.WriteLine($"{padding} [String Table {i}] Length: {varFileInfoChildEntry.Length} (0x{varFileInfoChildEntry.Length:X})"); + Console.WriteLine($"{padding} [String Table {i}] Value length: {varFileInfoChildEntry.ValueLength} (0x{varFileInfoChildEntry.ValueLength:X})"); + Console.WriteLine($"{padding} [String Table {i}] ResourceType: {varFileInfoChildEntry.ResourceType} (0x{varFileInfoChildEntry.ResourceType:X})"); Console.WriteLine($"{padding} [String Table {i}] Key: {varFileInfoChildEntry.Key}"); Console.WriteLine($"{padding} [String Table {i}] Value: {string.Join(",", varFileInfoChildEntry.Value)}"); } diff --git a/BurnOutSharp.Wrappers/Quantum.cs b/BurnOutSharp.Wrappers/Quantum.cs index ff637c71..57023ada 100644 --- a/BurnOutSharp.Wrappers/Quantum.cs +++ b/BurnOutSharp.Wrappers/Quantum.cs @@ -229,7 +229,7 @@ namespace BurnOutSharp.Wrappers PrintHeader(); PrintFileList(); - Console.WriteLine($" Compressed data offset: {CompressedDataOffset}"); + Console.WriteLine($" Compressed data offset: {CompressedDataOffset} (0x{CompressedDataOffset:X})"); Console.WriteLine(); } @@ -241,11 +241,11 @@ namespace BurnOutSharp.Wrappers Console.WriteLine(" Header Information:"); Console.WriteLine(" -------------------------"); Console.WriteLine($" Signature: {Signature}"); - Console.WriteLine($" Major version: {MajorVersion}"); - Console.WriteLine($" Minor version: {MinorVersion}"); - Console.WriteLine($" File count: {FileCount}"); - Console.WriteLine($" Table size: {TableSize}"); - Console.WriteLine($" Compression flags: {CompressionFlags}"); + Console.WriteLine($" Major version: {MajorVersion} (0x{MajorVersion:X})"); + Console.WriteLine($" Minor version: {MinorVersion} (0x{MinorVersion:X})"); + Console.WriteLine($" File count: {FileCount} (0x{FileCount:X})"); + Console.WriteLine($" Table size: {TableSize} (0x{TableSize:X})"); + Console.WriteLine($" Compression flags: {CompressionFlags} (0x{CompressionFlags:X})"); Console.WriteLine(); } @@ -266,15 +266,15 @@ namespace BurnOutSharp.Wrappers { var fileDescriptor = FileList[i]; Console.WriteLine($" File Descriptor {i}"); - Console.WriteLine($" File name size = {fileDescriptor.FileNameSize}"); - Console.WriteLine($" File name = {fileDescriptor.FileName ?? "[NULL]"}"); - Console.WriteLine($" Comment field size = {fileDescriptor.CommentFieldSize}"); - Console.WriteLine($" Comment field = {fileDescriptor.CommentField ?? "[NULL]"}"); - Console.WriteLine($" Expanded file size = {fileDescriptor.ExpandedFileSize}"); - Console.WriteLine($" File time = {fileDescriptor.FileTime}"); - Console.WriteLine($" File date = {fileDescriptor.FileDate}"); + Console.WriteLine($" File name size: {fileDescriptor.FileNameSize} (0x{fileDescriptor.FileNameSize:X})"); + Console.WriteLine($" File name: {fileDescriptor.FileName ?? "[NULL]"}"); + Console.WriteLine($" Comment field size: {fileDescriptor.CommentFieldSize} (0x{fileDescriptor.CommentFieldSize:X})"); + Console.WriteLine($" Comment field: {fileDescriptor.CommentField ?? "[NULL]"}"); + Console.WriteLine($" Expanded file size: {fileDescriptor.ExpandedFileSize} (0x{fileDescriptor.ExpandedFileSize:X})"); + Console.WriteLine($" File time: {fileDescriptor.FileTime} (0x{fileDescriptor.FileTime:X})"); + Console.WriteLine($" File date: {fileDescriptor.FileDate} (0x{fileDescriptor.FileDate:X})"); if (fileDescriptor.Unknown != null) - Console.WriteLine($" Unknown (Checksum?) = {fileDescriptor.Unknown}"); + Console.WriteLine($" Unknown (Checksum?): {fileDescriptor.Unknown} (0x{fileDescriptor.Unknown:X})"); } } Console.WriteLine(); diff --git a/BurnOutSharp.Wrappers/SGA.cs b/BurnOutSharp.Wrappers/SGA.cs index 191342e8..89ad7c7a 100644 --- a/BurnOutSharp.Wrappers/SGA.cs +++ b/BurnOutSharp.Wrappers/SGA.cs @@ -439,14 +439,14 @@ namespace BurnOutSharp.Wrappers Console.WriteLine(" Header Information:"); Console.WriteLine(" -------------------------"); Console.WriteLine($" Signature: {Signature}"); - Console.WriteLine($" Major version: {MajorVersion}"); - Console.WriteLine($" Minor version: {MinorVersion}"); + Console.WriteLine($" Major version: {MajorVersion} (0x{MajorVersion:X})"); + Console.WriteLine($" Minor version: {MinorVersion} (0x{MinorVersion:X})"); Console.WriteLine($" File MD5: {(FileMD5 == null ? "[NULL]" : BitConverter.ToString(FileMD5).Replace("-", string.Empty))}"); Console.WriteLine($" Name: {Name ?? "[NULL]"}"); Console.WriteLine($" Header MD5: {(HeaderMD5 == null ? "[NULL]" : BitConverter.ToString(HeaderMD5).Replace("-", string.Empty))}"); - Console.WriteLine($" Header length: {HeaderLength.ToString() ?? "[NULL]"}"); - Console.WriteLine($" File data offset: {FileDataOffset.ToString() ?? "[NULL]"}"); - Console.WriteLine($" Dummy 0: {Dummy0.ToString() ?? "[NULL]"}"); + Console.WriteLine($" Header length: {HeaderLength?.ToString() ?? "[NULL]"} (0x{HeaderLength?.ToString("X") ?? "[NULL]"})"); + Console.WriteLine($" File data offset: {FileDataOffset?.ToString() ?? "[NULL]"} (0x{FileDataOffset?.ToString("X") ?? "[NULL]"})"); + Console.WriteLine($" Dummy 0: {Dummy0?.ToString() ?? "[NULL]"} (0x{Dummy0?.ToString("X") ?? "[NULL]"})"); Console.WriteLine(); } @@ -457,16 +457,16 @@ namespace BurnOutSharp.Wrappers { Console.WriteLine(" Directory Header Information:"); Console.WriteLine(" -------------------------"); - Console.WriteLine($" Section offset: {SectionOffset.ToString() ?? "[NULL]"}"); - Console.WriteLine($" Section count: {SectionCount.ToString() ?? "[NULL]"}"); - Console.WriteLine($" Folder offset: {FolderOffset.ToString() ?? "[NULL]"}"); - Console.WriteLine($" Folder count: {FolderCount.ToString() ?? "[NULL]"}"); - Console.WriteLine($" File offset: {FileOffset.ToString() ?? "[NULL]"}"); - Console.WriteLine($" File count: {FileCount.ToString() ?? "[NULL]"}"); - Console.WriteLine($" String table offset: {StringTableOffset.ToString() ?? "[NULL]"}"); - Console.WriteLine($" String table count: {StringTableCount.ToString() ?? "[NULL]"}"); - Console.WriteLine($" Hash table offset: {HashTableOffset?.ToString() ?? "[NULL]"}"); - Console.WriteLine($" Block size: {BlockSize?.ToString() ?? "[NULL]"}"); + Console.WriteLine($" Section offset: {SectionOffset?.ToString() ?? "[NULL]"} (0x{SectionOffset?.ToString("X") ?? "[NULL]"})"); + Console.WriteLine($" Section count: {SectionCount?.ToString() ?? "[NULL]"} (0x{SectionCount?.ToString("X") ?? "[NULL]"})"); + Console.WriteLine($" Folder offset: {FolderOffset?.ToString() ?? "[NULL]"} (0x{FolderOffset?.ToString("X") ?? "[NULL]"})"); + Console.WriteLine($" Folder count: {FolderCount?.ToString() ?? "[NULL]"} (0x{FolderCount?.ToString("X") ?? "[NULL]"})"); + Console.WriteLine($" File offset: {FileOffset?.ToString() ?? "[NULL]"} (0x{FileOffset?.ToString("X") ?? "[NULL]"})"); + Console.WriteLine($" File count: {FileCount?.ToString() ?? "[NULL]"} (0x{FileCount?.ToString("X") ?? "[NULL]"})"); + Console.WriteLine($" String table offset: {StringTableOffset?.ToString() ?? "[NULL]"} (0x{StringTableOffset?.ToString("X") ?? "[NULL]"})"); + Console.WriteLine($" String table count: {StringTableCount?.ToString() ?? "[NULL]"} (0x{StringTableCount?.ToString("X") ?? "[NULL]"})"); + Console.WriteLine($" Hash table offset: {HashTableOffset?.ToString() ?? "[NULL]"} (0x{HashTableOffset?.ToString("X") ?? "[NULL]"})"); + Console.WriteLine($" Block size: {BlockSize?.ToString() ?? "[NULL]"} (0x{BlockSize?.ToString("X") ?? "[NULL]"})"); Console.WriteLine(); } @@ -492,11 +492,11 @@ namespace BurnOutSharp.Wrappers var section4 = Sections[i] as Models.SGA.Section4; Console.WriteLine($" Alias: {section4.Alias ?? "[NULL]"}"); Console.WriteLine($" Name: {section4.Name ?? "[NULL]"}"); - Console.WriteLine($" Folder start index: {section4.FolderStartIndex}"); - Console.WriteLine($" Folder end index: {section4.FolderEndIndex}"); - Console.WriteLine($" File start index: {section4.FileStartIndex}"); - Console.WriteLine($" File end index: {section4.FileEndIndex}"); - Console.WriteLine($" Folder root index: {section4.FolderRootIndex}"); + Console.WriteLine($" Folder start index: {section4.FolderStartIndex} (0x{section4.FolderStartIndex:X})"); + Console.WriteLine($" Folder end index: {section4.FolderEndIndex} (0x{section4.FolderEndIndex:X})"); + Console.WriteLine($" File start index: {section4.FileStartIndex} (0x{section4.FileStartIndex:X})"); + Console.WriteLine($" File end index: {section4.FileEndIndex} (0x{section4.FileEndIndex:X})"); + Console.WriteLine($" Folder root index: {section4.FolderRootIndex} (0x{section4.FolderRootIndex:X})"); break; case 5: @@ -505,11 +505,11 @@ namespace BurnOutSharp.Wrappers var section5 = Sections[i] as Models.SGA.Section5; Console.WriteLine($" Alias: {section5.Alias ?? "[NULL]"}"); Console.WriteLine($" Name: {section5.Name ?? "[NULL]"}"); - Console.WriteLine($" Folder start index: {section5.FolderStartIndex}"); - Console.WriteLine($" Folder end index: {section5.FolderEndIndex}"); - Console.WriteLine($" File start index: {section5.FileStartIndex}"); - Console.WriteLine($" File end index: {section5.FileEndIndex}"); - Console.WriteLine($" Folder root index: {section5.FolderRootIndex}"); + Console.WriteLine($" Folder start index: {section5.FolderStartIndex} (0x{section5.FolderStartIndex:X})"); + Console.WriteLine($" Folder end index: {section5.FolderEndIndex} (0x{section5.FolderEndIndex:X})"); + Console.WriteLine($" File start index: {section5.FileStartIndex} (0x{section5.FileStartIndex:X})"); + Console.WriteLine($" File end index: {section5.FileEndIndex} (0x{section5.FileEndIndex:X})"); + Console.WriteLine($" Folder root index: {section5.FolderRootIndex} (0x{section5.FolderRootIndex:X})"); break; default: Console.WriteLine($" Unknown format for version {MajorVersion}"); @@ -540,24 +540,24 @@ namespace BurnOutSharp.Wrappers { case 4: var folder4 = Folders[i] as Models.SGA.Folder4; - Console.WriteLine($" Name offset: {folder4.NameOffset}"); + Console.WriteLine($" Name offset: {folder4.NameOffset} (0x{folder4.NameOffset:X})"); Console.WriteLine($" Name: {folder4.Name ?? "[NULL]"}"); - Console.WriteLine($" Folder start index: {folder4.FolderStartIndex}"); - Console.WriteLine($" Folder end index: {folder4.FolderEndIndex}"); - Console.WriteLine($" File start index: {folder4.FileStartIndex}"); - Console.WriteLine($" File end index: {folder4.FileEndIndex}"); + Console.WriteLine($" Folder start index: {folder4.FolderStartIndex} (0x{folder4.FolderStartIndex:X})"); + Console.WriteLine($" Folder end index: {folder4.FolderEndIndex} (0x{folder4.FolderEndIndex:X})"); + Console.WriteLine($" File start index: {folder4.FileStartIndex} (0x{folder4.FileStartIndex:X})"); + Console.WriteLine($" File end index: {folder4.FileEndIndex} (0x{folder4.FileEndIndex:X})"); break; case 5: case 6: case 7: var folder5 = Folders[i] as Models.SGA.Folder5; - Console.WriteLine($" Name offset: {folder5.NameOffset}"); + Console.WriteLine($" Name offset: {folder5.NameOffset} (0x{folder5.NameOffset:X})"); Console.WriteLine($" Name: {folder5.Name ?? "[NULL]"}"); - Console.WriteLine($" Folder start index: {folder5.FolderStartIndex}"); - Console.WriteLine($" Folder end index: {folder5.FolderEndIndex}"); - Console.WriteLine($" File start index: {folder5.FileStartIndex}"); - Console.WriteLine($" File end index: {folder5.FileEndIndex}"); + Console.WriteLine($" Folder start index: {folder5.FolderStartIndex} (0x{folder5.FolderStartIndex:X})"); + Console.WriteLine($" Folder end index: {folder5.FolderEndIndex} (0x{folder5.FolderEndIndex:X})"); + Console.WriteLine($" File start index: {folder5.FileStartIndex} (0x{folder5.FileStartIndex:X})"); + Console.WriteLine($" File end index: {folder5.FileEndIndex} (0x{folder5.FileEndIndex:X})"); break; default: Console.WriteLine($" Unknown format for version {MajorVersion}"); @@ -589,40 +589,40 @@ namespace BurnOutSharp.Wrappers case 4: case 5: var file4 = Files[i] as Models.SGA.File4; - Console.WriteLine($" Name offset: {file4.NameOffset}"); + Console.WriteLine($" Name offset: {file4.NameOffset} (0x{file4.NameOffset:X})"); Console.WriteLine($" Name: {file4.Name ?? "[NULL]"}"); - Console.WriteLine($" Offset: {file4.Offset}"); - Console.WriteLine($" Size on disk: {file4.SizeOnDisk}"); - Console.WriteLine($" Size: {file4.Size}"); - Console.WriteLine($" Time modified: {file4.TimeModified}"); - Console.WriteLine($" Dummy 0: {file4.Dummy0}"); - Console.WriteLine($" Type: {file4.Type}"); + Console.WriteLine($" Offset: {file4.Offset} (0x{file4.Offset:X})"); + Console.WriteLine($" Size on disk: {file4.SizeOnDisk} (0x{file4.SizeOnDisk:X})"); + Console.WriteLine($" Size: {file4.Size} (0x{file4.Size:X})"); + Console.WriteLine($" Time modified: {file4.TimeModified} (0x{file4.TimeModified:X})"); + Console.WriteLine($" Dummy 0: {file4.Dummy0} (0x{file4.Dummy0:X})"); + Console.WriteLine($" Type: {file4.Type} (0x{file4.Type:X})"); break; case 6: var file6 = Files[i] as Models.SGA.File6; - Console.WriteLine($" Name offset: {file6.NameOffset}"); + Console.WriteLine($" Name offset: {file6.NameOffset} (0x{file6.NameOffset:X})"); Console.WriteLine($" Name: {file6.Name ?? "[NULL]"}"); - Console.WriteLine($" Offset: {file6.Offset}"); - Console.WriteLine($" Size on disk: {file6.SizeOnDisk}"); - Console.WriteLine($" Size: {file6.Size}"); - Console.WriteLine($" Time modified: {file6.TimeModified}"); - Console.WriteLine($" Dummy 0: {file6.Dummy0}"); - Console.WriteLine($" Type: {file6.Type}"); - Console.WriteLine($" CRC32: {file6.CRC32}"); + Console.WriteLine($" Offset: {file6.Offset} (0x{file6.Offset:X})"); + Console.WriteLine($" Size on disk: {file6.SizeOnDisk} (0x{file6.SizeOnDisk:X})"); + Console.WriteLine($" Size: {file6.Size} (0x{file6.Size:X})"); + Console.WriteLine($" Time modified: {file6.TimeModified} (0x{file6.TimeModified:X})"); + Console.WriteLine($" Dummy 0: {file6.Dummy0} (0x{file6.Dummy0:X})"); + Console.WriteLine($" Type: {file6.Type} (0x{file6.Type:X})"); + Console.WriteLine($" CRC32: {file6.CRC32} (0x{file6.CRC32:X})"); break; case 7: var file7 = Files[i] as Models.SGA.File7; - Console.WriteLine($" Name offset: {file7.NameOffset}"); + Console.WriteLine($" Name offset: {file7.NameOffset} (0x{file7.NameOffset:X})"); Console.WriteLine($" Name: {file7.Name ?? "[NULL]"}"); - Console.WriteLine($" Offset: {file7.Offset}"); - Console.WriteLine($" Size on disk: {file7.SizeOnDisk}"); - Console.WriteLine($" Size: {file7.Size}"); - Console.WriteLine($" Time modified: {file7.TimeModified}"); - Console.WriteLine($" Dummy 0: {file7.Dummy0}"); - Console.WriteLine($" Type: {file7.Type}"); - Console.WriteLine($" CRC32: {file7.CRC32}"); - Console.WriteLine($" Hash offset: {file7.HashOffset}"); + Console.WriteLine($" Offset: {file7.Offset} (0x{file7.Offset:X})"); + Console.WriteLine($" Size on disk: {file7.SizeOnDisk} (0x{file7.SizeOnDisk:X})"); + Console.WriteLine($" Size: {file7.Size} (0x{file7.Size:X})"); + Console.WriteLine($" Time modified: {file7.TimeModified} (0x{file7.TimeModified:X})"); + Console.WriteLine($" Dummy 0: {file7.Dummy0} (0x{file7.Dummy0:X})"); + Console.WriteLine($" Type: {file7.Type} (0x{file7.Type:X})"); + Console.WriteLine($" CRC32: {file7.CRC32} (0x{file7.CRC32:X})"); + Console.WriteLine($" Hash offset: {file7.HashOffset} (0x{file7.HashOffset:X})"); break; default: Console.WriteLine($" Unknown format for version {MajorVersion}"); diff --git a/BurnOutSharp.Wrappers/VBSP.cs b/BurnOutSharp.Wrappers/VBSP.cs index fae30829..a3097b81 100644 --- a/BurnOutSharp.Wrappers/VBSP.cs +++ b/BurnOutSharp.Wrappers/VBSP.cs @@ -113,8 +113,8 @@ namespace BurnOutSharp.Wrappers Console.WriteLine(" Header Information:"); Console.WriteLine(" -------------------------"); Console.WriteLine($" Signature: {Signature}"); - Console.WriteLine($" Version: {Version}"); - Console.WriteLine($" Map revision: {MapRevision}"); + Console.WriteLine($" Version: {Version} (0x{Version:X})"); + Console.WriteLine($" Map revision: {MapRevision} (0x{MapRevision:X})"); Console.WriteLine(); } @@ -147,9 +147,9 @@ namespace BurnOutSharp.Wrappers } Console.WriteLine($" Lump {i}{specialLumpName}"); - Console.WriteLine($" Offset: {lump.Offset}"); - Console.WriteLine($" Length: {lump.Length}"); - Console.WriteLine($" Version: {lump.Version}"); + Console.WriteLine($" Offset: {lump.Offset} (0x{lump.Offset:X})"); + Console.WriteLine($" Length: {lump.Length} (0x{lump.Length:X})"); + Console.WriteLine($" Version: {lump.Version} (0x{lump.Version:X})"); Console.WriteLine($" 4CC: {string.Join(", ", lump.FourCC)}"); } } diff --git a/BurnOutSharp.Wrappers/VPK.cs b/BurnOutSharp.Wrappers/VPK.cs index 77e7c7eb..0d3cf0b0 100644 --- a/BurnOutSharp.Wrappers/VPK.cs +++ b/BurnOutSharp.Wrappers/VPK.cs @@ -195,9 +195,9 @@ namespace BurnOutSharp.Wrappers { Console.WriteLine(" Header Information:"); Console.WriteLine(" -------------------------"); - Console.WriteLine($" Signature: {Signature}"); - Console.WriteLine($" Version: {Version}"); - Console.WriteLine($" Directory length: {DirectoryLength}"); + Console.WriteLine($" Signature: {Signature} (0x{Signature:X})"); + Console.WriteLine($" Version: {Version} (0x{Version:X})"); + Console.WriteLine($" Directory length: {DirectoryLength} (0x{DirectoryLength:X})"); Console.WriteLine(); } @@ -214,10 +214,10 @@ namespace BurnOutSharp.Wrappers } else { - Console.WriteLine($" Dummy 0: {Dummy0}"); - Console.WriteLine($" Archive hash length: {ArchiveHashLength}"); - Console.WriteLine($" Extra length: {ExtraLength}"); - Console.WriteLine($" Dummy 1: {Dummy1}"); + Console.WriteLine($" Dummy 0: {Dummy0} (0x{Dummy0:X})"); + Console.WriteLine($" Archive hash length: {ArchiveHashLength} (0x{ArchiveHashLength:X})"); + Console.WriteLine($" Extra length: {ExtraLength} (0x{ExtraLength:X})"); + Console.WriteLine($" Dummy 1: {Dummy1} (0x{Dummy1:X})"); Console.WriteLine(); } } @@ -239,9 +239,9 @@ namespace BurnOutSharp.Wrappers { var archiveHash = ArchiveHashes[i]; Console.WriteLine($" Archive Hash {i}"); - Console.WriteLine($" Archive index: {archiveHash.ArchiveIndex}"); - Console.WriteLine($" Archive offset: {archiveHash.ArchiveOffset}"); - Console.WriteLine($" Length: {archiveHash.Length}"); + Console.WriteLine($" Archive index: {archiveHash.ArchiveIndex} (0x{archiveHash.ArchiveIndex:X})"); + Console.WriteLine($" Archive offset: {archiveHash.ArchiveOffset} (0x{archiveHash.ArchiveOffset:X})"); + Console.WriteLine($" Length: {archiveHash.Length} (0x{archiveHash.Length:X})"); Console.WriteLine($" Hash: {BitConverter.ToString(archiveHash.Hash).Replace("-", string.Empty)}"); } } @@ -286,12 +286,12 @@ namespace BurnOutSharp.Wrappers } else { - Console.WriteLine($" Directory entry CRC: {directoryEntry.CRC}"); - Console.WriteLine($" Directory entry preload bytes: {directoryEntry.PreloadBytes}"); - Console.WriteLine($" Directory entry archive index: {directoryEntry.ArchiveIndex}"); - Console.WriteLine($" Directory entry entry offset: {directoryEntry.EntryOffset}"); - Console.WriteLine($" Directory entry entry length: {directoryEntry.EntryLength}"); - Console.WriteLine($" Directory entry dummy 0: {directoryEntry.Dummy0}"); + Console.WriteLine($" Directory entry CRC: {directoryEntry.CRC} (0x{directoryEntry.CRC:X})"); + Console.WriteLine($" Directory entry preload bytes: {directoryEntry.PreloadBytes} (0x{directoryEntry.PreloadBytes:X})"); + Console.WriteLine($" Directory entry archive index: {directoryEntry.ArchiveIndex} (0x{directoryEntry.ArchiveIndex:X})"); + Console.WriteLine($" Directory entry entry offset: {directoryEntry.EntryOffset} (0x{directoryEntry.EntryOffset:X})"); + Console.WriteLine($" Directory entry entry length: {directoryEntry.EntryLength} (0x{directoryEntry.EntryLength:X})"); + Console.WriteLine($" Directory entry dummy 0: {directoryEntry.Dummy0} (0x{directoryEntry.Dummy0:X})"); } } diff --git a/BurnOutSharp.Wrappers/WAD.cs b/BurnOutSharp.Wrappers/WAD.cs index 8126853b..9c0b2c95 100644 --- a/BurnOutSharp.Wrappers/WAD.cs +++ b/BurnOutSharp.Wrappers/WAD.cs @@ -127,8 +127,8 @@ namespace BurnOutSharp.Wrappers Console.WriteLine(" Header Information:"); Console.WriteLine(" -------------------------"); Console.WriteLine($" Signature: {Signature}"); - Console.WriteLine($" Lump count: {LumpCount}"); - Console.WriteLine($" Lump offset: {LumpOffset}"); + Console.WriteLine($" Lump count: {LumpCount} (0x{LumpCount:X})"); + Console.WriteLine($" Lump offset: {LumpOffset} (0x{LumpOffset:X})"); Console.WriteLine(); } @@ -149,14 +149,14 @@ namespace BurnOutSharp.Wrappers { var lump = Lumps[i]; Console.WriteLine($" Lump {i}"); - Console.WriteLine($" Offset: {lump.Offset}"); - Console.WriteLine($" Disk length: {lump.DiskLength}"); - Console.WriteLine($" Length: {lump.Length}"); - Console.WriteLine($" Type: {lump.Type}"); - Console.WriteLine($" Compression: {lump.Compression}"); - Console.WriteLine($" Padding 0: {lump.Padding0}"); - Console.WriteLine($" Padding 1: {lump.Padding1}"); - Console.WriteLine($" Name: {lump.Name}"); + Console.WriteLine($" Offset: {lump.Offset} (0x{lump.Offset:X})"); + Console.WriteLine($" Disk length: {lump.DiskLength} (0x{lump.DiskLength:X})"); + Console.WriteLine($" Length: {lump.Length} (0x{lump.Length:X})"); + Console.WriteLine($" Type: {lump.Type} (0x{lump.Type:X})"); + Console.WriteLine($" Compression: {lump.Compression} (0x{lump.Compression:X})"); + Console.WriteLine($" Padding 0: {lump.Padding0} (0x{lump.Padding0:X})"); + Console.WriteLine($" Padding 1: {lump.Padding1} (0x{lump.Padding1:X})"); + Console.WriteLine($" Name: {lump.Name ?? "[NULL]"}"); } } Console.WriteLine(); @@ -186,12 +186,12 @@ namespace BurnOutSharp.Wrappers else { Console.WriteLine($" Name: {lumpInfo.Name ?? "[NULL]"}"); - Console.WriteLine($" Width: {lumpInfo.Width}"); - Console.WriteLine($" Height: {lumpInfo.Height}"); - Console.WriteLine($" Pixel offset: {lumpInfo.PixelOffset}"); + Console.WriteLine($" Width: {lumpInfo.Width} (0x{lumpInfo.Width:X})"); + Console.WriteLine($" Height: {lumpInfo.Height} (0x{lumpInfo.Height:X})"); + Console.WriteLine($" Pixel offset: {lumpInfo.PixelOffset} (0x{lumpInfo.PixelOffset:X})"); // TODO: Print unknown data? // TODO: Print pixel data? - Console.WriteLine($" Palette size: {lumpInfo.PaletteSize}"); + Console.WriteLine($" Palette size: {lumpInfo.PaletteSize} (0x{lumpInfo.PaletteSize:X})"); // TODO: Print palette data? } } diff --git a/BurnOutSharp.Wrappers/XZP.cs b/BurnOutSharp.Wrappers/XZP.cs index 011de545..0ee9b748 100644 --- a/BurnOutSharp.Wrappers/XZP.cs +++ b/BurnOutSharp.Wrappers/XZP.cs @@ -173,14 +173,14 @@ namespace BurnOutSharp.Wrappers Console.WriteLine(" Header Information:"); Console.WriteLine(" -------------------------"); Console.WriteLine($" Signature: {Signature}"); - Console.WriteLine($" Version: {Version}"); - Console.WriteLine($" Preload directory entry count: {PreloadDirectoryEntryCount}"); - Console.WriteLine($" Directory entry count: {DirectoryEntryCount}"); - Console.WriteLine($" Preload bytes: {PreloadBytes}"); - Console.WriteLine($" Header length: {HeaderLength}"); - Console.WriteLine($" Directory item count: {DirectoryItemCount}"); - Console.WriteLine($" Directory item offset: {DirectoryItemOffset}"); - Console.WriteLine($" Directory item length: {DirectoryItemLength}"); + Console.WriteLine($" Version: {Version} (0x{Version:X})"); + Console.WriteLine($" Preload directory entry count: {PreloadDirectoryEntryCount} (0x{PreloadDirectoryEntryCount:X})"); + Console.WriteLine($" Directory entry count: {DirectoryEntryCount} (0x{DirectoryEntryCount:X})"); + Console.WriteLine($" Preload bytes: {PreloadBytes} (0x{PreloadBytes:X})"); + Console.WriteLine($" Header length: {HeaderLength} (0x{HeaderLength:X})"); + Console.WriteLine($" Directory item count: {DirectoryItemCount} (0x{DirectoryItemCount:X})"); + Console.WriteLine($" Directory item offset: {DirectoryItemOffset} (0x{DirectoryItemOffset:X})"); + Console.WriteLine($" Directory item length: {DirectoryItemLength} (0x{DirectoryItemLength:X})"); Console.WriteLine(); } @@ -201,9 +201,9 @@ namespace BurnOutSharp.Wrappers { var directoryEntry = DirectoryEntries[i]; Console.WriteLine($" Directory Entry {i}"); - Console.WriteLine($" File name CRC: {directoryEntry.FileNameCRC}"); - Console.WriteLine($" Entry length: {directoryEntry.EntryLength}"); - Console.WriteLine($" Entry offset: {directoryEntry.EntryOffset}"); + Console.WriteLine($" File name CRC: {directoryEntry.FileNameCRC} (0x{directoryEntry.FileNameCRC:X})"); + Console.WriteLine($" Entry length: {directoryEntry.EntryLength} (0x{directoryEntry.EntryLength:X})"); + Console.WriteLine($" Entry offset: {directoryEntry.EntryOffset} (0x{directoryEntry.EntryOffset:X})"); } } Console.WriteLine(); @@ -226,9 +226,9 @@ namespace BurnOutSharp.Wrappers { var preloadDirectoryEntry = PreloadDirectoryEntries[i]; Console.WriteLine($" Directory Entry {i}"); - Console.WriteLine($" File name CRC: {preloadDirectoryEntry.FileNameCRC}"); - Console.WriteLine($" Entry length: {preloadDirectoryEntry.EntryLength}"); - Console.WriteLine($" Entry offset: {preloadDirectoryEntry.EntryOffset}"); + Console.WriteLine($" File name CRC: {preloadDirectoryEntry.FileNameCRC} (0x{preloadDirectoryEntry.FileNameCRC:X})"); + Console.WriteLine($" Entry length: {preloadDirectoryEntry.EntryLength} (0x{preloadDirectoryEntry.EntryLength:X})"); + Console.WriteLine($" Entry offset: {preloadDirectoryEntry.EntryOffset} (0x{preloadDirectoryEntry.EntryOffset:X})"); } } Console.WriteLine(); @@ -251,7 +251,7 @@ namespace BurnOutSharp.Wrappers { var preloadDirectoryMapping = PreloadDirectoryMappings[i]; Console.WriteLine($" Directory Mapping {i}"); - Console.WriteLine($" Preload directory entry index: {preloadDirectoryMapping.PreloadDirectoryEntryIndex}"); + Console.WriteLine($" Preload directory entry index: {preloadDirectoryMapping.PreloadDirectoryEntryIndex} (0x{preloadDirectoryMapping.PreloadDirectoryEntryIndex:X})"); } } Console.WriteLine(); @@ -274,10 +274,10 @@ namespace BurnOutSharp.Wrappers { var directoryItem = DirectoryItems[i]; Console.WriteLine($" Directory Item {i}"); - Console.WriteLine($" File name CRC: {directoryItem.FileNameCRC}"); - Console.WriteLine($" Name offset: {directoryItem.NameOffset}"); + Console.WriteLine($" File name CRC: {directoryItem.FileNameCRC} (0x{directoryItem.FileNameCRC:X})"); + Console.WriteLine($" Name offset: {directoryItem.NameOffset} (0x{directoryItem.NameOffset:X})"); Console.WriteLine($" Name: {directoryItem.Name ?? "[NULL]"}"); - Console.WriteLine($" Time created: {directoryItem.TimeCreated}"); + Console.WriteLine($" Time created: {directoryItem.TimeCreated} (0x{directoryItem.TimeCreated:X})"); } } Console.WriteLine(); @@ -290,7 +290,7 @@ namespace BurnOutSharp.Wrappers { Console.WriteLine(" Footer Information:"); Console.WriteLine(" -------------------------"); - Console.WriteLine($" File length: {F_FileLength}"); + Console.WriteLine($" File length: {F_FileLength} (0x{F_FileLength:X})"); Console.WriteLine($" Signature: {F_Signature}"); Console.WriteLine(); }