From 54b4604d7c56ae00278b92ec208e1eada800fd5d Mon Sep 17 00:00:00 2001 From: Sour Date: Mon, 10 Dec 2018 19:30:09 -0500 Subject: [PATCH] Debugger: Always display watch result with 4 hex digits when using {$00} syntax --- GUI.NET/Debugger/WatchManager.cs | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/GUI.NET/Debugger/WatchManager.cs b/GUI.NET/Debugger/WatchManager.cs index 84ca2eff..bd5fac6b 100644 --- a/GUI.NET/Debugger/WatchManager.cs +++ b/GUI.NET/Debugger/WatchManager.cs @@ -28,7 +28,7 @@ namespace Mesen.GUI.Debugger { var list = new List(); for(int i = 0; i < _watchEntries.Count; i++) { - string expression = _watchEntries[i]; + string expression = _watchEntries[i].Trim(); string newValue = ""; EvalResultType resultType; @@ -40,7 +40,12 @@ namespace Mesen.GUI.Debugger } else { Int32 result = InteropEmu.DebugEvaluateExpression(expression, out resultType, true); switch(resultType) { - case EvalResultType.Numeric: newValue = useHex ? ("$" + result.ToString("X2")) : result.ToString(); break; + case EvalResultType.Numeric: + //When using {$00} syntax to show the value of a word, always display 4 hex characters. + bool displayAsWord = expression.StartsWith("{") && expression.EndsWith("}"); + newValue = useHex ? ("$" + result.ToString(displayAsWord ? "X4" : "X2")) : result.ToString(); + break; + case EvalResultType.Boolean: newValue = result == 0 ? "false" : "true"; break; case EvalResultType.Invalid: newValue = ""; forceHasChanged = true; break; case EvalResultType.DivideBy0: newValue = ""; forceHasChanged = true; break;