Adding proper Disc identification for ISO9660 / Joliet (default target DOS)
This commit is contained in:
parent
7774d4acf3
commit
071667ce0d
|
@ -297,6 +297,9 @@ namespace BizHawk.Client.Common
|
|||
case DiscType.Wii:
|
||||
NoCoreForSystem(VSystemID.Raw.Wii);
|
||||
break;
|
||||
case DiscType.DOS:
|
||||
game.System = VSystemID.Raw.DOS;
|
||||
break;
|
||||
|
||||
case DiscType.AudioDisc:
|
||||
case DiscType.UnknownCDFS:
|
||||
|
|
|
@ -112,6 +112,11 @@ namespace BizHawk.Emulation.DiscSystem
|
|||
/// Atari Jaguar CD
|
||||
/// </summary>
|
||||
JaguarCD,
|
||||
|
||||
/// <summary>
|
||||
/// DOS / Windows
|
||||
/// </summary>
|
||||
DOS,
|
||||
}
|
||||
|
||||
public class DiscIdentifier
|
||||
|
@ -243,6 +248,10 @@ namespace BizHawk.Emulation.DiscSystem
|
|||
return DiscType.Amiga;
|
||||
}
|
||||
|
||||
// Detects ISO9660 / Joliet CD formats (target for DOS / Windows)
|
||||
if (DetectISO9660())
|
||||
return DiscType.DOS;
|
||||
|
||||
// NeoGeoCD Check
|
||||
var absTxt = iso.Root.Children.Where(kvp => kvp.Key.Contains("ABS.TXT")).Select(kvp => kvp.Value).FirstOrDefault();
|
||||
if (absTxt != null && SectorContains("abstracted by snk", Convert.ToInt32(absTxt.Offset))) return DiscType.NeoGeoCD;
|
||||
|
@ -394,6 +403,12 @@ namespace BizHawk.Emulation.DiscSystem
|
|||
return hexString == "5D1C9EA3";
|
||||
}
|
||||
|
||||
private bool DetectISO9660()
|
||||
{
|
||||
return StringAt("CD001", 1, 16);
|
||||
}
|
||||
|
||||
|
||||
private bool DetectJaguarCD()
|
||||
{
|
||||
// Atari Jaguar CDs are multisession discs which are encoded like audio CDs
|
||||
|
|
Loading…
Reference in New Issue