0 votos

¿Solución para el descriptor de uso HID erróneo enviado por el Gamepad Bluetooth?

Estoy investigando una incompatibilidad de algunos Gamepads Bluetooth con OSX: Tengo un Gamepad Bluetooth (NES30 Pro). El problema es que si lo conecto por bluetooth, no funciona correctamente en OSX. Ya he encontrado la causa y se lo he comunicado al fabricante, y me han prometido que mirarán de arreglarlo. Sin embargo, mientras tanto me gustaría encontrar una solución.

La causa del problema es que el Gamepad no envía un descriptor de uso HID adecuado cuando se conecta por Bluetooth. El Gamepad debería enviar un descriptor de uso HID que señala que es un gamepad. Sin embargo, envía un descriptor de uso HID que señala que es un dispositivo compuesto de Teclado, Ratón y Gamepad al mismo tiempo.

A modo de ilustración, esta es una captura de pantalla del administrador de dispositivos de Windows, que muestra que el Gamepad actúa como varios tipos de dispositivos a la vez. For illustration, this is a screenshot taken on Windows , showing that the device acts as several device types at once

Windows y Linux simplemente crean 3 dispositivos, un dispositivo de teclado, un dispositivo de ratón y un dispositivo de gamepad. Sin embargo OSX crea sólo un dispositivo que contiene toda la funcionalidad a la vez, que la mayoría de los programas no reconocen como un Gamepad. Hasta ahora la única aplicación que me ha mostrado que los datos de posición de los ejes analógicos y de los botones del gamepad son transmitidos es la aplicación HID explorer de apple ( http://developer.apple.com/mac/library/samplecode/HID_Explorer/HID_Explorer.zip )

Ahora estoy buscando una solución en OSX. Algunos sistemas Linux también tienen un problema con el descriptor de uso de wron HID. Sin embargo, por lo general se puede arreglar mediante el establecimiento de una regla udev que específicamente le dice al sistema para tratar el dispositivo como gamepad / joystick, por ejemplo así:

# 8Bitdo SFC30 GamePad Bluetooth mode(START)
SUBSYSTEM=="input", ATTRS{name}=="8Bitdo SFC30 GamePad", MODE="0666", ENV{ID_INPUT_JOYSTICK}="1"

Por supuesto, OSX no tiene udev. ¿Alguien sabe cómo decirle/forzar a OSX para que trate un dispositivo de entrada como un joystick/gamepad? ¿O tal vez cómo crear un dispositivo gamepad virtual que tome su entrada de los ejes/botones del dispositivo compuesto de teclado/ratón/gamepad? ¿O alguna otra idea de cómo abordar este problema?

Nota: Estoy especialmente interesado en utilizar los sticks analógicos. Así que la asignación de los mismos a los botones del teclado no es una opción. (El gamepad ya tiene un modo especial para hacer eso por sí mismo. Sin embargo, entonces los sticks analógicos, por supuesto, no funcionan).

1voto

Oskar Puntos 1242

Yo miraría de conseguir algún software que reproduzca lo que hacen los drivers de Windows o buscaría hardware que tenga drivers para OS X.

Además, en OS X, los juegos que quieres utilizar también tienen que soportar la búsqueda de mandos inalámbricos, así que eso también puede ser un problema para ti que hay que superar.

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X