Guia de Hextractor

GUIA BÁSICA DE HEXTRACTOR/HEXVIEWER (V0.95)


Hola a todos, al fin voy a liberar mi herramienta y este tutorial y las preguntas que se hagan espero que ayuden a aquellos que les ha costado terminar una traducción.

Este 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



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:

https://www.youtube.com/watch?v=pPL_pq2c4WM


0.El entorno

Primero 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 traduccion

Paso 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 juego

Paso 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.

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 todo...






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.


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.Traduciendo

Paso 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 MULTITABLA

En 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 "1.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

14 comentarios:

  1. Gracias a tu Editor inicie con la Traduccion de Super Ghost & Gouls de SNES.
    Seguia tut tutorial pero en el paso 5 "Refinar la Tabla" mme perdi T.T
    Se puede refinarla con algun editor de tabla (Cual me recomiendas)? o tiene que ser manual como muestras en la foto?
    Tambien para agregar los signos de puntuacion y el espacio entre palabras.

    De antemano: Muchas Gracias :D

    ResponderEliminar
    Respuestas
    1. Yo las edito con el mismo notepad++.
      Al final las tablas no son más que un fichero con varias lineas con un codigo hexadecimal y su equivalencia.
      (Eso si, hay que editarlas en utf8, como todos los ficheros de hextractor)

      Eliminar
  2. Abriendo la tabla en NP++ veo que solo las letras tienen su correcta correspondencia, pero ESPACIO, admiraciòn y el signo de punto no corresponde sus valores con los que veo en tu Hextractor.
    D7=. pero en realidad es 27=. Puedo borrar D7 o que valor le pongo para no estropear la Tabla?

    (Eso si, hay que editarlas en utf8, como todos los ficheros de hextractor)
    <=== El NP++ guarda asi por defecto?


    Gracias por responder tan pronto :)

    ResponderEliminar
    Respuestas
    1. Ante la impaciencia he hecho los cambios y si se edito la tabla como pensaba, aunque no borre los hexadecimales de la tabla, solo sus correspondencias, quedando el resultado como un vacio (y no un espacio).

      Ahora solo me falta encontrar los "letreros" de inicio de misión "READY" y la barra de estatus... quiza los creditos... aunque esto ultimo lo dudo mucho -.-


      ALguna ayuda para encontrar esos textos dificiles?

      Eliminar
    2. Respecto al utf8, en los ficheros que genera hextractor si que los coge utf8, mas bien es por si generas uno de 0, pero recomendaria si vas a hacer otra tabla copiar una existente y modificarla.
      Respecto a los codigos, yo prefiero borrar los que no uso, no recomiendo dejarlos.
      Y respecto a esos READY y demás, lo mas probable es que o sean SPRITES o utilicen códigos de 16 bits, intenta buscar R*E*A*D*Y, en caso de no aparecer, ves poniendo más * entre las letras a ver si son sprites que a veces tienen más separadores (R**E**A**D**Y, etc).

      Eliminar
  3. Me quedo atascado pues el programa no ejecuta los pasos 6 y 7 como indicas.

    Hube de abrir el .BAT manualmente , con hextractor abierto, para que generara el archivo .ext y uno .ext.off de 13kb(que es el que me deja luego abrir el Hextractor) pero salen muchos "simbolos" y no solo el texto.

    Que sera que no se ejecuta el paso 6 como indicas?
    ten en cuenta que ni da la opcion en Herramientas ni aparece el cuadro de dialogo con Control+A.


    De nuevo Gracias

    ResponderEliminar
    Respuestas
    1. Ten en cuenta que la nueva versión de la guia es para la ultima del programa, de modo que tendrías que volvertelo a bajar y empezar "de 0", (puedes llevarte la tabla y el .off al nuevo proyecto)

      Eliminar
    2. Este comentario ha sido eliminado por el autor.

      Eliminar
    3. Tenias razón, estaba usando la 0.90 y no la 0.95 -.-


      Gracias, a probar de nuevo!

      Eliminar
  4. He subido un tutorial sencillo sin audio:
    https://www.youtube.com/watch?v=pPL_pq2c4WM

    ResponderEliminar
  5. Por fin tuve el tiempo para jugar las dos rondas del G^G de SNES y hacer los saves justo antes de donde aparecen los textos :D

    A ver si esta semana por fin inserto textos y subo el Parche O.O

    ResponderEliminar
  6. amigo he intentado extraer el dialogo de las shinin force(in darkness y final conflict) pero no me aparecen nada en la final conflict me aparece solo el inicio.

    ResponderEliminar