BizHawk/BizHawk.Emulation.Cores/Consoles/Nintendo/GBA/VBANext.ISaveRam.cs

31 lines
771 B
C#

using System;
using BizHawk.Emulation.Common;
namespace BizHawk.Emulation.Cores.Nintendo.GBA
{
public partial class VBANext : ISaveRam
{
public bool SaveRamModified => LibVBANext.SaveRamSize(Core) != 0;
public byte[] CloneSaveRam()
{
var data = new byte[LibVBANext.SaveRamSize(Core)];
if (!LibVBANext.SaveRamSave(Core, data, data.Length))
{
throw new InvalidOperationException($"{nameof(LibVBANext.SaveRamSave)}() failed!");
}
return data;
}
public void StoreSaveRam(byte[] data)
{
// internally, we try to salvage bad-sized saverams
if (!LibVBANext.SaveRamLoad(Core, data, data.Length))
{
throw new InvalidOperationException($"{nameof(LibVBANext.SaveRamLoad)}() failed!");
}
}
}
}