add autoprescale concept. default it to on, since really I can't think of when you'd ever not want it, except in some very low-spec system scenarios. Add NOP concept to filter chain, potentially troublesome

This commit is contained in:
zeromus 2016-03-23 20:23:00 -05:00
parent 92e708d011
commit 3deb7fcb31
7 changed files with 181 additions and 77 deletions

View File

@ -254,6 +254,7 @@ namespace BizHawk.Client.Common
public bool DispFixAspectRatio = true; public bool DispFixAspectRatio = true;
public bool DispFixScaleInteger = true; public bool DispFixScaleInteger = true;
public bool DispFullscreenHacks = true; public bool DispFullscreenHacks = true;
public bool DispAutoPrescale = true;
public int DispSpeedupFeatures = 2; public int DispSpeedupFeatures = 2;

View File

@ -26,7 +26,7 @@ namespace BizHawk.Client.EmuHawk
{ {
class DisplayManagerRenderTargetProvider : IRenderTargetProvider class DisplayManagerRenderTargetProvider : IRenderTargetProvider
{ {
DisplayManagerRenderTargetProvider(Func<Size, RenderTarget> callback) { Callback = callback; } public DisplayManagerRenderTargetProvider(Func<Size, RenderTarget> callback) { Callback = callback; }
Func<Size, RenderTarget> Callback; Func<Size, RenderTarget> Callback;
RenderTarget IRenderTargetProvider.Get(Size size) RenderTarget IRenderTargetProvider.Get(Size size)
{ {
@ -248,13 +248,20 @@ namespace BizHawk.Client.EmuHawk
if (Global.Config.DispPrescale != 1) if (Global.Config.DispPrescale != 1)
{ {
Filters.PrescaleFilter fPrescale = new Filters.PrescaleFilter() { Scale = Global.Config.DispPrescale }; Filters.PrescaleFilter fPrescale = new Filters.PrescaleFilter() { Scale = Global.Config.DispPrescale };
chain.AddFilter(fPrescale, "prescale"); chain.AddFilter(fPrescale, "user_prescale");
} }
//add user-selected retro shader //add user-selected retro shader
if (selectedChain != null) if (selectedChain != null)
AppendRetroShaderChain(chain, "retroShader", selectedChain, selectedChainProperties); AppendRetroShaderChain(chain, "retroShader", selectedChain, selectedChainProperties);
//AutoPrescale makes no sense for a None final filter
if (Global.Config.DispAutoPrescale && Global.Config.DispFinalFilter != (int)Filters.FinalPresentation.eFilterOption.None)
{
var apf = new Filters.AutoPrescaleFilter();
chain.AddFilter(apf, "auto_prescale");
}
//choose final filter //choose final filter
Filters.FinalPresentation.eFilterOption finalFilter = Filters.FinalPresentation.eFilterOption.None; Filters.FinalPresentation.eFilterOption finalFilter = Filters.FinalPresentation.eFilterOption.None;
if (Global.Config.DispFinalFilter == 1) finalFilter = Filters.FinalPresentation.eFilterOption.Bilinear; if (Global.Config.DispFinalFilter == 1) finalFilter = Filters.FinalPresentation.eFilterOption.Bilinear;
@ -672,6 +679,7 @@ namespace BizHawk.Client.EmuHawk
fPresent.Config_FixAspectRatio = Global.Config.DispFixAspectRatio; fPresent.Config_FixAspectRatio = Global.Config.DispFixAspectRatio;
fPresent.Config_FixScaleInteger = Global.Config.DispFixScaleInteger; fPresent.Config_FixScaleInteger = Global.Config.DispFixScaleInteger;
fPresent.Padding = ClientExtraPadding; fPresent.Padding = ClientExtraPadding;
fPresent.AutoPrescale = Global.Config.DispAutoPrescale;
fPresent.GL = GL; fPresent.GL = GL;
@ -699,12 +707,16 @@ namespace BizHawk.Client.EmuHawk
//do i need to check this on an intel video card to see if running excessively is a problem? (it used to be in the FinalTarget command below, shouldnt be a problem) //do i need to check this on an intel video card to see if running excessively is a problem? (it used to be in the FinalTarget command below, shouldnt be a problem)
//GraphicsControl.Begin(); //CRITICAL POINT for yabause+GL //GraphicsControl.Begin(); //CRITICAL POINT for yabause+GL
//TODO - auto-create and age these (and dispose when old)
int rtCounter = 0;
CurrentFilterProgram.RenderTargetProvider = new DisplayManagerRenderTargetProvider((size) => ShaderChainFrugalizers[rtCounter++].Get(size));
GlobalWin.GL.BeginScene(); GlobalWin.GL.BeginScene();
//run filter chain //run filter chain
Texture2d texCurr = null; Texture2d texCurr = null;
RenderTarget rtCurr = null; RenderTarget rtCurr = null;
int rtCounter = 0;
bool inFinalTarget = false; bool inFinalTarget = false;
foreach (var step in CurrentFilterProgram.Program) foreach (var step in CurrentFilterProgram.Program)
{ {

View File

@ -75,6 +75,11 @@ namespace BizHawk.Client.EmuHawk.FilterManager
public RenderTarget GetRenderTarget(string channel = "default") { return CurrRenderTarget; } public RenderTarget GetRenderTarget(string channel = "default") { return CurrRenderTarget; }
public RenderTarget CurrRenderTarget; public RenderTarget CurrRenderTarget;
public RenderTarget GetTempTarget(int width, int height)
{
return RenderTargetProvider.Get(new Size(width, height));
}
public void AddFilter(BaseFilter filter, string name = "") public void AddFilter(BaseFilter filter, string name = "")
{ {
Filters.Add(filter); Filters.Add(filter);
@ -184,6 +189,11 @@ namespace BizHawk.Client.EmuHawk.FilterManager
iosi.SurfaceFormat = currState.SurfaceFormat; iosi.SurfaceFormat = currState.SurfaceFormat;
f.SetInputFormat(channel, currState); f.SetInputFormat(channel, currState);
if (f.IsNOP)
{
continue;
}
//check if the desired disposition needs to change from texture to render target //check if the desired disposition needs to change from texture to render target
//(if so, insert a render filter) //(if so, insert a render filter)
if (iosi.SurfaceDisposition == SurfaceDisposition.RenderTarget && currState.SurfaceDisposition == SurfaceDisposition.Texture) if (iosi.SurfaceDisposition == SurfaceDisposition.RenderTarget && currState.SurfaceDisposition == SurfaceDisposition.Texture)

View File

@ -37,6 +37,8 @@ namespace BizHawk.Client.EmuHawk.Filters
public virtual Size PresizeOutput(string channel, Size size) { return size; } public virtual Size PresizeOutput(string channel, Size size) { return size; }
public virtual void SetInputFormat(string channel, SurfaceState state) { } //TODO - why a different param order than DeclareOutput? public virtual void SetInputFormat(string channel, SurfaceState state) { } //TODO - why a different param order than DeclareOutput?
public Dictionary<string, object> Parameters = new Dictionary<string, object>(); public Dictionary<string, object> Parameters = new Dictionary<string, object>();
public bool IsNOP { get { return _IsNop; } protected set { _IsNop = value; } }
private Boolean _IsNop = false;
//runtime signals //runtime signals
public virtual Vector2 UntransformPoint(string channel, Vector2 point) public virtual Vector2 UntransformPoint(string channel, Vector2 point)
@ -87,6 +89,8 @@ namespace BizHawk.Client.EmuHawk.Filters
protected IOSurfaceInfo DeclareOutput(SurfaceDisposition disposition = SurfaceDisposition.Unspecified, string channel = "default") { return DeclareIO(SurfaceDirection.Output, channel, disposition); } protected IOSurfaceInfo DeclareOutput(SurfaceDisposition disposition = SurfaceDisposition.Unspecified, string channel = "default") { return DeclareIO(SurfaceDirection.Output, channel, disposition); }
//TODO - why a different param order than DeclareOutput? //TODO - why a different param order than DeclareOutput?
protected RenderTarget GetTempTarget(int width, int height) { return FilterProgram.GetTempTarget(width, height); }
protected IOSurfaceInfo DeclareOutput(SurfaceState state, string channel = "default") protected IOSurfaceInfo DeclareOutput(SurfaceState state, string channel = "default")
{ {
var iosi = DeclareIO(SurfaceDirection.Output, channel, state.SurfaceDisposition); var iosi = DeclareIO(SurfaceDirection.Output, channel, state.SurfaceDisposition);

View File

@ -134,8 +134,11 @@ namespace BizHawk.Client.EmuHawk.Filters
PS = trials[bestIndex]; PS = trials[bestIndex];
} }
vw = (int)(PS.X * oldSourceWidth); //"fix problems with gameextrapadding in >1x window scales" (other edits were made, maybe theyre whats important)
vh = (int)(PS.Y * oldSourceHeight); //vw = (int)(PS.X * oldSourceWidth);
//vh = (int)(PS.Y * oldSourceHeight);
vw = (int)(PS.X * sourceWidth);
vh = (int)(PS.Y * sourceHeight);
widthScale = PS.X; widthScale = PS.X;
heightScale = PS.Y; heightScale = PS.Y;
} }
@ -186,6 +189,7 @@ namespace BizHawk.Client.EmuHawk.Filters
Size OutputSize, InputSize; Size OutputSize, InputSize;
public Size TextureSize, VirtualTextureSize; public Size TextureSize, VirtualTextureSize;
public int BackgroundColor; public int BackgroundColor;
public bool AutoPrescale;
public IGuiRenderer GuiRenderer; public IGuiRenderer GuiRenderer;
public bool Flip; public bool Flip;
public IGL GL; public IGL GL;
@ -283,6 +287,9 @@ namespace BizHawk.Client.EmuHawk.Filters
LL.vy += Padding.Top; LL.vy += Padding.Top;
} }
ContentSize = new Size(LL.vw,LL.vh); ContentSize = new Size(LL.vw,LL.vh);
if (InputSize == ContentSize)
IsNOP = true;
} }
public Size GetContentSize() { return ContentSize; } public Size GetContentSize() { return ContentSize; }
@ -327,9 +334,9 @@ namespace BizHawk.Client.EmuHawk.Filters
if (FilterOption == eFilterOption.Bicubic) if (FilterOption == eFilterOption.Bicubic)
{ {
//this was handled earlier by another filter
} }
GuiRenderer.Modelview.Translate(LL.vx, LL.vy); GuiRenderer.Modelview.Translate(LL.vx, LL.vy);
if (Flip) if (Flip)
{ {
@ -372,6 +379,61 @@ namespace BizHawk.Client.EmuHawk.Filters
} }
} }
public class AutoPrescaleFilter : BaseFilter
{
Size OutputSize, InputSize;
int XIS, YIS;
public override void Initialize()
{
DeclareInput(SurfaceDisposition.Texture);
}
public override void SetInputFormat(string channel, SurfaceState state)
{
//calculate integer scaling factors
XIS = OutputSize.Width / state.SurfaceFormat.Size.Width;
YIS = OutputSize.Height / state.SurfaceFormat.Size.Height;
OutputSize = state.SurfaceFormat.Size;
if (XIS <= 1 && YIS <= 1)
{
IsNOP = true;
}
else
{
OutputSize.Width *= XIS;
OutputSize.Height *= YIS;
}
var outState = new SurfaceState();
outState.SurfaceFormat = new SurfaceFormat(OutputSize);
outState.SurfaceDisposition = SurfaceDisposition.RenderTarget;
DeclareOutput(outState);
}
public override Size PresizeOutput(string channel, Size size)
{
OutputSize = size;
return base.PresizeOutput(channel, size);
}
public override Size PresizeInput(string channel, Size insize)
{
InputSize = insize;
return insize;
}
public override void Run()
{
FilterProgram.GuiRenderer.Begin(OutputSize); //hope this didnt change
FilterProgram.GuiRenderer.SetBlendState(FilterProgram.GL.BlendNoneCopy);
FilterProgram.GuiRenderer.Modelview.Scale(XIS,YIS);
FilterProgram.GuiRenderer.Draw(InputTexture);
FilterProgram.GuiRenderer.End();
}
}
public class LuaLayer : BaseFilter public class LuaLayer : BaseFilter
{ {
public override void Initialize() public override void Initialize()

View File

@ -36,7 +36,6 @@
this.lblUserFilterName = new System.Windows.Forms.Label(); this.lblUserFilterName = new System.Windows.Forms.Label();
this.btnSelectUserFilter = new System.Windows.Forms.Button(); this.btnSelectUserFilter = new System.Windows.Forms.Button();
this.rbUser = new System.Windows.Forms.RadioButton(); this.rbUser = new System.Windows.Forms.RadioButton();
this.tbScanlineIntensity = new BizHawk.Client.EmuHawk.TransparentTrackBar();
this.rbNone = new System.Windows.Forms.RadioButton(); this.rbNone = new System.Windows.Forms.RadioButton();
this.rbScanlines = new System.Windows.Forms.RadioButton(); this.rbScanlines = new System.Windows.Forms.RadioButton();
this.rbHq2x = new System.Windows.Forms.RadioButton(); this.rbHq2x = new System.Windows.Forms.RadioButton();
@ -92,11 +91,12 @@
this.cbStatusBarWindowed = new System.Windows.Forms.CheckBox(); this.cbStatusBarWindowed = new System.Windows.Forms.CheckBox();
this.label9 = new System.Windows.Forms.Label(); this.label9 = new System.Windows.Forms.Label();
this.cbMenuWindowed = new System.Windows.Forms.CheckBox(); this.cbMenuWindowed = new System.Windows.Forms.CheckBox();
this.trackbarFrameSizeWindowed = new BizHawk.Client.EmuHawk.TransparentTrackBar();
this.cbCaptionWindowed = new System.Windows.Forms.CheckBox(); this.cbCaptionWindowed = new System.Windows.Forms.CheckBox();
this.linkLabel1 = new System.Windows.Forms.LinkLabel(); this.linkLabel1 = new System.Windows.Forms.LinkLabel();
this.cbAutoPrescale = new System.Windows.Forms.CheckBox();
this.tbScanlineIntensity = new BizHawk.Client.EmuHawk.TransparentTrackBar();
this.trackbarFrameSizeWindowed = new BizHawk.Client.EmuHawk.TransparentTrackBar();
this.groupBox1.SuspendLayout(); this.groupBox1.SuspendLayout();
((System.ComponentModel.ISupportInitialize)(this.tbScanlineIntensity)).BeginInit();
this.grpFinalFilter.SuspendLayout(); this.grpFinalFilter.SuspendLayout();
this.grpARSelection.SuspendLayout(); this.grpARSelection.SuspendLayout();
this.tabControl1.SuspendLayout(); this.tabControl1.SuspendLayout();
@ -109,6 +109,7 @@
this.tabPage1.SuspendLayout(); this.tabPage1.SuspendLayout();
this.groupBox4.SuspendLayout(); this.groupBox4.SuspendLayout();
this.groupBox2.SuspendLayout(); this.groupBox2.SuspendLayout();
((System.ComponentModel.ISupportInitialize)(this.tbScanlineIntensity)).BeginInit();
((System.ComponentModel.ISupportInitialize)(this.trackbarFrameSizeWindowed)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.trackbarFrameSizeWindowed)).BeginInit();
this.SuspendLayout(); this.SuspendLayout();
// //
@ -116,7 +117,7 @@
// //
this.btnCancel.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right))); this.btnCancel.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
this.btnCancel.DialogResult = System.Windows.Forms.DialogResult.Cancel; this.btnCancel.DialogResult = System.Windows.Forms.DialogResult.Cancel;
this.btnCancel.Location = new System.Drawing.Point(360, 404); this.btnCancel.Location = new System.Drawing.Point(473, 339);
this.btnCancel.Name = "btnCancel"; this.btnCancel.Name = "btnCancel";
this.btnCancel.Size = new System.Drawing.Size(75, 23); this.btnCancel.Size = new System.Drawing.Size(75, 23);
this.btnCancel.TabIndex = 5; this.btnCancel.TabIndex = 5;
@ -126,7 +127,7 @@
// btnOk // btnOk
// //
this.btnOk.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right))); this.btnOk.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
this.btnOk.Location = new System.Drawing.Point(279, 404); this.btnOk.Location = new System.Drawing.Point(392, 339);
this.btnOk.Name = "btnOk"; this.btnOk.Name = "btnOk";
this.btnOk.Size = new System.Drawing.Size(75, 23); this.btnOk.Size = new System.Drawing.Size(75, 23);
this.btnOk.TabIndex = 4; this.btnOk.TabIndex = 4;
@ -144,7 +145,7 @@
this.groupBox1.Controls.Add(this.rbNone); this.groupBox1.Controls.Add(this.rbNone);
this.groupBox1.Controls.Add(this.rbScanlines); this.groupBox1.Controls.Add(this.rbScanlines);
this.groupBox1.Controls.Add(this.rbHq2x); this.groupBox1.Controls.Add(this.rbHq2x);
this.groupBox1.Location = new System.Drawing.Point(6, 6); this.groupBox1.Location = new System.Drawing.Point(6, 33);
this.groupBox1.Name = "groupBox1"; this.groupBox1.Name = "groupBox1";
this.groupBox1.Size = new System.Drawing.Size(193, 132); this.groupBox1.Size = new System.Drawing.Size(193, 132);
this.groupBox1.TabIndex = 7; this.groupBox1.TabIndex = 7;
@ -190,19 +191,6 @@
this.rbUser.Text = "User"; this.rbUser.Text = "User";
this.rbUser.UseVisualStyleBackColor = true; this.rbUser.UseVisualStyleBackColor = true;
// //
// tbScanlineIntensity
//
this.tbScanlineIntensity.LargeChange = 32;
this.tbScanlineIntensity.Location = new System.Drawing.Point(83, 55);
this.tbScanlineIntensity.Maximum = 256;
this.tbScanlineIntensity.Name = "tbScanlineIntensity";
this.tbScanlineIntensity.Size = new System.Drawing.Size(70, 42);
this.tbScanlineIntensity.TabIndex = 3;
this.tbScanlineIntensity.TickFrequency = 32;
this.tbScanlineIntensity.TickStyle = System.Windows.Forms.TickStyle.TopLeft;
this.tbScanlineIntensity.Scroll += new System.EventHandler(this.tbScanlineIntensity_Scroll);
this.tbScanlineIntensity.ValueChanged += new System.EventHandler(this.tbScanlineIntensity_Scroll);
//
// rbNone // rbNone
// //
this.rbNone.AutoSize = true; this.rbNone.AutoSize = true;
@ -239,7 +227,7 @@
// checkLetterbox // checkLetterbox
// //
this.checkLetterbox.AutoSize = true; this.checkLetterbox.AutoSize = true;
this.checkLetterbox.Location = new System.Drawing.Point(6, 148); this.checkLetterbox.Location = new System.Drawing.Point(209, 12);
this.checkLetterbox.Name = "checkLetterbox"; this.checkLetterbox.Name = "checkLetterbox";
this.checkLetterbox.Size = new System.Drawing.Size(173, 17); this.checkLetterbox.Size = new System.Drawing.Size(173, 17);
this.checkLetterbox.TabIndex = 8; this.checkLetterbox.TabIndex = 8;
@ -250,7 +238,7 @@
// checkPadInteger // checkPadInteger
// //
this.checkPadInteger.AutoSize = true; this.checkPadInteger.AutoSize = true;
this.checkPadInteger.Location = new System.Drawing.Point(15, 307); this.checkPadInteger.Location = new System.Drawing.Point(218, 171);
this.checkPadInteger.Name = "checkPadInteger"; this.checkPadInteger.Name = "checkPadInteger";
this.checkPadInteger.Size = new System.Drawing.Size(250, 17); this.checkPadInteger.Size = new System.Drawing.Size(250, 17);
this.checkPadInteger.TabIndex = 9; this.checkPadInteger.TabIndex = 9;
@ -263,9 +251,9 @@
this.grpFinalFilter.Controls.Add(this.rbFinalFilterBicubic); this.grpFinalFilter.Controls.Add(this.rbFinalFilterBicubic);
this.grpFinalFilter.Controls.Add(this.rbFinalFilterNone); this.grpFinalFilter.Controls.Add(this.rbFinalFilterNone);
this.grpFinalFilter.Controls.Add(this.rbFinalFilterBilinear); this.grpFinalFilter.Controls.Add(this.rbFinalFilterBilinear);
this.grpFinalFilter.Location = new System.Drawing.Point(205, 6); this.grpFinalFilter.Location = new System.Drawing.Point(6, 194);
this.grpFinalFilter.Name = "grpFinalFilter"; this.grpFinalFilter.Name = "grpFinalFilter";
this.grpFinalFilter.Size = new System.Drawing.Size(187, 97); this.grpFinalFilter.Size = new System.Drawing.Size(187, 90);
this.grpFinalFilter.TabIndex = 8; this.grpFinalFilter.TabIndex = 8;
this.grpFinalFilter.TabStop = false; this.grpFinalFilter.TabStop = false;
this.grpFinalFilter.Text = "Final Filter"; this.grpFinalFilter.Text = "Final Filter";
@ -273,7 +261,7 @@
// rbFinalFilterBicubic // rbFinalFilterBicubic
// //
this.rbFinalFilterBicubic.AutoSize = true; this.rbFinalFilterBicubic.AutoSize = true;
this.rbFinalFilterBicubic.Location = new System.Drawing.Point(6, 65); this.rbFinalFilterBicubic.Location = new System.Drawing.Point(6, 64);
this.rbFinalFilterBicubic.Name = "rbFinalFilterBicubic"; this.rbFinalFilterBicubic.Name = "rbFinalFilterBicubic";
this.rbFinalFilterBicubic.Size = new System.Drawing.Size(142, 17); this.rbFinalFilterBicubic.Size = new System.Drawing.Size(142, 17);
this.rbFinalFilterBicubic.TabIndex = 3; this.rbFinalFilterBicubic.TabIndex = 3;
@ -284,7 +272,7 @@
// rbFinalFilterNone // rbFinalFilterNone
// //
this.rbFinalFilterNone.AutoSize = true; this.rbFinalFilterNone.AutoSize = true;
this.rbFinalFilterNone.Location = new System.Drawing.Point(6, 19); this.rbFinalFilterNone.Location = new System.Drawing.Point(6, 18);
this.rbFinalFilterNone.Name = "rbFinalFilterNone"; this.rbFinalFilterNone.Name = "rbFinalFilterNone";
this.rbFinalFilterNone.Size = new System.Drawing.Size(51, 17); this.rbFinalFilterNone.Size = new System.Drawing.Size(51, 17);
this.rbFinalFilterNone.TabIndex = 2; this.rbFinalFilterNone.TabIndex = 2;
@ -295,7 +283,7 @@
// rbFinalFilterBilinear // rbFinalFilterBilinear
// //
this.rbFinalFilterBilinear.AutoSize = true; this.rbFinalFilterBilinear.AutoSize = true;
this.rbFinalFilterBilinear.Location = new System.Drawing.Point(6, 42); this.rbFinalFilterBilinear.Location = new System.Drawing.Point(6, 41);
this.rbFinalFilterBilinear.Name = "rbFinalFilterBilinear"; this.rbFinalFilterBilinear.Name = "rbFinalFilterBilinear";
this.rbFinalFilterBilinear.Size = new System.Drawing.Size(59, 17); this.rbFinalFilterBilinear.Size = new System.Drawing.Size(59, 17);
this.rbFinalFilterBilinear.TabIndex = 0; this.rbFinalFilterBilinear.TabIndex = 0;
@ -318,7 +306,7 @@
// rbUseSystem // rbUseSystem
// //
this.rbUseSystem.AutoSize = true; this.rbUseSystem.AutoSize = true;
this.rbUseSystem.Location = new System.Drawing.Point(26, 58); this.rbUseSystem.Location = new System.Drawing.Point(16, 58);
this.rbUseSystem.Name = "rbUseSystem"; this.rbUseSystem.Name = "rbUseSystem";
this.rbUseSystem.Size = new System.Drawing.Size(167, 17); this.rbUseSystem.Size = new System.Drawing.Size(167, 17);
this.rbUseSystem.TabIndex = 12; this.rbUseSystem.TabIndex = 12;
@ -340,16 +328,16 @@
this.grpARSelection.Controls.Add(this.rbUseCustom); this.grpARSelection.Controls.Add(this.rbUseCustom);
this.grpARSelection.Controls.Add(this.rbUseRaw); this.grpARSelection.Controls.Add(this.rbUseRaw);
this.grpARSelection.Controls.Add(this.rbUseSystem); this.grpARSelection.Controls.Add(this.rbUseSystem);
this.grpARSelection.Location = new System.Drawing.Point(15, 171); this.grpARSelection.Location = new System.Drawing.Point(218, 35);
this.grpARSelection.Name = "grpARSelection"; this.grpARSelection.Name = "grpARSelection";
this.grpARSelection.Size = new System.Drawing.Size(377, 130); this.grpARSelection.Size = new System.Drawing.Size(302, 130);
this.grpARSelection.TabIndex = 13; this.grpARSelection.TabIndex = 13;
this.grpARSelection.TabStop = false; this.grpARSelection.TabStop = false;
this.grpARSelection.Text = "Aspect Ratio Selection"; this.grpARSelection.Text = "Aspect Ratio Selection";
// //
// txtCustomARY // txtCustomARY
// //
this.txtCustomARY.Location = new System.Drawing.Point(230, 102); this.txtCustomARY.Location = new System.Drawing.Point(220, 102);
this.txtCustomARY.Name = "txtCustomARY"; this.txtCustomARY.Name = "txtCustomARY";
this.txtCustomARY.Size = new System.Drawing.Size(72, 20); this.txtCustomARY.Size = new System.Drawing.Size(72, 20);
this.txtCustomARY.TabIndex = 19; this.txtCustomARY.TabIndex = 19;
@ -357,7 +345,7 @@
// label12 // label12
// //
this.label12.AutoSize = true; this.label12.AutoSize = true;
this.label12.Location = new System.Drawing.Point(212, 107); this.label12.Location = new System.Drawing.Point(202, 107);
this.label12.Name = "label12"; this.label12.Name = "label12";
this.label12.Size = new System.Drawing.Size(10, 13); this.label12.Size = new System.Drawing.Size(10, 13);
this.label12.TabIndex = 17; this.label12.TabIndex = 17;
@ -365,7 +353,7 @@
// //
// txtCustomARX // txtCustomARX
// //
this.txtCustomARX.Location = new System.Drawing.Point(134, 102); this.txtCustomARX.Location = new System.Drawing.Point(124, 102);
this.txtCustomARX.Name = "txtCustomARX"; this.txtCustomARX.Name = "txtCustomARX";
this.txtCustomARX.Size = new System.Drawing.Size(72, 20); this.txtCustomARX.Size = new System.Drawing.Size(72, 20);
this.txtCustomARX.TabIndex = 18; this.txtCustomARX.TabIndex = 18;
@ -373,7 +361,7 @@
// rbUseCustomRatio // rbUseCustomRatio
// //
this.rbUseCustomRatio.AutoSize = true; this.rbUseCustomRatio.AutoSize = true;
this.rbUseCustomRatio.Location = new System.Drawing.Point(26, 103); this.rbUseCustomRatio.Location = new System.Drawing.Point(16, 103);
this.rbUseCustomRatio.Name = "rbUseCustomRatio"; this.rbUseCustomRatio.Name = "rbUseCustomRatio";
this.rbUseCustomRatio.Size = new System.Drawing.Size(102, 17); this.rbUseCustomRatio.Size = new System.Drawing.Size(102, 17);
this.rbUseCustomRatio.TabIndex = 16; this.rbUseCustomRatio.TabIndex = 16;
@ -384,7 +372,7 @@
// label4 // label4
// //
this.label4.AutoSize = true; this.label4.AutoSize = true;
this.label4.Location = new System.Drawing.Point(23, 41); this.label4.Location = new System.Drawing.Point(13, 41);
this.label4.Name = "label4"; this.label4.Name = "label4";
this.label4.Size = new System.Drawing.Size(257, 13); this.label4.Size = new System.Drawing.Size(257, 13);
this.label4.TabIndex = 12; this.label4.TabIndex = 12;
@ -392,7 +380,7 @@
// //
// txtCustomARHeight // txtCustomARHeight
// //
this.txtCustomARHeight.Location = new System.Drawing.Point(230, 79); this.txtCustomARHeight.Location = new System.Drawing.Point(220, 79);
this.txtCustomARHeight.Name = "txtCustomARHeight"; this.txtCustomARHeight.Name = "txtCustomARHeight";
this.txtCustomARHeight.Size = new System.Drawing.Size(72, 20); this.txtCustomARHeight.Size = new System.Drawing.Size(72, 20);
this.txtCustomARHeight.TabIndex = 15; this.txtCustomARHeight.TabIndex = 15;
@ -400,7 +388,7 @@
// label3 // label3
// //
this.label3.AutoSize = true; this.label3.AutoSize = true;
this.label3.Location = new System.Drawing.Point(212, 84); this.label3.Location = new System.Drawing.Point(202, 84);
this.label3.Name = "label3"; this.label3.Name = "label3";
this.label3.Size = new System.Drawing.Size(12, 13); this.label3.Size = new System.Drawing.Size(12, 13);
this.label3.TabIndex = 12; this.label3.TabIndex = 12;
@ -408,7 +396,7 @@
// //
// txtCustomARWidth // txtCustomARWidth
// //
this.txtCustomARWidth.Location = new System.Drawing.Point(134, 79); this.txtCustomARWidth.Location = new System.Drawing.Point(124, 79);
this.txtCustomARWidth.Name = "txtCustomARWidth"; this.txtCustomARWidth.Name = "txtCustomARWidth";
this.txtCustomARWidth.Size = new System.Drawing.Size(72, 20); this.txtCustomARWidth.Size = new System.Drawing.Size(72, 20);
this.txtCustomARWidth.TabIndex = 14; this.txtCustomARWidth.TabIndex = 14;
@ -416,7 +404,7 @@
// rbUseCustom // rbUseCustom
// //
this.rbUseCustom.AutoSize = true; this.rbUseCustom.AutoSize = true;
this.rbUseCustom.Location = new System.Drawing.Point(26, 80); this.rbUseCustom.Location = new System.Drawing.Point(16, 80);
this.rbUseCustom.Name = "rbUseCustom"; this.rbUseCustom.Name = "rbUseCustom";
this.rbUseCustom.Size = new System.Drawing.Size(105, 17); this.rbUseCustom.Size = new System.Drawing.Size(105, 17);
this.rbUseCustom.TabIndex = 13; this.rbUseCustom.TabIndex = 13;
@ -426,7 +414,7 @@
// //
// label2 // label2
// //
this.label2.Location = new System.Drawing.Point(3, 125); this.label2.Location = new System.Drawing.Point(6, 128);
this.label2.Name = "label2"; this.label2.Name = "label2";
this.label2.Size = new System.Drawing.Size(398, 27); this.label2.Size = new System.Drawing.Size(398, 27);
this.label2.TabIndex = 17; this.label2.TabIndex = 17;
@ -436,7 +424,7 @@
// checkSnowyNullEmulator // checkSnowyNullEmulator
// //
this.checkSnowyNullEmulator.AutoSize = true; this.checkSnowyNullEmulator.AutoSize = true;
this.checkSnowyNullEmulator.Location = new System.Drawing.Point(3, 105); this.checkSnowyNullEmulator.Location = new System.Drawing.Point(6, 108);
this.checkSnowyNullEmulator.Name = "checkSnowyNullEmulator"; this.checkSnowyNullEmulator.Name = "checkSnowyNullEmulator";
this.checkSnowyNullEmulator.Size = new System.Drawing.Size(159, 17); this.checkSnowyNullEmulator.Size = new System.Drawing.Size(159, 17);
this.checkSnowyNullEmulator.TabIndex = 16; this.checkSnowyNullEmulator.TabIndex = 16;
@ -447,7 +435,7 @@
// //
this.rbOpenGL.AutoSize = true; this.rbOpenGL.AutoSize = true;
this.rbOpenGL.Checked = true; this.rbOpenGL.Checked = true;
this.rbOpenGL.Location = new System.Drawing.Point(6, 80); this.rbOpenGL.Location = new System.Drawing.Point(6, 73);
this.rbOpenGL.Name = "rbOpenGL"; this.rbOpenGL.Name = "rbOpenGL";
this.rbOpenGL.Size = new System.Drawing.Size(65, 17); this.rbOpenGL.Size = new System.Drawing.Size(65, 17);
this.rbOpenGL.TabIndex = 3; this.rbOpenGL.TabIndex = 3;
@ -457,7 +445,7 @@
// //
// label5 // label5
// //
this.label5.Location = new System.Drawing.Point(21, 100); this.label5.Location = new System.Drawing.Point(21, 93);
this.label5.Name = "label5"; this.label5.Name = "label5";
this.label5.Size = new System.Drawing.Size(359, 47); this.label5.Size = new System.Drawing.Size(359, 47);
this.label5.TabIndex = 16; this.label5.TabIndex = 16;
@ -476,23 +464,24 @@
this.tabControl1.Location = new System.Drawing.Point(12, 12); this.tabControl1.Location = new System.Drawing.Point(12, 12);
this.tabControl1.Name = "tabControl1"; this.tabControl1.Name = "tabControl1";
this.tabControl1.SelectedIndex = 0; this.tabControl1.SelectedIndex = 0;
this.tabControl1.Size = new System.Drawing.Size(423, 382); this.tabControl1.Size = new System.Drawing.Size(536, 317);
this.tabControl1.TabIndex = 17; this.tabControl1.TabIndex = 17;
// //
// tpAR // tpAR
// //
this.tpAR.Controls.Add(this.cbAutoPrescale);
this.tpAR.Controls.Add(this.label11); this.tpAR.Controls.Add(this.label11);
this.tpAR.Controls.Add(this.label10);
this.tpAR.Controls.Add(this.nudPrescale);
this.tpAR.Controls.Add(this.groupBox1); this.tpAR.Controls.Add(this.groupBox1);
this.tpAR.Controls.Add(this.label10);
this.tpAR.Controls.Add(this.checkLetterbox); this.tpAR.Controls.Add(this.checkLetterbox);
this.tpAR.Controls.Add(this.nudPrescale);
this.tpAR.Controls.Add(this.checkPadInteger); this.tpAR.Controls.Add(this.checkPadInteger);
this.tpAR.Controls.Add(this.grpARSelection); this.tpAR.Controls.Add(this.grpARSelection);
this.tpAR.Controls.Add(this.grpFinalFilter); this.tpAR.Controls.Add(this.grpFinalFilter);
this.tpAR.Location = new System.Drawing.Point(4, 22); this.tpAR.Location = new System.Drawing.Point(4, 22);
this.tpAR.Name = "tpAR"; this.tpAR.Name = "tpAR";
this.tpAR.Padding = new System.Windows.Forms.Padding(3); this.tpAR.Padding = new System.Windows.Forms.Padding(3);
this.tpAR.Size = new System.Drawing.Size(415, 356); this.tpAR.Size = new System.Drawing.Size(528, 291);
this.tpAR.TabIndex = 0; this.tpAR.TabIndex = 0;
this.tpAR.Text = "Scaling & Filtering"; this.tpAR.Text = "Scaling & Filtering";
this.tpAR.UseVisualStyleBackColor = true; this.tpAR.UseVisualStyleBackColor = true;
@ -500,7 +489,7 @@
// label11 // label11
// //
this.label11.AutoSize = true; this.label11.AutoSize = true;
this.label11.Location = new System.Drawing.Point(307, 117); this.label11.Location = new System.Drawing.Point(140, 11);
this.label11.Name = "label11"; this.label11.Name = "label11";
this.label11.Size = new System.Drawing.Size(14, 13); this.label11.Size = new System.Drawing.Size(14, 13);
this.label11.TabIndex = 16; this.label11.TabIndex = 16;
@ -509,15 +498,15 @@
// label10 // label10
// //
this.label10.AutoSize = true; this.label10.AutoSize = true;
this.label10.Location = new System.Drawing.Point(208, 116); this.label10.Location = new System.Drawing.Point(7, 11);
this.label10.Name = "label10"; this.label10.Name = "label10";
this.label10.Size = new System.Drawing.Size(51, 13); this.label10.Size = new System.Drawing.Size(76, 13);
this.label10.TabIndex = 15; this.label10.TabIndex = 15;
this.label10.Text = "Prescale:"; this.label10.Text = "User Prescale:";
// //
// nudPrescale // nudPrescale
// //
this.nudPrescale.Location = new System.Drawing.Point(260, 113); this.nudPrescale.Location = new System.Drawing.Point(93, 7);
this.nudPrescale.Maximum = new decimal(new int[] { this.nudPrescale.Maximum = new decimal(new int[] {
16, 16,
0, 0,
@ -543,14 +532,14 @@
this.tpDispMethod.Controls.Add(this.groupBox3); this.tpDispMethod.Controls.Add(this.groupBox3);
this.tpDispMethod.Location = new System.Drawing.Point(4, 22); this.tpDispMethod.Location = new System.Drawing.Point(4, 22);
this.tpDispMethod.Name = "tpDispMethod"; this.tpDispMethod.Name = "tpDispMethod";
this.tpDispMethod.Size = new System.Drawing.Size(415, 356); this.tpDispMethod.Size = new System.Drawing.Size(528, 291);
this.tpDispMethod.TabIndex = 2; this.tpDispMethod.TabIndex = 2;
this.tpDispMethod.Text = "Display Method"; this.tpDispMethod.Text = "Display Method";
this.tpDispMethod.UseVisualStyleBackColor = true; this.tpDispMethod.UseVisualStyleBackColor = true;
// //
// label6 // label6
// //
this.label6.Location = new System.Drawing.Point(3, 227); this.label6.Location = new System.Drawing.Point(5, 229);
this.label6.Name = "label6"; this.label6.Name = "label6";
this.label6.Size = new System.Drawing.Size(359, 47); this.label6.Size = new System.Drawing.Size(359, 47);
this.label6.TabIndex = 18; this.label6.TabIndex = 18;
@ -564,7 +553,7 @@
this.groupBox3.Controls.Add(this.rbGDIPlus); this.groupBox3.Controls.Add(this.rbGDIPlus);
this.groupBox3.Controls.Add(this.label5); this.groupBox3.Controls.Add(this.label5);
this.groupBox3.Controls.Add(this.rbOpenGL); this.groupBox3.Controls.Add(this.rbOpenGL);
this.groupBox3.Location = new System.Drawing.Point(4, 3); this.groupBox3.Location = new System.Drawing.Point(6, 5);
this.groupBox3.Name = "groupBox3"; this.groupBox3.Name = "groupBox3";
this.groupBox3.Size = new System.Drawing.Size(389, 221); this.groupBox3.Size = new System.Drawing.Size(389, 221);
this.groupBox3.TabIndex = 16; this.groupBox3.TabIndex = 16;
@ -619,7 +608,7 @@
this.tpMisc.Controls.Add(this.checkSnowyNullEmulator); this.tpMisc.Controls.Add(this.checkSnowyNullEmulator);
this.tpMisc.Location = new System.Drawing.Point(4, 22); this.tpMisc.Location = new System.Drawing.Point(4, 22);
this.tpMisc.Name = "tpMisc"; this.tpMisc.Name = "tpMisc";
this.tpMisc.Size = new System.Drawing.Size(415, 356); this.tpMisc.Size = new System.Drawing.Size(528, 291);
this.tpMisc.TabIndex = 3; this.tpMisc.TabIndex = 3;
this.tpMisc.Text = "Misc"; this.tpMisc.Text = "Misc";
this.tpMisc.UseVisualStyleBackColor = true; this.tpMisc.UseVisualStyleBackColor = true;
@ -629,7 +618,7 @@
this.groupBox5.Controls.Add(this.rbDisplayAbsoluteZero); this.groupBox5.Controls.Add(this.rbDisplayAbsoluteZero);
this.groupBox5.Controls.Add(this.rbDisplayMinimal); this.groupBox5.Controls.Add(this.rbDisplayMinimal);
this.groupBox5.Controls.Add(this.rbDisplayFull); this.groupBox5.Controls.Add(this.rbDisplayFull);
this.groupBox5.Location = new System.Drawing.Point(3, 3); this.groupBox5.Location = new System.Drawing.Point(6, 6);
this.groupBox5.Name = "groupBox5"; this.groupBox5.Name = "groupBox5";
this.groupBox5.Size = new System.Drawing.Size(371, 96); this.groupBox5.Size = new System.Drawing.Size(371, 96);
this.groupBox5.TabIndex = 20; this.groupBox5.TabIndex = 20;
@ -678,7 +667,7 @@
this.tabPage1.Location = new System.Drawing.Point(4, 22); this.tabPage1.Location = new System.Drawing.Point(4, 22);
this.tabPage1.Name = "tabPage1"; this.tabPage1.Name = "tabPage1";
this.tabPage1.Padding = new System.Windows.Forms.Padding(3); this.tabPage1.Padding = new System.Windows.Forms.Padding(3);
this.tabPage1.Size = new System.Drawing.Size(415, 356); this.tabPage1.Size = new System.Drawing.Size(528, 291);
this.tabPage1.TabIndex = 4; this.tabPage1.TabIndex = 4;
this.tabPage1.Text = "Window"; this.tabPage1.Text = "Window";
this.tabPage1.UseVisualStyleBackColor = true; this.tabPage1.UseVisualStyleBackColor = true;
@ -808,17 +797,6 @@
this.cbMenuWindowed.Text = "Menu"; this.cbMenuWindowed.Text = "Menu";
this.cbMenuWindowed.UseVisualStyleBackColor = true; this.cbMenuWindowed.UseVisualStyleBackColor = true;
// //
// trackbarFrameSizeWindowed
//
this.trackbarFrameSizeWindowed.LargeChange = 1;
this.trackbarFrameSizeWindowed.Location = new System.Drawing.Point(6, 33);
this.trackbarFrameSizeWindowed.Maximum = 2;
this.trackbarFrameSizeWindowed.Name = "trackbarFrameSizeWindowed";
this.trackbarFrameSizeWindowed.Size = new System.Drawing.Size(99, 42);
this.trackbarFrameSizeWindowed.TabIndex = 21;
this.trackbarFrameSizeWindowed.Value = 1;
this.trackbarFrameSizeWindowed.ValueChanged += new System.EventHandler(this.trackbarFrameSizeWindowed_ValueChanged);
//
// cbCaptionWindowed // cbCaptionWindowed
// //
this.cbCaptionWindowed.AutoSize = true; this.cbCaptionWindowed.AutoSize = true;
@ -840,13 +818,47 @@
this.linkLabel1.Text = "Documentation"; this.linkLabel1.Text = "Documentation";
this.linkLabel1.LinkClicked += new System.Windows.Forms.LinkLabelLinkClickedEventHandler(this.linkLabel1_LinkClicked); this.linkLabel1.LinkClicked += new System.Windows.Forms.LinkLabelLinkClickedEventHandler(this.linkLabel1_LinkClicked);
// //
// cbAutoPrescale
//
this.cbAutoPrescale.AutoSize = true;
this.cbAutoPrescale.Location = new System.Drawing.Point(6, 171);
this.cbAutoPrescale.Name = "cbAutoPrescale";
this.cbAutoPrescale.Size = new System.Drawing.Size(92, 17);
this.cbAutoPrescale.TabIndex = 17;
this.cbAutoPrescale.Text = "Auto Prescale";
this.cbAutoPrescale.UseVisualStyleBackColor = true;
//
// tbScanlineIntensity
//
this.tbScanlineIntensity.LargeChange = 32;
this.tbScanlineIntensity.Location = new System.Drawing.Point(83, 55);
this.tbScanlineIntensity.Maximum = 256;
this.tbScanlineIntensity.Name = "tbScanlineIntensity";
this.tbScanlineIntensity.Size = new System.Drawing.Size(70, 42);
this.tbScanlineIntensity.TabIndex = 3;
this.tbScanlineIntensity.TickFrequency = 32;
this.tbScanlineIntensity.TickStyle = System.Windows.Forms.TickStyle.TopLeft;
this.tbScanlineIntensity.Scroll += new System.EventHandler(this.tbScanlineIntensity_Scroll);
this.tbScanlineIntensity.ValueChanged += new System.EventHandler(this.tbScanlineIntensity_Scroll);
//
// trackbarFrameSizeWindowed
//
this.trackbarFrameSizeWindowed.LargeChange = 1;
this.trackbarFrameSizeWindowed.Location = new System.Drawing.Point(6, 33);
this.trackbarFrameSizeWindowed.Maximum = 2;
this.trackbarFrameSizeWindowed.Name = "trackbarFrameSizeWindowed";
this.trackbarFrameSizeWindowed.Size = new System.Drawing.Size(99, 42);
this.trackbarFrameSizeWindowed.TabIndex = 21;
this.trackbarFrameSizeWindowed.Value = 1;
this.trackbarFrameSizeWindowed.ValueChanged += new System.EventHandler(this.trackbarFrameSizeWindowed_ValueChanged);
//
// DisplayConfigLite // DisplayConfigLite
// //
this.AcceptButton = this.btnOk; this.AcceptButton = this.btnOk;
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.CancelButton = this.btnCancel; this.CancelButton = this.btnCancel;
this.ClientSize = new System.Drawing.Size(451, 439); this.ClientSize = new System.Drawing.Size(564, 374);
this.Controls.Add(this.linkLabel1); this.Controls.Add(this.linkLabel1);
this.Controls.Add(this.tabControl1); this.Controls.Add(this.tabControl1);
this.Controls.Add(this.btnCancel); this.Controls.Add(this.btnCancel);
@ -857,7 +869,6 @@
this.Text = "Display Configuration"; this.Text = "Display Configuration";
this.groupBox1.ResumeLayout(false); this.groupBox1.ResumeLayout(false);
this.groupBox1.PerformLayout(); this.groupBox1.PerformLayout();
((System.ComponentModel.ISupportInitialize)(this.tbScanlineIntensity)).EndInit();
this.grpFinalFilter.ResumeLayout(false); this.grpFinalFilter.ResumeLayout(false);
this.grpFinalFilter.PerformLayout(); this.grpFinalFilter.PerformLayout();
this.grpARSelection.ResumeLayout(false); this.grpARSelection.ResumeLayout(false);
@ -879,6 +890,7 @@
this.groupBox4.PerformLayout(); this.groupBox4.PerformLayout();
this.groupBox2.ResumeLayout(false); this.groupBox2.ResumeLayout(false);
this.groupBox2.PerformLayout(); this.groupBox2.PerformLayout();
((System.ComponentModel.ISupportInitialize)(this.tbScanlineIntensity)).EndInit();
((System.ComponentModel.ISupportInitialize)(this.trackbarFrameSizeWindowed)).EndInit(); ((System.ComponentModel.ISupportInitialize)(this.trackbarFrameSizeWindowed)).EndInit();
this.ResumeLayout(false); this.ResumeLayout(false);
this.PerformLayout(); this.PerformLayout();
@ -953,5 +965,6 @@
private System.Windows.Forms.TextBox txtCustomARY; private System.Windows.Forms.TextBox txtCustomARY;
private System.Windows.Forms.Label label12; private System.Windows.Forms.Label label12;
private System.Windows.Forms.TextBox txtCustomARX; private System.Windows.Forms.TextBox txtCustomARX;
private System.Windows.Forms.CheckBox cbAutoPrescale;
} }
} }

