public void SaveStateBinary(BinaryWriter writer) { writer.Write(_mameSaveBuffer.Length); LibMAME.SaveError err = LibMAME.mame_save_buffer(_mameSaveBuffer, out int length); if (length != _mameSaveBuffer.Length) { throw new InvalidOperationException("Savestate buffer size mismatch!"); } if (err != LibMAME.SaveError.NONE) { throw new InvalidOperationException("MAME LOADSTATE ERROR: " + err.ToString()); } writer.Write(_mameSaveBuffer); writer.Write(Frame); writer.Write(LagCount); writer.Write(IsLagFrame); }