diff options
| -rw-r--r-- | src/core/hle/service/hid/controllers/npad.cpp | 13 | ||||
| -rw-r--r-- | src/yuzu/configuration/config.cpp | 3 |
2 files changed, 15 insertions, 1 deletions
diff --git a/src/core/hle/service/hid/controllers/npad.cpp b/src/core/hle/service/hid/controllers/npad.cpp index e311bc18c..c4b26196a 100644 --- a/src/core/hle/service/hid/controllers/npad.cpp +++ b/src/core/hle/service/hid/controllers/npad.cpp | |||
| @@ -224,6 +224,19 @@ void Controller_NPad::OnInit() { | |||
| 224 | player.connected}; | 224 | player.connected}; |
| 225 | }); | 225 | }); |
| 226 | 226 | ||
| 227 | // Connect the Player 1 or Handheld controller if none are connected. | ||
| 228 | if (std::none_of(connected_controllers.begin(), connected_controllers.end(), | ||
| 229 | [](const ControllerHolder& controller) { return controller.is_connected; })) { | ||
| 230 | const auto controller = MapSettingsTypeToNPad(Settings::values.players[0].controller_type); | ||
| 231 | if (controller == NPadControllerType::Handheld) { | ||
| 232 | Settings::values.players[HANDHELD_INDEX].connected = true; | ||
| 233 | connected_controllers[HANDHELD_INDEX] = {controller, true}; | ||
| 234 | } else { | ||
| 235 | Settings::values.players[0].connected = true; | ||
| 236 | connected_controllers[0] = {controller, true}; | ||
| 237 | } | ||
| 238 | } | ||
| 239 | |||
| 227 | // Account for handheld | 240 | // Account for handheld |
| 228 | if (connected_controllers[HANDHELD_INDEX].is_connected) { | 241 | if (connected_controllers[HANDHELD_INDEX].is_connected) { |
| 229 | connected_controllers[HANDHELD_INDEX].type = NPadControllerType::Handheld; | 242 | connected_controllers[HANDHELD_INDEX].type = NPadControllerType::Handheld; |
diff --git a/src/yuzu/configuration/config.cpp b/src/yuzu/configuration/config.cpp index 5c8b02fbe..545cafca9 100644 --- a/src/yuzu/configuration/config.cpp +++ b/src/yuzu/configuration/config.cpp | |||
| @@ -280,7 +280,8 @@ void Config::ReadPlayerValue(std::size_t player_index) { | |||
| 280 | } | 280 | } |
| 281 | } else { | 281 | } else { |
| 282 | player.connected = | 282 | player.connected = |
| 283 | ReadSetting(QStringLiteral("%1connected").arg(player_prefix), false).toBool(); | 283 | ReadSetting(QStringLiteral("%1connected").arg(player_prefix), player_index == 0) |
| 284 | .toBool(); | ||
| 284 | 285 | ||
| 285 | player.controller_type = static_cast<Settings::ControllerType>( | 286 | player.controller_type = static_cast<Settings::ControllerType>( |
| 286 | qt_config | 287 | qt_config |