This commit is contained in:
Asnivor 2018-09-18 10:54:55 +01:00
commit a7386a52f0
10 changed files with 531 additions and 143 deletions

View File

@ -308,7 +308,7 @@ namespace BizHawk.Client.EmuHawk
public string DesiredExtension()
{
// this needs to interface with the codec token
return _token.Defaultext;
return _token.Extension;
}
public void SetDefaultVideoCodecToken()

View File

@ -28,133 +28,132 @@
/// </summary>
private void InitializeComponent()
{
this.label1 = new System.Windows.Forms.Label();
this.listBox1 = new System.Windows.Forms.ListBox();
this.label2 = new System.Windows.Forms.Label();
this.label3 = new System.Windows.Forms.Label();
this.label4 = new System.Windows.Forms.Label();
this.textBox1 = new System.Windows.Forms.TextBox();
this.button1 = new System.Windows.Forms.Button();
this.button2 = new System.Windows.Forms.Button();
this.label5 = new System.Windows.Forms.Label();
this.SuspendLayout();
//
// label1
//
this.label1.AutoSize = true;
this.label1.Location = new System.Drawing.Point(5, 5);
this.label1.Name = "label1";
this.label1.Size = new System.Drawing.Size(47, 13);
this.label1.TabIndex = 0;
this.label1.Text = "Formats:";
//
// listBox1
//
this.listBox1.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
this.label1 = new System.Windows.Forms.Label();
this.listBox1 = new System.Windows.Forms.ListBox();
this.label2 = new System.Windows.Forms.Label();
this.label3 = new System.Windows.Forms.Label();
this.label4 = new System.Windows.Forms.Label();
this.textBox1 = new System.Windows.Forms.TextBox();
this.button1 = new System.Windows.Forms.Button();
this.button2 = new System.Windows.Forms.Button();
this.label5 = new System.Windows.Forms.Label();
this.SuspendLayout();
//
// label1
//
this.label1.AutoSize = true;
this.label1.Location = new System.Drawing.Point(5, 5);
this.label1.Name = "label1";
this.label1.Size = new System.Drawing.Size(47, 13);
this.label1.TabIndex = 0;
this.label1.Text = "Formats:";
//
// listBox1
//
this.listBox1.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
| System.Windows.Forms.AnchorStyles.Left)
| System.Windows.Forms.AnchorStyles.Right)));
this.listBox1.FormattingEnabled = true;
this.listBox1.Location = new System.Drawing.Point(5, 23);
this.listBox1.Name = "listBox1";
this.listBox1.Size = new System.Drawing.Size(275, 147);
this.listBox1.TabIndex = 1;
this.listBox1.SelectedIndexChanged += new System.EventHandler(this.ListBox1_SelectedIndexChanged);
//
// label2
//
this.label2.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)));
this.label2.AutoSize = true;
this.label2.Location = new System.Drawing.Point(7, 176);
this.label2.Name = "label2";
this.label2.Size = new System.Drawing.Size(63, 13);
this.label2.TabIndex = 2;
this.label2.Text = "Description:";
//
// label3
//
this.label3.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)));
this.label3.AutoSize = true;
this.label3.Location = new System.Drawing.Point(6, 193);
this.label3.MaximumSize = new System.Drawing.Size(260, 0);
this.label3.Name = "label3";
this.label3.Size = new System.Drawing.Size(0, 13);
this.label3.TabIndex = 3;
//
// label4
//
this.label4.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)));
this.label4.AutoSize = true;
this.label4.Location = new System.Drawing.Point(10, 255);
this.label4.Name = "label4";
this.label4.Size = new System.Drawing.Size(57, 13);
this.label4.TabIndex = 4;
this.label4.Text = "Command:";
//
// textBox1
//
this.textBox1.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)
this.listBox1.FormattingEnabled = true;
this.listBox1.Location = new System.Drawing.Point(5, 23);
this.listBox1.Name = "listBox1";
this.listBox1.Size = new System.Drawing.Size(275, 160);
this.listBox1.TabIndex = 1;
this.listBox1.SelectedIndexChanged += new System.EventHandler(this.ListBox1_SelectedIndexChanged);
//
// label2
//
this.label2.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)));
this.label2.AutoSize = true;
this.label2.Location = new System.Drawing.Point(7, 189);
this.label2.Name = "label2";
this.label2.Size = new System.Drawing.Size(63, 13);
this.label2.TabIndex = 2;
this.label2.Text = "Description:";
//
// label3
//
this.label3.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)));
this.label3.AutoSize = true;
this.label3.Location = new System.Drawing.Point(6, 206);
this.label3.MaximumSize = new System.Drawing.Size(260, 0);
this.label3.Name = "label3";
this.label3.Size = new System.Drawing.Size(0, 13);
this.label3.TabIndex = 3;
//
// label4
//
this.label4.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)));
this.label4.AutoSize = true;
this.label4.Location = new System.Drawing.Point(10, 268);
this.label4.Name = "label4";
this.label4.Size = new System.Drawing.Size(57, 13);
this.label4.TabIndex = 4;
this.label4.Text = "Command:";
//
// textBox1
//
this.textBox1.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)
| System.Windows.Forms.AnchorStyles.Right)));
this.textBox1.Location = new System.Drawing.Point(8, 273);
this.textBox1.Name = "textBox1";
this.textBox1.ReadOnly = true;
this.textBox1.Size = new System.Drawing.Size(272, 20);
this.textBox1.TabIndex = 5;
//
// button1
//
this.button1.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
this.button1.DialogResult = System.Windows.Forms.DialogResult.OK;
this.button1.Location = new System.Drawing.Point(124, 314);
this.button1.Name = "button1";
this.button1.Size = new System.Drawing.Size(75, 23);
this.button1.TabIndex = 6;
this.button1.Text = "OK";
this.button1.UseVisualStyleBackColor = true;
//
// button2
//
this.button2.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
this.button2.DialogResult = System.Windows.Forms.DialogResult.Cancel;
this.button2.Location = new System.Drawing.Point(205, 314);
this.button2.Name = "button2";
this.button2.Size = new System.Drawing.Size(75, 23);
this.button2.TabIndex = 7;
this.button2.Text = "Cancel";
this.button2.UseVisualStyleBackColor = true;
//
// label5
//
this.label5.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
this.label5.AutoSize = true;
this.label5.Location = new System.Drawing.Point(159, 176);
this.label5.Name = "label5";
this.label5.Size = new System.Drawing.Size(56, 13);
this.label5.TabIndex = 8;
this.label5.Text = "Extension:";
//
// FFmpegWriterForm
//
this.AcceptButton = this.button1;
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.CancelButton = this.button2;
this.ClientSize = new System.Drawing.Size(292, 349);
this.Controls.Add(this.label5);
this.Controls.Add(this.button2);
this.Controls.Add(this.button1);
this.Controls.Add(this.textBox1);
this.Controls.Add(this.label4);
this.Controls.Add(this.label3);
this.Controls.Add(this.label2);
this.Controls.Add(this.listBox1);
this.Controls.Add(this.label1);
this.MinimumSize = new System.Drawing.Size(300, 360);
this.Name = "FFmpegWriterForm";
this.ShowIcon = false;
this.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent;
this.Text = "Choose Video Format";
this.ResumeLayout(false);
this.PerformLayout();
this.textBox1.Location = new System.Drawing.Point(8, 286);
this.textBox1.Name = "textBox1";
this.textBox1.Size = new System.Drawing.Size(272, 20);
this.textBox1.TabIndex = 5;
//
// button1
//
this.button1.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
this.button1.DialogResult = System.Windows.Forms.DialogResult.OK;
this.button1.Location = new System.Drawing.Point(124, 327);
this.button1.Name = "button1";
this.button1.Size = new System.Drawing.Size(75, 23);
this.button1.TabIndex = 6;
this.button1.Text = "OK";
this.button1.UseVisualStyleBackColor = true;
//
// button2
//
this.button2.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
this.button2.DialogResult = System.Windows.Forms.DialogResult.Cancel;
this.button2.Location = new System.Drawing.Point(205, 327);
this.button2.Name = "button2";
this.button2.Size = new System.Drawing.Size(75, 23);
this.button2.TabIndex = 7;
this.button2.Text = "Cancel";
this.button2.UseVisualStyleBackColor = true;
//
// label5
//
this.label5.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
this.label5.AutoSize = true;
this.label5.Location = new System.Drawing.Point(159, 189);
this.label5.Name = "label5";
this.label5.Size = new System.Drawing.Size(56, 13);
this.label5.TabIndex = 8;
this.label5.Text = "Extension:";
//
// FFmpegWriterForm
//
this.AcceptButton = this.button1;
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.CancelButton = this.button2;
this.ClientSize = new System.Drawing.Size(292, 362);
this.Controls.Add(this.label5);
this.Controls.Add(this.button2);
this.Controls.Add(this.button1);
this.Controls.Add(this.textBox1);
this.Controls.Add(this.label4);
this.Controls.Add(this.label3);
this.Controls.Add(this.label2);
this.Controls.Add(this.listBox1);
this.Controls.Add(this.label1);
this.MinimumSize = new System.Drawing.Size(300, 360);
this.Name = "FFmpegWriterForm";
this.ShowIcon = false;
this.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent;
this.Text = "Choose Video Format";
this.ResumeLayout(false);
this.PerformLayout();
}

