Re: Gamepads en Linux y en general... desencantado...
Publicado: 24 Jul 2021, 21:44
Una de las cosas divertidas del "estándar" HID es que lo debieron parir entre Jimmy Hendrixx, Jim Morrison, Janis Joplin, Amy Whinehouse y Kurt Kobain en una noche de farra de las que pasan a los anales de la historia. Es una pesadilla crear un HID, el programa que se usa es infernal y las posibilidades de error, altísimas.
El HID solo define cuantos botones analógicos y digitales tiene, si hay cruceta analógica y, en potencia, 300.000 cosas más, como los diferentes controles de un mando para un simulador de vuelo por ejemplo, pero no define *DONDE* están esos controles, solo sabes que en una posición del report que te envía el mando por USB hay un botón, cual de ellos es ya cae en lo místico.
Y para hacer sangre del asunto, añadir que además de los consabidos errores en el HID hay fabricantes que envían el HID mal adrede, o puede que el mando ni siquiera tenga HID. Los mandos de PS3 y PS4 llevan un HID mal y al mando Pro de la Switch hay que hacerle magia negra, con inicializaciones esotérico-festivas para conseguir que funcione "algo". No recuerdo si el mando de XBox One tenía HID, pero me parece recordar que tampoco valía pá ná. El de XBox 360 no he llegado a tocarlo. Hice los drivers de PS4, Xbox One y Switch Pro para la librería Circle y no sé si volvería a repetir la experiencia (demoníaco) religiosa.
Una solución que a mi me vale es el adaptador USB Magic NS de Mayflash. Maneja un montón de mandos diferentes y, según el modo, lo presenta como si fuera un DirectInput o cualquier otro. Los gamepads se pueden conectar por cable o por Bluetooth, y la verdad es que va muy bien y estoy satisfecho con la compra. A principios de año actualizaron el FW del cacharro para incluir manejo del gamepad de PS5.
Hay un pincho similar pero de 8bitdo, lo compré y no lo gasto. Para mi uso, el problema que tiene es que cuando el mando BT se desconecta, el pincho USB también se desconecta del bus USB, cosa que no hace el de Mayflash, con lo que éste último funciona de coña con la FPGA Mistica y con mi emulador de Spectrum, para el que también escribí un driver para la librería Circle.
El quilombo que montó M$ al pasar de DirectInput a XInput es para dedicarle una serie más larga que Juego de Tronos.
El HID solo define cuantos botones analógicos y digitales tiene, si hay cruceta analógica y, en potencia, 300.000 cosas más, como los diferentes controles de un mando para un simulador de vuelo por ejemplo, pero no define *DONDE* están esos controles, solo sabes que en una posición del report que te envía el mando por USB hay un botón, cual de ellos es ya cae en lo místico.
Y para hacer sangre del asunto, añadir que además de los consabidos errores en el HID hay fabricantes que envían el HID mal adrede, o puede que el mando ni siquiera tenga HID. Los mandos de PS3 y PS4 llevan un HID mal y al mando Pro de la Switch hay que hacerle magia negra, con inicializaciones esotérico-festivas para conseguir que funcione "algo". No recuerdo si el mando de XBox One tenía HID, pero me parece recordar que tampoco valía pá ná. El de XBox 360 no he llegado a tocarlo. Hice los drivers de PS4, Xbox One y Switch Pro para la librería Circle y no sé si volvería a repetir la experiencia (demoníaco) religiosa.
Una solución que a mi me vale es el adaptador USB Magic NS de Mayflash. Maneja un montón de mandos diferentes y, según el modo, lo presenta como si fuera un DirectInput o cualquier otro. Los gamepads se pueden conectar por cable o por Bluetooth, y la verdad es que va muy bien y estoy satisfecho con la compra. A principios de año actualizaron el FW del cacharro para incluir manejo del gamepad de PS5.
Hay un pincho similar pero de 8bitdo, lo compré y no lo gasto. Para mi uso, el problema que tiene es que cuando el mando BT se desconecta, el pincho USB también se desconecta del bus USB, cosa que no hace el de Mayflash, con lo que éste último funciona de coña con la FPGA Mistica y con mi emulador de Spectrum, para el que también escribí un driver para la librería Circle.
El quilombo que montó M$ al pasar de DirectInput a XInput es para dedicarle una serie más larga que Juego de Tronos.