GBA memory domain fix

This commit is contained in:
nattthebear 2016-11-06 10:32:04 -05:00
parent 04c7837aec
commit 0ae8bf13f7
4 changed files with 4 additions and 8 deletions

View File

@ -79,7 +79,7 @@ namespace BizHawk.Emulation.Cores.Nintendo.GBA
[DllImport(dll, CallingConvention = cc)] [DllImport(dll, CallingConvention = cc)]
public static extern int BizGetSaveRam(IntPtr ctx, byte[] dest, int maxsize); public static extern int BizGetSaveRam(IntPtr ctx, byte[] dest, int maxsize);
[DllImport(dll, CallingConvention = cc)] [DllImport(dll, CallingConvention = cc)]
public static extern bool BizPutSaveRam(IntPtr ctx, byte[] src, int size); public static extern void BizPutSaveRam(IntPtr ctx, byte[] src, int size);
/// <summary> /// <summary>
/// start a savestate operation /// start a savestate operation

View File

@ -211,8 +211,8 @@ namespace BizHawk.Emulation.Cores.Nintendo.GBA
#region IMemoryDomains #region IMemoryDomains
unsafe byte PeekWRAM(IntPtr xwram, long addr) { return ((byte*)xwram.ToPointer())[addr];} unsafe byte PeekWRAM(IntPtr xwram, long addr) { return ((byte*)xwram)[addr];}
unsafe void PokeWRAM(IntPtr xwram, long addr, byte value) { ((byte*)xwram.ToPointer())[addr] = value; } unsafe void PokeWRAM(IntPtr xwram, long addr, byte value) { ((byte*)xwram)[addr] = value; }
void WireMemoryDomainPointers() void WireMemoryDomainPointers()
{ {
@ -234,7 +234,6 @@ namespace BizHawk.Emulation.Cores.Nintendo.GBA
_cwram.Peek = _cwram.Peek =
delegate(long addr) delegate(long addr)
{ {
LibmGBA.BizGetMemoryAreas(_core, s);
if (addr < 0 || addr >= (256 + 32) * 1024) if (addr < 0 || addr >= (256 + 32) * 1024)
throw new IndexOutOfRangeException(); throw new IndexOutOfRangeException();
if (addr >= 256 * 1024) if (addr >= 256 * 1024)
@ -349,10 +348,7 @@ namespace BizHawk.Emulation.Cores.Nintendo.GBA
{ {
data = LegacyFix(data); data = LegacyFix(data);
} }
if (!LibmGBA.BizPutSaveRam(_core, data, data.Length)) LibmGBA.BizPutSaveRam(_core, data, data.Length);
{
throw new InvalidOperationException("BizPutSaveRam returned NULL!");
}
} }
public bool SaveRamModified public bool SaveRamModified

Binary file not shown.

Binary file not shown.