* README.md:

* DiscImageChef.DiscImages/GDI.cs:
	* DiscImageChef.DiscImages/DiscImageChef.DiscImages.csproj:
	  Added support for Dreamcast GDI images.

	* DiscImageChef.DiscImages/ImagePlugin.cs:
	  Add XML documentation to exceptions.

	* DiscImageChef.Filesystems/ISO9660.cs:
	  Corrected Dreamcast IP.BIN interpretation.

	* DiscImageChef/Commands/CreateSidecar.cs:
	  Formatting.
This commit is contained in:
2015-12-25 20:47:40 +00:00
parent 3b368e0bd4
commit 8ed384f47f
9 changed files with 1392 additions and 43 deletions

View File

@@ -1,3 +1,12 @@
2015-12-25 Natalia Portillo <claunia@claunia.com>
* GDI.cs:
* DiscImageChef.DiscImages.csproj:
Added support for Dreamcast GDI images.
* ImagePlugin.cs:
Add XML documentation to exceptions.
2015-12-23 Natalia Portillo <claunia@claunia.com>
* CDRDAO.cs:

View File

@@ -44,6 +44,7 @@
<Compile Include="VHD.cs" />
<Compile Include="ZZZRawImage.cs" />
<Compile Include="CDRDAO.cs" />
<Compile Include="GDI.cs" />
</ItemGroup>
<Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" />
<ItemGroup>

File diff suppressed because it is too large Load Diff

View File

