[TUTORIAL] Traducir ROMs NDS

Ver el tema anterior Ver el tema siguiente Ir abajo

[TUTORIAL] Traducir ROMs NDS

Mensaje por pepenillo el Jue 21 Abr 2011 - 20:53

Ya sé que había uno, pero me parece muy incompleto, así que he hecho este tutorial:
(Para publicar este tutorial en otra web, por favor, pedid permiso, hasta ahora esta publicado en NDS-Extra y en Artema Translations)


TUTORIAL PARA TRADUCIR ROMs DE NDS



Este es un tutorial que enseña a usar ciertos programas y la técnica que uso yo para traducir ROMs de NDS:

Usaremos lo siguiente:
-DSLazy: para desempaquetar y empaquetar la ROM.
-CrystalTile 2:para desempaquetar y empaquetar la ROM de manera más rápida.
-NFTR Edit: para editar la fuente (añadir caracteres o modificarlos).
-WindHex: lo usaremos para editar el texto.
Translhextion: Aunque también sirve para editar texto, solo lo usaremos por si no tenemos sitio suficiente para traducir, añadiremos el texto al final del archivo.
-Una tabla.
-El archivo de texto que vamos a traducir.



SACAR, BUSCAR LOS TEXTOS DE LA ROM Y VOLVERLOS A METER(1ª FORMA)

Spoiler:
La primera forma es la más lenta, la que más trabajo requiere, pero si es un equipo de traduccion es la más cómoda, ya que sacas todos los archivos de la ROM y es más fácil coordinar al equipo.


1º PASO
SACAR LOS TEXTOS


Abrimos el DSLazy:

Comentemos lo que se ve:
-Los tes puntos: haz clic alli y selecciona la ROM que vas a usar (en nuestro caso desempaquetar).
-La sierra cortando un disquete: sirve para desempaquetar la ROM seleccionada.
-El engranaje y el disquete: sirve para empaquetar la ROM una vez editada.

Una vez abierto, seleccionamos la ROM haciendo clic en los tres puntos. Después hacemos clic en la sierra y nos saldrá una ventana que muestra los archivos que se están extrayendo.
Una vez terminado, tendremos todos los archivos en la carpeta NDS_UNPACK.
Es mejor no cerrar la ventan del DSLazy, ya que si la cerramos, cuando queramos empaquetar la ROM para probarla, se complicará un poco.


2º PASO
BUSCAR LOS TEXTOS


En esta parte no tengo mucho que decir, es totalmente lógica, vas buscando por los archivos hasta que un nombre te resulte familiar (por ejemplo: dialogos_textos.dat , textos.dat , este_archivo_tiene_textos_XDXDXD.dat ...). Otras veces es más dificil de encontrar segun el nombre, asi que habrá que ir abriendo archivos hasta encontrarlos. No siempre son dat, tambien pueden ser txt, msd... u otros formatos que puede leer el WindHex y el Translhextion.

También es muy posible que esten comprimidos, no en zip ni en rar, si no en otros formatos, en estos casos hay dos opciones: 1ª Saber programar y hacerte una herramienta para sacar los textos, o 2ª, Buscador de Internet y hallar esa herramienta (es un trabajo muy costoso...)

Una vez encontrados, es recomendable copiarlos a otra carpeta antes de modificarlos (se modifican los copiados a la otra carpeta).



3º PASO
METER LOS TEXTOS Y EMPAQUETAR LA ROM


Bien, si no hemos cerrado el DSLazy, es muy simple:
Cojemos los textos ya editados, los copiamos y sobreescribimos los de la carpeta NDS_UNPACK, entonces sacamos la pantalla del DSLazy y hacemos clic en el engranaje y el disquete, entonces nos pedirá un destino y un nombre para nuestro ROM modificado.

Voilà, ça c'est tout, ya hemos terminado, solo queda probar si funciona correctamente.




SACAR LOS TEXTOS DE LA ROM Y VOLVERLOS A METER(2ª FORMA)

