Fix the cpcemu images not recognized as such.

This commit is contained in:
Maxime Croizer
2020-02-12 14:51:24 +01:00
parent a8b6ca13b7
commit 2b402f009c
4 changed files with 9 additions and 10 deletions

View File

@@ -1,4 +1,4 @@
// /***************************************************************************
// /***************************************************************************
// The Disc Image Chef
// ----------------------------------------------------------------------------
//
@@ -35,12 +35,11 @@ namespace DiscImageChef.DiscImages
public partial class Cpcdsk
{
/// <summary>
/// Identifier for CPCEMU disk images, "MV - CPCEMU Disk-File"
/// Identifier for CPCEMU disk images, "MV - CPC" + usually : "EMU Disk-File\r\nDisk-Info\r\n" but not required
/// </summary>
readonly byte[] cpcdskId =
{
0x4D, 0x56, 0x20, 0x2D, 0x20, 0x43, 0x50, 0x43, 0x45, 0x4D, 0x55, 0x20, 0x44, 0x69, 0x73, 0x6B, 0x2D,
0x46, 0x69, 0x6C, 0x65
0x4D, 0x56, 0x20, 0x2D, 0x20, 0x43, 0x50, 0x43
};
/// <summary>
/// Identifier for DU54 disk images, "MV - CPC format Disk Image (DU54)"

View File

@@ -1,4 +1,4 @@
// /***************************************************************************
// /***************************************************************************
// The Disc Image Chef
// ----------------------------------------------------------------------------
//
@@ -54,7 +54,7 @@ namespace DiscImageChef.DiscImages
DicConsole.DebugWriteLine("CPCDSK plugin", "header.magic = \"{0}\"",
StringHandlers.CToString(header.magic));
return cpcdskId.SequenceEqual(header.magic) || edskId.SequenceEqual(header.magic) ||
return cpcdskId.SequenceEqual(header.magic.Take(cpcdskId.Length)) || edskId.SequenceEqual(header.magic) ||
du54Id.SequenceEqual(header.magic);
}
}

View File

@@ -1,4 +1,4 @@
// /***************************************************************************
// /***************************************************************************
// The Disc Image Chef
// ----------------------------------------------------------------------------
//
@@ -59,7 +59,7 @@ namespace DiscImageChef.DiscImages
stream.Read(headerB, 0, 256);
CpcDiskInfo header = Marshal.ByteArrayToStructureLittleEndian<CpcDiskInfo>(headerB);
if(!cpcdskId.SequenceEqual(header.magic) &&
if(!cpcdskId.SequenceEqual(header.magic.Take(cpcdskId.Length)) &&
!edskId.SequenceEqual(header.magic) &&
!du54Id.SequenceEqual(header.magic))
return false;

View File

@@ -1,4 +1,4 @@
// /***************************************************************************
// /***************************************************************************
// The Disc Image Chef
// ----------------------------------------------------------------------------
//
@@ -41,7 +41,7 @@ namespace DiscImageChef.DiscImages
struct CpcDiskInfo
{
/// <summary>
/// Magic number, "MV - CPCEMU Disk-File" in old files, "EXTENDED CPC DSK File" in extended ones
/// Magic number, "MV - CPC" in old files, "EXTENDED CPC DSK File" in extended ones
/// </summary>
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 21)]
public byte[] magic;