From d65c5ccd169be583fc48ab65fc95a1fbc41bb412 Mon Sep 17 00:00:00 2001 From: Youb Date: Tue, 29 Sep 2026 16:28:16 +0200 Subject: [PATCH] Qt: Add DualShock 1 binding and configuration widgets (no different graphic for the moment). --- pcsx2-qt/CMakeLists.txt | 1 + pcsx2-qt/Settings/ControllerBindingWidget.cpp | 28 +- pcsx2-qt/Settings/ControllerBindingWidget.h | 17 + .../ControllerBindingWidget_DualShock1.ui | 1263 +++++++++++++++++ pcsx2-qt/pcsx2-qt.vcxproj | 1 + pcsx2-qt/pcsx2-qt.vcxproj.filters | 3 + 6 files changed, 1312 insertions(+), 1 deletion(-) create mode 100644 pcsx2-qt/Settings/ControllerBindingWidget_DualShock1.ui diff --git a/pcsx2-qt/CMakeLists.txt b/pcsx2-qt/CMakeLists.txt index c1ecf9e9c1..4873029db0 100644 --- a/pcsx2-qt/CMakeLists.txt +++ b/pcsx2-qt/CMakeLists.txt @@ -70,6 +70,7 @@ target_sources(pcsx2-qt PRIVATE Settings/BIOSSettingsWidget.cpp Settings/BIOSSettingsWidget.h Settings/BIOSSettingsWidget.ui + Settings/ControllerBindingWidget_DualShock1.ui Settings/ControllerBindingWidget_DualShock2.ui Settings/ControllerBindingWidget_Guitar.ui Settings/ControllerBindingWidget_Popn.ui diff --git a/pcsx2-qt/Settings/ControllerBindingWidget.cpp b/pcsx2-qt/Settings/ControllerBindingWidget.cpp index a5f8439868..3e873d53ca 100644 --- a/pcsx2-qt/Settings/ControllerBindingWidget.cpp +++ b/pcsx2-qt/Settings/ControllerBindingWidget.cpp @@ -120,7 +120,11 @@ void ControllerBindingWidget::onTypeChanged() m_ui.settings->setEnabled(has_settings); m_ui.macros->setEnabled(has_macros); - if (cinfo->type == Pad::ControllerType::DualShock2) + if (cinfo->type == Pad::ControllerType::DualShock1) + { + m_bindings_widget = ControllerBindingWidget_DualShock1::createInstance(this); + } + else if (cinfo->type == Pad::ControllerType::DualShock2) { m_bindings_widget = ControllerBindingWidget_DualShock2::createInstance(this); } @@ -906,6 +910,28 @@ void ControllerBindingWidget_Base::initBindingWidgets() } } +ControllerBindingWidget_DualShock1::ControllerBindingWidget_DualShock1(ControllerBindingWidget* parent) + : ControllerBindingWidget_Base(parent) +{ + m_ui.setupUi(this); + initBindingWidgets(); +} + +ControllerBindingWidget_DualShock1::~ControllerBindingWidget_DualShock1() +{ +} + +QIcon ControllerBindingWidget_DualShock1::getIcon() const +{ + return QIcon::fromTheme("controller-line"); +} + +ControllerBindingWidget_Base* ControllerBindingWidget_DualShock1::createInstance(ControllerBindingWidget* parent) +{ + return new ControllerBindingWidget_DualShock1(parent); +} + + ControllerBindingWidget_DualShock2::ControllerBindingWidget_DualShock2(ControllerBindingWidget* parent) : ControllerBindingWidget_Base(parent) { diff --git a/pcsx2-qt/Settings/ControllerBindingWidget.h b/pcsx2-qt/Settings/ControllerBindingWidget.h index 7cf51ad212..3da157ec05 100644 --- a/pcsx2-qt/Settings/ControllerBindingWidget.h +++ b/pcsx2-qt/Settings/ControllerBindingWidget.h @@ -10,6 +10,7 @@ #include #include "ui_ControllerBindingWidget.h" +#include "ui_ControllerBindingWidget_DualShock1.h" #include "ui_ControllerBindingWidget_DualShock2.h" #include "ui_ControllerBindingWidget_Guitar.h" #include "ui_ControllerBindingWidget_Jogcon.h" @@ -170,6 +171,22 @@ protected: void initBindingWidgets(); }; +class ControllerBindingWidget_DualShock1 final : public ControllerBindingWidget_Base +{ + Q_OBJECT + +public: + ControllerBindingWidget_DualShock1(ControllerBindingWidget* parent); + ~ControllerBindingWidget_DualShock1(); + + QIcon getIcon() const override; + + static ControllerBindingWidget_Base* createInstance(ControllerBindingWidget* parent); + +private: + Ui::ControllerBindingWidget_DualShock1 m_ui; +}; + class ControllerBindingWidget_DualShock2 final : public ControllerBindingWidget_Base { Q_OBJECT diff --git a/pcsx2-qt/Settings/ControllerBindingWidget_DualShock1.ui b/pcsx2-qt/Settings/ControllerBindingWidget_DualShock1.ui new file mode 100644 index 0000000000..c24d3ef6ce --- /dev/null +++ b/pcsx2-qt/Settings/ControllerBindingWidget_DualShock1.ui @@ -0,0 +1,1263 @@ + + + ControllerBindingWidget_DualShock1 + + + + 0 + 0 + 1232 + 644 + + + + + 0 + 0 + + + + + 1100 + 500 + + + + + 0 + + + 0 + + + 0 + + + 0 + + + + + + + D-Pad + + + + + + Down + + + + 6 + + + 6 + + + 6 + + + 6 + + + + + + 100 + 0 + + + + + 100 + 16777215 + + + + PushButton + + + + + + + + + + Left + + + + 6 + + + 6 + + + 6 + + + 6 + + + + + + 100 + 0 + + + + + 100 + 16777215 + + + + PushButton + + + + + + + + + + Up + + + + 6 + + + 6 + + + 6 + + + 6 + + + + + + 100 + 0 + + + + + 100 + 16777215 + + + + PushButton + + + + + + + + + + Right + + + + 6 + + + 6 + + + 6 + + + 6 + + + + + + 100 + 0 + + + + + 100 + 16777215 + + + + PushButton + + + + + + + + + + + + + Left Analog + + + + + + Down + + + + 6 + + + 6 + + + 6 + + + 6 + + + + + + 100 + 0 + + + + + 100 + 16777215 + + + + PushButton + + + + + + + + + + Left + + + + 6 + + + 6 + + + 6 + + + 6 + + + + + + 100 + 0 + + + + + 100 + 16777215 + + + + PushButton + + + + + + + + + + Up + + + + 6 + + + 6 + + + 6 + + + 6 + + + + + + 100 + 0 + + + + + 100 + 16777215 + + + + PushButton + + + + + + + + + + Right + + + + 6 + + + 6 + + + 6 + + + 6 + + + + + + 100 + 0 + + + + + 100 + 16777215 + + + + PushButton + + + + + + + + + + + + + Large Motor + + + + 6 + + + 6 + + + 6 + + + 6 + + + + + + 100 + 0 + + + + + 16777215 + 16777215 + + + + PushButton + + + + + + + + + + Qt::Orientation::Vertical + + + + 20 + 40 + + + + + + + + + + + + L2 + + + + 6 + + + 6 + + + 6 + + + 6 + + + + + + 100 + 16777215 + + + + PushButton + + + + + + + + + + R2 + + + + 6 + + + 6 + + + 6 + + + 6 + + + + + + 100 + 16777215 + + + + PushButton + + + + + + + + + + L1 + + + + 6 + + + 6 + + + 6 + + + 6 + + + + + + 100 + 16777215 + + + + PushButton + + + + + + + + + + R1 + + + + 6 + + + 6 + + + 6 + + + 6 + + + + + + 100 + 16777215 + + + + PushButton + + + + + + + + + + Start + + + + 6 + + + 6 + + + 6 + + + 6 + + + + + + 100 + 16777215 + + + + PushButton + + + + + + + + + + Select + + + + 6 + + + 6 + + + 6 + + + 6 + + + + + + 100 + 16777215 + + + + PushButton + + + + + + + + + + + + + + Face Buttons + + + + + + Cross + + + + 6 + + + 6 + + + 6 + + + 6 + + + + + + 100 + 0 + + + + + 100 + 16777215 + + + + PushButton + + + + + + + + + + Square + + + + 6 + + + 6 + + + 6 + + + 6 + + + + + + 100 + 0 + + + + + 100 + 16777215 + + + + PushButton + + + + + + + + + + Triangle + + + + 6 + + + 6 + + + 6 + + + 6 + + + + + + 100 + 0 + + + + + 100 + 16777215 + + + + PushButton + + + + + + + + + + Circle + + + + 6 + + + 6 + + + 6 + + + 6 + + + + + + 100 + 0 + + + + + 100 + 16777215 + + + + PushButton + + + + + + + + + + + + + Right Analog + + + + + + Left + + + + 6 + + + 6 + + + 6 + + + 6 + + + + + + 100 + 0 + + + + + 100 + 16777215 + + + + PushButton + + + + + + + + + + Down + + + + 6 + + + 6 + + + 6 + + + 6 + + + + + + 100 + 0 + + + + + 100 + 16777215 + + + + PushButton + + + + + + + + + + Right + + + + 6 + + + 6 + + + 6 + + + 6 + + + + + + 100 + 0 + + + + + 100 + 16777215 + + + + PushButton + + + + + + + + + + Up + + + + 6 + + + 6 + + + 6 + + + 6 + + + + + + 100 + 0 + + + + + 100 + 16777215 + + + + PushButton + + + + + + + + + + + + + Small Motor + + + + 6 + + + 6 + + + 6 + + + 6 + + + + + + 100 + 0 + + + + + 16777215 + 16777215 + + + + PushButton + + + + + + + + + + Qt::Orientation::Vertical + + + + 20 + 40 + + + + + + + + + + + + Qt::Orientation::Horizontal + + + + 40 + 20 + + + + + + + + + 0 + 0 + + + + + 400 + 266 + + + + + 400 + 266 + + + + + + + :/images/DualShock_1.svg + + + true + + + + + + + Qt::Orientation::Horizontal + + + + 40 + 20 + + + + + + + + + + + + Qt::Orientation::Vertical + + + + 20 + 40 + + + + + + + + L3 + + + + 6 + + + 6 + + + 6 + + + 6 + + + + + + 150 + 0 + + + + + 100 + 16777215 + + + + PushButton + + + + + + + + + + R3 + + + + 6 + + + 6 + + + 6 + + + 6 + + + + + + 150 + 0 + + + + + 100 + 16777215 + + + + PushButton + + + + + + + + + + Analog + + + + + + + 150 + 16777215 + + + + PushButton + + + + + + + + + + + + + InputBindingWidget + QPushButton +
Settings/InputBindingWidget.h
+
+ + InputVibrationBindingWidget + QPushButton +
Settings/InputBindingWidget.h
+
+
+ + Up + Down + Left + Right + Triangle + Cross + Square + Circle + L1 + L2 + R1 + R2 + LUp + LDown + LLeft + LRight + L3 + RUp + RDown + RLeft + RRight + R3 + Select + Start + Analog + LargeMotor + SmallMotor + + + + + +
diff --git a/pcsx2-qt/pcsx2-qt.vcxproj b/pcsx2-qt/pcsx2-qt.vcxproj index 802a1e9578..ad36f4538b 100644 --- a/pcsx2-qt/pcsx2-qt.vcxproj +++ b/pcsx2-qt/pcsx2-qt.vcxproj @@ -325,6 +325,7 @@ + diff --git a/pcsx2-qt/pcsx2-qt.vcxproj.filters b/pcsx2-qt/pcsx2-qt.vcxproj.filters index 5d3b2a836f..0e4286709f 100644 --- a/pcsx2-qt/pcsx2-qt.vcxproj.filters +++ b/pcsx2-qt/pcsx2-qt.vcxproj.filters @@ -604,6 +604,9 @@ Settings + + Settings + Settings