BSNESv115+: expose fast dsp and fast coprocessor options

This commit is contained in:
Morilli 2022-03-29 01:03:43 +02:00
parent 339d34413f
commit 3d039934af
8 changed files with 398 additions and 342 deletions

Binary file not shown.

View File

@ -28,347 +28,371 @@
/// </summary> /// </summary>
private void InitializeComponent() private void InitializeComponent()
{ {
this.btnOk = new System.Windows.Forms.Button(); this.btnOk = new System.Windows.Forms.Button();
this.btnCancel = new System.Windows.Forms.Button(); this.btnCancel = new System.Windows.Forms.Button();
this.cbDoubleSize = new System.Windows.Forms.CheckBox(); this.cbDoubleSize = new System.Windows.Forms.CheckBox();
this.lblDoubleSize = new BizHawk.WinForms.Controls.LocLabelEx(); this.lblDoubleSize = new BizHawk.WinForms.Controls.LocLabelEx();
this.groupBox1 = new System.Windows.Forms.GroupBox(); this.groupBox1 = new System.Windows.Forms.GroupBox();
this.lblPriority1 = new BizHawk.WinForms.Controls.LocLabelEx(); this.lblPriority1 = new BizHawk.WinForms.Controls.LocLabelEx();
this.lblPriority0 = new BizHawk.WinForms.Controls.LocLabelEx(); this.lblPriority0 = new BizHawk.WinForms.Controls.LocLabelEx();
this.Bg4_0Checkbox = new System.Windows.Forms.CheckBox(); this.Bg4_0Checkbox = new System.Windows.Forms.CheckBox();
this.Bg3_0Checkbox = new System.Windows.Forms.CheckBox(); this.Bg3_0Checkbox = new System.Windows.Forms.CheckBox();
this.Bg2_0Checkbox = new System.Windows.Forms.CheckBox(); this.Bg2_0Checkbox = new System.Windows.Forms.CheckBox();
this.Bg1_0Checkbox = new System.Windows.Forms.CheckBox(); this.Bg1_0Checkbox = new System.Windows.Forms.CheckBox();
this.Bg4_1Checkbox = new System.Windows.Forms.CheckBox(); this.Bg4_1Checkbox = new System.Windows.Forms.CheckBox();
this.Bg3_1Checkbox = new System.Windows.Forms.CheckBox(); this.Bg3_1Checkbox = new System.Windows.Forms.CheckBox();
this.Bg2_1Checkbox = new System.Windows.Forms.CheckBox(); this.Bg2_1Checkbox = new System.Windows.Forms.CheckBox();
this.Bg1_1Checkbox = new System.Windows.Forms.CheckBox(); this.Bg1_1Checkbox = new System.Windows.Forms.CheckBox();
this.Obj4Checkbox = new System.Windows.Forms.CheckBox(); this.Obj4Checkbox = new System.Windows.Forms.CheckBox();
this.Obj3Checkbox = new System.Windows.Forms.CheckBox(); this.Obj3Checkbox = new System.Windows.Forms.CheckBox();
this.Obj2Checkbox = new System.Windows.Forms.CheckBox(); this.Obj2Checkbox = new System.Windows.Forms.CheckBox();
this.Obj1Checkbox = new System.Windows.Forms.CheckBox(); this.Obj1Checkbox = new System.Windows.Forms.CheckBox();
this.EntropyBox = new System.Windows.Forms.ComboBox(); this.EntropyBox = new System.Windows.Forms.ComboBox();
this.lblEntropy = new BizHawk.WinForms.Controls.LocLabelEx(); this.lblEntropy = new BizHawk.WinForms.Controls.LocLabelEx();
this.RegionBox = new System.Windows.Forms.ComboBox(); this.RegionBox = new System.Windows.Forms.ComboBox();
this.lblRegion = new BizHawk.WinForms.Controls.LocLabelEx(); this.lblRegion = new BizHawk.WinForms.Controls.LocLabelEx();
this.cbGameHotfixes = new System.Windows.Forms.CheckBox(); this.cbGameHotfixes = new System.Windows.Forms.CheckBox();
this.cbFastPPU = new System.Windows.Forms.CheckBox(); this.cbFastPPU = new System.Windows.Forms.CheckBox();
this.cbCropSGBFrame = new System.Windows.Forms.CheckBox(); this.cbCropSGBFrame = new System.Windows.Forms.CheckBox();
this.cbUseSGB2 = new System.Windows.Forms.CheckBox(); this.cbUseSGB2 = new System.Windows.Forms.CheckBox();
this.groupBox1.SuspendLayout(); this.cbFastDSP = new System.Windows.Forms.CheckBox();
this.SuspendLayout(); this.cbFastCoprocessor = new System.Windows.Forms.CheckBox();
// this.groupBox1.SuspendLayout();
// btnOk this.SuspendLayout();
// //
this.btnOk.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right))); // btnOk
this.btnOk.Location = new System.Drawing.Point(136, 321); //
this.btnOk.Name = "btnOk"; this.btnOk.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
this.btnOk.Size = new System.Drawing.Size(75, 23); this.btnOk.Location = new System.Drawing.Point(136, 344);
this.btnOk.TabIndex = 0; this.btnOk.Name = "btnOk";
this.btnOk.Text = "OK"; this.btnOk.Size = new System.Drawing.Size(75, 23);
this.btnOk.UseVisualStyleBackColor = true; this.btnOk.TabIndex = 0;
this.btnOk.Click += new System.EventHandler(this.BtnOk_Click); this.btnOk.Text = "OK";
// this.btnOk.UseVisualStyleBackColor = true;
// btnCancel this.btnOk.Click += new System.EventHandler(this.BtnOk_Click);
// //
this.btnCancel.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right))); // btnCancel
this.btnCancel.DialogResult = System.Windows.Forms.DialogResult.Cancel; //
this.btnCancel.Location = new System.Drawing.Point(217, 321); this.btnCancel.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
this.btnCancel.Name = "btnCancel"; this.btnCancel.DialogResult = System.Windows.Forms.DialogResult.Cancel;
this.btnCancel.Size = new System.Drawing.Size(75, 23); this.btnCancel.Location = new System.Drawing.Point(217, 344);
this.btnCancel.TabIndex = 1; this.btnCancel.Name = "btnCancel";
this.btnCancel.Text = "Cancel"; this.btnCancel.Size = new System.Drawing.Size(75, 23);
this.btnCancel.UseVisualStyleBackColor = true; this.btnCancel.TabIndex = 1;
this.btnCancel.Click += new System.EventHandler(this.BtnCancel_Click); this.btnCancel.Text = "Cancel";
// this.btnCancel.UseVisualStyleBackColor = true;
// cbDoubleSize this.btnCancel.Click += new System.EventHandler(this.BtnCancel_Click);
// //
this.cbDoubleSize.AutoSize = true; // cbDoubleSize
this.cbDoubleSize.Location = new System.Drawing.Point(18, 16); //
this.cbDoubleSize.Name = "cbDoubleSize"; this.cbDoubleSize.AutoSize = true;
this.cbDoubleSize.Size = new System.Drawing.Size(178, 17); this.cbDoubleSize.Location = new System.Drawing.Point(18, 16);
this.cbDoubleSize.TabIndex = 6; this.cbDoubleSize.Name = "cbDoubleSize";
this.cbDoubleSize.Text = "Always Double-Size Framebuffer"; this.cbDoubleSize.Size = new System.Drawing.Size(178, 17);
this.cbDoubleSize.UseVisualStyleBackColor = true; this.cbDoubleSize.TabIndex = 6;
// this.cbDoubleSize.Text = "Always Double-Size Framebuffer";
// lblDoubleSize this.cbDoubleSize.UseVisualStyleBackColor = true;
// //
this.lblDoubleSize.Location = new System.Drawing.Point(33, 34); // lblDoubleSize
this.lblDoubleSize.MaximumSize = new System.Drawing.Size(260, 0); //
this.lblDoubleSize.Name = "lblDoubleSize"; this.lblDoubleSize.Location = new System.Drawing.Point(33, 34);
this.lblDoubleSize.Text = "Some games are changing the resolution constantly (e.g. SD3) so this option can f" + this.lblDoubleSize.MaximumSize = new System.Drawing.Size(260, 0);
"orce the SNES output to stay double-size always."; this.lblDoubleSize.Name = "lblDoubleSize";
// this.lblDoubleSize.Text = "Some games are changing the resolution constantly (e.g. SD3) so this option can f" +
// groupBox1 "orce the SNES output to stay double-size always.";
// //
this.groupBox1.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left) // groupBox1
| System.Windows.Forms.AnchorStyles.Right))); //
this.groupBox1.Controls.Add(this.lblPriority1); this.groupBox1.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)
this.groupBox1.Controls.Add(this.lblPriority0); | System.Windows.Forms.AnchorStyles.Right)));
this.groupBox1.Controls.Add(this.Bg4_0Checkbox); this.groupBox1.Controls.Add(this.lblPriority1);
this.groupBox1.Controls.Add(this.Bg3_0Checkbox); this.groupBox1.Controls.Add(this.lblPriority0);
this.groupBox1.Controls.Add(this.Bg2_0Checkbox); this.groupBox1.Controls.Add(this.Bg4_0Checkbox);
this.groupBox1.Controls.Add(this.Bg1_0Checkbox); this.groupBox1.Controls.Add(this.Bg3_0Checkbox);
this.groupBox1.Controls.Add(this.Bg4_1Checkbox); this.groupBox1.Controls.Add(this.Bg2_0Checkbox);
this.groupBox1.Controls.Add(this.Bg3_1Checkbox); this.groupBox1.Controls.Add(this.Bg1_0Checkbox);
this.groupBox1.Controls.Add(this.Bg2_1Checkbox); this.groupBox1.Controls.Add(this.Bg4_1Checkbox);
this.groupBox1.Controls.Add(this.Bg1_1Checkbox); this.groupBox1.Controls.Add(this.Bg3_1Checkbox);
this.groupBox1.Controls.Add(this.Obj4Checkbox); this.groupBox1.Controls.Add(this.Bg2_1Checkbox);
this.groupBox1.Controls.Add(this.Obj3Checkbox); this.groupBox1.Controls.Add(this.Bg1_1Checkbox);
this.groupBox1.Controls.Add(this.Obj2Checkbox); this.groupBox1.Controls.Add(this.Obj4Checkbox);
this.groupBox1.Controls.Add(this.Obj1Checkbox); this.groupBox1.Controls.Add(this.Obj3Checkbox);
this.groupBox1.Location = new System.Drawing.Point(18, 183); this.groupBox1.Controls.Add(this.Obj2Checkbox);
this.groupBox1.Name = "groupBox1"; this.groupBox1.Controls.Add(this.Obj1Checkbox);
this.groupBox1.Size = new System.Drawing.Size(274, 132); this.groupBox1.Location = new System.Drawing.Point(18, 206);
this.groupBox1.TabIndex = 11; this.groupBox1.Name = "groupBox1";
this.groupBox1.TabStop = false; this.groupBox1.Size = new System.Drawing.Size(274, 132);
this.groupBox1.Text = "Display"; this.groupBox1.TabIndex = 11;
// this.groupBox1.TabStop = false;
// lblPriority1 this.groupBox1.Text = "Display";
// //
this.lblPriority1.Location = new System.Drawing.Point(220, 14); // lblPriority1
this.lblPriority1.MaximumSize = new System.Drawing.Size(100, 0); //
this.lblPriority1.Name = "lblPriority1"; this.lblPriority1.Location = new System.Drawing.Point(220, 14);
this.lblPriority1.Text = "Priority 1"; this.lblPriority1.MaximumSize = new System.Drawing.Size(100, 0);
// this.lblPriority1.Name = "lblPriority1";
// lblPriority0 this.lblPriority1.Text = "Priority 1";
// //
this.lblPriority0.Location = new System.Drawing.Point(162, 14); // lblPriority0
this.lblPriority0.MaximumSize = new System.Drawing.Size(100, 0); //
this.lblPriority0.Name = "lblPriority0"; this.lblPriority0.Location = new System.Drawing.Point(162, 14);
this.lblPriority0.Text = "Priority 0"; this.lblPriority0.MaximumSize = new System.Drawing.Size(100, 0);
this.lblPriority0.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; this.lblPriority0.Name = "lblPriority0";
// this.lblPriority0.Text = "Priority 0";
// Bg4_0Checkbox this.lblPriority0.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
// //
this.Bg4_0Checkbox.AutoSize = true; // Bg4_0Checkbox
this.Bg4_0Checkbox.CheckAlign = System.Drawing.ContentAlignment.MiddleRight; //
this.Bg4_0Checkbox.Location = new System.Drawing.Point(128, 99); this.Bg4_0Checkbox.AutoSize = true;
this.Bg4_0Checkbox.Name = "Bg4_0Checkbox"; this.Bg4_0Checkbox.CheckAlign = System.Drawing.ContentAlignment.MiddleRight;
this.Bg4_0Checkbox.Size = new System.Drawing.Size(62, 17); this.Bg4_0Checkbox.Location = new System.Drawing.Point(128, 99);
this.Bg4_0Checkbox.TabIndex = 11; this.Bg4_0Checkbox.Name = "Bg4_0Checkbox";
this.Bg4_0Checkbox.Text = "BG 4 "; this.Bg4_0Checkbox.Size = new System.Drawing.Size(62, 17);
this.Bg4_0Checkbox.UseVisualStyleBackColor = true; this.Bg4_0Checkbox.TabIndex = 11;
// this.Bg4_0Checkbox.Text = "BG 4 ";
// Bg3_0Checkbox this.Bg4_0Checkbox.UseVisualStyleBackColor = true;
// //
this.Bg3_0Checkbox.AutoSize = true; // Bg3_0Checkbox
this.Bg3_0Checkbox.CheckAlign = System.Drawing.ContentAlignment.MiddleRight; //
this.Bg3_0Checkbox.Location = new System.Drawing.Point(128, 76); this.Bg3_0Checkbox.AutoSize = true;
this.Bg3_0Checkbox.Name = "Bg3_0Checkbox"; this.Bg3_0Checkbox.CheckAlign = System.Drawing.ContentAlignment.MiddleRight;
this.Bg3_0Checkbox.Size = new System.Drawing.Size(62, 17); this.Bg3_0Checkbox.Location = new System.Drawing.Point(128, 76);
this.Bg3_0Checkbox.TabIndex = 10; this.Bg3_0Checkbox.Name = "Bg3_0Checkbox";
this.Bg3_0Checkbox.Text = "BG 3 "; this.Bg3_0Checkbox.Size = new System.Drawing.Size(62, 17);
this.Bg3_0Checkbox.UseVisualStyleBackColor = true; this.Bg3_0Checkbox.TabIndex = 10;
// this.Bg3_0Checkbox.Text = "BG 3 ";
// Bg2_0Checkbox this.Bg3_0Checkbox.UseVisualStyleBackColor = true;
// //
this.Bg2_0Checkbox.AutoSize = true; // Bg2_0Checkbox
this.Bg2_0Checkbox.CheckAlign = System.Drawing.ContentAlignment.MiddleRight; //
this.Bg2_0Checkbox.Location = new System.Drawing.Point(128, 53); this.Bg2_0Checkbox.AutoSize = true;
this.Bg2_0Checkbox.Name = "Bg2_0Checkbox"; this.Bg2_0Checkbox.CheckAlign = System.Drawing.ContentAlignment.MiddleRight;
this.Bg2_0Checkbox.Size = new System.Drawing.Size(62, 17); this.Bg2_0Checkbox.Location = new System.Drawing.Point(128, 53);
this.Bg2_0Checkbox.TabIndex = 9; this.Bg2_0Checkbox.Name = "Bg2_0Checkbox";
this.Bg2_0Checkbox.Text = "BG 2 "; this.Bg2_0Checkbox.Size = new System.Drawing.Size(62, 17);
this.Bg2_0Checkbox.UseVisualStyleBackColor = true; this.Bg2_0Checkbox.TabIndex = 9;
// this.Bg2_0Checkbox.Text = "BG 2 ";
// Bg1_0Checkbox this.Bg2_0Checkbox.UseVisualStyleBackColor = true;
// //
this.Bg1_0Checkbox.AutoSize = true; // Bg1_0Checkbox
this.Bg1_0Checkbox.CheckAlign = System.Drawing.ContentAlignment.MiddleRight; //
this.Bg1_0Checkbox.Location = new System.Drawing.Point(128, 30); this.Bg1_0Checkbox.AutoSize = true;
this.Bg1_0Checkbox.Name = "Bg1_0Checkbox"; this.Bg1_0Checkbox.CheckAlign = System.Drawing.ContentAlignment.MiddleRight;
this.Bg1_0Checkbox.Size = new System.Drawing.Size(62, 17); this.Bg1_0Checkbox.Location = new System.Drawing.Point(128, 30);
this.Bg1_0Checkbox.TabIndex = 8; this.Bg1_0Checkbox.Name = "Bg1_0Checkbox";
this.Bg1_0Checkbox.Text = "BG 1 "; this.Bg1_0Checkbox.Size = new System.Drawing.Size(62, 17);
this.Bg1_0Checkbox.UseVisualStyleBackColor = true; this.Bg1_0Checkbox.TabIndex = 8;
// this.Bg1_0Checkbox.Text = "BG 1 ";
// Bg4_1Checkbox this.Bg1_0Checkbox.UseVisualStyleBackColor = true;
// //
this.Bg4_1Checkbox.AutoSize = true; // Bg4_1Checkbox
this.Bg4_1Checkbox.Location = new System.Drawing.Point(234, 100); //
this.Bg4_1Checkbox.Name = "Bg4_1Checkbox"; this.Bg4_1Checkbox.AutoSize = true;
this.Bg4_1Checkbox.Size = new System.Drawing.Size(15, 14); this.Bg4_1Checkbox.Location = new System.Drawing.Point(234, 100);
this.Bg4_1Checkbox.TabIndex = 7; this.Bg4_1Checkbox.Name = "Bg4_1Checkbox";
this.Bg4_1Checkbox.UseVisualStyleBackColor = true; this.Bg4_1Checkbox.Size = new System.Drawing.Size(15, 14);
// this.Bg4_1Checkbox.TabIndex = 7;
// Bg3_1Checkbox this.Bg4_1Checkbox.UseVisualStyleBackColor = true;
// //
this.Bg3_1Checkbox.AutoSize = true; // Bg3_1Checkbox
this.Bg3_1Checkbox.Location = new System.Drawing.Point(234, 77); //
this.Bg3_1Checkbox.Name = "Bg3_1Checkbox"; this.Bg3_1Checkbox.AutoSize = true;
this.Bg3_1Checkbox.Size = new System.Drawing.Size(15, 14); this.Bg3_1Checkbox.Location = new System.Drawing.Point(234, 77);
this.Bg3_1Checkbox.TabIndex = 6; this.Bg3_1Checkbox.Name = "Bg3_1Checkbox";
this.Bg3_1Checkbox.UseVisualStyleBackColor = true; this.Bg3_1Checkbox.Size = new System.Drawing.Size(15, 14);
// this.Bg3_1Checkbox.TabIndex = 6;
// Bg2_1Checkbox this.Bg3_1Checkbox.UseVisualStyleBackColor = true;
// //
this.Bg2_1Checkbox.AutoSize = true; // Bg2_1Checkbox
this.Bg2_1Checkbox.Location = new System.Drawing.Point(234, 54); //
this.Bg2_1Checkbox.Name = "Bg2_1Checkbox"; this.Bg2_1Checkbox.AutoSize = true;
this.Bg2_1Checkbox.Size = new System.Drawing.Size(15, 14); this.Bg2_1Checkbox.Location = new System.Drawing.Point(234, 54);
this.Bg2_1Checkbox.TabIndex = 5; this.Bg2_1Checkbox.Name = "Bg2_1Checkbox";
this.Bg2_1Checkbox.UseVisualStyleBackColor = true; this.Bg2_1Checkbox.Size = new System.Drawing.Size(15, 14);
// this.Bg2_1Checkbox.TabIndex = 5;
// Bg1_1Checkbox this.Bg2_1Checkbox.UseVisualStyleBackColor = true;
// //
this.Bg1_1Checkbox.AutoSize = true; // Bg1_1Checkbox
this.Bg1_1Checkbox.Location = new System.Drawing.Point(234, 31); //
this.Bg1_1Checkbox.Name = "Bg1_1Checkbox"; this.Bg1_1Checkbox.AutoSize = true;
this.Bg1_1Checkbox.Size = new System.Drawing.Size(15, 14); this.Bg1_1Checkbox.Location = new System.Drawing.Point(234, 31);
this.Bg1_1Checkbox.TabIndex = 4; this.Bg1_1Checkbox.Name = "Bg1_1Checkbox";
this.Bg1_1Checkbox.UseVisualStyleBackColor = true; this.Bg1_1Checkbox.Size = new System.Drawing.Size(15, 14);
// this.Bg1_1Checkbox.TabIndex = 4;
// Obj4Checkbox this.Bg1_1Checkbox.UseVisualStyleBackColor = true;
// //
this.Obj4Checkbox.AutoSize = true; // Obj4Checkbox
this.Obj4Checkbox.Location = new System.Drawing.Point(21, 99); //
this.Obj4Checkbox.Name = "Obj4Checkbox"; this.Obj4Checkbox.AutoSize = true;
this.Obj4Checkbox.Size = new System.Drawing.Size(55, 17); this.Obj4Checkbox.Location = new System.Drawing.Point(21, 99);
this.Obj4Checkbox.TabIndex = 3; this.Obj4Checkbox.Name = "Obj4Checkbox";
this.Obj4Checkbox.Text = "OBJ 4"; this.Obj4Checkbox.Size = new System.Drawing.Size(55, 17);
this.Obj4Checkbox.UseVisualStyleBackColor = true; this.Obj4Checkbox.TabIndex = 3;
// this.Obj4Checkbox.Text = "OBJ 4";
// Obj3Checkbox this.Obj4Checkbox.UseVisualStyleBackColor = true;
// //
this.Obj3Checkbox.AutoSize = true; // Obj3Checkbox
this.Obj3Checkbox.Location = new System.Drawing.Point(21, 76); //
this.Obj3Checkbox.Name = "Obj3Checkbox"; this.Obj3Checkbox.AutoSize = true;
this.Obj3Checkbox.Size = new System.Drawing.Size(55, 17); this.Obj3Checkbox.Location = new System.Drawing.Point(21, 76);
this.Obj3Checkbox.TabIndex = 2; this.Obj3Checkbox.Name = "Obj3Checkbox";
this.Obj3Checkbox.Text = "OBJ 3"; this.Obj3Checkbox.Size = new System.Drawing.Size(55, 17);
this.Obj3Checkbox.UseVisualStyleBackColor = true; this.Obj3Checkbox.TabIndex = 2;
// this.Obj3Checkbox.Text = "OBJ 3";
// Obj2Checkbox this.Obj3Checkbox.UseVisualStyleBackColor = true;
// //
this.Obj2Checkbox.AutoSize = true; // Obj2Checkbox
this.Obj2Checkbox.Location = new System.Drawing.Point(21, 53); //
this.Obj2Checkbox.Name = "Obj2Checkbox"; this.Obj2Checkbox.AutoSize = true;
this.Obj2Checkbox.Size = new System.Drawing.Size(55, 17); this.Obj2Checkbox.Location = new System.Drawing.Point(21, 53);
this.Obj2Checkbox.TabIndex = 1; this.Obj2Checkbox.Name = "Obj2Checkbox";
this.Obj2Checkbox.Text = "OBJ 2"; this.Obj2Checkbox.Size = new System.Drawing.Size(55, 17);
this.Obj2Checkbox.UseVisualStyleBackColor = true; this.Obj2Checkbox.TabIndex = 1;
// this.Obj2Checkbox.Text = "OBJ 2";
// Obj1Checkbox this.Obj2Checkbox.UseVisualStyleBackColor = true;
// //
this.Obj1Checkbox.AutoSize = true; // Obj1Checkbox
this.Obj1Checkbox.Location = new System.Drawing.Point(21, 30); //
this.Obj1Checkbox.Name = "Obj1Checkbox"; this.Obj1Checkbox.AutoSize = true;
this.Obj1Checkbox.Size = new System.Drawing.Size(55, 17); this.Obj1Checkbox.Location = new System.Drawing.Point(21, 30);
this.Obj1Checkbox.TabIndex = 0; this.Obj1Checkbox.Name = "Obj1Checkbox";
this.Obj1Checkbox.Text = "OBJ 1"; this.Obj1Checkbox.Size = new System.Drawing.Size(55, 17);
this.Obj1Checkbox.UseVisualStyleBackColor = true; this.Obj1Checkbox.TabIndex = 0;
// this.Obj1Checkbox.Text = "OBJ 1";
// EntropyBox this.Obj1Checkbox.UseVisualStyleBackColor = true;
// //
this.EntropyBox.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; // EntropyBox
this.EntropyBox.FormattingEnabled = true; //
this.EntropyBox.Items.AddRange(new object[] { this.EntropyBox.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
"None", this.EntropyBox.FormattingEnabled = true;
"Low", this.EntropyBox.Items.AddRange(new object[] {
"High"}); "None",
this.EntropyBox.Location = new System.Drawing.Point(18, 150); "Low",
this.EntropyBox.Name = "EntropyBox"; "High"});
this.EntropyBox.Size = new System.Drawing.Size(128, 21); this.EntropyBox.Location = new System.Drawing.Point(18, 173);
this.EntropyBox.TabIndex = 14; this.EntropyBox.Name = "EntropyBox";
// this.EntropyBox.Size = new System.Drawing.Size(128, 21);
// lblEntropy this.EntropyBox.TabIndex = 14;
// //
this.lblEntropy.Location = new System.Drawing.Point(15, 134); // lblEntropy
this.lblEntropy.Name = "lblEntropy"; //
this.lblEntropy.Text = "Entropy"; this.lblEntropy.Location = new System.Drawing.Point(15, 157);
// this.lblEntropy.Name = "lblEntropy";
// RegionBox this.lblEntropy.Text = "Entropy";
// //
this.RegionBox.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; // RegionBox
this.RegionBox.FormattingEnabled = true; //
this.RegionBox.Items.AddRange(new object[] { this.RegionBox.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
"Auto", this.RegionBox.FormattingEnabled = true;
"NTSC", this.RegionBox.Items.AddRange(new object[] {
"PAL"}); "Auto",
this.RegionBox.Location = new System.Drawing.Point(159, 150); "NTSC",
this.RegionBox.Name = "RegionBox"; "PAL"});
this.RegionBox.Size = new System.Drawing.Size(128, 21); this.RegionBox.Location = new System.Drawing.Point(159, 173);
this.RegionBox.TabIndex = 15; this.RegionBox.Name = "RegionBox";
// this.RegionBox.Size = new System.Drawing.Size(128, 21);
// lblRegion this.RegionBox.TabIndex = 15;
// //
this.lblRegion.Location = new System.Drawing.Point(156, 134); // lblRegion
this.lblRegion.Name = "lblRegion"; //
this.lblRegion.Text = "Region"; this.lblRegion.Location = new System.Drawing.Point(156, 157);
// this.lblRegion.Name = "lblRegion";
// cbGameHotfixes this.lblRegion.Text = "Region";
// //
this.cbGameHotfixes.AutoSize = true; // cbGameHotfixes
this.cbGameHotfixes.Location = new System.Drawing.Point(18, 107); //
this.cbGameHotfixes.Name = "cbGameHotfixes"; this.cbGameHotfixes.AutoSize = true;
this.cbGameHotfixes.Size = new System.Drawing.Size(93, 17); this.cbGameHotfixes.Location = new System.Drawing.Point(18, 107);
this.cbGameHotfixes.TabIndex = 22; this.cbGameHotfixes.Name = "cbGameHotfixes";
this.cbGameHotfixes.Text = "Game hotfixes"; this.cbGameHotfixes.Size = new System.Drawing.Size(93, 17);
this.cbGameHotfixes.UseVisualStyleBackColor = true; this.cbGameHotfixes.TabIndex = 22;
// this.cbGameHotfixes.Text = "Game hotfixes";
// cbFastPPU this.cbGameHotfixes.UseVisualStyleBackColor = true;
// //
this.cbFastPPU.AutoSize = true; // cbFastPPU
this.cbFastPPU.Location = new System.Drawing.Point(159, 107); //
this.cbFastPPU.Name = "cbFastPPU"; this.cbFastPPU.AutoSize = true;
this.cbFastPPU.Size = new System.Drawing.Size(90, 17); this.cbFastPPU.Location = new System.Drawing.Point(159, 107);
this.cbFastPPU.TabIndex = 23; this.cbFastPPU.Name = "cbFastPPU";
this.cbFastPPU.Text = "Use fast PPU"; this.cbFastPPU.Size = new System.Drawing.Size(90, 17);
this.cbFastPPU.UseVisualStyleBackColor = true; this.cbFastPPU.TabIndex = 23;
this.cbFastPPU.CheckedChanged += new System.EventHandler(this.FastPPU_CheckedChanged); this.cbFastPPU.Text = "Use fast PPU";
// this.cbFastPPU.UseVisualStyleBackColor = true;
// cbCropSGBFrame this.cbFastPPU.CheckedChanged += new System.EventHandler(this.FastPPU_CheckedChanged);
// //
this.cbCropSGBFrame.AutoSize = true; // cbCropSGBFrame
this.cbCropSGBFrame.Location = new System.Drawing.Point(18, 84); //
this.cbCropSGBFrame.Name = "cbCropSGBFrame"; this.cbCropSGBFrame.AutoSize = true;
this.cbCropSGBFrame.Size = new System.Drawing.Size(105, 17); this.cbCropSGBFrame.Location = new System.Drawing.Point(18, 84);
this.cbCropSGBFrame.TabIndex = 27; this.cbCropSGBFrame.Name = "cbCropSGBFrame";
this.cbCropSGBFrame.Text = "Crop SGB Frame"; this.cbCropSGBFrame.Size = new System.Drawing.Size(105, 17);
this.cbCropSGBFrame.UseVisualStyleBackColor = true; this.cbCropSGBFrame.TabIndex = 27;
// this.cbCropSGBFrame.Text = "Crop SGB Frame";
// cbUseSGB2 this.cbCropSGBFrame.UseVisualStyleBackColor = true;
// //
this.cbUseSGB2.AutoSize = true; // cbUseSGB2
this.cbUseSGB2.Location = new System.Drawing.Point(159, 84); //
this.cbUseSGB2.Name = "cbUseSGB2"; this.cbUseSGB2.AutoSize = true;
this.cbUseSGB2.Size = new System.Drawing.Size(76, 17); this.cbUseSGB2.Location = new System.Drawing.Point(159, 84);
this.cbUseSGB2.TabIndex = 30; this.cbUseSGB2.Name = "cbUseSGB2";
this.cbUseSGB2.Text = "Use SGB2"; this.cbUseSGB2.Size = new System.Drawing.Size(76, 17);
this.cbUseSGB2.UseVisualStyleBackColor = true; this.cbUseSGB2.TabIndex = 30;
// this.cbUseSGB2.Text = "Use SGB2";
// BSNESOptions this.cbUseSGB2.UseVisualStyleBackColor = true;
// //
this.AcceptButton = this.btnOk; // cbFastDSP
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); //
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; this.cbFastDSP.AutoSize = true;
this.CancelButton = this.btnCancel; this.cbFastDSP.Location = new System.Drawing.Point(18, 130);
this.ClientSize = new System.Drawing.Size(304, 356); this.cbFastDSP.Name = "cbFastDSP";
this.Controls.Add(this.cbUseSGB2); this.cbFastDSP.Size = new System.Drawing.Size(101, 17);
this.Controls.Add(this.cbCropSGBFrame); this.cbFastDSP.TabIndex = 34;
this.Controls.Add(this.cbFastPPU); this.cbFastDSP.Text = "DSP Fast Mode";
this.Controls.Add(this.cbGameHotfixes); this.cbFastDSP.UseVisualStyleBackColor = true;
this.Controls.Add(this.lblEntropy); //
this.Controls.Add(this.EntropyBox); // cbFastCoprocessor
this.Controls.Add(this.lblRegion); //
this.Controls.Add(this.RegionBox); this.cbFastCoprocessor.AutoSize = true;
this.Controls.Add(this.groupBox1); this.cbFastCoprocessor.Location = new System.Drawing.Point(159, 130);
this.Controls.Add(this.lblDoubleSize); this.cbFastCoprocessor.Name = "cbFastCoprocessor";
this.Controls.Add(this.cbDoubleSize); this.cbFastCoprocessor.Size = new System.Drawing.Size(138, 17);
this.Controls.Add(this.btnCancel); this.cbFastCoprocessor.TabIndex = 35;
this.Controls.Add(this.btnOk); this.cbFastCoprocessor.Text = "Coprocessor Fast Mode";
this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedDialog; this.cbFastCoprocessor.UseVisualStyleBackColor = true;
this.MaximizeBox = false; //
this.MinimizeBox = false; // BSNESOptions
this.Name = "BSNESOptions"; //
this.ShowIcon = false; this.AcceptButton = this.btnOk;
this.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent; this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
this.Text = "BSNES Options"; this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.groupBox1.ResumeLayout(false); this.CancelButton = this.btnCancel;
this.groupBox1.PerformLayout(); this.ClientSize = new System.Drawing.Size(304, 379);
this.ResumeLayout(false); this.Controls.Add(this.cbFastCoprocessor);
this.PerformLayout(); this.Controls.Add(this.cbFastDSP);
this.Controls.Add(this.cbUseSGB2);
this.Controls.Add(this.cbCropSGBFrame);
this.Controls.Add(this.cbFastPPU);
this.Controls.Add(this.cbGameHotfixes);
this.Controls.Add(this.lblEntropy);
this.Controls.Add(this.EntropyBox);
this.Controls.Add(this.lblRegion);
this.Controls.Add(this.RegionBox);
this.Controls.Add(this.groupBox1);
this.Controls.Add(this.lblDoubleSize);
this.Controls.Add(this.cbDoubleSize);
this.Controls.Add(this.btnCancel);
this.Controls.Add(this.btnOk);
this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedDialog;
this.MaximizeBox = false;
this.MinimizeBox = false;
this.Name = "BSNESOptions";
this.ShowIcon = false;
this.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent;
this.Text = "BSNES Options";
this.groupBox1.ResumeLayout(false);
this.groupBox1.PerformLayout();
this.ResumeLayout(false);
this.PerformLayout();
} }
@ -400,6 +424,8 @@
private WinForms.Controls.LocLabelEx lblPriority1; private WinForms.Controls.LocLabelEx lblPriority1;
private WinForms.Controls.LocLabelEx lblPriority0; private WinForms.Controls.LocLabelEx lblPriority0;
private System.Windows.Forms.CheckBox cbCropSGBFrame; private System.Windows.Forms.CheckBox cbCropSGBFrame;
private System.Windows.Forms.CheckBox cbUseSGB2; private System.Windows.Forms.CheckBox cbUseSGB2;
private System.Windows.Forms.CheckBox cbFastDSP;
private System.Windows.Forms.CheckBox cbFastCoprocessor;
} }
} }

