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 // The Disc Image Chef
// ---------------------------------------------------------------------------- // ----------------------------------------------------------------------------
// //
@@ -35,12 +35,11 @@ namespace DiscImageChef.DiscImages
public partial class Cpcdsk public partial class Cpcdsk
{ {
/// <summary> /// <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> /// </summary>
readonly byte[] cpcdskId = readonly byte[] cpcdskId =
{ {
0x4D, 0x56, 0x20, 0x2D, 0x20, 0x43, 0x50, 0x43, 0x45, 0x4D, 0x55, 0x20, 0x44, 0x69, 0x73, 0x6B, 0x2D, 0x4D, 0x56, 0x20, 0x2D, 0x20, 0x43, 0x50, 0x43
0x46, 0x69, 0x6C, 0x65
}; };
/// <summary> /// <summary>
/// Identifier for DU54 disk images, "MV - CPC format Disk Image (DU54)" /// Identifier for DU54 disk images, "MV - CPC format Disk Image (DU54)"

View File

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

View File

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

View File

@@ -1,4 +1,4 @@
// /*************************************************************************** // /***************************************************************************
// The Disc Image Chef // The Disc Image Chef
// ---------------------------------------------------------------------------- // ----------------------------------------------------------------------------
// //
@@ -41,7 +41,7 @@ namespace DiscImageChef.DiscImages
struct CpcDiskInfo struct CpcDiskInfo
{ {
/// <summary> /// <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> /// </summary>
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 21)] [MarshalAs(UnmanagedType.ByValArray, SizeConst = 21)]
public byte[] magic; public byte[] magic;