public override LoadMatchStrength LoadMatch(AssetLoader loader)
{
BinaryReader reader = loader.Reader;
if (loader.Length < 0x4000)
return LoadMatchStrength.None;
// Short game name
for (int i = 0; i < 12; i++)
if (!IsAsciiOrNul(reader.ReadByte()))
return LoadMatchStrength.None;
// Game Id and Maker Id
for (int i = 0; i < 6; i++)
if (!IsAscii(reader.ReadByte()))
return LoadMatchStrength.None;
reader.BaseStream.Seek(14, SeekOrigin.Current);
// Offset 0x20
if (reader.ReadInt32() != 0x4000) // Page size - always 0x4000?
return LoadMatchStrength.None;
reader.BaseStream.Seek(12, SeekOrigin.Current);
// Offset 0x30
if (reader.ReadInt32() > loader.Length || reader.ReadInt32() != 0x2380000 || reader.ReadInt32() != 0x2380000)
return LoadMatchStrength.None;
return LoadMatchStrength.Medium;
}