summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--src/core/hid/hid_types.h2
-rw-r--r--src/core/hle/service/hid/controllers/npad.cpp31
2 files changed, 31 insertions, 2 deletions
diff --git a/src/core/hid/hid_types.h b/src/core/hid/hid_types.h
index 7e4f6a804..22177b5ed 100644
--- a/src/core/hid/hid_types.h
+++ b/src/core/hid/hid_types.h
@@ -89,13 +89,13 @@ enum class NpadStyleIndex : u8 {
89 None = 0, 89 None = 0,
90 ProController = 3, 90 ProController = 3,
91 Handheld = 4, 91 Handheld = 4,
92 HandheldNES = 4,
92 JoyconDual = 5, 93 JoyconDual = 5,
93 JoyconLeft = 6, 94 JoyconLeft = 6,
94 JoyconRight = 7, 95 JoyconRight = 7,
95 GameCube = 8, 96 GameCube = 8,
96 Pokeball = 9, 97 Pokeball = 9,
97 NES = 10, 98 NES = 10,
98 HandheldNES = 11,
99 SNES = 12, 99 SNES = 12,
100 N64 = 13, 100 N64 = 13,
101 SegaGenesis = 14, 101 SegaGenesis = 14,
diff --git a/src/core/hle/service/hid/controllers/npad.cpp b/src/core/hle/service/hid/controllers/npad.cpp
index e4a3d9163..fcc36bbc1 100644
--- a/src/core/hle/service/hid/controllers/npad.cpp
+++ b/src/core/hle/service/hid/controllers/npad.cpp
@@ -221,7 +221,6 @@ void Controller_NPad::InitNewlyAddedController(std::size_t controller_idx) {
221 break; 221 break;
222 case Core::HID::NpadStyleIndex::GameCube: 222 case Core::HID::NpadStyleIndex::GameCube:
223 shared_memory.style_set.gamecube.Assign(1); 223 shared_memory.style_set.gamecube.Assign(1);
224 // The GC Controller behaves like a wired Pro Controller
225 shared_memory.device_type.fullkey.Assign(1); 224 shared_memory.device_type.fullkey.Assign(1);
226 shared_memory.system_properties.is_vertical.Assign(1); 225 shared_memory.system_properties.is_vertical.Assign(1);
227 shared_memory.system_properties.use_plus.Assign(1); 226 shared_memory.system_properties.use_plus.Assign(1);
@@ -231,6 +230,24 @@ void Controller_NPad::InitNewlyAddedController(std::size_t controller_idx) {
231 shared_memory.device_type.palma.Assign(1); 230 shared_memory.device_type.palma.Assign(1);
232 shared_memory.assignment_mode = NpadJoyAssignmentMode::Single; 231 shared_memory.assignment_mode = NpadJoyAssignmentMode::Single;
233 break; 232 break;
233 case Core::HID::NpadStyleIndex::NES:
234 shared_memory.style_set.lark.Assign(1);
235 shared_memory.device_type.fullkey.Assign(1);
236 break;
237 case Core::HID::NpadStyleIndex::SNES:
238 shared_memory.style_set.lucia.Assign(1);
239 shared_memory.device_type.fullkey.Assign(1);
240 shared_memory.applet_footer.type = AppletFooterUiType::Lucia;
241 break;
242 case Core::HID::NpadStyleIndex::N64:
243 shared_memory.style_set.lagoon.Assign(1);
244 shared_memory.device_type.fullkey.Assign(1);
245 shared_memory.applet_footer.type = AppletFooterUiType::Lagon;
246 break;
247 case Core::HID::NpadStyleIndex::SegaGenesis:
248 shared_memory.style_set.lager.Assign(1);
249 shared_memory.device_type.fullkey.Assign(1);
250 break;
234 default: 251 default:
235 break; 252 break;
236 } 253 }
@@ -431,6 +448,10 @@ void Controller_NPad::OnUpdate(const Core::Timing::CoreTiming& core_timing, u8*
431 UNREACHABLE(); 448 UNREACHABLE();
432 break; 449 break;
433 case Core::HID::NpadStyleIndex::ProController: 450 case Core::HID::NpadStyleIndex::ProController:
451 case Core::HID::NpadStyleIndex::NES:
452 case Core::HID::NpadStyleIndex::SNES:
453 case Core::HID::NpadStyleIndex::N64:
454 case Core::HID::NpadStyleIndex::SegaGenesis:
434 pad_state.connection_status.raw = 0; 455 pad_state.connection_status.raw = 0;
435 pad_state.connection_status.is_connected.Assign(1); 456 pad_state.connection_status.is_connected.Assign(1);
436 pad_state.connection_status.is_wired.Assign(1); 457 pad_state.connection_status.is_wired.Assign(1);
@@ -1108,6 +1129,14 @@ bool Controller_NPad::IsControllerSupported(Core::HID::NpadStyleIndex controller
1108 return style.gamecube; 1129 return style.gamecube;
1109 case Core::HID::NpadStyleIndex::Pokeball: 1130 case Core::HID::NpadStyleIndex::Pokeball:
1110 return style.palma; 1131 return style.palma;
1132 case Core::HID::NpadStyleIndex::NES:
1133 return style.lark;
1134 case Core::HID::NpadStyleIndex::SNES:
1135 return style.lucia;
1136 case Core::HID::NpadStyleIndex::N64:
1137 return style.lagoon;
1138 case Core::HID::NpadStyleIndex::SegaGenesis:
1139 return style.lager;
1111 default: 1140 default:
1112 return false; 1141 return false;
1113 } 1142 }