diff --git a/src/frontend-common/xinput_controller_interface.cpp b/src/frontend-common/xinput_controller_interface.cpp
index 92866fd72..2833db177 100644
--- a/src/frontend-common/xinput_controller_interface.cpp
+++ b/src/frontend-common/xinput_controller_interface.cpp
@@ -39,11 +39,9 @@ bool XInputControllerInterface::Initialize(CommonHostInterface* host_interface)
     reinterpret_cast<decltype(m_xinput_get_state)>(GetProcAddress(m_xinput_module, reinterpret_cast<LPCSTR>(100)));
   if (!m_xinput_get_state)
     reinterpret_cast<decltype(m_xinput_get_state)>(GetProcAddress(m_xinput_module, "XInputGetState"));
-  m_xinput_get_capabilities =
-    reinterpret_cast<decltype(m_xinput_get_capabilities)>(GetProcAddress(m_xinput_module, "XInputGetCapabilities"));
   m_xinput_set_state =
     reinterpret_cast<decltype(m_xinput_set_state)>(GetProcAddress(m_xinput_module, "XInputSetState"));
-  if (!m_xinput_get_state || !m_xinput_get_capabilities || !m_xinput_set_state)
+  if (!m_xinput_get_state || !m_xinput_set_state)
   {
     Log_ErrorPrintf("Failed to get XInput function pointers.");
     return false;
@@ -72,7 +70,6 @@ void XInputControllerInterface::PollEvents()
       if (!cd.connected)
       {
         cd.connected = true;
-        UpdateCapabilities(i);
         OnControllerConnected(static_cast<int>(i));
       }
 
@@ -155,17 +152,6 @@ void XInputControllerInterface::CheckForStateChanges(u32 index, const XINPUT_STA
   }
 }
 
-void XInputControllerInterface::UpdateCapabilities(u32 index)
-{
-  ControllerData& cd = m_controllers[index];
-
-  XINPUT_CAPABILITIES caps = {};
-  m_xinput_get_capabilities(index, 0, &caps);
-  cd.supports_rumble = (caps.Flags & 0x0001 /* XINPUT_CAPS_FFB_SUPPORTED */);
-
-  Log_InfoPrintf("Controller %u: Rumble is %s", index, cd.supports_rumble ? "supported" : "not supported");
-}
-
 void XInputControllerInterface::ClearBindings()
 {
   for (auto& it : m_controllers)
@@ -277,7 +263,7 @@ u32 XInputControllerInterface::GetControllerRumbleMotorCount(int controller_inde
   if (static_cast<u32>(controller_index) >= XUSER_MAX_COUNT || !m_controllers[controller_index].connected)
     return 0;
 
-  return m_controllers[controller_index].supports_rumble ? NUM_RUMBLE_MOTORS : 0;
+  return NUM_RUMBLE_MOTORS;
 }
 
 void XInputControllerInterface::SetControllerRumbleStrength(int controller_index, const float* strengths,
diff --git a/src/frontend-common/xinput_controller_interface.h b/src/frontend-common/xinput_controller_interface.h
index 5949922e6..5d02e1262 100644
--- a/src/frontend-common/xinput_controller_interface.h
+++ b/src/frontend-common/xinput_controller_interface.h
@@ -60,7 +60,6 @@ private:
   {
     XINPUT_STATE last_state = {};
     bool connected = false;
-    bool supports_rumble = false;
 
     // Scaling value of 1.30f to 1.40f recommended when using recent controllers
     float axis_scale = 1.00f;
@@ -74,7 +73,6 @@ private:
   using ControllerDataArray = std::array<ControllerData, XUSER_MAX_COUNT>;
 
   void CheckForStateChanges(u32 index, const XINPUT_STATE& new_state);
-  void UpdateCapabilities(u32 index);
   bool HandleAxisEvent(u32 index, Axis axis, s32 value);
   bool HandleButtonEvent(u32 index, u32 button, bool pressed);
 
@@ -82,7 +80,6 @@ private:
 
   HMODULE m_xinput_module{};
   DWORD(WINAPI* m_xinput_get_state)(DWORD, XINPUT_STATE*);
-  DWORD(WINAPI* m_xinput_get_capabilities)(DWORD, DWORD, XINPUT_CAPABILITIES*);
   DWORD(WINAPI* m_xinput_set_state)(DWORD, XINPUT_VIBRATION*);
   std::mutex m_event_intercept_mutex;
   Hook::Callback m_event_intercept_callback;