DirectInput (DInput) - Protocolo para Periféricos


DirectInput (DInput)

DirectInput es un módulo perteneciente a DirectX desarrollado por Microsoft, utilizado para procesar datos de dispositivos de entrada como teclado, ratón, joystick y otros controles para videojuegos.

¿Qué es DirectInput?

DirectInput fue diseñado como una biblioteca integral para gestionar dispositivos de entrada, proporcionando:

  • Procesamiento de datos de entrada de periféricos
  • Sistema de mapeo para asignar acciones del juego a botones y ejes de los dispositivos
  • Soporte para efectos de force feedback en controladores compatibles
  • Compatibilidad con una amplia gama de dispositivos de entrada

DirectInput vs XInput

Nota importante: DirectInput está actualmente considerado como una tecnología heredada que Microsoft mantiene principalmente por razones de compatibilidad hacia atrás. Las aplicaciones y juegos modernos utilizan predominantemente XInput, un API más reciente y optimizado especialmente para controles de Xbox y similares.

Características de DirectInput

Ventajas:

  • Flexibilidad: Soporta una amplia variedad de dispositivos con configuraciones personalizables
  • Mayor número de botones: Puede reconocer hasta 128 botones por dispositivo
  • Múltiples ejes: Soporte para múltiples palancas analógicas y otros controles de eje
  • Personalización: Permite reasignar completamente la configuración de botones
  • Compatibilidad: Funciona con controladores más antiguos y dispositivos especializados

Desventajas:

  • Configuración más compleja: Requiere más trabajo para configurar correctamente
  • Soporte limitado en juegos modernos: Muchos juegos nuevos solo soportan XInput
  • Sin UI estándar: Cada juego maneja la configuración de manera diferente
  • Problemas de reconocimiento: Algunos juegos pueden no identificar correctamente los botones

Dispositivos que utilizan DirectInput

Controles compatibles con DInput:

  • Controles oficiales de PlayStation 3
  • Controles oficiales de PlayStation 4 (en modo de compatibilidad)
  • Controles de Nintendo Switch (cuando se conectan a PC)
  • Adaptadores PS2 → USB
  • Controles genéricos USB y Bluetooth
  • Volantes, pedales y otros controles especializados

Arcade Sticks que utilizan DInput:

  • Mad Catz TE/TE2/TE2+ para PS3/PS4 (en modo PS3/PS4 sin drivers específicos)
  • Razer Panthera/Panthera Evo (en modo PS3/PS4 sin drivers específicos)
  • Qanba Dragon/Obsidian (en modo PS3/PS4)
  • Hori Real Arcade Pro 4 (RAP4)
  • Mayoría de arcade sticks para PS3/PS4 en su modo nativo

Uso de DirectInput en PC

DirectInput funciona de manera diferente a XInput en PC, lo que puede causar algunas confusiones:

Reconocimiento:

Windows reconoce los dispositivos DirectInput como “Controlador genérico HID” o con el nombre específico del fabricante.

Configuración:

  1. Accede al Panel de control → Dispositivos e impresoras
  2. Haz clic derecho en el controlador → Configuración
  3. Usa la pestaña “Prueba” para verificar que todos los botones funcionan
  4. En juegos, busca la opción de “Controlador genérico” o “DirectInput”

Problemas comunes:

  • Botones incorrectos: Los botones pueden estar asignados de manera diferente a lo esperado
  • Múltiples controladores: Windows puede confundirse si hay varios controladores conectados
  • Reconocimiento parcial: Algunos botones pueden no funcionar en ciertos juegos

DirectInput vs XInput

CaracterísticaDirectInputXInput
Número máximo de botones12810 + 2 triggers
Ejes analógicosIlimitados2 sticks + 2 triggers
PersonalizaciónAltaLimitada
Reconocimiento en juegos modernosVariableExcelente
ConfiguraciónComplejaSencilla (plug & play)
VibraciónForce feedback complejoMotores duales simplificados
Compatibilidad con consolasPS3, PS4, Switch, etc.Xbox 360, Xbox One, Xbox Series

Emuladores de XInput para dispositivos DirectInput

Si tienes un controlador DirectInput y quieres usarlo en juegos que solo soportan XInput, puedes usar estos programas:

  • x360ce: Emulador que hace que Windows reconozca un control DirectInput como si fuera de Xbox 360
  • Steam Input: La configuración de controladores de Steam permite mapear controles DirectInput para que funcionen como XInput
  • DS4Windows: Especialmente útil para controles de PS4, los hace funcionar como controles de Xbox

Recursos Adicionales