#include 
#include 
#include 
#include 
#include 
#include 
#include 

//incluimos librerias

static void *xfb = NULL;
static GXRModeObj *rmode = NULL;

int main(int argc, char **argv) {//iniciamos la función "main()"

   VIDEO_Init();//Iniciamos el video
   PAD_Init();//Iniciamos el pad
   WPAD_INIT();//Iniciamos wiimote
   
   
   rmode = VIDEO_GetPreferredMode(NULL);//Esto recibe el tipo de "monitor" y la configuración que tienes en la wii

   xfb = MEM_K0_TO_K1(SYS_AllocateFramebuffer(rmode));//Inicia el buffer


   CON_InitEx(rmode, 20,30,rmode->fbWidth-40,rmode->xfbHeight-60);//Inicia el modo consola

   VIDEO_ClearFrameBuffer(rmode,xfb,COLOR_WHITE);//Borde de la pantalla, color blanco
   VIDEO_Configure(rmode);//Le dices a la consola que modo de vídeo que usar y la pantalla se configura según esto
   VIDEO_SetNextFramebuffer(xfb);//Le dices donde guardar el siguiente buffer
   VIDEO_SetBlack(FALSE);//Sirve para poner pantalla en negro
   VIDEO_Flush();//Vaciamos el buffer
   VIDEO_WaitVSync();

   if(rmode->viTVMode&VI_NON_INTERLACE) VIDEO_WaitVSync();
   
                            /*TEXTO*/
                   
                   
    printf(" \n\n");//2 saltos de línea
   
   printf("Hola mundo!\n");/*ponemos texto y un salto de línea para que lo lea.
La función printf no pone el texto en el monitor, lo almacena en el buffer y , con el salto de línea,
conseguimos que salga en ella*/
   printf(" \n\n");//2 saltos de línea

    printf("Hola mundo realizado por Rigle y explicado por el con ayuda de Waninkoko y marcan\n");
   printf("Gracias a Marcan y demas gente por la liboGC, que hacen posible el homebrew en wii\n");


   while(1) {

      WPAD_ScanPads();//Inicia el escaneo de wiimotes
      u32 pressed = WPAD_ButtonsDown(0);
      if ( pressed & WPAD_BUTTON_HOME ) exit(0);//Si se pulsa el botón home se vuelve al menu de la wii
      VIDEO_WaitVSync();//Esperamos a que se haga un refresco de pantalla para comenzar el redibujado de pantalla
   }

   return 0;
}//Final del main