Spoiler:

Esta manera es mas rapida si trabajas tu solo, pero siempre es util si quieres probar que tal te a quedado un texto, y no tener que sacar y meter todos los archivos de la ROM:

Abrimos el CrystalTile 2, abrimos la ROM (File->Open), una vez abierta, hay un boton con la forma de una DS, clicamos ahi, nos saldra una ventana con un "mapa" de todos los archivos de la ROM, buscamos el texto. Una vez encontrado, hacemos clic con el botón derecho y tenemos dos opciones:
1-Import: si el texto ya lo tenemos traducido en otra carpeta, esto sirve para sobreescribir el texto sin traducir por el traducido.
2-Export: lógicamente, es para extraer ese archivo de texto a la carpeta que queramos.

Para buscarlos se usa el mismo metodo que en el apartado anterior.




HACER UNA TABLA

Spoiler:
Os voy a enseñar la forma, que tal vez sea mas lenta, pero más efectiva y completa:
Es recomendable que os hayais leido primero todo el tutorial (las 3 partes), ya que es posible que sin esa información no sepais hacerlo.

1º PASO
BUSCAR EL PRIMER DIALOGO DEL JUEGO


Buscamos el primer dialogo que sale en el juego (habrá que jugar, logicamente), esto solo es para hacerlo mas rápido.



2º PASO
HACER LA BASE DE LA TABLA


Creamos un Documento de texto (.txt) y empezamos a esrcibir esto (en hexadecimal (0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F)):
0000=
0100=
0200=
0300=
0400=
0500=
0600=
0700=
0800=
0900=
0A00=
0B00=
...
FF00=

Lo guardamos y lo llamamos Tabla.txt .


3º PASO
COMPLETAR LA TABLA


