Guia de Hextractor

GUIA BÁSICA DE HEXTRACTOR/HEXVIEWER


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 0.9
Hextractor 0.91 (Experimental)

NOTA: proyecto es el nombre de la carpeta. y NOMBREROM el nombre original de la rom.

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 (hextractor.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.
[[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:

Editamos el fichero "1.searchAll.bat" y cambiamos la parte " 4 FF ".


El primer numero 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.
El segundo número es el carácter de finalización, ponemos el que hemos visto según el juego.
Ejecutamos el fichero bat modificado y esperamos los resultados.

Paso 8:

SearchAll, 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, por defecto utiliza el diccionario "EngDict.txt" de la raiz, pero podría cambiarse por otro.
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.
Una vez hayamos terminado guardamos y ejecutamos "2.cleanAutoExtract.bat"
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 10:

Abrimos el Hextractor (si no está ya abierto) y cargamos el archivo NOMBREROM.ext.off, ya sea arrastrando el fichero al programa o a través de "Rangos"->"Cargar Rangos".
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 11:

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

Paso 12:

Extraemos los textos con "4.originalScript.bat" y revisamos el fichero proyecto.ext, verificando que los textos extraidos sean correctos. Sino volveríamos a refinar con el paso 11.

Paso 13:

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 "6.insert.bat" para crear el archivo TR_NOMBREROM, ¡y prueba tu traducción!

Paso 3:

Cuando ya tengas tu versión final, ejecuta "7.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 "4.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 "6.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 "6.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

52 comentarios:

  1. al fin te has decidido a ponerlo, ya asi se sumaran mas traductores de juegos gracias a tu gran tutorial.

    ResponderEliminar
  2. excelente tutorial wave,muy pulido y con todo muy bn explicado,claro esta se requiere de conocimiento y experiencia en este tema para entender las pasos necesarios para poder traducir a gusto,pero para el q quiera traducir le resultara mas fácil con tu tutorial.

    ResponderEliminar
  3. una pregunta,no se puede hacer nada cuando la ROM de un juego contiene diálogos comprimidos?

    ResponderEliminar
    Respuestas
    1. Se puede, pero es 100 veces mas complicado.
      Hay que analizarlas con mimo y buscar que algoritmo utiliza el juego, descifrarlo, hacer un extractor especifico...
      Hay herramientas para algunos juegos que usan las mismas compresiones pero la mayoria de estos diria que ya estan traducidos.
      De todos modos yo no se hacerlo y creo que hay muchos juegos por ahi sin comprimir para seguir sacando juegos :D

      Eliminar
  4. ahh ya veo,en verdad requiere de destreza y mucha experiencia con ese tipo de roms,gracias por la aclaracion.por cierto nunca he podido encontrar ningún juego del catalogo de MAME traducido,esas roms no se pueden traducir por alguna razón?

    ResponderEliminar
    Respuestas
    1. Pues la verdad es que no lo se, supongo que al ser arcades donde leer no solía servir de mucho, no se ha puesto la gente.
      Que yo sepa debería ser lo mismo (aunque tambien hay roms encriptadas), lo único malo es que las roms de mame tienen multiples archivos y habría que hacer un parche por archivo modificado.

      Eliminar
    2. Hay 3 juegos de MAME con parche de traducción al español en Romhacking: Translations > Arcade

      Eliminar
    3. Si, se que hay algunos, pero como siempre dependerá de cada juego.

      Eliminar
  5. ammm si,el problema vendría siendo con los múltiples archivos q contiene las Roma de mame.pero bno a decir verdad las roms de mame no necesitan traducción por sus escasos diálogos,( a excepción de unos cuantos)
    por cierto esta muy bn tu tutorial ,tal vez no seria una bna idea para ti q subieras tu excelente tutoríal tambien en vídeo en youtube,mas gente lo conocería de esa forma no crees?

    ResponderEliminar
  6. Hola, muchas gracias por compartir la herramienta. Lo primero decirte que es un buen tutorial, ya que yo que no tengo ni idea de estas cosas, he conseguido traducir algunas frases y demás. Lo único es que se nota, que dejar una traducción perfecta, tiene mucho camino detrás. Por eso me gustaria pedirte una especie de pequeña lista de juegos ordenada por dificultad, para empezar a traducir cosillas.

    ResponderEliminar
    Respuestas
    1. Me alegra oir que alguien ha probado alguna cosa!
      Al tener un tamaño fijo, suelo tirar mucho de sinonimos o expresiones equivalentes...
      Mi recomendación sería buscar titulos arcade o plataformas de 8 bits, suelen ser mas sencillos.

      Eliminar
  7. una pregunta,tu herramienta para traducir,q por cierto esta muy bn ,funcionara también para traducir juegos de ordenadores clásicos como el zx spectrum,MSX,amstrad CPC etc,o de pronto para otras consolas,como la wondeswan o la NeoGeo?

    ResponderEliminar
    Respuestas
    1. Te comento, de spectrum y amstrad he hecho pruebas, y depende del juego, los tap o tzx/cdt son muy puñeteros porque a veces tienen datos propios que no cumplen el estandar y al cambiarse los juegos no cargan, aunque he tenido éxito con algunos (y el programa soporta recalculo de checksums de esos archivos), con los ficheros dsk he tenido mas suerte, no parece que haya ningun problema.
      Con la wonderswan tampoco hay problema.
      Con la NeoGeo el problema es que tienen muchos archivos, primero habria que encontrar donde están los textos y manipular un poco los bats para gestionar diferentes archivos (basicamente copiar lo que hay con otros nombres), con mame pasa igual.

      Eliminar
    2. wave, si te pones con uno de neogeo en un futuro como reto, el garou mark of the wolves es uno que me gustaria ver traducido.

      Eliminar
  8. amm excelente respuesta wave,me aclaraste varias dudas con respecto a la traduccion,y por cierto los juegos de gba son complicados para traducir? por q intente comenzar a traducir poco a poco uno y me salta varios problemas con la emulación de la ROM.

    ResponderEliminar
    Respuestas
    1. En GBA lo que te vas a encontrar es que empiezan a tener mucho texto.
      Problemas de emulacion puede dar si cambias los tamaños. 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.

      Eliminar
  9. mmm ya entiendo,tratare de nuevo con el modo insert,aunque me imagino q si hago mal algo seguira dandome problemas al traducir,además de q como dices me encontré con mucho texto y caracteres raros,creo q sera mejor intentar con roms de consolas mas retro jeje.gracias por la aclaración.

    ResponderEliminar
  10. hola wave,una pregunta mas,no puedo hacer nada cuando no queda espacio para terminar una frase o una palabra en la linea de dialogo?

    ResponderEliminar
    Respuestas
    1. Buenas, no, no se puede hacer nada con los finales de cadena por este metodo, con lo que si se puede soler jugar es con los saltos de linea.
      Hay que afilar el ingenio y a veces reescribir cosas por ganar 1 letra xD
      No sirve para todo, pero mis 240 traducciones dan fe de que se puede hacer mucho!

      Eliminar
  11. jeje si, tienes razón,hay q ingeniárselas en esto de las tradus amateur jeje

    ResponderEliminar
  12. me sorprende q lleves tantas tradus en tan poco tiempo porque esto necesita tiempo jeje

    ResponderEliminar
    Respuestas
    1. Digamos que le dedico demasiado xD
      Espero que de esto salgan muchas tradus de otras personas y poder ir relajándome...

      Eliminar
  13. yo también espero eso,entre mas traducciones como las tuyas mejor jeje.otro semco no estaría nada mal...

    ResponderEliminar
  14. pusite el tuto en el otrolado? con el videotutorial en el youtube se va a propagar mas traductores

    ResponderEliminar
    Respuestas
    1. Si, hay tuto en elotrolado, lo del videotutorial me es mas complicado.

      Eliminar
  15. a lo mejor lo hace otro el videotutorial

    ResponderEliminar
  16. Hola Wave, que tal? Ante todo enhorabuena por tu trabajo, has traducido muchísimas roms en poco tiempo (vale que en su mayoría no hayan sido RPG's con mucho texto pero has hecho más de 200 tradus :) en 2 años que se dice rápido )

    La verdad es que hacía años que no revisaba la scene del romhacking en castellano, me da que eres de la poca gente que queda activa en el mundillo de las tradus en castellano, una pena que la mayoría de los fansubs hayan desaparecido.

    Hoy me dio por rebuscar en la red ya que quería retocar una rom que en su día tradujo Lukas y encontré tu web :). Resulta que me estoy configurando un frontend multiemulador llamado launchbox al estilo del hyperspin y estoy tratando de recopilar roms bien traducidas para mi proyecto con launchbox.

    Al parecer cada vez quedan menos webs de romhacking-tradus en castellano que estén actualizadas:
    - http://www.clandlan.net/foros/topic/49203-traducciones-de-videojuegos-de-consolas/?p=528282
    - http://www.romhacking.net/ (en esta web se recopilan parches en todos los idiomas)
    - http://www.romhackhispano.org/
    - http://magno.romhackhispano.org/
    - http://tiovictor.romhackhispano.org/

    Espero que no te moleste si comparto esta info. con el resto de usuarios, así pueden ponerse al día como he hecho yo hoy


    un saludo

    ResponderEliminar
    Respuestas
    1. en eso de los multiemuladores estoy calentandome ultimamente la cabeza, para dar con uno decente para mi pc y al final di con el attrack mode y el launchbox, este ultimo para un pc mas potente porque encima que esta muy limitado porque tiene que ser premium, los juegos van a trompicones cuando los ejecuta cuando no deberia ser asi...

      Eliminar
  17. Por cierto, en las webs de sayans y de darkwizard hay un par de tutos que tambien están muy bien, los comparto por aquí por si alguien más llega hasta esta entrada de tu web de manera que esta info. le pueda resultar de interés:

    http://dwx.romhackhispano.org/documentos2.html
    http://sayans.romhackhispano.org/old/documentos/documentos.htm

    ResponderEliminar
    Respuestas
    1. Sin problemas, hay muchas tradus que se han perdido,
      yo suelo tirar de romhackiing y el listado del clandlan, aunque hay mas.

      Eliminar
  18. Amigo parabéns pelo tutorial, venho aqui dar meus agradecimentos.
    Por favor poderia me tirar uma dúvida, ao tentar extrair o texto original não é extraído, apresenta as mensagens.

    HEXTRACTOR v0.9 (c) Wave 10/11/2017
    Type -? for help. / Escribe -? para ayuda
    Extracting ascii file from "Double Dragon V - The Shadow Falls.bin"
    using table "doubledragonvtheshadowfallssmd.tbl"
    to file "doubledragonvtheshadowfallssmd.ext".
    Exception in thread "main" java.lang.reflect.InvocationTargetException
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
    at java.lang.reflect.Method.invoke(Unknown Source)
    at org.eclipse.jdt.internal.jarinjarloader.JarRsrcLoader.main(JarRsrcLoa
    der.java:58)
    Caused by: java.io.FileNotFoundException: doubledragonvtheshadowfallssmd.off (Th
    e system cannot find the file specified)
    at java.io.FileInputStream.open(Native Method)
    at java.io.FileInputStream.(Unknown Source)
    at java.util.Scanner.(Unknown Source)
    at java.util.Scanner.(Unknown Source)
    at com.wave.hextractor.FileUtils.getAsciiFile(FileUtils.java:35)
    at com.wave.hextractor.FileUtils.getCleanOffsets(FileUtils.java:361)
    at com.wave.hextractor.Utils.getOffsets(Utils.java:229)
    at com.wave.hextractor.FileUtils.extractAsciiFile(FileUtils.java:178)
    at com.wave.hextractor.Hextractor.main(Hextractor.java:160)
    ... 5 more
    Press any key to continue . . .

    O que é isso?

    ResponderEliminar
    Respuestas
    1. You have to save the offsets file as it says, please repeat 6 to 11

      Eliminar
    2. Muchas gracias por la respuesta amigo.
      Ya extrae el archivo con los offsets pero aún así del error, creo que estoy equivocando en el paso 11.
      Voy a leer de nuevo y tratar de encontrar el problema.
      Muchas gracias por la respuesta si necesitas alguna ayuda en tus proyectos, puedes avisar.

      http://www.romhacking.net.br/

      Eliminar
    3. Let me know, if you want to translate one of my projects, I can give you the mounted proyect so it only has to be translated from english.

      Eliminar
    4. Muchas gracias.
      En realidad, estaba probando el tutorial con un juego de mega drive, me pareció muy interesante.
      Estoy revisando una traducción mía que dejé parada, después de ver su traducción de Double Dragon V decidí actualizar la traducción.
      Por favor, siéntete a gusto en responder en Español mismo, soy brasileño nuestro idioma se parece y resulta más fácil de entender.

      Eliminar
    5. Ah, perfecto, tienes que guardar el archivo de off, como el nombre de la carpeta, en este caso: doubledragonvtheshadowfallssmd.off
      Dice que no lo encuentra.

      Eliminar
    6. Entendi Wave, en el caso no estaba generando el archivo off correcto estaba así ejemplo.

      Correcto
      Doubledragonvtheshadowfallssmd.off

      Mal
      Doubledragonvtheshadowfallssmd.bin.off
       
      Después de tomar "bin" funcionó, pero no genera el archivo tr_, en cuyo caso he cambiado el archivo tr_doubledragonvtheshadowfallssmd.ext a tr_doubledragonvtheshadowfallssmd.ext

      Una duda la herramienta trabaja con punteros?
      Pues si pasa el tamaño de la cadena ella advierte que es mayor y no inserta en el archivo.

      1 file(s) copied.
      EXTRACTOR v0.9 (c) Wave 10/11/2017
      Type -? for help. / Escribe -? para ayuda
      nserting hex file "doubledragonvtheshadowfallssmd.hex"
      to file "TR_Double Dragon V - The Shadow Falls.bin".
      EXTRACTOR v0.9 (c) Wave 10/11/2017
      Type -? for help. / Escribe -? para ayuda
      nserting ascii file "tr_doubledragonvtheshadowfallssmd.ext"
      using table "doubledragonvtheshadowfallssmd.tbl"
      to file "TR_Double Dragon V - The Shadow Falls.bin".
      ARNING!!! STRING TOO SMALL (0008 - 0010)!!!
      UTA VS~00~
      ARNING!!! STRING TOO SMALL (0008 - 0011)!!!
      ORNEIO~00~
      RROR!!! STRING TOO LARGE (0013 - 0012)!!!
      EMONSTRACAO~00~
      xception in thread "main" java.lang.reflect.InvocationTargetException
      at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
      at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
      at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
      at java.lang.reflect.Method.invoke(Unknown Source)
      at org.eclipse.jdt.internal.jarinjarloader.JarRsrcLoader.main(JarRsrcLoa
      er.java:58)
      aused by: java.lang.ArrayIndexOutOfBoundsException: 33
      at com.wave.hextractor.HexTable.toHex(HexTable.java:261)
      at com.wave.hextractor.FileUtils.insertAsciiAsHex(FileUtils.java:147)
      at com.wave.hextractor.Hextractor.main(Hextractor.java:125)
      ... 5 more
      EXTRACTOR v0.9 (c) Wave 10/11/2017
      Type -? for help. / Escribe -? para ayuda
      ixing Megadrive checksum for "TR_Double Dragon V - The Shadow Falls.bin".
      riginal checksum: 0x6744
      alculated checksum: 0x6744
      hecksum correct, not overwriting it.
      ress any key to continue . . .

      Eliminar
    7. El archivo tr hay que generarlo a mano, si.
      Y el .off lo suyo es grabarlo desde el editor, una vez se han eliminado rangos no validos y adaptado los validos los que hay.
      En cuanto a los textos, no, no toca punteros, hay que hacer las traducciones por sustitucion.
      Todas las mias son asi.

      Eliminar
  19. Gracias por el regreso amigo Wave, lo siento por la demora en responder.

    Entendí el funcionamiento de la herramienta, muchas gracias por las explicaciones.
    Si desea compartir con usted una herramienta que he desarrollado para dump script, basado en punteros del juego.

    Un fuerte abrazo

    ResponderEliminar
    Respuestas
    1. Bien, espero que os valga para algo pequeño.
      En cuanto a la herramienta no hace falta, me quedo con lo generico.
      Otro abrazo!

      Eliminar
  20. Pues siguiendo paso a paso, no me sale nada..y probando con varios juegos. Estaria bien ampliar un poco el tutorial y hacer el "paso a paso " con un juego concreto. Para que vayamos soltandonos sin perdernos. Una pregunta, Modificar el 4 ff..pero que se modifica? las FF? el 4? no me queda claro.. Me ocurrio algo curioso con el Mandrake de GBA, con notepad me aparecen a la vista todos los textos, pero no con el editor hexadecimal.,,

    ResponderEliminar
    Respuestas
    1. Puede que en un futuro, hay que tener en cuenta que no es para iniciarse en la traduccion de juegos, sino para quienes lo hacian de manera mas rudimentaria puedan mejorar su "produccion".
      Lo de 4 FF, con 2 parámetros que se le pasan al buscador, el numero son los caracteres que acepta "saltarse" sin que sean de palabras, el FF es el caracter hexadecimal de final de frase.

      Eliminar
    2. Pongo un ejemplo de uno de los juegos que ya tradujistes, como se podra apreciar, tras hacer la busqueda de palabra en la tabala, que si encontro y guardarla, no me aparecen los textos: http://i65.tinypic.com/2l8kioh.jpg . Lo curioso es que usando el resto de programas habituales para traducir, no hay problema. La lastima es que me gustaria hacerlo con el tuyo. Donde esta el problema?alguna posible solucion?

      Eliminar
    3. Mmm, parece un error al mostrar el texto ascii, si te fijas arriba, no deberia verse asi.
      Intenta actualizándote el java.
      Que resolucion usas?
      Dentro de poco subiré una nueva versión del programa, quizá con esa te vaya bien, es raro lo que te pasa.

      Eliminar
    4. Prueba también en una ruta sin espacios, a ver si eso está dando problemas.

      Eliminar
    5. Sino agrégame al telegram en @Sewave y lo comentamos en directo.

      Eliminar
    6. Ahora no puedo usar telegram, pero gracias por tu interes. El Java que uso es el 8. Quizas sea por windows, 7 starter en laptop. Debe de ser eso.

      Eliminar
    7. Prueba con esta version:
      http://s000.tinyupload.com/index.php?file_id=84677125947372424016
      En caso de que sea muy grande activa el modo 16 columnas/16 filas.

      Eliminar
    8. Ok, perfecto. Solucionado con el modo 16 columnas, muchisimas gracias!

      Eliminar
    9. Cualquier cosa me comentas, estaré encantado de ver más tradus con mi herramienta :)

      Eliminar