Translate

lunes, 26 de enero de 2015

Rom Translator

Este programa pretende traducir todos los ROM de NES y Otros equipos, por supuesto no lo logra, jajaja, pero de ilusiones también se vive. lo tengo muy atrasado, desde el 2011, vamos a ver si termino algo de lo que empiezo.

MANUAL
El programa puede abrir un archivo .BIN de NES, si estos archivos los abres con un HEX editor podrás ver que empiezan por la palabra NES.
Si dentro del archivo logras ver las palabras del juego, no tendrías problemas en traducirlas, claro siempre que no te pases de los tamaños de las palabras en ingles.
Si el archivo esta encriptado, no podrás ver las palabras.

Que hace el programa
Busca palabras comunes usando algunos métodos de des-encriptación.

START=JUGAR
GAME=JUEGO
PLAYER=JUGADOR
SCORE=PUNTOS
START=INICIO

Busca las palabras anteriores, según 2 métodos.
1.- Rotación de carácter: suma 1 a cada codigo de carácter de la palabra (No del ROM, es mas rápido así) y los busca en el rom, si no las encuentra suma otra vez y así hasta 256 rotaciones. Si detecta las palabras se detiene y ya lo tenemos des-encriptado.
Si no, usa el siguiente método
2.- XOR de las palabras por un numero (0- 255), para ver si están en la ROM

Por ejemplo el ROM
1943 - The Battle of Midway (U).nes
Esta encriptado y al abrirlo con el programa lo desencripta, por rotación con el codigo 0x6B o 107, esto quiere decir que rota 107 veces cada letra o mas exactamente le suma a cada codigo ASCII 107 y si el resultado es mayor de 255, resta 255.
Es de notar que una vez desencriptado, generalmente la palabra NES no se podrá ver
Se puede hacer manual cambiando manualmente el método e introduciendo el codigo a mano (no tiene mucho sentido pero se puede)
También se pueden usar otras palabras, por si las de arriba no están, (usar BUSCAR)
Si no esta encriptado, pasa a la siguiente etapa.

Luego busca palabras según un método (sin diccionario) y las trata de traducir según el diccionario preexistente o una por una a mano (las va agregando al diccionario) por lo tanto el diccionario se incrementa con cada palabra que traduzcas y con cada ROM, (aquí tengo algunos problemas, ya que al comparten las traducciones de las palabras a veces hay choques y no traduce bien)
El método de buscar palabras tampoco es buen pues encuentra muchas tonterías, un diccionario de palabras a buscar seria mejor pero cada juego cambia mucho (veré que hago)

Menú
Sencillo por ahora, de abrir grabar y opciones, En la barra superior pone
BUSCAR: aquí colocas la palabra a buscar para ayuda a la des-encriptación, normalmente no es necesaria pues Automáticamente o usando el  Botón Auto, lo hace solo, usa las palabras del diccionario. (Lista anterior).
Si lo des-encripta coloca el método y el codigo
Caracteres: Debido a que tome los caracteres de otro programa anterior (Juego de caracteres de la Color computer) se ven esos colores, esto lo tendré que cambiar a algún juego de caracteres NES (el cual no existe).
ANCHO: Quitarlo (no sirve aca)
ZOOM: Agranda o encoge las fuentes



OPCIONES:

Diccionario: 
Editor: Nombre del editor para ver el diccionario, normalmente notepad.exe, puede tener una ruta de ser necesaria.
Diccionario: Ruta del archivo de diccionario; normalmente C:\Documents and Settings\Operador\Datos de programa\RomTranslator\Diccionary.txt

Al Abrir
Des-encriptar con palabras sugeridas (automático)
Buscar textos a traducir.

Opciones al buscar textos:
Tamaño mínimo: Es el tamaño mínimo que debe tener una palabra a traducir y puede ser de 1 a 10 letras (normalmente 3). El problema es que si tratas de buscar palabras de 1 o 2 letras puede haber muchas falsas.
Espacio: Normalmente el espacio es el carácter 32 pero en muchos roms es otro código ASCII
Ver como espacio: Al estar marcado, veras el carácter elegido como un espacio verdadero

Aceptar Palabras con letras:
Tiene varias opciones a elegir, se sugiere buscar mayúsculas, sin minúsculas, sin números, sin mínimo 1 vocal, puede tener espacios repetidos y un máximo de 1 repeticiones (0=LIBRE).
Tiene un botón de predeterminados.

El sistema tratara de buscar palabras en el otro idioma (sin diccionario) y se las presenta para que luego las puedas traducir (manual), el guardara el diccionario de las que cambies y así servirán para otro ROM

El problema viene si no encuentra las palabras, habría que marcarse las y esto no esta terminado, acá es mejor en editor hexa-decimal, aunque el las marca en la parte de vista de caracteres, no camina muy bien

Al ir encontrando palabras te indica en que lugar están y su ancho en letras, una muestra de la palabra y la misma traducida o para traducir.
Al tocar una linea te la ubica en la vista de caracteres.
Las palabras las puedes traducir una a una o si ya tienes un diccionario, el solo lo hará.

Para traducir cambie la segunda copia de la palabra, el no permitirá una palabra mas larga que la original y rellenara de espacios si es mas corta.

Al grabar, se debe encriptar de nuevo, a menos que lo desee grabar des-encriptado para usar algún otro editor

GENERAR PARCHES AUTOMÁTICAMENTE
En el menú de herramientas hay una opción de parches automáticos. (por mejorar)
- Trabaja un directorio completo.
Esta función crea archivos de parches .ISP a partir de los ROMS Originales y los ROMS modificados, por comparación, Generando los respectivos archivos de Parche (*.ISP), Los ROMS originales se reconocen por no tener corchetes [ ] y los modificados si.
- Falta el trabajo contrario, Parchear todo el directorio.
- Falta Parcheo individual y lo contrario


Al colocarle un directorio con archivos de ROM NES, el buscara los originales (sin corchetes), y los comparara con los modificados (mismo nombre con algún adicional y corchetes), también creara los archivos IPS de parches, que se pueden usar en emuladores como Nestopia que acepta el rom original + los archivos IPS, sin necesidad de los archivos (copias parcheadas) ocupando menos espacio (esto ya no es muy necesario, porque realmente no son grandes pero esa es la idea)

El formato de los IPS esta acá romhacking IPS format.txt Que en resumen es
5 bytes Palabra 'PATCH'
3 bytes Posición a cambiar (en formato little-endian) Menos significativo primero
2 Bytes Tamaño a cambiar (en formato little-endian) Menos significativo primero
Si son ceros, el Byte siguiente es un byte a repetir y el byte siguiente, la cantidad de veces.

RomTraslator V0.81Pack.zip
RomTranlator V0.80.zip

Foro en español http://www.retrowiki.es/fororw/viewtopic.php?f=768&t=31773


No hay comentarios:

Publicar un comentario