Buenas a todos, como muchos ya sabeis he sacado muchas traducciones de juegos retro ultimamente, si no estais al tanto podeis verlo aqui:
hilo_la-traduccion-retro-de-la-semana_2183086A lo largo de mis traducciones he ido mejorando la herramienta con la que las hago, para ser mas eficiente.
He decidido liberar la herramienta y voy a usar este hilo para poner un tutorial y responder a las dudas que surjan si alguien quiere traducir.
Esta herramienta es para traducir RESPETANDO EL TAMAÑO ORIGINAL, a veces falta espacio, pero es la manera de ir soltando traducciones facilmente.
GUIA BÁSICA DE HEXTRACTOR/HEXVIEWER V0.95Este tutorial y esta herramienta no son una guia de principiante, deben conocerse lo que son las tablas .tbl y la edición hexadecimal como mínimo antes de usar la herramienta.Requisitos:1- Windows (XP o superior)
2-
Java 6 o superior (Hay que descargar el JRE)3-
Notepad++ (Opcional pero recomendado)Descarga:Hextractor (Últimas releases)NOTA: proyecto es el nombre de la carpeta. y NOMBREROM el nombre original de la rom.
IMPORTANTE: Hextractor trabaja con ficheros UTF8 sin BOM, si quereis modificarlos con un programa que no sea el notepad++ (que lo gestiona automaticamente) tenerlo en cuenta.
Guía en youtube de este tutorial:
https://www.youtube.com/watch?v=pPL_pq2c4WM0.El entornoPrimero descargar e instalar Java, despues el editor de textos.
Mi recomendación como editor de textos es Notepad++, cargad para los ficheros ext la configuración del paquete del hextractor, se llama "nppextlang.xml".
Para ello debeis ir a "Lenguaje"->"Defina su lenguaje"->Importar, y elegir el archivo "nppextlang.xml".
Cuando querais abrir una rchivo .ext (lso de extraccion de scripts) le decis que lo abra siempre con el Notepad++ y os saldrá algo así:
Las ventajas de esto son varias:
1-Los comentarios son verdes, después de un ";" todo lo que viene es un comentario.
2-Textos resaltados en azul, esto es lo que hay que traducir.
3-Bloques abribles y cerrables, los bloques empiezan por @ y terminan en un | (Caracteres reservados).
Recomiendo activar el "Ajuste de Línea", en el Menu "Vista".
1.Crear el proyecto de traduccionPaso 1:
Descomprimimos el contenido del zip en una carpeta que será la base de las traducciones.
Paso 2:
Ejecutamos Hexviewer, ya sea mediante el bat (0.hexviewer.bat) si no tenemos el java instalado y configurado o con doble click si lo está.
Os recomiendo leeros "Ayuda"->"Ayuda", ya que explica todas las acciones posibles y teclas.
Paso 3:
Pulsamos CTRL+N o Archivo->Nuevo proyecto
Paso 4:
Usamos el selector de archivos o arrastramos la rom a traducir, comprobamos el formulario y pulsamos "Crear..."
Aceptamos la confirmación.
Extra: este menú de creación admite el proceso en "batch" o lotes de roms, si le arrastramos varias roms a la vez, creará los proyectos para todas esas roms (con el nombre de proyecto por defecto).
Paso 5:
Cerramos hextractor y entramos a la carpeta del proyecto creado.
(El programa crea varios archivos bat que usaremos más tarde.)
2.Buscando las tablas del juegoPaso 1:
Lo primero sería cargar el juego en el emulador y detectar alguna palabra larga (por ejemplo ejecutandolo en el emulador y viendo la intro o similar).
Paso 2:
Abrimos el Hextractor y arrastramos la rom o la abrimos con "Archivo"->"Abrir Archivo..."
Para ello usaremos CTRL+R o "Herramientas"->"Búsqueda Relativa".
En caso de que la palabra tenga mayúsculas y minusculas, mi recomendacion es buscar solo por las minúsculas, ya que si no coincide la alineacion de mayusculas-minusculas con la tabla ascii, no la encontrará.
Extra: el caracter * actúa de comodín, de modo que "C*SA", encontraría, "CASA", "COSA", etc..
Esto va muy bien para encontrar letras de 16 bits, ya que hextractor no da soporte para ello, pero sí podría encontrar una palabra del estilo "c*o*s*a", y si luego damos en la tabla caracteres a lo que hay en los *, podemos extraer de una forma legible caracteres de 16 bits (Aunque cuestan más de traducir).Paso 3:
Una vez tenemos resultados, analizamos los mismos, si sale mas de una entrada y todas parecen usar la misma tabla, haremos clic derecho en una de ellas y elegimos que utilice la tabla.
Si no hay mas de una tabla y tendremos que hacer este proceso varias veces (guardando diferentes tablas y editando los ficheros de extraer e insertar).
Paso 4:
En este momento deberiamos poder ver el texto (o casi todo), para la tabla encontrada.
Guardaremos la tabla con CTRL+S o "Tabla"->"Salvar Tabla..."
El nombre de la primera tabla ha de ser igual que el de la carpeta del proyecto (o editar los ficheros de extraer e insertar).
Paso 5:
Ahora habría que refinar esa tabla, eliminar caracteres no usados y añadir otros caracteres.
Para ello tendremos que comparar el texto que vemos en el emulador con los códigos que vemos en el hexviewer.
[[Foto comparar emulador con hextractor, Pendiente]]
Otra opcion es usar un emulador que nos deje ver los tiles y asi podemos refinar la tabla (si coinciden numero de tile con codigo del caracter).
Recomiendo utilizar el emulador BizHawk, ya que tiene soporte para ver tiles y más cosas de casi todas las plataformas.
Paso 6:
Una vez tenemos la tabla refinada, tocaría encontrar los textos.
Lo primero a hacer es desde una de las palabras antes encontradas, ver si las cadenas tienen un caracter de finalización, normalmente es 00 o FF.
Paso 7:
Accedemos a la pantalla de búsqueda de cadenas con CTRL+A o Herramientas -> Buscar
El número son los carácteres que va a ignorar seguidos, si vemos que los textos a parte del caracter de finalizar tienen alguno más, aumentamos este valor, normalmente con 4 sirve.
Los caracteres de abajo es el carácter/es de finalización, ponemos el que hemos visto según el juego.
Le damos a buscar y nos generará un fichero "NOMBREROM.ext" con los textos encontrados (una vez termine la barra de progreso).
Como su nombre indica, busca TODAS las palabras que existan en el diccionario elegido en la ROM segun la tabla elegida.
Esto es muy útil para evitar tener que mirar toda la rom, utiliza el diccionario "EngDict.txt" de la raiz.
Paso 8:
Abrimos el fichero "NOMBREROM.ext".
Esto contiene la extracción de todos los textos del juego (y algo de basura), vamos a limpiarla.
Paso 9:
Iremos eliminando todos los bloques que creamos que no son útiles.
NOTA: Cuidado al eliminar los bloques, han de eliminarse desde la @ hasta la linea del |, sino podemos dañar el archivo y no podrémos seguir después.
Paso 9:
Abrimos el Hextractor (si no está ya abierto) y cargamos el archivo NOMBREROM.ext, ya sea arrastrando el fichero al programa o a través de "Rangos"->"Cargar Rangos" o CTRL+SHIFT+O.
Tambien hay que abrir la rom y la tabla si no lo teniamos cargado.
NOTA: puedes arrastrar los 3 ficheros a la vez al programa abierto y los cargará.
Paso 10:
Con F5 ("Rangos"->"Rango Anterior") y F6("Rangos"->"Rango Siguiente"),
nos movemos por los rangos seleccionados, y los refinaremos de la siguiente forma:
Dentro de un rango podemos cortarlo con boton derecho y "Indica Inicio Offset" o "Indica Fin Offset", si queremos alargarlo, deberemos borrarlo y crear un rango nuevo (o elegir un inicio anterior y un final posterior, con lo cual "se come", a los otros rangos que haya dentro de él).
También se pueden hacer estas acciones con los botones "Inicio" y "Fin".
Al elegir "Indica Fin Offset", nos pedirá el (o los, pueden ser varios tal que 00-FF-01) caracteres de fin de cadena.
Tambien podemos insertar nuevos rangos con "Indica Inicio Offset", y eliminarlos haciendo clic en ellos y pulsando suprimir o clic derecho en ellos y "Borrar rango".
Mi recomendacion es intentar hacer los rangos lo mas grandes posibles y despues utilizar boton derecho y "Partir rangos" con 1024 o el tamaño que deseeis.
El partido de rangos ayuda a ir avanzando los bloques traducidos y poder ir tirando "hacia abajo del archivo" los bloques traducidos.
Tambien ayuda a que si se comete algún error, es más fácil detectarlo.
Una vez hayamos terminado de refinar, guardamos los rangos con CTRl+SHIFT+S o con "Rangos"->"Guardar Rangos..." (con el nombre del proyecto, es decir, el de la carpeta, el mismo que la tabla, el fichero hex, etc).
Paso 11:
Extraemos los textos con "1.originalScript.bat" y revisamos el fichero proyecto.ext, verificando que los textos extraidos sean correctos. Sino volveríamos a refinar con el paso 10.
Paso 12:
Si no tenemos ya el fichero tr_proyecto.ext, copiamos proyecto.ext como tr_proyecto.ext, si ya lo teniamos con algo traducido y hemos cambiado algún rango, habrá que abrir los dos archivos y pasar a la traduccion las partes nuevas copiando los bloques correspondientes.
3.TraduciendoPaso 1:
¡Traducir!
Ahora toca traducir el archivo tr_proyecto.ext, las tablas que genera por defecto el programa enmascaran las letras con acentos, ñ ¡ y ¿ como sus versiones normales, asi que no tengais miedo a usarlas aunque no tengais su gráfico, más adelante en caso de añadirlo, con un simple cambio de tabla y reinsertándola, se activarán.
NOTA: SIEMPRE hay que sustituir un caracter por otro (recomiendo tener el modo INSERT), no debería dar otros problemas. (Aunque hay de todo)
Tambien hay que tener cuidado al mover "caracteres de control" del juego (algunos no dejan), y con los caracteres "~00~" estos carácteres actuan como uno solo, no se pueden romper o no irá bien la cosa, de todos modos en estos casos el insert debería quejarse con que hay cosas raras. Paso 2:
Ejecuta "3.insert.bat" para crear el archivo TR_NOMBREROM, ¡y prueba tu traducción!
Paso 3:
Cuando ya tengas tu versión final, ejecuta "5.createPatch.bat" y se creará un archivo de parche para transformar el original en el traducido con nombre "proyecto.ips".
JUEGOS MULTITABLAEn caso de que un juego tenga multiples tablas, deberemos repetir los pasos de la accion normal pero con alguna salvedad, estas son:
1-La tabla guardarla con otro nombre, (por ejemplo proyectoAlt.tbl, proyectoAlt2.tbl, etc).
2-Buscamos textos y generamos su archivo de rangos de la misma forma pero lo guardamos como proyectoAlt.off
3-Modificamos "1.originalScript.bat", copiamos la linea:
java -jar Hextractor.jar -a %SCRIPTNAME%.tbl %T_FILENAME% %SCRIPTNAME%.ext %SCRIPTNAME%.off
y la pegamos debajo como:
java -jar Hextractor.jar -a %SCRIPTNAME%Alt.tbl %T_FILENAME% %SCRIPTNAME%Alt.ext %SCRIPTNAME%Alt.off
Por tantas tablas como tengamos (con sus nombres de tabla)
4-Modificamos "3.insert.bat", copiamos la linea:
java -jar Hextractor.jar -h %SCRIPTNAME%.tbl tr_%SCRIPTNAME%.ext %T_FILENAME%
y la pegamos debajo como:
java -jar Hextractor.jar -h %SCRIPTNAME%Alt.tbl tr_%SCRIPTNAME%Alt.ext %T_FILENAME%
Por tantas tablas como tengamos (con sus nombres de tabla)
5-Cuando extraigais los textos con "4.originalScript.bat", ahora os generará tantos archivos como tablas, cada uno tendreis que copiarlo como tr_nombreoriginal.ext para que "3.insert.bat" pueda insertarlos en la rom.
6-Y ya podemos ir cambiando los rangos que necesitemos, siempre podemos arrastrar tabla y rangos al programa para que cambie ambos.
NOTA: si habeis buscado rangos con una tabla y vais a buscar con otra, de limpiar los rangos con: CTRL+L o "Rangos"->"Limpiar rangos".
PROXIMAMENTE:
JUEGOS CON TABLAS NO LINEALES
AÑADIENDO CARACTERES ESPECIALES