Buenas! Me estoy volviendo loco tratando de aprender a manejar las roms de GBA con fines de traducción. Habrá alguna guía que abarque a profundidad el tema de Hexadecimal, pointers, repointear, editar bloques, repointear bloques, etc. Un saludo.
Buenas! Le di una leída profunda pero no logro encontrar lo que necesito. Es una pena, parece un tema muy puntual. Estoy tratando de hallar unos pointers de texto pero los textos del juego estan "en bloques" o algo así, o eso parece, ya que no puedes simplemente tomar el offset y hacer la busqueda inviertiendo las parejas de valores y agregandole el 08 al final. Ya no sé como hacer, ¿alguna ayuda? El juego en cuestión es el Yugioh GX - Duel Academy /GBA).
Si no recuerdo mal, los textos en ese juego están en Offsets más allá de x08FFFFFF, por lo que para encontrar esos punteros debes contar desde 0 y usar 09 como identificador.Buenas! Le di una leída profunda pero no logro encontrar lo que necesito. Es una pena, parece un tema muy puntual. Estoy tratando de hallar unos pointers de texto pero los textos del juego estan "en bloques" o algo así, o eso parece, ya que no puedes simplemente tomar el offset y hacer la busqueda inviertiendo las parejas de valores y agregandole el 08 al final. Ya no sé como hacer, ¿alguna ayuda? El juego en cuestión es el Yugioh GX - Duel Academy /GBA).
Buenas, disculpa, entendi la mitad jajaja. Por ejemplo, para encontrar el pointer de este offset: 01409C20, ¿qué debería hacer? Estoy testeando algunas cosas pero no llego a nada :cSi no recuerdo mal, los textos en ese juego están en Offsets más allá de x08FFFFFF, por lo que para encontrar esos punteros debes contar desde 0 y usar 09 como identificador.
Perdón, tal vez fui demasiado escueto en mi respuesta. Para calcular los punteros que direccionen a información que estén en offsets superior a h08FFFFFF, debe calcularse de la siguiente forma; y pongo tu offset como ejemplo (Separaré las cifras para que sea más legible):Buenas, disculpa, entendi la mitad jajaja. Por ejemplo, para encontrar el pointer de este offset: 01409C20, ¿qué debería hacer? Estoy testeando algunas cosas pero no llego a nada :c
Buenas! Nada aún. No encuentra el puntero. Ya sabía que este juego era un caso muy particular, pero no sabía que podía estar tan enredado. Si tienes alguna otra solución te la agradecería, pero si no te agradezco un montón el tiempo que te tomaste en explicarme y responder!Perdón, tal vez fui demasiado escueto en mi respuesta. Para calcular los punteros que direccionen a información que estén en offsets superior a h007FFFFF, debe calcularse de la siguiente forma; y pongo tu offset como ejemplo (Separaré las cifras para que sea más legible):
-h01 40 9C 20 - h00 80 00 00 = h00 C0 9C 20
- y de nuevo (ya que aún supera h 00 7F FF FF):
-h 00 C0 9C 20 - h00 80 00 00 = h00 40 9C 20
Por lo que tu puntero debería ser : 20 9C 40 09 (No 08, ya que la información está en un Offset superior a h00 7F FF FF)
Si aún así no encuentras los punteros, puede ser que no estés en el Offset correcto o esa información sea cargada de una forma no tan directa.
No es nada. Lo he modificado ya que no estaba correcto del todo, aunque el resultado es el mismo. Es lo que ocurre por hacer varias cosas a la vez U^^.Buenas! Nada aún. No encuentra el puntero. Ya sabía que este juego era un caso muy particular, pero no sabía que podía estar tan enredado. Si tienes alguna otra solución te la agradecería, pero si no te agradezco un montón el tiempo que te tomaste en explicarme y responder!
Joeer, siento ser tan pesado, pero sigo sin hallarlo. Inclusive intente buscar el que encontrate vos (F06D3F09) y no me lo encuentra. Uso HxD y la verdad no sé que hago mal, me dirías que programa usas vos y el proceso que haces para buscar offsets dentro del programa? Gracias, y disculpa las molestias.No es nada. Lo he modificado ya que no estaba correcto del todo, aunque el resultado es el mismo. Es lo que ocurre por hacer varias cosas a la vez U^^.
Dicho esto, inténtalo de nuevo. Acabo de probarlo y a mí si me funciona. Uno de los bloques de texto comienza en h013F6DF0, por lo que su puntero es F0 6D 3F 09. Si lo buscas, verás que el editor hexadecimal lo encuentra.
Uso exactamente el mismo editor que tú. Search -> Find -> pones el puntero. En Datatype asegúrate que ponga "Hex-values" y en Search Direction "All". Si sigues sin poder encontrarlo, intenta cambiar el ROM. Debes de poder porque empecé a trabjar en este ROM, pero debido a la cantidad de texto que contenía acabé abandonando el proyecto. Incluso modifiqué el Main menú, aunque necesita ciertos arreglos.Joeer, siento ser tan pesado, pero sigo sin hallarlo. Inclusive intente buscar el que encontrate vos (F06D3F09) y no me lo encuentra. Uso HxD y la verdad no sé que hago mal, me dirías que programa usas vos y el proceso que haces para buscar offsets dentro del programa? Gracias, y disculpa las molestias.
Yo no sé que hago mal... pero no encuentro los pointers, el programa no me los encuentra (y hago todo lo indicado). Voy a probar usando la version EU de la ROM (venía usando la USA) para ver si los encuentro. Actualizaré si los encuentro o no.Uso exactamente el mismo editor que tú. Search -> Find -> pones el puntero. En Datatype asegúrate que ponga "Hex-values" y en Search Direction "All". Si sigues sin poder encontrarlo, intenta cambiar el ROM. Debes de poder porque empecé a trabjar en este ROM, pero debido a la cantidad de texto que contenía acabé abandonando el proyecto. Incluso modifiqué el Main menú, aunque necesita ciertos arreglos.
Nada, no los encuentro. No tengo pista de lo que estoy haciendo mal, perdón por generarte tantas molestias, pero sin importar que intente no encuentro el pointer. Cuando busco el que vos encontraste si me encuentra algo, aunque no un offset sino una cadena de bytes, que calculo que serán los que hay que editar para el repointeo más tarde, pero aún no puedo hallar el pointer de 01409C20 (Ya lo intente con este metodo introduciendo 209C4009, pero nada). Esto me frustra muchísimo.Uso exactamente el mismo editor que tú. Search -> Find -> pones el puntero. En Datatype asegúrate que ponga "Hex-values" y en Search Direction "All". Si sigues sin poder encontrarlo, intenta cambiar el ROM. Debes de poder porque empecé a trabjar en este ROM, pero debido a la cantidad de texto que contenía acabé abandonando el proyecto. Incluso modifiqué el Main menú, aunque necesita ciertos arreglos.
Después miraré en una ROM limpia, vaya a ser que yo tenga modificados ciertos punteros y te tenga como un loco buscándolos, aunque no recuerdo haber modificado ningún bloque de texto...Nada, no los encuentro. No tengo pista de lo que estoy haciendo mal, perdón por generarte tantas molestias, pero sin importar que intente no encuentro el pointer. Cuando busco el que vos encontraste si me encuentra algo, aunque no un offset sino una cadena de bytes, que calculo que serán los que hay que editar para el repointeo más tarde, pero aún no puedo hallar el pointer de 01409C20 (Ya lo intente con este metodo introduciendo 209C4009, pero nada). Esto me frustra muchísimo.
PD: Te quedó brutal el menu.
Ok! Más que nada el problema esta en el Offset 01409C20 , que es el primer texto que quiero traducir.Después miraré en una ROM limpia, vaya a ser que yo tenga modificados ciertos punteros y te tenga como un loco buscándolos, aunque no recuerdo haber modificado ningún bloque de texto...
*Y por extensión en todo el resto de offsets y pointers, si no puedo hallar ese no voy a poder con los otrosOk! Más que nada el problema esta en el Offset 01409C20 , que es el primer texto que quiero traducir.
Acabo de comprobar el puntero que te di en una ROM limpia y aparece sin problemas. En cambio, en la dirección que tú aportas es imposible que tenga puntero, pues ni siquiera apunta al inicio de una frase, sino en mitad de esta. La verdad, no sé qué está ocurriendo. ¿Podrías poner alguna captura?*Y por extensión en todo el resto de offsets y pointers, si no puedo hallar ese no voy a poder con los otros
Ooof, entiendo entiendo. En un rato llego a mi casa y te paso lo que ocurre. Gracias por la paciencia.Acabo de comprobar el puntero que te di en una ROM limpia y aparece sin problemas. En cambio, en la dirección que tú aportas es imposible que tenga puntero, pues ni siquiera apunta al inicio de una frase, sino en mitad de esta. La verdad, no sé qué está ocurriendo. ¿Podrías poner alguna captura?
Estoy! Cuando busco tu puntero hallo este (que esta correcto, ese si esta bien):Acabo de comprobar el puntero que te di en una ROM limpia y aparece sin problemas. En cambio, en la dirección que tú aportas es imposible que tenga puntero, pues ni siquiera apunta al inicio de una frase, sino en mitad de esta. La verdad, no sé qué está ocurriendo. ¿Podrías poner alguna captura?
El puntero de todo ese bloque de texto es F0 6D 3F 09. Eso quiere decir que a no ser que averigües cómo el juego selecciona las frases de ese bloque para mostrar, no te queda otra opción que traducir sobre ese mismo texto respetando el número de caracteres.Estoy! Cuando busco tu puntero hallo este (que esta correcto, ese si esta bien):
El offset que te decía era para este cacho de texto (que de pasada te agradecería la vida si me dijeses como puedo obtener el pointer del texto, pues al parecer con el offset que te pasé no se puede):
Como encontraste el puntero del bloque (así de pasada voy aprendiendo un poco de la movida)? Lamentablemente no es una opción traducir sobre el texto respetando los caracteres, ya que no es viable para la cantidad de texto que debo insertar :cEl puntero de todo ese bloque de texto es F0 6D 3F 09. Eso quiere decir que a no ser que averigües cómo el juego selecciona las frases de ese bloque para mostrar, no te queda otra opción que traducir sobre ese mismo texto respetando el número de caracteres.