Skip to content

Commit db390fa

Browse files
committed
[debugger] Add tooltip with 6502 register decimal representation
1 parent 915b3a1 commit db390fa

File tree

1 file changed

+46
-6
lines changed

1 file changed

+46
-6
lines changed

platforms/shared/desktop/gui_debug_huc6280.cpp

Lines changed: 46 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -194,46 +194,86 @@ void gui_debug_window_huc6280(void)
194194
if (ImGui::BeginTable("regs", 2, ImGuiTableFlags_BordersInnerH |ImGuiTableFlags_BordersInnerV | ImGuiTableFlags_NoPadOuterX))
195195
{
196196
ImGui::TableNextColumn();
197+
ImGui::BeginGroup();
197198
ImGui::TextColored(cyan, " A"); ImGui::SameLine();
198199
ImGui::Text(" "); ImGui::SameLine(0, 0);
199200
EditableRegister8(NULL, NULL, HuC6280RegId_A, proc_state->A->GetValue(), HuC6280WriteCallback8, core, EditableRegisterFlags_None);
200201
ImGui::TextColored(gray, BYTE_TO_BINARY_PATTERN_SPACED, BYTE_TO_BINARY(proc_state->A->GetValue()));
202+
ImGui::EndGroup();
203+
if (ImGui::IsItemHovered())
204+
{
205+
ImGui::BeginTooltip();
206+
ImGui::TextColored(cyan, "Hex: $%02X", proc_state->A->GetValue());
207+
ImGui::TextColored(cyan, "Dec: %u (%d)", proc_state->A->GetValue(), (s8)proc_state->A->GetValue());
208+
ImGui::TextColored(cyan, "Bin: " BYTE_TO_BINARY_PATTERN_SPACED, BYTE_TO_BINARY(proc_state->A->GetValue()));
209+
ImGui::TextColored(cyan, "Ascii: %c", (proc_state->A->GetValue() >= 32 && proc_state->A->GetValue() < 127) ? proc_state->A->GetValue() : '.');
210+
ImGui::EndTooltip();
211+
}
201212

202213
ImGui::TableNextColumn();
214+
ImGui::BeginGroup();
203215
ImGui::TextColored(cyan, " S"); ImGui::SameLine();
204216
ImGui::Text(" "); ImGui::SameLine(0, 0);
205217
EditableRegister8(NULL, NULL, HuC6280RegId_S, proc_state->S->GetValue(), HuC6280WriteCallback8, core, EditableRegisterFlags_None);
206218
ImGui::TextColored(gray, BYTE_TO_BINARY_PATTERN_SPACED, BYTE_TO_BINARY(proc_state->S->GetValue()));
219+
ImGui::EndGroup();
220+
if (ImGui::IsItemHovered())
221+
{
222+
ImGui::BeginTooltip();
223+
ImGui::TextColored(cyan, "Hex: $%02X", proc_state->S->GetValue());
224+
ImGui::TextColored(cyan, "Dec: %u (%d)", proc_state->S->GetValue(), (s8)proc_state->S->GetValue());
225+
ImGui::TextColored(cyan, "Bin: " BYTE_TO_BINARY_PATTERN_SPACED, BYTE_TO_BINARY(proc_state->S->GetValue()));
226+
ImGui::TextColored(cyan, "Ascii: %c", (proc_state->S->GetValue() >= 32 && proc_state->S->GetValue() < 127) ? proc_state->S->GetValue() : '.');
227+
ImGui::EndTooltip();
228+
}
207229

208230
ImGui::TableNextColumn();
231+
ImGui::BeginGroup();
209232
ImGui::TextColored(cyan, " X"); ImGui::SameLine();
210233
ImGui::Text(" "); ImGui::SameLine(0, 0);
211234
EditableRegister8(NULL, NULL, HuC6280RegId_X, proc_state->X->GetValue(), HuC6280WriteCallback8, core, EditableRegisterFlags_None);
212235
ImGui::TextColored(gray, BYTE_TO_BINARY_PATTERN_SPACED, BYTE_TO_BINARY(proc_state->X->GetValue()));
236+
ImGui::EndGroup();
237+
if (ImGui::IsItemHovered())
238+
{
239+
ImGui::BeginTooltip();
240+
ImGui::TextColored(cyan, "Hex: $%02X", proc_state->X->GetValue());
241+
ImGui::TextColored(cyan, "Dec: %u (%d)", proc_state->X->GetValue(), (s8)proc_state->X->GetValue());
242+
ImGui::TextColored(cyan, "Bin: " BYTE_TO_BINARY_PATTERN_SPACED, BYTE_TO_BINARY(proc_state->X->GetValue()));
243+
ImGui::TextColored(cyan, "Ascii: %c", (proc_state->X->GetValue() >= 32 && proc_state->X->GetValue() < 127) ? proc_state->X->GetValue() : '.');
244+
ImGui::EndTooltip();
245+
}
213246

214247
ImGui::TableNextColumn();
248+
ImGui::BeginGroup();
215249
ImGui::TextColored(cyan, " Y"); ImGui::SameLine();
216250
ImGui::Text(" "); ImGui::SameLine(0, 0);
217251
EditableRegister8(NULL, NULL, HuC6280RegId_Y, proc_state->Y->GetValue(), HuC6280WriteCallback8, core, EditableRegisterFlags_None);
218252
ImGui::TextColored(gray, BYTE_TO_BINARY_PATTERN_SPACED, BYTE_TO_BINARY(proc_state->Y->GetValue()));
253+
ImGui::EndGroup();
254+
if (ImGui::IsItemHovered())
255+
{
256+
ImGui::BeginTooltip();
257+
ImGui::TextColored(cyan, "Hex: $%02X", proc_state->Y->GetValue());
258+
ImGui::TextColored(cyan, "Dec: %u (%d)", proc_state->Y->GetValue(), (s8)proc_state->Y->GetValue());
259+
ImGui::TextColored(cyan, "Bin: " BYTE_TO_BINARY_PATTERN_SPACED, BYTE_TO_BINARY(proc_state->Y->GetValue()));
260+
ImGui::TextColored(cyan, "Ascii: %c", (proc_state->Y->GetValue() >= 32 && proc_state->Y->GetValue() < 127) ? proc_state->Y->GetValue() : '.');
261+
ImGui::EndTooltip();
262+
}
219263

220264
for (u8 i = 0; i < 8; i++)
221265
{
222266
char label[8];
223267
snprintf(label, sizeof(label), "MPR%d", i);
224268
ImGui::TableNextColumn();
269+
ImGui::BeginGroup();
225270
ImGui::TextColored(violet, "%s", label); ImGui::SameLine();
226-
if (ImGui::IsItemClicked())
227-
goto_address(memory->GetMpr(i));
228271
ImGui::Text(""); ImGui::SameLine(0, 0);
229272
EditableRegister8(NULL, NULL, HuC6280RegId_MPR0 + i, memory->GetMpr(i), HuC6280WriteCallback8, core, EditableRegisterFlags_None);
230-
if (ImGui::IsItemClicked())
231-
goto_address(memory->GetMpr(i));
232273
ImGui::TextColored(gray, BYTE_TO_BINARY_PATTERN_SPACED, BYTE_TO_BINARY(memory->GetMpr(i)));
233274
get_bank_name(i, memory->GetMpr(i), mpr_name, mpr_tooltip);
234-
if (ImGui::IsItemClicked())
235-
goto_address(memory->GetMpr(i));
236275
ImGui::TextColored(brown, " %s", mpr_name);
276+
ImGui::EndGroup();
237277
if (ImGui::IsItemClicked())
238278
goto_address(memory->GetMpr(i));
239279
if (ImGui::IsItemHovered(ImGuiHoveredFlags_AllowWhenDisabled))

0 commit comments

Comments
 (0)