diff options
Diffstat (limited to 'src/core')
| -rw-r--r-- | src/core/hle/service/hid/controllers/npad.cpp | 5 | ||||
| -rw-r--r-- | src/core/hle/service/hid/hid.cpp | 3 | 
2 files changed, 6 insertions, 2 deletions
| diff --git a/src/core/hle/service/hid/controllers/npad.cpp b/src/core/hle/service/hid/controllers/npad.cpp index 1e9ff8132..de06e1735 100644 --- a/src/core/hle/service/hid/controllers/npad.cpp +++ b/src/core/hle/service/hid/controllers/npad.cpp @@ -3,7 +3,9 @@  #include <algorithm>  #include <array> +#include <chrono>  #include <cstring> +  #include "common/assert.h"  #include "common/bit_field.h"  #include "common/common_types.h" @@ -547,7 +549,9 @@ void Controller_NPad::OnMotionUpdate(const Core::Timing::CoreTiming& core_timing          const auto set_motion_state = [&](SixAxisSensorState& state,                                            const Core::HID::ControllerMotion& hid_state) { +            using namespace std::literals::chrono_literals;              static constexpr SixAxisSensorState default_motion_state = { +                .delta_time = std::chrono::nanoseconds(5ms).count(),                  .accel = {0, 0, -1.0f},                  .orientation =                      { @@ -566,6 +570,7 @@ void Controller_NPad::OnMotionUpdate(const Core::Timing::CoreTiming& core_timing                  return;              }              state.attribute.is_connected.Assign(1); +            state.delta_time = std::chrono::nanoseconds(5ms).count();              state.accel = hid_state.accel;              state.gyro = hid_state.gyro;              state.rotation = hid_state.rotation; diff --git a/src/core/hle/service/hid/hid.cpp b/src/core/hle/service/hid/hid.cpp index eba44eda8..44f892da9 100644 --- a/src/core/hle/service/hid/hid.cpp +++ b/src/core/hle/service/hid/hid.cpp @@ -37,8 +37,7 @@ namespace Service::HID {  // Period time is obtained by measuring the number of samples in a second on HW using a homebrew  constexpr auto pad_update_ns = std::chrono::nanoseconds{4 * 1000 * 1000};            // (4ms, 250Hz)  constexpr auto mouse_keyboard_update_ns = std::chrono::nanoseconds{8 * 1000 * 1000}; // (8ms, 125Hz) -// TODO: Correct update rate for motion is 5ms. Check why some games don't behave at that speed -constexpr auto motion_update_ns = std::chrono::nanoseconds{10 * 1000 * 1000}; // (10ms, 100Hz) +constexpr auto motion_update_ns = std::chrono::nanoseconds{5 * 1000 * 1000};         // (5ms, 200Hz)  IAppletResource::IAppletResource(Core::System& system_,                                   KernelHelpers::ServiceContext& service_context_) | 
