Ram Search - fix some problems with specific value, float is still broken but fixed points should now work
This commit is contained in:
parent
06330c1c12
commit
15ad1d3234
|
@ -225,8 +225,56 @@ namespace BizHawk.MultiClient
|
||||||
UpdateUndoToolBarButtons();
|
UpdateUndoToolBarButtons();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private int? CompareToValue
|
||||||
|
{
|
||||||
|
get
|
||||||
|
{
|
||||||
|
if (PreviousValueRadio.Checked)
|
||||||
|
{
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
else if (SpecificValueRadio.Checked)
|
||||||
|
{
|
||||||
|
return SpecificValueBox.ToRawInt();
|
||||||
|
}
|
||||||
|
else if (SpecificAddressRadio.Checked)
|
||||||
|
{
|
||||||
|
return SpecificAddressBox.ToRawInt();
|
||||||
|
}
|
||||||
|
else if (NumberOfChangesRadio.Checked)
|
||||||
|
{
|
||||||
|
return NumberOfChangesBox.ToRawInt();
|
||||||
|
}
|
||||||
|
else if (DifferenceRadio.Checked)
|
||||||
|
{
|
||||||
|
return DifferenceBox.ToRawInt();
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private int? DifferentByValue
|
||||||
|
{
|
||||||
|
get
|
||||||
|
{
|
||||||
|
if (DifferentByRadio.Checked)
|
||||||
|
{
|
||||||
|
return DifferentByBox.ToRawInt();
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
private void DoSearch()
|
private void DoSearch()
|
||||||
{
|
{
|
||||||
|
Searches.CompareValue = CompareToValue;
|
||||||
|
Searches.DifferentBy = DifferentByValue;
|
||||||
int removed = Searches.DoSearch();
|
int removed = Searches.DoSearch();
|
||||||
SetTotal();
|
SetTotal();
|
||||||
WatchListView.ItemCount = Searches.Count;
|
WatchListView.ItemCount = Searches.Count;
|
||||||
|
@ -1176,7 +1224,7 @@ namespace BizHawk.MultiClient
|
||||||
|
|
||||||
private void CompareToValue_TextChanged(object sender, EventArgs e)
|
private void CompareToValue_TextChanged(object sender, EventArgs e)
|
||||||
{
|
{
|
||||||
SetCompareValue((sender as INumberBox).ToInt());
|
SetCompareValue((sender as INumberBox).ToRawInt());
|
||||||
}
|
}
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
|
@ -1234,7 +1282,7 @@ namespace BizHawk.MultiClient
|
||||||
{
|
{
|
||||||
if (!String.IsNullOrWhiteSpace(DifferentByBox.Text))
|
if (!String.IsNullOrWhiteSpace(DifferentByBox.Text))
|
||||||
{
|
{
|
||||||
Searches.DifferentBy = DifferentByBox.ToInt();
|
Searches.DifferentBy = DifferentByBox.ToRawInt();
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
|
|
@ -217,7 +217,7 @@ namespace BizHawk.MultiClient
|
||||||
default:
|
default:
|
||||||
case Mode.New:
|
case Mode.New:
|
||||||
var domain = Global.Emulator.MemoryDomains.FirstOrDefault(d => d.Name == DomainDropDown.SelectedItem.ToString());
|
var domain = Global.Emulator.MemoryDomains.FirstOrDefault(d => d.Name == DomainDropDown.SelectedItem.ToString());
|
||||||
var address = AddressBox.ToInt();
|
var address = AddressBox.ToRawInt();
|
||||||
var notes = NotesBox.Text;
|
var notes = NotesBox.Text;
|
||||||
var type = Watch.StringToDisplayType(DisplayTypeDropDown.SelectedItem.ToString());
|
var type = Watch.StringToDisplayType(DisplayTypeDropDown.SelectedItem.ToString());
|
||||||
var bigendian = BigEndianCheckBox.Checked;
|
var bigendian = BigEndianCheckBox.Checked;
|
||||||
|
@ -285,7 +285,7 @@ namespace BizHawk.MultiClient
|
||||||
string tempNotes = _watchList[i].Notes;
|
string tempNotes = _watchList[i].Notes;
|
||||||
_watchList[i] = Watch.GenerateWatch(
|
_watchList[i] = Watch.GenerateWatch(
|
||||||
_watchList[i].Domain,
|
_watchList[i].Domain,
|
||||||
_watchList.Count == 1 ? AddressBox.ToInt() : _watchList[i].Address.Value,
|
_watchList.Count == 1 ? AddressBox.ToRawInt() : _watchList[i].Address.Value,
|
||||||
size,
|
size,
|
||||||
_watchList[i].Type,
|
_watchList[i].Type,
|
||||||
_watchList[i].Notes,
|
_watchList[i].Notes,
|
||||||
|
|
|
@ -177,7 +177,7 @@ namespace BizHawk.MultiClient
|
||||||
{
|
{
|
||||||
if (e.KeyCode == Keys.Up)
|
if (e.KeyCode == Keys.Up)
|
||||||
{
|
{
|
||||||
int val = ToInt();
|
int val = ToRawInt();
|
||||||
val++;
|
val++;
|
||||||
|
|
||||||
switch (_type)
|
switch (_type)
|
||||||
|
@ -195,7 +195,7 @@ namespace BizHawk.MultiClient
|
||||||
}
|
}
|
||||||
else if (e.KeyCode == Keys.Down)
|
else if (e.KeyCode == Keys.Down)
|
||||||
{
|
{
|
||||||
int val = ToInt();
|
int val = ToRawInt();
|
||||||
val--;
|
val--;
|
||||||
|
|
||||||
switch (_type)
|
switch (_type)
|
||||||
|
@ -225,7 +225,7 @@ namespace BizHawk.MultiClient
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public int ToInt()
|
public int ToRawInt()
|
||||||
{
|
{
|
||||||
if (String.IsNullOrWhiteSpace(Text))
|
if (String.IsNullOrWhiteSpace(Text))
|
||||||
{
|
{
|
||||||
|
@ -236,11 +236,22 @@ namespace BizHawk.MultiClient
|
||||||
switch (_type)
|
switch (_type)
|
||||||
{
|
{
|
||||||
default:
|
default:
|
||||||
|
case Watch.DisplayType.Signed:
|
||||||
return int.Parse(Text);
|
return int.Parse(Text);
|
||||||
|
case Watch.DisplayType.Unsigned:
|
||||||
|
return (int)uint.Parse(Text);
|
||||||
case Watch.DisplayType.Binary:
|
case Watch.DisplayType.Binary:
|
||||||
return Convert.ToInt32(Text, 2);
|
return Convert.ToInt32(Text, 2);
|
||||||
case Watch.DisplayType.Hex:
|
case Watch.DisplayType.Hex:
|
||||||
return int.Parse(Text, NumberStyles.HexNumber);
|
return int.Parse(Text, NumberStyles.HexNumber);
|
||||||
|
case Watch.DisplayType.FixedPoint_12_4:
|
||||||
|
return (int)(double.Parse(Text) * 16.0);
|
||||||
|
case Watch.DisplayType.FixedPoint_20_12:
|
||||||
|
return (int)(double.Parse(Text) * 4096.0);
|
||||||
|
case Watch.DisplayType.Float:
|
||||||
|
float val = float.Parse(Text);
|
||||||
|
byte[] bytes = BitConverter.GetBytes(val);
|
||||||
|
return BitConverter.ToInt32(bytes, 0);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -6,7 +6,7 @@ namespace BizHawk
|
||||||
{
|
{
|
||||||
public interface INumberBox
|
public interface INumberBox
|
||||||
{
|
{
|
||||||
int ToInt();
|
int ToRawInt();
|
||||||
}
|
}
|
||||||
|
|
||||||
public class HexTextBox : TextBox, INumberBox
|
public class HexTextBox : TextBox, INumberBox
|
||||||
|
@ -34,7 +34,7 @@ namespace BizHawk
|
||||||
{
|
{
|
||||||
if (InputValidate.IsValidHexNumber(Text))
|
if (InputValidate.IsValidHexNumber(Text))
|
||||||
{
|
{
|
||||||
int val = ToInt();
|
int val = ToRawInt();
|
||||||
val++;
|
val++;
|
||||||
string formatstr = "{0:X" + MaxLength.ToString() + "}";
|
string formatstr = "{0:X" + MaxLength.ToString() + "}";
|
||||||
Text = String.Format(formatstr, val);
|
Text = String.Format(formatstr, val);
|
||||||
|
@ -44,7 +44,7 @@ namespace BizHawk
|
||||||
{
|
{
|
||||||
if (InputValidate.IsValidHexNumber(Text))
|
if (InputValidate.IsValidHexNumber(Text))
|
||||||
{
|
{
|
||||||
int val = ToInt();
|
int val = ToRawInt();
|
||||||
val--;
|
val--;
|
||||||
string formatstr = "{0:X" + MaxLength.ToString() + "}";
|
string formatstr = "{0:X" + MaxLength.ToString() + "}";
|
||||||
Text = String.Format(formatstr, val);
|
Text = String.Format(formatstr, val);
|
||||||
|
@ -64,7 +64,7 @@ namespace BizHawk
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public int ToInt()
|
public int ToRawInt()
|
||||||
{
|
{
|
||||||
if (String.IsNullOrWhiteSpace(Text))
|
if (String.IsNullOrWhiteSpace(Text))
|
||||||
{
|
{
|
||||||
|
@ -102,7 +102,7 @@ namespace BizHawk
|
||||||
{
|
{
|
||||||
if (InputValidate.IsValidUnsignedNumber(Text))
|
if (InputValidate.IsValidUnsignedNumber(Text))
|
||||||
{
|
{
|
||||||
int val = ToInt();
|
int val = ToRawInt();
|
||||||
val++;
|
val++;
|
||||||
Text = val.ToString();
|
Text = val.ToString();
|
||||||
}
|
}
|
||||||
|
@ -111,7 +111,7 @@ namespace BizHawk
|
||||||
{
|
{
|
||||||
if (InputValidate.IsValidUnsignedNumber(Text))
|
if (InputValidate.IsValidUnsignedNumber(Text))
|
||||||
{
|
{
|
||||||
int val = ToInt();
|
int val = ToRawInt();
|
||||||
val--;
|
val--;
|
||||||
Text = val.ToString();
|
Text = val.ToString();
|
||||||
}
|
}
|
||||||
|
@ -130,7 +130,7 @@ namespace BizHawk
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public int ToInt()
|
public int ToRawInt()
|
||||||
{
|
{
|
||||||
if (String.IsNullOrWhiteSpace(Text))
|
if (String.IsNullOrWhiteSpace(Text))
|
||||||
{
|
{
|
||||||
|
|
Loading…
Reference in New Issue