Bien ya solo queda abrir el archivo con el texto del primer diálogo y empezar a sustituir, en la parte hexadecimal las letras del texto original por las de la tabla (si la primera letra fuera la H, en la parte hexadecimal seria 48 00, entonces sustituimos el 48 00 por 00 00, la siguiente por 01 00 y asi sucesivamente... Entonces cuando hemos acabado guardamos los cambios, lo metemos en la ROM y probamos el juego, nos fijamos en el primer diálogo y en la tabla apuntamos las letras que salen, por ejemplo, en el lugar que pusimos 2E 00, ahora sale un punto, pues vamos a la tabla y donde pone 2E00= , le añadimos un "." , quedando 2E00=. y asi con todos los digitos.

Una vez hecho todo, los digitos que no tengan ningún valor en el texto del juego, los borramos y nos quedamos solo con los que tienen un valor en el juego.



OTROS DATOS IMPORTANTES

Según cojais practica, os dareis cuenta de que por ejemplo del 0000 al 1F00 no suele haber nada y del 8000 al FF00 tampoco.
Además la gran mayoría de juegos usan la Tabla estandar:
2000=
2100=!
2200="
2300=#
2400=$
2500=%
2600=&
2700='
2800=(
2900=)
2A00=*
2B00=+
2C00=,
2D00=-
2E00=.
2F00=/
3000=0
3100=1
3200=2
3300=3
3400=4
3500=5
3600=6
3700=7
3800=8
3900=9
3A00=:
3B00=;
3C00=<
3D00==
3E00=>
3F00=?
4000=@
4100=A
4200=B
4300=C
4400=D
4500=E
4600=F
4700=G
4800=H
4900=I
4A00=J
4B00=K
4C00=L
4D00=M
4E00=N
4F00=O
5000=P
5100=Q
5200=R
5300=S
5400=T
5500=U
5600=V
5700=W
5800=X
5900=Y
5A00=Z
5B00=[
5C00=\
5D00=]
5E00=^
5F00=_
6000=`
6100=a
6200=b
6300=c
6400=d
6500=e
6600=f
6700=g
6800=h
6900=i
6A00=j
6B00=k
6C00=l
6D00=m
6E00=n
6F00=o
7000=p
7100=q
7200=r
7300=s
7400=t
7500=u
7600=v
7700=w
7800=x
7900=y
7A00=z
7B00={
7C00=|
7D00=}
7E00=~


4º PASO
TERMINAMOS LA TABLA


Una vez hecha la tabla y guardada en Tabla.txt , la cambiamos a Tabla.tbl y ya estará lista para abrirla con el WindHex u otros programas de edicion de texto hexadecimal.





EDITAR FUENTES

Spoiler:


Esta es una parte un poco artística, ya vereis por qué:

Se usa para añadir las vocales acentuadas y la ñ, ya que los juegos ingleses y japoneses, no tienen esos caracteres.


Buscamos la fuente (debería tener font en el nombre y/o acabar en .nftr).

Abrimos el NFTR Edit:

Esto es lo más importante:
-File:
Open: para abrir la fuente.
Save: para guardar la fuente.
-Tools:
Character Map: es lo que usaremos básicamente.


Vamos a File, Open y abrimos la fuente.Una vez abierta, vamos a Tools y hacemos clic en Character Map. Saldrá esto:

1-Mapa de caracteres: hay salen todos los caracteres de la fuente, para seleccionar uno, hay que hacer clic.
2-Dimensiones de la letra de la fuente: el numero de cuadraditos (pixels) que tiene cada letra.
3-Seleccion de color: a la izquierda el color seleccionado y a la derecha una ruleta para elejir el color con el que pintaremos el caracter.
4-El caracter seleccionado: ahí podemos hacer clic sobre cada cuadradito para cambiarle el color.
5-La anchura: el numero de pixels que usa el caracter (no puede superar a las dimensiones, numero 2)
6-El offset: el el número de offset, no hay que tocarlo (recomendado)
7-Distancia del siguiente caracter: a que distancia saldrá el siguiente caracter cuando escribamos.
8-Apply Changes: Aplicar los cambios hechos, hay que hacerlo con cada caracter que editemos.

Puesto ya es muy facil vamos a poner la Á (por ejemplo), cojemos y nos fijamos como es la A (sin acento) y copiamos en un papel como es, le dibujamos un acento, entonces vamos a un caracter que no vayamos a usar, por ejemplo el "{" y simplemente dibujamos la Á segun la teniamos en el papel, contamos la anchura, la ponemos en Width, guardamos los cambios, cerramos la ventana que se abrio cuando hicimos clic en Character Map, entonces volveremos a la ventana principal, guardamos y salimos.

Ya esta, cambiamos la tabla de 7B00={ , por 7B00=Á y esamos listos para traducir la ROM incluyendo la Á, solo nos quedarían la É,Í,Ó,Ú,á,é,í,ó,ú,ñ,Ñ.





TRADUCIR LOS TEXTOS


Spoiler:

1º PASO
INTRODUCCIÓN AL WINDHEX

Abrimos el WindHex, saldrá esto:

(Lo pongo así porque de la otra forma no se ve y no se porque)

Bien, comentare rápidamente lo más importante:
-File:
Open File for Editing: Para abrir el texto que traduciremos.
Open Table File: Para abrir la tabla del juego.
Save File: Para guardar los cambios.
-Edit:
Hex / Text Edit Mode: Para cambiar de texto a hexadecimal y viceversa (es más fácil pulsar Tab).
-Search:
Text Search: Para buscar una parte de texto.
Hex Search: Para buscar una parte hexadecimal.



2º PASO
PARTES DEL ARCHIVO DE TEXTO


Abrimos el texto y la tabla (ya os enseñe antes como se hace), os saldrá algo como esto:

(Lo pongo así porque de la otra forma no se ve y no se porque)

-Dirección: Es la línea (en hexadecimal, por supuesto).
-Texto: El texto que vamos a traducir.
-Hexadecimal: El valor que tienen las letras del texto en hexadecimal.
-Otros: El valor decimal, hexadecimal, binario, el Offset (importante, luego lo usaremos) y el código ASCI, todo esto del carácter seleccionado.



3º PASO
EMPEZAMOS A TRADUCIR


Al usar tabla, es probable que al seleccionar una letra en la parte del texto, en la parte hexadecimal correspondiente, se haya seleccionado un 00, eso es por que cada letra tiene dos grupos (bytes), cada uno de dos números y letras en hexadecimal (por ejemplo A=4100), casi siempre se selecciona el segundo byte (00), basta con seleccionar el byte anterior con el ratón ó pulsar Tab y a la fecha de la izquierda (luego volver a pulsar Tab para volver al modo de texto).

Voy a poner un ejemplo sobre como traducir “hello”:
Hacemos clic en la h (suponemos que se selecciona el 00), pulsamos Tab, tecla izquierda, Tab, h, o, l, a, .
Ya tenemos traducido “hello”, daos cuenta de que nos sobraba un carácter, pues lo he rellenado con un espacio.

¿Pero que pasa si nos falta espacio? En el siguiente paso os enseñaré a usar punteros y escribir el texto al final del archivo (si os fijáis a lo último del archivo esta todo vacío).



4º PASO
PUNTEROS


Esto es la parte más “complicada” de las traducciones, los punteros:
Los punteros son “cosas” que apuntan al primer carácter de una frase, e indica al juego donde debe empezar el texto que se mostrara por pantalla.
Cogemos una frase cuya traducción no quepa en su espacio, por ejemplo “The red car” (11 caracteres), se traduciría por “El coche rojo” (13 caracteres).
Pues bien, lo primero que hay que hacer es seleccionar el primer carácter de la frase (“T”), como ya dije antes, se seleccionará el 00, así que hay que seleccionar el byte anterior (seguramente sea 54), hasta aquí es fácil, ¿no?
Ahora nos fijamos en el Offset de este carácter (mirad cualquiera de las dos imágenes anteriores y veréis que esta abajo)
Supongamos que es el 00001571, entonces lo dividimos en grupos de dos, 00 00 15 71, vale y ahora invertimos el orden, 71 15 00 00. Ya casi hemos acabado, una vez hecho esto, vamos a buscar la tabla de punteros: Vamos a “Search” > “Hex Search”, marcamos la casilla Start Search From the Begining, escribimos nuestro número (71150000) y hacemos clic en Find.
Voilà, hemos encontrado la tabla de punteros (ahora te preguntaras: ¿pero si no hay nada?, eso es lo que parece, no esta en la parte del texto, sino en la parte hexadecimal, si os fijáis bien se habrá seleccionado el principio de una cadena de números en hexadecimal que es exacta a la que pusimos.


Ya hemos acabado prácticamente, solo queda cambiar el puntero a el lugar que queramos, en este caso necesitamos 2 caracteres, pues 2 caracteres, y cada uno tiene 2 bytes… hacen un total de 2x2=4, hay que restarle 4 al Offset inicial, por si no te acuerdas es 00001571, empiezo a restar… 00001570 (1), 0000156F (2), 0000156E (3) y 0000156D (4); ya solo quedan dos cosas, editar el puntero para que apunte a este ultimo Offset y traducir la frase, vamos con lo primero:

Nos vamos a la tabla de punteros, concretamente a el 71 15 00 00, lo que hemos buscado antes, y lo cambiamos por el Offset que hemos calculado (6D 15 00 00), y ya esta, ahora el juego empezara a leer dos caracteres antes, asi que ya tenemos el espacio necesario.

Es muy probable que un cuatro bytes se repitan varias veces a lo largo de la tabla de punteros, a eso lo llamaremos marcador, en un principio no sirve para nada, pero no hay que modificarlos, así que hay que estar atentos.



5º PASO
USAR EL TRANLHEXTION PARA AÑADIR EL TEXTO AL FINAL


¿Qué pasaría si en una frase necesitamos 10 espacios, pero justo a 3 está la frase anterior del texto?, y lógicamente no vamos a editar el puntero para que destroce la frase anterior…

Tengo la solución, apuntar el puntero para que empiece a leer 10 líneas antes del final de todo, entonces escribimos ahí y no hay límite de caracteres, pues bien, eso en el WindHex no se puede hacer, necesitamos el Translhextion.

Y no cambia nada, hacemos exactamente lo mismo, hacemos clic en la primera letra de la frase, la dividimos, la invertimos, lo buscamos, pero a la hora de editar, le damos una dirección del final del archivo, por ejemplo la 0000C0BB, que invertida sería BB C0 00 00, lo sustituimos y ya podemos escribir al final de todo, empezando en el Offset 0000C0BB hasta el final, sin límites.
Texto hecho por pepenillo, basándose en su propio tutorial y en el de Kraion.










Espero que os animeis a traducir ROMs.
No descarto ampliarlo un poco más una vez acabado, con la edicion de graficos.


Si tenéis alguna duda, preguntad.



Última edición por pepenillo el Lun 2 Mayo 2011 - 16:03, editado 23 veces (Razón : Actualizando...)

pepenillo
NDS-Extrero

Masculino
Cantidad de envíos : 1765
Opinión sobre NDS-Extra : Ninguna
Inscripción : 12/08/2010
Reputación : 179
Puntos : 2532

Volver arriba Ir abajo

Re: [TUTORIAL] Traducir ROMs NDS

Mensaje por Miguelxcool el Jue 21 Abr 2011 - 23:59

No es un insulto, pero dices que el otro esta incompleto y este no lo has terminado
avatar
Miguelxcool
NDS-Extrero

Masculino
Cantidad de envíos : 1418
Localización : Venezuela
Empleo/Ocio : No te importa
Humor : Adjunto Virus a todos mis Archivos
Opinión sobre NDS-Extra : Es la Mejor de NDS
Inscripción : 31/08/2010
Reputación : 66
Puntos : 1763

http://eljuegodelasesino.foroactivo.com

Volver arriba Ir abajo

Re: [TUTORIAL] Traducir ROMs NDS

Mensaje por pepenillo el Vie 22 Abr 2011 - 0:23

Pero este lo voy a hacer muy completo, hoy no me ha dado tiempo ha acabarlo, en unos dias estara muy completo. El otro ya no va ha estar completo nunca.

PD: Claro que no es un insulto XD

pepenillo
NDS-Extrero

Masculino
Cantidad de envíos : 1765
Opinión sobre NDS-Extra : Ninguna
Inscripción : 12/08/2010
Reputación : 179
Puntos : 2532

Volver arriba Ir abajo

Re: [TUTORIAL] Traducir ROMs NDS

Mensaje por MIGUEX80 el Miér 4 Mayo 2011 - 21:54

chevere por tu aporte +1
avatar
MIGUEX80
NDS-Professional

Masculino
Cantidad de envíos : 318
Localización : Lima-Peru
Empleo/Ocio : Destruir horrocrux.......
Humor : ke le dice un....................jajajaja Xd
Opinión sobre NDS-Extra : Es la Mejor de NDS
Inscripción : 21/01/2011
Reputación : -2
Puntos : 524

http://bloghogwarts.com/

Volver arriba Ir abajo

Re: [TUTORIAL] Traducir ROMs NDS

Mensaje por Kraion el Miér 4 Mayo 2011 - 22:14

MIGUEX80 escribió:chevere por tu aporte +1
A ver si te pica el gusanillo y pruebas (lo mismo digo para todos aquellos que se pasen por aquí Wink)
avatar
Kraion
NDS-Master

Masculino
Cantidad de envíos : 584
Localización : どこもです
Empleo/Ocio : Super Duper High School Bio
Humor : きぼう
Opinión sobre NDS-Extra : Me Encanta
Inscripción : 19/02/2011
Reputación : 38
Puntos : 710

Volver arriba Ir abajo

Re: [TUTORIAL] Traducir ROMs NDS

Mensaje por pepenillo el Miér 4 Mayo 2011 - 22:17

MIGUEX80 escribió:chevere por tu aporte +1
Gracias, ojala mas gente se anime a formar un grupo de traductores

pepenillo
NDS-Extrero

Masculino
Cantidad de envíos : 1765
Opinión sobre NDS-Extra : Ninguna
Inscripción : 12/08/2010
Reputación : 179
Puntos : 2532

Volver arriba Ir abajo

Re: [TUTORIAL] Traducir ROMs NDS

Mensaje por Miguelxcool el Miér 4 Mayo 2011 - 22:51

pepenillo escribió:
MIGUEX80 escribió:chevere por tu aporte +1
Gracias, ojala mas gente se anime a formar un grupo de traductores
Y ¿ya no habia uno?
avatar
Miguelxcool
NDS-Extrero

Masculino
Cantidad de envíos : 1418
Localización : Venezuela
Empleo/Ocio : No te importa
Humor : Adjunto Virus a todos mis Archivos
Opinión sobre NDS-Extra : Es la Mejor de NDS
Inscripción : 31/08/2010
Reputación : 66
Puntos : 1763

http://eljuegodelasesino.foroactivo.com

Volver arriba Ir abajo

Re: [TUTORIAL] Traducir ROMs NDS

Mensaje por pepenillo el Jue 5 Mayo 2011 - 15:35

Se disolvio, es mejor que cada uno cree su propio grupo.

pepenillo
NDS-Extrero

Masculino
Cantidad de envíos : 1765
Opinión sobre NDS-Extra : Ninguna
Inscripción : 12/08/2010
Reputación : 179
Puntos : 2532

Volver arriba Ir abajo

Re: [TUTORIAL] Traducir ROMs NDS

Mensaje por Oak el Dom 8 Mayo 2011 - 5:24

Muy bueno el aporte ok...

_____________________________


Lider De Gimnasio Normal - Bicho


Pokemon Negro






Recordar Que Las Palabras Malsonantes Son Impropias Para Personas Razonables Y Pensantes
DENUNCIALAS
avatar
Oak
Moderador
Moderador

Masculino
Cantidad de envíos : 2841
Localización : Colombia
Empleo/Ocio : I´m English´s Teacher
Humor : Happy
Opinión sobre NDS-Extra : Está bien
Inscripción : 12/09/2010
Reputación : 309
Puntos : 3756

Volver arriba Ir abajo

Re: [TUTORIAL] Traducir ROMs NDS

Mensaje por pepenillo el Dom 8 Mayo 2011 - 11:11

Gracias andres.
PD:¿quien le ha bajado la reputación a Kraion, si no ha hecho nada?

pepenillo
NDS-Extrero

Masculino
Cantidad de envíos : 1765
Opinión sobre NDS-Extra : Ninguna
Inscripción : 12/08/2010
Reputación : 179
Puntos : 2532

Volver arriba Ir abajo

Gracias n_n

Mensaje por vortrum el Mar 10 Ene 2012 - 2:26

El mejor tutorial de traduccion que he encontrado, estaba loco con los punteros y las fonts (escribiendo 'cumpleanios' por falta de"'Ñ" y 'Los2' para reemplazar "both")
Me sera de gran utilidad, muchisimas gracias Very Happy

vortrum
Recién llegado

Masculino
Cantidad de envíos : 1
Opinión sobre NDS-Extra : Me Encanta
Inscripción : 25/03/2011
Reputación : 0
Puntos : 1

Volver arriba Ir abajo

Re: [TUTORIAL] Traducir ROMs NDS

Mensaje por Contenido patrocinado


Contenido patrocinado


Volver arriba Ir abajo

Ver el tema anterior Ver el tema siguiente Volver arriba

- Temas similares

 
Permisos de este foro:
No puedes responder a temas en este foro.