N64: Change the resolutions available in the plugin config dialog when changing to/from Jabo. If the previously selected resolution is not supported by the newly selected plugin a resolution that is close is picked.
This commit is contained in:
parent
ed976055c2
commit
40b42feea3
|
@ -28,6 +28,37 @@ namespace BizHawk.Client.EmuHawk
|
||||||
WrongVersion16
|
WrongVersion16
|
||||||
};
|
};
|
||||||
|
|
||||||
|
string[] validResolutions = {
|
||||||
|
"320 x 240",
|
||||||
|
"400 x 300",
|
||||||
|
"480 x 360",
|
||||||
|
"512 x 384",
|
||||||
|
"640 x 480",
|
||||||
|
"800 x 600",
|
||||||
|
"1024 x 768",
|
||||||
|
"1152 x 864",
|
||||||
|
"1280 x 960",
|
||||||
|
"1400 x 1050",
|
||||||
|
"1600 x 1200",
|
||||||
|
"1920 x 1440",
|
||||||
|
"2048 x 1536"
|
||||||
|
};
|
||||||
|
|
||||||
|
string[] validResolutionsJabo = {
|
||||||
|
"320 x 240",
|
||||||
|
"400 x 300",
|
||||||
|
"512 x 384",
|
||||||
|
"640 x 480",
|
||||||
|
"800 x 600",
|
||||||
|
"1024 x 768",
|
||||||
|
"1152 x 864",
|
||||||
|
"1280 x 960",
|
||||||
|
"1600 x 1200",
|
||||||
|
"848 x 480",
|
||||||
|
"1024 x 576",
|
||||||
|
"1380 x 768"
|
||||||
|
};
|
||||||
|
|
||||||
private JaboStatus currentJaboStatus = JaboStatus.NotReady;
|
private JaboStatus currentJaboStatus = JaboStatus.NotReady;
|
||||||
private string previousPluginSelection = string.Empty;
|
private string previousPluginSelection = string.Empty;
|
||||||
private bool programmaticallyChangingPluginComboBox = false;
|
private bool programmaticallyChangingPluginComboBox = false;
|
||||||
|
@ -398,16 +429,7 @@ namespace BizHawk.Client.EmuHawk
|
||||||
RspTypeDropdown.PopulateFromEnum<N64SyncSettings.RspType>(ss.Rsp);
|
RspTypeDropdown.PopulateFromEnum<N64SyncSettings.RspType>(ss.Rsp);
|
||||||
|
|
||||||
JaboPropertyGrid.SelectedObject = ss.JaboPlugin;
|
JaboPropertyGrid.SelectedObject = ss.JaboPlugin;
|
||||||
|
|
||||||
var video_setting = s.VideoSizeX
|
|
||||||
+ " x "
|
|
||||||
+ s.VideoSizeY;
|
|
||||||
|
|
||||||
var index = VideoResolutionComboBox.Items.IndexOf(video_setting);
|
|
||||||
if (index >= 0)
|
|
||||||
{
|
|
||||||
VideoResolutionComboBox.SelectedIndex = index;
|
|
||||||
}
|
|
||||||
switch (ss.VideoPlugin)
|
switch (ss.VideoPlugin)
|
||||||
{
|
{
|
||||||
case PluginType.GlideMk2:
|
case PluginType.GlideMk2:
|
||||||
|
@ -428,6 +450,16 @@ namespace BizHawk.Client.EmuHawk
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
var video_setting = s.VideoSizeX
|
||||||
|
+ " x "
|
||||||
|
+ s.VideoSizeY;
|
||||||
|
|
||||||
|
var index = VideoResolutionComboBox.Items.IndexOf(video_setting);
|
||||||
|
if (index >= 0)
|
||||||
|
{
|
||||||
|
VideoResolutionComboBox.SelectedIndex = index;
|
||||||
|
}
|
||||||
|
|
||||||
//Rice
|
//Rice
|
||||||
RiceNormalAlphaBlender_CB.Checked = ss.RicePlugin.NormalAlphaBlender;
|
RiceNormalAlphaBlender_CB.Checked = ss.RicePlugin.NormalAlphaBlender;
|
||||||
RiceFastTextureLoading_CB.Checked = ss.RicePlugin.FastTextureLoading;
|
RiceFastTextureLoading_CB.Checked = ss.RicePlugin.FastTextureLoading;
|
||||||
|
@ -927,12 +959,26 @@ namespace BizHawk.Client.EmuHawk
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (VideoResolutionComboBox.SelectedItem == null)
|
||||||
|
{
|
||||||
|
VideoResolutionComboBox.SelectedIndex = 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
var oldResolution = VideoResolutionComboBox.SelectedItem.ToString();
|
||||||
|
var strArr = oldResolution.Split('x');
|
||||||
|
int OldSizeX = int.Parse(strArr[0].Trim());
|
||||||
|
int OldSizeY = int.Parse(strArr[1].Trim());
|
||||||
|
|
||||||
if (PluginComboBox.Text == "Jabo 1.6.1")
|
if (PluginComboBox.Text == "Jabo 1.6.1")
|
||||||
{
|
{
|
||||||
if (currentJaboStatus == JaboStatus.Ready || currentJaboStatus == JaboStatus.ReadyToPatch)
|
if (currentJaboStatus == JaboStatus.Ready || currentJaboStatus == JaboStatus.ReadyToPatch)
|
||||||
{
|
{
|
||||||
jaboStatusLabel.Text = "You are ready to use Jabo.";
|
jaboStatusLabel.Text = "You are ready to use Jabo.";
|
||||||
jaboStatusDetailLabel.Text = "";
|
jaboStatusDetailLabel.Text = "";
|
||||||
|
|
||||||
|
// Change resolution list to jabo
|
||||||
|
VideoResolutionComboBox.Items.Clear();
|
||||||
|
VideoResolutionComboBox.Items.AddRange(validResolutionsJabo);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
@ -959,6 +1005,59 @@ namespace BizHawk.Client.EmuHawk
|
||||||
{
|
{
|
||||||
jaboStatusLabel.Text = "";
|
jaboStatusLabel.Text = "";
|
||||||
jaboStatusDetailLabel.Text = "";
|
jaboStatusDetailLabel.Text = "";
|
||||||
|
|
||||||
|
// Change resolution list to the rest
|
||||||
|
VideoResolutionComboBox.Items.Clear();
|
||||||
|
VideoResolutionComboBox.Items.AddRange(validResolutions);
|
||||||
|
}
|
||||||
|
|
||||||
|
// If the given resolution is in the table, pick it.
|
||||||
|
// Otherwise find a best fit
|
||||||
|
var index = VideoResolutionComboBox.Items.IndexOf(oldResolution);
|
||||||
|
if (index >= 0)
|
||||||
|
{
|
||||||
|
VideoResolutionComboBox.SelectedIndex = index;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
int bestFit = -1;
|
||||||
|
for (int i = 0; i < VideoResolutionComboBox.Items.Count; i++)
|
||||||
|
{
|
||||||
|
string option = (string)VideoResolutionComboBox.Items[i];
|
||||||
|
strArr = option.Split('x');
|
||||||
|
int newSizeX = int.Parse(strArr[0].Trim());
|
||||||
|
int newSizeY = int.Parse(strArr[1].Trim());
|
||||||
|
if (OldSizeX < newSizeX || OldSizeX == newSizeX && OldSizeY < newSizeY)
|
||||||
|
{
|
||||||
|
if (i == 0)
|
||||||
|
{
|
||||||
|
bestFit = 0;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
bestFit = i - 1;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (bestFit < 0)
|
||||||
|
{
|
||||||
|
if (PluginComboBox.Text == "Jabo 1.6.1")
|
||||||
|
{
|
||||||
|
// Pick 8 to avoid picking the widescreen resolutions
|
||||||
|
VideoResolutionComboBox.SelectedIndex = 8;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
VideoResolutionComboBox.SelectedIndex = VideoResolutionComboBox.Items.Count - 1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
VideoResolutionComboBox.SelectedIndex = bestFit;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
previousPluginSelection = PluginComboBox.SelectedItem.ToString();
|
previousPluginSelection = PluginComboBox.SelectedItem.ToString();
|
||||||
|
|
Loading…
Reference in New Issue