diff -r 10552ae634ca src/haptic/windows/SDL_xinputhaptic.c --- a/src/haptic/windows/SDL_xinputhaptic.c Fri May 26 22:45:52 2017 +0200 +++ b/src/haptic/windows/SDL_xinputhaptic.c Fri May 26 22:32:57 2017 -0600 @@ -278,8 +278,9 @@ { XINPUT_VIBRATION *vib = &effect->hweffect->vibration; SDL_assert(data->type == SDL_HAPTIC_LEFTRIGHT); - vib->wLeftMotorSpeed = data->leftright.large_magnitude; - vib->wRightMotorSpeed = data->leftright.small_magnitude; + /* SDL_HapticEffect has max magnitude of 32767, XInput expects 65535 max, so multiply */ + vib->wLeftMotorSpeed = data->leftright.large_magnitude * 2; + vib->wRightMotorSpeed = data->leftright.small_magnitude * 2; SDL_LockMutex(haptic->hwdata->mutex); if (haptic->hwdata->stopTicks) { /* running right now? Update it. */ XINPUTSETSTATE(haptic->hwdata->userid, vib);