summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorGravatar Subv2018-06-12 20:33:32 -0500
committerGravatar Subv2018-06-12 20:33:32 -0500
commit7786f41cc0a0549d1bfb7c4ccafca9e39b897cb3 (patch)
tree869c214534f86c0253a0aff7ca0f105b58a42d7d /src
parentMerge pull request #555 from Subv/gpu_sysregs (diff)
downloadyuzu-7786f41cc0a0549d1bfb7c4ccafca9e39b897cb3.tar.gz
yuzu-7786f41cc0a0549d1bfb7c4ccafca9e39b897cb3.tar.xz
yuzu-7786f41cc0a0549d1bfb7c4ccafca9e39b897cb3.zip
Qt: Removed the Registers widget.
It was crashing and nobody actually uses this.
Diffstat (limited to 'src')
-rw-r--r--src/yuzu/CMakeLists.txt3
-rw-r--r--src/yuzu/debugger/registers.cpp190
-rw-r--r--src/yuzu/debugger/registers.h42
-rw-r--r--src/yuzu/debugger/registers.ui40
-rw-r--r--src/yuzu/main.cpp15
-rw-r--r--src/yuzu/main.h2
6 files changed, 0 insertions, 292 deletions
diff --git a/src/yuzu/CMakeLists.txt b/src/yuzu/CMakeLists.txt
index 5af3154d7..c662570d2 100644
--- a/src/yuzu/CMakeLists.txt
+++ b/src/yuzu/CMakeLists.txt
@@ -32,8 +32,6 @@ add_executable(yuzu
32 debugger/graphics/graphics_surface.h 32 debugger/graphics/graphics_surface.h
33 debugger/profiler.cpp 33 debugger/profiler.cpp
34 debugger/profiler.h 34 debugger/profiler.h
35 debugger/registers.cpp
36 debugger/registers.h
37 debugger/wait_tree.cpp 35 debugger/wait_tree.cpp
38 debugger/wait_tree.h 36 debugger/wait_tree.h
39 game_list.cpp 37 game_list.cpp
@@ -60,7 +58,6 @@ set(UIS
60 configuration/configure_graphics.ui 58 configuration/configure_graphics.ui
61 configuration/configure_input.ui 59 configuration/configure_input.ui
62 configuration/configure_system.ui 60 configuration/configure_system.ui
63 debugger/registers.ui
64 hotkeys.ui 61 hotkeys.ui
65 main.ui 62 main.ui
66) 63)
diff --git a/src/yuzu/debugger/registers.cpp b/src/yuzu/debugger/registers.cpp
deleted file mode 100644
index 178cc65a7..000000000
--- a/src/yuzu/debugger/registers.cpp
+++ /dev/null
@@ -1,190 +0,0 @@
1// Copyright 2014 Citra Emulator Project
2// Licensed under GPLv2 or any later version
3// Refer to the license.txt file included.
4
5#include <QTreeWidgetItem>
6#include "core/arm/arm_interface.h"
7#include "core/core.h"
8#include "yuzu/debugger/registers.h"
9#include "yuzu/util/util.h"
10
11RegistersWidget::RegistersWidget(QWidget* parent) : QDockWidget(parent) {
12 cpu_regs_ui.setupUi(this);
13
14 tree = cpu_regs_ui.treeWidget;
15 tree->addTopLevelItem(core_registers = new QTreeWidgetItem(QStringList(tr("Registers"))));
16 tree->addTopLevelItem(vfp_registers = new QTreeWidgetItem(QStringList(tr("VFP Registers"))));
17 tree->addTopLevelItem(vfp_system_registers =
18 new QTreeWidgetItem(QStringList(tr("VFP System Registers"))));
19 tree->addTopLevelItem(cpsr = new QTreeWidgetItem(QStringList("CPSR")));
20
21 for (int i = 0; i < 16; ++i) {
22 QTreeWidgetItem* child = new QTreeWidgetItem(QStringList(QString("R[%1]").arg(i)));
23 core_registers->addChild(child);
24 }
25
26 for (int i = 0; i < 32; ++i) {
27 QTreeWidgetItem* child = new QTreeWidgetItem(QStringList(QString("S[%1]").arg(i)));
28 vfp_registers->addChild(child);
29 }
30
31 QFont font = GetMonospaceFont();
32
33 CreateCPSRChildren();
34 CreateVFPSystemRegisterChildren();
35
36 // Set Registers to display in monospace font
37 for (int i = 0; i < core_registers->childCount(); ++i)
38 core_registers->child(i)->setFont(1, font);
39
40 for (int i = 0; i < vfp_registers->childCount(); ++i)
41 vfp_registers->child(i)->setFont(1, font);
42
43 for (int i = 0; i < vfp_system_registers->childCount(); ++i) {
44 vfp_system_registers->child(i)->setFont(1, font);
45 for (int x = 0; x < vfp_system_registers->child(i)->childCount(); ++x) {
46 vfp_system_registers->child(i)->child(x)->setFont(1, font);
47 }
48 }
49 // Set CSPR to display in monospace font
50 cpsr->setFont(1, font);
51 for (int i = 0; i < cpsr->childCount(); ++i) {
52 cpsr->child(i)->setFont(1, font);
53 for (int x = 0; x < cpsr->child(i)->childCount(); ++x) {
54 cpsr->child(i)->child(x)->setFont(1, font);
55 }
56 }
57 setEnabled(false);
58}
59
60void RegistersWidget::OnDebugModeEntered() {
61 if (!Core::System::GetInstance().IsPoweredOn())
62 return;
63
64 for (int i = 0; i < core_registers->childCount(); ++i)
65 core_registers->child(i)->setText(
66 1, QString("0x%1").arg(Core::CurrentArmInterface().GetReg(i), 8, 16, QLatin1Char('0')));
67
68 UpdateCPSRValues();
69}
70
71void RegistersWidget::OnDebugModeLeft() {}
72
73void RegistersWidget::OnEmulationStarting(EmuThread* emu_thread) {
74 setEnabled(true);
75}
76
77void RegistersWidget::OnEmulationStopping() {
78 // Reset widget text
79 for (int i = 0; i < core_registers->childCount(); ++i)
80 core_registers->child(i)->setText(1, QString(""));
81
82 for (int i = 0; i < vfp_registers->childCount(); ++i)
83 vfp_registers->child(i)->setText(1, QString(""));
84
85 for (int i = 0; i < cpsr->childCount(); ++i)
86 cpsr->child(i)->setText(1, QString(""));
87
88 cpsr->setText(1, QString(""));
89
90 // FPSCR
91 for (int i = 0; i < vfp_system_registers->child(0)->childCount(); ++i)
92 vfp_system_registers->child(0)->child(i)->setText(1, QString(""));
93
94 // FPEXC
95 for (int i = 0; i < vfp_system_registers->child(1)->childCount(); ++i)
96 vfp_system_registers->child(1)->child(i)->setText(1, QString(""));
97
98 vfp_system_registers->child(0)->setText(1, QString(""));
99 vfp_system_registers->child(1)->setText(1, QString(""));
100 vfp_system_registers->child(2)->setText(1, QString(""));
101 vfp_system_registers->child(3)->setText(1, QString(""));
102
103 setEnabled(false);
104}
105
106void RegistersWidget::CreateCPSRChildren() {
107 cpsr->addChild(new QTreeWidgetItem(QStringList("M")));
108 cpsr->addChild(new QTreeWidgetItem(QStringList("T")));
109 cpsr->addChild(new QTreeWidgetItem(QStringList("F")));
110 cpsr->addChild(new QTreeWidgetItem(QStringList("I")));
111 cpsr->addChild(new QTreeWidgetItem(QStringList("A")));
112 cpsr->addChild(new QTreeWidgetItem(QStringList("E")));
113 cpsr->addChild(new QTreeWidgetItem(QStringList("IT")));
114 cpsr->addChild(new QTreeWidgetItem(QStringList("GE")));
115 cpsr->addChild(new QTreeWidgetItem(QStringList("DNM")));
116 cpsr->addChild(new QTreeWidgetItem(QStringList("J")));
117 cpsr->addChild(new QTreeWidgetItem(QStringList("Q")));
118 cpsr->addChild(new QTreeWidgetItem(QStringList("V")));
119 cpsr->addChild(new QTreeWidgetItem(QStringList("C")));
120 cpsr->addChild(new QTreeWidgetItem(QStringList("Z")));
121 cpsr->addChild(new QTreeWidgetItem(QStringList("N")));
122}
123
124void RegistersWidget::UpdateCPSRValues() {
125 const u32 cpsr_val = Core::CurrentArmInterface().GetCPSR();
126
127 cpsr->setText(1, QString("0x%1").arg(cpsr_val, 8, 16, QLatin1Char('0')));
128 cpsr->child(0)->setText(
129 1, QString("b%1").arg(cpsr_val & 0x1F, 5, 2, QLatin1Char('0'))); // M - Mode
130 cpsr->child(1)->setText(1, QString::number((cpsr_val >> 5) & 1)); // T - State
131 cpsr->child(2)->setText(1, QString::number((cpsr_val >> 6) & 1)); // F - FIQ disable
132 cpsr->child(3)->setText(1, QString::number((cpsr_val >> 7) & 1)); // I - IRQ disable
133 cpsr->child(4)->setText(1, QString::number((cpsr_val >> 8) & 1)); // A - Imprecise abort
134 cpsr->child(5)->setText(1, QString::number((cpsr_val >> 9) & 1)); // E - Data endianness
135 cpsr->child(6)->setText(1,
136 QString::number((cpsr_val >> 10) & 0x3F)); // IT - If-Then state (DNM)
137 cpsr->child(7)->setText(1,
138 QString::number((cpsr_val >> 16) & 0xF)); // GE - Greater-than-or-Equal
139 cpsr->child(8)->setText(1, QString::number((cpsr_val >> 20) & 0xF)); // DNM - Do not modify
140 cpsr->child(9)->setText(1, QString::number((cpsr_val >> 24) & 1)); // J - Jazelle
141 cpsr->child(10)->setText(1, QString::number((cpsr_val >> 27) & 1)); // Q - Saturation
142 cpsr->child(11)->setText(1, QString::number((cpsr_val >> 28) & 1)); // V - Overflow
143 cpsr->child(12)->setText(1, QString::number((cpsr_val >> 29) & 1)); // C - Carry/Borrow/Extend
144 cpsr->child(13)->setText(1, QString::number((cpsr_val >> 30) & 1)); // Z - Zero
145 cpsr->child(14)->setText(1, QString::number((cpsr_val >> 31) & 1)); // N - Negative/Less than
146}
147
148void RegistersWidget::CreateVFPSystemRegisterChildren() {
149 QTreeWidgetItem* const fpscr = new QTreeWidgetItem(QStringList("FPSCR"));
150 fpscr->addChild(new QTreeWidgetItem(QStringList("IOC")));
151 fpscr->addChild(new QTreeWidgetItem(QStringList("DZC")));
152 fpscr->addChild(new QTreeWidgetItem(QStringList("OFC")));
153 fpscr->addChild(new QTreeWidgetItem(QStringList("UFC")));
154 fpscr->addChild(new QTreeWidgetItem(QStringList("IXC")));
155 fpscr->addChild(new QTreeWidgetItem(QStringList("IDC")));
156 fpscr->addChild(new QTreeWidgetItem(QStringList("IOE")));
157 fpscr->addChild(new QTreeWidgetItem(QStringList("DZE")));
158 fpscr->addChild(new QTreeWidgetItem(QStringList("OFE")));
159 fpscr->addChild(new QTreeWidgetItem(QStringList("UFE")));
160 fpscr->addChild(new QTreeWidgetItem(QStringList("IXE")));
161 fpscr->addChild(new QTreeWidgetItem(QStringList("IDE")));
162 fpscr->addChild(new QTreeWidgetItem(QStringList(tr("Vector Length"))));
163 fpscr->addChild(new QTreeWidgetItem(QStringList(tr("Vector Stride"))));
164 fpscr->addChild(new QTreeWidgetItem(QStringList(tr("Rounding Mode"))));
165 fpscr->addChild(new QTreeWidgetItem(QStringList("FZ")));
166 fpscr->addChild(new QTreeWidgetItem(QStringList("DN")));
167 fpscr->addChild(new QTreeWidgetItem(QStringList("V")));
168 fpscr->addChild(new QTreeWidgetItem(QStringList("C")));
169 fpscr->addChild(new QTreeWidgetItem(QStringList("Z")));
170 fpscr->addChild(new QTreeWidgetItem(QStringList("N")));
171
172 QTreeWidgetItem* const fpexc = new QTreeWidgetItem(QStringList("FPEXC"));
173 fpexc->addChild(new QTreeWidgetItem(QStringList("IOC")));
174 fpexc->addChild(new QTreeWidgetItem(QStringList("OFC")));
175 fpexc->addChild(new QTreeWidgetItem(QStringList("UFC")));
176 fpexc->addChild(new QTreeWidgetItem(QStringList("INV")));
177 fpexc->addChild(new QTreeWidgetItem(QStringList(tr("Vector Iteration Count"))));
178 fpexc->addChild(new QTreeWidgetItem(QStringList("FP2V")));
179 fpexc->addChild(new QTreeWidgetItem(QStringList("EN")));
180 fpexc->addChild(new QTreeWidgetItem(QStringList("EX")));
181
182 vfp_system_registers->addChild(fpscr);
183 vfp_system_registers->addChild(fpexc);
184 vfp_system_registers->addChild(new QTreeWidgetItem(QStringList("FPINST")));
185 vfp_system_registers->addChild(new QTreeWidgetItem(QStringList("FPINST2")));
186}
187
188void RegistersWidget::UpdateVFPSystemRegisterValues() {
189 UNIMPLEMENTED();
190}
diff --git a/src/yuzu/debugger/registers.h b/src/yuzu/debugger/registers.h
deleted file mode 100644
index 55bda5b59..000000000
--- a/src/yuzu/debugger/registers.h
+++ /dev/null
@@ -1,42 +0,0 @@
1// Copyright 2014 Citra Emulator Project
2// Licensed under GPLv2 or any later version
3// Refer to the license.txt file included.
4
5#pragma once
6
7#include <QDockWidget>
8#include "ui_registers.h"
9
10class QTreeWidget;
11class QTreeWidgetItem;
12class EmuThread;
13
14class RegistersWidget : public QDockWidget {
15 Q_OBJECT
16
17public:
18 explicit RegistersWidget(QWidget* parent = nullptr);
19
20public slots:
21 void OnDebugModeEntered();
22 void OnDebugModeLeft();
23
24 void OnEmulationStarting(EmuThread* emu_thread);
25 void OnEmulationStopping();
26
27private:
28 void CreateCPSRChildren();
29 void UpdateCPSRValues();
30
31 void CreateVFPSystemRegisterChildren();
32 void UpdateVFPSystemRegisterValues();
33
34 Ui::ARMRegisters cpu_regs_ui;
35
36 QTreeWidget* tree;
37
38 QTreeWidgetItem* core_registers;
39 QTreeWidgetItem* vfp_registers;
40 QTreeWidgetItem* vfp_system_registers;
41 QTreeWidgetItem* cpsr;
42};
diff --git a/src/yuzu/debugger/registers.ui b/src/yuzu/debugger/registers.ui
deleted file mode 100644
index c81ae03f9..000000000
--- a/src/yuzu/debugger/registers.ui
+++ /dev/null
@@ -1,40 +0,0 @@
1<?xml version="1.0" encoding="UTF-8"?>
2<ui version="4.0">
3 <class>ARMRegisters</class>
4 <widget class="QDockWidget" name="ARMRegisters">
5 <property name="geometry">
6 <rect>
7 <x>0</x>
8 <y>0</y>
9 <width>400</width>
10 <height>300</height>
11 </rect>
12 </property>
13 <property name="windowTitle">
14 <string>ARM Registers</string>
15 </property>
16 <widget class="QWidget" name="dockWidgetContents">
17 <layout class="QVBoxLayout" name="verticalLayout">
18 <item>
19 <widget class="QTreeWidget" name="treeWidget">
20 <property name="alternatingRowColors">
21 <bool>true</bool>
22 </property>
23 <column>
24 <property name="text">
25 <string>Register</string>
26 </property>
27 </column>
28 <column>
29 <property name="text">
30 <string>Value</string>
31 </property>
32 </column>
33 </widget>
34 </item>
35 </layout>
36 </widget>
37 </widget>
38 <resources/>
39 <connections/>
40</ui>
diff --git a/src/yuzu/main.cpp b/src/yuzu/main.cpp
index 3038bd6da..aa9028399 100644
--- a/src/yuzu/main.cpp
+++ b/src/yuzu/main.cpp
@@ -33,7 +33,6 @@
33#include "yuzu/debugger/graphics/graphics_breakpoints.h" 33#include "yuzu/debugger/graphics/graphics_breakpoints.h"
34#include "yuzu/debugger/graphics/graphics_surface.h" 34#include "yuzu/debugger/graphics/graphics_surface.h"
35#include "yuzu/debugger/profiler.h" 35#include "yuzu/debugger/profiler.h"
36#include "yuzu/debugger/registers.h"
37#include "yuzu/debugger/wait_tree.h" 36#include "yuzu/debugger/wait_tree.h"
38#include "yuzu/game_list.h" 37#include "yuzu/game_list.h"
39#include "yuzu/hotkeys.h" 38#include "yuzu/hotkeys.h"
@@ -169,15 +168,6 @@ void GMainWindow::InitializeDebugWidgets() {
169 debug_menu->addAction(microProfileDialog->toggleViewAction()); 168 debug_menu->addAction(microProfileDialog->toggleViewAction());
170#endif 169#endif
171 170
172 registersWidget = new RegistersWidget(this);
173 addDockWidget(Qt::RightDockWidgetArea, registersWidget);
174 registersWidget->hide();
175 debug_menu->addAction(registersWidget->toggleViewAction());
176 connect(this, &GMainWindow::EmulationStarting, registersWidget,
177 &RegistersWidget::OnEmulationStarting);
178 connect(this, &GMainWindow::EmulationStopping, registersWidget,
179 &RegistersWidget::OnEmulationStopping);
180
181 graphicsBreakpointsWidget = new GraphicsBreakPointsWidget(debug_context, this); 171 graphicsBreakpointsWidget = new GraphicsBreakPointsWidget(debug_context, this);
182 addDockWidget(Qt::RightDockWidgetArea, graphicsBreakpointsWidget); 172 addDockWidget(Qt::RightDockWidgetArea, graphicsBreakpointsWidget);
183 graphicsBreakpointsWidget->hide(); 173 graphicsBreakpointsWidget->hide();
@@ -460,17 +450,12 @@ void GMainWindow::BootGame(const QString& filename) {
460 connect(render_window, &GRenderWindow::Closed, this, &GMainWindow::OnStopGame); 450 connect(render_window, &GRenderWindow::Closed, this, &GMainWindow::OnStopGame);
461 // BlockingQueuedConnection is important here, it makes sure we've finished refreshing our views 451 // BlockingQueuedConnection is important here, it makes sure we've finished refreshing our views
462 // before the CPU continues 452 // before the CPU continues
463 connect(emu_thread.get(), &EmuThread::DebugModeEntered, registersWidget,
464 &RegistersWidget::OnDebugModeEntered, Qt::BlockingQueuedConnection);
465 connect(emu_thread.get(), &EmuThread::DebugModeEntered, waitTreeWidget, 453 connect(emu_thread.get(), &EmuThread::DebugModeEntered, waitTreeWidget,
466 &WaitTreeWidget::OnDebugModeEntered, Qt::BlockingQueuedConnection); 454 &WaitTreeWidget::OnDebugModeEntered, Qt::BlockingQueuedConnection);
467 connect(emu_thread.get(), &EmuThread::DebugModeLeft, registersWidget,
468 &RegistersWidget::OnDebugModeLeft, Qt::BlockingQueuedConnection);
469 connect(emu_thread.get(), &EmuThread::DebugModeLeft, waitTreeWidget, 455 connect(emu_thread.get(), &EmuThread::DebugModeLeft, waitTreeWidget,
470 &WaitTreeWidget::OnDebugModeLeft, Qt::BlockingQueuedConnection); 456 &WaitTreeWidget::OnDebugModeLeft, Qt::BlockingQueuedConnection);
471 457
472 // Update the GUI 458 // Update the GUI
473 registersWidget->OnDebugModeEntered();
474 if (ui.action_Single_Window_Mode->isChecked()) { 459 if (ui.action_Single_Window_Mode->isChecked()) {
475 game_list->hide(); 460 game_list->hide();
476 } 461 }
diff --git a/src/yuzu/main.h b/src/yuzu/main.h
index ac3024d8a..3e29d5fc4 100644
--- a/src/yuzu/main.h
+++ b/src/yuzu/main.h
@@ -19,7 +19,6 @@ class GraphicsSurfaceWidget;
19class GRenderWindow; 19class GRenderWindow;
20class MicroProfileDialog; 20class MicroProfileDialog;
21class ProfilerWidget; 21class ProfilerWidget;
22class RegistersWidget;
23class WaitTreeWidget; 22class WaitTreeWidget;
24 23
25namespace Tegra { 24namespace Tegra {
@@ -163,7 +162,6 @@ private:
163 // Debugger panes 162 // Debugger panes
164 ProfilerWidget* profilerWidget; 163 ProfilerWidget* profilerWidget;
165 MicroProfileDialog* microProfileDialog; 164 MicroProfileDialog* microProfileDialog;
166 RegistersWidget* registersWidget;
167 GraphicsBreakPointsWidget* graphicsBreakpointsWidget; 165 GraphicsBreakPointsWidget* graphicsBreakpointsWidget;
168 GraphicsSurfaceWidget* graphicsSurfaceWidget; 166 GraphicsSurfaceWidget* graphicsSurfaceWidget;
169 WaitTreeWidget* waitTreeWidget; 167 WaitTreeWidget* waitTreeWidget;