View File

@ -38,7 +38,7 @@ namespace BizHawk.Client.EmuHawk
/// <summary>
/// Gets the default file extension
/// </summary>
public string Defaultext { get; }
public string Extension { get; set; }
/// <summary>
/// get a list of canned presets
@ -48,8 +48,10 @@ namespace BizHawk.Client.EmuHawk
{
return new[]
{
new FormatPreset("AVI Lossless", "Lossless AVC video and uncompressed audio in an AVI container. High speed and compression, compatible with AVISource().",
"-c:a pcm_s16le -c:v libx264rgb -qp 0 -preset ultrafast -g 30 -pix_fmt rgb24 -f avi", false, "avi"),
new FormatPreset("AVI Lossless AVC", "Lossless AVC video and uncompressed audio in an AVI container. High speed and compression, compatible with AVISource().",
"-c:a pcm_s16le -c:v libx264rgb -qp 0 -preset ultrafast -g 10 -pix_fmt rgb24 -f avi", false, "avi"),
new FormatPreset("AVI Lossless FFV1", "Lossless FFV1 video and uncompressed audio in an AVI container. Compatible with AVISource(), if ffmpeg based decoder is installed.",
"-c:a pcm_s16le -c:v ffv1 -pix_fmt bgr0 -level 1 -g 1 -coder 1 -context 1 -f avi", false, "avi"),
new FormatPreset("AVI Uncompressed", "Uncompressed video and audio in an AVI container. Very large, don't use!",
"-c:a pcm_s16le -c:v rawvideo -f avi", false, "avi"),
new FormatPreset("Matroska Lossless", "Lossless AVC video and uncompressed audio in a Matroska container.",
@ -104,7 +106,19 @@ namespace BizHawk.Client.EmuHawk
{
}
private FormatPreset(string name, string desc, string commandline, bool custom, string defaultext)
public void DeduceFormat(string commandline)
{
string formatkey = "-f ";
Extension = commandline.Substring(commandline.IndexOf(formatkey) + formatkey.Length);
// are there other formats that don't match their file extensions?
if (Extension == "matroska")
{
Extension = "mkv";
}
}
private FormatPreset(string name, string desc, string commandline, bool custom, string ext)
{
Name = name;
Desc = desc;
@ -114,7 +128,7 @@ namespace BizHawk.Client.EmuHawk
? Global.Config.FFmpegCustomCommand
: commandline;
Defaultext = defaultext;
DeduceFormat(Commandline);
}
}
@ -128,11 +142,9 @@ namespace BizHawk.Client.EmuHawk
if (listBox1.SelectedIndex != -1)
{
var f = (FormatPreset)listBox1.SelectedItem;
label5.Text = "Extension: " + f.Defaultext;
label5.Text = "Extension: " + f.Extension;
label3.Text = f.Desc;
textBox1.Text = f.Commandline;
textBox1.ReadOnly = !f.Custom;
}
}
@ -163,8 +175,11 @@ namespace BizHawk.Client.EmuHawk
Global.Config.FFmpegFormat = ret.ToString();
if (ret.Custom)
{
ret.Commandline = dlg.textBox1.Text;
Global.Config.FFmpegCustomCommand = dlg.textBox1.Text;
ret.Commandline =
Global.Config.FFmpegCustomCommand =
dlg.textBox1.Text;
ret.DeduceFormat(ret.Commandline);
}
}

