Gamepads en Linux y en general... desencantado...

Taller de hardware y cacharreo general de aparatos eléctricos y electrónicos que no tengan un sitio propio.
ZX-81
Amstrad PCW 8256
Amstrad PCW 8256
Mensajes: 128
Registrado: 04 Ene 2013, 16:43
Sistema Favorito: Spectrum +2
primer_sistema: ZX81
consola_favorita: Nintendo DS/3DS
Primera consola: Sega Genesis/Megadrive
Ubicación: La orilla del mar Mediterráneo
Gracias dadas: 16 veces
Gracias recibidas: 27 veces
Contactar:

Re: Gamepads en Linux y en general... desencantado...

Mensajepor ZX-81 » 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.
Todo espacio de dimensión finita distinta de cero con producto interno tiene una base ortonormal. Tiene sentido, cuando no piensas sobre ello.
Profesor de Matemáticas U.C. Berkeley

Empieza a jugar sin tener que compilar: JSpeccy
Emulador bare-metal para la Raspberry PI 2/3: ZXBaremulator

Avatar de Usuario
cpcbegin
MSX Turbo R
MSX Turbo R
Mensajes: 264
Registrado: 31 May 2013, 05:32
Sistema Favorito: Amstrad CPC
primer_sistema: Amstrad CPC
consola_favorita: Nintendo SNES
Primera consola: (Otro)
Ubicación: Málaga
Gracias dadas: 104 veces
Gracias recibidas: 97 veces
Contactar:

Re: Gamepads en Linux y en general... desencantado...

Mensajepor cpcbegin » 26 Jul 2021, 02:09

Echa un ojo a AntimicroX, con ese mapeador he llegado a jugar con mi mando Xiaomi hasta a juegos que solo soportan teclado.
Soporta perfiles para tener configuraciones diferentes para cada juego.

Avatar de Usuario
zup
Amiga 2500
Amiga 2500
Mensajes: 2967
Registrado: 04 Sep 2009, 20:07
Sistema Favorito: Spectrum 16Kb/48Kb
primer_sistema: Spectrum 16Kb/48Kb
consola_favorita: Nintendo DS/3DS
Primera consola: Nintendo GameBoy
Ubicación: Navarra
Gracias dadas: 68 veces
Gracias recibidas: 322 veces
Contactar:

Re: Gamepads en Linux y en general... desencantado...

Mensajepor zup » 26 Jul 2021, 15:16

ZX-81 escribió: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.

Esa es nueva... yo con lo más que me he tropezado es con mandos chinorris que "reutilizan" IDs de USB (con lo que en Linux aparece listado como otro mando diferente).

ZX-81 escribió: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.

Esa me la sé (por mirar el driver de Linux).

El mando de Xbox 360 se presenta como un dispositivo de clase "específica del fabricante" (255), subclase 93 y protocolo 1 (129 si es inalámbrico). El de Xbox One también es "específico" (255) pero de subclase 71 y protocolo 208. Ignoro si aceptarán comandos HID, pero el driver genérico HID nunca los "repescará" (solo acepta dispositivos de clase 3).
I have traveled across the universe and through the years to find Her. Sometimes going all the way is just a start.
Además vendo cosas!

Avatar de Usuario
GXY
Amiga 1200
Amiga 1200
Mensajes: 1445
Registrado: 05 Oct 2013, 08:21
Sistema Favorito: Commodore Amiga
primer_sistema: Spectrum +2
consola_favorita: Sony PlayStation 1
Primera consola: Sony PlayStation 1
Gracias dadas: 36 veces
Gracias recibidas: 119 veces

Re: Gamepads en Linux y en general... desencantado...

Mensajepor GXY » 26 Jul 2021, 16:20

zup escribió:a) Como dicen en los vídeos que le gusta ver a mi mujer... "aquí no hacemos esas cosas".


agujeros de guion? :mrgreen:

pd. el tema pads es un sindios porque cada fabricante hace lo que le sale de los cojones y al tema en windows nunca le han dado prioridad (y en linux va a remolque, claro :roll: ) lo mas parecido que hay en windows a un "estandar" es el mando de xbox y como ha se ha comentado hay dos librerias / modos de comunicacion (y como ya han explicado en el hilo, ambos son un quilombo).

que los drivers o modos de comunicacion no describan posiciones fisicas de las cosas es LOGICO porque se trata de que soporte diversos mandos y cada uno es de su p... madre y su p... padre. en realidad el problema no es tanto la comunicacion (que si lo es, pero no para el 99,99% de mortales que no estamos en los creditos del kernel de linux :mrgreen: ), el problema es que se echa de menos un mapeador integrado en el sistema que utilices y que sea suficientemente flexible y comodo/facil de usar, y que luego eso no te de problemas con las "aplicaciones" (juegos, emuladores...)

windows para detectar y probar los mandos sigue usando el mismo panel de configuracion que ya habia en windows XP, y me da que es aun mas antiguo. :roll:

bajo linux yo como solo los utilizo en distribuciones de emulacion, el tema queda resuelto con el panel de configuracion de emulation station. si lo reconoce lo reconoce, y ya el resto lo haces tu mapeandolo como te de la gana. se pierde algun boton por la historia del "hotkey" pero total, para emular consolas hasta 5gen no se necesita mas. :carta:
RetroPescando... :mrgreen:


Volver a “Taller general”

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 10 invitados