Registrarse

[pokefirered] POKEROJOFUEGO | Objetivo: Avanzar en la traducción de scripts | Día 7

Acimut

Profesional de WaH
¡Que tal!

Mi objetivo en este reto es avanzar en la traducción de scripts de un proyecto que llamaré pokerojofuego, el cual consiste en, más que una traducción de pokefirered, es la obtención de la ROM Rojo Fuego BPRS compilando desde pokefirered.

He avanzado bastante en este proyecto mientras he tenido tiempo, logrando decompilar la mayoría de las funciones principales que diferencia rojo fuego de su versión inglesa fire red, así como varios de los gráficos; pero luego de más de un año de inactividad es hora de terminarlo.

Así que, retomando donde lo dejé, debo continuar con la traducción de scripts, usando los textos originales de pokémon rojo fuego. La cantidad de textos de scripts a traducir no es nada más que 11716 en total, de los cuales ya había traducido 4235 (un poco más de la tercera parte), y para este reto debo traducir tanto como pueda de los 7481 textos de scripts faltantes en estos 30 días!

Estado actual de los Scripts: 36.15%


Según mis cálculos, puedo avanzar entre 50 y 100 scripts al día, y para terminar los scripts al 100% debería tomarme cerca de tres meses, por lo que al final del reto debería terminar cerca del 55%. El trabajo no es difícil, y es más de paciencia y repetir lo mismo cada día mientras se avanza, acompáñenme y vean cómo pierdo la cordura en este reto.

Además, debo instalar todo desde cero para trabajar en este proyecto de decompilación, así que empezaré con ello hoy (Día 1: instalar weas cúanticas para compilar).

Algunas capturas con los gráficos traducidos, para no morir ignorado:



Como pueden ver en las capturas el proyecto no está terminado del todo, pero espero pronto lo esté.

Este proyecto lo empecé en enero de 2022 cuando estaba buscando algunos offset equivalentes entre Rojo Fuego BPRS y Fire Red BPRE, y luego de comparar mi base de datos de funciones de la rom española contra la inglesa, llegué a la conclusión de que aparte de los textos y gráficos que siempre cambian entre idiomas, naturalmente la mayoría de las funciones serían las mismas entre ambas rom, al menos más de un 90%.

Entonces pensé que si es posible decompilar (pasar de binario a código en C) todas las funciones que sólo existen en la rom española, además de las diferencias entre funciones, sería posible realizar la decompilación de rojo fuego bprs utilizando el código que que ha decompilado PRET con pokefirered.

Empecé modificando pokefirered, específicamente el makefile y otros archivos para poder mantener la compilación de fire red, por lo que al final se podrá usar el proyecto para hacer hacks que compilen en inglés y español tal como hizo GameFreak.

Un par de semanas desde que inicié esto, y luego de probar algunas cosas obtuve descubrimientos interesantes, como que toda la EWRAM (sección 0x02000000) de rojo fuego y fire red es la misma; y en rojo fuego no se usa AGBASERT. También obtuve los offset de la IWRAM (sección 0x03000000) de rojo fuego.

Luego de esto, pasó algunos meses antes de que tuviera algo de tiempo y pudiera retomar el proyecto. Así, en diciembre de 2022 retomé el proyecto con fuerza. Inspirado en pokeruby, donde es posible compilar la rom en sus diferentes versiones en inglés y alemán, decidí que debía organizar el poco trabajo que tenía adelantado y hacer una rama nueva en el fork de pokefirered que tengo, para poner los avances ahí.

Desde entonces el proyecto ha tomado forma, y entre el trabajo que hice en diciembre 2022 y febrero de 2023 en mi tiempo libre, he logrado llegar a un 20% de coincidencia de offsets (10200/50848 offset).

Actualmente el avance total es un poco más del 34% (última actualización, agosto de 2023).

El proyecto es público, y se puede encontrar en la siguiente rama: https://github.com/Acimut/pokefirered/tree/BPRS

pueden ver los cambios en el siguiente enlace:

Pd: este proyecto lo realizo única y simplemente por interés personal, me vale queso si alguien más ya lo hizo.
 

zekrom007

Usuario de oro
@PokeAJ mira esta traduciendo rojo fuego de nuevo igual un avance es un avance se valora tu esfuerzo para que los demas decompilen ...... acimut porque tienes tu perfil restringido ni siquiera para hablarte pe
 

Acimut

