summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGravatar Emmanuel Gil Peyrot2015-02-21 23:50:16 +0000
committerGravatar Emmanuel Gil Peyrot2015-02-22 21:09:08 +0100
commitaa64f69af019d6a30e812593eaa70ba9c90dd865 (patch)
treef6de223fb79ddf3563d4c7f5a5e126f59f61835c
parentMerge pull request #590 from linkmauve/rename-dolphin (diff)
downloadyuzu-aa64f69af019d6a30e812593eaa70ba9c90dd865.tar.gz
yuzu-aa64f69af019d6a30e812593eaa70ba9c90dd865.tar.xz
yuzu-aa64f69af019d6a30e812593eaa70ba9c90dd865.zip
Frontends, HID: Add New 3DS specific pad buttons, and stub the touch one.
-rw-r--r--src/citra/config.cpp6
-rw-r--r--src/citra/default_ini.h8
-rw-r--r--src/citra/emu_window/emu_window_glfw.cpp10
-rw-r--r--src/citra_qt/bootmanager.cpp10
-rw-r--r--src/citra_qt/config.cpp36
-rw-r--r--src/core/hle/service/hid/hid.h19
-rw-r--r--src/core/settings.h6
7 files changed, 82 insertions, 13 deletions
diff --git a/src/citra/config.cpp b/src/citra/config.cpp
index f5b4069c7..e9f3dfd5b 100644
--- a/src/citra/config.cpp
+++ b/src/citra/config.cpp
@@ -44,6 +44,8 @@ void Config::ReadValues() {
44 Settings::values.pad_y_key = glfw_config->GetInteger("Controls", "pad_y", GLFW_KEY_X); 44 Settings::values.pad_y_key = glfw_config->GetInteger("Controls", "pad_y", GLFW_KEY_X);
45 Settings::values.pad_l_key = glfw_config->GetInteger("Controls", "pad_l", GLFW_KEY_Q); 45 Settings::values.pad_l_key = glfw_config->GetInteger("Controls", "pad_l", GLFW_KEY_Q);
46 Settings::values.pad_r_key = glfw_config->GetInteger("Controls", "pad_r", GLFW_KEY_W); 46 Settings::values.pad_r_key = glfw_config->GetInteger("Controls", "pad_r", GLFW_KEY_W);
47 Settings::values.pad_zl_key = glfw_config->GetInteger("Controls", "pad_zl", GLFW_KEY_1);
48 Settings::values.pad_zr_key = glfw_config->GetInteger("Controls", "pad_zr", GLFW_KEY_2);
47 Settings::values.pad_start_key = glfw_config->GetInteger("Controls", "pad_start", GLFW_KEY_M); 49 Settings::values.pad_start_key = glfw_config->GetInteger("Controls", "pad_start", GLFW_KEY_M);
48 Settings::values.pad_select_key = glfw_config->GetInteger("Controls", "pad_select", GLFW_KEY_N); 50 Settings::values.pad_select_key = glfw_config->GetInteger("Controls", "pad_select", GLFW_KEY_N);
49 Settings::values.pad_home_key = glfw_config->GetInteger("Controls", "pad_home", GLFW_KEY_B); 51 Settings::values.pad_home_key = glfw_config->GetInteger("Controls", "pad_home", GLFW_KEY_B);
@@ -55,6 +57,10 @@ void Config::ReadValues() {
55 Settings::values.pad_sdown_key = glfw_config->GetInteger("Controls", "pad_sdown", GLFW_KEY_DOWN); 57 Settings::values.pad_sdown_key = glfw_config->GetInteger("Controls", "pad_sdown", GLFW_KEY_DOWN);
56 Settings::values.pad_sleft_key = glfw_config->GetInteger("Controls", "pad_sleft", GLFW_KEY_LEFT); 58 Settings::values.pad_sleft_key = glfw_config->GetInteger("Controls", "pad_sleft", GLFW_KEY_LEFT);
57 Settings::values.pad_sright_key = glfw_config->GetInteger("Controls", "pad_sright", GLFW_KEY_RIGHT); 59 Settings::values.pad_sright_key = glfw_config->GetInteger("Controls", "pad_sright", GLFW_KEY_RIGHT);
60 Settings::values.pad_cup_key = glfw_config->GetInteger("Controls", "pad_cup", GLFW_KEY_I);
61 Settings::values.pad_cdown_key = glfw_config->GetInteger("Controls", "pad_cdown", GLFW_KEY_K);
62 Settings::values.pad_cleft_key = glfw_config->GetInteger("Controls", "pad_cleft", GLFW_KEY_J);
63 Settings::values.pad_cright_key = glfw_config->GetInteger("Controls", "pad_cright", GLFW_KEY_L);
58 64
59 // Core 65 // Core
60 Settings::values.gpu_refresh_rate = glfw_config->GetInteger("Core", "gpu_refresh_rate", 30); 66 Settings::values.gpu_refresh_rate = glfw_config->GetInteger("Core", "gpu_refresh_rate", 30);
diff --git a/src/citra/default_ini.h b/src/citra/default_ini.h
index be4b289bd..798ff6e84 100644
--- a/src/citra/default_ini.h
+++ b/src/citra/default_ini.h
@@ -19,12 +19,18 @@ pad_a =
19pad_b = 19pad_b =
20pad_x = 20pad_x =
21pad_y = 21pad_y =
22pad_r =
23pad_l = 22pad_l =
23pad_r =
24pad_zl =
25pad_zr =
24pad_sup = 26pad_sup =
25pad_sdown = 27pad_sdown =
26pad_sleft = 28pad_sleft =
27pad_sright = 29pad_sright =
30pad_cup =
31pad_cdown =
32pad_cleft =
33pad_cright =
28 34
29[Core] 35[Core]
30gpu_refresh_rate = ## 30 (default) 36gpu_refresh_rate = ## 30 (default)
diff --git a/src/citra/emu_window/emu_window_glfw.cpp b/src/citra/emu_window/emu_window_glfw.cpp
index 8a3ee64a8..ec3e8cf34 100644
--- a/src/citra/emu_window/emu_window_glfw.cpp
+++ b/src/citra/emu_window/emu_window_glfw.cpp
@@ -139,6 +139,16 @@ void EmuWindow_GLFW::ReloadSetKeymaps() {
139 KeyMap::SetKeyMapping({Settings::values.pad_l_key, keyboard_id}, Service::HID::PAD_L); 139 KeyMap::SetKeyMapping({Settings::values.pad_l_key, keyboard_id}, Service::HID::PAD_L);
140 KeyMap::SetKeyMapping({Settings::values.pad_x_key, keyboard_id}, Service::HID::PAD_X); 140 KeyMap::SetKeyMapping({Settings::values.pad_x_key, keyboard_id}, Service::HID::PAD_X);
141 KeyMap::SetKeyMapping({Settings::values.pad_y_key, keyboard_id}, Service::HID::PAD_Y); 141 KeyMap::SetKeyMapping({Settings::values.pad_y_key, keyboard_id}, Service::HID::PAD_Y);
142
143 KeyMap::SetKeyMapping({Settings::values.pad_zl_key, keyboard_id}, Service::HID::PAD_ZL);
144 KeyMap::SetKeyMapping({Settings::values.pad_zr_key, keyboard_id}, Service::HID::PAD_ZR);
145
146 // KeyMap::SetKeyMapping({Settings::values.pad_touch_key, keyboard_id}, Service::HID::PAD_TOUCH);
147
148 KeyMap::SetKeyMapping({Settings::values.pad_cright_key, keyboard_id}, Service::HID::PAD_C_RIGHT);
149 KeyMap::SetKeyMapping({Settings::values.pad_cleft_key, keyboard_id}, Service::HID::PAD_C_LEFT);
150 KeyMap::SetKeyMapping({Settings::values.pad_cup_key, keyboard_id}, Service::HID::PAD_C_UP);
151 KeyMap::SetKeyMapping({Settings::values.pad_cdown_key, keyboard_id}, Service::HID::PAD_C_DOWN);
142 KeyMap::SetKeyMapping({Settings::values.pad_sright_key, keyboard_id}, Service::HID::PAD_CIRCLE_RIGHT); 152 KeyMap::SetKeyMapping({Settings::values.pad_sright_key, keyboard_id}, Service::HID::PAD_CIRCLE_RIGHT);
143 KeyMap::SetKeyMapping({Settings::values.pad_sleft_key, keyboard_id}, Service::HID::PAD_CIRCLE_LEFT); 153 KeyMap::SetKeyMapping({Settings::values.pad_sleft_key, keyboard_id}, Service::HID::PAD_CIRCLE_LEFT);
144 KeyMap::SetKeyMapping({Settings::values.pad_sup_key, keyboard_id}, Service::HID::PAD_CIRCLE_UP); 154 KeyMap::SetKeyMapping({Settings::values.pad_sup_key, keyboard_id}, Service::HID::PAD_CIRCLE_UP);
diff --git a/src/citra_qt/bootmanager.cpp b/src/citra_qt/bootmanager.cpp
index 22a7842bf..6514288a0 100644
--- a/src/citra_qt/bootmanager.cpp
+++ b/src/citra_qt/bootmanager.cpp
@@ -291,6 +291,16 @@ void GRenderWindow::ReloadSetKeymaps()
291 KeyMap::SetKeyMapping({Settings::values.pad_l_key, keyboard_id}, Service::HID::PAD_L); 291 KeyMap::SetKeyMapping({Settings::values.pad_l_key, keyboard_id}, Service::HID::PAD_L);
292 KeyMap::SetKeyMapping({Settings::values.pad_x_key, keyboard_id}, Service::HID::PAD_X); 292 KeyMap::SetKeyMapping({Settings::values.pad_x_key, keyboard_id}, Service::HID::PAD_X);
293 KeyMap::SetKeyMapping({Settings::values.pad_y_key, keyboard_id}, Service::HID::PAD_Y); 293 KeyMap::SetKeyMapping({Settings::values.pad_y_key, keyboard_id}, Service::HID::PAD_Y);
294
295 KeyMap::SetKeyMapping({Settings::values.pad_zl_key, keyboard_id}, Service::HID::PAD_ZL);
296 KeyMap::SetKeyMapping({Settings::values.pad_zr_key, keyboard_id}, Service::HID::PAD_ZR);
297
298 // KeyMap::SetKeyMapping({Settings::values.pad_touch_key, keyboard_id}, Service::HID::PAD_TOUCH);
299
300 KeyMap::SetKeyMapping({Settings::values.pad_cright_key, keyboard_id}, Service::HID::PAD_C_RIGHT);
301 KeyMap::SetKeyMapping({Settings::values.pad_cleft_key, keyboard_id}, Service::HID::PAD_C_LEFT);
302 KeyMap::SetKeyMapping({Settings::values.pad_cup_key, keyboard_id}, Service::HID::PAD_C_UP);
303 KeyMap::SetKeyMapping({Settings::values.pad_cdown_key, keyboard_id}, Service::HID::PAD_C_DOWN);
294 KeyMap::SetKeyMapping({Settings::values.pad_sright_key, keyboard_id}, Service::HID::PAD_CIRCLE_RIGHT); 304 KeyMap::SetKeyMapping({Settings::values.pad_sright_key, keyboard_id}, Service::HID::PAD_CIRCLE_RIGHT);
295 KeyMap::SetKeyMapping({Settings::values.pad_sleft_key, keyboard_id}, Service::HID::PAD_CIRCLE_LEFT); 305 KeyMap::SetKeyMapping({Settings::values.pad_sleft_key, keyboard_id}, Service::HID::PAD_CIRCLE_LEFT);
296 KeyMap::SetKeyMapping({Settings::values.pad_sup_key, keyboard_id}, Service::HID::PAD_CIRCLE_UP); 306 KeyMap::SetKeyMapping({Settings::values.pad_sup_key, keyboard_id}, Service::HID::PAD_CIRCLE_UP);
diff --git a/src/citra_qt/config.cpp b/src/citra_qt/config.cpp
index 76aeaedd0..ac250e0a5 100644
--- a/src/citra_qt/config.cpp
+++ b/src/citra_qt/config.cpp
@@ -23,12 +23,14 @@ Config::Config() {
23 23
24void Config::ReadValues() { 24void Config::ReadValues() {
25 qt_config->beginGroup("Controls"); 25 qt_config->beginGroup("Controls");
26 Settings::values.pad_a_key = qt_config->value("pad_a", Qt::Key_A).toInt(); 26 Settings::values.pad_a_key = qt_config->value("pad_a", Qt::Key_A).toInt();
27 Settings::values.pad_b_key = qt_config->value("pad_b", Qt::Key_S).toInt(); 27 Settings::values.pad_b_key = qt_config->value("pad_b", Qt::Key_S).toInt();
28 Settings::values.pad_x_key = qt_config->value("pad_x", Qt::Key_Z).toInt(); 28 Settings::values.pad_x_key = qt_config->value("pad_x", Qt::Key_Z).toInt();
29 Settings::values.pad_y_key = qt_config->value("pad_y", Qt::Key_X).toInt(); 29 Settings::values.pad_y_key = qt_config->value("pad_y", Qt::Key_X).toInt();
30 Settings::values.pad_l_key = qt_config->value("pad_l", Qt::Key_Q).toInt(); 30 Settings::values.pad_l_key = qt_config->value("pad_l", Qt::Key_Q).toInt();
31 Settings::values.pad_r_key = qt_config->value("pad_r", Qt::Key_W).toInt(); 31 Settings::values.pad_r_key = qt_config->value("pad_r", Qt::Key_W).toInt();
32 Settings::values.pad_zl_key = qt_config->value("pad_zl", Qt::Key_1).toInt();
33 Settings::values.pad_zr_key = qt_config->value("pad_zr", Qt::Key_2).toInt();
32 Settings::values.pad_start_key = qt_config->value("pad_start", Qt::Key_M).toInt(); 34 Settings::values.pad_start_key = qt_config->value("pad_start", Qt::Key_M).toInt();
33 Settings::values.pad_select_key = qt_config->value("pad_select", Qt::Key_N).toInt(); 35 Settings::values.pad_select_key = qt_config->value("pad_select", Qt::Key_N).toInt();
34 Settings::values.pad_home_key = qt_config->value("pad_home", Qt::Key_B).toInt(); 36 Settings::values.pad_home_key = qt_config->value("pad_home", Qt::Key_B).toInt();
@@ -40,6 +42,10 @@ void Config::ReadValues() {
40 Settings::values.pad_sdown_key = qt_config->value("pad_sdown", Qt::Key_Down).toInt(); 42 Settings::values.pad_sdown_key = qt_config->value("pad_sdown", Qt::Key_Down).toInt();
41 Settings::values.pad_sleft_key = qt_config->value("pad_sleft", Qt::Key_Left).toInt(); 43 Settings::values.pad_sleft_key = qt_config->value("pad_sleft", Qt::Key_Left).toInt();
42 Settings::values.pad_sright_key = qt_config->value("pad_sright", Qt::Key_Right).toInt(); 44 Settings::values.pad_sright_key = qt_config->value("pad_sright", Qt::Key_Right).toInt();
45 Settings::values.pad_cup_key = qt_config->value("pad_cup", Qt::Key_I).toInt();
46 Settings::values.pad_cdown_key = qt_config->value("pad_cdown", Qt::Key_K).toInt();
47 Settings::values.pad_cleft_key = qt_config->value("pad_cleft", Qt::Key_J).toInt();
48 Settings::values.pad_cright_key = qt_config->value("pad_cright", Qt::Key_L).toInt();
43 qt_config->endGroup(); 49 qt_config->endGroup();
44 50
45 qt_config->beginGroup("Core"); 51 qt_config->beginGroup("Core");
@@ -62,12 +68,14 @@ void Config::ReadValues() {
62 68
63void Config::SaveValues() { 69void Config::SaveValues() {
64 qt_config->beginGroup("Controls"); 70 qt_config->beginGroup("Controls");
65 qt_config->setValue("pad_a", Settings::values.pad_a_key); 71 qt_config->setValue("pad_a", Settings::values.pad_a_key);
66 qt_config->setValue("pad_b", Settings::values.pad_b_key); 72 qt_config->setValue("pad_b", Settings::values.pad_b_key);
67 qt_config->setValue("pad_x", Settings::values.pad_x_key); 73 qt_config->setValue("pad_x", Settings::values.pad_x_key);
68 qt_config->setValue("pad_y", Settings::values.pad_y_key); 74 qt_config->setValue("pad_y", Settings::values.pad_y_key);
69 qt_config->setValue("pad_l", Settings::values.pad_l_key); 75 qt_config->setValue("pad_l", Settings::values.pad_l_key);
70 qt_config->setValue("pad_r", Settings::values.pad_r_key); 76 qt_config->setValue("pad_r", Settings::values.pad_r_key);
77 qt_config->setValue("pad_zl", Settings::values.pad_zl_key);
78 qt_config->setValue("pad_zr", Settings::values.pad_zr_key);
71 qt_config->setValue("pad_start", Settings::values.pad_start_key); 79 qt_config->setValue("pad_start", Settings::values.pad_start_key);
72 qt_config->setValue("pad_select", Settings::values.pad_select_key); 80 qt_config->setValue("pad_select", Settings::values.pad_select_key);
73 qt_config->setValue("pad_home", Settings::values.pad_home_key); 81 qt_config->setValue("pad_home", Settings::values.pad_home_key);
@@ -79,6 +87,10 @@ void Config::SaveValues() {
79 qt_config->setValue("pad_sdown", Settings::values.pad_sdown_key); 87 qt_config->setValue("pad_sdown", Settings::values.pad_sdown_key);
80 qt_config->setValue("pad_sleft", Settings::values.pad_sleft_key); 88 qt_config->setValue("pad_sleft", Settings::values.pad_sleft_key);
81 qt_config->setValue("pad_sright", Settings::values.pad_sright_key); 89 qt_config->setValue("pad_sright", Settings::values.pad_sright_key);
90 qt_config->setValue("pad_cup", Settings::values.pad_cup_key);
91 qt_config->setValue("pad_cdown", Settings::values.pad_cdown_key);
92 qt_config->setValue("pad_cleft", Settings::values.pad_cleft_key);
93 qt_config->setValue("pad_cright", Settings::values.pad_cright_key);
82 qt_config->endGroup(); 94 qt_config->endGroup();
83 95
84 qt_config->beginGroup("Core"); 96 qt_config->beginGroup("Core");
diff --git a/src/core/hle/service/hid/hid.h b/src/core/hle/service/hid/hid.h
index 2116d2ca3..fc628f36a 100644
--- a/src/core/hle/service/hid/hid.h
+++ b/src/core/hle/service/hid/hid.h
@@ -47,6 +47,15 @@ struct PadState {
47 BitField<10, 1, u32> x; 47 BitField<10, 1, u32> x;
48 BitField<11, 1, u32> y; 48 BitField<11, 1, u32> y;
49 49
50 BitField<14, 1, u32> zl;
51 BitField<15, 1, u32> zr;
52
53 BitField<20, 1, u32> touch;
54
55 BitField<24, 1, u32> c_right;
56 BitField<25, 1, u32> c_left;
57 BitField<26, 1, u32> c_up;
58 BitField<27, 1, u32> c_down;
50 BitField<28, 1, u32> circle_right; 59 BitField<28, 1, u32> circle_right;
51 BitField<29, 1, u32> circle_left; 60 BitField<29, 1, u32> circle_left;
52 BitField<30, 1, u32> circle_up; 61 BitField<30, 1, u32> circle_up;
@@ -99,6 +108,16 @@ const PadState PAD_R = {{1u << 8}};
99const PadState PAD_L = {{1u << 9}}; 108const PadState PAD_L = {{1u << 9}};
100const PadState PAD_X = {{1u << 10}}; 109const PadState PAD_X = {{1u << 10}};
101const PadState PAD_Y = {{1u << 11}}; 110const PadState PAD_Y = {{1u << 11}};
111
112const PadState PAD_ZL = {{1u << 14}};
113const PadState PAD_ZR = {{1u << 15}};
114
115const PadState PAD_TOUCH = {{1u << 20}};
116
117const PadState PAD_C_RIGHT = {{1u << 24}};
118const PadState PAD_C_LEFT = {{1u << 25}};
119const PadState PAD_C_UP = {{1u << 26}};
120const PadState PAD_C_DOWN = {{1u << 27}};
102const PadState PAD_CIRCLE_RIGHT = {{1u << 28}}; 121const PadState PAD_CIRCLE_RIGHT = {{1u << 28}};
103const PadState PAD_CIRCLE_LEFT = {{1u << 29}}; 122const PadState PAD_CIRCLE_LEFT = {{1u << 29}};
104const PadState PAD_CIRCLE_UP = {{1u << 30}}; 123const PadState PAD_CIRCLE_UP = {{1u << 30}};
diff --git a/src/core/settings.h b/src/core/settings.h
index e62dd4358..870eea958 100644
--- a/src/core/settings.h
+++ b/src/core/settings.h
@@ -16,6 +16,8 @@ struct Values {
16 int pad_y_key; 16 int pad_y_key;
17 int pad_l_key; 17 int pad_l_key;
18 int pad_r_key; 18 int pad_r_key;
19 int pad_zl_key;
20 int pad_zr_key;
19 int pad_start_key; 21 int pad_start_key;
20 int pad_select_key; 22 int pad_select_key;
21 int pad_home_key; 23 int pad_home_key;
@@ -27,6 +29,10 @@ struct Values {
27 int pad_sdown_key; 29 int pad_sdown_key;
28 int pad_sleft_key; 30 int pad_sleft_key;
29 int pad_sright_key; 31 int pad_sright_key;
32 int pad_cup_key;
33 int pad_cdown_key;
34 int pad_cleft_key;
35 int pad_cright_key;
30 36
31 // Core 37 // Core
32 int gpu_refresh_rate; 38 int gpu_refresh_rate;