Video: Added basic blending option for high resolution modes to allow some transparency effects to display properly

This commit is contained in:
Sour 2019-10-07 20:53:01 -04:00
parent 64bf17b370
commit 5fc7118811
12 changed files with 226 additions and 183 deletions

View file

@ -60,6 +60,11 @@ bool BaseVideoFilter::IsOddFrame()
return _isOddFrame;
}
uint32_t BaseVideoFilter::GetBufferSize()
{
return _bufferSize * sizeof(uint32_t);
}
void BaseVideoFilter::SendFrame(uint16_t *ppuOutputBuffer, uint32_t frameNumber)
{
_frameLock.Acquire();

View file

@ -23,6 +23,7 @@ protected:
virtual void ApplyFilter(uint16_t *ppuOutputBuffer) = 0;
virtual void OnBeforeApplyFilter();
bool IsOddFrame();
uint32_t GetBufferSize();
uint32_t ApplyScanlineEffect(uint32_t argb, uint8_t scanlineIntensity);
public:

View file

@ -67,6 +67,7 @@ void DefaultVideoFilter::OnBeforeApplyFilter()
if(_videoConfig.Hue != config.Hue || _videoConfig.Saturation != config.Saturation || _videoConfig.Contrast != config.Contrast || _videoConfig.Brightness != config.Brightness) {
InitLookupTable();
}
_videoConfig = config;
}
uint8_t DefaultVideoFilter::To8Bit(uint8_t color)
@ -116,6 +117,24 @@ void DefaultVideoFilter::ApplyFilter(uint16_t *ppuOutputBuffer)
}
}
}
if(_baseFrameInfo.Width == 512 && _videoConfig.BlendHighResolutionModes) {
//Very basic blend effect for high resolution modes
for(uint32_t i = 0; i < frameInfo.Height; i+=2) {
for(uint32_t j = 0; j < frameInfo.Width; j+=2) {
uint32_t &pixel1 = out[i*frameInfo.Width + j];
uint32_t &pixel2 = out[i*frameInfo.Width + j + 1];
uint32_t &pixel3 = out[(i+1)*frameInfo.Width + j];
uint32_t &pixel4 = out[(i+1)*frameInfo.Width + j + 1];
pixel1 = pixel2 = pixel3 = pixel4 = BlendPixels(BlendPixels(BlendPixels(pixel1, pixel2), pixel3), pixel4);
}
}
}
}
uint32_t DefaultVideoFilter::BlendPixels(uint32_t a, uint32_t b)
{
return ((((a) ^ (b)) & 0xfffefefeL) >> 1) + ((a) & (b));
}
void DefaultVideoFilter::RgbToYiq(double r, double g, double b, double &y, double &i, double &q)

View file

@ -17,6 +17,7 @@ private:
void RgbToYiq(double r, double g, double b, double &y, double &i, double &q);
void YiqToRgb(double y, double i, double q, double &r, double &g, double &b);
__forceinline static uint8_t To8Bit(uint8_t color);
__forceinline static uint32_t BlendPixels(uint32_t a, uint32_t b);
protected:
void OnBeforeApplyFilter();

View file

@ -72,6 +72,7 @@ struct VideoConfig
VideoFilterType VideoFilter = VideoFilterType::None;
VideoAspectRatio AspectRatio = VideoAspectRatio::NoStretching;
bool UseBilinearInterpolation = false;
bool BlendHighResolutionModes = false;
bool VerticalSync = false;
bool IntegerFpsMode = false;

View file

@ -16,6 +16,7 @@ namespace Mesen.GUI.Config
public VideoAspectRatio AspectRatio = VideoAspectRatio.NoStretching;
[MarshalAs(UnmanagedType.I1)] public bool UseBilinearInterpolation = false;
[MarshalAs(UnmanagedType.I1)] public bool BlendHighResolutionModes = false;
[MarshalAs(UnmanagedType.I1)] public bool VerticalSync = false;
[MarshalAs(UnmanagedType.I1)] public bool IntegerFpsMode = false;

View file

@ -41,6 +41,7 @@
<Control ID="mnuNoneFilter">None</Control>
<Control ID="mnuNtscFilter">NTSC 2x (blargg)</Control>
<Control ID="mnuBilinearInterpolation">Use Bilinear Interpolation</Control>
<Control ID="mnuBlendHighResolutionModes">Blend High Resolution Modes</Control>
<Control ID="mnuAudioConfig">Audio</Control>
<Control ID="mnuInput">Input</Control>
<Control ID="mnuRegion">Region</Control>
@ -209,6 +210,7 @@
<Control ID="lblDisplayRatio">Aspect Ratio:</Control>
<Control ID="lblCustomRatio">Custom Ratio: </Control>
<Control ID="chkBilinearInterpolation">Use bilinear interpolation when scaling</Control>
<Control ID="chkBlendHighResolutionModes">Blend high resolution modes</Control>
<Control ID="chkFullscreenForceIntegerScale">Use integer scale values when entering fullscreen mode</Control>
<Control ID="chkShowFps">Show FPS</Control>
<Control ID="chkUseHdPacks">Use HDNes HD packs</Control>

View file

