Hola, quería saber si es posible cambiar de orden la elección de genero del protagonista, me gustaría que fuese la primera opción "CHICA".
Sé que en estricto rigor pudo hacerlo solo reemplazando al protagonista por mujer, pero quiero evitar eso.
Uso FR ingles.
Ojalá se entienda lo que quiero explicar, gracias de antemano.
Mmm, si sólo quieres que aparezca la opción de 'Chica' en vez de 'Chico', podrías cambiar los punteros de los textos, es decir colocar el puntero de la palabra 'Chica' en el lugar del puntero de la palabra 'Chico', solo sería un cambio estético.
Lo que dijeron los compas de arriba...
Puedes editar los textos de "Boy" "Girl" y editarlos a tu gusto, con una herramienta para editar textos - - - Obviamente xd--- en mi caso yo uso A-Text es bastante fácil la verdad... Aunque sería incomodo porque en la elección la chica lucirá como un chico -(pues solo cambiaste los textos no los sprites) - aquí tendrías q editar los sprites, Creo q puedes usar NSE 2.0 para esto...
Espero te haya servido mi ayuda
Lo que dijeron los compas de arriba...
Puedes editar los textos de "Boy" "Girl" y editarlos a tu gusto, con una herramienta para editar textos - - - Obviamente xd--- en mi caso yo uso A-Text es bastante fácil la verdad... Aunque sería incomodo porque en la elección la chica lucirá como un chico -(pues solo cambiaste los textos no los sprites) - aquí tendrías q editar los sprites, Creo q puedes usar NSE 2.0 para esto...
Espero te haya servido mi ayuda
Pues si tienes varias alternativas... También podrias usar 010 Editor qué es el que usa PokeAJ para traducir Roms y editar textos, pero A-Text ya quedo obsoleto ya que "bugea" las Roms.
Pues si tienes varias alternativas... También podrias usar 010 Editor qué es el que usa PokeAJ para traducir Roms y editar textos, pero A-Text ya quedo obsoleto ya que "bugea" las Roms.
Es cuestión de ir buscando lo qué necesites cambiar, HMA tiene de todo literalmente. Es una de las mejores herramientas.
Hola, quería saber si es posible cambiar de orden la elección de genero del protagonista, me gustaría que fuese la primera opción "CHICA".
Sé que en estricto rigor pudo hacerlo solo reemplazando al protagonista por mujer, pero quiero evitar eso. Ver el archivo adjunto 9579
Uso FR ingles.
Ojalá se entienda lo que quiero explicar, gracias de antemano.
No sé porqué nadie ayuda, si está bien fácil de hacer xd
El género del prota se guarda en el SaveBlock2. Ocupa 1 byte, es 0 si es chico y 1 si es chica.
Lo que haría en tu lugar, además deintercambiar el texto sería cambiar los resultados a la hora de elegir una opción.
Así, sólo hay que modificar la función que recibe el resultado y establece el género en el saveblock:
Modificar esto en C está bien fácil.
Si MALE = 0 Y FEMALE =1
En teoría sólo sería necesario cambiar esto:
C:
static void Task_OakSpeech20(u8 taskId)
{
s8 input = Menu_ProcessInputNoWrapAround();
switch (input)
{
case 0:
gSaveBlock2Ptr->playerGender = MALE;
break;
case 1:
gSaveBlock2Ptr->playerGender = FEMALE;
break;
case -1:
case -2:
return;
}
gTasks[taskId].func = Task_OakSpeech21;
}
Por esto:
Código:
static void Task_OakSpeech20(u8 taskId)
{
s8 input = Menu_ProcessInputNoWrapAround();
switch (input)
{
case 0:
gSaveBlock2Ptr->playerGender = FEMALE;
break;
case 1:
gSaveBlock2Ptr->playerGender = MALE;
break;
case -1:
case -2:
return;
}
gTasks[taskId].func = Task_OakSpeech21;
}
Si pasamos lo anterior a binario, será necesario hacer un hook, lo que yo haría sería poner un hook justo en el switch, así:
Uso R3 porque el registro no es usado en la función.
Esto compilado en 0x0812ffb2 sería: 01 4B 18 47 00 00 XX+1 XX XX 08
donde XX+1 XX XX 08 sería el offset permutado a la rutina modificada (Task_OakSpeech20_new), que pasaré a continuación:
Insertas esta rutina en un offset alineado (terminado en 0, 4, 8, C), anotas el offset, pues es el que usas en la rutina anterior (hook)
Por último hay que repuntear los textos de chico y chica respectivamente:
Código:
08415d93 g 00000004 gText_Boy
puntero: 93 5d 41 08
offset donde se encuentra el puntero: 0x0812FF98
08415d97 g 00000005 gText_Girl
puntero: 97 5d 41 08
offset donde se encuentra el puntero:0x0812FF9C
Hice una prueba para verificar que todo funcione correctamente, por lo que solo intercambié los offset de los textos, pero supongo que tienes los textos traducidos, así que pon los offset correspondientes.
No sé porqué nadie ayuda, si está bien fácil de hacer xd
El género del prota se guarda en el SaveBlock2. Ocupa 1 byte, es 0 si es chico y 1 si es chica.
Lo que haría en tu lugar, además deintercambiar el texto sería cambiar los resultados a la hora de elegir una opción.
Así, sólo hay que modificar la función que recibe el resultado y establece el género en el saveblock:
Modificar esto en C está bien fácil.
Si MALE = 0 Y FEMALE =1
En teoría sólo sería necesario cambiar esto:
C:
static void Task_OakSpeech20(u8 taskId)
{
s8 input = Menu_ProcessInputNoWrapAround();
switch (input)
{
case 0:
gSaveBlock2Ptr->playerGender = MALE;
break;
case 1:
gSaveBlock2Ptr->playerGender = FEMALE;
break;
case -1:
case -2:
return;
}
gTasks[taskId].func = Task_OakSpeech21;
}
Por esto:
Código:
static void Task_OakSpeech20(u8 taskId)
{
s8 input = Menu_ProcessInputNoWrapAround();
switch (input)
{
case 0:
gSaveBlock2Ptr->playerGender = FEMALE;
break;
case 1:
gSaveBlock2Ptr->playerGender = MALE;
break;
case -1:
case -2:
return;
}
gTasks[taskId].func = Task_OakSpeech21;
}
Si pasamos lo anterior a binario, será necesario hacer un hook, lo que yo haría sería poner un hook justo en el switch, así:
Uso R3 porque el registro no es usado en la función.
Esto compilado en 0x0812ffb2 sería: 01 4B 18 47 00 00 XX+1 XX XX 08
donde XX+1 XX XX 08 sería el offset permutado a la rutina modificada (Task_OakSpeech20_new), que pasaré a continuación:
Insertas esta rutina en un offset alineado (terminado en 0, 4, 8, C), anotas el offset, pues es el que usas en la rutina anterior (hook)
Por último hay que repuntear los textos de chico y chica respectivamente:
Código:
08415d93 g 00000004 gText_Boy
puntero: 93 5d 41 08
offset donde se encuentra el puntero: 0x0812FF98
08415d97 g 00000005 gText_Girl
puntero: 97 5d 41 08
offset donde se encuentra el puntero:0x0812FF9C
Hice una prueba para verificar que todo funcione correctamente, por lo que solo intercambié los offset de los textos, pero supongo que tienes los textos traducidos, así que pon los offset correspondientes.
Me entristece tener que leer esto, pues asesina mis ya pocas ganas desinteresadas de ayudar en la comunidad. La razón por la que usé parte de mi poco tiempo en dar una solución al problema planteado, es para fomentar la investigación, incentivar la curiosidad y con suerte se use para algo nuevo o diferente; y así, para que quien le interese pueda crecer como rom hacker. Si no fuese el caso, no hubiera puesto información relevante, y mucho menos el código en ensamblador. Me gustaría decir que lo hice con fines didácticos.
Lo que tu quieres hacer con mis aportes va en contra de mi filosofía, así que por favor, absténgase de publicar mis aportes como parte de otros recursos o parches.
Me entristece tener que leer esto, pues asesina mis ya pocas ganas desinteresadas de ayudar en la comunidad. La razón por la que usé parte de mi poco tiempo en dar una solución al problema planteado, es para fomentar la investigación, incentivar la curiosidad y con suerte se use para algo nuevo o diferente; y así, para que quien le interese pueda crecer como rom hacker. Si no fuese el caso, no hubiera puesto información relevante, y mucho menos el código en ensamblador. Me gustaría decir que lo hice con fines didácticos.
Lo que tu quieres hacer con mis aportes va en contra de mi filosofía, así que por favor, absténgase de publicar mis aportes como parte de otros recursos o parches.
¡Es más fácil en nuestro Discord! Actualmente la comunidad está más activa en nuestro Discord oficial. Todavía puedes crear tu duda aquí si lo prefieres, pero recuerda que estamos en Discord para poder ayudarte de una forma más ágil.