public void LoadStateBinary(BinaryReader reader) { int length = reader.ReadInt32(); if (length != _mameSaveBuffer.Length) { throw new InvalidOperationException("Savestate buffer size mismatch!"); } reader.Read(_mameSaveBuffer, 0, _mameSaveBuffer.Length); LibMAME.SaveError err = LibMAME.mame_load_buffer(_mameSaveBuffer, _mameSaveBuffer.Length); if (err != LibMAME.SaveError.NONE) { throw new InvalidOperationException("MAME SAVESTATE ERROR: " + err.ToString()); } Frame = reader.ReadInt32(); LagCount = reader.ReadInt32(); IsLagFrame = reader.ReadBoolean(); }