View File

@ -614,13 +614,14 @@ namespace BizHawk.Client.EmuHawk
if (!job.simulate && !job.offscreen)
{
GLManager.Activate(CR_GraphicsControl);
}
if (job.chain_outsize.Width == 0 || job.chain_outsize.Height == 0)
{
//this has to be a NOP, because lots of stuff will malfunction on a 0-sized viewport
UpdateSourceDrawingWork(job); //but we still need to do this, because of vsync
return null;
if (job.chain_outsize.Width == 0 || job.chain_outsize.Height == 0)
{
//this has to be a NOP, because lots of stuff will malfunction on a 0-sized viewport
if (CurrentFilterProgram != null)
UpdateSourceDrawingWork(job); //but we still need to do this, because of vsync
return null;
}
}
IVideoProvider videoProvider = job.videoProvider;

View File

@ -48,6 +48,7 @@
this.GLideN64Tab = new System.Windows.Forms.TabPage();
this.tabControl3 = new System.Windows.Forms.TabControl();
this.tabPage5 = new System.Windows.Forms.TabPage();
this.GLideN64_FXAA = new System.Windows.Forms.CheckBox();
this.label88 = new System.Windows.Forms.Label();
this.GLideN64_GammaCorrectionLevel = new System.Windows.Forms.TextBox();
this.GLideN64_ForceGammaCorrection = new System.Windows.Forms.CheckBox();
@ -361,6 +362,25 @@
this.SaveButton = new System.Windows.Forms.Button();
this.CancelBT = new System.Windows.Forms.Button();
this.toolTip1 = new System.Windows.Forms.ToolTip(this.components);
this.GLideN64_ShowInternalResolution = new System.Windows.Forms.CheckBox();
this.GLideN64_ShowRenderingResolution = new System.Windows.Forms.CheckBox();
this.GLideN64_EnableOverscan = new System.Windows.Forms.CheckBox();
this.label90 = new System.Windows.Forms.Label();
this.label91 = new System.Windows.Forms.Label();
this.label92 = new System.Windows.Forms.Label();
this.label93 = new System.Windows.Forms.Label();
this.GLideN64_OverscanNtscTop = new System.Windows.Forms.TextBox();
this.GLideN64_OverscanNtscBottom = new System.Windows.Forms.TextBox();
this.GLideN64_OverscanNtscLeft = new System.Windows.Forms.TextBox();
this.GLideN64_OverscanNtscRight = new System.Windows.Forms.TextBox();
this.label94 = new System.Windows.Forms.Label();
this.label95 = new System.Windows.Forms.Label();
this.label96 = new System.Windows.Forms.Label();
this.label97 = new System.Windows.Forms.Label();
this.GLideN64_OverscanPalTop = new System.Windows.Forms.TextBox();
this.GLideN64_OverscanPalBottom = new System.Windows.Forms.TextBox();
this.GLideN64_OverscanPalLeft = new System.Windows.Forms.TextBox();
this.GLideN64_OverscanPalRight = new System.Windows.Forms.TextBox();
this.N64plugintabcontrol.SuspendLayout();
this.N64vpluginglobaltab.SuspendLayout();
this.GLideN64Tab.SuspendLayout();
@ -518,7 +538,7 @@
this.label47.AutoSize = true;
this.label47.Location = new System.Drawing.Point(10, 115);
this.label47.Name = "label47";
this.label47.Size = new System.Drawing.Size(275, 13);
this.label47.Size = new System.Drawing.Size(319, 13);
this.label47.TabIndex = 14;
this.label47.Text = "(GLideN64 is the newest pluging and has the highest compatibility)";
//
@ -604,6 +624,9 @@
//
// tabPage5
//
this.tabPage5.Controls.Add(this.GLideN64_ShowRenderingResolution);
this.tabPage5.Controls.Add(this.GLideN64_ShowInternalResolution);
this.tabPage5.Controls.Add(this.GLideN64_FXAA);
this.tabPage5.Controls.Add(this.label88);
this.tabPage5.Controls.Add(this.GLideN64_GammaCorrectionLevel);
this.tabPage5.Controls.Add(this.GLideN64_ForceGammaCorrection);
@ -635,6 +658,16 @@
this.tabPage5.Text = "General";
this.tabPage5.UseVisualStyleBackColor = true;
//
// GLideN64_FXAA
//
this.GLideN64_FXAA.AutoSize = true;
this.GLideN64_FXAA.Location = new System.Drawing.Point(6, 237);
this.GLideN64_FXAA.Name = "GLideN64_FXAA";
this.GLideN64_FXAA.Size = new System.Drawing.Size(53, 17);
this.GLideN64_FXAA.TabIndex = 79;
this.GLideN64_FXAA.Text = "FXAA";
this.GLideN64_FXAA.UseVisualStyleBackColor = true;
//
// label88
//
this.label88.AutoSize = true;
@ -1235,6 +1268,23 @@
//
// tabPage7
//
this.tabPage7.Controls.Add(this.GLideN64_OverscanPalRight);
this.tabPage7.Controls.Add(this.GLideN64_OverscanNtscRight);
this.tabPage7.Controls.Add(this.GLideN64_OverscanPalLeft);
this.tabPage7.Controls.Add(this.GLideN64_OverscanNtscLeft);
this.tabPage7.Controls.Add(this.GLideN64_OverscanPalBottom);
this.tabPage7.Controls.Add(this.GLideN64_OverscanNtscBottom);
this.tabPage7.Controls.Add(this.GLideN64_OverscanPalTop);
this.tabPage7.Controls.Add(this.label97);
this.tabPage7.Controls.Add(this.GLideN64_OverscanNtscTop);
this.tabPage7.Controls.Add(this.label96);
this.tabPage7.Controls.Add(this.label93);
this.tabPage7.Controls.Add(this.label95);
this.tabPage7.Controls.Add(this.label92);
this.tabPage7.Controls.Add(this.label94);
this.tabPage7.Controls.Add(this.label91);
this.tabPage7.Controls.Add(this.label90);
this.tabPage7.Controls.Add(this.GLideN64_EnableOverscan);
this.tabPage7.Controls.Add(this.label89);
this.tabPage7.Controls.Add(this.GLideN64_UseNativeResolutionFactor);
this.tabPage7.Controls.Add(this.GLideN64_DisableFBInfo);
@ -4382,6 +4432,165 @@
this.toolTip1.ReshowDelay = 100;
this.toolTip1.ToolTipIcon = System.Windows.Forms.ToolTipIcon.Info;
//
// GLideN64_ShowInternalResolution
//
this.GLideN64_ShowInternalResolution.AutoSize = true;
this.GLideN64_ShowInternalResolution.Location = new System.Drawing.Point(309, 210);
this.GLideN64_ShowInternalResolution.Name = "GLideN64_ShowInternalResolution";
this.GLideN64_ShowInternalResolution.Size = new System.Drawing.Size(144, 17);
this.GLideN64_ShowInternalResolution.TabIndex = 80;
this.GLideN64_ShowInternalResolution.Text = "Show Internal Resolution";
this.GLideN64_ShowInternalResolution.UseVisualStyleBackColor = true;
//
// GLideN64_ShowRenderingResolution
//
this.GLideN64_ShowRenderingResolution.AutoSize = true;
this.GLideN64_ShowRenderingResolution.Location = new System.Drawing.Point(309, 234);
this.GLideN64_ShowRenderingResolution.Name = "GLideN64_ShowRenderingResolution";
this.GLideN64_ShowRenderingResolution.Size = new System.Drawing.Size(158, 17);
this.GLideN64_ShowRenderingResolution.TabIndex = 81;
this.GLideN64_ShowRenderingResolution.Text = "Show Rendering Resolution";
this.GLideN64_ShowRenderingResolution.UseVisualStyleBackColor = true;
//
// GLideN64_EnableOverscan
//
this.GLideN64_EnableOverscan.AutoSize = true;
this.GLideN64_EnableOverscan.Location = new System.Drawing.Point(293, 171);
this.GLideN64_EnableOverscan.Name = "GLideN64_EnableOverscan";
this.GLideN64_EnableOverscan.Size = new System.Drawing.Size(108, 17);
this.GLideN64_EnableOverscan.TabIndex = 79;
this.GLideN64_EnableOverscan.Text = "Enable Overscan";
this.GLideN64_EnableOverscan.UseVisualStyleBackColor = true;
this.GLideN64_EnableOverscan.CheckedChanged += new System.EventHandler(this.GLideN64_EnableOverscan_CheckedChanged);
//
// label90
//
this.label90.AutoSize = true;
this.label90.Location = new System.Drawing.Point(290, 201);
this.label90.Name = "label90";
this.label90.Size = new System.Drawing.Size(58, 13);
this.label90.TabIndex = 80;
this.label90.Text = "NTSC Top";
//
// label91
//
this.label91.AutoSize = true;
this.label91.Location = new System.Drawing.Point(290, 224);
this.label91.Name = "label91";
this.label91.Size = new System.Drawing.Size(72, 13);
this.label91.TabIndex = 81;
this.label91.Text = "NTSC Bottom";
//
// label92
//
this.label92.AutoSize = true;
this.label92.Location = new System.Drawing.Point(290, 247);
this.label92.Name = "label92";
this.label92.Size = new System.Drawing.Size(57, 13);
this.label92.TabIndex = 82;
this.label92.Text = "NTSC Left";
//
// label93
//
this.label93.AutoSize = true;
this.label93.Location = new System.Drawing.Point(290, 269);
this.label93.Name = "label93";
this.label93.Size = new System.Drawing.Size(64, 13);
this.label93.TabIndex = 83;
this.label93.Text = "NTSC Right";
//
// GLideN64_OverscanNtscTop
//
this.GLideN64_OverscanNtscTop.Location = new System.Drawing.Point(368, 198);
this.GLideN64_OverscanNtscTop.Name = "GLideN64_OverscanNtscTop";
this.GLideN64_OverscanNtscTop.Size = new System.Drawing.Size(42, 20);
this.GLideN64_OverscanNtscTop.TabIndex = 84;
//
// GLideN64_OverscanNtscBottom
//
this.GLideN64_OverscanNtscBottom.Location = new System.Drawing.Point(368, 221);
this.GLideN64_OverscanNtscBottom.Name = "GLideN64_OverscanNtscBottom";
this.GLideN64_OverscanNtscBottom.Size = new System.Drawing.Size(42, 20);
this.GLideN64_OverscanNtscBottom.TabIndex = 85;
//
// GLideN64_OverscanNtscLeft
//
this.GLideN64_OverscanNtscLeft.Location = new System.Drawing.Point(368, 244);
this.GLideN64_OverscanNtscLeft.Name = "GLideN64_OverscanNtscLeft";
this.GLideN64_OverscanNtscLeft.Size = new System.Drawing.Size(42, 20);
this.GLideN64_OverscanNtscLeft.TabIndex = 86;
//
// GLideN64_OverscanNtscRight
//
this.GLideN64_OverscanNtscRight.Location = new System.Drawing.Point(368, 266);
this.GLideN64_OverscanNtscRight.Name = "GLideN64_OverscanNtscRight";
this.GLideN64_OverscanNtscRight.Size = new System.Drawing.Size(42, 20);
this.GLideN64_OverscanNtscRight.TabIndex = 87;
//
// label94
//
this.label94.AutoSize = true;
this.label94.Location = new System.Drawing.Point(448, 201);
this.label94.Name = "label94";
this.label94.Size = new System.Drawing.Size(49, 13);
this.label94.TabIndex = 80;
this.label94.Text = "PAL Top";
//
// label95
//
this.label95.AutoSize = true;
this.label95.Location = new System.Drawing.Point(448, 224);
this.label95.Name = "label95";
this.label95.Size = new System.Drawing.Size(63, 13);
this.label95.TabIndex = 81;
this.label95.Text = "PAL Bottom";
//
// label96
//
this.label96.AutoSize = true;
this.label96.Location = new System.Drawing.Point(448, 247);
this.label96.Name = "label96";
this.label96.Size = new System.Drawing.Size(48, 13);
this.label96.TabIndex = 82;
this.label96.Text = "PAL Left";
//
// label97
//
this.label97.AutoSize = true;
this.label97.Location = new System.Drawing.Point(448, 269);
this.label97.Name = "label97";
this.label97.Size = new System.Drawing.Size(55, 13);
this.label97.TabIndex = 83;
this.label97.Text = "PAL Right";
//
// GLideN64_OverscanPalTop
//
this.GLideN64_OverscanPalTop.Location = new System.Drawing.Point(517, 198);
this.GLideN64_OverscanPalTop.Name = "GLideN64_OverscanPalTop";
this.GLideN64_OverscanPalTop.Size = new System.Drawing.Size(42, 20);
this.GLideN64_OverscanPalTop.TabIndex = 84;
//
// GLideN64_OverscanPalBottom
//
this.GLideN64_OverscanPalBottom.Location = new System.Drawing.Point(517, 221);
this.GLideN64_OverscanPalBottom.Name = "GLideN64_OverscanPalBottom";
this.GLideN64_OverscanPalBottom.Size = new System.Drawing.Size(42, 20);
this.GLideN64_OverscanPalBottom.TabIndex = 85;
//
// GLideN64_OverscanPalLeft
//
this.GLideN64_OverscanPalLeft.Location = new System.Drawing.Point(517, 244);
this.GLideN64_OverscanPalLeft.Name = "GLideN64_OverscanPalLeft";
this.GLideN64_OverscanPalLeft.Size = new System.Drawing.Size(42, 20);
this.GLideN64_OverscanPalLeft.TabIndex = 86;
//
// GLideN64_OverscanPalRight
//
this.GLideN64_OverscanPalRight.Location = new System.Drawing.Point(517, 266);
this.GLideN64_OverscanPalRight.Name = "GLideN64_OverscanPalRight";
this.GLideN64_OverscanPalRight.Size = new System.Drawing.Size(42, 20);
this.GLideN64_OverscanPalRight.TabIndex = 87;
//
// N64VideoPluginconfig
//
this.AcceptButton = this.SaveButton;
@ -4775,5 +4984,25 @@
private System.Windows.Forms.TextBox GLideN64_GammaCorrectionLevel;
private System.Windows.Forms.Label label89;
private System.Windows.Forms.TextBox GLideN64_UseNativeResolutionFactor;
private System.Windows.Forms.CheckBox GLideN64_FXAA;
private System.Windows.Forms.CheckBox GLideN64_ShowRenderingResolution;
private System.Windows.Forms.CheckBox GLideN64_ShowInternalResolution;
private System.Windows.Forms.CheckBox GLideN64_EnableOverscan;
private System.Windows.Forms.TextBox GLideN64_OverscanPalRight;
private System.Windows.Forms.TextBox GLideN64_OverscanNtscRight;
private System.Windows.Forms.TextBox GLideN64_OverscanPalLeft;
private System.Windows.Forms.TextBox GLideN64_OverscanNtscLeft;
private System.Windows.Forms.TextBox GLideN64_OverscanPalBottom;
private System.Windows.Forms.TextBox GLideN64_OverscanNtscBottom;
private System.Windows.Forms.TextBox GLideN64_OverscanPalTop;
private System.Windows.Forms.Label label97;
private System.Windows.Forms.TextBox GLideN64_OverscanNtscTop;
private System.Windows.Forms.Label label96;
private System.Windows.Forms.Label label93;
private System.Windows.Forms.Label label95;
private System.Windows.Forms.Label label92;
private System.Windows.Forms.Label label94;
private System.Windows.Forms.Label label91;
private System.Windows.Forms.Label label90;
}
}

