diff --git a/BizHawk.MultiClient/tools/HexEditor.cs b/BizHawk.MultiClient/tools/HexEditor.cs index c01c25c94b..08a8d07929 100644 --- a/BizHawk.MultiClient/tools/HexEditor.cs +++ b/BizHawk.MultiClient/tools/HexEditor.cs @@ -1271,15 +1271,40 @@ namespace BizHawk.MultiClient prompt.SetMessage("Enter a set of hex values to search for"); prompt.SetCasing(CharacterCasing.Upper); prompt.HexOnly = true; + if (addressHighlighted > 0) + { + string initial = String.Format(DigitFormatString, (int)MakeValue(addressHighlighted)); + initial = initial.Trim(); + prompt.SetInitialValue(initial); + } prompt.ShowDialog(); + + if (prompt.UserOK) { int found = 0; string search = prompt.UserText.Replace(" ", "").ToUpper(); + if (search.Length == 0) + return; int numByte = search.Length / 2; - for (int i = 0; i < (Domain.Size - numByte); i++) + + int startByte = 0; + if (addressHighlighted == -1) + { + startByte = 0; + } + else if (addressHighlighted >= (Domain.Size - 1 - numByte)) + { + startByte = 0; + } + else + { + startByte = addressHighlighted + DataSize; + } + + for (int i = startByte; i < (Domain.Size - numByte); i++) { StringBuilder ramblock = new StringBuilder(); for (int j = 0; j < numByte; j++) diff --git a/BizHawk.MultiClient/tools/InputPrompt.cs b/BizHawk.MultiClient/tools/InputPrompt.cs index 185b0aa976..670c79d6e8 100644 --- a/BizHawk.MultiClient/tools/InputPrompt.cs +++ b/BizHawk.MultiClient/tools/InputPrompt.cs @@ -32,6 +32,11 @@ namespace BizHawk.MultiClient PromptBox.CharacterCasing = casing; } + public void SetInitialValue(string value) + { + PromptBox.Text = value; + } + private void InputPrompt_Load(object sender, EventArgs e) {