homebrew loader

me da un problema al cargar un hello world con reset( no puedo ni experimentar xD), pero con TH si me va :S

tengo la v8
la verdad que no das muchas pistas para ayudarte [mamaaaaa]
esto es un concurso o algo? XD

te hago algunas preguntillas para determinar tu problema ¿ok?
que problema tienes?
no te compila?

no entiendo si es que quieres compilar algo con la funcion reset o que te hace reset al cargarla
que librerias usas?

Edito:
hay que lo acabo de pillar.
quieres reiniciar al HBC o la wii?
si quieres reiniciar al HBC te vale con poner
Exit (0);

si quieres reiniciar la wii es algo mas largo
SYS_ResetSystem(SYS_RESTART,0,0);

un saludo
Spirax
No dice nada de compilar, dice que con el TH si le va, y con el HBC no, yo de ti reportaría eso en entuwii, que por algo es el foro "oficial" =P
jejeje
has contestao justo cuando estaba editando....

creoq ue ha usado el reset del TWH pero en el HBC no hace falta.

aver si nos contesta y nos da mas pistas ;)

Spirax
A ver...

tengo un homebrew que reinicia con exit(0); , para volver en teoría al HBC...
me copila perfecto, pero no va bien en HBC... ahora mismo lo pondré en entuwii...

PD: Voy a intentar meter el reset del sistema...


Gracias por todo
Rigle escribió:A ver...

tengo un homebrew que reinicia con exit(0); , para volver en teoría al HBC...
me copila perfecto, pero no va bien en HBC... ahora mismo lo pondré en entuwii...

PD: Voy a intentar meter el reset del sistema...


Gracias por todo

y en el TH te va bien el exit(0)? es imposible que vuelva al HBC no?=
no, vuelve a cargar el homebrew XD XD
Rigle escribió:no, vuelve a cargar el homebrew XD XD

a cargar al homebrew t refieres al elf no?
pho escribió:
Rigle escribió:no, vuelve a cargar el homebrew XD XD

a cargar al homebrew t refieres al elf no?


sí.

según entuwii, hay personas a las que le ha ido, después no, después en negro ... [+risas]
._. podemos echarle un vistazo al source? =3
oki.

ahora mismo lo pongo.

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <malloc.h>
#include <ogcsys.h>
#include <gccore.h>
#include <wiiuse/wpad.h>

//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 ) SYS_ResetSystem(SYS_RETURNTOMENU, 0, 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



Eso es con el botón de volver al menú de wii, y ahora el que no me va...
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <malloc.h>
#include <ogcsys.h>
#include <gccore.h>
#include <wiiuse/wpad.h>

//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 reinicia el loader o el HBC
      VIDEO_WaitVSync();//Esperamos a que se haga un refresco de pantalla para comenzar el redibujado de pantalla
   }

   return 0;
}//Final del main
._.

a mi me parece q esta bien... puede ser que tengas algo corrupto? prueba a poner en vez de exit(0), "(void(*)())0x90000020" que es lo que se usaba antes
probaré mañana...
...esk es raro que no me vaya...
...está muy revisado, copila bien ¬_¬
separa exit (0); o prueba reload ();
ahora mismito lo pruebo ...
14 respuestas