View File

@ -408,6 +408,9 @@ namespace BizHawk.Client.EmuHawk
_ss.GLideN64Plugin.CacheSize = GLideN64_CacheSize.Text.IsSigned()
? int.Parse(GLideN64_CacheSize.Text)
: 500;
_ss.GLideN64Plugin.ShowInternalResolution = GLideN64_ShowInternalResolution.Checked;
_ss.GLideN64Plugin.ShowRenderingResolution = GLideN64_ShowRenderingResolution.Checked;
_ss.GLideN64Plugin.FXAA = GLideN64_FXAA.Checked;
_ss.GLideN64Plugin.EnableNoise = GLideN64_EnableNoise.Checked;
_ss.GLideN64Plugin.EnableLOD = GLideN64_EnableLOD.Checked;
_ss.GLideN64Plugin.EnableHWLighting = GLideN64_HWLighting.Checked;
@ -453,6 +456,32 @@ namespace BizHawk.Client.EmuHawk
? float.Parse(GLideN64_GammaCorrectionLevel.Text)
: 2.0f;
_ss.GLideN64Plugin.EnableOverscan = GLideN64_EnableOverscan.Checked;
_ss.GLideN64Plugin.OverscanNtscTop = GLideN64_OverscanNtscTop.Text.IsSigned()
? int.Parse(GLideN64_OverscanNtscTop.Text)
: 0;
_ss.GLideN64Plugin.OverscanNtscBottom = GLideN64_OverscanNtscBottom.Text.IsSigned()
? int.Parse(GLideN64_OverscanNtscBottom.Text)
: 0;
_ss.GLideN64Plugin.OverscanNtscLeft = GLideN64_OverscanNtscLeft.Text.IsSigned()
? int.Parse(GLideN64_OverscanNtscLeft.Text)
: 0;
_ss.GLideN64Plugin.OverscanNtscRight = GLideN64_OverscanNtscRight.Text.IsSigned()
? int.Parse(GLideN64_OverscanNtscRight.Text)
: 0;
_ss.GLideN64Plugin.OverscanPalTop = GLideN64_OverscanPalTop.Text.IsSigned()
? int.Parse(GLideN64_OverscanPalTop.Text)
: 0;
_ss.GLideN64Plugin.OverscanPalBottom = GLideN64_OverscanPalBottom.Text.IsSigned()
? int.Parse(GLideN64_OverscanPalBottom.Text)
: 0;
_ss.GLideN64Plugin.OverscanPalLeft = GLideN64_OverscanPalLeft.Text.IsSigned()
? int.Parse(GLideN64_OverscanPalLeft.Text)
: 0;
_ss.GLideN64Plugin.OverscanPalRight = GLideN64_OverscanPalRight.Text.IsSigned()
? int.Parse(GLideN64_OverscanPalRight.Text)
: 0;
_ss.GLideN64Plugin.EnableN64DepthCompare = GLideN64_EnableN64DepthCompare.Checked;
_ss.GLideN64Plugin.EnableCopyColorToRDRAM = GLideN64_EnableCopyColorToRDRAM.SelectedItem
.ToString()
@ -748,6 +777,9 @@ namespace BizHawk.Client.EmuHawk
.PopulateFromEnum<N64SyncSettings.N64GLideN64PluginSettings.bilinearFilteringMode>(_ss.GLideN64Plugin.bilinearMode);
GLideN64_MaxAnisotropy.Checked = _ss.GLideN64Plugin.MaxAnisotropy;
GLideN64_CacheSize.Text = _ss.GLideN64Plugin.CacheSize.ToString();
GLideN64_ShowInternalResolution.Checked = _ss.GLideN64Plugin.ShowInternalResolution;
GLideN64_ShowRenderingResolution.Checked = _ss.GLideN64Plugin.ShowRenderingResolution;
GLideN64_FXAA.Checked = _ss.GLideN64Plugin.FXAA;
GLideN64_EnableNoise.Checked = _ss.GLideN64Plugin.EnableNoise;
GLideN64_EnableLOD.Checked = _ss.GLideN64Plugin.EnableLOD;
GLideN64_HWLighting.Checked = _ss.GLideN64Plugin.EnableHWLighting;
@ -785,6 +817,27 @@ namespace BizHawk.Client.EmuHawk
GLideN64_ForceGammaCorrection.Checked = _ss.GLideN64Plugin.ForceGammaCorrection;
GLideN64_GammaCorrectionLevel.Text = _ss.GLideN64Plugin.GammaCorrectionLevel.ToString();
GLideN64_OverscanNtscTop.Enabled =
GLideN64_OverscanNtscBottom.Enabled =
GLideN64_OverscanNtscLeft.Enabled =
GLideN64_OverscanNtscRight.Enabled =
GLideN64_OverscanPalTop.Enabled =
GLideN64_OverscanPalBottom.Enabled =
GLideN64_OverscanPalLeft.Enabled =
GLideN64_OverscanPalRight.Enabled =
GLideN64_EnableOverscan.Checked =
_ss.GLideN64Plugin.EnableOverscan =
GLideN64_EnableOverscan.Enabled =
false;
GLideN64_OverscanNtscTop.Text = _ss.GLideN64Plugin.OverscanNtscTop.ToString();
GLideN64_OverscanNtscBottom.Text = _ss.GLideN64Plugin.OverscanNtscBottom.ToString();
GLideN64_OverscanNtscLeft.Text = _ss.GLideN64Plugin.OverscanNtscLeft.ToString();
GLideN64_OverscanNtscRight.Text = _ss.GLideN64Plugin.OverscanNtscRight.ToString();
GLideN64_OverscanPalTop.Text = _ss.GLideN64Plugin.OverscanPalTop.ToString();
GLideN64_OverscanPalBottom.Text = _ss.GLideN64Plugin.OverscanPalBottom.ToString();
GLideN64_OverscanPalLeft.Text = _ss.GLideN64Plugin.OverscanPalLeft.ToString();
GLideN64_OverscanPalRight.Text = _ss.GLideN64Plugin.OverscanPalRight.ToString();
UpdateGLideN64HacksSection();
if (!_ss.GLideN64Plugin.UseDefaultHacks)
{
@ -1094,6 +1147,19 @@ namespace BizHawk.Client.EmuHawk
GLideN64_EnableCopyAuxiliaryToRDRAM.Enabled = val;
}
private void GLideN64_EnableOverscan_CheckedChanged(object sender, EventArgs e)
{
GLideN64_OverscanNtscTop.Enabled =
GLideN64_OverscanNtscBottom.Enabled =
GLideN64_OverscanNtscLeft.Enabled =
GLideN64_OverscanNtscRight.Enabled =
GLideN64_OverscanPalTop.Enabled =
GLideN64_OverscanPalBottom.Enabled =
GLideN64_OverscanPalLeft.Enabled =
GLideN64_OverscanPalRight.Enabled =
GLideN64_EnableOverscan.Checked;
}
private void GlideUseDefaultHacks1_CheckedChanged(object sender, EventArgs e)
{
GlideUseDefaultHacks2.Checked = GlideUseDefaultHacks1.Checked;

View File

@ -120,6 +120,9 @@
<metadata name="toolTip1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>17, 17</value>
</metadata>
<metadata name="toolTip1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>17, 17</value>
</metadata>
<data name="AnisotropicFiltering_LB.ToolTip" xml:space="preserve">
<value>Enable/Disable Anisotropic Filtering for Mipmapping (0=no filtering, 2-16=quality).
This is uneffective if Mipmapping is 0.
@ -133,6 +136,9 @@ This is uneffective if Mipmapping is 0.
If the given value is to high to be supported by your graphic card, the value will be
the highest value your graphic card can support. Better result with Trilinear filtering</value>
</data>
<metadata name="$this.TrayHeight" type="System.Int32, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>36</value>
</metadata>
<assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<data name="$this.Icon" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>

View File

@ -21,6 +21,9 @@ namespace BizHawk.Emulation.Cores.Nintendo.N64
bilinearMode = bilinearFilteringMode.Standard;
MaxAnisotropy = false;
CacheSize = 8000;
ShowInternalResolution = false;
ShowRenderingResolution = false;
FXAA = false;
EnableNoise = true;
EnableLOD = true;
EnableHWLighting = false;
@ -58,6 +61,15 @@ namespace BizHawk.Emulation.Cores.Nintendo.N64
blurStrength = 20;
ForceGammaCorrection = false;
GammaCorrectionLevel = 2.0f;
EnableOverscan = false;
OverscanNtscTop = 0;
OverscanNtscBottom = 0;
OverscanNtscLeft = 0;
OverscanNtscRight = 0;
OverscanPalTop = 0;
OverscanPalBottom = 0;
OverscanPalLeft = 0;
OverscanPalRight = 0;
}
public bool UseDefaultHacks { get; set; }
@ -133,6 +145,21 @@ namespace BizHawk.Emulation.Cores.Nintendo.N64
[Description("Size of texture cache in megabytes. Good value is VRAM*3/4")]
public int CacheSize { get; set; }
[DefaultValue(false)]
[DisplayName("Show Internal Resolution")]
[Description("Show internal resolution.")]
public bool ShowInternalResolution { get; set; }
[DefaultValue(false)]
[DisplayName("Show Rendering Resolution")]
[Description("Show rendering resolution.")]
public bool ShowRenderingResolution { get; set; }
[DefaultValue(false)]
[DisplayName("FXAA")]
[Description("Enable Fast Approximate Anti-Aliasing.")]
public bool FXAA { get; set; }
[DefaultValue(true)]
[DisplayName("Color noise emulation")]
[Description("Enable color noise emulation.")]
@ -200,6 +227,51 @@ namespace BizHawk.Emulation.Cores.Nintendo.N64
[Description("Enable N64 depth compare instead of OpenGL standard one. Experimental.")]
public bool EnableN64DepthCompare { get; set; }
[DefaultValue(false)]
[DisplayName("Enable Overscan")]
[Description("Enable resulted image crop by Overscan.")]
public bool EnableOverscan { get; set; }
[DefaultValue(0)]
[DisplayName("Overscan NTSC Top")]
[Description("NTSC mode. Top bound of Overscan.")]
public int OverscanNtscTop { get; set; }
[DefaultValue(0)]
[DisplayName("Overscan NTSC Bottom")]
[Description("NTSC mode. Bottom bound of Overscan.")]
public int OverscanNtscBottom { get; set; }
[DefaultValue(0)]
[DisplayName("Overscan NTSC Left")]
[Description("NTSC mode. Left bound of Overscan.")]
public int OverscanNtscLeft { get; set; }
[DefaultValue(0)]
[DisplayName("Overscan NTSC Right")]
[Description("NTSC mode. Right bound of Overscan.")]
public int OverscanNtscRight { get; set; }
[DefaultValue(0)]
[DisplayName("Overscan PAL Top")]
[Description("PAL mode. Top bound of Overscan.")]
public int OverscanPalTop { get; set; }
[DefaultValue(0)]
[DisplayName("Overscan PAL Bottom")]
[Description("PAL mode. Bottom bound of Overscan.")]
public int OverscanPalBottom { get; set; }
[DefaultValue(0)]
[DisplayName("Overscan PAL Left")]
[Description("PAL mode. Left bound of Overscan.")]
public int OverscanPalLeft { get; set; }
[DefaultValue(0)]
[DisplayName("Overscan PAL Right")]
[Description("PAL mode. Right bound of Overscan.")]
public int OverscanPalRight { get; set; }
[DefaultValue(true)]
[DisplayName("FB Info")]
[Description("Disable buffers read/write with FBInfo. Use for games, which do not work with FBInfo.")]

@ -1 +1 @@
Subproject commit fec7309dc945e7c37f707a1f8e96d6e4bff9c63d
Subproject commit e222e0cb22b4bc9844d76f82de0af279dd812829