View File

@ -38,6 +38,7 @@ namespace BizHawk.Client.EmuHawk.config
checkLetterbox.Checked = Global.Config.DispFixAspectRatio; checkLetterbox.Checked = Global.Config.DispFixAspectRatio;
checkPadInteger.Checked = Global.Config.DispFixScaleInteger; checkPadInteger.Checked = Global.Config.DispFixScaleInteger;
cbFullscreenHacks.Checked = Global.Config.DispFullscreenHacks; cbFullscreenHacks.Checked = Global.Config.DispFullscreenHacks;
cbAutoPrescale.Checked = Global.Config.DispAutoPrescale;
if (Global.Config.DispSpeedupFeatures == 2) rbDisplayFull.Checked = true; if (Global.Config.DispSpeedupFeatures == 2) rbDisplayFull.Checked = true;
if (Global.Config.DispSpeedupFeatures == 1) rbDisplayMinimal.Checked = true; if (Global.Config.DispSpeedupFeatures == 1) rbDisplayMinimal.Checked = true;
@ -115,6 +116,7 @@ namespace BizHawk.Client.EmuHawk.config
Global.Config.DispFixAspectRatio = checkLetterbox.Checked; Global.Config.DispFixAspectRatio = checkLetterbox.Checked;
Global.Config.DispFixScaleInteger = checkPadInteger.Checked; Global.Config.DispFixScaleInteger = checkPadInteger.Checked;
Global.Config.DispFullscreenHacks = cbFullscreenHacks.Checked; Global.Config.DispFullscreenHacks = cbFullscreenHacks.Checked;
Global.Config.DispAutoPrescale = cbAutoPrescale.Checked;
Global.Config.DispChrome_StatusBarWindowed = cbStatusBarWindowed.Checked; Global.Config.DispChrome_StatusBarWindowed = cbStatusBarWindowed.Checked;
Global.Config.DispChrome_CaptionWindowed = cbCaptionWindowed.Checked; Global.Config.DispChrome_CaptionWindowed = cbCaptionWindowed.Checked;