Make waterbox consistency check ui option only skip the memory check, not the core check (#1979)

This commit is contained in:
nattthebear 2020-05-06 07:46:40 -04:00 committed by GitHub
parent a0d825084a
commit 974792cdfe
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
11 changed files with 15 additions and 12 deletions

View File

@ -33,7 +33,7 @@ namespace BizHawk.Emulation.Cores.Consoles.Belogic
MmapHeapSizeKB = 4, MmapHeapSizeKB = 4,
PlainHeapSizeKB = 4, PlainHeapSizeKB = 4,
SkipCoreConsistencyCheck = comm.CorePreferences.HasFlag(CoreComm.CorePreferencesFlags.WaterboxCoreConsistencyCheck), SkipCoreConsistencyCheck = comm.CorePreferences.HasFlag(CoreComm.CorePreferencesFlags.WaterboxCoreConsistencyCheck),
SkipMemoryConsistencyCheck = comm.CorePreferences.HasFlag(CoreComm.CorePreferencesFlags.WaterboxCoreConsistencyCheck), SkipMemoryConsistencyCheck = comm.CorePreferences.HasFlag(CoreComm.CorePreferencesFlags.WaterboxMemoryConsistencyCheck),
}); });
_exe.AddReadonlyFile(rom, "romfile"); _exe.AddReadonlyFile(rom, "romfile");

View File

@ -71,7 +71,7 @@ namespace BizHawk.Emulation.Cores.Consoles.NEC.PCFX
PlainHeapSizeKB = 4 * 1024, PlainHeapSizeKB = 4 * 1024,
MmapHeapSizeKB = 6 * 1024, MmapHeapSizeKB = 6 * 1024,
SkipCoreConsistencyCheck = comm.CorePreferences.HasFlag(CoreComm.CorePreferencesFlags.WaterboxCoreConsistencyCheck), SkipCoreConsistencyCheck = comm.CorePreferences.HasFlag(CoreComm.CorePreferencesFlags.WaterboxCoreConsistencyCheck),
SkipMemoryConsistencyCheck = comm.CorePreferences.HasFlag(CoreComm.CorePreferencesFlags.WaterboxCoreConsistencyCheck), SkipMemoryConsistencyCheck = comm.CorePreferences.HasFlag(CoreComm.CorePreferencesFlags.WaterboxMemoryConsistencyCheck),
}); });
SetCdCallbacks(); SetCdCallbacks();

View File

@ -67,7 +67,7 @@ namespace BizHawk.Emulation.Cores.Consoles.Nintendo.Gameboy
PlainHeapSizeKB = 4, PlainHeapSizeKB = 4,
MmapHeapSizeKB = 1024, MmapHeapSizeKB = 1024,
SkipCoreConsistencyCheck = comm.CorePreferences.HasFlag(CoreComm.CorePreferencesFlags.WaterboxCoreConsistencyCheck), SkipCoreConsistencyCheck = comm.CorePreferences.HasFlag(CoreComm.CorePreferencesFlags.WaterboxCoreConsistencyCheck),
SkipMemoryConsistencyCheck = comm.CorePreferences.HasFlag(CoreComm.CorePreferencesFlags.WaterboxCoreConsistencyCheck), SkipMemoryConsistencyCheck = comm.CorePreferences.HasFlag(CoreComm.CorePreferencesFlags.WaterboxMemoryConsistencyCheck),
}); });
_cgb = (rom[0x143] & 0xc0) == 0xc0 && !sgb; _cgb = (rom[0x143] & 0xc0) == 0xc0 && !sgb;

View File

