82 lines
1.5 KiB
C#
82 lines
1.5 KiB
C#
using System;
|
|
using BizHawk.Emulation.Common;
|
|
|
|
namespace BizHawk.Emulation.Cores.Sega.GGHawkLink
|
|
{
|
|
public partial class GGHawkLink : ISaveRam
|
|
{
|
|
public byte[] CloneSaveRam()
|
|
{
|
|
if ((L.SaveRAM != null) || (R.SaveRAM != null))
|
|
{
|
|
int Len1 = 0;
|
|
int Len2 = 0;
|
|
int index = 0;
|
|
|
|
if (L.SaveRAM != null)
|
|
{
|
|
Len1 = L.SaveRAM.Length;
|
|
}
|
|
|
|
if (R.SaveRAM != null)
|
|
{
|
|
Len2 = R.SaveRAM.Length;
|
|
}
|
|
|
|
byte[] temp = new byte[Len1 + Len2];
|
|
|
|
if (L.SaveRAM != null)
|
|
{
|
|
for (int i = 0; i < L.SaveRAM.Length; i++)
|
|
{
|
|
temp[index] = L.SaveRAM[i];
|
|
index++;
|
|
}
|
|
}
|
|
|
|
if (R.SaveRAM != null)
|
|
{
|
|
for (int i = 0; i < L.SaveRAM.Length; i++)
|
|
{
|
|
temp[index] = R.SaveRAM[i];
|
|
index++;
|
|
}
|
|
}
|
|
|
|
return temp;
|
|
}
|
|
else
|
|
{
|
|
return null;
|
|
}
|
|
}
|
|
|
|
public void StoreSaveRam(byte[] data)
|
|
{
|
|
if ((L.SaveRAM != null) && (R.SaveRAM == null))
|
|
{
|
|
Buffer.BlockCopy(data, 0, L.SaveRAM, 0, L.SaveRAM.Length);
|
|
}
|
|
else if ((R.SaveRAM != null) && (L.SaveRAM == null))
|
|
{
|
|
Buffer.BlockCopy(data, 0, R.SaveRAM, 0, R.SaveRAM.Length);
|
|
}
|
|
else if ((R.SaveRAM != null) && (L.SaveRAM != null))
|
|
{
|
|
Buffer.BlockCopy(data, 0, L.SaveRAM, 0, L.SaveRAM.Length);
|
|
Buffer.BlockCopy(data, L.SaveRAM.Length, R.SaveRAM, 0, R.SaveRAM.Length);
|
|
}
|
|
|
|
Console.WriteLine("loading SRAM here");
|
|
}
|
|
|
|
public bool SaveRamModified
|
|
{
|
|
get
|
|
{
|
|
return linkSyncSettings.Use_SRAM;
|
|
}
|
|
}
|
|
}
|
|
}
|