Semi-Tutorial Semi-Duda: Scripts y Recalcular punteros

Tutoriales, herramientas, aportes, etc

Moderador: skybladecloud

Responder
Avatar de Usuario
Darke
Mensajes: 39
Registrado: Mar Nov 16, 2010 3:12 pm

Semi-Tutorial Semi-Duda: Scripts y Recalcular punteros

Mensaje por Darke » Mié Nov 17, 2010 6:03 pm

Muy buenas a todos, al principio era una duda solamente pero cuando me di cuenta de como se hacía, realmente acabe haciendo un pequeño tutorial, en el cual hay una duda que a ver si alguien me la puede contestar :D. El tema es sobre la inserción de scripts en una ROM y de recalcular los punteros para que el texto salga bien.

Por si es de interés el juego en cuestión del que voy a hablaros es del Final Fantasy III (US)

1º He extraído un trozo de script correspondiente al inicio del juego con el mismo thingyv.

[img]http://www.imagengratis.org/images/iniciotextoin.png[/img]

[img]http://www.imagengratis.org/images/fintextoingle.png[/img]

SCRIPT ORIGINAL

Código: Seleccionar todo

VICKS&#58; There's the town...<16><18><12><13>WEDGE&#58; Hard to believe an Esper's been found intact there, 1000 years after the War of the Magi...<16><18><12>/VICKS&#58; Think's it's still alive?*WEDGE&#58; Probably...*...judging from the urgency of our orders. <16><18><12>/VICKS&#58; And this woman, this...sorcerer. Why's she here?<16><18><12><13>I heard she fried 50 of our Magitek Armored soldiers in under 3 minutes.<16><18><12>/WEDGE&#58; Not to worry. The Slave Crown on her head robs her of all conscious thought. She'll follow orders.<16><18><12>/WEDGE&#58; We'll approach from the east.*Move out!<END>
2º Traduzco el script con el bloc de notas quedando esto:

SCRIPT TRADUCIDA

Código: Seleccionar todo

VICKS&#58; Ahi esta el pueblo...<16><18><12><13>WEDGE&#58; Cuesta creer que se haya encontrado un Esper intacto ahi, 1000 años despues de la guerra de los Magi...<16><18><12>/VICKS&#58; Crees que sigue vivo?*WEDGE&#58; Probablemente...*...A juzgar por la urgencia de las ordenes. <16><18><12>/VICKS&#58; Y esta mujer, esta...hechicera. Porque esta aqui?<16><18><12><13>Oi que dejo fritos a 50 de nuestros soldados armados con Magitek en menos de 3 minutos.<16><18><12>/WEDGE&#58; No te preocupes. La Corona Esclava de su cabeza la priva de todo pensamiento racional. Ella seguira ordenes.<16><18><12>/WEDGE&#58; Nos acercaremos por el este.*Moveos!<END>
3º Introduzco la script con el propio thingyv.

[img]http://www.imagengratis.org/images/iniciotextoes.png[/img]

[img]http://www.imagengratis.org/images/finaltextoesp.png[/img]
----------------------------------------------------------
PRIMERA DUDA: Se ha sobrepuesto el texto traducido sobre texto original que no pertenecia al script extraido, porque la traducción del script es más larga que el script Original.¿Necesariamente la traducción del script debe tener igual o menor número de carácteres para traducir?
-----------------------------------------------------------

Vaya por dios, justo ahora que llevo escrito todo esto y sacando las imágenes para que lo vierais, he descubierto la solución a la segunda cuestión que iba a plantearos sobre recalcular punteros, pero ya que he sacado todas las imagenes pues lo pongo por si a alguien le ayuda, es decir, que el que ya entienda de todo esto puede dejar de leer y si sabe responderme a la pregunta se lo agradezco mucho, si eres un dummie (novato) como yo sigue leyendo que igual te sirve.

4º Si abrimos el juego evidentemente habrá fallos con los punteros, los textos no salen bien, excepto el primero, porque ese puntero si está bien colocado.

