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);
        }