internal protected bool IsMT32(int sound)
{
var ptr = ScummEngine.Instance.ResourceManager.GetSound(ScummEngine.Instance.Sound.MusicType, sound);
if (ptr == null)
return false;
var tag = System.Text.Encoding.UTF8.GetString(ptr, 0, 4);
switch (tag)
{
case "ADL ":
case "ASFX": // Special AD class for old AdLib sound effects
case "SPK ":
return false;
case "AMI ":
case "ROL ":
return true;
case "MAC ": // Occurs in the Mac version of FOA and MI2
return false;
case "GMD ":
return false;
case "MIDI": // Occurs in Sam & Max
// HE games use Roland music
if (ptr[8] == 'H' && ptr[9] == 'S')
return true;
else
return false;
}
// Old style 'RO' has equivalent properties to 'ROL'
if (System.Text.Encoding.UTF8.GetString(ptr, 0, 2) == "RO")
return true;
// Euphony tracks show as 'SO' and have equivalent properties to 'ADL'
if (System.Text.Encoding.UTF8.GetString(ptr, 4, 2) == "SO")
return false;
// Console.Error.WriteLine("Unknown music type: '{0}'", tag);
return false;
}