summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLC <mathew1800@gmail.com>2020-11-20 06:40:09 +0100
committerGitHub <noreply@github.com>2020-11-20 06:40:09 +0100
commitbba7e8ea4b5c8e0dbac9f075d692afae0b05fd73 (patch)
tree444df1fe92e31659f5a661a2268b5f2b3c632ca7
parentMerge pull request #4952 from ReinUsesLisp/bit-cast (diff)
parentModify rumble amplification (diff)
downloadyuzu-bba7e8ea4b5c8e0dbac9f075d692afae0b05fd73.tar
yuzu-bba7e8ea4b5c8e0dbac9f075d692afae0b05fd73.tar.gz
yuzu-bba7e8ea4b5c8e0dbac9f075d692afae0b05fd73.tar.bz2
yuzu-bba7e8ea4b5c8e0dbac9f075d692afae0b05fd73.tar.lz
yuzu-bba7e8ea4b5c8e0dbac9f075d692afae0b05fd73.tar.xz
yuzu-bba7e8ea4b5c8e0dbac9f075d692afae0b05fd73.tar.zst
yuzu-bba7e8ea4b5c8e0dbac9f075d692afae0b05fd73.zip
-rw-r--r--src/input_common/gcadapter/gc_poller.cpp4
-rw-r--r--src/input_common/sdl/sdl_impl.cpp3
2 files changed, 3 insertions, 4 deletions
diff --git a/src/input_common/gcadapter/gc_poller.cpp b/src/input_common/gcadapter/gc_poller.cpp
index fe57c13a5..d95574bb5 100644
--- a/src/input_common/gcadapter/gc_poller.cpp
+++ b/src/input_common/gcadapter/gc_poller.cpp
@@ -302,8 +302,8 @@ public:
bool SetRumblePlay(f32 amp_low, f32 freq_low, f32 amp_high, f32 freq_high) const override {
const auto mean_amplitude = (amp_low + amp_high) * 0.5f;
- const auto processed_amplitude = static_cast<u8>(
- pow(mean_amplitude, 0.5f) * (3.0f - 2.0f * pow(mean_amplitude, 0.15f)) * 0x8);
+ const auto processed_amplitude =
+ static_cast<u8>((mean_amplitude + std::pow(mean_amplitude, 0.3f)) * 0.5f * 0x8);
return gcadapter->RumblePlay(port, processed_amplitude);
}
diff --git a/src/input_common/sdl/sdl_impl.cpp b/src/input_common/sdl/sdl_impl.cpp
index 8c48bb861..c395d96cf 100644
--- a/src/input_common/sdl/sdl_impl.cpp
+++ b/src/input_common/sdl/sdl_impl.cpp
@@ -402,8 +402,7 @@ public:
bool SetRumblePlay(f32 amp_low, f32 freq_low, f32 amp_high, f32 freq_high) const override {
const auto process_amplitude = [](f32 amplitude) {
- return static_cast<u16>(std::pow(amplitude, 0.5f) *
- (3.0f - 2.0f * std::pow(amplitude, 0.15f)) * 0xFFFF);
+ return static_cast<u16>((amplitude + std::pow(amplitude, 0.3f)) * 0.5f * 0xFFFF);
};
const auto processed_amp_low = process_amplitude(amp_low);