void IResData.Save(BfshaFileSaver saver)
        {
            //     PreSave();
            Version = SaveVersion();
            saver.WriteSignature(_signature);
            saver.Write(0x20202020);
            saver.Write(Version);
            saver.Write(ByteOrder, true);
            saver.Write((byte)Alignment);
            saver.Write((byte)TargetAddressSize);
            saver.SaveFileNameString(Name);
            saver.Write((ushort)Flag);
            saver.SaveHeaderBlock(true);
            saver.SaveRelocationTablePointerPointer();
            saver.SaveFieldFileSize();
            saver.Write(new byte[64]);

            //GRSC
            saver.WriteSignature(_grscSignature);
            saver.SaveHeaderBlock();
            saver.Write(Unknown);
            saver.Write(Unknown2);
            saver.Write(Unknown3);
            saver.Write(Unknown4);
            saver.Write(ShaderVariations.Count);
            shaderVariationArrayOffset = saver.SaveOffset();
            saver.Write(0L);
            saver.Write(Unknown5);
            saver.Write(new byte[40]); //reserved
        }
        void IResData.Save(BfshaFileSaver saver)
        {
            //     PreSave();

            saver.WriteSignature(_signature);
            saver.Write(0x20202020);
            saver.Write(VersionMajor);
            saver.Write(VersionMinor);
            saver.Write(VersionMicro);
            saver.Write(ByteOrder, true);
            saver.Write((byte)Alignment);
            saver.Write((byte)TargetAddressSize);
            saver.Write(0);
            saver.Write((ushort)Flag);
            saver.Write((ushort)BlockOffset);
            //  saver.Save(RelocationTable, true);
            saver.SaveFieldFileSize();
            saver.SaveString(Name);
        }