Added support for Nintendo GOD and WOD.

This commit is contained in:
2015-12-03 08:11:46 +00:00
parent 565cc9c133
commit 3c79845b90
5 changed files with 43 additions and 3 deletions

View File

@@ -1,3 +1,9 @@
2015-12-03 Natalia Portillo <claunia@claunia.com>
* DVD/PFI.cs:
* DVD/Enums.cs:
Added support for Nintendo GOD and WOD.
2015-12-03 Natalia Portillo <claunia@claunia.com>
* Xbox/DMI.cs:

View File

@@ -77,7 +77,12 @@ namespace DiscImageChef.Decoders.DVD
/// <summary>
/// DVD+R DL. Version 1 is ECMA-364.
/// </summary>
DVDPRDL = 14
DVDPRDL = 14,
/// <summary>
/// According to standards this value is reserved.
/// It's used by Nintendo GODs and WODs.
/// </summary>
Nintendo = 15
}
public enum MaximumRateField : byte

View File

@@ -1470,6 +1470,19 @@ namespace DiscImageChef.Decoders.DVD
break;
}
break;
case DiskCategory.Nintendo:
if (decoded.PartVersion == 15)
{
if (decoded.DiscSize == DVDSize.Eighty)
sb.AppendLine("Disc is a Nintendo Gamecube Optical Disc (GOD)");
else if (decoded.DiscSize == DVDSize.OneTwenty)
sb.AppendLine("Disc is a Nintendo Wii Optical Disc (WOD)");
else
goto default;
}
else
goto default;
break;
default:
sb.AppendFormat(categorySentence, sizeString, "unknown disc type", decoded.PartVersion).AppendLine();
break;

View File

@@ -1,3 +1,8 @@
2015-12-03 Natalia Portillo <claunia@claunia.com>
* Commands/MediaInfo.cs:
Added support for Nintendo GOD and WOD.
2015-12-03 Natalia Portillo <claunia@claunia.com>
* Commands/MediaInfo.cs:

View File

@@ -817,7 +817,19 @@ namespace DiscImageChef.Commands
else
{
doWriteFile(outputPrefix, "_readdiscstructure_dvd_pfi.bin", "SCSI READ DISC STRUCTURE", cmdBuf);
DicConsole.WriteLine("PFI:\n{0}", Decoders.DVD.PFI.Prettify(cmdBuf));
Decoders.DVD.PFI.PhysicalFormatInformation? nintendoPfi = Decoders.DVD.PFI.Decode(cmdBuf);
if(nintendoPfi != null)
{
DicConsole.WriteLine("PFI:\n{0}", Decoders.DVD.PFI.Prettify(cmdBuf));
if(nintendoPfi.Value.DiskCategory == DiscImageChef.Decoders.DVD.DiskCategory.Nintendo &&
nintendoPfi.Value.PartVersion == 15)
{
if(nintendoPfi.Value.DiscSize == DiscImageChef.Decoders.DVD.DVDSize.Eighty)
dskType = DiskType.GOD;
else if(nintendoPfi.Value.DiscSize == DiscImageChef.Decoders.DVD.DVDSize.OneTwenty)
dskType = DiskType.WOD;
}
}
}
sense = dev.ReadDiscStructure(out cmdBuf, out senseBuf, MmcDiscStructureMediaType.DVD, 0, 0, MmcDiscStructureFormat.DiscManufacturingInformation, 0, dev.Timeout, out duration);
if(sense)
@@ -837,7 +849,6 @@ namespace DiscImageChef.Commands
DicConsole.ErrorWriteLine("READ DISC STRUCTURE: BCA\n{0}", Decoders.SCSI.Sense.PrettifySense(senseBuf));
else
doWriteFile(outputPrefix, "_readdiscstructure_dvd_bca.bin", "SCSI READ DISC STRUCTURE", cmdBuf);
}
#endregion Nintendo
}