tuts_gba
Thread Id: 22874
Thread Name: GBA | Otros | Programa como intro [GBA - Avanzado]
#0
cosarara97 12296
¿Te has fijado alguna vez en la intro MUGS? Sí, esa cosa infame que encuentras con algunos dumps de Ruby, que muestra una pequeña animación y un texto que te acusa de script kiddie. ¿Y no se te ha ocurrido preguntarte nunca cómo hacer algo así?
Bueno, eso es exactamente lo que explico.
Debería ser fácil de seguir tanto en sistemas GNU/Linux como MacOSX. Windows es otra historia con la que ni me voy a pelear.

Entonces, la idea es simple:
1 - La primera instrucción del juego (la que hay en la dirección 0 del ROM) es una rama (branch en inglés, dicho de toda instrucción que hace saltar el procesador de un punto a otro del programa). La instrucción ARM "b", para ser más exactos. ¿Y qué hace esta instrucción? Bueno, pues básicamente salta. Es como un jump o goto de nuestros scripts.
Tenemos que cambiar esta instrucción para hacer que en vez de saltar al inicio del juego salte a nuestra intro.
2 - Podemos escribir la rutina de nuestra intro en ASM puro y duro, pero como no somos Real Programers queremos escribir en C y usar las bonita librería libgba. Así que vamos a usar devkitpro con unos cuantos scripts modificados para nuestros fines.
3 - Al acabar de ejecutar nuestro código, debemos ir realmente al juego, y enviar el procesador a donde se dirigía originalmente, 0x080000d0.

Las instrucciones para crear la nueva instrucción de salto inicial, hacer que nuestro código vuelva al juego y preparar el binario de nuestra intro (que deberemos colocar en su sitio con un editor hexadecimal) se encuentran en el archivo README - en inglés -, dentro de este archivo, junto con el material necesario:
intro_hack.tar.gz

A parte de esto, es necesario tener instalado devkitpro con devkitARM y libgba, y las variables de entorno DEVKITPRO y DEVKITARM bien configuradas. También es necesaria la utilidad make.
Si tenéis alguna pregunta, no dudéis en planteármela como respuesta a este tema o mediante MP ;) Si alguien intenta seguir este tutorial me quedaré flipando, lol.
#1
BLAx/Atlas 26580
Aún es pronto para que siga este tutorial xD, pero con esto que explicas, se haría como por ejemplo ha modificado Jo7a~ en el Black Dark que pone una imagen de Mewtwo diciendo que el hack es suyo y no se puede vender (por ejemplo), o te refieres a editar íntegramente la animación que hay al iniciar el juego; logo de GameFreak, y la intro de Gengar vs. Nidorino, etc.??

Por cierto, para insertar portadas animadas habría que hacer algo con esto?? Quiero decir, por ejemplo, que salga un pokemon que se mueva todo el rato, como si fuera un gif
#2
cosarara97 12296
Iniciado por BLAxTOISE
Aún es pronto para que siga este tutorial xD, pero con esto que explicas, se haría como por ejemplo ha modificado Jo7a~ en el Black Dark que pone una imagen de Mewtwo diciendo que el hack es suyo y no se puede vender (por ejemplo), o te refieres a editar íntegramente la animación que hay al iniciar el juego; logo de GameFreak, y la intro de Gengar vs. Nidorino, etc.??

Por cierto, para insertar portadas animadas habría que hacer algo con esto?? Quiero decir, por ejemplo, que salga un pokemon que se mueva todo el rato, como si fuera un gif


Con este procedimiento, hacemos que se ejecute un programa antes de la pantalla con fondo negro que dice Nintendo, Game Freak, los años, y todo eso, sin sustituir nada.
Puedes poner una simple imagen estática, una animación, un juego, lo que sea, depende de tus habilidades como programador.