Profesional de WaH
@PokeAJ mira esta traduciendo rojo fuego de nuevo igual un avance es un avance se valora tu esfuerzo para que los demas decompilen ...... acimut porque tienes tu perfil restringido ni siquiera para hablarte pe
Debo aclarar que, el objetivo de este reto es avanzar en la traducción de los scripts, sin embargo el objetivo final del proyecto es compilar una rom BPRS que coincida con la original lanzada por gamefreak comparando la suma de verificación del binario compilado.

Sobre la restricción, supongo porque andaba en la murision.
 

Acimut

Profesional de WaH
¡Hola Que tal!
No crean que me he olvidado del reto, nomás me olvidé de publicar los avances aquí xd

Día 1: Organicé todo el material que necesitaba para el reto, y se me fue el tiempo mientras pensaba en cositas.

Día 2: Instalé todo lo necesario para usar decomp en Windows, y luego me puse a traducir scripts como loco, 143 scripts traducidos. Textos traducidos:
  • Alto mando (Lorelei, Bruno, Agatha, Lance, Champion) y salón de la fama.
  • Tunel Roca
  • Islas Espuma, piso 4 bajo tierra
  • Torre desafío (pisos del 1 al 7)
Día 3: Inspirado, me puse a traducir scripts, 154 scripts traducidos. Textos traducidos:
  • Monte Ascuas (exterior y ruta rubí)
  • Isla tera (bosque baya, Vía Isla Tera )
  • Isla Quarta (Cueva Glaceada)
  • Isla Inta (Almacén Rocket, Cueva cambiante 1, 4 y 10)
  • Isla Exta (Cueva Punteada, Bosquejo)
  • Torre desafío (Lobby)
  • Isla Sétima (Llave Sete)
  • Isla Prima (Balneario Ascuas)
Día 4: Hoy me puse a traducir scripts como si no hubiera un mañana, así que terminé traduciendo 293 scripts. Textos traducidos (Exterior):
  • Pueblo Paleta
  • Ciudad Verde
  • Ciudad Plateada
  • Ciudad Celeste
  • Pueblo Lavanda
  • Ciudad Carmín
  • Ciudad Azulona
  • Ciudad Fucsia
  • Isla Canela
  • Ciudad Azafrán
  • Isla Prima
  • Isla Secunda
  • Isla Tera
  • Isla Quarta
  • Isla Inta
  • Isla Sétima
  • Isla Exta
  • Ruta 1
Los cambios se pueden en los commits de aquí

Bitácora del capitán: Hoy llegamos al 41.18% de los scripts traducidos. Al ritmo que vamos podríamos llegar al 70% de scripts traducidos para cuando termine el mes. También grabé todo el proceso de instalación de programas para decomp en Windows, material que usaré para hacer algunos tutoriales.

Pd: les dejo un vídeo de cómo voy realizando la traducción de scripts de pokefirered, velocidad x5 (10 minutos de trabajo):
 
Última edición:

Acimut

Profesional de WaH
Pinta bastante bien, aunque deberías sincronizar el repo con pokefirered, tu repo está casi 200 commits por detrás del oficial. No creo que te dé mucho trabajo, pero ayudaría a los repos actuales y lo quiero robar para la gamejam.
Sí.
Una vez la ROM compilada coincida con la original de rojo fuego realizaré la actualización. Mientras tanto debo terminar de traducir los textos de los scripts porque es lo más tardado de hacer, así que una vez complete esta sección será cuestión de poco tiempo para que acabe 🥵
Además quiero crear 2 ramas actualizadas, una donde únicamente compile una ROM en español, y otra con compilación en idioma inglés/español establecido en el archivo de configuración (configuración de rama actual).
 

Acimut

Profesional de WaH
Día 5: Este día traduje algunos textos de scripts, 134 para ser precisos. Textos traducidos:
  • Ruta 2, 3, 4, 5, 6, 7, 8 y 9
Día 6: Hoy traduje bastantes textos de scripts, 733 una locura. Textos traducidos:
  • Ruta 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24 y 25
  • Isla prima
  • Isla tera
  • Isla Inta
  • Isla exta
  • Isla sétima
