summaryrefslogtreecommitdiff
path: root/src/core/hid
diff options
context:
space:
mode:
authorGravatar german772022-05-21 17:10:20 -0500
committerGravatar Narr the Reg2022-05-27 10:22:36 -0500
commit240f59a4c8319ec5f0c0e5fd34e8f9c5a458751e (patch)
treea2d814d9be7ca3c2547399090f451dbc3694d56b /src/core/hid
parentservice: hid: Implement EnableSixAxisSensorUnalteredPassthrough and IsSixAxis... (diff)
downloadyuzu-240f59a4c8319ec5f0c0e5fd34e8f9c5a458751e.tar.gz
yuzu-240f59a4c8319ec5f0c0e5fd34e8f9c5a458751e.tar.xz
yuzu-240f59a4c8319ec5f0c0e5fd34e8f9c5a458751e.zip
service: hid: Implement LoadSixAxisSensorCalibrationParameter and GetSixAxisSensorIcInformation
Needed by Nintendo Switch Sports
Diffstat (limited to 'src/core/hid')
-rw-r--r--src/core/hid/hid_types.h33
1 files changed, 33 insertions, 0 deletions
diff --git a/src/core/hid/hid_types.h b/src/core/hid/hid_types.h
index 26ec1091b..00ba23535 100644
--- a/src/core/hid/hid_types.h
+++ b/src/core/hid/hid_types.h
@@ -498,6 +498,39 @@ struct SixAxisSensorFusionParameters {
498static_assert(sizeof(SixAxisSensorFusionParameters) == 8, 498static_assert(sizeof(SixAxisSensorFusionParameters) == 8,
499 "SixAxisSensorFusionParameters is an invalid size"); 499 "SixAxisSensorFusionParameters is an invalid size");
500 500
501// This is nn::hid::SixAxisSensorCalibrationParameter
502struct SixAxisSensorCalibrationParameter {
503 std::array<u8, 0x744> unknown_data{};
504};
505static_assert(sizeof(SixAxisSensorCalibrationParameter) == 0x744,
506 "SixAxisSensorCalibrationParameter is an invalid size");
507
508// This is nn::hid::SixAxisSensorIcInformation
509struct SixAxisSensorIcInformation {
510 f32 angular_rate{2000.0f}; // dps
511 std::array<f32, 6> unknown_gyro_data1{
512 -10.0f, -10.0f, -10.0f, 10.0f, 10.0f, 10.0f,
513 }; // dps
514 std::array<f32, 9> unknown_gyro_data2{
515 0.95f, -0.003f, -0.003f, -0.003f, 0.95f, -0.003f, -0.003f, -0.003f, 0.95f,
516 };
517 std::array<f32, 9> unknown_gyro_data3{
518 1.05f, 0.003f, 0.003f, 0.003f, 1.05f, 0.003f, 0.003f, 0.003f, 1.05f,
519 };
520 f32 acceleration_range{8.0f}; // g force
521 std::array<f32, 6> unknown_accel_data1{
522 -0.0612f, -0.0612f, -0.0612f, 0.0612f, 0.0612f, 0.0612f,
523 }; // g force
524 std::array<f32, 9> unknown_accel_data2{
525 0.95f, -0.003f, -0.003f, -0.003f, 0.95f, -0.003f, -0.003f, -0.003f, 0.95f,
526 };
527 std::array<f32, 9> unknown_accel_data3{
528 1.05f, 0.003f, 0.003f, 0.003f, 1.05f, 0.003f, 0.003f, 0.003f, 1.05f,
529 };
530};
531static_assert(sizeof(SixAxisSensorIcInformation) == 0xC8,
532 "SixAxisSensorIcInformation is an invalid size");
533
501// This is nn::hid::VibrationDeviceHandle 534// This is nn::hid::VibrationDeviceHandle
502struct VibrationDeviceHandle { 535struct VibrationDeviceHandle {
503 NpadStyleIndex npad_type{NpadStyleIndex::None}; 536 NpadStyleIndex npad_type{NpadStyleIndex::None};