¡Hey!
Bueno, pues tras estar un ratillo trasteando este nuevo gran avance del rom hacking, he logrado un par de cosas que estoy seguro que a más de uno le va a servir. (Hasta el momento estoy impresionado con la facilidad de cambiarlo absolutamente TODO si se tiene un mínimo de nociones básicas programación)
¡Vamos allá!
Requisitos:
- Este genial tema de introducción a pokeruby de Lunos
Tutorial:
Simplemente voy a ir al grano, no me quiero enrrollar, así que...
1.- Vamos a la ruta: pokeruby\src\main_menu.c y abrimos el archivo con un editor, preferentemente Notepad++ o cualquier otro que soporte el formato del lenguaje de programación C y veremos algo así:
2.- Pulsaremos Ctrl + F para buscar la palabra "Task_MainMenuWaitForRtcErrorAck" sin las comillas o iremos a la línea 66, que en cualquier caso, es el primer resultado de dicha búsqueda.
Y aquí es donde viene un punto en el que nos tenemos que parar a plantear si estamos loquísimos y nos da igual borrar datos de la versión original, o si por seguridad, dejaremos esos datos donde están, pero sin que sean leídos por el juego.
(Las personas que entiendan un mínimo de programación sabrán que me refiero a borrar datos, o a comentarlos.)
Yo en mi caso, prefiero comentar lo que no vaya a usar, ya que no me molestan pero puede que algún día los quiera volver a poner o vete tú a saber.
Una vez dicho esto, empecemos a hacer lo que todos estábamos esperando, manosear el juego.
Deberíamos estar viendo algo tal que así:
3.- Comentaremos la línea que dice:
Código:
[COLOR="DarkOrchid"]static void[/COLOR] Task_MainMenuWaitForRtcErrorAck(u8 taskId);
¡Bien, ya hemos comentado la primera línea! (Recuerdo que también podemos optar por borrarla si os incomodara dejar eso así, pero vaya, que el resultado es el mismo, y comentando queda algo más chapuza pero es más seguro, así si en un futuro tuviéramos que dejarlo tal y como estaba, no tendríamos que andar buscando los archivos originales y blablaba...)
4.- De nuevo haremos otra búsqueda de la misma palabra, "Task_MainMenuWaitForRtcErrorAck", o iremos a la línea 364, que de nuevo viene a ser lo mismo.
Y ahora es donde viene lo chungo, nos vamos a hinchar a poner "//" concrétamente, tal y como se ve en la siguiente imagen:
(También podríamos optar por hacer comentarios de bloques, pero no son demasiadas líneas y pienso que se va a ver mucho menos lioso de esta manera para la gente que no sepa mucho acerca de programar)
Es decir, que de todo el "if (!(RtcGetErrorStatus() & R... BLABLABLA"
dejaremos ÚNICAMENTE, la línea que dice:
Código:
gTasks[taskId].func = Task_MainMenuDraw;
5.- Por último, el siguiente void a lo que acabamos de comentar, es decir, lo que hay justito abajo de lo hemos comentado, también vamos a comentarlo, en esta ocasión, entero, ya que no nos interesa que ese void exista.
Quedaría algo así:
¡Y listo! guardamos el archivo, y lo compilamos.
(Compilamos abriendo "cygwin.bat", escribimos "cd pokeruby", por último "make" y esperamos a que todo quede bien compilado)
Y ya podemos usar nuestra ROM sin ese molesto y poco visual mensajito cada vez que iniciamos el juego, así de rápido y sencillo.
Ahora tenéis dos opciones, leer lo que hemos hecho para entender por qué hemos quitado cada cosa y como funcionaba, para aprender un poquito más sobre programación o sobre la interpretación del juego, o seguir nuestra vida con un bonito resultado
Para empezar, hemos comentado la línea en la que se declaraba la función/void para cargar ese mensajito. digamos que en esa línea, esa función aún no estaba declarada, pero ya tenía un espacio para más tarde ser usada. Necesitamos comentarlo, ya que si esto quedara vacío, serían datos inútiles para la ROM y ocuparía espacio innecesariamente, además, si no lo quitamos, no podemos compilar.
Más tarde, hemos comentado un condicional entero, me podría extender explicándolo en profundidad pero básicamente, este condicional comprueba si la pila interna funciona, en caso de ser así, pasamos a la pantallita de "Continuar blabla", en caso de que no, nos saltaba el error. Pues nosotros, sencillamente hemos eliminado ese condicional, y obligamos al juego a que sí o sí, la pila esté en buen o mal estado, salte directamente a dicha pantalla de "nuevo juego, continuar, opciones..."
Por último, hemos hecho desaparecer la función que se da en caso de que la pila interna esté defectuosa. Esto es algo completamente lógico, ya que antes hemos eliminado la línea en la que se declaraba, y si escribimos una función en un lugar no declarado/inexistente, lo único que vamos a conseguir es errores por todas partes (Y directamente que no nos compile la ROM)
Más tarde, hemos comentado un condicional entero, me podría extender explicándolo en profundidad pero básicamente, este condicional comprueba si la pila interna funciona, en caso de ser así, pasamos a la pantallita de "Continuar blabla", en caso de que no, nos saltaba el error. Pues nosotros, sencillamente hemos eliminado ese condicional, y obligamos al juego a que sí o sí, la pila esté en buen o mal estado, salte directamente a dicha pantalla de "nuevo juego, continuar, opciones..."
Por último, hemos hecho desaparecer la función que se da en caso de que la pila interna esté defectuosa. Esto es algo completamente lógico, ya que antes hemos eliminado la línea en la que se declaraba, y si escribimos una función en un lugar no declarado/inexistente, lo único que vamos a conseguir es errores por todas partes (Y directamente que no nos compile la ROM)
Esto no tiene porque ocasionar ningún error, pero en caso de que por algún extraño motivo pensarais que así fuera tras aplicar este método, sería tan sencillo como quitar los comentarios a todas las líneas que hemos comentado para volver a tener el dichoso mensaje, pero que ese supuesto error no vuelva a ocasionarse. (Por supuesto, no es necesario decir que si se revierte el proceso y sigue dándoos ese error "X", no es culpa de esto, si no de otra cualquier cosa.
Creo que al final, incluso intentando no extenderme lo he hecho, pero bueno, al fin y al cabo todos sabemos como funcionan las cosas por aquí, el que tiene interés por aprender, se lo lee todo, y el que simplemente viene por que quiere quitar este mensaje que le molesta y lo demás le da igual, mira las imágenes se lo lee por encima y aplica el tutorial, que es muy sencillito.
¡Espero que todos podáis disfrutar de este primer mini-avance de todo lo que tengo ganas de cambiar en dichas ROMs y que comentéis que os parece! ( Y qué opinéis del nuevo InmortalKaktus ( ͡° ͜ʖ ͡°) )
Chaoo
Última edición: