using System; using BizHawk.Emulation.Common; namespace BizHawk.Emulation.Cores.Nintendo.GBA { public partial class GBA : ISaveRam { public bool SaveRamModified { get { if (disposed) throw new ObjectDisposedException(this.GetType().ToString()); return LibMeteor.libmeteor_hassaveram(); } } public byte[] CloneSaveRam() { throw new Exception("This needs to be fixed to match the VBANext Core!"); #if false if (disposed) throw new ObjectDisposedException(this.GetType().ToString()); if (!LibMeteor.libmeteor_hassaveram()) return null; IntPtr data = IntPtr.Zero; uint size = 0; if (!LibMeteor.libmeteor_savesaveram(ref data, ref size)) throw new Exception("libmeteor_savesaveram() returned false!"); byte[] ret = new byte[size]; Marshal.Copy(data, ret, 0, (int)size); LibMeteor.libmeteor_savesaveram_destroy(data); return ret; #endif } public void StoreSaveRam(byte[] data) { throw new Exception("This needs to be fixed to match the VBANext Core!"); #if false if (disposed) throw new ObjectDisposedException(this.GetType().ToString()); if (!LibMeteor.libmeteor_loadsaveram(data, (uint)data.Length)) throw new Exception("libmeteor_loadsaveram() returned false!"); #endif } } }