diff --git a/assets/sunshine.conf b/assets/sunshine.conf
index 103f44b0..d78d5e14 100644
--- a/assets/sunshine.conf
+++ b/assets/sunshine.conf
@@ -106,6 +106,12 @@
# back_button_timeout = 2000
# !! Windows only !!
+# Gamepads supported by Sunshine
+# Possible values:
+# x360 -- xbox 360 controller
+# ds4 -- dualshock controller (PS4)
+# gamepad = x360
+
# Control how fast keys will repeat themselves
# The initial delay in milliseconds before repeating keys
# key_repeat_delay = 500
diff --git a/assets/web/config.html b/assets/web/config.html
index f9c5380f..0ed0c736 100644
--- a/assets/web/config.html
+++ b/assets/web/config.html
@@ -52,6 +52,15 @@
Automatically configure port forwarding
+
+
+
Gamepads
+
+ DS4 (PS4)
+ X360 (Xbox 360)
+
+
Automatically configure port forwarding
+
Ping Timeout
@@ -321,7 +330,8 @@
v-model="config.fec_percentage">
Percentage of error correcting packets per data packet in each video frame.
- Higher values can correct for more network packet loss, but at the cost of increasing bandwidth usage.
+ Higher values can correct for more network packet loss, but at the cost of increasing bandwidth
+ usage.
The default value of 20 is what GeForce Experience uses.
@@ -535,6 +545,7 @@
delete this.config.status;
delete this.config.platform;
//Populate default values if not present in config
+ this.config.gamepad = this.config.gamepad || 'x360';
this.config.upnp = this.config.upnp || 'disabled';
this.config.min_log_level = this.config.min_log_level || 2;
this.config.origin_pin_allowed = this.config.origin_pin_allowed || "pc";
diff --git a/sunshine/stream.cpp b/sunshine/stream.cpp
index 719a8fbc..c0f29b3f 100644
--- a/sunshine/stream.cpp
+++ b/sunshine/stream.cpp
@@ -569,7 +569,7 @@ int send_rumble(session_t *session, std::uint16_t id, std::uint16_t lowfreq, std
plaintext.lowfreq = util::endian::little(lowfreq << 8);
plaintext.highfreq = util::endian::little(highfreq << 8);
- BOOST_LOG(fatal) << util::hex(plaintext.id).to_string_view() << " :: "sv << util::hex(plaintext.lowfreq).to_string_view() << " :: "sv << util::hex(plaintext.highfreq).to_string_view();
+ BOOST_LOG(verbose) << id << " :: "sv << util::hex(lowfreq).to_string_view() << " :: "sv << util::hex(highfreq).to_string_view();
std::array
encrypted_payload;