View File

@ -23,6 +23,8 @@ namespace BizHawk.Client.EmuHawk
RegionOverride = ss.RegionOverride, RegionOverride = ss.RegionOverride,
Hotfixes = ss.Hotfixes, Hotfixes = ss.Hotfixes,
FastPPU = ss.FastPPU, FastPPU = ss.FastPPU,
FastDSP = ss.FastDSP,
FastCoprocessors = ss.FastCoprocessors,
UseSGB2 = ss.UseSGB2, UseSGB2 = ss.UseSGB2,
ShowObj1 = s.ShowOBJ_0, ShowObj1 = s.ShowOBJ_0,
ShowObj2 = s.ShowOBJ_1, ShowObj2 = s.ShowOBJ_1,
@ -47,6 +49,8 @@ namespace BizHawk.Client.EmuHawk
ss.RegionOverride = dlg.RegionOverride; ss.RegionOverride = dlg.RegionOverride;
ss.Hotfixes = dlg.Hotfixes; ss.Hotfixes = dlg.Hotfixes;
ss.FastPPU = dlg.FastPPU; ss.FastPPU = dlg.FastPPU;
ss.FastDSP = dlg.FastDSP;
ss.FastCoprocessors = dlg.FastCoprocessors;
ss.UseSGB2 = dlg.UseSGB2; ss.UseSGB2 = dlg.UseSGB2;
s.ShowOBJ_0 = dlg.ShowObj1; s.ShowOBJ_0 = dlg.ShowObj1;
s.ShowOBJ_1 = dlg.ShowObj2; s.ShowOBJ_1 = dlg.ShowObj2;
@ -90,6 +94,18 @@ namespace BizHawk.Client.EmuHawk
init => cbDoubleSize.Enabled = cbFastPPU.Checked = value; init => cbDoubleSize.Enabled = cbFastPPU.Checked = value;
} }
private bool FastDSP
{
get => cbFastDSP.Checked;
init => cbFastDSP.Checked = value;
}
private bool FastCoprocessors
{
get => cbFastCoprocessor.Checked;
init => cbFastCoprocessor.Checked = value;
}
private bool UseSGB2 private bool UseSGB2
{ {
get => cbUseSGB2.Checked; get => cbUseSGB2.Checked;

View File

@ -250,6 +250,8 @@ namespace BizHawk.Emulation.Cores.Nintendo.BSNES
public BSNES_INPUT_DEVICE right_port; public BSNES_INPUT_DEVICE right_port;
public bool hotfixes; public bool hotfixes;
public bool fast_ppu; public bool fast_ppu;
public bool fast_dsp;
public bool fast_coprocessors;
public REGION_OVERRIDE region_override; public REGION_OVERRIDE region_override;
} }