Bitácora del capitán: Esta vez le dediqué varias horas a la traducción de scripts, y dado que es un proceso plano y aburrido, me quedé dormido mientras copiaba y pegaba los textos traducidos de la ruta 18. Luego de un par de horas de sueño, continué hasta que el pc se puso muy lento. Luego de compilar y comprobar avances, logramos llegar a un asombroso 48.58% completado en la sección de scripts, avanzando un 6.25% solamente en el día 6. Básicamente con el exterior de las rutas traducidas, se siente mejor la traducción en este punto. A este ritmo para el día 8 llegaré a la meta de este reto que inicialmente era el 55% en la sección de scripts, ahora tengo la sensación que si logro mantener los ánimos podría terminar la sección de scripts al término de este reto, lo que dejaría relativamente cerca de terminar este proyecto puesto que la parte difícil que era decompilar las funciones que no existen en inglés y sus diferencias está casi completo, el resto no debería suponer un reto (sección de librerías, no me den un dolor de cabeza 🙏).
 

Kaktus

Miembro insignia
Miembro insignia
No sé muy bien como lo estarás estructurando a nivel de código, pero intuyo que estarás reemplazando el texto en inglés por el español.

A modo de recomendación, si mal no recuerdo, el proyecto de pokeemerald tiene opciones de compilación.

Me parecería super interesante que una vez terminado este proyecto de "pokerojofuego", se pudiera crear un nuevo repositorio estilo: pokeemerald-i18n, donde mediante las opciones de compilación, puedas compilar una ROM a diferentes idiomas.

Esto podría hacer mucho más fácil la creación de hacks multilenguaje.

Si esto se hiciera bien, se me ocurren una infinidad de opciones, como por ejemplo, compartir con la comunidad un repositorio con las strings de un HACK para que ellos mismos puedan crear las traducciones a muchos idiomas, sin exponer directamente todo el código fuente.

También se podrían crear programas que integrados con la IA, se encargaran de traducir al idioma que le pidas en minutos un hack entero.

Si os animáis a hacer esto de la internacionalización, seguramente me anime a crearos algo para la traducción automática de proyectos :p

¡¡Mucho ánimo con el proyecto, que tiene muy muy buena pinta!!
 

Acimut

Profesional de WaH
No sé muy bien como lo estarás estructurando a nivel de código, pero intuyo que estarás reemplazando el texto en inglés por el español.

A modo de recomendación, si mal no recuerdo, el proyecto de pokeemerald tiene opciones de compilación.

Me parecería super interesante que una vez terminado este proyecto de "pokerojofuego", se pudiera crear un nuevo repositorio estilo: pokeemerald-i18n, donde mediante las opciones de compilación, puedas compilar una ROM a diferentes idiomas.

Esto podría hacer mucho más fácil la creación de hacks multilenguaje.
Hago uso de las directivas .ifdef en asm y #if #ifdef en C para compilar de acuerdo al idioma inglés o español, el idioma se puede cambiar en el archivo config.mk o cambiando los argumentos de make a la hora de compilar (ejemplo: make -j$nproc GAME_VERSION=FIRERED GAME_LANGUAGE=SPANISH), la ROM compilada en inglés sigue coincidiendo con la original. Entonces sí, el proyecto es capaz de compilar en diferentes idiomas (no confundir con ROM multilenguaje).

Si esto se hiciera bien, se me ocurren una infinidad de opciones, como por ejemplo, compartir con la comunidad un repositorio con las strings de un HACK para que ellos mismos puedan crear las traducciones a muchos idiomas, sin exponer directamente todo el código fuente.

También se podrían crear programas que integrados con la IA, se encargaran de traducir al idioma que le pidas en minutos un hack entero.
Esto es un poco complejo de llevar a cabo, pero creo que usando json para la escritura de los strings de los scripts para que luego se traduzca a asm en formato .inc, sería la mejor solución en muchos aspectos. Básicamente copiando la configuración de los items, y tiene aplicación en otras áreas del proyecto que aplica a la traducción de textos.

Si os animáis a hacer esto de la internacionalización, seguramente me anime a crearos algo para la traducción automática de proyectos :p

¡¡Mucho ánimo con el proyecto, que tiene muy muy buena pinta!!
Muchas gracias por su apoyo, significa mucho para mí ♥
 

Acimut

Profesional de WaH
Día 7: Hoy mi teclado se volvió loco, así que no pude avanzar en la traducción de scripts.

Bitácora del capitán: Justo estaba pensando en avanzar en la traducción de scripts cuando noto que mi teclado no estaba funcionando correctamente (oprimir una tecla era igual a oprimir varias a la vez). Así que me pasé toda la tarde probando cosas para que se arreglara, pero siguió igual. Entonces me rendí y me puse a leer un manga para pasar el tiempo, pero hace media hora me doy cuenta que el pvto teclado mágicamente estaba funcionando normalmente.
 
Arriba