Prueba wiimotes

Quien haya leído el hilo del emulador Rin con Wiimote, habrá visto que al final decía lopst que había unos métodos de manejo del wiimote que no funcionaban como debieran...


Así que antes de meterme con ningún emulador más, para poder implementar una buena forma de manejar varios Wiimotes, he creado esta prueba.

No sé si funcionará, -para variar-, pero es algo simple con una librería de manejo de los wiimandos (acepta classic también)...

Debería poder iniciar hasta 4 wiimandos y mostrar por pantalla si con alguno de ellos se ha pulsado alguna tecla, ademas del número de wiimando que ha pulsado...

Se debería probar con al menos 2 wiimotes (y un classic). Para asociarlos presionar 1 y 2 y cuando os canséis de asociar: A y B...

Viene con fuentes también...

http://www.mediafire.com/?n5vtcm3tdbl


Gracias de antemano a quien lo pruebe ;)
Tengo 2 wiimote y 1 Classic, si me dices como realizar la prueba lo hago =)
Pues cargas el "elf" que hay en el zip (o lo compilas tu mismo) y te pedirá que pulses 1 y 2. Cuando tengas el primer mando sincronizado, pulsas 1 y 2 en el segundo.

Una vez tienes los dos sincronizados, pulsa con cualquiera de ellos A y B.

Entonces empieza a pulsar botones en uno y otro a ver si te dice cosas y si diferencia entre el primero y el segundo.

Después puedes probar a poner el classic y pulsar botones a ver si dice algo también...

A ver si funciona...

Gracias!!!
Yo cargué el prueba.elf y me sale la pantalla a colorines jeje por eso pregunté como hacer u.u y de compilar no se nada aunque me gustaría aprender.
bueno, esto me lo dejaré para el fin de semana... que eso de lo colorines no me lo esperaba ;)
jeje bueno yo cuando quieras puedo probar no tengo los 4 wiimotes pero weno algo es algo.
Esta es lo mismo pero con el GRRLIB a ver si no salen tantos colores... al menos se debería quedar todo negro...

Si no dice nada, prueba igualmente a pulsar 1 y 2 a la vez ;)

http://www.mediafire.com/?zxppd5em1mm
Esto ya va mejor, aunque lo de presiona 1 y 2 no lo veo bein me sale muy arriba, será la configuración de mi tele o de la wii? mmm

Weno ahora me detectó 1 Wiimote y quise detectar el segundo pero nada, se puso la pantalla en negro y luego fui pulsando todoss los botones y aparece el texto de nuevo cada vez que pulso algo, y son los botones del classic también.
He estado mirando el código de wiiuse y creo que debería ser como lo he hecho ahora...

No creo que tengan un bug tan grande y saquen versión vamos ;)

Mira a ver esta: tendrías que darle más o menos a la vez, al 1 y al 2, en los dos wiimotes y a ver que pasa....

Lo bueno que si no te sale a la primera dejará volver a intentar sincronizar mas de un wiimote....

http://www.mediafire.com/?mzxevar2q04

Gracias Ahriman!!!
Me sale un error, bueno sale el Code Dump: que salía a veces con el wad installer, supongo que ya sabes, ni idea de porque u.u
Así de primeras o al hacer algo??
perdona, al sincronizar, parecee que detecta el primer wiimote y al encontrar el segundo sale eso del code dump: y mucho código chino pa mi jaja

Edito: Si detecto un wiimote solo, funciona pero al darle a un botón sale el code dump:
Ups... os es un fallo tonto mío o no lo estoy haciendo como debo...

puedes mirar este??

http://www.mediafire.com/?kbeqriwmjmm

Thx!
a mi me sale esto al intentar compilar

Imagen
eso es porque no tienes el libogc del cvs... Es la última versión compilada por mi...

te la subo aquí: http://www.mediafire.com/?4xxdiy4db4h

Tened en cuenta que no es una release oficial y puede tener fallos...
Si yo voy probando no hay problema jeje.

Las pruebas que hice ahora:

Poner a detectar los 2 wiimotes a la vez y pilla solo el primero.

