jueves, 18 de julio de 2013

Como hacer funcionar un control generico Rock Candy para xbox 360 en un android

Hola gente :)


Hoy traigo algo que podria interesarles, y lo que pasa es que hace poco, cuando supe que saldria el xbox one, en ese momento me lanze a comprar el halo 4 y un segundo control de xbox, antes de que ya no haya por que los dejen de fabricar. Ya tenia un control inalambrico, pero la verdad daba lastima que simepre que viniera un compa a mi casa nadamas tuviera uno y tuvieramos que turnarnos todos los juegos vida y vida, ademas de que, otro dia que fui a una gameplanet, vi un control de xbox 360 color naranja que esta de perlas (de hecho, fisicamente se ve mucho mejor que en la imagen :P )
Dado que como les decia, tambien me compre el halo 4, en 2 dias lo termine usando este control, pero como es alambrico y con puerto USB, se me pasaron 2 ideas muy locas pero posibles, la primera, instalarlo en mi compu (que desafortunadamente usa winmierda 7 de 64 bits dado que la wireless no funciona del todo bien en ningun linux), asi que baje el driver de microsoft, con una pequeña limitacion, que el driver es para "Microsoft Xbox 360 controller", y este control es "Rock Candy Xbox 360 controller", que en teoria son lo mismo (y eso se sabe dado que funciona igual de bien que un original en un xbox 360) pero como una computadora no lo sabe, hay que meter mano al software, asi que cuando me pregunto que si deseaba instalar un driver para el dispositivo, fue tan facil decir que usara el driver de control del "Microsoft Xbox 360 contoller", y con eso fue mas que suficiente para que el control funcionara como control de 360 genuino en mi pc, hasta pude jugar Midtown Madness... pero eso fue dado que windows ofrece esa facilidad para instalar un driver en un dispositivo, ahora... ¿que tal en android? :P

Estuve checando varios foros en XDA Developers, y encontre esto:


y tal cual aparece en el foro, me tope con este bug:


Asi que hice todo lo que decia en el foro para corregir la falla pero... ¡OH SORPRESA!
Tengamos en cuenta que... si una computadora los cacha como dispositivos diferentes, cuanto mas que la tablet lo hara, principalemnte necesito 2 valores llamados "Vendor" y "Product" o nunca se corregira por si solo el spin-camera... ¡MIERDA!...

Pregunta del millon:
¿Ahora como saber, cual es el Vendor y el Product de mi control Rock Candy, para poner esos 2 datos como nombre de archivo del corregido keylayout?

Fue tan facil, y curiosamente la informacion estaba en un lugar donde menos lo esperaba... en el mismo thriveforums.org, y lo sorprendente es por que esto es para cualquier tablet (no solo para la mia por ejemplo que, de pura casualidad, es de toshiba :P )
El post donde haye la informacion fue este:
http://www.thriveforums.org/forum/toshiba-thrive-development/9626-how-create-customized-keylayout-any-usb-bluetooth-keyboard-rooted.html
y lo que me sirvio de toda la informacion fue este pequeño comando de terminal:

cat /proc/bus/input/devices


Ustedes diran: "Coño, ¿y esto para que putas vergas me sirve?"
La respuesta es simple, nosotros al correr este comando en el terminal emulator (o la terminal de comandos que usen :P ) nos dira TODOS los dispositivos que tenemos conectados, en mi caso, al correr este comando, mi respuesta fue lo que esta en este archivo:


Ahi estan todos los dispositivos que el thrive reconoce por estar conectados, y como podemos ver, el ultimo dice "Generic X-Box pad", por lo cual este es nuestro control de Rock Candy.
Ahora, ya que tenemos esta informacion, solo falta fijarnos que, arriba de donde esta el nombre, hay un renglon que dice "Bus=0003 Vendor=0e6f Product=011f Version=0100", de aqui lo que usaremos sera la informacion de "Vendor" y de "Product", y la usaremos igual que en el video, me explico:

Ahora la explicacion de que es lo que sucede: cuando el que hace el video pide que pongamos los comandos en terminal "cp Vendor_045e_Product_0291.kl Vendor_045e_Product_0719.kl", no estamos haciendo otra cosa mas que crear un archivo, con el mismo "Vendor" (que en este caso es 045e, que es Microsoft), pero, dado que el control alambrico e inalambrico son direfentes dispositivos, basta con poner el codigo correcto de "Product" (que en el caso del control alambrico es 0291, y para el control inalambrico es 0719), pero en mi caso es un hecho que es diferente informacion, hasta de "Vendor", asi que les explicare como hacerlo desde una pc.

Neccesitamos:
  1. El control generico de cable USB marca Rock Candy para xbox 360
  2. Un dispositivo con android (No olviden que necesitan ROOT en su andorid para hacer esto)
  3. Una pc con el sistema que les venga en gana, solo que tenga acceso a internet y que pueda bajar y renombrar un par de archivos :S

Manos a la obra...
  1. Bajar los 2 archivos del siguiente foro de XDA Developers: http://forum.xda-developers.com/showthread.php?t=1792531
  2. Descomprimir ambos archivos
  3. Renombrar ambos archivos con el Vendor y el Product de unestro control, es decir:
    El archivo Vendor_045e_Product_0291.kl, se debera llamar ahora Vendor_0e6f_Product_011f.kl
    El archivo Vendor_045e_Product_0719.kcm, se debera llamar ahora Vendor_0e6f_Product_011f.kcm
  4. Luego pasaremos esos archivos a nuestro tablet, ya sea por USB u otro metodo que prefieran
  5. Una vez transferidos a nuestro dispositivo, usaremos Root Explorer, Root Browser, Es File Explorer, u otro adrministrador de archivos (que tenga permisos de root) para copiar esos archivos en nuestro sistema en su correspondiente carpeta:
  6. Vendor_0e6f_Product_011f.kl debe ser copiado en la carpeta "/system/usr/keylayout/"
  7. Vendor_0e6f_Product_011f.kcm debe ser copiado en la carpeta "/system/usr/keychars/"
  8. Por ultimo, reiniciamos, conectamos nuestro control Rock Candy a nuestro android, y el control ya se podra usar con nuestros juegos sin ver nunca mas el spin-camera ;)
Pues eso ha sido todo y espero que les sirva, yo busque en en internet si alguien tenia esta informacion, pero dado que no la vi en ingles (mucho menos en español) fue que hice este post, asi que decido tomar totalmente es credito de la informacion de este post, salvo de las fuentes de informacion que cite,
Si tienes alguna duda, comentario, etc, no dejes comentario, ya que lo mas probable es que ya no los revise por falta de tiempo, mejor, no dudes en agregarme a facebook o a twitter y con gusto te atedere ;)



Saludos y nos vemos la proxima ;)


Licencia Creative Commons
Como hacer funcionar un control generico Rock Candy para xbox 360 en un android por XeBuZer0 se encuentra bajo una Licencia Creative Commons Atribución-NoComercial-CompartirIgual 3.0 Unported.
Basada en una obra en http://www.thriveforums.org/forum/toshiba-thrive-development/9626-how-create-customized-keylayout-any-usb-bluetooth-keyboard-rooted.html.

1 comentario: