diff --git a/3rdparty/fusion/fusion b/3rdparty/fusion/fusion
index 008e03eac0..a853d08a85 160000
--- a/3rdparty/fusion/fusion
+++ b/3rdparty/fusion/fusion
@@ -1 +1 @@
-Subproject commit 008e03eac0ac1d5f85e16f5fcaefdda3fee75cb8
+Subproject commit a853d08a858986b1f27c35a6f37f8458226330b3
diff --git a/3rdparty/fusion/fusion.vcxproj b/3rdparty/fusion/fusion.vcxproj
index 71e669be00..a8decc5a37 100644
--- a/3rdparty/fusion/fusion.vcxproj
+++ b/3rdparty/fusion/fusion.vcxproj
@@ -13,17 +13,17 @@
-
-
+
-
+
+
+
-
Fusion
diff --git a/3rdparty/fusion/fusion.vcxproj.filters b/3rdparty/fusion/fusion.vcxproj.filters
index 85764a4f97..6653e299ba 100644
--- a/3rdparty/fusion/fusion.vcxproj.filters
+++ b/3rdparty/fusion/fusion.vcxproj.filters
@@ -8,12 +8,12 @@
-
-
-
+
+
+
@@ -22,7 +22,7 @@
Source Files
-
+
Source Files
diff --git a/rpcs3/Emu/Io/PadHandler.cpp b/rpcs3/Emu/Io/PadHandler.cpp
index 178ae9f4fa..4463586673 100644
--- a/rpcs3/Emu/Io/PadHandler.cpp
+++ b/rpcs3/Emu/Io/PadHandler.cpp
@@ -979,7 +979,7 @@ void PadDevice::reset_orientation()
ahrs->settings.convention = FusionConvention::FusionConventionEnu;
ahrs->settings.gain = 0.0f; // If gain is set, the algorithm tries to adjust the orientation over time.
FusionAhrsSetSettings(ahrs.get(), &ahrs->settings);
- FusionAhrsReset(ahrs.get());
+ FusionAhrsRestart(ahrs.get());
}
void PadDevice::update_orientation(ps_move_data& move_data)
@@ -1028,7 +1028,8 @@ void PadDevice::update_orientation(ps_move_data& move_data)
}
// Update Fusion
- FusionAhrsUpdate(ahrs.get(), gyroscope, accelerometer, magnetometer, elapsed_sec);
+ FusionAhrsSetSamplePeriod(ahrs.get(), elapsed_sec);
+ FusionAhrsUpdate(ahrs.get(), gyroscope, accelerometer, magnetometer);
// Get quaternion
const FusionQuaternion quaternion = FusionAhrsGetQuaternion(ahrs.get());