@@ -694,14 +694,28 @@ namespace DiscImageChef.ImagePlugins
[Serializable]
public class FeatureSupportedButNotImplementedImageException : Exception
{
/// <summary>
/// Feature is supported by image but not implemented yet.
/// </summary>
/// <param name="message">Message.</param>
/// <param name="inner">Inner.</param>
public FeatureSupportedButNotImplementedImageException(string message, Exception inner) : base(message, inner)
{
}
/// <summary>
/// Feature is supported by image but not implemented yet.
/// </summary>
/// <param name="message">Message.</param>
public FeatureSupportedButNotImplementedImageException(string message) : base(message)
{
}
/// <summary>
/// Feature is supported by image but not implemented yet.
/// </summary>
/// <param name="info">Info.</param>
/// <param name="context">Context.</param>
protected FeatureSupportedButNotImplementedImageException(System.Runtime.Serialization.SerializationInfo info,
System.Runtime.Serialization.StreamingContext context)
{
@@ -716,14 +730,28 @@ namespace DiscImageChef.ImagePlugins
[Serializable]
public class FeatureUnsupportedImageException : Exception
{
/// <summary>
/// Feature is not supported by image.
/// </summary>
/// <param name="message">Message.</param>
/// <param name="inner">Inner.</param>
public FeatureUnsupportedImageException(string message, Exception inner) : base(message, inner)
{
}
/// <summary>
/// Feature is not supported by image.
/// </summary>
/// <param name="message">Message.</param>
public FeatureUnsupportedImageException(string message) : base(message)
{
}
/// <summary>
/// Feature is not supported by image.
/// </summary>
/// <param name="info">Info.</param>
/// <param name="context">Context.</param>
protected FeatureUnsupportedImageException(System.Runtime.Serialization.SerializationInfo info,
System.Runtime.Serialization.StreamingContext context)
{
@@ -738,14 +766,28 @@ namespace DiscImageChef.ImagePlugins
[Serializable]
public class FeatureNotPresentImageException : Exception
{
/// <summary>
/// Feature is supported by image but not present on it.
/// </summary>
/// <param name="message">Message.</param>
/// <param name="inner">Inner.</param>
public FeatureNotPresentImageException(string message, Exception inner) : base(message, inner)
{
}
/// <summary>
/// Feature is supported by image but not present on it.
/// </summary>
/// <param name="message">Message.</param>
public FeatureNotPresentImageException(string message) : base(message)
{
}
/// <summary>
/// Feature is supported by image but not present on it.
/// </summary>
/// <param name="info">Info.</param>
/// <param name="context">Context.</param>
protected FeatureNotPresentImageException(System.Runtime.Serialization.SerializationInfo info,
System.Runtime.Serialization.StreamingContext context)
{
@@ -760,14 +802,28 @@ namespace DiscImageChef.ImagePlugins
[Serializable]
public class FeaturedNotSupportedByDiscImageException : Exception
{
/// <summary>
/// Feature is supported by image but not by the disc it represents.
/// </summary>
/// <param name="message">Message.</param>
/// <param name="inner">Inner.</param>
public FeaturedNotSupportedByDiscImageException(string message, Exception inner) : base(message, inner)
{
}
/// <summary>
/// Feature is supported by image but not by the disc it represents.
/// </summary>
/// <param name="message">Message.</param>
public FeaturedNotSupportedByDiscImageException(string message) : base(message)
{
}
/// <summary>
/// Feature is supported by image but not by the disc it represents.
/// </summary>
/// <param name="info">Info.</param>
/// <param name="context">Context.</param>
protected FeaturedNotSupportedByDiscImageException(System.Runtime.Serialization.SerializationInfo info,
System.Runtime.Serialization.StreamingContext context)
{
@@ -782,14 +838,28 @@ namespace DiscImageChef.ImagePlugins
[Serializable]
public class ImageNotSupportedException : Exception
{
/// <summary>
/// Corrupt, incorrect or unhandled feature found on image
/// </summary>
/// <param name="message">Message.</param>
/// <param name="inner">Inner.</param>
public ImageNotSupportedException(string message, Exception inner) : base(message, inner)
{
}
/// <summary>
/// Corrupt, incorrect or unhandled feature found on image
/// </summary>
/// <param name="message">Message.</param>
public ImageNotSupportedException(string message) : base(message)
{
}
/// <summary>
/// Corrupt, incorrect or unhandled feature found on image
/// </summary>
/// <param name="info">Info.</param>
/// <param name="context">Context.</param>
protected ImageNotSupportedException(System.Runtime.Serialization.SerializationInfo info,
System.Runtime.Serialization.StreamingContext context)
{

View File

@@ -1,3 +1,8 @@
2015-12-25 Natalia Portillo <claunia@claunia.com>
* ISO9660.cs:
Corrected Dreamcast IP.BIN interpretation.
2015-12-23 Natalia Portillo <claunia@claunia.com>
* ISO9660.cs:

View File

@@ -80,9 +80,9 @@ namespace DiscImageChef.Plugins
public override bool Identify(ImagePlugins.ImagePlugin imagePlugin, ulong partitionStart, ulong partitionEnd)
{
if (alreadyLaunched)
/* if (alreadyLaunched)
return false;
alreadyLaunched = true;
alreadyLaunched = true;*/
byte VDType;
@@ -776,54 +776,57 @@ namespace DiscImageChef.Plugins
int iPeripherals = int.Parse(Encoding.ASCII.GetString(peripherals), NumberStyles.HexNumber);
if((iPeripherals & 0x00000010) == 0x00000010)
if((iPeripherals & 0x00000001) == 0x00000001)
IPBinInformation.AppendLine("Game uses Windows CE.");
IPBinInformation.AppendFormat("Peripherals:").AppendLine();
if ((iPeripherals & 0x00000100) == 0x00000100)
if ((iPeripherals & 0x00000010) == 0x00000010)
IPBinInformation.AppendLine("Game supports the VGA Box.");
if ((iPeripherals & 0x00001000) == 0x00001000)
if ((iPeripherals & 0x00000100) == 0x00000100)
IPBinInformation.AppendLine("Game supports other expansion.");
if ((iPeripherals & 0x00002000) == 0x00002000)
if ((iPeripherals & 0x00000200) == 0x00000200)
IPBinInformation.AppendLine("Game supports Puru Puru pack.");
if ((iPeripherals & 0x00004000) == 0x00004000)
if ((iPeripherals & 0x00000400) == 0x00000400)
IPBinInformation.AppendLine("Game supports Mike Device.");
if ((iPeripherals & 0x00008000) == 0x00008000)
if ((iPeripherals & 0x00000800) == 0x00000800)
IPBinInformation.AppendLine("Game supports Memory Card.");
if ((iPeripherals & 0x00010000) == 0x00010000)
if ((iPeripherals & 0x00001000) == 0x00001000)
IPBinInformation.AppendLine("Game requires A + B + Start buttons and D-Pad.");
if ((iPeripherals & 0x00020000) == 0x00020000)
if ((iPeripherals & 0x00002000) == 0x00002000)
IPBinInformation.AppendLine("Game requires C button.");
if ((iPeripherals & 0x00040000) == 0x00040000)
if ((iPeripherals & 0x00004000) == 0x00004000)
IPBinInformation.AppendLine("Game requires D button.");
if ((iPeripherals & 0x00080000) == 0x00080000)
if ((iPeripherals & 0x00008000) == 0x00008000)
IPBinInformation.AppendLine("Game requires X button.");
if ((iPeripherals & 0x00100000) == 0x00100000)
if ((iPeripherals & 0x00010000) == 0x00010000)
IPBinInformation.AppendLine("Game requires Y button.");
if ((iPeripherals & 0x00200000) == 0x00200000)
if ((iPeripherals & 0x00020000) == 0x00020000)
IPBinInformation.AppendLine("Game requires Z button.");
if ((iPeripherals & 0x00400000) == 0x00400000)
if ((iPeripherals & 0x00040000) == 0x00040000)
IPBinInformation.AppendLine("Game requires expanded direction buttons.");
if ((iPeripherals & 0x00800000) == 0x00800000)
if ((iPeripherals & 0x00080000) == 0x00080000)
IPBinInformation.AppendLine("Game requires analog R trigger.");
if ((iPeripherals & 0x01000000) == 0x01000000)
if ((iPeripherals & 0x00100000) == 0x00100000)
IPBinInformation.AppendLine("Game requires analog L trigger.");
if ((iPeripherals & 0x02000000) == 0x02000000)
if ((iPeripherals & 0x00200000) == 0x00200000)
IPBinInformation.AppendLine("Game requires analog horizontal controller.");
if ((iPeripherals & 0x04000000) == 0x04000000)
if ((iPeripherals & 0x00400000) == 0x00400000)
IPBinInformation.AppendLine("Game requires analog vertical controller.");
if ((iPeripherals & 0x08000000) == 0x08000000)
if ((iPeripherals & 0x00800000) == 0x00800000)
IPBinInformation.AppendLine("Game requires expanded analog horizontal controller.");
if ((iPeripherals & 0x10000000) == 0x10000000)
if ((iPeripherals & 0x01000000) == 0x01000000)
IPBinInformation.AppendLine("Game requires expanded analog vertical controller.");
if ((iPeripherals & 0x20000000) == 0x20000000)
if ((iPeripherals & 0x02000000) == 0x02000000)
IPBinInformation.AppendLine("Game supports Gun.");
if ((iPeripherals & 0x40000000) == 0x40000000)
if ((iPeripherals & 0x04000000) == 0x04000000)
IPBinInformation.AppendLine("Game supports Keyboard.");
if ((iPeripherals & 0x80000000) == 0x80000000)
if ((iPeripherals & 0x08000000) == 0x08000000)
IPBinInformation.AppendLine("Game supports Mouse.");
if((iPeripherals & 0xEE) != 0)
IPBinInformation.AppendFormat("Game supports unknown peripherals mask {0:X2}", (iPeripherals & 0xEE));
break;
}
}

View File

@@ -1,3 +1,8 @@
2015-12-25 Natalia Portillo <claunia@claunia.com>
* Commands/CreateSidecar.cs:
Formatting.
2015-12-23 Natalia Portillo <claunia@claunia.com>
* Commands/CreateSidecar.cs:

View File

@@ -578,6 +578,9 @@ namespace DiscImageChef.Commands
xmlTrk.Size = (xmlTrk.EndSector - xmlTrk.StartSector + 1) * trk.TrackRawBytesPerSector;
xmlTrk.BytesPerSector = trk.TrackBytesPerSector;
// For fast debugging, skip checksum
//goto skipChecksum;
uint sectorsToRead = 512;
adler32ctx = new Adler32Context();
@@ -977,6 +980,9 @@ namespace DiscImageChef.Commands
DicConsole.WriteLine();
}
// For fast debugging, skip checksum
//skipChecksum:
DicConsole.WriteLine("Checking filesystems on track {0} from sector {1} to {2}", xmlTrk.Sequence.TrackNumber, xmlTrk.StartSector, xmlTrk.EndSector);
List<Partition> partitions = new List<Partition>();
@@ -993,10 +999,10 @@ namespace DiscImageChef.Commands
}
xmlTrk.FileSystemInformation = new PartitionType[1];
if(partitions.Count > 0)
if (partitions.Count > 0)
{
xmlTrk.FileSystemInformation = new PartitionType[partitions.Count];
for(int i = 0; i < partitions.Count; i++)
for (int i = 0; i < partitions.Count; i++)
{
xmlTrk.FileSystemInformation[i] = new PartitionType();
xmlTrk.FileSystemInformation[i].Description = partitions[i].PartitionDescription;
@@ -1012,10 +1018,10 @@ namespace DiscImageChef.Commands
{
try
{
if (_plugin.Identify(_imageFormat, partitions[i].PartitionStartSector, partitions[i].PartitionStartSector+partitions[i].PartitionSectors-1))
if (_plugin.Identify(_imageFormat, partitions[i].PartitionStartSector, partitions[i].PartitionStartSector + partitions[i].PartitionSectors - 1))
{
string foo;
_plugin.GetInformation(_imageFormat, partitions[i].PartitionStartSector, partitions[i].PartitionStartSector+partitions[i].PartitionSectors-1, out foo);
_plugin.GetInformation(_imageFormat, partitions[i].PartitionStartSector, partitions[i].PartitionStartSector + partitions[i].PartitionSectors - 1, out foo);
lstFs.Add(_plugin.XmlFSType);
}
}
@@ -1025,7 +1031,7 @@ namespace DiscImageChef.Commands
}
}
if(lstFs.Count > 0)
if (lstFs.Count > 0)
xmlTrk.FileSystemInformation[i].FileSystems = lstFs.ToArray();
}
}
@@ -1054,7 +1060,7 @@ namespace DiscImageChef.Commands
}
}
if(lstFs.Count > 0)
if (lstFs.Count > 0)
xmlTrk.FileSystemInformation[0].FileSystems = lstFs.ToArray();
}

View File

@@ -41,6 +41,7 @@ Supported disk image formats
* Apple 2IMG (used with Apple // emulators)
* Virtual PC fixed size, dynamic size and differencing (undo) disk images
* CDRDAO TOC sheets
* Dreamcast GDI
Supported partitioning schemes
==============================