Example #1
0
        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);
        }