Poner a detectar el primero y luego el segundo, detecta el primero y el segundo no, pero si en el primero presiono un botón y luego pongo a detectar de nuevo el segundo, tira el code dump ese

Edit: Ahroa em salen más letras al detectar el wiimote 1, pero sigo sin poder verlas bien todas.
gracias, bajando


edit: a mi lo uniko k me sale es lo siugiente:

Imagen
Te sale algo mejor que a mi jeje, yo el IF lo veo justillo.
Me lo imaginaba bastante más pequeño, pero bueno...


http://www.mediafire.com/?vzmp9fxvmz3

A ver si esta no peta y se ve medio bien...
En mi tele un poco más a la derecha y se vería perfecto =P

Primera prueba fue poner a detectar wiimote 1 y leugo el 2.

Segunda prueba lso 2 a la vez y esta vez me pilló antes el wiimote 2, igual por darle algo antes o así pero bueno.

Una vez detecta un wiimote, el segundo lo pilla si le diste a algún botón en el wiimote detectado., pero da error , lo dle code dump.


Edit: No funciona el mando clásico, sólo si le doy al wiimote cambia el texto.
de buenas a primeras si pruebas de principio el uno y en menos de dos segundos el dos... solo detecta el 1????

Quiero decir, detecta los dos alguna vez??
Y cuales han sido los pasos exactos para llegar a esto??


Gracias de nuevo!
A ver haga lo que haga realmente detecta el wiimote 1 y aparece un texto, aunque un par de veces que presioné un botón del wiimote 1 y quita ese texto dejando el texto de presiona 1 y 2. Entonces ahí es cuando le doy a detectar el wiimote 2 y parece que lo pilla pero ya justo sale al momento el code dump, por ahora detecta un milisegundo el wiimote 2 haciendo lo que dije.
no se puede hacer la letras mas pekeñas????


por k salen grandes a lo vestia xD


pd: estoy modificando el codigo para k se vea mas abajo xD
Es muy chungo aprender a modificarlo? x_D
pos no te creas xD

ya e conseguido poner en als siguientes lineas las letras xD, pero parece que la lib de las letras le faltan algunas, me salen solo letras sueltas


ejemplo: P 1 y 2
Verdaderamente, las letras es lo de menos... Las he sacado del wiipaint...

Lo que me interesa es los wiimotes :D

Pero parece que las librerías wiiuse no funcionan exactamente como las de PC...

Cuando te detecta al menos un wiimote, si pulsas A y B se pone a esperar eventos de pulsación, pero si pulsas otra cosa, vuelve a intentar sincronizar... Y debe ser ahí donde falla...

He intentado limpiar mejor el reinicio de sincronización, pero a saber...

Como dijo lopst, es probable que tengan este bug... Aún así durante el finde haré pruebas a ver que pasa...

http://www.mediafire.com/?2row0w3gchg
Ese último ya da error de code dump: antes de salir nada =(

Edito: A ver la prueba 5 si va bien con el clásico, me faltó darle a A + B...

El problema es la sincronización del wiimote 2, perdona ><

Edit2: cuando presiono una tecla sale un número, no se si lo necesitas confirmar.
cuando sincronizas un mando y luego pulsas a +b, le das a un boton y te sale


ejemplo: evt 0800 --> este es el codigo del boton k pulsastes (eso pienso yo xD)


pd: usas la GRRLIB 1.0 ???, yo puse la 2.0
Yo voy a dormir si no ohay más para proabr por ahora y la noche vuelvo por si hago falta aun =P
efectivamente es una operación tipo or con las macros de pulsación de botón...

Bueno, revisaré a ver si consigo sincronizar 2...
nullEX yo hice muchas pruebas sin éxito, parece q no va bien del to. Como no tenia ganas de perder el tiempo lo hice como ves en los emus. De toas formas lo miraré (q se me kedó el gusanillo). Si consigo algo te lo digo.


Salu2
Pues a ver si alguno conseguimos hacer que funcione como debe jejeje
yo solo tengo un wiimote y con eso no ago nada [buuuaaaa]
sigo por aquí =P, me gustaría saber como hacéis para ayudar y porque me gusta aprender cosas nuevas pero bue seré el tester xd
yo lo k ago es ir modificando cosas en el codigo y mirar si va :-|
pero para modificar cosas abrá que saber que se debe modificar jeje y con que programa y yo de eso no se nada :S
pos bajate el devkit pro 1.4.6, instalalo leete los eejemplos k trae e intenta acer algo [666]
Vale, por algo se empieza :P, gracias

Edito:El devkitpro ese está instalandose y descargando cosas, ahora iré ya a dormir que llevo toda la noche despierto hasta ahroa o0, espero que consigáis qu se detecten varios wiimotes, si se sube alguna prueba, la miraré luego en cuanto pase por eol

hasta luego :)

