From 895394ebb9fe9ef7fabe0596563c7d6144b362b0 Mon Sep 17 00:00:00 2001 From: Matt Nadareski Date: Tue, 8 Nov 2022 11:30:23 -0800 Subject: [PATCH] Fix MS-DOS header parsing --- BurnOutSharp.Builder/Extensions.cs | 2 +- BurnOutSharp.Builder/MSDOS.cs | 12 ++++++------ BurnOutSharp.Models/MSDOS/ExecutableHeader.cs | 2 +- 3 files changed, 8 insertions(+), 8 deletions(-) diff --git a/BurnOutSharp.Builder/Extensions.cs b/BurnOutSharp.Builder/Extensions.cs index d976a85f..5c0dd6a0 100644 --- a/BurnOutSharp.Builder/Extensions.cs +++ b/BurnOutSharp.Builder/Extensions.cs @@ -6,7 +6,7 @@ using System.Text; namespace BurnOutSharp.Builder { - internal static class Extensions + public static class Extensions { #region Byte Arrays diff --git a/BurnOutSharp.Builder/MSDOS.cs b/BurnOutSharp.Builder/MSDOS.cs index c7aef902..b50d1344 100644 --- a/BurnOutSharp.Builder/MSDOS.cs +++ b/BurnOutSharp.Builder/MSDOS.cs @@ -76,10 +76,10 @@ namespace BurnOutSharp.Builder #region Standard Fields - header.Magic = new char[2]; + header.Magic = new byte[2]; for (int i = 0; i < header.Magic.Length; i++) { - header.Magic[i] = data.ReadChar(ref offset); + header.Magic[i] = data.ReadByte(ref offset); } if (header.Magic[0] != 'M' || header.Magic[1] != 'Z') return null; @@ -114,7 +114,7 @@ namespace BurnOutSharp.Builder header.OEMIdentifier = data.ReadUInt16(ref offset); header.OEMInformation = data.ReadUInt16(ref offset); header.Reserved2 = new ushort[10]; - for (int i = 0; i < header.Reserved1.Length; i++) + for (int i = 0; i < header.Reserved2.Length; i++) { header.Reserved2[i] = data.ReadUInt16(ref offset); } @@ -219,10 +219,10 @@ namespace BurnOutSharp.Builder #region Standard Fields - header.Magic = new char[2]; + header.Magic = new byte[2]; for (int i = 0; i < header.Magic.Length; i++) { - header.Magic[i] = data.ReadChar(); + header.Magic[i] = data.ReadByteValue(); } if (header.Magic[0] != 'M' || header.Magic[1] != 'Z') return null; @@ -257,7 +257,7 @@ namespace BurnOutSharp.Builder header.OEMIdentifier = data.ReadUInt16(); header.OEMInformation = data.ReadUInt16(); header.Reserved2 = new ushort[10]; - for (int i = 0; i < header.Reserved1.Length; i++) + for (int i = 0; i < header.Reserved2.Length; i++) { header.Reserved2[i] = data.ReadUInt16(); } diff --git a/BurnOutSharp.Models/MSDOS/ExecutableHeader.cs b/BurnOutSharp.Models/MSDOS/ExecutableHeader.cs index fdb56562..b07b2a67 100644 --- a/BurnOutSharp.Models/MSDOS/ExecutableHeader.cs +++ b/BurnOutSharp.Models/MSDOS/ExecutableHeader.cs @@ -17,7 +17,7 @@ namespace BurnOutSharp.Models.MSDOS /// 0x5A4D (ASCII for 'M' and 'Z') /// [MarshalAs(UnmanagedType.ByValArray, SizeConst = 2)] - public char[] Magic; + public byte[] Magic; /// /// Number of bytes in the last page.