1er diálogo

[img]http://www.imagengratis.org/images/dialogo1.png[/img]

*NOTA: es evidente que no he modificado los gráficos aún xD.

2o diálogo

[img]http://www.imagengratis.org/images/dialogo2.png[/img]

5º Para solucionar esto hay que redireccionar los punteros, buscamos la tabla de punteros, para ello buscamos el inicio de 2 o 3 diálogos del juego y vemos su offset (Posición), como vemos dos imágenes atras, el inicio del diálogo está en el "0D0200", hacemos el truquito de quedarnos con las 4 ultimas cifrar, restar 200 e intercambiar por parejas para saber nuestro puntero.

0D0200 -> 0200 - 200 = 0000 -> 00 00 -> Intercambiamos -> 00 00

El siguiente diálogo empieza en el offset "0d0259"

0D0259 -> 0259 -200 = 0059 -> 00 59 -> Intercambiamos -> 59 00

Ahora buscamos los 4 valores (o 6 si calculaste 3 punteros) seguidos en la rom "00005900" y nos topamos con esto:

[img]http://www.imagengratis.org/images/iniciopuntero.png[/img]

6º Ya sabemos donde empieza la tabla de punteros, si te fijas sigue un orden, un byte q varia mucho junto a otro que varía poco, sigue bajando y siguiendo este patron hasta que veas que acaba.

[img]http://www.imagengratis.org/images/finalpunteros.png[/img]

7º Ahora tenemos que recalcular los punteros, para ello usaré el "VRecalcIGU" que podeis descargaroslo de aquí. Es importante para usar este programa, que tengais en la misma carpeta que éste el programa original VRecalc, que también lo podeis descargar de aquí, solo hay que rellenar los datos del programa. IMPORTANTE CERRAR EL EDITOR HEXAGESIMAL SI TIENE LA ROM CARGADA (o eso creo, si no lo cierro no me salía bien)

[img]http://www.imagengratis.org/images/calculopunter.png[/img]

Si abrimos el editor hexagesimal y nos vamos al inicio de la tabla de punteros vemos que han sido modificados.

[img]http://www.imagengratis.org/images/punteroscfcf.png[/img]

Si vamos al emulador y probamos el juego veremos que ahora sale todo bien bonito :D

NOTA: Aun tengo la primera duda,
si alguien me lo puede decir se lo agradezco :D

Avatar de Usuario
_saito_
Traductor de Élite
Traductor de Élite
Mensajes: 337
Registrado: Mar Dic 29, 2009 6:26 pm
Ubicación: Inside the pez ;O
Contactar:

Mensaje por _saito_ » Vie Nov 19, 2010 12:29 am

Es necesario que sea el tamaño igual o menor al original siempre y cuando abajo no tengas espacio o sea el final del banco de datos.
Dependiendo de si son lorom o hirom los bancos seran de un tamaño u otro ;O.

Me gustaria que hubieses dado algunos datos mas tecnicos sobre como se realculan los punteros y los bancos de memoria, ya que cuando llegas a l tope del banco no se pueden añadir mas punteros en memoria, a no ser que cambies de banco ;O.

Pero vamos esta muy bien como una pequeña aportacion, buen trabajo.


Saludos ;O
[img]http://img189.imageshack.us/img189/4958/zorooo.png[/img]

[img]http://img837.imageshack.us/img837/6869/dragooon.jpg[/img]
[img]http://transgen.comeze.com/e107_themes/ ... s/logo.gif[/img]
You want to hear the greatest story ever told?
There ain't a greater feeling than the healing
of your soul.

Avatar de Usuario
Darke
Mensajes: 39
Registrado: Mar Nov 16, 2010 3:12 pm

Mensaje por Darke » Vie Nov 19, 2010 5:49 pm

ains es k a eso ya no llego xD eso tambien lo tengo q aprender yo :3

Responder