N64: Jabo readiness is now detected and displayed in the plugin config dialog.
This commit is contained in:
parent
7d89765568
commit
ae381fc986
|
@ -32,6 +32,7 @@
|
|||
System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(N64VideoPluginconfig));
|
||||
this.N64plugintabcontrol = new System.Windows.Forms.TabControl();
|
||||
this.N64vpluginglobaltab = new System.Windows.Forms.TabPage();
|
||||
this.jaboStatusLabel = new System.Windows.Forms.Label();
|
||||
this.label49 = new System.Windows.Forms.Label();
|
||||
this.RspTypeDropdown = new System.Windows.Forms.ComboBox();
|
||||
this.label48 = new System.Windows.Forms.Label();
|
||||
|
@ -271,11 +272,12 @@
|
|||
this.label58 = new System.Windows.Forms.Label();
|
||||
this.Glide64mk2_filtering = new System.Windows.Forms.ComboBox();
|
||||
this.Glide64mk2_UseDefaultHacks2 = new System.Windows.Forms.CheckBox();
|
||||
this.JaboTab = new System.Windows.Forms.TabPage();
|
||||
this.JaboPropertyGrid = new System.Windows.Forms.PropertyGrid();
|
||||
this.SaveButton = new System.Windows.Forms.Button();
|
||||
this.CancelBT = new System.Windows.Forms.Button();
|
||||
this.toolTip1 = new System.Windows.Forms.ToolTip(this.components);
|
||||
this.JaboTab = new System.Windows.Forms.TabPage();
|
||||
this.JaboPropertyGrid = new System.Windows.Forms.PropertyGrid();
|
||||
this.jaboStatusDetailLabel = new System.Windows.Forms.Label();
|
||||
this.N64plugintabcontrol.SuspendLayout();
|
||||
this.N64vpluginglobaltab.SuspendLayout();
|
||||
this.RiceTabPage.SuspendLayout();
|
||||
|
@ -317,6 +319,8 @@
|
|||
//
|
||||
// N64vpluginglobaltab
|
||||
//
|
||||
this.N64vpluginglobaltab.Controls.Add(this.jaboStatusDetailLabel);
|
||||
this.N64vpluginglobaltab.Controls.Add(this.jaboStatusLabel);
|
||||
this.N64vpluginglobaltab.Controls.Add(this.label49);
|
||||
this.N64vpluginglobaltab.Controls.Add(this.RspTypeDropdown);
|
||||
this.N64vpluginglobaltab.Controls.Add(this.label48);
|
||||
|
@ -334,6 +338,15 @@
|
|||
this.N64vpluginglobaltab.Text = "Global";
|
||||
this.N64vpluginglobaltab.UseVisualStyleBackColor = true;
|
||||
//
|
||||
// jaboStatusLabel
|
||||
//
|
||||
this.jaboStatusLabel.AutoSize = true;
|
||||
this.jaboStatusLabel.Location = new System.Drawing.Point(10, 137);
|
||||
this.jaboStatusLabel.Name = "jaboStatusLabel";
|
||||
this.jaboStatusLabel.Size = new System.Drawing.Size(63, 13);
|
||||
this.jaboStatusLabel.TabIndex = 19;
|
||||
this.jaboStatusLabel.Text = "Jabo Status";
|
||||
//
|
||||
// label49
|
||||
//
|
||||
this.label49.AutoSize = true;
|
||||
|
@ -390,7 +403,7 @@
|
|||
// label2
|
||||
//
|
||||
this.label2.AutoSize = true;
|
||||
this.label2.Location = new System.Drawing.Point(10, 164);
|
||||
this.label2.Location = new System.Drawing.Point(10, 201);
|
||||
this.label2.Name = "label2";
|
||||
this.label2.Size = new System.Drawing.Size(87, 13);
|
||||
this.label2.TabIndex = 13;
|
||||
|
@ -414,7 +427,7 @@
|
|||
"1600 x 1200",
|
||||
"1920 x 1440",
|
||||
"2048 x 1536"});
|
||||
this.VideoResolutionComboBox.Location = new System.Drawing.Point(13, 180);
|
||||
this.VideoResolutionComboBox.Location = new System.Drawing.Point(13, 217);
|
||||
this.VideoResolutionComboBox.Name = "VideoResolutionComboBox";
|
||||
this.VideoResolutionComboBox.Size = new System.Drawing.Size(136, 21);
|
||||
this.VideoResolutionComboBox.TabIndex = 10;
|
||||
|
@ -432,6 +445,7 @@
|
|||
this.PluginComboBox.Name = "PluginComboBox";
|
||||
this.PluginComboBox.Size = new System.Drawing.Size(173, 21);
|
||||
this.PluginComboBox.TabIndex = 5;
|
||||
this.PluginComboBox.SelectedIndexChanged += new System.EventHandler(this.PluginComboBox_SelectedIndexChanged);
|
||||
//
|
||||
// label1
|
||||
//
|
||||
|
@ -3212,6 +3226,26 @@
|
|||
this.Glide64mk2_UseDefaultHacks2.UseVisualStyleBackColor = true;
|
||||
this.Glide64mk2_UseDefaultHacks2.CheckedChanged += new System.EventHandler(this.Glide64mk2_UseDefaultHacks2_CheckedChanged);
|
||||
//
|
||||
// JaboTab
|
||||
//
|
||||
this.JaboTab.Controls.Add(this.JaboPropertyGrid);
|
||||
this.JaboTab.Location = new System.Drawing.Point(4, 22);
|
||||
this.JaboTab.Name = "JaboTab";
|
||||
this.JaboTab.Size = new System.Drawing.Size(572, 343);
|
||||
this.JaboTab.TabIndex = 7;
|
||||
this.JaboTab.Text = "Jabo";
|
||||
this.JaboTab.UseVisualStyleBackColor = true;
|
||||
//
|
||||
// JaboPropertyGrid
|
||||
//
|
||||
this.JaboPropertyGrid.Dock = System.Windows.Forms.DockStyle.Fill;
|
||||
this.JaboPropertyGrid.Location = new System.Drawing.Point(0, 0);
|
||||
this.JaboPropertyGrid.Name = "JaboPropertyGrid";
|
||||
this.JaboPropertyGrid.PropertySort = System.Windows.Forms.PropertySort.NoSort;
|
||||
this.JaboPropertyGrid.Size = new System.Drawing.Size(572, 343);
|
||||
this.JaboPropertyGrid.TabIndex = 4;
|
||||
this.JaboPropertyGrid.ToolbarVisible = false;
|
||||
//
|
||||
// SaveButton
|
||||
//
|
||||
this.SaveButton.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
|
||||
|
@ -3243,25 +3277,14 @@
|
|||
this.toolTip1.ReshowDelay = 100;
|
||||
this.toolTip1.ToolTipIcon = System.Windows.Forms.ToolTipIcon.Info;
|
||||
//
|
||||
// JaboTab
|
||||
// jaboStatusDetailLabel
|
||||
//
|
||||
this.JaboTab.Controls.Add(this.JaboPropertyGrid);
|
||||
this.JaboTab.Location = new System.Drawing.Point(4, 22);
|
||||
this.JaboTab.Name = "JaboTab";
|
||||
this.JaboTab.Size = new System.Drawing.Size(572, 343);
|
||||
this.JaboTab.TabIndex = 7;
|
||||
this.JaboTab.Text = "Jabo";
|
||||
this.JaboTab.UseVisualStyleBackColor = true;
|
||||
//
|
||||
// JaboPropertyGrid
|
||||
//
|
||||
this.JaboPropertyGrid.Dock = System.Windows.Forms.DockStyle.Fill;
|
||||
this.JaboPropertyGrid.Location = new System.Drawing.Point(0, 0);
|
||||
this.JaboPropertyGrid.Name = "JaboPropertyGrid";
|
||||
this.JaboPropertyGrid.PropertySort = System.Windows.Forms.PropertySort.NoSort;
|
||||
this.JaboPropertyGrid.Size = new System.Drawing.Size(572, 343);
|
||||
this.JaboPropertyGrid.TabIndex = 4;
|
||||
this.JaboPropertyGrid.ToolbarVisible = false;
|
||||
this.jaboStatusDetailLabel.AutoSize = true;
|
||||
this.jaboStatusDetailLabel.Location = new System.Drawing.Point(10, 160);
|
||||
this.jaboStatusDetailLabel.Name = "jaboStatusDetailLabel";
|
||||
this.jaboStatusDetailLabel.Size = new System.Drawing.Size(91, 13);
|
||||
this.jaboStatusDetailLabel.TabIndex = 20;
|
||||
this.jaboStatusDetailLabel.Text = "Jabo Status detail";
|
||||
//
|
||||
// N64VideoPluginconfig
|
||||
//
|
||||
|
@ -3564,5 +3587,7 @@
|
|||
private System.Windows.Forms.ComboBox RspTypeDropdown;
|
||||
private System.Windows.Forms.TabPage JaboTab;
|
||||
private System.Windows.Forms.PropertyGrid JaboPropertyGrid;
|
||||
private System.Windows.Forms.Label jaboStatusLabel;
|
||||
private System.Windows.Forms.Label jaboStatusDetailLabel;
|
||||
}
|
||||
}
|
|
@ -9,6 +9,8 @@ using BizHawk.Common.ReflectionExtensions;
|
|||
using BizHawk.Emulation.Cores.Nintendo.N64;
|
||||
using BizHawk.Client.Common;
|
||||
using BizHawk.Client.EmuHawk.ControlExtensions;
|
||||
using System.IO;
|
||||
using System.Security.Cryptography;
|
||||
|
||||
namespace BizHawk.Client.EmuHawk
|
||||
{
|
||||
|
@ -17,6 +19,17 @@ namespace BizHawk.Client.EmuHawk
|
|||
N64Settings s;
|
||||
N64SyncSettings ss;
|
||||
|
||||
enum JaboStatus
|
||||
{
|
||||
NotReady,
|
||||
ReadyToPatch,
|
||||
Ready,
|
||||
WrongVersion21,
|
||||
WrongVersion16
|
||||
};
|
||||
|
||||
JaboStatus currentJaboStatus = JaboStatus.NotReady;
|
||||
|
||||
public N64VideoPluginconfig()
|
||||
{
|
||||
InitializeComponent();
|
||||
|
@ -340,6 +353,41 @@ namespace BizHawk.Client.EmuHawk
|
|||
PluginComboBox.Items.Remove("Jabo 1.6.1");
|
||||
}
|
||||
|
||||
if (File.Exists("dll\\Jabo_Direct3D8_patched.dll"))
|
||||
{
|
||||
byte[] hash = MD5.Create().ComputeHash(File.ReadAllBytes("dll\\Jabo_Direct3D8_patched.dll"));
|
||||
string hash_string = BitConverter.ToString(hash).Replace("-", "");
|
||||
if (hash_string == "F4D6E624489CD88C68A5850426D4D70E")
|
||||
{
|
||||
// jabo is ready to go
|
||||
currentJaboStatus = JaboStatus.Ready;
|
||||
}
|
||||
}
|
||||
else if (File.Exists("dll\\Jabo_Direct3D8.dll"))
|
||||
{
|
||||
byte[] hash = MD5.Create().ComputeHash(File.ReadAllBytes("dll\\Jabo_Direct3D8.dll"));
|
||||
string hash_string = BitConverter.ToString(hash).Replace("-", "");
|
||||
if (hash_string == "4F353AA71E7455B81205D8EC0AA339E1")
|
||||
{
|
||||
// jabo will be patched when a rom is loaded. user is ready to go
|
||||
currentJaboStatus = JaboStatus.ReadyToPatch;
|
||||
}
|
||||
else if (hash_string == "4A4173928ED33735157A8D8CD14D4C9C")
|
||||
{
|
||||
// wrong jabo installed (2.0)
|
||||
currentJaboStatus = JaboStatus.WrongVersion21;
|
||||
}
|
||||
else if (hash_string == "FF57F60C58EDE6364B980EDCB311873B")
|
||||
{
|
||||
// wrong jabo installed (1.6)
|
||||
currentJaboStatus = JaboStatus.WrongVersion16;
|
||||
}
|
||||
else
|
||||
{
|
||||
// this is not the right file
|
||||
}
|
||||
}
|
||||
|
||||
s = GetSettings();
|
||||
ss = GetSyncSettings();
|
||||
|
||||
|
@ -869,5 +917,38 @@ namespace BizHawk.Client.EmuHawk
|
|||
UpdateGlide64mk2HacksSection();
|
||||
}
|
||||
|
||||
private void PluginComboBox_SelectedIndexChanged(object sender, EventArgs e)
|
||||
{
|
||||
if (PluginComboBox.Text == "Jabo 1.6.1")
|
||||
{
|
||||
if (currentJaboStatus == JaboStatus.Ready || currentJaboStatus == JaboStatus.ReadyToPatch)
|
||||
{
|
||||
jaboStatusLabel.Text = "You are ready to use Jabo.";
|
||||
jaboStatusDetailLabel.Text = "";
|
||||
}
|
||||
else
|
||||
{
|
||||
jaboStatusDetailLabel.Text = "To use Jabo please copy Jabo_Direct3D8.dll from a Project64 v1.6.1 installation into Bizhawk's dll directory.";
|
||||
if (currentJaboStatus == JaboStatus.NotReady)
|
||||
{
|
||||
jaboStatusLabel.Text = "You are NOT ready to use Jabo.";
|
||||
}
|
||||
else if (currentJaboStatus == JaboStatus.WrongVersion16)
|
||||
{
|
||||
jaboStatusLabel.Text = "You are NOT ready to use Jabo. Bizhawk requires Jabo Direct3D8 v1.6.1, but found v1.6 instead.";
|
||||
}
|
||||
else if (currentJaboStatus == JaboStatus.WrongVersion21)
|
||||
{
|
||||
jaboStatusLabel.Text = "You are NOT ready to use Jabo. Bizhawk requires Jabo Direct3D8 v1.6.1, but found v2.0 instead.";
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
jaboStatusLabel.Text = "";
|
||||
jaboStatusDetailLabel.Text = "";
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
|
|
@ -120,9 +120,6 @@
|
|||
<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.
|
||||
|
|
Loading…
Reference in New Issue