@ -168,46 +168,46 @@ namespace Mesen.GUI.Emulation
ConfigManager.ApplyChanges();
}
public void ToggleBilinearInterpolation()
private void InvertConfigFlag(ref bool flag)
{
ConfigManager.Config.Video.UseBilinearInterpolation = !ConfigManager.Config.Video.UseBilinearInterpolation;
ConfigManager.Config.Video.ApplyConfig();
flag = !flag;
ConfigManager.Config.ApplyConfig();
ConfigManager.ApplyChanges();
}
public void ToggleBilinearInterpolation()
{
InvertConfigFlag(ref ConfigManager.Config.Video.UseBilinearInterpolation);
}
public void ToggleBlendHighResolutionModes()
{
InvertConfigFlag(ref ConfigManager.Config.Video.BlendHighResolutionModes);
}
private void ToggleBgLayer0()
{
ConfigManager.Config.Video.HideBgLayer0 = !ConfigManager.Config.Video.HideBgLayer0;
ConfigManager.Config.Video.ApplyConfig();
ConfigManager.ApplyChanges();
InvertConfigFlag(ref ConfigManager.Config.Video.HideBgLayer0);
}
private void ToggleBgLayer1()
{
ConfigManager.Config.Video.HideBgLayer1 = !ConfigManager.Config.Video.HideBgLayer1;
ConfigManager.Config.Video.ApplyConfig();
ConfigManager.ApplyChanges();
InvertConfigFlag(ref ConfigManager.Config.Video.HideBgLayer1);
}
private void ToggleBgLayer2()
{
ConfigManager.Config.Video.HideBgLayer2 = !ConfigManager.Config.Video.HideBgLayer2;
ConfigManager.Config.Video.ApplyConfig();
ConfigManager.ApplyChanges();
InvertConfigFlag(ref ConfigManager.Config.Video.HideBgLayer2);
}
private void ToggleBgLayer3()
{
ConfigManager.Config.Video.HideBgLayer3 = !ConfigManager.Config.Video.HideBgLayer3;
ConfigManager.Config.Video.ApplyConfig();
ConfigManager.ApplyChanges();
InvertConfigFlag(ref ConfigManager.Config.Video.HideBgLayer3);
}
private void ToggleSprites()
{
ConfigManager.Config.Video.HideSprites = !ConfigManager.Config.Video.HideSprites;
ConfigManager.Config.Video.ApplyConfig();
ConfigManager.ApplyChanges();
InvertConfigFlag(ref ConfigManager.Config.Video.HideSprites);
}
private void SetEmulationSpeed(uint emulationSpeed)
@ -264,51 +264,37 @@ namespace Mesen.GUI.Emulation
private void ToggleOsd()
{
ConfigManager.Config.Preferences.DisableOsd = !ConfigManager.Config.Preferences.DisableOsd;
ConfigManager.Config.Preferences.ApplyConfig();
ConfigManager.ApplyChanges();
InvertConfigFlag(ref ConfigManager.Config.Preferences.DisableOsd);
}
private void ToggleFps()
{
ConfigManager.Config.Preferences.ShowFps = !ConfigManager.Config.Preferences.ShowFps;
ConfigManager.Config.Preferences.ApplyConfig();
ConfigManager.ApplyChanges();
InvertConfigFlag(ref ConfigManager.Config.Preferences.ShowFps);
}
private void ToggleAudio()
{
ConfigManager.Config.Audio.EnableAudio = !ConfigManager.Config.Audio.EnableAudio;
ConfigManager.Config.Audio.ApplyConfig();
ConfigManager.ApplyChanges();
InvertConfigFlag(ref ConfigManager.Config.Audio.EnableAudio);
}
private void ToggleFrameCounter()
{
ConfigManager.Config.Preferences.ShowFrameCounter = !ConfigManager.Config.Preferences.ShowFrameCounter;
ConfigManager.Config.Preferences.ApplyConfig();
ConfigManager.ApplyChanges();
InvertConfigFlag(ref ConfigManager.Config.Preferences.ShowFrameCounter);
}
private void ToggleGameTimer()
{
ConfigManager.Config.Preferences.ShowGameTimer = !ConfigManager.Config.Preferences.ShowGameTimer;
ConfigManager.Config.Preferences.ApplyConfig();
ConfigManager.ApplyChanges();
InvertConfigFlag(ref ConfigManager.Config.Preferences.ShowGameTimer);
}
private void ToggleAlwaysOnTop()
{
ConfigManager.Config.Preferences.AlwaysOnTop = !ConfigManager.Config.Preferences.AlwaysOnTop;
ConfigManager.Config.Preferences.ApplyConfig();
ConfigManager.ApplyChanges();
InvertConfigFlag(ref ConfigManager.Config.Preferences.AlwaysOnTop);
}
private void ToggleDebugInfo()
{
ConfigManager.Config.Preferences.ShowDebugInfo = !ConfigManager.Config.Preferences.ShowDebugInfo;
ConfigManager.Config.Preferences.ApplyConfig();
ConfigManager.ApplyChanges();
InvertConfigFlag(ref ConfigManager.Config.Preferences.ShowDebugInfo);
}
private void TogglePause()

View file