@ -71,7 +71,7 @@ namespace BizHawk.Emulation.Cores.Nintendo.SNES
PlainHeapSizeKB = 2 * 1024, // TODO: wasn't there more in here? PlainHeapSizeKB = 2 * 1024, // TODO: wasn't there more in here?
SealedHeapSizeKB = 128 * 1024, SealedHeapSizeKB = 128 * 1024,
SkipCoreConsistencyCheck = comm.CorePreferences.HasFlag(CoreComm.CorePreferencesFlags.WaterboxCoreConsistencyCheck), SkipCoreConsistencyCheck = comm.CorePreferences.HasFlag(CoreComm.CorePreferencesFlags.WaterboxCoreConsistencyCheck),
SkipMemoryConsistencyCheck = comm.CorePreferences.HasFlag(CoreComm.CorePreferencesFlags.WaterboxCoreConsistencyCheck), SkipMemoryConsistencyCheck = comm.CorePreferences.HasFlag(CoreComm.CorePreferencesFlags.WaterboxMemoryConsistencyCheck),
}); });
using (_exe.EnterExit()) using (_exe.EnterExit())
{ {

View File

@ -40,7 +40,7 @@ namespace BizHawk.Emulation.Cores.Nintendo.SNES9X
InvisibleHeapSizeKB = 6 * 1024, InvisibleHeapSizeKB = 6 * 1024,
PlainHeapSizeKB = 64, PlainHeapSizeKB = 64,
SkipCoreConsistencyCheck = comm.CorePreferences.HasFlag(CoreComm.CorePreferencesFlags.WaterboxCoreConsistencyCheck), SkipCoreConsistencyCheck = comm.CorePreferences.HasFlag(CoreComm.CorePreferencesFlags.WaterboxCoreConsistencyCheck),
SkipMemoryConsistencyCheck = comm.CorePreferences.HasFlag(CoreComm.CorePreferencesFlags.WaterboxCoreConsistencyCheck), SkipMemoryConsistencyCheck = comm.CorePreferences.HasFlag(CoreComm.CorePreferencesFlags.WaterboxMemoryConsistencyCheck),
}); });
if (!_core.biz_init()) if (!_core.biz_init())

View File

@ -41,7 +41,7 @@ namespace BizHawk.Emulation.Cores.Consoles.Nintendo.VB
InvisibleHeapSizeKB = 256, InvisibleHeapSizeKB = 256,
PlainHeapSizeKB = 256, PlainHeapSizeKB = 256,
SkipCoreConsistencyCheck = comm.CorePreferences.HasFlag(CoreComm.CorePreferencesFlags.WaterboxCoreConsistencyCheck), SkipCoreConsistencyCheck = comm.CorePreferences.HasFlag(CoreComm.CorePreferencesFlags.WaterboxCoreConsistencyCheck),
SkipMemoryConsistencyCheck = comm.CorePreferences.HasFlag(CoreComm.CorePreferencesFlags.WaterboxCoreConsistencyCheck), SkipMemoryConsistencyCheck = comm.CorePreferences.HasFlag(CoreComm.CorePreferencesFlags.WaterboxMemoryConsistencyCheck),
}); });
if (!_boyee.Load(rom, rom.Length, LibVirtualBoyee.NativeSyncSettings.FromFrontendSettings(_syncSettings))) if (!_boyee.Load(rom, rom.Length, LibVirtualBoyee.NativeSyncSettings.FromFrontendSettings(_syncSettings)))

View File

@ -50,7 +50,7 @@ namespace BizHawk.Emulation.Cores.Consoles.SNK
PlainHeapSizeKB = 5 * 1024, // must be a bit larger than the ROM size PlainHeapSizeKB = 5 * 1024, // must be a bit larger than the ROM size
StartAddress = startAddress, StartAddress = startAddress,
SkipCoreConsistencyCheck = comm.CorePreferences.HasFlag(CoreComm.CorePreferencesFlags.WaterboxCoreConsistencyCheck), SkipCoreConsistencyCheck = comm.CorePreferences.HasFlag(CoreComm.CorePreferencesFlags.WaterboxCoreConsistencyCheck),
SkipMemoryConsistencyCheck = comm.CorePreferences.HasFlag(CoreComm.CorePreferencesFlags.WaterboxCoreConsistencyCheck), SkipMemoryConsistencyCheck = comm.CorePreferences.HasFlag(CoreComm.CorePreferencesFlags.WaterboxMemoryConsistencyCheck),
}); });
if (!_neopop.LoadSystem(rom, rom.Length, _syncSettings.Language)) if (!_neopop.LoadSystem(rom, rom.Length, _syncSettings.Language))

View File

