ACTIVA TOOLS
Blog
5 de septiembre de 20266 min de lecturaPor Diego Pacheco

Mi mando no lo detecta el PC: por que funciona en un juego y en el siguiente no

GamepadXInputDirectInput
El mismo mando en sus dos modos: en DirectInput llegan numeros de boton sin significado y la cartografia queda vacia, en XInput llega la distribucion estandarEL MISMO MANDO, DOS IDIOMASDIRECTINPUTBOTON 7, EJE 5SIN CARTOGRAFIAXINPUTA, LT, STICK IZQSTANDARDLO QUE EL NAVEGADOR RECIBE DE CADA MODOactiva.one

El mando se enciende. Windows lo ve en la lista de dispositivos. Abres el juego y te dice que no hay ningun mando conectado. O todavia mas raro: en un juego funciona perfecto y en el siguiente no existe, con el mismo cable y sin haber tocado nada entre medias.

Es de las averias que mas gente da por perdida, y casi nunca hay averia. Lo que pasa es que la frase el PC detecta el mando esconde tres cosas distintas, y normalmente solo falla la tercera.

Tres capas, no una

  1. El mando esta conectado: el cable o el Bluetooth funcionan y el sistema recibe algo.
  2. El sistema lo expone con un formato concreto, y hay dos posibles: XInput o DirectInput.
  3. El juego pide uno de esos dos formatos, y no todos piden el mismo.

Las tres pueden fallar por separado y el sintoma que ves es casi el mismo. Cuando el mando va en un juego y no en otro, las dos primeras estan bien por definicion: lo que no encaja es la tercera.

Que son XInput y DirectInput

DirectInput es el antiguo y es generico. Traslada al juego una lista de botones y ejes numerados, sin decir que significa cada uno. El juego recibe que se ha pulsado el boton 7 y el eje 5 vale 0,4, pero no tiene forma de saber si el boton 7 es el de saltar o el de pausa.

Por eso los juegos y los emuladores de aquella epoca te hacian pasar por una pantalla de configuracion pulsando boton por boton: no era pereza del programador, es que no habia otra manera de averiguarlo.

XInput llego despues, con el mando de Xbox 360, y resolvio el problema fijando la distribucion. El boton A siempre esta en el mismo sitio, los dos gatillos son ejes analogicos independientes y los sticks van donde se espera. El juego ya no tiene que preguntar nada.

Como se ve esto en el navegador

Esta distincion, que suena abstracta, sale escrita en el probador de gamepad. En la fila de datos hay un campo llamado Cartografia con dos valores posibles.

CartografiaQue significa
standardEl navegador reconoce la distribucion estandar. Cada boton esta donde se espera y cualquier juego lo interpretara igual
sin datosEl mando funciona, pero los botones llegan numerados y sin significado. Habra que configurarlos a mano

Es exactamente la misma frontera. Un mando que entra en modo XInput casi siempre da cartografia estandar; uno que entra por DirectInput casi siempre la deja vacia. Con eso ya sabes en que idioma esta hablando el tuyo antes de abrir ningun juego.

Al lado aparecen ademas el Proveedor y el Producto en hexadecimal, que son los identificadores que el mando declara por USB. Sirven para saber que esta viendo el sistema de verdad, que no siempre coincide con lo que pone en la caja: muchos mandos genericos se presentan con el identificador de otro fabricante.

Antes de nada, descarta lo tonto

Hay una causa que parece una averia y no lo es: el navegador no ve el mando hasta que pulsas un boton. Conectarlo no basta, ni encenderlo, ni que Windows lo liste.

Es deliberado. Si cualquier pagina pudiera enumerar los mandos conectados nada mas abrirse, tendria un dato mas para reconocerte sin permiso. Asi que hace falta un gesto tuyo para que empiece a informar.

  1. Pulsa cualquier boton o mueve un stick. La mayoria de los casos se resuelven aqui.
  2. Si sigue sin aparecer, prueba otro puerto USB, y a ser posible uno de la parte de atras de la torre.
  3. Si es inalambrico, pruebalo con cable. Separa el problema del mando del problema del enlace.
  4. Si va por Bluetooth, borra el emparejamiento y vuelve a emparejarlo desde cero.

El caso frecuente: el mando habla el idioma equivocado

Si el mando aparece pero se comporta raro, o va en unos juegos y en otros no, ya no es un problema de conexion. Estos son los sintomas y lo que hay detras de cada uno.

Lo que vesQue esta pasando
Funciona en un juego y en el siguiente no existeUno acepta DirectInput y el otro solo XInput
Los botones responden, pero desordenadosLlegan numerados y el juego los reparte a su manera
Los gatillos van a todo o nada, sin medias tintasEn DirectInput los dos gatillos suelen compartir un mismo eje
El juego te obliga a configurar boton por botonCartografia vacia: no hay distribucion que reconocer

El de los gatillos es el mas revelador de los cuatro, y se comprueba en dos segundos en el probador: pisa los dos gatillos a la vez y mira sus valores. Si al pisar uno el otro se descuenta, o si entre los dos nunca pasan de un mismo total, estan compartiendo eje. Eso es DirectInput, sin lugar a dudas.

La solucion casi siempre esta en el propio mando. Muchos modelos genericos llevan un interruptor marcado con una X y una D, que es literalmente eso: XInput y DirectInput. Otros cambian de modo con una combinacion de teclas al encenderlos, que suele venir en el manual y casi nadie lee. Los mandos de PlayStation conectados a un PC sin nada de por medio entran como DirectInput, y por eso muchos juegos modernos no los ven.

Lo que este mando no tiene arreglo desde aqui

  • El navegador no puede cambiar el modo de tu mando. Solo te dice en cual esta. El cambio se hace en el interruptor, con la combinacion de encendido o con una capa de traduccion en el sistema.
  • Que la prueba de vibracion no haga nada no significa que el motor este roto. Esa parte de la interfaz de mandos no la implementan todos los navegadores: en Safari no existe y en algunas versiones de Firefox tampoco. Pruebalo en Chrome o Edge antes de preocuparte.
  • Una cartografia vacia no es un mando averiado. Funciona igual de bien; lo unico que pierdes es que los juegos lo reconozcan solos.

Con la cartografia y los gatillos delante ya no hace falta ir probando juegos a ver cual pica. Sabes en que modo esta el mando, y sabes si lo que falla es el cable, el emparejamiento o simplemente que el juego esperaba que le hablasen de otra manera.