@ -88,6 +88,7 @@
this.lblLeft = new System.Windows.Forms.Label();
this.tpgAdvanced = new System.Windows.Forms.TabPage();
this.tableLayoutPanel2 = new System.Windows.Forms.TableLayoutPanel();
this.chkDisableFrameSkipping = new Mesen.GUI.Controls.ctrlRiskyOption();
this.chkHideBgLayer0 = new Mesen.GUI.Controls.ctrlRiskyOption();
this.chkHideBgLayer1 = new Mesen.GUI.Controls.ctrlRiskyOption();
this.chkHideBgLayer2 = new Mesen.GUI.Controls.ctrlRiskyOption();
@ -98,7 +99,7 @@
this.mnuPresetSVideo = new System.Windows.Forms.ToolStripMenuItem();
this.mnuPresetRgb = new System.Windows.Forms.ToolStripMenuItem();
this.mnuPresetMonochrome = new System.Windows.Forms.ToolStripMenuItem();
this.chkDisableFrameSkipping = new Mesen.GUI.Controls.ctrlRiskyOption();
this.chkBlendHighResolutionModes = new System.Windows.Forms.CheckBox();
this.tabMain.SuspendLayout();
this.tpgGeneral.SuspendLayout();
this.tlpMain.SuspendLayout();
@ -127,7 +128,7 @@
//
// baseConfigPanel
//
this.baseConfigPanel.Location = new System.Drawing.Point(0, 408);
this.baseConfigPanel.Location = new System.Drawing.Point(0, 427);
this.baseConfigPanel.Size = new System.Drawing.Size(574, 29);
this.baseConfigPanel.TabIndex = 4;
//
@ -141,7 +142,7 @@
this.tabMain.Location = new System.Drawing.Point(0, 0);
this.tabMain.Name = "tabMain";
this.tabMain.SelectedIndex = 0;
this.tabMain.Size = new System.Drawing.Size(574, 408);
this.tabMain.Size = new System.Drawing.Size(574, 427);
this.tabMain.TabIndex = 2;
//
// tpgGeneral
@ -150,7 +151,7 @@
this.tpgGeneral.Location = new System.Drawing.Point(4, 22);
this.tpgGeneral.Name = "tpgGeneral";
this.tpgGeneral.Padding = new System.Windows.Forms.Padding(3);
this.tpgGeneral.Size = new System.Drawing.Size(566, 382);
this.tpgGeneral.Size = new System.Drawing.Size(566, 401);
this.tpgGeneral.TabIndex = 5;
this.tpgGeneral.Text = "General";
this.tpgGeneral.UseVisualStyleBackColor = true;
@ -183,7 +184,7 @@
this.tlpMain.RowStyles.Add(new System.Windows.Forms.RowStyle());
this.tlpMain.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 100F));
this.tlpMain.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 20F));
this.tlpMain.Size = new System.Drawing.Size(560, 376);
this.tlpMain.Size = new System.Drawing.Size(560, 395);
this.tlpMain.TabIndex = 1;
//
// chkUseExclusiveFullscreen
@ -402,7 +403,7 @@
this.tpgPicture.Location = new System.Drawing.Point(4, 22);
this.tpgPicture.Name = "tpgPicture";
this.tpgPicture.Padding = new System.Windows.Forms.Padding(3);
this.tpgPicture.Size = new System.Drawing.Size(566, 382);
this.tpgPicture.Size = new System.Drawing.Size(566, 401);
this.tpgPicture.TabIndex = 4;
this.tpgPicture.Text = "Picture";
this.tpgPicture.UseVisualStyleBackColor = true;
@ -426,7 +427,7 @@
this.tableLayoutPanel5.RowStyles.Add(new System.Windows.Forms.RowStyle());
this.tableLayoutPanel5.RowStyles.Add(new System.Windows.Forms.RowStyle());
this.tableLayoutPanel5.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 100F));
this.tableLayoutPanel5.Size = new System.Drawing.Size(560, 376);
this.tableLayoutPanel5.Size = new System.Drawing.Size(560, 395);
this.tableLayoutPanel5.TabIndex = 5;
//
// tableLayoutPanel7
@ -437,12 +438,12 @@
this.tableLayoutPanel7.Controls.Add(this.btnSelectPreset, 1, 0);
this.tableLayoutPanel7.Controls.Add(this.btnResetPictureSettings, 0, 0);
this.tableLayoutPanel7.Dock = System.Windows.Forms.DockStyle.Fill;
this.tableLayoutPanel7.Location = new System.Drawing.Point(0, 341);
this.tableLayoutPanel7.Location = new System.Drawing.Point(0, 365);
this.tableLayoutPanel7.Margin = new System.Windows.Forms.Padding(0);
this.tableLayoutPanel7.Name = "tableLayoutPanel7";
this.tableLayoutPanel7.RowCount = 1;
this.tableLayoutPanel7.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 50F));
this.tableLayoutPanel7.Size = new System.Drawing.Size(280, 35);
this.tableLayoutPanel7.Size = new System.Drawing.Size(280, 30);
this.tableLayoutPanel7.TabIndex = 3;
//
// btnSelectPreset
@ -451,7 +452,7 @@
this.btnSelectPreset.AutoSize = true;
this.btnSelectPreset.Image = global::Mesen.GUI.Properties.Resources.DownArrow;
this.btnSelectPreset.ImageAlign = System.Drawing.ContentAlignment.MiddleRight;
this.btnSelectPreset.Location = new System.Drawing.Point(178, 9);
this.btnSelectPreset.Location = new System.Drawing.Point(178, 4);
this.btnSelectPreset.Name = "btnSelectPreset";
this.btnSelectPreset.Padding = new System.Windows.Forms.Padding(0, 0, 3, 0);
this.btnSelectPreset.Size = new System.Drawing.Size(99, 23);
@ -465,7 +466,7 @@
//
this.btnResetPictureSettings.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)));
this.btnResetPictureSettings.AutoSize = true;
this.btnResetPictureSettings.Location = new System.Drawing.Point(3, 9);
this.btnResetPictureSettings.Location = new System.Drawing.Point(3, 4);
this.btnResetPictureSettings.Name = "btnResetPictureSettings";
this.btnResetPictureSettings.Size = new System.Drawing.Size(45, 23);
this.btnResetPictureSettings.TabIndex = 3;
@ -481,7 +482,7 @@
this.grpNtscFilter.Margin = new System.Windows.Forms.Padding(2, 0, 0, 0);
this.grpNtscFilter.Name = "grpNtscFilter";
this.tableLayoutPanel5.SetRowSpan(this.grpNtscFilter, 3);
this.grpNtscFilter.Size = new System.Drawing.Size(278, 349);
this.grpNtscFilter.Size = new System.Drawing.Size(278, 368);
this.grpNtscFilter.TabIndex = 4;
this.grpNtscFilter.TabStop = false;
this.grpNtscFilter.Text = "NTSC Filter";
@ -510,7 +511,7 @@
this.tlpNtscFilter.RowStyles.Add(new System.Windows.Forms.RowStyle());
this.tlpNtscFilter.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 100F));
this.tlpNtscFilter.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 20F));
this.tlpNtscFilter.Size = new System.Drawing.Size(272, 330);
this.tlpNtscFilter.Size = new System.Drawing.Size(272, 349);
this.tlpNtscFilter.TabIndex = 5;
//
// chkMergeFields
@ -616,12 +617,11 @@
// grpCommon
//
this.grpCommon.Controls.Add(this.tableLayoutPanel4);
this.grpCommon.Dock = System.Windows.Forms.DockStyle.Fill;
this.grpCommon.Location = new System.Drawing.Point(0, 27);
this.grpCommon.Margin = new System.Windows.Forms.Padding(0, 0, 2, 0);
this.grpCommon.Name = "grpCommon";
this.grpCommon.Padding = new System.Windows.Forms.Padding(3, 2, 3, 2);
this.grpCommon.Size = new System.Drawing.Size(278, 242);
this.grpCommon.Size = new System.Drawing.Size(278, 266);
this.grpCommon.TabIndex = 3;
this.grpCommon.TabStop = false;
this.grpCommon.Text = "Common Settings";
@ -630,7 +630,7 @@
//
this.tableLayoutPanel4.ColumnCount = 1;
this.tableLayoutPanel4.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 100F));
this.tableLayoutPanel4.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Absolute, 20F));
this.tableLayoutPanel4.Controls.Add(this.chkBlendHighResolutionModes, 0, 5);
this.tableLayoutPanel4.Controls.Add(this.chkBilinearInterpolation, 0, 4);
this.tableLayoutPanel4.Controls.Add(this.trkBrightness, 0, 0);
this.tableLayoutPanel4.Controls.Add(this.trkContrast, 0, 1);
@ -640,13 +640,15 @@
this.tableLayoutPanel4.Location = new System.Drawing.Point(3, 15);
this.tableLayoutPanel4.Margin = new System.Windows.Forms.Padding(0);
this.tableLayoutPanel4.Name = "tableLayoutPanel4";
this.tableLayoutPanel4.RowCount = 5;
this.tableLayoutPanel4.RowCount = 7;
this.tableLayoutPanel4.RowStyles.Add(new System.Windows.Forms.RowStyle());
this.tableLayoutPanel4.RowStyles.Add(new System.Windows.Forms.RowStyle());
this.tableLayoutPanel4.RowStyles.Add(new System.Windows.Forms.RowStyle());
this.tableLayoutPanel4.RowStyles.Add(new System.Windows.Forms.RowStyle());
this.tableLayoutPanel4.RowStyles.Add(new System.Windows.Forms.RowStyle());
this.tableLayoutPanel4.RowStyles.Add(new System.Windows.Forms.RowStyle());
this.tableLayoutPanel4.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 100F));
this.tableLayoutPanel4.Size = new System.Drawing.Size(272, 225);
this.tableLayoutPanel4.Size = new System.Drawing.Size(272, 249);
this.tableLayoutPanel4.TabIndex = 4;
//
// chkBilinearInterpolation
@ -724,7 +726,7 @@
//
this.grpScanlines.Controls.Add(this.trkScanlines);
this.grpScanlines.Dock = System.Windows.Forms.DockStyle.Fill;
this.grpScanlines.Location = new System.Drawing.Point(0, 269);
this.grpScanlines.Location = new System.Drawing.Point(0, 293);
this.grpScanlines.Margin = new System.Windows.Forms.Padding(0, 0, 2, 0);
this.grpScanlines.Name = "grpScanlines";
this.grpScanlines.Size = new System.Drawing.Size(278, 72);
@ -794,7 +796,7 @@
this.tpgOverscan.Location = new System.Drawing.Point(4, 22);
this.tpgOverscan.Name = "tpgOverscan";
this.tpgOverscan.Padding = new System.Windows.Forms.Padding(3);
this.tpgOverscan.Size = new System.Drawing.Size(566, 382);
this.tpgOverscan.Size = new System.Drawing.Size(566, 397);
this.tpgOverscan.TabIndex = 6;
this.tpgOverscan.Text = "Overscan";
this.tpgOverscan.UseVisualStyleBackColor = true;
@ -818,14 +820,14 @@
this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 246F));
this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 50F));
this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 20F));
this.tableLayoutPanel1.Size = new System.Drawing.Size(560, 376);
this.tableLayoutPanel1.Size = new System.Drawing.Size(560, 391);
this.tableLayoutPanel1.TabIndex = 1;
//
// picOverscan
//
this.picOverscan.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle;
this.picOverscan.Dock = System.Windows.Forms.DockStyle.Fill;
this.picOverscan.Location = new System.Drawing.Point(152, 68);
this.picOverscan.Location = new System.Drawing.Point(152, 75);
this.picOverscan.Name = "picOverscan";
this.picOverscan.Size = new System.Drawing.Size(256, 240);
this.picOverscan.TabIndex = 1;
@ -844,7 +846,7 @@
this.tableLayoutPanel11.RowCount = 2;
this.tableLayoutPanel11.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 100F));
this.tableLayoutPanel11.RowStyles.Add(new System.Windows.Forms.RowStyle());
this.tableLayoutPanel11.Size = new System.Drawing.Size(262, 65);
this.tableLayoutPanel11.Size = new System.Drawing.Size(262, 72);
this.tableLayoutPanel11.TabIndex = 4;
//
// nudOverscanTop
@ -856,7 +858,7 @@
0,
0,
0});
this.nudOverscanTop.Location = new System.Drawing.Point(110, 44);
this.nudOverscanTop.Location = new System.Drawing.Point(110, 51);
this.nudOverscanTop.Margin = new System.Windows.Forms.Padding(0);
this.nudOverscanTop.Maximum = new decimal(new int[] {
100,
@ -884,7 +886,7 @@
//
this.lblTop.Anchor = System.Windows.Forms.AnchorStyles.Bottom;
this.lblTop.AutoSize = true;
this.lblTop.Location = new System.Drawing.Point(118, 31);
this.lblTop.Location = new System.Drawing.Point(118, 38);
this.lblTop.Name = "lblTop";
this.lblTop.Size = new System.Drawing.Size(26, 13);
this.lblTop.TabIndex = 0;
@ -897,7 +899,7 @@
this.tableLayoutPanel12.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 100F));
this.tableLayoutPanel12.Controls.Add(this.nudOverscanBottom, 0, 1);
this.tableLayoutPanel12.Controls.Add(this.lblBottom, 0, 0);
this.tableLayoutPanel12.Location = new System.Drawing.Point(149, 311);
this.tableLayoutPanel12.Location = new System.Drawing.Point(149, 318);
this.tableLayoutPanel12.Margin = new System.Windows.Forms.Padding(0);
this.tableLayoutPanel12.Name = "tableLayoutPanel12";
this.tableLayoutPanel12.RowCount = 2;
@ -958,7 +960,7 @@
this.tableLayoutPanel13.Controls.Add(this.nudOverscanRight, 0, 2);
this.tableLayoutPanel13.Controls.Add(this.lblRight, 0, 1);
this.tableLayoutPanel13.Dock = System.Windows.Forms.DockStyle.Fill;
this.tableLayoutPanel13.Location = new System.Drawing.Point(411, 65);
this.tableLayoutPanel13.Location = new System.Drawing.Point(411, 72);
this.tableLayoutPanel13.Margin = new System.Windows.Forms.Padding(0);
this.tableLayoutPanel13.Name = "tableLayoutPanel13";
this.tableLayoutPanel13.RowCount = 4;
@ -1021,7 +1023,7 @@
this.tableLayoutPanel14.Controls.Add(this.nudOverscanLeft, 1, 2);
this.tableLayoutPanel14.Controls.Add(this.lblLeft, 1, 1);
this.tableLayoutPanel14.Dock = System.Windows.Forms.DockStyle.Fill;
this.tableLayoutPanel14.Location = new System.Drawing.Point(0, 65);
this.tableLayoutPanel14.Location = new System.Drawing.Point(0, 72);
this.tableLayoutPanel14.Margin = new System.Windows.Forms.Padding(0);
this.tableLayoutPanel14.Name = "tableLayoutPanel14";
this.tableLayoutPanel14.RowCount = 4;
@ -1082,7 +1084,7 @@
this.tpgAdvanced.Location = new System.Drawing.Point(4, 22);
this.tpgAdvanced.Name = "tpgAdvanced";
this.tpgAdvanced.Padding = new System.Windows.Forms.Padding(3);
this.tpgAdvanced.Size = new System.Drawing.Size(566, 382);
this.tpgAdvanced.Size = new System.Drawing.Size(566, 397);
this.tpgAdvanced.TabIndex = 7;
this.tpgAdvanced.Text = "Advanced";
this.tpgAdvanced.UseVisualStyleBackColor = true;
@ -1108,9 +1110,19 @@
this.tableLayoutPanel2.RowStyles.Add(new System.Windows.Forms.RowStyle());
this.tableLayoutPanel2.RowStyles.Add(new System.Windows.Forms.RowStyle());
this.tableLayoutPanel2.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 100F));
this.tableLayoutPanel2.Size = new System.Drawing.Size(560, 376);
this.tableLayoutPanel2.Size = new System.Drawing.Size(560, 391);
this.tableLayoutPanel2.TabIndex = 0;
//
// chkDisableFrameSkipping
//
this.chkDisableFrameSkipping.Checked = false;
this.chkDisableFrameSkipping.Dock = System.Windows.Forms.DockStyle.Top;
this.chkDisableFrameSkipping.Location = new System.Drawing.Point(0, 120);
this.chkDisableFrameSkipping.Name = "chkDisableFrameSkipping";
this.chkDisableFrameSkipping.Size = new System.Drawing.Size(560, 24);
this.chkDisableFrameSkipping.TabIndex = 5;
this.chkDisableFrameSkipping.Text = "Disable frame skipping when fast-forwarding";
//
// chkHideBgLayer0
//
this.chkHideBgLayer0.Checked = false;
@ -1199,21 +1211,22 @@
this.mnuPresetMonochrome.Text = "Monochrome";
this.mnuPresetMonochrome.Click += new System.EventHandler(this.mnuPresetMonochrome_Click);
//
// chkDisableFrameSkipping
// chkBlendHighResolutionModes
//
this.chkDisableFrameSkipping.Checked = false;
this.chkDisableFrameSkipping.Dock = System.Windows.Forms.DockStyle.Top;
this.chkDisableFrameSkipping.Location = new System.Drawing.Point(0, 120);
this.chkDisableFrameSkipping.Name = "chkDisableFrameSkipping";
this.chkDisableFrameSkipping.Size = new System.Drawing.Size(560, 24);
this.chkDisableFrameSkipping.TabIndex = 5;
this.chkDisableFrameSkipping.Text = "Disable frame skipping when fast-forwarding";
this.chkBlendHighResolutionModes.AutoSize = true;
this.tableLayoutPanel4.SetColumnSpan(this.chkBlendHighResolutionModes, 2);
this.chkBlendHighResolutionModes.Location = new System.Drawing.Point(3, 226);
this.chkBlendHighResolutionModes.Name = "chkBlendHighResolutionModes";
this.chkBlendHighResolutionModes.Size = new System.Drawing.Size(158, 17);
this.chkBlendHighResolutionModes.TabIndex = 29;
this.chkBlendHighResolutionModes.Text = "Blend high resolution modes";
this.chkBlendHighResolutionModes.UseVisualStyleBackColor = true;
//
// frmVideoConfig
//
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.ClientSize = new System.Drawing.Size(574, 437);
this.ClientSize = new System.Drawing.Size(574, 456);
this.Controls.Add(this.tabMain);
this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedSingle;
this.MaximizeBox = false;
@ -1336,5 +1349,6 @@
private Controls.ctrlRiskyOption chkHideBgLayer3;
private Controls.ctrlRiskyOption chkHideSprites;
private Controls.ctrlRiskyOption chkDisableFrameSkipping;
private System.Windows.Forms.CheckBox chkBlendHighResolutionModes;
}
}

