using System; using BizHawk.Emulation.Common; namespace BizHawk.Emulation.Cores.WonderSwan { partial class WonderSwan : ISaveRam { private byte[] _saveramBuff; private void InitISaveRam() { _saveramBuff = new byte[BizSwan.bizswan_saveramsize(Core)]; } public byte[] CloneSaveRam() { if (!BizSwan.bizswan_saveramsave(Core, _saveramBuff, _saveramBuff.Length)) { throw new InvalidOperationException($"{nameof(BizSwan.bizswan_saveramsave)}() returned false!"); } return (byte[])_saveramBuff.Clone(); } public void StoreSaveRam(byte[] data) { if (!BizSwan.bizswan_saveramload(Core, data, data.Length)) { throw new InvalidOperationException($"{nameof(BizSwan.bizswan_saveramload)}() returned false!"); } } public bool SaveRamModified => BizSwan.bizswan_saveramsize(Core) > 0; } }