Estoy seguro que muchos de vosotros os habéis quedado encantados con los tutoriales de SceneBeta. Y es que eso de dominar vuestra consola favorita es una fantástica experiencia. Pues bien, para aquellos que os habéis quedado con ganas de profundizar en la programación para Wii os propongo que sigáis esta serie de tutoriales especializada en los mandos y sus extensiones.
En estos tutoriales voy a intentar no utilizar ninguna librería en particular, únicamente tener instalado el devkitpro y os recomiendo que sigáis los cuatro tutoriales de programación (Hechos por csar.ale) ya que daré por sabido todo lo que explica en ellos.
También os diré que pasaré por alto toda la inicialización de vídeo agrupándola en una función que es llamada al principio del programa y que podéis considerar como una caja negra. Aunque realmente no tiene mucha complicación y os animo a que le echéis un vistazo.
Al final de este primer tutorial habréis construido un tester de las capacidades extendidas de los WiiMotes incluido el manejo del sensor de infrarrojos, del joystick y la lectura del ángulo del wiimote y del nunchuck.
En siguientes tutoriales aprenderemos a usar los acelerómetros, el rumble y el sonido del mando.
Si me animo con esto de los tutoriales la idea es haceros una pequeña introducción de las GX (hasta donde yo sé) con gestión de sprites y manejo de transparencias a través del canal alfa.
Pues termino de daros el rollo y comienzo con el tema.
Construcción de un tester de las capacidades extendidas de los wiimotes
Antes que nada, debemos descargar este pack con nuestras herramientas.
Descargar Pack Profundizando mandos de Wii
Para seguir este tutorial necesitaréis los siguientes elementos:
Descargaros el zip que incluye:
Adicionalmente necesitaremos:
Una vez que tengamos todo esto, cread una carpeta nueva y copiad el contenido del zip y el wiiload en dicha carpeta.
Abrid el archivo ejecuta.bat con el Notepad y sustituir la dirección IP que figura ahí por la de vuestra Wii, grabando el archivo una vez modificado.
Si lo habéis modificado correctamente y tenéis cargado el Homebrew Channel ejecutad este archivo después compilar el programa ya que tranferirá automáticamente el .dol a la SD y lo cargará en la memoria de la Wii.
Como ya visteis en el ButtonTester de csar.ale, lo primero que tenemos que hacer a la hora de gestionar los wpads es inicializarlos. Para ello utilizaremos la función WPAD_Init();
En aquel caso utilizamos un solo wpad, entendiendo que necesariamente era el número 0 el que teníamos en nuestras manos. Para manejar más de un mando o buscar cual de todos está encendido utilizaremos la función WPAD_Probe.
s32 WPAD_Probe(s32 chan,u32 *type);
Para utilizar dicha función pasaremos como parámetro el número de wpad que queremos testear y nos devolverá como resultado un valor mayor o igual que cero si ese mando está conectado y en type en tipo de expansión que tenemos conectada en él.
Como ejemplo, si queremos ver cuál es el primer mando que tenemos activado podríamos usar un bucle como el siguiente:
u32 expansion_type, pad;
int ret = -1;
while (ret < 0) {
for(pad=0;(pad<4)&(ret<0);pad++)
ret=WPAD_Probe(pad, &expansion_type);
}
pad--;
Una vez sabemos cuál es el mando que vamos a usar deberemos configurar algunas cosas más de los wiimotes:
WPAD_SetVRes(pad, 640, 480); WPAD_SetDataFormat(pad, WPAD_FMT_BTNS_ACC_IR); WPAD_SetIdleTimeout(300);
La función WPAD_SetVRes asigna la resolución con la que vamos a trabajar con el IR, siendo 0,0 la esquina superior izquierda de la pantalla y (en este caso) 640x480 la esquina inferior derecha.
La función WPAD_SetDataFormat ajusta el modo de operación de los PADS. Como en este programa vamos a utilizar todas las características de los wiimotes utilizaremos WPAD_FMT_BTNS_ACC_IR, que activa el wiimote, los acelerómetros y el IR, aunque podríamos desactivar algunas funciones para ahorrar batería usando las constantes WPAD_FMT_BTNS, o WPAD_FMT_BTNS_ACC.
Por último la función SetIdleTimeout nos permite configurar el tiempo en segundos de inactividad necesarios para que se desactive el wiimote.
A continuación ya entramos en el típico bucle de control del programa en el que estamos leyendo los wiimotes hasta que pulsamos el botón Home.
while(1) {
……
WPAD_ScanPads();
u32 pressed = WPAD_ButtonsHeld(pad);
……
if ( (pressed & WPAD_BUTTON_HOME) | (ret < 0)) exit(0);
VIDEO_WaitVSync();
}
En dicho bucle llamamos, en cada ciclo, a la función WPAD_ScanPads para leer el estado de los wpads y comprobamos la pulsación de la tecla Home para permitirnos volver al Homebrew Channel.
Al final del bucle llamamos a la función VIDEO_WaitVSync() para sincronizarnos con el refresco de la pantalla y evitar parpadeos.
Partiendo de este bucle básico vamos a añadir funciones adicionales que nos permitan leer las extensiones del wpad:
Para comprobar y mostrar por pantalla si un botón está pulsado podemos utilizar una sentencia como esta:
if ( pressed & Boton ) {
printf("\x1b[%d;%dH", y, x);
printf(texto);
} else {
printf("\x1b[%d;%dH", y, x);
printf(" ");
}
Para facilitar la labor y reducir código en el programa he convertido este fragmento de código en una función ya que lo vamos a utilizar para comprobar todas y cada una de las teclas de los mandos.
int procesaboton(u32 pressed, int x, int y, u32 Boton, char* texto);
A esta función la he llamado procesaboton y tiene como parámetros la variable pressed que contiene el estado de las teclas pulsadas, la posición x e y donde queremos que nos muestre la cadena contenida en la variable texto y la constante correspondiente a la tecla que queremos comprobar.
Ya dentro del bucle llamaremos a la función una vez por cada botón a ser comprobado.
Hasta aquí, aparte de utilizar más de un wiimote no hemos visto nada nuevo en comparación con el clásico button tester. Para poder utilizar todas las características de los mandos podemos utilizar la función WPADData *WPAD_Data(int chan) a la que pasándole el número del wpad que queremos consultar nos devuelve un puntero a una variable tipo WPADData que contiene toda la información que necesitamos.
wmote_data=WPAD_Data(pad); typedef struct _wpad_data { s16 err; u32 data_present; u8 battery_level; u32 btns_h; u32 btns_l; u32 btns_d; u32 btns_u; struct ir_t ir; struct vec3w_t accel; struct orient_t orient; struct gforce_t gforce; struct expansion_t exp; } WPADData;
La posición a la que apunta el sensor infrarrojo la podemos sacar del par de valores wmote_data->ir.x, wmote_data->ir.y, mientras que la orientación del wiimote la podemos sacar de wmote_data->orient.pitch y wmote_data->orient.roll, donde pitch es el cabeceo del mando y roll el giro del mismo sobre un eje imaginario perpendicular al sensor.
Para mostrar estos valores podríamos escribir lo siguiente:
// Muestra la posición X,Y del infrarrojo
printf("\x1b[%d;%dH", 1, 0);
printf("IR: ( \%0.0f;\%0.0f ) ", wmote_data->ir.x, wmote_data->ir.y);
// Muestra la orientación del wiimote
printf("\x1b[%d;%dH", 2, 0);
printf("Cabeceo: \%0.00f ", wmote_data->orient.pitch);
printf("\x1b[%d;%dH", 3, 0);
printf("Giro: \%0.00f ", wmote_data->orient.roll);
Para mostrar el estado de la expansión conectada al wiimote, ya sea el nunchuk, el mando clásico u otro, podemos utilizar la variable expansión_type que previamente nos había devuelto la función WPAD_probe.
La información de la expansión viene en el campo exp de la estructura. Así, la información del Nunchuk la podemos encontrar en wmote_data->exp.nunchuk, teniendo la posibilidad de acceder a los campos, pitch, roll y js entre otros.
Los campos pitch y roll, al igual que en el wiimote, nos devuelven la orientación del nunchuk, mientras que el campo js nos permite el acceso a la información del joystick analógico.
El campo wmote_data->exp.nunchuk.js.ang nos da el ángulo de orientación de la palanca del joystick, mientras que wmote_data->exp.nunchuk.js.mag nos informa de lo alejado que está la palanca de la posición central.
Podemos observar los rangos de valores de todas estas variables al ver el programa en ejecución.
Por ejemplo wmote_data->exp.nunchuk.js.ang oscila entre 0 y 360, mientras que la variable wmote_data->exp.nunchuk.js.mag contiene 0 con el joystick en la posición de reposo mientras que contiene un 1 con el joystick en la posición más alejada.
No voy a extenderme con el resto porque la programación es idéntica.
Aquí os dejo el código completo:
#include <stdio.h> #include <stdlib.h> #include <gccore.h> #include <wiiuse/wpad.h> static void *xfb = NULL; static GXRModeObj *rmode = NULL; int procesaboton(u32 pressed, int x, int y, u32 Boton, char* texto) { if ( pressed & Boton ) { printf("\x1b[%d;%dH", y, x); printf(texto); } else { printf("\x1b[%d;%dH", y, x); printf(" "); } } void Init_Video(void); //--------------------------------------------------------------------------------- int main(int argc, char **argv) { //--------------------------------------------------------------------------------- u32 expansion_type, pad; WPADData * wmote_data; Init_Video(); // Esta función inicializa los PADs conectados WPAD_Init(); // Busca el primer pad encendido y guarda el tipo de su expansión en expansion_type int ret = -1; while (ret < 0) { for(pad=0;(pad<4)&(ret<0);pad++) ret=WPAD_Probe(pad, &expansion_type); } pad--; // Asigna la resolucion que nos devuelve el IR WPAD_SetVRes(pad, 640, 480); // ajusta el modo de operación de los PADS activando acelerometros y el IR WPAD_SetDataFormat(pad, WPAD_FMT_BTNS_ACC_IR); // tiempo en segundos que aguardará el wiimote hasta apagarse por falta de uso WPAD_SetIdleTimeout(300); while(1) { // Comprobamos si se conecta o desconecta alguna expansión ret=WPAD_Probe(pad, &expansion_type); // Esto lee el estado de los mandos a cada ciclo del bucle WPAD_ScanPads(); // recoge los datos extra del wiimote wmote_data=WPAD_Data(pad); // WPAD_ButtonsHeld nos dice todos los botones pulsados tanto del wiimote como // de las expansiones // Si en su lugar usaramos WPAD_ButtonsDown solo se activaría una vez y no volveria // a activarse hasta que no soltaramos el botón y lo volvieramos a pulsar u32 pressed = WPAD_ButtonsHeld(pad); // Muestra el primer mando detectado printf("\x1b[%d;%dH", 0, 0); printf("Mando \%d", pad); // Muestra la posición X,Y del infrarrojo printf("\x1b[%d;%dH", 1, 0); printf("IR: ( \%0.0f;\%0.0f ) ", wmote_data->ir.x, wmote_data->ir.y); // Muestra la orientación del wiimote printf("\x1b[%d;%dH", 2, 0); printf("Cabeceo: \%0.00f ", wmote_data->orient.pitch); printf("\x1b[%d;%dH", 3, 0); printf("Giro: \%0.00f ", wmote_data->orient.roll); // Muestra los botones pulsados del wiimote procesaboton(pressed, 0, 5, WPAD_BUTTON_1, "1"); procesaboton(pressed, 0, 6, WPAD_BUTTON_2, "2"); procesaboton(pressed, 0, 7, WPAD_BUTTON_A, "A"); procesaboton(pressed, 0, 8, WPAD_BUTTON_B, "B"); procesaboton(pressed, 0, 9, WPAD_BUTTON_PLUS, "+"); procesaboton(pressed, 0, 10, WPAD_BUTTON_MINUS, "-"); procesaboton(pressed, 0, 11, WPAD_BUTTON_LEFT, "<-"); procesaboton(pressed, 0, 12, WPAD_BUTTON_RIGHT, "->"); procesaboton(pressed, 0, 13, WPAD_BUTTON_UP, "^"); procesaboton(pressed, 0, 14, WPAD_BUTTON_DOWN, "v"); // Muestra caracteristicas de la expansión conectada al wiimote int i; switch (expansion_type) { case WPAD_EXP_NONE: // No hay expansión conectada for (i=0;i<15;i++){ printf("\x1b[%d;%dH", i, 20); printf(" "); } break; case WPAD_EXP_NUNCHUK: // Conectado el Nunchuck printf("\x1b[%d;%dH", 0, 20); printf("Nunchuk"); // Muestra la orientación del Nunchuk printf("\x1b[%d;%dH", 1, 20); printf("Cabeceo: \%0.00f ", wmote_data->exp.nunchuk.orient.pitch); printf("\x1b[%d;%dH", 2, 20); printf("Giro: \%0.00f ", wmote_data->exp.nunchuk.orient.roll); // Posición del Joystick printf("\x1b[%d;%dH", 3, 20); printf("Angulo: \%f", wmote_data->exp.nunchuk.js.ang); printf("\x1b[%d;%dH", 4, 20); printf("Magnitud: \%f", wmote_data->exp.nunchuk.js.mag); // Botones C y Z procesaboton(pressed, 20, 4, WPAD_NUNCHUK_BUTTON_C, "C"); procesaboton(pressed, 20, 5, WPAD_NUNCHUK_BUTTON_Z, "Z"); break; case WPAD_EXP_CLASSIC: // Mando clasico conectado printf("\x1b[%d;%dH", 0, 20); printf("Mando Clasico"); // Posición del Joystick izquierdo printf("\x1b[%d;%dH", 1, 20); printf("Angulo: \%f", wmote_data->exp.classic.ljs.ang); printf("\x1b[%d;%dH", 2, 20); printf("Magnitud: \%f", wmote_data->exp.classic.ljs.mag); // Posición del Joystick derecho printf("\x1b[%d;%dH", 3, 20); printf("Angulo: \%f", wmote_data->exp.classic.ljs.ang); printf("\x1b[%d;%dH", 4, 20); printf("Magnitud: \%f", wmote_data->exp.classic.ljs.mag); procesaboton(pressed, 20, 5, WPAD_CLASSIC_BUTTON_ZL, "1"); procesaboton(pressed, 20, 6, WPAD_CLASSIC_BUTTON_ZR, "2"); procesaboton(pressed, 20, 7, WPAD_CLASSIC_BUTTON_A, "A"); procesaboton(pressed, 20, 8, WPAD_CLASSIC_BUTTON_B, "B"); procesaboton(pressed, 20, 9, WPAD_CLASSIC_BUTTON_PLUS, "+"); procesaboton(pressed, 20, 10, WPAD_CLASSIC_BUTTON_MINUS, "-"); procesaboton(pressed, 20, 11, WPAD_CLASSIC_BUTTON_LEFT, "<-"); procesaboton(pressed, 20, 12, WPAD_CLASSIC_BUTTON_RIGHT, "->"); procesaboton(pressed, 20, 13, WPAD_CLASSIC_BUTTON_UP, "^"); procesaboton(pressed, 20, 14, WPAD_CLASSIC_BUTTON_DOWN, "v"); break; case WPAD_EXP_GUITARHERO3: // Conectado Guitar Hero printf("\x1b[%d;%dH", 0, 20); printf("Guitar Hero 3"); break; default: // Tipo de expansión desconocida printf("\x1b[%d;%dH", 0, 20); printf("%d", expansion_type); } // Volvemos al launcher cuando pulsamos el botón Home if ( (pressed & WPAD_BUTTON_HOME) | (ret < 0)) exit(0); // Esperamos al siguiente frame VIDEO_WaitVSync(); } // Terminamos de trabajar con el wiimote WPAD_Shutdown(); return 0; } void Init_Video(void) { // Initialise the video system VIDEO_Init(); // Obtain the preferred video mode from the system // This will correspond to the settings in the Wii menu rmode = VIDEO_GetPreferredMode(NULL); // Allocate memory for the display in the uncached region xfb = MEM_K0_TO_K1(SYS_AllocateFramebuffer(rmode)); // Initialise the console, required for printf console_init(xfb,20,20,rmode->fbWidth,rmode->xfbHeight,rmode->fbWidth*VI_DISPLAY_PIX_SZ); // Set up the video registers with the chosen mode VIDEO_Configure(rmode); // Tell the video hardware where our display memory is VIDEO_SetNextFramebuffer(xfb); // Make the display visible VIDEO_SetBlack(FALSE); // Flush the video register changes to the hardware VIDEO_Flush(); // Wait for Video setup to complete VIDEO_WaitVSync(); if(rmode->viTVMode&VI_NON_INTERLACE) VIDEO_WaitVSync(); }
Si queréis saber más al respecto, podéis investigar vosotros mismos en los ficheros wpad.h y wiiuse.h.
Para la segunda parte del tutorial, tengo previsto pasar a explicar la funcionalidad de la vibración (Rumble), del sonido de los mandos y de los acelerómetros.
Espero que os haya gustado el tutorial, ahora……a disfrutar programando.
Comentarios
retardo en la imagen
Hola, resulta que tengo un retardo cuando muevo el puntero con la imagen del televisor de unos segundos y eso impide jugar bien. Este tutorial me podría solucionar este problema?
Gracias
pusana
Hola, este tutorial no es
Hola, este tutorial no es para eso. Lo más probable es que tú hayas cambiado de TV con la que usabas la consola y se te empezó a presentar ese problema, ¿es así? Revisa este tutorial por si te ayuda:
http://wii.scenebeta.com/tutorial/solucion-al-lag-o-retardo-...
Saludos.
Mi entrada de bitácora: 3 años: Historia de un Editor
Si tienes una duda, por favor realízala en los foros o en la noticia correspondiente, ya que así también ayudas a otros usuarios. No respondo dudas por mensajería privada.
Tengo unas dudas
Tengo unas dudas:
Hay cosas que no entiendo.
Hola a tod@s,
Quisiera dar las gracias a todos por el trabajo realizado aqui.He seguido los anteriores tutoriales de cesar y se lo basico bueno tal vez ni eso jajaja.He leido varias veces este tutorial y me han surgido unas dudas esperon que me puedan ayudar.
1 En mi afan de aprender mas sibre la programacion he dado muchas vueltas y he obsaervado que algunas librerias son de C y eso no afectara a la hora de compilar es decir no tendre problemas?
2 Los programillas que he hecho son muy basicos (el hola mundo y un button testter modificado para que cada boton sea de un color) pero no entiendo lo de las funciones y los bucles y los tipos de whiles se que hay varios pero nada mas.Tal vez este tuto me venga grande.
3 Es completamente necesario descargar ese archivo del principio.Es que no dispongo de internet.
4 He dejado unas dudas en el foro de programacion y no han recibido respuesta espero que alguien se apiade de mi y le heche un vistazo.
Por ultimo dar las gracias y seguid asi.
Saludos
Intentaré responderte por
Intentaré responderte por orden:
http://www.elrincondelc.com/cursoc/cursoc.html)
Curso aplicado de GRRLIB - Parte 1 - Parte 2 - Parte 3 - Parte 4 - Parte 5 - Parte 6 - Parte 7 - Parte 8 - Parte 9 - Parte 10 - Parte 11
Profundizando en los mandos de la Wii - Parte 1 - Parte 2 - Parte 3 - Parte 4 (Balanceboard) - Parte 5 (Miis)
Homebrew - WiiTriis - LifemiiWii
no soi capad de hackear la wi
Hola, tengo una wii 4.3E y he probado todo lo relacionado con el pirateo y no doi, el primer problema es que cuando ejecuto los cios los mandos dejan de funcionar y la wii no responde por lo que tengo que desenchufarla de la corriente, he intentado descargarme todos los programas con relacion a esto pero hai uno que no se me ejecuta con CMD (GRRLIB), tampoco tengo wi-fi, pero de todos modos si me podeis guiar como proceder os lo agradeceria.
Un saludo.
Este hilo no es el adecuado
Este hilo no es el adecuado para tu pregunta. GRRLIB es una biblioteca de programación para hacer software casero para Wii.
Lo mejor que puedes hacer es seguir este hilo: http://wii.scenebeta.com/tutorial/piratear-wii-sin-chip
Curso aplicado de GRRLIB - Parte 1 - Parte 2 - Parte 3 - Parte 4 - Parte 5 - Parte 6 - Parte 7 - Parte 8 - Parte 9 - Parte 10 - Parte 11
Profundizando en los mandos de la Wii - Parte 1 - Parte 2 - Parte 3 - Parte 4 (Balanceboard) - Parte 5 (Miis)
Homebrew - WiiTriis - LifemiiWii
problema resuelto
ya resolvi el problema, lo que paso fue que como yo empeze con los tutos de csar crei que habia que compilarlo igual, pero ya vi que no jeje. muchas gracias
pd: muy bueno tu tutorial
no lo puedo compilar
ese es mi problema no puedo compilarlo esto es lo que dice la ventana:C:\util>SET WIILOAD=tcp:192.168.1.10
C:\util\wiiload mandos.dol "fat:/" wiiload v0.4
codded by dhewg, #wiidev efnet
error opening the file: no such file or directory
C:\util>pause
presione una tecla para continuar
hay que ponerlo en alguna carpeta en paricular? espero tu respuesta
Lo primero es que debes tener
Lo primero es que debes tener instalado el devkitpro. Si no lo tienes debes seguir el tutorial número 1 del curso de GRRLIB que viene explicado en detalle o bien en el curso de csar tal y como te indica en este tutorial.
El contenido de los rar lo debes descomprimir en cualquier carpeta de tu disco duro y después para compilarlo lo puedes hacer de dos maneras:
1 - abrir el archivo mandos.pnproj desde el programmers notepad y pulsar Alt+1
2 - escribir make desde la misma carpeta en la que has descomprimido los archivos.
El archivo .bat que viene en el paquete es para pasar el programa via wifi a tu Wii, pero para ello debes haber copiado primero el archivo wiiload.exe en la carpeta c:\util y tener configurada tu wii para conectarse a tu red wifi.
Otra manera de ejecutar el archivo es copiarlo manualmente a la SD y ejecutarlo, por ejemplo con el wiiexplorer.
Curso aplicado de GRRLIB - Parte 1 - Parte 2 - Parte 3 - Parte 4 - Parte 5 - Parte 6 - Parte 7 - Parte 8 - Parte 9 - Parte 10 - Parte 11
Profundizando en los mandos de la Wii - Parte 1 - Parte 2 - Parte 3 - Parte 4 (Balanceboard) - Parte 5 (Miis)
Homebrew - WiiTriis - LifemiiWii
otro link de descarga?¿
Holoa me podriais dar otro link de descarga esque an cerrado megaupload
Ya están subido los fuentes
Ya están subido los fuentes de nuevo.
Gracias por el aviso.
muchas gracias
muchas gracias por el nuevo link.
y denada por avisaros
.
estos tutoriales deberian aparecer aqui http://wii.scenebeta.com/tutorial/tutoriales-programacion-wi...
Estoy de acuerdo
Estoy de acuerdo contigo.
¿Quien debería encargarse de ello?
Yo me encargo.Saludos.
Yo me encargo.
EDITO: Todos colocados donde corresponde.
Saludos.
Librerias en visual net....
sabe alguien si existen liobrerias para controlar los controles de wii en plataforma NET, seria interesante ejecutar tecnicas de control con motores y sensores por medio del mando Wii.... o controlar por mediod e bluthtoot otros dispositivos por medio de la consolay el control.... espero alguien sepa algo y comenten el tema!!!
Las librerias de wiiuse las
Las librerias de wiiuse las tienes, además de para Wii, tambien para Linux y Windows.
Yo no las he probado pero si accedes a la página oficial, igual puedes averiguar tú algo.
http://www.wiiuse.net/docs/index.htm
Espero que te sirva de ayuda
Curso aplicado de GRRLIB - Parte 1 - Parte 2 - Parte 3 - Parte 4 - Parte 5 - Parte 6 - Parte 7 - Parte 8 - Parte 9 - Parte 10 - Parte 11
Profundizando en los mandos de la Wii - Parte 1 - Parte 2 - Parte 3 - Parte 4 (Balanceboard) - Parte 5 (Miis)
Homebrew - WiiTriis - LifemiiWii
esta muuuuy bien el tutorial.
esta muuuuy bien el tutorial. Ya estuve viendo los 4 anteriores y otros mas en otra pagina con la libreria multiusos.h y algunas funciones no se escriben iwal como printf ke seria screenFontPrintf();
y nada, cuando tenga algo de tiempo mirare este (y la 2ª parte ke ya veo ke has hecho ya)
hay ke aprovechar al maximo y bien el material ke nos brindas ya ke en la red hay muy poko sobre el tema, y lo ke hay la mayoria esta en ingles, cosa ke aun dificulta mas el aprendizaje pero bueno, como bien dices, si a 4 o 5 les sirve tu trabajo, ke sepas ke yo soy uno de esos 4 o 5 :D gracias y animo para hacer mas tutoriales educativos, ke son realmente estos tutoriales donde una vez aprendido lo expuesto, nos vienen pekeñas ideas para pekeños proyectos, dandole un fin personalizado a todas las funciones ke podemos utilizar!!
gracias de nuevo, hasta pronto ;)
Muchisimas gracias. Ver que
Muchisimas gracias.
Ver que hay gente que le gusta todo esto es lo que anima a continuar.
Saludos, y aquí estoy para lo que queráis.
Curso aplicado de GRRLIB - Parte 1 - Parte 2 - Parte 3 - Parte 4 - Parte 5 - Parte 6 - Parte 7 - Parte 8 - Parte 9 - Parte 10 - Parte 11
Profundizando en los mandos de la Wii - Parte 1 - Parte 2 - Parte 3 - Parte 4 (Balanceboard) - Parte 5 (Miis)
Homebrew - WiiTriis - LifemiiWii
Perdon, pero no acabo de
Perdon, pero no acabo de entender para que vale este tutorial, seria conveniente que lo pusieses por el principio para los usuarios menos hábiles ;)
La verdad es que me interesa, espero vuestra respuesta gracias :)
El objetivo del tutorial es
El objetivo del tutorial es aprender a hacer un programa en C que funcione en nuestras Wii y que muestre en pantalla los siguientes datos:
- El mando que está encendido.
- Los botones que hemos pulsado en dicho mando.
- La posición X, Y a la que apunta (a esto se le llama IR en el tutorial porque utiliza tecnología de Infrarrojos igual que el mando a distancia de la tele.
- El angulo de giro de dicho mando.
- Si tiene un Nunchuk, o un mando clasico conectado (a estos dispositivos se les llama extensión en el tutorial)
- Qué botones del Nunchuk o del mando clasico que hay pulsados.
- La posición del Joystik del Nunchuk o de los Joysticks izquierdo y derecho del mando clasico.
El objetivo del tutorial no es comenzar por el principio, sino continuar suponiendo que hemos seguido los 4 tutoriales de csar.ale que están magnificamente explicados y que sí que empiezan desde el principio.
En los tutoriales de Csar se empieza explicando el entorno de programación y se terminando en una versión de button tester parecida a esta pero solo mostrando el estado de los botones del mando.
Si pese a todo hay demanda de un turial "Parte 0" que explique todo desde el principio, intentaré sacarlo después de terminar el que estoy escribiendo en este momento.
Aquí os dejo el enlace a los tutoriales de csar.ale para que los probéis y y a me decis.
http://wii.scenebeta.com/tutorial/cursos-basicos-de-programacion-en-c-para-wii
Curso aplicado de GRRLIB - Parte 1 - Parte 2 - Parte 3 - Parte 4 - Parte 5 - Parte 6 - Parte 7 - Parte 8 - Parte 9 - Parte 10 - Parte 11
Profundizando en los mandos de la Wii - Parte 1 - Parte 2 - Parte 3 - Parte 4 (Balanceboard) - Parte 5 (Miis)
Homebrew - WiiTriis - LifemiiWii
Falta analizar el modo de
Falta analizar el modo de almacenamiento que tiene el wiimote.
Pero saldrìa en otro tutorial , o no està previssto eso???
A travès de esto serìa bueno poder modificar para poder convertir el wiimote en un medio de almacenamiento general entre wiis, y no solamente para llevar y almacenar datos de los Mii entre wiis.
Por ejemplo llevar los saves de una consola a otra.
Saludos y Bendiciones
Quique
Estoy investigandolo ahora
Estoy investigandolo ahora mismo.
Tengo información de como acceder a través del Bluetooth y de la estructura de datos, pero en las librerías que vienen con el devkitpro no está muy claro como poder hacerlo.
Si consigo la información haré un tuto con eso.
De todas formas hay mucho que ver en los siguientes tutoriales que tengo preparados.
EDITO: Lo prometido es deuda:
http://wii.scenebeta.com/node/30751
Curso aplicado de GRRLIB - Parte 1 - Parte 2 - Parte 3 - Parte 4 - Parte 5 - Parte 6 - Parte 7 - Parte 8 - Parte 9 - Parte 10 - Parte 11
Profundizando en los mandos de la Wii - Parte 1 - Parte 2 - Parte 3 - Parte 4 (Balanceboard) - Parte 5 (Miis)
Homebrew - WiiTriis - LifemiiWii
Que tal Probè hasta el
Que tal
Probè hasta el nunchuck y va de lujo y rapido, siguiendo el tutorial, uno se da cuenta de como funciona, estos dispositivos inclusive se puede aumentar la velocidad.El control clàsico no le tomè mucha importancia
Con eso esperarè, al segundo tutorial.
Saludos y Bendiciones
Quique
Perfecto!!!
Si algun dia me animo, seguire estos tutoriales ;)
Paz!!
Hay algo que no entendí. ¿El
Hay algo que no entendí. ¿El tester que creamos con este tuto sirve sólo para ver la capacidad actual del mando de wii o para mejorarla?
Por lo general para ver para
Por lo general para ver para la capacidad de funcionamiento de su programaciòn, inclusive a travès de su estructura de su lenguaje de programaciòn, permite analizar las reacciones que tanto el sensor hacia y desde los componentes de cada una de la wii, maneja.
Es como que que fueran parte del equipo de programadores de nintendo, la diferencia es que nintendo ya lo realizò y nosotros podemos ver y comprobar.
Saludos y Bendiciones
Quique
Únicamente para aprender a
Únicamente para aprender a utilizar las capacidades del mando.
La idea es profundizar en su conocimiento para ser capaces de crear nuestros propios Homebrews explotando todas sus posibilidades.
El primero es muy sencillo y es simplemente un buttontester potenciado, pero en los próximos tutoriales se va incrementando la complejidad, llegando a poder haceros algunos sencillos juegos, como un tiro al blanco y una balanza electronica que habla explotando las posibilidades de la BalanceBoard.
Curso aplicado de GRRLIB - Parte 1 - Parte 2 - Parte 3 - Parte 4 - Parte 5 - Parte 6 - Parte 7 - Parte 8 - Parte 9 - Parte 10 - Parte 11
Profundizando en los mandos de la Wii - Parte 1 - Parte 2 - Parte 3 - Parte 4 (Balanceboard) - Parte 5 (Miis)
Homebrew - WiiTriis - LifemiiWii
Ge-Ni-Al, XD
Esta genial el tutorial y esplicas todo muy claro(por lo menos para mi) estoy deseando ver la segunda parte
lo de la vibracion y el sonido suena(vaya hironia jeje) interesante ;)
has hecho un gran trabajo y seguro que te lo agradeceremos muchos jeje
Saludoos
[url=http://www.wiinnertag.com][img]http://www.wiinnertag.com/signature/noel_9.jpg[/img][/url]
Hay 10 tipos de personas, las que entienden binario y las que no.
¿ de que sirve esto ?
de que sirve esto ??
Por favor
Si lees mas puedes obserbar que nos enseña a programar, por favor no seas tan seco en tu respuesta, ya que puedes hacer que el autor se moleste, ha echo un gran trabajo para que nosotros disfrutemos, podrias minimo agradeser, desde ya gracias y saludos ;).
Gracias por el Tuto, esta muy bueno he interesante, sigue haci que dentro de poco tengo clarito lo de programacion jeje, un saludo y gracias ;).
The Allies, tu lugar para ayudar y ser ayudado.
Mantenemos un gran respeto hacia los usuarios que empiezan, y asi seguira siendo. Por estocreemos justo que se respeten nuestras normas de convivencia. Manual del perfecto forero.
jaja deveras no se T_T
no se que funcion tiene , que ase o que , iguala el wii mation plus o que .. ?????
Como decía abajo, solo sirve
Como decía abajo, solo sirve para aprender como se utilizan los mandos desde un programa en C. Lo que te permite, por ejemplo, programar tus propios juegos.
No tiene utilidad por si mismo si no pretendes aprender a programar para Wii.
Curso aplicado de GRRLIB - Parte 1 - Parte 2 - Parte 3 - Parte 4 - Parte 5 - Parte 6 - Parte 7 - Parte 8 - Parte 9 - Parte 10 - Parte 11
Profundizando en los mandos de la Wii - Parte 1 - Parte 2 - Parte 3 - Parte 4 (Balanceboard) - Parte 5 (Miis)
Homebrew - WiiTriis - LifemiiWii
Por supuesto que no me
Por supuesto que no me molesto.
No nos tiene porqué gustar a todos lo mismo, sino el mundo sería muy aburrido.
A mi me encanta programar. Mucho más que jugar a una consola. Y aunque al final todo esto solo sirva para disfrutar programando, para mi merece la pena. Especialmente cuando lo que programas es algo que inicialmente no está pensado para que lo pueda programar cualquiera. Es la atracción de lo desconocido.
Entiendo que a otros pueda no gustarle, pero solo con que a algunos de los que leais esto os guste, a mi me habrá valido la pena el tiempo que he invertido.
Curso aplicado de GRRLIB - Parte 1 - Parte 2 - Parte 3 - Parte 4 - Parte 5 - Parte 6 - Parte 7 - Parte 8 - Parte 9 - Parte 10 - Parte 11
Profundizando en los mandos de la Wii - Parte 1 - Parte 2 - Parte 3 - Parte 4 (Balanceboard) - Parte 5 (Miis)
Homebrew - WiiTriis - LifemiiWii
AHHHH
PERO QUE FUNCION TIENE ??? !!!!!!
Editado: El úso abusivo de las letras mayúsculas dificulta la lectura y en los foros equivale a gritar además incumple las Normas de la comunidad, antes de volver a postear por favor revíselas.| Rafael jesus
Pues
No dije que le deve gustar, me habeis malinterpretado, lo que quise espresar es que no fuera tan seco como para responder de esa manera, osea no hay entrada para tal comentario, caundo lo ley quede O.o, digo por favor un poco mas de respeto, sinceramente ha mi si me ha caido gordo, pero bueno es tu tuto, es como tu veas, si te molesta bien y si no bueno puedes desirlo, en este caso a mi si, espero me entiendas, trate de no ser muy trillado je, un saludo y cuidate ;).
P.D: Lo que trate de expresar es que tenga un poquito mas de respeto a alguien que se ha dedicado a hacer tal trabajo y pues a mi tambien me gusta la programacion jaja, pero yo lo ago a nivel de la computadora, pero por haora estoy viendo la posibilidad de empesar con la Wii, un saludo gradne y cuidate ;).
The Allies, tu lugar para ayudar y ser ayudado.
Mantenemos un gran respeto hacia los usuarios que empiezan, y asi seguira siendo. Por estocreemos justo que se respeten nuestras normas de convivencia. Manual del perfecto forero.
Muchas gracias compañero por
Muchas gracias compañero por tu apoyo. Por supuesto que se debería intentar ser respetuosos con los que publican.
Aquí estoy para lo que queráis.
Curso aplicado de GRRLIB - Parte 1 - Parte 2 - Parte 3 - Parte 4 - Parte 5 - Parte 6 - Parte 7 - Parte 8 - Parte 9 - Parte 10 - Parte 11
Profundizando en los mandos de la Wii - Parte 1 - Parte 2 - Parte 3 - Parte 4 (Balanceboard) - Parte 5 (Miis)
Homebrew - WiiTriis - LifemiiWii
Pues muchas gracias
Ha ese punto queria llegar, gracias por comprender y pues cualquier duda que tenga te lo comunicare, pero con lo vien que esta redactado todo es muy dificil jajaja, muchas gracias y saludos.
Mejor la dejamos por aqui por que si no, nos van a retar por Off-Topic, un saludo y cuidate ;).
The Allies, tu lugar para ayudar y ser ayudado.
Mantenemos un gran respeto hacia los usuarios que empiezan, y asi seguira siendo. Por estocreemos justo que se respeten nuestras normas de convivencia. Manual del perfecto forero.
Ante todo muchas gracias por
Ante todo muchas gracias por el tutorial. Me pareció muy interesante y de gran utilidad. Es increíble el peazo de curre que hacéis algunos para enseñarnos este tipo de cosas.
Mi más sincera enhorabuena.
Un saludo.
Como siempre mi sincera
Como siempre mi sincera felicitación para todos aquellos que dedicais vuestro tiempo y esfuerzo en realizar estos tutoriales, noticias, aportes para compartir con toda la comunidad. Ya sólo el hecho de hacerlo se merece un GRACIAS.
Saludos
Mi canal de Youtube. Si te apetece... ¡Suscríbete!. No te cuesta nada y estarás al día de todos mis videotutoriales, noticias y let´s plays.
Like y favoritos también ayudan.
¿Cansado y aburrido de jugar solo? ¡Forma parte de uno de los equipos de juegos online más activos del momento!
Gracias a vosotros por
Gracias a vosotros por hacerlo posible con esta fantástica web.