View file

@ -24,6 +24,7 @@ namespace Mesen.GUI.Forms.Config
Entity = ConfigManager.Config.Video.Clone();
AddBinding(nameof(VideoConfig.UseBilinearInterpolation), chkBilinearInterpolation);
AddBinding(nameof(VideoConfig.BlendHighResolutionModes), chkBlendHighResolutionModes);
AddBinding(nameof(VideoConfig.VerticalSync), chkVerticalSync);
AddBinding(nameof(VideoConfig.IntegerFpsMode), chkIntegerFpsMode);
AddBinding(nameof(VideoConfig.FullscreenForceIntegerScale), chkFullscreenForceIntegerScale);

View file

@ -97,7 +97,7 @@
this.mnuPrescale8xFilter = new System.Windows.Forms.ToolStripMenuItem();
this.mnuPrescale10xFilter = new System.Windows.Forms.ToolStripMenuItem();
this.toolStripMenuItem19 = new System.Windows.Forms.ToolStripSeparator();
this.mnuBilinearInterpolation = new System.Windows.Forms.ToolStripMenuItem();
this.mnuBlendHighResolutionModes = new System.Windows.Forms.ToolStripMenuItem();
this.mnuRegion = new System.Windows.Forms.ToolStripMenuItem();
this.mnuRegionAuto = new System.Windows.Forms.ToolStripMenuItem();
this.toolStripMenuItem1 = new System.Windows.Forms.ToolStripSeparator();
@ -111,6 +111,11 @@
this.toolStripMenuItem3 = new System.Windows.Forms.ToolStripSeparator();
this.mnuPreferences = new System.Windows.Forms.ToolStripMenuItem();
this.mnuTools = new System.Windows.Forms.ToolStripMenuItem();
this.mnuMovies = new System.Windows.Forms.ToolStripMenuItem();
this.mnuPlayMovie = new System.Windows.Forms.ToolStripMenuItem();
this.mnuRecordMovie = new System.Windows.Forms.ToolStripMenuItem();
this.mnuStopMovie = new System.Windows.Forms.ToolStripMenuItem();
this.toolStripMenuItem25 = new System.Windows.Forms.ToolStripSeparator();
this.mnuSoundRecorder = new System.Windows.Forms.ToolStripMenuItem();
this.mnuWaveRecord = new System.Windows.Forms.ToolStripMenuItem();
this.mnuWaveStop = new System.Windows.Forms.ToolStripMenuItem();
@ -144,11 +149,7 @@
this.mnuAbout = new System.Windows.Forms.ToolStripMenuItem();
this.pnlRenderer = new System.Windows.Forms.Panel();
this.ctrlRecentGames = new Mesen.GUI.Controls.ctrlRecentGames();
this.mnuMovies = new System.Windows.Forms.ToolStripMenuItem();
this.mnuPlayMovie = new System.Windows.Forms.ToolStripMenuItem();
this.mnuRecordMovie = new System.Windows.Forms.ToolStripMenuItem();
this.mnuStopMovie = new System.Windows.Forms.ToolStripMenuItem();
this.toolStripMenuItem25 = new System.Windows.Forms.ToolStripSeparator();
this.mnuBilinearInterpolation = new System.Windows.Forms.ToolStripMenuItem();
this.mnuMain.SuspendLayout();
this.pnlRenderer.SuspendLayout();
this.SuspendLayout();
@ -197,49 +198,49 @@
//
this.mnuOpen.Image = global::Mesen.GUI.Properties.Resources.Folder;
this.mnuOpen.Name = "mnuOpen";
this.mnuOpen.Size = new System.Drawing.Size(136, 22);
this.mnuOpen.Size = new System.Drawing.Size(152, 22);
this.mnuOpen.Text = "Open";
//
// toolStripMenuItem2
//
this.toolStripMenuItem2.Name = "toolStripMenuItem2";
this.toolStripMenuItem2.Size = new System.Drawing.Size(133, 6);
this.toolStripMenuItem2.Size = new System.Drawing.Size(149, 6);
//
// mnuSaveState
//
this.mnuSaveState.Name = "mnuSaveState";
this.mnuSaveState.Size = new System.Drawing.Size(136, 22);
this.mnuSaveState.Size = new System.Drawing.Size(152, 22);
this.mnuSaveState.Text = "Save State";
this.mnuSaveState.DropDownOpening += new System.EventHandler(this.mnuSaveState_DropDownOpening);
//
// mnuLoadState
//
this.mnuLoadState.Name = "mnuLoadState";
this.mnuLoadState.Size = new System.Drawing.Size(136, 22);
this.mnuLoadState.Size = new System.Drawing.Size(152, 22);
this.mnuLoadState.Text = "Load State";
this.mnuLoadState.DropDownOpening += new System.EventHandler(this.mnuLoadState_DropDownOpening);
//
// toolStripMenuItem10
//
this.toolStripMenuItem10.Name = "toolStripMenuItem10";
this.toolStripMenuItem10.Size = new System.Drawing.Size(133, 6);
this.toolStripMenuItem10.Size = new System.Drawing.Size(149, 6);
//
// mnuRecentFiles
//
this.mnuRecentFiles.Name = "mnuRecentFiles";
this.mnuRecentFiles.Size = new System.Drawing.Size(136, 22);
this.mnuRecentFiles.Size = new System.Drawing.Size(152, 22);
this.mnuRecentFiles.Text = "Recent Files";
//
// toolStripMenuItem6
//
this.toolStripMenuItem6.Name = "toolStripMenuItem6";
this.toolStripMenuItem6.Size = new System.Drawing.Size(133, 6);
this.toolStripMenuItem6.Size = new System.Drawing.Size(149, 6);
//
// mnuExit
//
this.mnuExit.Image = global::Mesen.GUI.Properties.Resources.Exit;
this.mnuExit.Name = "mnuExit";
this.mnuExit.Size = new System.Drawing.Size(136, 22);
this.mnuExit.Size = new System.Drawing.Size(152, 22);
this.mnuExit.Text = "Exit";
//
// mnuGame
@ -261,7 +262,7 @@
this.mnuPause.Enabled = false;
this.mnuPause.Image = global::Mesen.GUI.Properties.Resources.MediaPause;
this.mnuPause.Name = "mnuPause";
this.mnuPause.Size = new System.Drawing.Size(139, 22);
this.mnuPause.Size = new System.Drawing.Size(152, 22);
this.mnuPause.Text = "Pause";
//
// mnuReset
@ -269,7 +270,7 @@
this.mnuReset.Enabled = false;
this.mnuReset.Image = global::Mesen.GUI.Properties.Resources.Refresh;
this.mnuReset.Name = "mnuReset";
this.mnuReset.Size = new System.Drawing.Size(139, 22);
this.mnuReset.Size = new System.Drawing.Size(152, 22);
this.mnuReset.Text = "Reset";
//
// mnuPowerCycle
@ -277,19 +278,19 @@
this.mnuPowerCycle.Enabled = false;
this.mnuPowerCycle.Image = global::Mesen.GUI.Properties.Resources.PowerCycle;
this.mnuPowerCycle.Name = "mnuPowerCycle";
this.mnuPowerCycle.Size = new System.Drawing.Size(139, 22);
this.mnuPowerCycle.Size = new System.Drawing.Size(152, 22);
this.mnuPowerCycle.Text = "Power Cycle";
//
// toolStripMenuItem24
//
this.toolStripMenuItem24.Name = "toolStripMenuItem24";
this.toolStripMenuItem24.Size = new System.Drawing.Size(136, 6);
this.toolStripMenuItem24.Size = new System.Drawing.Size(149, 6);
//
// mnuPowerOff
//
this.mnuPowerOff.Image = global::Mesen.GUI.Properties.Resources.MediaStop;
this.mnuPowerOff.Name = "mnuPowerOff";
this.mnuPowerOff.Size = new System.Drawing.Size(139, 22);
this.mnuPowerOff.Size = new System.Drawing.Size(152, 22);
this.mnuPowerOff.Text = "Power Off";
//
// mnuOptions
@ -329,7 +330,7 @@
this.mnuShowFPS});
this.mnuEmulationSpeed.Image = global::Mesen.GUI.Properties.Resources.Speed;
this.mnuEmulationSpeed.Name = "mnuEmulationSpeed";
this.mnuEmulationSpeed.Size = new System.Drawing.Size(135, 22);
this.mnuEmulationSpeed.Size = new System.Drawing.Size(152, 22);
this.mnuEmulationSpeed.Text = "Speed";
this.mnuEmulationSpeed.DropDownOpening += new System.EventHandler(this.mnuEmulationSpeed_DropDownOpening);
//
@ -416,7 +417,7 @@
this.mnuFullscreen});
this.mnuVideoScale.Image = global::Mesen.GUI.Properties.Resources.Fullscreen;
this.mnuVideoScale.Name = "mnuVideoScale";
this.mnuVideoScale.Size = new System.Drawing.Size(135, 22);
this.mnuVideoScale.Size = new System.Drawing.Size(152, 22);
this.mnuVideoScale.Text = "Video Size";
this.mnuVideoScale.DropDownOpening += new System.EventHandler(this.mnuVideoScale_DropDownOpening);
//
@ -499,186 +500,187 @@
this.mnuPrescale8xFilter,
this.mnuPrescale10xFilter,
this.toolStripMenuItem19,
this.mnuBilinearInterpolation});
this.mnuBilinearInterpolation,
this.mnuBlendHighResolutionModes});
this.mnuVideoFilter.Image = global::Mesen.GUI.Properties.Resources.VideoFilter;
this.mnuVideoFilter.Name = "mnuVideoFilter";
this.mnuVideoFilter.Size = new System.Drawing.Size(135, 22);
this.mnuVideoFilter.Size = new System.Drawing.Size(152, 22);
this.mnuVideoFilter.Text = "Video Filter";
this.mnuVideoFilter.DropDownOpening += new System.EventHandler(this.mnuVideoFilter_DropDownOpening);
//
// mnuNoneFilter
//
this.mnuNoneFilter.Name = "mnuNoneFilter";
this.mnuNoneFilter.Size = new System.Drawing.Size(206, 22);
this.mnuNoneFilter.Size = new System.Drawing.Size(231, 22);
this.mnuNoneFilter.Text = "None";
//
// toolStripMenuItem21
//
this.toolStripMenuItem21.Name = "toolStripMenuItem21";
this.toolStripMenuItem21.Size = new System.Drawing.Size(203, 6);
this.toolStripMenuItem21.Size = new System.Drawing.Size(228, 6);
//
// mnuNtscFilter
//
this.mnuNtscFilter.Name = "mnuNtscFilter";
this.mnuNtscFilter.Size = new System.Drawing.Size(206, 22);
this.mnuNtscFilter.Size = new System.Drawing.Size(231, 22);
this.mnuNtscFilter.Text = "NTSC";
//
// toolStripMenuItem15
//
this.toolStripMenuItem15.Name = "toolStripMenuItem15";
this.toolStripMenuItem15.Size = new System.Drawing.Size(203, 6);
this.toolStripMenuItem15.Size = new System.Drawing.Size(228, 6);
//
// mnuXBRZ2xFilter
//
this.mnuXBRZ2xFilter.Name = "mnuXBRZ2xFilter";
this.mnuXBRZ2xFilter.Size = new System.Drawing.Size(206, 22);
this.mnuXBRZ2xFilter.Size = new System.Drawing.Size(231, 22);
this.mnuXBRZ2xFilter.Text = "xBRZ 2x";
//
// mnuXBRZ3xFilter
//
this.mnuXBRZ3xFilter.Name = "mnuXBRZ3xFilter";
this.mnuXBRZ3xFilter.Size = new System.Drawing.Size(206, 22);
this.mnuXBRZ3xFilter.Size = new System.Drawing.Size(231, 22);
this.mnuXBRZ3xFilter.Text = "xBRZ 3x";
//
// mnuXBRZ4xFilter
//
this.mnuXBRZ4xFilter.Name = "mnuXBRZ4xFilter";
this.mnuXBRZ4xFilter.Size = new System.Drawing.Size(206, 22);
this.mnuXBRZ4xFilter.Size = new System.Drawing.Size(231, 22);
this.mnuXBRZ4xFilter.Text = "xBRZ 4x";
//
// mnuXBRZ5xFilter
//
this.mnuXBRZ5xFilter.Name = "mnuXBRZ5xFilter";
this.mnuXBRZ5xFilter.Size = new System.Drawing.Size(206, 22);
this.mnuXBRZ5xFilter.Size = new System.Drawing.Size(231, 22);
this.mnuXBRZ5xFilter.Text = "xBRZ 5x";
//
// mnuXBRZ6xFilter
//
this.mnuXBRZ6xFilter.Name = "mnuXBRZ6xFilter";
this.mnuXBRZ6xFilter.Size = new System.Drawing.Size(206, 22);
this.mnuXBRZ6xFilter.Size = new System.Drawing.Size(231, 22);
this.mnuXBRZ6xFilter.Text = "xBRZ 6x";
//
// toolStripMenuItem16
//
this.toolStripMenuItem16.Name = "toolStripMenuItem16";
this.toolStripMenuItem16.Size = new System.Drawing.Size(203, 6);
this.toolStripMenuItem16.Size = new System.Drawing.Size(228, 6);
//
// mnuHQ2xFilter
//
this.mnuHQ2xFilter.Name = "mnuHQ2xFilter";
this.mnuHQ2xFilter.Size = new System.Drawing.Size(206, 22);
this.mnuHQ2xFilter.Size = new System.Drawing.Size(231, 22);
this.mnuHQ2xFilter.Text = "HQ 2x";
//
// mnuHQ3xFilter
//
this.mnuHQ3xFilter.Name = "mnuHQ3xFilter";
this.mnuHQ3xFilter.Size = new System.Drawing.Size(206, 22);
this.mnuHQ3xFilter.Size = new System.Drawing.Size(231, 22);
this.mnuHQ3xFilter.Text = "HQ 3x";
//
// mnuHQ4xFilter
//
this.mnuHQ4xFilter.Name = "mnuHQ4xFilter";
this.mnuHQ4xFilter.Size = new System.Drawing.Size(206, 22);
this.mnuHQ4xFilter.Size = new System.Drawing.Size(231, 22);
this.mnuHQ4xFilter.Text = "HQ 4x";
//
// toolStripMenuItem17
//
this.toolStripMenuItem17.Name = "toolStripMenuItem17";
this.toolStripMenuItem17.Size = new System.Drawing.Size(203, 6);
this.toolStripMenuItem17.Size = new System.Drawing.Size(228, 6);
//
// mnuScale2xFilter
//
this.mnuScale2xFilter.Name = "mnuScale2xFilter";
this.mnuScale2xFilter.Size = new System.Drawing.Size(206, 22);
this.mnuScale2xFilter.Size = new System.Drawing.Size(231, 22);
this.mnuScale2xFilter.Text = "Scale2x";
//
// mnuScale3xFilter
//
this.mnuScale3xFilter.Name = "mnuScale3xFilter";
this.mnuScale3xFilter.Size = new System.Drawing.Size(206, 22);
this.mnuScale3xFilter.Size = new System.Drawing.Size(231, 22);
this.mnuScale3xFilter.Text = "Scale3x";
//
// mnuScale4xFilter
//
this.mnuScale4xFilter.Name = "mnuScale4xFilter";
this.mnuScale4xFilter.Size = new System.Drawing.Size(206, 22);
this.mnuScale4xFilter.Size = new System.Drawing.Size(231, 22);
this.mnuScale4xFilter.Text = "Scale4x";
//
// toolStripMenuItem23
//
this.toolStripMenuItem23.Name = "toolStripMenuItem23";
this.toolStripMenuItem23.Size = new System.Drawing.Size(203, 6);
this.toolStripMenuItem23.Size = new System.Drawing.Size(228, 6);
//
// mnu2xSaiFilter
//
this.mnu2xSaiFilter.Name = "mnu2xSaiFilter";
this.mnu2xSaiFilter.Size = new System.Drawing.Size(206, 22);
this.mnu2xSaiFilter.Size = new System.Drawing.Size(231, 22);
this.mnu2xSaiFilter.Text = "2xSai";
//
// mnuSuper2xSaiFilter
//
this.mnuSuper2xSaiFilter.Name = "mnuSuper2xSaiFilter";
this.mnuSuper2xSaiFilter.Size = new System.Drawing.Size(206, 22);
this.mnuSuper2xSaiFilter.Size = new System.Drawing.Size(231, 22);
this.mnuSuper2xSaiFilter.Text = "Super2xSai";
//
// mnuSuperEagleFilter
//
this.mnuSuperEagleFilter.Name = "mnuSuperEagleFilter";
this.mnuSuperEagleFilter.Size = new System.Drawing.Size(206, 22);
this.mnuSuperEagleFilter.Size = new System.Drawing.Size(231, 22);
this.mnuSuperEagleFilter.Text = "SuperEagle";
//
// toolStripMenuItem18
//
this.toolStripMenuItem18.Name = "toolStripMenuItem18";
this.toolStripMenuItem18.Size = new System.Drawing.Size(203, 6);
this.toolStripMenuItem18.Size = new System.Drawing.Size(228, 6);
//
// mnuPrescale2xFilter
//
this.mnuPrescale2xFilter.Name = "mnuPrescale2xFilter";
this.mnuPrescale2xFilter.Size = new System.Drawing.Size(206, 22);
this.mnuPrescale2xFilter.Size = new System.Drawing.Size(231, 22);
this.mnuPrescale2xFilter.Text = "Prescale 2x";
//
// mnuPrescale3xFilter
//
this.mnuPrescale3xFilter.Name = "mnuPrescale3xFilter";
this.mnuPrescale3xFilter.Size = new System.Drawing.Size(206, 22);
this.mnuPrescale3xFilter.Size = new System.Drawing.Size(231, 22);
this.mnuPrescale3xFilter.Text = "Prescale 3x";
//
// mnuPrescale4xFilter
//
this.mnuPrescale4xFilter.Name = "mnuPrescale4xFilter";
this.mnuPrescale4xFilter.Size = new System.Drawing.Size(206, 22);
this.mnuPrescale4xFilter.Size = new System.Drawing.Size(231, 22);
this.mnuPrescale4xFilter.Text = "Prescale 4x";
//
// mnuPrescale6xFilter
//
this.mnuPrescale6xFilter.Name = "mnuPrescale6xFilter";
this.mnuPrescale6xFilter.Size = new System.Drawing.Size(206, 22);
this.mnuPrescale6xFilter.Size = new System.Drawing.Size(231, 22);
this.mnuPrescale6xFilter.Text = "Prescale 6x";
//
// mnuPrescale8xFilter
//
this.mnuPrescale8xFilter.Name = "mnuPrescale8xFilter";
this.mnuPrescale8xFilter.Size = new System.Drawing.Size(206, 22);
this.mnuPrescale8xFilter.Size = new System.Drawing.Size(231, 22);
this.mnuPrescale8xFilter.Text = "Prescale 8x";
//
// mnuPrescale10xFilter
//
this.mnuPrescale10xFilter.Name = "mnuPrescale10xFilter";
this.mnuPrescale10xFilter.Size = new System.Drawing.Size(206, 22);
this.mnuPrescale10xFilter.Size = new System.Drawing.Size(231, 22);
this.mnuPrescale10xFilter.Text = "Prescale 10x";
//
// toolStripMenuItem19
//
this.toolStripMenuItem19.Name = "toolStripMenuItem19";
this.toolStripMenuItem19.Size = new System.Drawing.Size(203, 6);
this.toolStripMenuItem19.Size = new System.Drawing.Size(228, 6);
//
// mnuBilinearInterpolation
// mnuBlendHighResolutionModes
//
this.mnuBilinearInterpolation.CheckOnClick = true;
this.mnuBilinearInterpolation.Name = "mnuBilinearInterpolation";
this.mnuBilinearInterpolation.Size = new System.Drawing.Size(206, 22);
this.mnuBilinearInterpolation.Text = "Use Bilinear Interpolation";
this.mnuBlendHighResolutionModes.CheckOnClick = true;
this.mnuBlendHighResolutionModes.Name = "mnuBlendHighResolutionModes";
this.mnuBlendHighResolutionModes.Size = new System.Drawing.Size(231, 22);
this.mnuBlendHighResolutionModes.Text = "Blend High Resolution Modes";
//
// mnuRegion
//
@ -689,7 +691,7 @@
this.mnuRegionPal});
this.mnuRegion.Image = global::Mesen.GUI.Properties.Resources.WebBrowser;
this.mnuRegion.Name = "mnuRegion";
this.mnuRegion.Size = new System.Drawing.Size(135, 22);
this.mnuRegion.Size = new System.Drawing.Size(152, 22);
this.mnuRegion.Text = "Region";
this.mnuRegion.DropDownOpening += new System.EventHandler(this.mnuRegion_DropDownOpening);
//
@ -719,13 +721,13 @@
// toolStripMenuItem4
//
this.toolStripMenuItem4.Name = "toolStripMenuItem4";
this.toolStripMenuItem4.Size = new System.Drawing.Size(132, 6);
this.toolStripMenuItem4.Size = new System.Drawing.Size(149, 6);
//
// mnuAudioConfig
//
this.mnuAudioConfig.Image = global::Mesen.GUI.Properties.Resources.Audio;
this.mnuAudioConfig.Name = "mnuAudioConfig";
this.mnuAudioConfig.Size = new System.Drawing.Size(135, 22);
this.mnuAudioConfig.Size = new System.Drawing.Size(152, 22);
this.mnuAudioConfig.Text = "Audio";
this.mnuAudioConfig.Click += new System.EventHandler(this.mnuAudioConfig_Click);
//
@ -733,7 +735,7 @@
//
this.mnuInputConfig.Image = global::Mesen.GUI.Properties.Resources.Controller;
this.mnuInputConfig.Name = "mnuInputConfig";
this.mnuInputConfig.Size = new System.Drawing.Size(135, 22);
this.mnuInputConfig.Size = new System.Drawing.Size(152, 22);
this.mnuInputConfig.Text = "Input";
this.mnuInputConfig.Click += new System.EventHandler(this.mnuInputConfig_Click);
//
@ -741,7 +743,7 @@
//
this.mnuVideoConfig.Image = global::Mesen.GUI.Properties.Resources.VideoOptions;
this.mnuVideoConfig.Name = "mnuVideoConfig";
this.mnuVideoConfig.Size = new System.Drawing.Size(135, 22);
this.mnuVideoConfig.Size = new System.Drawing.Size(152, 22);
this.mnuVideoConfig.Text = "Video";
this.mnuVideoConfig.Click += new System.EventHandler(this.mnuVideoConfig_Click);
//
@ -749,20 +751,20 @@
//
this.mnuEmulationConfig.Image = global::Mesen.GUI.Properties.Resources.DipSwitches;
this.mnuEmulationConfig.Name = "mnuEmulationConfig";
this.mnuEmulationConfig.Size = new System.Drawing.Size(135, 22);
this.mnuEmulationConfig.Size = new System.Drawing.Size(152, 22);
this.mnuEmulationConfig.Text = "Emulation";
this.mnuEmulationConfig.Click += new System.EventHandler(this.mnuEmulationConfig_Click);
//
// toolStripMenuItem3
//
this.toolStripMenuItem3.Name = "toolStripMenuItem3";
this.toolStripMenuItem3.Size = new System.Drawing.Size(132, 6);
this.toolStripMenuItem3.Size = new System.Drawing.Size(149, 6);
//
// mnuPreferences
//
this.mnuPreferences.Image = global::Mesen.GUI.Properties.Resources.Settings;
this.mnuPreferences.Name = "mnuPreferences";
this.mnuPreferences.Size = new System.Drawing.Size(135, 22);
this.mnuPreferences.Size = new System.Drawing.Size(152, 22);
this.mnuPreferences.Text = "Preferences";
this.mnuPreferences.Click += new System.EventHandler(this.mnuPreferences_Click);
//
@ -784,6 +786,46 @@
this.mnuTools.DropDownOpening += new System.EventHandler(this.mnuTools_DropDownOpening);
this.mnuTools.DropDownOpened += new System.EventHandler(this.mnu_DropDownOpened);
//
// mnuMovies
//
this.mnuMovies.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {
this.mnuPlayMovie,
this.mnuRecordMovie,
this.mnuStopMovie});
this.mnuMovies.Image = global::Mesen.GUI.Properties.Resources.Movie;
this.mnuMovies.Name = "mnuMovies";
this.mnuMovies.Size = new System.Drawing.Size(159, 22);
this.mnuMovies.Text = "Movies";
//
// mnuPlayMovie
//
this.mnuPlayMovie.Image = global::Mesen.GUI.Properties.Resources.MediaPlay;
this.mnuPlayMovie.Name = "mnuPlayMovie";
this.mnuPlayMovie.Size = new System.Drawing.Size(120, 22);
this.mnuPlayMovie.Text = "Play...";
this.mnuPlayMovie.Click += new System.EventHandler(this.mnuPlayMovie_Click);
//
// mnuRecordMovie
//
this.mnuRecordMovie.Image = global::Mesen.GUI.Properties.Resources.Record;
this.mnuRecordMovie.Name = "mnuRecordMovie";
this.mnuRecordMovie.Size = new System.Drawing.Size(120, 22);
this.mnuRecordMovie.Text = "Record...";
this.mnuRecordMovie.Click += new System.EventHandler(this.mnuRecordMovie_Click);
//
// mnuStopMovie
//
this.mnuStopMovie.Image = global::Mesen.GUI.Properties.Resources.MediaStop;
this.mnuStopMovie.Name = "mnuStopMovie";
this.mnuStopMovie.Size = new System.Drawing.Size(120, 22);
this.mnuStopMovie.Text = "Stop";
this.mnuStopMovie.Click += new System.EventHandler(this.mnuStopMovie_Click);
//
// toolStripMenuItem25
//
this.toolStripMenuItem25.Name = "toolStripMenuItem25";
this.toolStripMenuItem25.Size = new System.Drawing.Size(156, 6);
//
// mnuSoundRecorder
//
this.mnuSoundRecorder.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {
@ -1046,45 +1088,12 @@
this.ctrlRecentGames.TabIndex = 1;
this.ctrlRecentGames.Visible = false;
//
// mnuMovies
// mnuBilinearInterpolation
//
this.mnuMovies.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {
this.mnuPlayMovie,
this.mnuRecordMovie,
this.mnuStopMovie});
this.mnuMovies.Image = global::Mesen.GUI.Properties.Resources.Movie;
this.mnuMovies.Name = "mnuMovies";
this.mnuMovies.Size = new System.Drawing.Size(159, 22);
this.mnuMovies.Text = "Movies";
//
// mnuPlayMovie
//
this.mnuPlayMovie.Image = global::Mesen.GUI.Properties.Resources.MediaPlay;
this.mnuPlayMovie.Name = "mnuPlayMovie";
this.mnuPlayMovie.Size = new System.Drawing.Size(152, 22);
this.mnuPlayMovie.Text = "Play...";
this.mnuPlayMovie.Click += new System.EventHandler(this.mnuPlayMovie_Click);
//
// mnuRecordMovie
//
this.mnuRecordMovie.Image = global::Mesen.GUI.Properties.Resources.Record;
this.mnuRecordMovie.Name = "mnuRecordMovie";
this.mnuRecordMovie.Size = new System.Drawing.Size(152, 22);
this.mnuRecordMovie.Text = "Record...";
this.mnuRecordMovie.Click += new System.EventHandler(this.mnuRecordMovie_Click);
//
// mnuStopMovie
//
this.mnuStopMovie.Image = global::Mesen.GUI.Properties.Resources.MediaStop;
this.mnuStopMovie.Name = "mnuStopMovie";
this.mnuStopMovie.Size = new System.Drawing.Size(152, 22);
this.mnuStopMovie.Text = "Stop";
this.mnuStopMovie.Click += new System.EventHandler(this.mnuStopMovie_Click);
//
// toolStripMenuItem25
//
this.toolStripMenuItem25.Name = "toolStripMenuItem25";
this.toolStripMenuItem25.Size = new System.Drawing.Size(156, 6);
this.mnuBilinearInterpolation.CheckOnClick = true;
this.mnuBilinearInterpolation.Name = "mnuBilinearInterpolation";
this.mnuBilinearInterpolation.Size = new System.Drawing.Size(231, 22);
this.mnuBilinearInterpolation.Text = "Use Bilinear Interpolation";
//
// frmMain
//
@ -1189,7 +1198,7 @@
private System.Windows.Forms.ToolStripMenuItem mnuPrescale8xFilter;
private System.Windows.Forms.ToolStripMenuItem mnuPrescale10xFilter;
private System.Windows.Forms.ToolStripSeparator toolStripMenuItem19;
private System.Windows.Forms.ToolStripMenuItem mnuBilinearInterpolation;
private System.Windows.Forms.ToolStripMenuItem mnuBlendHighResolutionModes;
private System.Windows.Forms.ToolStripSeparator toolStripMenuItem4;
private System.Windows.Forms.ToolStripMenuItem mnuHelp;
private System.Windows.Forms.ToolStripMenuItem mnuCheckForUpdates;
@ -1233,5 +1242,6 @@
private System.Windows.Forms.ToolStripMenuItem mnuRecordMovie;
private System.Windows.Forms.ToolStripMenuItem mnuStopMovie;
private System.Windows.Forms.ToolStripSeparator toolStripMenuItem25;
private System.Windows.Forms.ToolStripMenuItem mnuBilinearInterpolation;
}
}

View file

@ -281,6 +281,7 @@ namespace Mesen.GUI.Forms
mnuXBRZ6xFilter.Click += (s, e) => { _shortcuts.SetVideoFilter(VideoFilterType.xBRZ6x); };
mnuBilinearInterpolation.Click += (s, e) => { _shortcuts.ToggleBilinearInterpolation(); };
mnuBlendHighResolutionModes.Click += (s, e) => { _shortcuts.ToggleBlendHighResolutionModes(); };
mnuRegionAuto.Click += (s, e) => { _shortcuts.SetRegion(ConsoleRegion.Auto); };
mnuRegionNtsc.Click += (s, e) => { _shortcuts.SetRegion(ConsoleRegion.Ntsc); };
@ -467,6 +468,7 @@ namespace Mesen.GUI.Forms
mnuPrescale10xFilter.Checked = (filterType == VideoFilterType.Prescale10x);
mnuBilinearInterpolation.Checked = ConfigManager.Config.Video.UseBilinearInterpolation;
mnuBlendHighResolutionModes.Checked = ConfigManager.Config.Video.BlendHighResolutionModes;
}
private void mnuVideoScale_DropDownOpening(object sender, EventArgs e)