diff --git a/BizHawk.Client.Common/RomGame.cs b/BizHawk.Client.Common/RomGame.cs index a30e3b64c4..13eaf5b94f 100644 --- a/BizHawk.Client.Common/RomGame.cs +++ b/BizHawk.Client.Common/RomGame.cs @@ -66,6 +66,13 @@ namespace BizHawk.Client.Common { RomData = FileData; } + else if (file.Extension == ".DSK" || file.Extension == ".TAP" || file.Extension == ".TZX") + { + // these are not roms. unforunately if treated as such there are certain edge-cases + // where a header offset is detected. This should mitigate this issue until a cleaner solution is found + // (-Asnivor) + RomData = FileData; + } else { // if there was a header offset, read the whole file into FileData and then copy it into RomData (this is unfortunate, in case RomData isnt needed) diff --git a/BizHawk.Emulation.Common/Database/Database.cs b/BizHawk.Emulation.Common/Database/Database.cs index 8f0af8194d..5f37e91711 100644 --- a/BizHawk.Emulation.Common/Database/Database.cs +++ b/BizHawk.Emulation.Common/Database/Database.cs @@ -341,8 +341,9 @@ namespace BizHawk.Emulation.Common case ".DSK": byte[] head2 = romData.Take(20).ToArray(); - if (System.Text.Encoding.Default.GetString(head2).ToUpper().Contains("EXTENDED CPC DSK") || - System.Text.Encoding.Default.GetString(head2).ToUpper().Contains("MV - CPCEMU")) + string ident = System.Text.Encoding.Default.GetString(head2); + if (ident.ToUpper().Contains("EXTENDED CPC DSK") || + ident.ToUpper().Contains("MV - CPCEMU")) game.System = "ZXSpectrum"; else game.System = "AppleII";