コード例 #1
0
        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();
        }