76 lines
3.2 KiB
C#
76 lines
3.2 KiB
C#
using System;
|
|
using System.Collections.Generic;
|
|
using System.ComponentModel;
|
|
using System.Data;
|
|
using System.Drawing;
|
|
using System.Linq;
|
|
using System.Text;
|
|
using System.Threading.Tasks;
|
|
using System.Windows.Forms;
|
|
using Mesen.GUI.Config;
|
|
using Mesen.GUI.GoogleDriveIntegration;
|
|
|
|
namespace Mesen.GUI.Forms.Config
|
|
{
|
|
public partial class frmEmulationConfig : BaseConfigForm
|
|
{
|
|
public frmEmulationConfig()
|
|
{
|
|
InitializeComponent();
|
|
|
|
tpgOverclocking.Enabled = !InteropEmu.MoviePlaying() && !InteropEmu.MovieRecording();
|
|
tpgAdvanced.Enabled = !InteropEmu.MoviePlaying() && !InteropEmu.MovieRecording();
|
|
|
|
ConfigManager.Config.EmulationInfo.EmulationSpeed = InteropEmu.GetEmulationSpeed();
|
|
Entity = ConfigManager.Config.EmulationInfo;
|
|
|
|
AddBinding("EmulationSpeed", nudEmulationSpeed);
|
|
AddBinding("TurboSpeed", nudTurboSpeed);
|
|
AddBinding("RewindSpeed", nudRewindSpeed);
|
|
AddBinding("RunAheadFrames", nudRunAheadFrames);
|
|
|
|
AddBinding("UseAlternativeMmc3Irq", chkUseAlternativeMmc3Irq);
|
|
AddBinding("AllowInvalidInput", chkAllowInvalidInput);
|
|
AddBinding("DisablePpu2004Reads", chkDisablePpu2004Reads);
|
|
AddBinding("DisablePaletteRead", chkDisablePaletteRead);
|
|
AddBinding("DisableOamAddrBug", chkDisableOamAddrBug);
|
|
AddBinding("DisablePpuReset", chkDisablePpuReset);
|
|
AddBinding("EnableOamDecay", chkEnableOamDecay);
|
|
AddBinding("UseNes101Hvc101Behavior", chkUseNes101Hvc101Behavior);
|
|
AddBinding("EnableMapperRandomPowerOnState", chkMapperRandomPowerOnState);
|
|
|
|
AddBinding("RandomizeCpuPpuAlignment", chkRandomizeCpuPpuAlignment);
|
|
AddBinding("EnablePpu2006ScrollGlitch", chkEnablePpu2006ScrollGlitch);
|
|
AddBinding("EnablePpu2000ScrollGlitch", chkEnablePpu2000ScrollGlitch);
|
|
AddBinding("EnablePpuOamRowCorruption", chkEnablePpuOamRowCorruption);
|
|
|
|
AddBinding("PpuExtraScanlinesBeforeNmi", nudExtraScanlinesBeforeNmi);
|
|
AddBinding("PpuExtraScanlinesAfterNmi", nudExtraScanlinesAfterNmi);
|
|
|
|
AddBinding("ShowLagCounter", chkShowLagCounter);
|
|
|
|
AddBinding("RamPowerOnState", cboRamPowerOnState);
|
|
}
|
|
|
|
protected override void OnFormClosed(FormClosedEventArgs e)
|
|
{
|
|
base.OnFormClosed(e);
|
|
EmulationInfo.ApplyConfig();
|
|
}
|
|
|
|
private void tmrUpdateClockRate_Tick(object sender, EventArgs e)
|
|
{
|
|
decimal clockRateMultiplierNtsc = (100 * (1 + (nudExtraScanlinesAfterNmi.Value + nudExtraScanlinesBeforeNmi.Value) / 262));
|
|
decimal clockRateMultiplierPal = (100 * (1 + (nudExtraScanlinesAfterNmi.Value + nudExtraScanlinesBeforeNmi.Value) / 312));
|
|
decimal clockRateMultiplierDendy = (100 * (1 + (nudExtraScanlinesAfterNmi.Value + nudExtraScanlinesBeforeNmi.Value) / 312));
|
|
lblEffectiveClockRateValue.Text = (1789773 * clockRateMultiplierNtsc / 100000000).ToString("#.####") + " mhz (" + ((int)clockRateMultiplierNtsc).ToString() + "%)";
|
|
lblEffectiveClockRateValuePal.Text = (1662607 * clockRateMultiplierPal / 100000000).ToString("#.####") + " mhz (" + ((int)clockRateMultiplierPal).ToString() + "%)";
|
|
lblEffectiveClockRateValueDendy.Text = (1773448 * clockRateMultiplierDendy / 100000000).ToString("#.####") + " mhz (" + ((int)clockRateMultiplierDendy).ToString() + "%)";
|
|
}
|
|
|
|
private void btnResetLagCounter_Click(object sender, EventArgs e)
|
|
{
|
|
InteropEmu.ResetLagCounter();
|
|
}
|
|
}
|
|
}
|