public void set_blocks() { //Block 1 //Recrypt byte[] encrypt1 = new byte[ML_BLOCK1.Size]; encrypt1 = SAV5.cryptoArray(block1.Data, 0xC, 0x364, 0x374 - 4); //Recalculate CRC ushort crc = SAV5.ccitt16(encrypt1.Skip(0xC).Take(0x368).ToArray()); BitConverter.GetBytes(crc).CopyTo(encrypt1, 0x8); //Set new data setData(encrypt1, 0); //Block 1 Mirror //Just put block 1 for now as mirror setData(encrypt1, 0x400); /* * //Recrypt * byte[] encrypt_mirror = new byte[ML_BLOCK1.Size]; * encrypt_mirror = SAV5.cryptoArray(block1_mirror.Data, 0xC, 0x364, 0x374-4); * //Recalculate CRC * ushort crc_mirror = SAV5.ccitt16(encrypt_mirror.Skip(0xC).Take(0x368).ToArray()); * BitConverter.GetBytes(crc_mirror).CopyTo(encrypt_mirror, 0x8); * //Set new data * setData(encrypt_mirror, 0x400); */ //Block 2 //Recalculate CRC ushort crc2 = SAV5.ccitt16(block2.Data.Skip(0xC).Take(0x214).ToArray()); block2.crc = crc2; //Set new data setData(block2.Data, 0x800); }