Ejemplo n.º 1
0
Archivo: SAV3.cs Proyecto: Zovrah/PKHeX
        // Checksums
        protected override void SetChecksums()
        {
            for (int i = 0; i < BLOCK_COUNT; i++)
            {
                int    ofs = ABO + (i * SIZE_BLOCK);
                int    len = chunkLength[BlockOrder[i]];
                ushort chk = Checksums.CRC32(Data, ofs, len);
                BitConverter.GetBytes(chk).CopyTo(Data, ofs + 0xFF6);
            }

            if (BAK.Length < SaveUtil.SIZE_G3RAW) // don't update HoF for half-sizes
            {
                return;
            }

            // Hall of Fame Checksums
            {
                ushort chk = Checksums.CRC32(Data, 0x1C000, SIZE_BLOCK_USED);
                BitConverter.GetBytes(chk).CopyTo(Data, 0x1CFF4);
            }
            {
                ushort chk = Checksums.CRC32(Data, 0x1D000, SIZE_BLOCK_USED);
                BitConverter.GetBytes(chk).CopyTo(Data, 0x1DFF4);
            }
        }
Ejemplo n.º 2
0
        private bool IsChunkValid(int i)
        {
            int    ofs = ABO + (i * SIZE_BLOCK);
            int    len = chunkLength[BlockOrder[i]];
            ushort chk = Checksums.CRC32(Data, ofs, len);

            return(chk == BitConverter.ToUInt16(Data, ofs + 0xFF6));
        }
Ejemplo n.º 3
0
Archivo: SAV3.cs Proyecto: Zovrah/PKHeX
        private bool IsChunkValidHoF(int ofs)
        {
            ushort chk = Checksums.CRC32(Data, ofs, SIZE_BLOCK_USED);

            if (chk != BitConverter.ToUInt16(Data, ofs + 0xFF4))
            {
                return(false);
            }
            return(true);
        }