View File

@ -30,6 +30,8 @@ namespace BizHawk.Emulation.Cores.Nintendo.BSNES
|| o.RegionOverride != _syncSettings.RegionOverride || o.RegionOverride != _syncSettings.RegionOverride
|| o.Hotfixes != _syncSettings.Hotfixes || o.Hotfixes != _syncSettings.Hotfixes
|| o.FastPPU != _syncSettings.FastPPU || o.FastPPU != _syncSettings.FastPPU
|| o.FastDSP != _syncSettings.FastDSP
|| o.FastCoprocessors != _syncSettings.FastCoprocessors
|| o.UseSGB2 != _syncSettings.UseSGB2; || o.UseSGB2 != _syncSettings.UseSGB2;
_syncSettings = o; _syncSettings = o;
@ -79,6 +81,10 @@ namespace BizHawk.Emulation.Cores.Nintendo.BSNES
public bool FastPPU { get; set; } = true; public bool FastPPU { get; set; } = true;
public bool FastDSP { get; set; } = true;
public bool FastCoprocessors { get; set; } = true;
public bool UseSGB2 { get; set; } = true; public bool UseSGB2 { get; set; } = true;
public SnesSyncSettings Clone() public SnesSyncSettings Clone()

View File

@ -70,6 +70,8 @@ namespace BizHawk.Emulation.Cores.Nintendo.BSNES
right_port = _syncSettings.RightPort, right_port = _syncSettings.RightPort,
hotfixes = _syncSettings.Hotfixes, hotfixes = _syncSettings.Hotfixes,
fast_ppu = _syncSettings.FastPPU, fast_ppu = _syncSettings.FastPPU,
fast_dsp = _syncSettings.FastDSP,
fast_coprocessors = _syncSettings.FastCoprocessors,
region_override = _syncSettings.RegionOverride, region_override = _syncSettings.RegionOverride,
}; };
Api.core.snes_init(ref snesInitData); Api.core.snes_init(ref snesInitData);

