Ejemplos/Hello World
De EnTuWii
En este tutorial aprenderemos a hacer nuestro propio Hello world y ademas aprenderemos las funciones básicas que hacen que nuestro programa funcione.
Librerías necesarias
Estas son las librerías mínimas para poder hacer un programa usando devkitppc.
#include <stdio.h> //Es una librería estándar en el lenguaje C. #include <stdlib.h> //Gestión de memoria dinámica, control de procesos... #include <gccore.h> //para incluir cabeceras de Libogc. #include <wiiuse/wpad.h> //Gestión del wiimote.
Inicialización de Vídeo
A continuación se definen y explican las diferentes funciones y su uso.
static void *xfb = NULL; static GXRModeObj *rmode = NULL;
int main(int argc, char **argv)
{
VIDEO_Init(); //Inicialización del Vídeo.
WPAD_Init(); //inicialización del Wiimote.
rmode = VIDEO_GetPreferredMode(NULL); //mediante esta función rmode recibe el valor de tu modo de vídeo.
xfb = MEM_K0_TO_K1(SYS_AllocateFramebuffer(rmode)); //inicialización del buffer.
console_init(xfb,20,20,rmode->fbWidth,rmode-> //inicialización de la consola.
xfbHeight,rmode->fbWidth*VI_DISPLAY_PIX_SZ);
VIDEO_Configure(rmode); //configuración del vídeo.
VIDEO_SetNextFramebuffer(xfb); //Configura donde guardar el siguiente buffer .
VIDEO_SetBlack(FALSE); //Hace visible el display .
VIDEO_Flush();
VIDEO_WaitVSync();
if(rmode->viTVMode&VI_NON_INTERLACE) VIDEO_WaitVSync();
printf("\n\n Hello World!"); //Escribe en la pantalla nuestro Hello World.
Bucle
En el bucle se suelen introducir todas las funciones rutinarias. Como escanear los mandos, el estado de los mismo,cambiar de frame, etc.
while(1) //Comenzamos el bucle infinito.
{
WPAD_ScanPads(); //Comienza el escaneo del wiimote.
u32 pressed = WPAD_ButtonsDown(0);
if ( pressed & WPAD_BUTTON_HOME ) exit (0); //Si se pulsa el boton Home, vuelve al menu de la wii.
VIDEO_WaitVSync(); //Espera al siguiente Frame.
}
return 0;
}

