Debugger: Fixed "Run One Frame" option in PAL mode (or when overclocking with additional scanlines)

This commit is contained in:
Sour 2018-06-06 19:24:33 -04:00
parent 9deb908faf
commit 7e08d32d45
3 changed files with 6 additions and 1 deletions

View file

@ -660,7 +660,10 @@ namespace Mesen.GUI.Debugger
private void mnuRunOneFrame_Click(object sender, EventArgs e)
{
ctrlConsoleStatus.ApplyChanges();
InteropEmu.DebugPpuStep(89341);
NesModel model = InteropEmu.GetNesModel();
int extraScanlines = (int)(ConfigManager.Config.EmulationInfo.PpuExtraScanlinesAfterNmi + ConfigManager.Config.EmulationInfo.PpuExtraScanlinesBeforeNmi);
int cycleCount = ((model == NesModel.NTSC ? 262 : 312) + extraScanlines) * 341;
InteropEmu.DebugPpuStep((UInt32)cycleCount);
}
private void ctrlDebuggerCode_OnShowInSplitView(ICodeViewer sender, AddressEventArgs args)

View file

@ -169,6 +169,7 @@ namespace Mesen.GUI
[DllImport(DLLPath)] public static extern void SetReverbParameters(double strength, double delay);
[DllImport(DLLPath)] public static extern void SetCrossFeedRatio(UInt32 ratio);
[DllImport(DLLPath)] public static extern NesModel GetNesModel();
[DllImport(DLLPath)] public static extern void SetNesModel(NesModel model);
[DllImport(DLLPath)] public static extern void SetEmulationSpeed(UInt32 emulationSpeed);
[DllImport(DLLPath)] public static extern void IncreaseEmulationSpeed();

View file

@ -451,6 +451,7 @@ namespace InteropEmu {
DllExport void __stdcall SetReverbParameters(double strength, double delay) { EmulationSettings::SetReverbParameters(strength, delay); }
DllExport void __stdcall SetCrossFeedRatio(uint32_t ratio) { EmulationSettings::SetCrossFeedRatio(ratio); }
DllExport NesModel __stdcall GetNesModel() { return Console::GetModel(); }
DllExport void __stdcall SetNesModel(uint32_t model) { EmulationSettings::SetNesModel((NesModel)model); }
DllExport void __stdcall SetOverscanDimensions(uint32_t left, uint32_t right, uint32_t top, uint32_t bottom) { EmulationSettings::SetOverscanDimensions(left, right, top, bottom); }
DllExport void __stdcall SetEmulationSpeed(uint32_t emulationSpeed) { EmulationSettings::SetEmulationSpeed(emulationSpeed, true); }