diff --git a/DiscImageChef/ChangeLog b/DiscImageChef/ChangeLog index 6dd8e24c..31aabca1 100644 --- a/DiscImageChef/ChangeLog +++ b/DiscImageChef/ChangeLog @@ -1,3 +1,8 @@ +2017-05-23 Natalia Portillo + + * Commands/MediaInfo.cs: + Added support for extracting SS in Kreon drives. + 2017-05-23 Natalia Portillo * Commands/MediaInfo.cs: diff --git a/DiscImageChef/Commands/MediaInfo.cs b/DiscImageChef/Commands/MediaInfo.cs index a8357d39..4b228277 100644 --- a/DiscImageChef/Commands/MediaInfo.cs +++ b/DiscImageChef/Commands/MediaInfo.cs @@ -1079,6 +1079,27 @@ namespace DiscImageChef.Commands #endregion Nintendo } + if((dskType == MediaType.XGD || dskType == MediaType.XGD2 || dskType == MediaType.XGD3)) + { + // We need to get INQUIRY to know if it is a Kreon drive + byte[] inqBuffer; + Decoders.SCSI.Inquiry.SCSIInquiry? inq; + + sense = dev.ScsiInquiry(out inqBuffer, out senseBuf); + if(!sense) + { + inq = Decoders.SCSI.Inquiry.Decode(inqBuffer); + if(inq.HasValue && inq.Value.KreonPresent) + { + sense = dev.KreonExtractSS(out cmdBuf, out senseBuf, dev.Timeout, out duration); + if(sense) + DicConsole.DebugWriteLine("Media-Info command", "KREON EXTRACT SS:\n{0}", Decoders.SCSI.Sense.PrettifySense(senseBuf)); + else + doWriteFile(outputPrefix, "_xbox_ss.bin", "KREON EXTRACT SS", cmdBuf); + } + } + } + if(dskType == MediaType.Unknown) dskType = MediaTypeFromSCSI.Get((byte)dev.SCSIType, dev.Manufacturer, dev.Model, scsiMediumType, scsiDensityCode, blocks, blockSize);