diff --git a/BizHawk.MultiClient/tools/RamSearch.Designer.cs b/BizHawk.MultiClient/tools/RamSearch.Designer.cs
index 82d4b52a65..7a1c20af25 100644
--- a/BizHawk.MultiClient/tools/RamSearch.Designer.cs
+++ b/BizHawk.MultiClient/tools/RamSearch.Designer.cs
@@ -392,7 +392,7 @@
this.toolStripButton1.ImageTransparentColor = System.Drawing.Color.Magenta;
this.toolStripButton1.Name = "toolStripButton1";
this.toolStripButton1.Size = new System.Drawing.Size(23, 22);
- this.toolStripButton1.Text = "toolStripButton1";
+ this.toolStripButton1.Text = "Search";
this.toolStripButton1.Click += new System.EventHandler(this.toolStripButton1_Click);
//
// ClearChangeCountstoolStripButton
diff --git a/BizHawk.MultiClient/tools/RamSearch.cs b/BizHawk.MultiClient/tools/RamSearch.cs
index f8060f446c..90ec164adf 100644
--- a/BizHawk.MultiClient/tools/RamSearch.cs
+++ b/BizHawk.MultiClient/tools/RamSearch.cs
@@ -461,11 +461,49 @@ namespace BizHawk.MultiClient
private bool DoPreviousValue()
{
+ switch (GetOperator())
+ {
+ case SOperator.LESS:
+ break;
+ case SOperator.GREATER:
+ break;
+ case SOperator.LESSEQUAL:
+ break;
+ case SOperator.GREATEREQUAL:
+ break;
+ case SOperator.EQUAL:
+ break;
+ case SOperator.NOTEQUAL:
+ break;
+ case SOperator.DIFFBY:
+ break;
+ case SOperator.MODULUS:
+ break;
+ }
return false;
}
private bool DoSpecificValue()
{
+ switch (GetOperator())
+ {
+ case SOperator.LESS:
+ break;
+ case SOperator.GREATER:
+ break;
+ case SOperator.LESSEQUAL:
+ break;
+ case SOperator.GREATEREQUAL:
+ break;
+ case SOperator.EQUAL:
+ break;
+ case SOperator.NOTEQUAL:
+ break;
+ case SOperator.DIFFBY:
+ break;
+ case SOperator.MODULUS:
+ break;
+ }
return false;
}
@@ -563,9 +601,87 @@ namespace BizHawk.MultiClient
return true;
}
+ private int GetSpecificChanges()
+ {
+ bool i = InputValidate.IsValidUnsignedNumber(NumberOfChangesBox.Text);
+ if (!i) return -1;
+
+ return int.Parse(NumberOfChangesBox.Text.ToUpper().Trim());
+ }
+
private bool DoNumberOfChanges()
{
- return false;
+ int changes = GetSpecificChanges();
+ if (changes < 0)
+ {
+ MessageBox.Show("Missing or invalid number of changes", "Invalid number", MessageBoxButtons.OK, MessageBoxIcon.Error);
+ NumberOfChangesBox.Focus();
+ NumberOfChangesBox.SelectAll();
+ return false;
+ }
+ switch (GetOperator())
+ {
+ case SOperator.LESS:
+ for (int x = 0; x < searchList.Count; x++)
+ {
+ if (searchList[x].changecount < changes)
+ weededList.Add(searchList[x]);
+ }
+ break;
+ case SOperator.GREATER:
+ for (int x = 0; x < searchList.Count; x++)
+ {
+ if (searchList[x].changecount > changes)
+ weededList.Add(searchList[x]);
+ }
+ break;
+ case SOperator.LESSEQUAL:
+ for (int x = 0; x < searchList.Count; x++)
+ {
+ if (searchList[x].changecount <= changes)
+ weededList.Add(searchList[x]);
+ }
+ break;
+ case SOperator.GREATEREQUAL:
+ for (int x = 0; x < searchList.Count; x++)
+ {
+ if (searchList[x].changecount >= changes)
+ weededList.Add(searchList[x]);
+ }
+ break;
+ case SOperator.EQUAL:
+ for (int x = 0; x < searchList.Count; x++)
+ {
+ if (searchList[x].changecount == changes)
+ weededList.Add(searchList[x]);
+ }
+ break;
+ case SOperator.NOTEQUAL:
+ for (int x = 0; x < searchList.Count; x++)
+ {
+ if (searchList[x].changecount != changes)
+ weededList.Add(searchList[x]);
+ }
+ break;
+ case SOperator.DIFFBY:
+ int diff = GetDifferentBy();
+ if (diff < 0)
+ {
+ MessageBox.Show("Missing or invalid Different By value", "Invalid value", MessageBoxButtons.OK, MessageBoxIcon.Error);
+ DifferentByBox.Focus();
+ DifferentByBox.SelectAll();
+ return false;
+ }
+ for (int x = 0; x < searchList.Count; x++)
+ {
+ if (searchList[x].address == changes + diff || searchList[x].address == changes - diff)
+ weededList.Add(searchList[x]);
+ }
+ break;
+ case SOperator.MODULUS:
+ break;
+ }
+ return true;
}
private void signedToolStripMenuItem_Click(object sender, EventArgs e)
diff --git a/BizHawk.MultiClient/tools/RamSearch.resx b/BizHawk.MultiClient/tools/RamSearch.resx
index 5597b9c11f..70c8b2fa77 100644
--- a/BizHawk.MultiClient/tools/RamSearch.resx
+++ b/BizHawk.MultiClient/tools/RamSearch.resx
@@ -171,9 +171,6 @@
259, 17
-
- 358, 17
-
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
@@ -205,6 +202,9 @@
s1c0gHPmbrPTpHNJKOCo2G1mZs20zcwUJ5yp1AB5+8/zEwgF5GMVDxh4AAAAAElFTkSuQmCC
+
+ 358, 17
+
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8