Edit: No se ha avanzado en esto? yo sigo haciendo pruebas cuando subas una nueva, espero que consigas lo que tienes pensado :)
Ahora estoy probando a reescribir un poco la librería de wiiuse, al menos la parte de conexión de wiimotes, a ver si así funciona...

Por si alguien quiere trastear un poco aquí va...

http://www.mediafire.com/?cd1yxn12ikf
Hola nullEX, en unos 5min me pongo a probar esto =)

Edit: Bueno ya probé y presiono 1 y 2 y me detecta el wiimote 1, luego presiono A+B y aparece de nuevo "presiona 1 y 2" y lo hago con el wiimote 2, y cuando tiembla como si fuese detectado, sale el code dump.

también probé a presionar los botones cuando es detectado el wiimote 1 y en vez de aparecer códigos de cada botón, aparece lo de "presiona 1 y 2 de nuevo"

saludos
como dijo para, la libreria wiiuse tiene fallos graves, asique vas a tener que tocar muy abajo para que funcione.

ademas tiene otro error que tu en wiiuse no puedes tocar: el stack del bluetooth (que se usa para comunicar con el wiimote). hasta que no arreglen eso es posible que el mando funcione hasta que de pronto no funcione nada, y cosas asi.

suerte con todos los intentos, sobre todo comentadlos en #wiidev por si acaso sirven para mejorar la libreria.
Bueno, por fin he conseguido que la librería funcione como debe (más o menos)... Creo que aún existen ciertos problemas con la pila del bluetooth de la libogc, y con la propia librería wiiuse; pero añadiendo dos funciones más, podemos conseguir sincronizar tantos wiimotes como queramos en nuestra aplicación, con solo una instancia de "wiimote**"...

Aquí tenéis la prueba y las fuentes...

http://www.mediafire.com/?621jjlu71my

No es difícil de entender: la primera vez que cargamos un wiimote, lo hacemos con wiiuse_find y wiiuse_connect; las demás con wiiuse_find_more y wiiuse_connect_more... Simple, pero eficiente.

Por cierto, en la demo, hay que presionar A y B a la vez con bastante precisión, si no interpretará solo uno de los botones...

Edito: [Gerar], tienes razón, jeje... estábamos escribiendo a la vez ;)

Le he estado echando un ojo a la libogc, concretamente al BT stack y la verdad es que tiene una implementación un tanto extraña, pero esto es normal, por eso lo mantienen en el cvs.

Creo que no es capaz de detectar más de un dispositivo a la vez en el hci_inquiry, y esto prefiero no tocarlo...

La wiiuse es un port de la misma librería de linux, no tiene todas las opciones, pero si el stack funciona bien, no debería tener mayores problemas. Aunque si se le pueden añadir opciones que la versión de linux ya tiene...

Y por último, después de varios retoques, he llegado a la conclusión de que la forma menos intrusiva y más simple de sincronizar varios wiimotes en un solo objeto es la de ir añadiéndolos a continuación. Con esto conseguiremos una mejora, por ejemplo, en el emulador de snes, que ahora declara dos matrices para almacenar dos wiimotes.

Con esta simple modificación se consigue almacenar lo mismo en una sola matriz, reduciendo el código, operaciones y memoria.

Aunque habrá que esperar, todas estas librerías son versiones tempranas... Pero viene bien ir usándolas y aprendiendo, además, funcionan bastante bien ;)
Muy bien! ya funciona bien jeje, si necesitas alguna prueba más adelante avisame, pena no tener 4 wiimotes para probarlo mejor xD
42 respuestas