View File

@ -142,6 +142,8 @@ EXPORT void snes_init(SnesInitData* init_data)
emulator->configure("Hacks/Hotfixes", init_data->hotfixes); emulator->configure("Hacks/Hotfixes", init_data->hotfixes);
emulator->configure("Hacks/PPU/Fast", init_data->fast_ppu); emulator->configure("Hacks/PPU/Fast", init_data->fast_ppu);
emulator->configure("Hacks/DSP/Fast", init_data->fast_dsp);
emulator->configure("Hacks/Coprocessor/DelayedSync", init_data->fast_coprocessors);
emulator->configure("Video/BlurEmulation", false); // blurs the video when not using fast ppu. I don't like it so I disable it here :) emulator->configure("Video/BlurEmulation", false); // blurs the video when not using fast ppu. I don't like it so I disable it here :)
// needed in order to get audio sync working. should probably figure out what exactly this does or how to change that properly // needed in order to get audio sync working. should probably figure out what exactly this does or how to change that properly

View File

@ -34,6 +34,8 @@ struct SnesInitData {
unsigned right_port; unsigned right_port;
bool hotfixes; bool hotfixes;
bool fast_ppu; bool fast_ppu;
bool fast_dsp;
bool fast_coprocessors;
int region_override; int region_override;
}; };