def METHOD_NAME(self):
    # Header
    s = self.fp.read(32)
    if s[:4] not in [b"DanM", b"LinS"]:
        raise SyntaxError("not an MSP file")
    # Header checksum
    checksum = 0
    for i in range(0, 32, 2):
        checksum = checksum ^ i16(s[i : i + 2])
    if checksum != 0:
        raise SyntaxError("bad MSP checksum")
    self.mode = "1"
    self._size = i16(s[4:]), i16(s[6:])
    if s[:4] == b"DanM":
        self.tile = [("raw", (0, 0) + self.size, 32, ("1", 0, 1))]
    else:
        self.tile = [("MSP", (0, 0) + self.size, 32, None)]