diff --git a/BizHawk.MultiClient/Config.cs b/BizHawk.MultiClient/Config.cs index 6aed0dc658..fedd02a980 100644 --- a/BizHawk.MultiClient/Config.cs +++ b/BizHawk.MultiClient/Config.cs @@ -2119,59 +2119,59 @@ namespace BizHawk.MultiClient return dictionary; } - public int wfmode; - public bool wireframe; - public int card_id; - public bool flame_corona; - public int ucode; - public bool autodetect_ucode; - public bool motionblur; - public bool fb_read_always; - public bool unk_as_red; - public bool filter_cache; - public bool fast_crc; - public bool disable_auxbuf; - public bool fbo; - public bool noglsl; - public bool noditheredalpha; - public int tex_filter; - public bool fb_render; - public bool wrap_big_tex; - public bool use_sts1_only; - public bool soft_depth_compare; - public bool PPL; - public bool fb_optimize_write; - public bool fb_optimize_texrect; - public bool increase_texrect_edge; - public bool increase_primdepth; - public bool fb_ignore_previous; - public bool fb_ignore_aux_copy; - public bool fb_hires_buf_clear; - public bool force_microcheck; - public bool force_depth_compare; - public bool fog; - public bool fillcolor_fix; - public bool fb_smart; - public bool fb_read_alpha; - public bool fb_get_info; - public bool fb_hires; - public bool fb_clear; - public bool detect_cpu_write; - public bool decrease_fillrect_edge; - public bool buff_clear; - public bool alt_tex_size; - public bool UseDefaultHacks; - public int enable_hacks_for_game; - public int swapmode; - public int stipple_pattern; - public int stipple_mode; - public int scale_y; - public int scale_x; - public int offset_y; - public int offset_x; - public int lodmode; - public int fix_tex_coord; - public int filtering; - public int depth_bias; + public int wfmode = 1; + public bool wireframe = false; + public int card_id = 0; + public bool flame_corona = false; + public int ucode = 2; + public bool autodetect_ucode = true; + public bool motionblur = false; + public bool fb_read_always = false; + public bool unk_as_red = false; + public bool filter_cache = false; + public bool fast_crc = false; + public bool disable_auxbuf = false; + public bool fbo = false; + public bool noglsl = true; + public bool noditheredalpha = true; + public int tex_filter = 0; + public bool fb_render = false; + public bool wrap_big_tex = false; + public bool use_sts1_only = false; + public bool soft_depth_compare = false; + public bool PPL = false; + public bool fb_optimize_write = false; + public bool fb_optimize_texrect = true; + public bool increase_texrect_edge = false; + public bool increase_primdepth = false; + public bool fb_ignore_previous = false; + public bool fb_ignore_aux_copy = false; + public bool fb_hires_buf_clear = true; + public bool force_microcheck = false; + public bool force_depth_compare = false; + public bool fog = true; + public bool fillcolor_fix = false; + public bool fb_smart = false; + public bool fb_read_alpha = false; + public bool fb_get_info = false; + public bool fb_hires = true; + public bool fb_clear = false; + public bool detect_cpu_write = false; + public bool decrease_fillrect_edge = false; + public bool buff_clear = true; + public bool alt_tex_size = false; + public bool UseDefaultHacks = true; + public int enable_hacks_for_game = 0; + public int swapmode = 1; + public int stipple_pattern = 1041204192; + public int stipple_mode = 2; + public int scale_y = 100000; + public int scale_x = 100000; + public int offset_y = 0; + public int offset_x = 0; + public int lodmode = 0; + public int fix_tex_coord = 0; + public int filtering = 1; + public int depth_bias = 20; } } \ No newline at end of file diff --git a/BizHawk.MultiClient/N64tools/N64VideoPluginconfig.Designer.cs b/BizHawk.MultiClient/N64tools/N64VideoPluginconfig.Designer.cs index b8acd7a686..89883be4c8 100644 --- a/BizHawk.MultiClient/N64tools/N64VideoPluginconfig.Designer.cs +++ b/BizHawk.MultiClient/N64tools/N64VideoPluginconfig.Designer.cs @@ -174,7 +174,6 @@ this.Glide_fillcolor_fix = new System.Windows.Forms.CheckBox(); this.Glide_fb_smart = new System.Windows.Forms.CheckBox(); this.Glide_fb_read_alpha = new System.Windows.Forms.CheckBox(); - this.Glide_fb_get_info = new System.Windows.Forms.CheckBox(); this.Glide_fb_hires = new System.Windows.Forms.CheckBox(); this.Glide_fb_clear = new System.Windows.Forms.CheckBox(); this.Glide_detect_cpu_write = new System.Windows.Forms.CheckBox(); @@ -191,14 +190,6 @@ this.Glide_stipple_pattern = new System.Windows.Forms.TextBox(); this.label41 = new System.Windows.Forms.Label(); this.Glide_stipple_mode = new System.Windows.Forms.TextBox(); - this.label39 = new System.Windows.Forms.Label(); - this.Glide_scale_y = new System.Windows.Forms.TextBox(); - this.label40 = new System.Windows.Forms.Label(); - this.Glide_scale_x = new System.Windows.Forms.TextBox(); - this.label38 = new System.Windows.Forms.Label(); - this.Glide_offset_y = new System.Windows.Forms.TextBox(); - this.label37 = new System.Windows.Forms.Label(); - this.Glide_offset_x = new System.Windows.Forms.TextBox(); this.label36 = new System.Windows.Forms.Label(); this.Glide_lodmode = new System.Windows.Forms.ComboBox(); this.label35 = new System.Windows.Forms.Label(); @@ -211,6 +202,15 @@ this.button1 = new System.Windows.Forms.Button(); this.CancelBT = new System.Windows.Forms.Button(); this.toolTip1 = new System.Windows.Forms.ToolTip(this.components); + this.Glide_fb_get_info = new System.Windows.Forms.CheckBox(); + this.label39 = new System.Windows.Forms.Label(); + this.Glide_scale_y = new System.Windows.Forms.TextBox(); + this.label40 = new System.Windows.Forms.Label(); + this.Glide_scale_x = new System.Windows.Forms.TextBox(); + this.label38 = new System.Windows.Forms.Label(); + this.Glide_offset_y = new System.Windows.Forms.TextBox(); + this.label37 = new System.Windows.Forms.Label(); + this.Glide_offset_x = new System.Windows.Forms.TextBox(); this.N64plugintabcontrol.SuspendLayout(); this.N64vpluginglobaltab.SuspendLayout(); this.RiceTabPage.SuspendLayout(); @@ -1584,6 +1584,15 @@ // // Glide64General // + this.Glide64General.Controls.Add(this.label39); + this.Glide64General.Controls.Add(this.Glide_scale_y); + this.Glide64General.Controls.Add(this.label40); + this.Glide64General.Controls.Add(this.Glide_scale_x); + this.Glide64General.Controls.Add(this.label38); + this.Glide64General.Controls.Add(this.Glide_offset_y); + this.Glide64General.Controls.Add(this.label37); + this.Glide64General.Controls.Add(this.Glide_offset_x); + this.Glide64General.Controls.Add(this.Glide_fb_get_info); this.Glide64General.Controls.Add(this.Glide_disable_auxbuf); this.Glide64General.Controls.Add(this.Glide_fbo); this.Glide64General.Controls.Add(this.Glide_noglsl); @@ -1860,7 +1869,6 @@ this.GlidePerGameHacks1.Controls.Add(this.Glide_fillcolor_fix); this.GlidePerGameHacks1.Controls.Add(this.Glide_fb_smart); this.GlidePerGameHacks1.Controls.Add(this.Glide_fb_read_alpha); - this.GlidePerGameHacks1.Controls.Add(this.Glide_fb_get_info); this.GlidePerGameHacks1.Controls.Add(this.Glide_fb_hires); this.GlidePerGameHacks1.Controls.Add(this.Glide_fb_clear); this.GlidePerGameHacks1.Controls.Add(this.Glide_detect_cpu_write); @@ -2046,16 +2054,6 @@ this.Glide_fb_read_alpha.Text = "Framebuffer read alpha"; this.Glide_fb_read_alpha.UseVisualStyleBackColor = true; // - // Glide_fb_get_info - // - this.Glide_fb_get_info.AutoSize = true; - this.Glide_fb_get_info.Location = new System.Drawing.Point(6, 177); - this.Glide_fb_get_info.Name = "Glide_fb_get_info"; - this.Glide_fb_get_info.Size = new System.Drawing.Size(119, 17); - this.Glide_fb_get_info.TabIndex = 16; - this.Glide_fb_get_info.Text = "Get framebuffer info"; - this.Glide_fb_get_info.UseVisualStyleBackColor = true; - // // Glide_fb_hires // this.Glide_fb_hires.AutoSize = true; @@ -2125,6 +2123,7 @@ this.GlideUseDefaultHacks1.TabIndex = 2; this.GlideUseDefaultHacks1.Text = "Use defaults for current game"; this.GlideUseDefaultHacks1.UseVisualStyleBackColor = true; + this.GlideUseDefaultHacks1.CheckedChanged += new System.EventHandler(this.GlideUseDefaultHacks1_CheckedChanged); // // GlidePerGameHacks2 // @@ -2136,14 +2135,6 @@ this.GlidePerGameHacks2.Controls.Add(this.Glide_stipple_pattern); this.GlidePerGameHacks2.Controls.Add(this.label41); this.GlidePerGameHacks2.Controls.Add(this.Glide_stipple_mode); - this.GlidePerGameHacks2.Controls.Add(this.label39); - this.GlidePerGameHacks2.Controls.Add(this.Glide_scale_y); - this.GlidePerGameHacks2.Controls.Add(this.label40); - this.GlidePerGameHacks2.Controls.Add(this.Glide_scale_x); - this.GlidePerGameHacks2.Controls.Add(this.label38); - this.GlidePerGameHacks2.Controls.Add(this.Glide_offset_y); - this.GlidePerGameHacks2.Controls.Add(this.label37); - this.GlidePerGameHacks2.Controls.Add(this.Glide_offset_x); this.GlidePerGameHacks2.Controls.Add(this.label36); this.GlidePerGameHacks2.Controls.Add(this.Glide_lodmode); this.GlidePerGameHacks2.Controls.Add(this.label35); @@ -2179,7 +2170,6 @@ "Bomberman64", "Diddy Kong Racing", "Tonic Trouble", - "PPL", "All-Star Baseball", "Doraemon 2", "Space Invaders", @@ -2254,71 +2244,6 @@ this.Glide_stipple_mode.Size = new System.Drawing.Size(36, 20); this.Glide_stipple_mode.TabIndex = 35; // - // label39 - // - this.label39.AutoSize = true; - this.label39.Location = new System.Drawing.Point(3, 223); - this.label39.Name = "label39"; - this.label39.Size = new System.Drawing.Size(47, 13); - this.label39.TabIndex = 34; - this.label39.Text = "Scale Y:"; - // - // Glide_scale_y - // - this.Glide_scale_y.Location = new System.Drawing.Point(92, 220); - this.Glide_scale_y.Name = "Glide_scale_y"; - this.Glide_scale_y.Size = new System.Drawing.Size(36, 20); - this.Glide_scale_y.TabIndex = 33; - // - // label40 - // - this.label40.AutoSize = true; - this.label40.ForeColor = System.Drawing.SystemColors.ControlText; - this.label40.Location = new System.Drawing.Point(3, 197); - this.label40.Name = "label40"; - this.label40.Size = new System.Drawing.Size(47, 13); - this.label40.TabIndex = 32; - this.label40.Text = "Scale X:"; - // - // Glide_scale_x - // - this.Glide_scale_x.Location = new System.Drawing.Point(92, 194); - this.Glide_scale_x.Name = "Glide_scale_x"; - this.Glide_scale_x.Size = new System.Drawing.Size(36, 20); - this.Glide_scale_x.TabIndex = 31; - // - // label38 - // - this.label38.AutoSize = true; - this.label38.Location = new System.Drawing.Point(3, 171); - this.label38.Name = "label38"; - this.label38.Size = new System.Drawing.Size(48, 13); - this.label38.TabIndex = 30; - this.label38.Text = "Offset Y:"; - // - // Glide_offset_y - // - this.Glide_offset_y.Location = new System.Drawing.Point(92, 168); - this.Glide_offset_y.Name = "Glide_offset_y"; - this.Glide_offset_y.Size = new System.Drawing.Size(36, 20); - this.Glide_offset_y.TabIndex = 29; - // - // label37 - // - this.label37.AutoSize = true; - this.label37.Location = new System.Drawing.Point(3, 145); - this.label37.Name = "label37"; - this.label37.Size = new System.Drawing.Size(48, 13); - this.label37.TabIndex = 28; - this.label37.Text = "Offset X:"; - // - // Glide_offset_x - // - this.Glide_offset_x.Location = new System.Drawing.Point(92, 142); - this.Glide_offset_x.Name = "Glide_offset_x"; - this.Glide_offset_x.Size = new System.Drawing.Size(36, 20); - this.Glide_offset_x.TabIndex = 27; - // // label36 // this.label36.AutoSize = true; @@ -2404,6 +2329,7 @@ this.GlideUseDefaultHacks2.TabIndex = 3; this.GlideUseDefaultHacks2.Text = "Use defaults for current game"; this.GlideUseDefaultHacks2.UseVisualStyleBackColor = true; + this.GlideUseDefaultHacks2.CheckedChanged += new System.EventHandler(this.GlideUseDefaultHacks2_CheckedChanged); // // button1 // @@ -2433,6 +2359,81 @@ this.toolTip1.ReshowDelay = 100; this.toolTip1.ToolTipIcon = System.Windows.Forms.ToolTipIcon.Info; // + // Glide_fb_get_info + // + this.Glide_fb_get_info.AutoSize = true; + this.Glide_fb_get_info.Location = new System.Drawing.Point(9, 278); + this.Glide_fb_get_info.Name = "Glide_fb_get_info"; + this.Glide_fb_get_info.Size = new System.Drawing.Size(119, 17); + this.Glide_fb_get_info.TabIndex = 23; + this.Glide_fb_get_info.Text = "Get framebuffer info"; + this.Glide_fb_get_info.UseVisualStyleBackColor = true; + // + // label39 + // + this.label39.AutoSize = true; + this.label39.Location = new System.Drawing.Point(386, 265); + this.label39.Name = "label39"; + this.label39.Size = new System.Drawing.Size(47, 13); + this.label39.TabIndex = 42; + this.label39.Text = "Scale Y:"; + // + // Glide_scale_y + // + this.Glide_scale_y.Location = new System.Drawing.Point(475, 262); + this.Glide_scale_y.Name = "Glide_scale_y"; + this.Glide_scale_y.Size = new System.Drawing.Size(36, 20); + this.Glide_scale_y.TabIndex = 41; + // + // label40 + // + this.label40.AutoSize = true; + this.label40.ForeColor = System.Drawing.SystemColors.ControlText; + this.label40.Location = new System.Drawing.Point(386, 239); + this.label40.Name = "label40"; + this.label40.Size = new System.Drawing.Size(47, 13); + this.label40.TabIndex = 40; + this.label40.Text = "Scale X:"; + // + // Glide_scale_x + // + this.Glide_scale_x.Location = new System.Drawing.Point(475, 236); + this.Glide_scale_x.Name = "Glide_scale_x"; + this.Glide_scale_x.Size = new System.Drawing.Size(36, 20); + this.Glide_scale_x.TabIndex = 39; + // + // label38 + // + this.label38.AutoSize = true; + this.label38.Location = new System.Drawing.Point(386, 213); + this.label38.Name = "label38"; + this.label38.Size = new System.Drawing.Size(48, 13); + this.label38.TabIndex = 38; + this.label38.Text = "Offset Y:"; + // + // Glide_offset_y + // + this.Glide_offset_y.Location = new System.Drawing.Point(475, 210); + this.Glide_offset_y.Name = "Glide_offset_y"; + this.Glide_offset_y.Size = new System.Drawing.Size(36, 20); + this.Glide_offset_y.TabIndex = 37; + // + // label37 + // + this.label37.AutoSize = true; + this.label37.Location = new System.Drawing.Point(386, 187); + this.label37.Name = "label37"; + this.label37.Size = new System.Drawing.Size(48, 13); + this.label37.TabIndex = 36; + this.label37.Text = "Offset X:"; + // + // Glide_offset_x + // + this.Glide_offset_x.Location = new System.Drawing.Point(475, 184); + this.Glide_offset_x.Name = "Glide_offset_x"; + this.Glide_offset_x.Size = new System.Drawing.Size(36, 20); + this.Glide_offset_x.TabIndex = 35; + // // N64VideoPluginconfig // this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); @@ -2622,7 +2623,6 @@ private System.Windows.Forms.CheckBox Glide_fillcolor_fix; private System.Windows.Forms.CheckBox Glide_fb_smart; private System.Windows.Forms.CheckBox Glide_fb_read_alpha; - private System.Windows.Forms.CheckBox Glide_fb_get_info; private System.Windows.Forms.CheckBox Glide_fb_hires; private System.Windows.Forms.CheckBox Glide_fb_clear; private System.Windows.Forms.CheckBox Glide_detect_cpu_write; @@ -2639,14 +2639,6 @@ private System.Windows.Forms.TextBox Glide_stipple_pattern; private System.Windows.Forms.Label label41; private System.Windows.Forms.TextBox Glide_stipple_mode; - private System.Windows.Forms.Label label39; - private System.Windows.Forms.TextBox Glide_scale_y; - private System.Windows.Forms.Label label40; - private System.Windows.Forms.TextBox Glide_scale_x; - private System.Windows.Forms.Label label38; - private System.Windows.Forms.TextBox Glide_offset_y; - private System.Windows.Forms.Label label37; - private System.Windows.Forms.TextBox Glide_offset_x; private System.Windows.Forms.Label label36; private System.Windows.Forms.ComboBox Glide_lodmode; private System.Windows.Forms.Label label35; @@ -2656,5 +2648,14 @@ private System.Windows.Forms.Label label33; private System.Windows.Forms.TextBox Glide_depth_bias; private System.Windows.Forms.CheckBox GlideUseDefaultHacks2; + private System.Windows.Forms.CheckBox Glide_fb_get_info; + private System.Windows.Forms.Label label39; + private System.Windows.Forms.TextBox Glide_scale_y; + private System.Windows.Forms.Label label40; + private System.Windows.Forms.TextBox Glide_scale_x; + private System.Windows.Forms.Label label38; + private System.Windows.Forms.TextBox Glide_offset_y; + private System.Windows.Forms.Label label37; + private System.Windows.Forms.TextBox Glide_offset_x; } } \ No newline at end of file diff --git a/BizHawk.MultiClient/N64tools/N64VideoPluginconfig.cs b/BizHawk.MultiClient/N64tools/N64VideoPluginconfig.cs index 0f857502f4..2b2ccc2819 100644 --- a/BizHawk.MultiClient/N64tools/N64VideoPluginconfig.cs +++ b/BizHawk.MultiClient/N64tools/N64VideoPluginconfig.cs @@ -221,7 +221,7 @@ namespace BizHawk.MultiClient } Glide_autodetect_ucode.Checked = Global.Config.GlidePlugin.autodetect_ucode; - Glide_ucode.Text = Global.Config.GlidePlugin.ucode.ToString(); + Glide_ucode.SelectedIndex = Global.Config.GlidePlugin.ucode; Glide_flame_corona.Checked = Global.Config.GlidePlugin.flame_corona; Glide_card_id.SelectedIndex = Global.Config.GlidePlugin.card_id; Glide_tex_filter.SelectedIndex = Global.Config.GlidePlugin.tex_filter; @@ -237,46 +237,52 @@ namespace BizHawk.MultiClient Glide_noglsl.Checked = Global.Config.GlidePlugin.noglsl; Glide_fbo.Checked = Global.Config.GlidePlugin.fbo; Glide_disable_auxbuf.Checked = Global.Config.GlidePlugin.disable_auxbuf; - - GlideUseDefaultHacks1.Checked = Global.Config.GlidePlugin.UseDefaultHacks; - Glide_alt_tex_size.Checked = Global.Config.GlidePlugin.alt_tex_size; - Glide_buff_clear.Checked = Global.Config.GlidePlugin.buff_clear; - Glide_decrease_fillrect_edge.Checked = Global.Config.GlidePlugin.decrease_fillrect_edge; - Glide_detect_cpu_write.Checked = Global.Config.GlidePlugin.detect_cpu_write; - Glide_fb_clear.Checked = Global.Config.GlidePlugin.fb_clear; - Glide_fb_hires.Checked = Global.Config.GlidePlugin.fb_hires; Glide_fb_get_info.Checked = Global.Config.GlidePlugin.fb_get_info; - Glide_fb_read_alpha.Checked = Global.Config.GlidePlugin.fb_read_alpha; - Glide_fb_smart.Checked = Global.Config.GlidePlugin.fb_smart; - Glide_fillcolor_fix.Checked = Global.Config.GlidePlugin.fillcolor_fix; - Glide_fog.Checked = Global.Config.GlidePlugin.fog; - Glide_force_depth_compare.Checked = Global.Config.GlidePlugin.force_depth_compare; - Glide_force_microcheck.Checked = Global.Config.GlidePlugin.force_microcheck; - Glide_fb_hires_buf_clear.Checked = Global.Config.GlidePlugin.fb_hires_buf_clear; - Glide_fb_ignore_aux_copy.Checked = Global.Config.GlidePlugin.fb_ignore_aux_copy; - Glide_fb_ignore_previous.Checked = Global.Config.GlidePlugin.fb_ignore_previous; - Glide_increase_primdepth.Checked = Global.Config.GlidePlugin.increase_primdepth; - Glide_increase_texrect_edge.Checked = Global.Config.GlidePlugin.increase_texrect_edge; - Glide_fb_optimize_texrect.Checked = Global.Config.GlidePlugin.fb_optimize_texrect; - Glide_fb_optimize_write.Checked = Global.Config.GlidePlugin.fb_optimize_write; - Glide_PPL.Checked = Global.Config.GlidePlugin.PPL; - Glide_soft_depth_compare.Checked = Global.Config.GlidePlugin.soft_depth_compare; - Glide_use_sts1_only.Checked = Global.Config.GlidePlugin.use_sts1_only; - Glide_wrap_big_tex.Checked = Global.Config.GlidePlugin.wrap_big_tex; - - GlideUseDefaultHacks2.Checked = Global.Config.GlidePlugin.UseDefaultHacks; - Glide_depth_bias.Text = Global.Config.GlidePlugin.depth_bias.ToString(); - Glide_filtering.SelectedIndex = Global.Config.GlidePlugin.filtering; - Glide_fix_tex_coord.Text = Global.Config.GlidePlugin.fix_tex_coord.ToString(); - Glide_lodmode.SelectedIndex = Global.Config.GlidePlugin.lodmode; Glide_offset_x.Text = Global.Config.GlidePlugin.offset_x.ToString(); Glide_offset_y.Text = Global.Config.GlidePlugin.offset_y.ToString(); Glide_scale_x.Text = Global.Config.GlidePlugin.scale_x.ToString(); Glide_scale_y.Text = Global.Config.GlidePlugin.scale_y.ToString(); - Glide_stipple_mode.Text = Global.Config.GlidePlugin.stipple_mode.ToString(); - Glide_stipple_pattern.Text = Global.Config.GlidePlugin.stipple_pattern.ToString(); - Glide_swapmode.SelectedIndex = Global.Config.GlidePlugin.swapmode; - Glide_enable_hacks_for_game.SelectedIndex = Global.Config.GlidePlugin.enable_hacks_for_game; + + + GlideUseDefaultHacks1.Checked = Global.Config.GlidePlugin.UseDefaultHacks; + GlideUseDefaultHacks2.Checked = Global.Config.GlidePlugin.UseDefaultHacks; + + UpdateGlideHacksSection(); + if (!Global.Config.GlidePlugin.UseDefaultHacks) + { + Glide_alt_tex_size.Checked = Global.Config.GlidePlugin.alt_tex_size; + Glide_buff_clear.Checked = Global.Config.GlidePlugin.buff_clear; + Glide_decrease_fillrect_edge.Checked = Global.Config.GlidePlugin.decrease_fillrect_edge; + Glide_detect_cpu_write.Checked = Global.Config.GlidePlugin.detect_cpu_write; + Glide_fb_clear.Checked = Global.Config.GlidePlugin.fb_clear; + Glide_fb_hires.Checked = Global.Config.GlidePlugin.fb_hires; + Glide_fb_read_alpha.Checked = Global.Config.GlidePlugin.fb_read_alpha; + Glide_fb_smart.Checked = Global.Config.GlidePlugin.fb_smart; + Glide_fillcolor_fix.Checked = Global.Config.GlidePlugin.fillcolor_fix; + Glide_fog.Checked = Global.Config.GlidePlugin.fog; + Glide_force_depth_compare.Checked = Global.Config.GlidePlugin.force_depth_compare; + Glide_force_microcheck.Checked = Global.Config.GlidePlugin.force_microcheck; + Glide_fb_hires_buf_clear.Checked = Global.Config.GlidePlugin.fb_hires_buf_clear; + Glide_fb_ignore_aux_copy.Checked = Global.Config.GlidePlugin.fb_ignore_aux_copy; + Glide_fb_ignore_previous.Checked = Global.Config.GlidePlugin.fb_ignore_previous; + Glide_increase_primdepth.Checked = Global.Config.GlidePlugin.increase_primdepth; + Glide_increase_texrect_edge.Checked = Global.Config.GlidePlugin.increase_texrect_edge; + Glide_fb_optimize_texrect.Checked = Global.Config.GlidePlugin.fb_optimize_texrect; + Glide_fb_optimize_write.Checked = Global.Config.GlidePlugin.fb_optimize_write; + Glide_PPL.Checked = Global.Config.GlidePlugin.PPL; + Glide_soft_depth_compare.Checked = Global.Config.GlidePlugin.soft_depth_compare; + Glide_use_sts1_only.Checked = Global.Config.GlidePlugin.use_sts1_only; + Glide_wrap_big_tex.Checked = Global.Config.GlidePlugin.wrap_big_tex; + + Glide_depth_bias.Text = Global.Config.GlidePlugin.depth_bias.ToString(); + Glide_filtering.SelectedIndex = Global.Config.GlidePlugin.filtering; + Glide_fix_tex_coord.Text = Global.Config.GlidePlugin.fix_tex_coord.ToString(); + Glide_lodmode.SelectedIndex = Global.Config.GlidePlugin.lodmode; + Glide_stipple_mode.Text = Global.Config.GlidePlugin.stipple_mode.ToString(); + Glide_stipple_pattern.Text = Global.Config.GlidePlugin.stipple_pattern.ToString(); + Glide_swapmode.SelectedIndex = Global.Config.GlidePlugin.swapmode; + Glide_enable_hacks_for_game.SelectedIndex = Global.Config.GlidePlugin.enable_hacks_for_game; + } } private void RiceAnisotropicFiltering_TB_Scroll_1(object sender, EventArgs e) @@ -289,6 +295,52 @@ namespace BizHawk.MultiClient UpdateRiceHacksSection(); } + private void UpdateGlideHacksSection() + { + if (GlideUseDefaultHacks1.Checked || GlideUseDefaultHacks2.Checked) + { + Glide_alt_tex_size.Checked = Global.Game.GetBool("Glide_alt_tex_size", false); + Glide_buff_clear.Checked = Global.Game.GetBool("Glide_buff_clear", true); + Glide_decrease_fillrect_edge.Checked = Global.Game.GetBool("Glide_decrease_fillrect_edge", false); + Glide_detect_cpu_write.Checked = Global.Game.GetBool("Glide_detect_cpu_write", false); + Glide_fb_clear.Checked = Global.Game.GetBool("Glide_fb_clear", false); + Glide_fb_hires.Checked = Global.Game.GetBool("Glide_fb_clear", true); + Glide_fb_read_alpha.Checked = Global.Game.GetBool("Glide_fb_read_alpha", false); + Glide_fb_smart.Checked = Global.Game.GetBool("Glide_fb_smart", false); + Glide_fillcolor_fix.Checked = Global.Game.GetBool("Glide_fillcolor_fix", false); + Glide_fog.Checked = Global.Game.GetBool("Glide_fog", true); + Glide_force_depth_compare.Checked = Global.Game.GetBool("Glide_force_depth_compare", false); + Glide_force_microcheck.Checked = Global.Game.GetBool("Glide_force_microcheck", false); + Glide_fb_hires_buf_clear.Checked = Global.Game.GetBool("Glide_fb_hires_buf_clear", true); + Glide_fb_ignore_aux_copy.Checked = Global.Game.GetBool("Glide_fb_ignore_aux_copy", false); + Glide_fb_ignore_previous.Checked = Global.Game.GetBool("Glide_fb_ignore_previous", false); + Glide_increase_primdepth.Checked = Global.Game.GetBool("Glide_increase_primdepth", false); + Glide_increase_texrect_edge.Checked = Global.Game.GetBool("Glide_increase_texrect_edge", false); + Glide_fb_optimize_texrect.Checked = Global.Game.GetBool("Glide_fb_optimize_texrect", true); + Glide_fb_optimize_write.Checked = Global.Game.GetBool("Glide_fb_optimize_write", false); + Glide_PPL.Checked = Global.Game.GetBool("Glide_PPL", false); + Glide_soft_depth_compare.Checked = Global.Game.GetBool("Glide_soft_depth_compare", false); + Glide_use_sts1_only.Checked = Global.Game.GetBool("Glide_use_sts1_only", false); + Glide_wrap_big_tex.Checked = Global.Game.GetBool("Glide_wrap_big_tex", false); + + Glide_depth_bias.Text = Global.Game.GetInt("Glide_depth_bias", 20).ToString(); + Glide_filtering.SelectedIndex = Global.Game.GetInt("Glide_filtering", 1); + Glide_fix_tex_coord.Text = Global.Game.GetInt("Glide_fix_tex_coord", 0).ToString(); + Glide_lodmode.SelectedIndex = Global.Game.GetInt("Glide_lodmode", 0); + + Glide_stipple_mode.Text = Global.Game.GetInt("Glide_stipple_mode", 2).ToString(); + Glide_stipple_pattern.Text = Global.Game.GetInt("Glide_stipple_pattern", 1041204192).ToString(); + Glide_swapmode.SelectedIndex = Global.Game.GetInt("Glide_swapmode", 1); + Glide_enable_hacks_for_game.SelectedIndex = Global.Game.GetInt("Glide_enable_hacks_for_game", 0); + + ToggleGlideHackCheckboxEnable(false); + } + else + { + ToggleGlideHackCheckboxEnable(true); + } + } + private void UpdateRiceHacksSection() { if (RiceUseDefaultHacks_CB.Checked) @@ -376,7 +428,52 @@ namespace BizHawk.MultiClient RiceEnableHacksForGame_Combo.Enabled = val; } + public void ToggleGlideHackCheckboxEnable(bool val) + { + Glide_alt_tex_size.Enabled = val; + Glide_buff_clear.Enabled = val; + Glide_decrease_fillrect_edge.Enabled = val; + Glide_detect_cpu_write.Enabled = val; + Glide_fb_clear.Enabled = val; + Glide_fb_hires.Enabled = val; + Glide_fb_read_alpha.Enabled = val; + Glide_fb_smart.Enabled = val; + Glide_fillcolor_fix.Enabled = val; + Glide_fog.Enabled = val; + Glide_force_depth_compare.Enabled = val; + Glide_force_microcheck.Enabled = val; + Glide_fb_hires_buf_clear.Enabled = val; + Glide_fb_ignore_aux_copy.Enabled = val; + Glide_fb_ignore_previous.Enabled = val; + Glide_increase_primdepth.Enabled = val; + Glide_increase_texrect_edge.Enabled = val; + Glide_fb_optimize_texrect.Enabled = val; + Glide_fb_optimize_write.Enabled = val; + Glide_PPL.Enabled = val; + Glide_soft_depth_compare.Enabled = val; + Glide_use_sts1_only.Enabled = val; + Glide_wrap_big_tex.Enabled = val; + Glide_depth_bias.Enabled = val; + Glide_filtering.Enabled = val; + Glide_fix_tex_coord.Enabled = val; + Glide_lodmode.Enabled = val; + Glide_stipple_mode.Enabled = val; + Glide_stipple_pattern.Enabled = val; + Glide_swapmode.Enabled = val; + Glide_enable_hacks_for_game.Enabled = val; + } + private void GlideUseDefaultHacks1_CheckedChanged(object sender, EventArgs e) + { + GlideUseDefaultHacks2.Checked = GlideUseDefaultHacks1.Checked; + UpdateGlideHacksSection(); + } + + private void GlideUseDefaultHacks2_CheckedChanged(object sender, EventArgs e) + { + GlideUseDefaultHacks1.Checked = GlideUseDefaultHacks2.Checked; + UpdateGlideHacksSection(); + } } } diff --git a/BizHawk.MultiClient/N64tools/N64VideoPluginconfig.resx b/BizHawk.MultiClient/N64tools/N64VideoPluginconfig.resx index cbb95d6009..c4fc49b6bb 100644 --- a/BizHawk.MultiClient/N64tools/N64VideoPluginconfig.resx +++ b/BizHawk.MultiClient/N64tools/N64VideoPluginconfig.resx @@ -120,6 +120,9 @@ 17, 17 + + 17, 17 + Enable/Disable Anisotropic Filtering for Mipmapping (0=no filtering, 2-16=quality). This is uneffective if Mipmapping is 0. diff --git a/BizHawk.MultiClient/output/dll/mupen64plus-video-glide64.dll b/BizHawk.MultiClient/output/dll/mupen64plus-video-glide64.dll index b1ad1499bd..0287966857 100644 Binary files a/BizHawk.MultiClient/output/dll/mupen64plus-video-glide64.dll and b/BizHawk.MultiClient/output/dll/mupen64plus-video-glide64.dll differ diff --git a/libmupen64plus/mupen64plus-video-glide64/src/Main.cpp b/libmupen64plus/mupen64plus-video-glide64/src/Main.cpp index 4939f265a3..85728917be 100644 --- a/libmupen64plus/mupen64plus-video-glide64/src/Main.cpp +++ b/libmupen64plus/mupen64plus-video-glide64/src/Main.cpp @@ -182,6 +182,29 @@ DWORD resolutions[0x18][2] = { { 2048, 2048 } }; +enum { + NONE, + ZELDA, + BOMBERMAN64, + DIDDY, + TONIC, + ASB, + DORAEMON2, + INVADERS, + BAR, + ISS64, + RE2, + NITRO, + CHOPPER, + YOSHI, + FZERO, + PM, + TGR, + TGR2, + KI, + LEGO +}; + // ref rate // 60=0x0, 70=0x1, 72=0x2, 75=0x3, 80=0x4, 90=0x5, 100=0x6, 85=0x7, 120=0x8, none=0xff @@ -449,107 +472,109 @@ void ReadSpecialSettings (const char name[21]) else if (strstr(name, (const char *)"LEGORacers")) settings.lego = TRUE; - INI_Open (); - if (INI_FindSection (name,FALSE) == FALSE) + int EnableHacksForGame = (int)Config_ReadInt ("enable_hacks_for_game", "???", 0, TRUE, FALSE); + + switch (EnableHacksForGame) { - INI_Close (); - return; + case ZELDA: + settings.zelda = TRUE; + break; + case BOMBERMAN64: + settings.bomberman64 = TRUE; + break; + case DIDDY: + settings.diddy = TRUE; + break; + case TONIC: + settings.tonic = TRUE; + break; + case ASB: + settings.ASB = TRUE; + break; + case DORAEMON2: + settings.doraemon2 = TRUE; + break; + case INVADERS: + settings.invaders = TRUE; + break; + case BAR: + settings.BAR = TRUE; + break; + case ISS64: + settings.ISS64 = TRUE; + break; + case RE2: + settings.RE2 = TRUE; + ZLUT_init(); + break; + case NITRO: + settings.nitro = TRUE; + break; + case CHOPPER: + settings.chopper = TRUE; + break; + case YOSHI: + settings.yoshi= TRUE; + break; + case FZERO: + settings.fzero = TRUE; + break; + case PM: + settings.PM = TRUE; + break; + case TGR: + settings.TGR = TRUE; + break; + case TGR2: + settings.TGR2 = TRUE; + break; + case KI: + settings.KI = TRUE; + break; + case LEGO: + settings.lego = TRUE; + break; } - int offset_x = INI_ReadInt ("offset_x", -1, 0); - int offset_y = INI_ReadInt ("offset_y", -1, 0); - int scale_x = INI_ReadInt ("scale_x", -1, 0); - int scale_y = INI_ReadInt ("scale_y", -1, 0); - int alt_tex_size = INI_ReadInt ("alt_tex_size", -1, 0); - int use_sts1_only = INI_ReadInt ("use_sts1_only", -1, 0); - int ppl = INI_ReadInt ("PPL", -1, 0); - // int texrect_zbuf = INI_ReadInt ("force_texrect_zbuf", -1, 0); - int optimize_texrect = INI_ReadInt ("optimize_texrect", -1, 0); - int optimize_write = INI_ReadInt ("optimize_write", -1, 0); - int ignore_aux_copy = INI_ReadInt ("ignore_aux_copy", -1, 0); - int ignore_previous = INI_ReadInt ("ignore_previous", -1, 0); - int hires_buf_clear = INI_ReadInt ("hires_buf_clear", -1, 0); - int wrap_big_tex = INI_ReadInt ("wrap_big_tex", -1, 0); - int tex_fix = INI_ReadInt ("fix_tex_coord", -1, 0); - int soft_depth_compare = INI_ReadInt ("soft_depth_compare", -1, 0); - int force_depth_compare = INI_ReadInt ("force_depth_compare", -1, 0); - int fillcolor_fix = INI_ReadInt ("fillcolor_fix", -1, 0); - int depth_bias = INI_ReadInt ("depth_bias", -1, 0); - int increase_texrect_edge = INI_ReadInt ("increase_texrect_edge", -1, 0); - int decrease_fillrect_edge = INI_ReadInt ("decrease_fillrect_edge", -1, 0); - int increase_primdepth = INI_ReadInt ("increase_primdepth", -1, 0); - int stipple_mode = INI_ReadInt ("stipple_mode", -1, 0); - int stipple_pattern = INI_ReadInt ("stipple_pattern", -1, 0); - int force_microcheck = INI_ReadInt ("force_microcheck", -1, 0); - int info_disable = INI_ReadInt ("fb_info_disable", -1, 0); - int hires_disable = INI_ReadInt ("fb_hires_disable", -1, 0); - if (offset_x != -1) settings.offset_x = offset_x; - if (offset_y != -1) settings.offset_y = offset_y; - if (scale_x != -1) settings.scale_x = scale_x; - if (scale_y != -1) settings.scale_y = scale_y; - if (alt_tex_size != -1) settings.alt_tex_size = alt_tex_size; - if (use_sts1_only != -1) settings.use_sts1_only = use_sts1_only; - if (ppl != -1) settings.PPL = ppl; - // if (texrect_zbuf != -1) settings.force_texrect_zbuf = texrect_zbuf; - if (optimize_texrect != -1) settings.fb_optimize_texrect = optimize_texrect; - if (optimize_write != -1) settings.fb_optimize_write = optimize_write; - if (ignore_aux_copy != -1) settings.fb_ignore_aux_copy = ignore_aux_copy; - if (hires_buf_clear != -1) settings.fb_hires_buf_clear = hires_buf_clear; - if (wrap_big_tex != -1) settings.wrap_big_tex = wrap_big_tex; - if (tex_fix != -1) settings.fix_tex_coord = tex_fix; - if (soft_depth_compare != -1) settings.soft_depth_compare = soft_depth_compare; - if (force_depth_compare != -1) settings.force_depth_compare = force_depth_compare; - if (fillcolor_fix != -1) settings.fillcolor_fix = fillcolor_fix; - if (depth_bias != -1) settings.depth_bias = -depth_bias; - if (increase_texrect_edge != -1) settings.increase_texrect_edge = increase_texrect_edge; - if (decrease_fillrect_edge != -1) settings.decrease_fillrect_edge = decrease_fillrect_edge; - if (increase_primdepth != -1) settings.increase_primdepth = increase_primdepth; - if (stipple_mode != -1) settings.stipple_mode = stipple_mode; - if (stipple_pattern != -1) settings.stipple_pattern = (DWORD)stipple_pattern; - if (force_microcheck != -1) settings.force_microcheck = force_microcheck; - if (ignore_previous != -1) settings.fb_ignore_previous = ignore_previous; - if (info_disable == 1) settings.fb_get_info = 0; - if (hires_disable == 1) settings.fb_hires = 0; - if (settings.lodmode == 0) - { - int lodmode = INI_ReadInt ("lodmode", -1, 0); - if (lodmode > 0) - settings.lodmode = lodmode; - } + settings.offset_x = (int)Config_ReadInt ("offset_x", "???", 0, TRUE, FALSE); + settings.offset_y = (int)Config_ReadInt ("offset_y", "???", 0, TRUE, FALSE); + settings.scale_x = (int)Config_ReadInt ("scale_x", "???", 100000, TRUE, FALSE); + settings.scale_y = (int)Config_ReadInt ("scale_y", "???", 100000, TRUE, FALSE); + settings.alt_tex_size = (BOOL)Config_ReadInt ("alt_tex_size", "???", 0); + settings.use_sts1_only = (BOOL)Config_ReadInt ("use_sts1_only", "???", 0); + settings.PPL = (BOOL)Config_ReadInt ("PPL", "???", 0); + settings.fb_optimize_texrect = (BOOL)Config_ReadInt ("fb_optimize_texrect", "???", 1); + settings.fb_optimize_write = (BOOL)Config_ReadInt ("fb_optimize_write", "???", 0); + settings.fb_ignore_aux_copy = (BOOL)Config_ReadInt ("fb_ignore_aux_copy", "???", 0); + settings.fb_hires_buf_clear = (BOOL)Config_ReadInt ("fb_hires_buf_clear", "???", 1); + settings.wrap_big_tex = (BOOL)Config_ReadInt ("wrap_big_tex", "???", 0); + settings.fix_tex_coord = (BOOL)Config_ReadInt ("fix_tex_coord", "???", 0); + settings.soft_depth_compare = (BOOL)Config_ReadInt ("soft_depth_compare", "???", 0); + settings.force_depth_compare = (BOOL)Config_ReadInt ("force_depth_compare", "???", 0); + settings.fillcolor_fix = (BOOL)Config_ReadInt ("fillcolor_fix", "???", 0); + settings.depth_bias = -(int)Config_ReadInt ("depth_bias", "???", 20, TRUE, FALSE); + settings.increase_texrect_edge = (BOOL)Config_ReadInt ("increase_texrect_edge", "???", 0); + settings.decrease_fillrect_edge = (BOOL)Config_ReadInt ("decrease_fillrect_edge", "???", 0); + settings.increase_primdepth = (BOOL)Config_ReadInt ("increase_primdepth", "???", 0); + settings.stipple_mode = (int)Config_ReadInt ("stipple_mode", "???", 1, TRUE, FALSE); + settings.stipple_pattern = (DWORD)Config_ReadInt ("stipple_pattern", "???", 1041204192, TRUE, FALSE); + settings.force_microcheck = (BOOL)Config_ReadInt ("force_microcheck", "???", 0); + settings.fb_ignore_previous = (BOOL)Config_ReadInt ("fb_ignore_previous", "???", 0); + settings.fb_get_info = (BOOL)Config_ReadInt ("fb_get_info", "???", 0); + settings.fb_hires = (BOOL)Config_ReadInt ("fb_hires", "???", 0); - if (settings.custom_ini) - { - int filtering = INI_ReadInt ("filtering", -1, 0); - int fog = INI_ReadInt ("fog", -1, 0); - int buff_clear = INI_ReadInt ("buff_clear", -1, 0); - int swapmode = INI_ReadInt ("swapmode", -1, 0); - int smart_read = INI_ReadInt ("fb_smart", -1, 0); - int read_alpha = INI_ReadInt ("fb_read_alpha", -1, 0); - int depth_clear = INI_ReadInt ("fb_clear", -1, 0); - //FIXME unused int depth_render = INI_ReadInt ("fb_render", -1, 0); - //int resolution = (INT)INI_ReadInt ("resolution", -1, 0); - int cpu_write_hack = (INT)INI_ReadInt ("detect_cpu_write", -1, 0); + settings.lodmode = (int)Config_ReadInt ("lodmode", "???", 0, TRUE, FALSE); + + settings.filtering = (int)Config_ReadInt ("filtering", "???", 1, TRUE, FALSE); + settings.fog = (int)Config_ReadInt ("fog", "???", 1, TRUE, FALSE); + settings.buff_clear = (BOOL)Config_ReadInt ("buff_clear", "???", 1); + settings.swapmode = (int)Config_ReadInt ("swapmode", "???", 1, TRUE, FALSE); + settings.fb_smart = (BOOL)Config_ReadInt ("fb_smart", "???", 0); + settings.fb_read_alpha = (BOOL)Config_ReadInt ("fb_read_alpha", "???", 0); + settings.fb_depth_clear = (BOOL)Config_ReadInt ("fb_depth_clear", "???", 0); + settings.cpu_write_hack = (BOOL)Config_ReadInt ("cpu_write_hack", "???", 0); - if (filtering != -1) settings.filtering = filtering; - if (fog != -1) settings.fog = fog; - if (buff_clear != -1) settings.buff_clear = buff_clear; - if (swapmode != -1) settings.swapmode= swapmode; - // settings.swapmode = 2; - if (smart_read != -1) settings.fb_smart = smart_read; - if (read_alpha != -1) settings.fb_read_alpha= read_alpha; - if (depth_clear != -1) settings.fb_depth_clear = depth_clear; - if (cpu_write_hack != -1) settings.cpu_write_hack = cpu_write_hack; - /* - if (resolution != -1) - { - settings.res_data = (DWORD) resolution; - if (settings.res_data >= 0x18) settings.res_data = 12; - settings.scr_res_x = settings.res_x = resolutions[settings.res_data][0]; - settings.scr_res_y = settings.res_y = resolutions[settings.res_data][1]; - } - */ - } if (settings.fb_depth_render) settings.fb_depth_clear = TRUE; INI_Close ();