namespace VirtualNes.Core { public struct BLOCKHDR : IStateBufferObject { public readonly bool Valid => !string.IsNullOrEmpty(ID); /// 总是8个字节 public string ID; public ushort Reserved; public ushort BlockVersion; public uint BlockSize; public readonly uint GetSize() { return (uint)(8 + sizeof(ushort) + sizeof(ushort) + sizeof(uint)); } public readonly void SaveState(StateBuffer buffer) { if (Valid) { buffer.Write(ID); buffer.Write(Reserved); buffer.Write(BlockVersion); buffer.Write(BlockSize); } } public void LoadState(StateReader buffer) { ID = buffer.Read_string(8); Reserved = buffer.Read_ushort(); BlockVersion = buffer.Read_ushort(); BlockSize = buffer.Read_uint(); } } }