mgba 0.5: fix saveram. fix skip bios + hard reset. fix bg/obj disable.

This commit is contained in:
nattthebear 2016-10-17 13:01:52 -04:00
parent 6b46170f68
commit 36fb1e3d57
4 changed files with 4 additions and 10 deletions

View File

@ -16,14 +16,11 @@ namespace BizHawk.Emulation.Cores.Nintendo.GBA
public static extern void BizDestroy(IntPtr ctx); public static extern void BizDestroy(IntPtr ctx);
[DllImport(dll, CallingConvention = cc)] [DllImport(dll, CallingConvention = cc)]
public static extern IntPtr BizCreate(byte[] bios, byte[] data, int length, [In]OverrideInfo dbinfo); public static extern IntPtr BizCreate(byte[] bios, byte[] data, int length, [In]OverrideInfo dbinfo, bool skipBios);
[DllImport(dll, CallingConvention = cc)] [DllImport(dll, CallingConvention = cc)]
public static extern void BizReset(IntPtr ctx); public static extern void BizReset(IntPtr ctx);
[DllImport(dll, CallingConvention = cc)]
public static extern void BizSkipBios(IntPtr ctx);
public enum SaveType : int public enum SaveType : int
{ {
Autodetect = -1, Autodetect = -1,

View File

@ -42,18 +42,15 @@ namespace BizHawk.Emulation.Cores.Nintendo.GBA
{ {
throw new InvalidOperationException("BIOS must be exactly 16384 bytes!"); throw new InvalidOperationException("BIOS must be exactly 16384 bytes!");
} }
_core = LibmGBA.BizCreate(bios, file, file.Length, GetOverrideInfo(game)); var skipBios = !DeterministicEmulation && _syncSettings.SkipBios;
_core = LibmGBA.BizCreate(bios, file, file.Length, GetOverrideInfo(game), skipBios);
if (_core == IntPtr.Zero) if (_core == IntPtr.Zero)
{ {
throw new InvalidOperationException("BizCreate() returned NULL! Bad BIOS? and/or ROM?"); throw new InvalidOperationException("BizCreate() returned NULL! Bad BIOS? and/or ROM?");
} }
try try
{ {
if (!DeterministicEmulation && _syncSettings.SkipBios)
{
LibmGBA.BizSkipBios(_core);
}
CreateMemoryDomains(file.Length); CreateMemoryDomains(file.Length);
var ser = new BasicServiceProvider(this); var ser = new BasicServiceProvider(this);
ser.Register<IDisassemblable>(new ArmV4Disassembler()); ser.Register<IDisassemblable>(new ArmV4Disassembler());

Binary file not shown.

Binary file not shown.