@ -58,7 +58,7 @@ namespace BizHawk.Emulation.Cores.Consoles.Sega.PicoDrive
MmapHeapSizeKB = 4096, MmapHeapSizeKB = 4096,
PlainHeapSizeKB = 64, PlainHeapSizeKB = 64,
SkipCoreConsistencyCheck = comm.CorePreferences.HasFlag(CoreComm.CorePreferencesFlags.WaterboxCoreConsistencyCheck), SkipCoreConsistencyCheck = comm.CorePreferences.HasFlag(CoreComm.CorePreferencesFlags.WaterboxCoreConsistencyCheck),
SkipMemoryConsistencyCheck = comm.CorePreferences.HasFlag(CoreComm.CorePreferencesFlags.WaterboxCoreConsistencyCheck), SkipMemoryConsistencyCheck = comm.CorePreferences.HasFlag(CoreComm.CorePreferencesFlags.WaterboxMemoryConsistencyCheck),
}); });
if (has32xBios) if (has32xBios)

View File

@ -95,7 +95,7 @@ namespace BizHawk.Emulation.Cores.Consoles.Sega.Saturn
PlainHeapSizeKB = 24 * 1024, // up to 16MB of cart ram PlainHeapSizeKB = 24 * 1024, // up to 16MB of cart ram
StartAddress = LibSaturnus.StartAddress, StartAddress = LibSaturnus.StartAddress,
SkipCoreConsistencyCheck = comm.CorePreferences.HasFlag(CoreComm.CorePreferencesFlags.WaterboxCoreConsistencyCheck), SkipCoreConsistencyCheck = comm.CorePreferences.HasFlag(CoreComm.CorePreferencesFlags.WaterboxCoreConsistencyCheck),
SkipMemoryConsistencyCheck = comm.CorePreferences.HasFlag(CoreComm.CorePreferencesFlags.WaterboxCoreConsistencyCheck), SkipMemoryConsistencyCheck = comm.CorePreferences.HasFlag(CoreComm.CorePreferencesFlags.WaterboxMemoryConsistencyCheck),
}); });
SetFirmwareCallbacks(); SetFirmwareCallbacks();

View File

@ -53,7 +53,7 @@ namespace BizHawk.Emulation.Cores.Consoles.Sega.gpgx
PlainHeapSizeKB = 64, PlainHeapSizeKB = 64,
MmapHeapSizeKB = 1 * 1024, MmapHeapSizeKB = 1 * 1024,
SkipCoreConsistencyCheck = comm.CorePreferences.HasFlag(CoreComm.CorePreferencesFlags.WaterboxCoreConsistencyCheck), SkipCoreConsistencyCheck = comm.CorePreferences.HasFlag(CoreComm.CorePreferencesFlags.WaterboxCoreConsistencyCheck),
SkipMemoryConsistencyCheck = comm.CorePreferences.HasFlag(CoreComm.CorePreferencesFlags.WaterboxCoreConsistencyCheck), SkipMemoryConsistencyCheck = comm.CorePreferences.HasFlag(CoreComm.CorePreferencesFlags.WaterboxMemoryConsistencyCheck),
}); });
using (_elf.EnterExit()) using (_elf.EnterExit())

View File

@ -58,12 +58,15 @@ namespace BizHawk.Emulation.Cores.Waterbox
public ulong StartAddress { get; set; } = PeRunner.CanonicalStart; public ulong StartAddress { get; set; } = PeRunner.CanonicalStart;
/// <summary> /// <summary>
/// Skips the "core consistency check" /// Skips the check that the wbx file and other associated dlls match from state save to state load.
/// DO NOT SET THIS TO TRUE. A different executable most likely means different meanings for memory locations,
/// and nothing will make sense.
/// </summary> /// </summary>
public bool SkipCoreConsistencyCheck { get; set; } = false; public bool SkipCoreConsistencyCheck { get; set; } = false;
/// <summary> /// <summary>
/// Skips the "memory consistency check" /// Skips the check that the initial memory state (after init, but before any running) matches from state save to state load.
/// DO NOT SET THIS TO TRUE. The initial memory state must be the same for the XORed memory contents in the savestate to make sense.
/// </summary> /// </summary>
public bool SkipMemoryConsistencyCheck { get; set; } = false; public bool SkipMemoryConsistencyCheck { get; set; } = false;
} }