public static FileEncoding VerifyRom(Stream rom, UInt64 TargetCrc) { UInt64 crc_File; using (BinaryReader br = new BinaryReader(rom)) { br.BaseStream.Position = 0x10; crc_File = br.ReadUInt64(); Endian.Convert(ref crc_File); } //crc_File now contains the crc from file with proper endianness //if big endian if (TargetCrc == crc_File) { return(FileEncoding.BigEndian32); } //if rom is Little Endian (32 bit) if (TargetCrc == CRC.ConvertToLittleEndian32(crc_File)) { return(FileEncoding.LittleEndian32); } //if rom is Little Endian 16 bit else if (TargetCrc == CRC.ConvertToLittleEndian16(crc_File)) { return(FileEncoding.LittleEndian16); } return(FileEncoding.Error); }