diff options
Diffstat (limited to 'src/citra_qt/debugger/registers.cpp')
| -rw-r--r-- | src/citra_qt/debugger/registers.cpp | 33 |
1 files changed, 25 insertions, 8 deletions
diff --git a/src/citra_qt/debugger/registers.cpp b/src/citra_qt/debugger/registers.cpp index ab3666156..5527a2afd 100644 --- a/src/citra_qt/debugger/registers.cpp +++ b/src/citra_qt/debugger/registers.cpp | |||
| @@ -7,8 +7,7 @@ | |||
| 7 | #include "core/core.h" | 7 | #include "core/core.h" |
| 8 | #include "core/arm/arm_interface.h" | 8 | #include "core/arm/arm_interface.h" |
| 9 | 9 | ||
| 10 | RegistersWidget::RegistersWidget(QWidget* parent) : QDockWidget(parent) | 10 | RegistersWidget::RegistersWidget(QWidget* parent) : QDockWidget(parent) { |
| 11 | { | ||
| 12 | cpu_regs_ui.setupUi(this); | 11 | cpu_regs_ui.setupUi(this); |
| 13 | 12 | ||
| 14 | tree = cpu_regs_ui.treeWidget; | 13 | tree = cpu_regs_ui.treeWidget; |
| @@ -18,8 +17,7 @@ RegistersWidget::RegistersWidget(QWidget* parent) : QDockWidget(parent) | |||
| 18 | registers->setExpanded(true); | 17 | registers->setExpanded(true); |
| 19 | CSPR->setExpanded(true); | 18 | CSPR->setExpanded(true); |
| 20 | 19 | ||
| 21 | for (int i = 0; i < 16; ++i) | 20 | for (int i = 0; i < 16; ++i) { |
| 22 | { | ||
| 23 | QTreeWidgetItem* child = new QTreeWidgetItem(QStringList(QString("R[%1]").arg(i, 2, 10, QLatin1Char('0')))); | 21 | QTreeWidgetItem* child = new QTreeWidgetItem(QStringList(QString("R[%1]").arg(i, 2, 10, QLatin1Char('0')))); |
| 24 | registers->addChild(child); | 22 | registers->addChild(child); |
| 25 | } | 23 | } |
| @@ -39,12 +37,16 @@ RegistersWidget::RegistersWidget(QWidget* parent) : QDockWidget(parent) | |||
| 39 | CSPR->addChild(new QTreeWidgetItem(QStringList("C"))); | 37 | CSPR->addChild(new QTreeWidgetItem(QStringList("C"))); |
| 40 | CSPR->addChild(new QTreeWidgetItem(QStringList("Z"))); | 38 | CSPR->addChild(new QTreeWidgetItem(QStringList("Z"))); |
| 41 | CSPR->addChild(new QTreeWidgetItem(QStringList("N"))); | 39 | CSPR->addChild(new QTreeWidgetItem(QStringList("N"))); |
| 40 | |||
| 41 | setEnabled(false); | ||
| 42 | } | 42 | } |
| 43 | 43 | ||
| 44 | void RegistersWidget::OnDebugModeEntered() | 44 | void RegistersWidget::OnDebugModeEntered() { |
| 45 | { | ||
| 46 | ARM_Interface* app_core = Core::g_app_core; | 45 | ARM_Interface* app_core = Core::g_app_core; |
| 47 | 46 | ||
| 47 | if (app_core == nullptr) | ||
| 48 | return; | ||
| 49 | |||
| 48 | for (int i = 0; i < 16; ++i) | 50 | for (int i = 0; i < 16; ++i) |
| 49 | registers->child(i)->setText(1, QString("0x%1").arg(app_core->GetReg(i), 8, 16, QLatin1Char('0'))); | 51 | registers->child(i)->setText(1, QString("0x%1").arg(app_core->GetReg(i), 8, 16, QLatin1Char('0'))); |
| 50 | 52 | ||
| @@ -66,7 +68,22 @@ void RegistersWidget::OnDebugModeEntered() | |||
| 66 | CSPR->child(14)->setText(1, QString("%1").arg((app_core->GetCPSR() >> 31) & 0x1)); // N - Negative/Less than | 68 | CSPR->child(14)->setText(1, QString("%1").arg((app_core->GetCPSR() >> 31) & 0x1)); // N - Negative/Less than |
| 67 | } | 69 | } |
| 68 | 70 | ||
| 69 | void RegistersWidget::OnDebugModeLeft() | 71 | void RegistersWidget::OnDebugModeLeft() { |
| 70 | { | 72 | } |
| 73 | |||
| 74 | void RegistersWidget::OnEmulationStarting(EmuThread* emu_thread) { | ||
| 75 | setEnabled(true); | ||
| 76 | } | ||
| 77 | |||
| 78 | void RegistersWidget::OnEmulationStopping() { | ||
| 79 | // Reset widget text | ||
| 80 | for (int i = 0; i < 16; ++i) | ||
| 81 | registers->child(i)->setText(1, QString("")); | ||
| 82 | |||
| 83 | for (int i = 0; i < 15; ++i) | ||
| 84 | CSPR->child(i)->setText(1, QString("")); | ||
| 85 | |||
| 86 | CSPR->setText(1, QString("")); | ||
| 71 | 87 | ||
| 88 | setEnabled(false); | ||
| 72 | } | 89 | } |