pregunta sobre boot.dol

Recientemente, he modificado el banner del Hombrew Channel y en el proceso utilicé un boot.dol que lo carga directamente desde la NAND. No es un forwarder channel al uso; usa la ID del canal para cargarlo desde la NAND directamente. El boot.dol me lo proporcionó un usuario de este foro así que no lo creé ni modifiqué yo. Tras ello, me ha dado por pensar en cómo modificarlo para que, en vez de cargar el HBC, cargue cualquier otra cosa instalada en la Wii. Me imagino que lo único que habría que hacer es cambiar la ID que carga el boot.dol. El tema es que tras desempaquetar el canal y obtener el archivo 00000001.app, que creo que es el que tendría que modificar, lo he intentado editar con un editor hexadecimal. He buscado la ID del HBC pero no la encuentro por ninguna parte. Mis dudas son las siguientes: ¿Es el archivo 0000001.app el que debería modificar? ¿Sería tan simple como cambiar la ID existente por la que yo quiera y volver a empaquetar el canal? Y ya de paso: el boot.dol que tengo (el que carga el HBC) al cargar el canal pone el pantalla un mesaje que dice "launching Homebrew Channel...", ¿sería posible modificarlo facilmente para que no mostrase ese mensaje en pantalla? Gracias de antemano. Un saludo.
//super complicated channel loader- giantpune
#include <stdlib.h>
#include <gccore.h>
//#include <fat.h>
#include <stdio.h>

#define TITLE_ID(x,y) (((u64)(x) << 32) | (y))
int
main(int argc, char *argv[]) {
//all this shit is just to make sure there is video
void *xfb = NULL;
GXRModeObj *rmode = NULL;

VIDEO_Init();
rmode = VIDEO_GetPreferredMode(NULL);
xfb = MEM_K0_TO_K1(SYS_AllocateFramebuffer(rmode));
VIDEO_Configure(rmode);
VIDEO_SetNextFramebuffer(xfb);
VIDEO_Flush();
VIDEO_WaitVSync();
if(rmode->viTVMode&VI_NON_INTERLACE) VIDEO_WaitVSync();

//if you want to put a splash screen, put it here, but it will just be a waste of time. the splash in the forwarder
//is only showed while loading dols into memory, this would be shown before the channel even started to load
//so i wouldn't do it.

WII_Initialize();
//just change the 4A4F4449 to the hex value for the ID4 of the title to boot.
//all channels that show up on the system menu should be 00010001
WII_LaunchTitle(TITLE_ID(0x00010001,0x4A4F4449));

//should not reach this point if the title is installed on the wii, but if it does, it will fall back on a stub to direct it
//if using a newer version of libogc, exit(0) returns the system menu if no stub is found.
exit (0);

//really, really should never make it this far. if it does, the wii will just blackscreen and need a hard reset
return 0;
}

compila ese codigo y obtendras un boot.dol que carga el canal que quieras
tienes que editar esta parte "WII_LaunchTitle(TITLE_ID(0x00010001,0x4A4F4449));"
00010001/0x4A4F4449 es el homebrew channel
Gracias por responder kamikacer. Tiene pinta de ser fácil. Tan sólo se trata de cambiar la ID y compilar el código. El problema es que en temas de programación no sé por dónde me da el viento :D. Tengo instalado Devkitpro, libogc, etc (lo instalé para poder usar la opción complex forwarder del Customizemii) pero lo cierto es que no sé cómo se compila código para la Wii. Me imagino que sabiendo debe de ser muy fácil y rápido de hacer pero como que no me entero. Gracias de todos modos.
zantzue escribió:Gracias por responder kamikacer. Tiene pinta de ser fácil. Tan sólo se trata de cambiar la ID y compilar el código. El problema es que en temas de programación no sé por dónde me da el viento :D. Tengo instalado Devkitpro, libogc, etc (lo instalé para poder usar la opción complex forwarder del Customizemii) pero lo cierto es que no sé cómo se compila código para la Wii. Me imagino que sabiendo debe de ser muy fácil y rápido de hacer pero como que no me entero. Gracias de todos modos.

No lo he mirado, pero aqui Hermes no explica como? hilo_curso-de-programacion_1257837
3 respuestas