public SubType DetectSubType(Stream Stream)
{
var StartMagic = Stream.SliceWithLength(0, 4).ReadAllContentsAsString(Encoding.ASCII);
//Console.WriteLine(StartMagic);
if (StartMagic == '\0' + "PBP") return SubType.Pbp;
if (StartMagic == '\0' + "PSF") return SubType.Psf;
if (StartMagic == '\x7F' + "ELF") return SubType.Elf;
if (StartMagic == "~PSP") return SubType.EncryptedElf;
if (StartMagic == "CISO") return SubType.Cso;
if (StartMagic == "DAX" + '\0') return SubType.Dax;
if (Stream.SliceWithLength(0x8000, 6).ReadAllContentsAsString() == '\x01' + "CD001") return SubType.Iso;
return SubType.Unknown;
}