@@ -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