TRADUCCIÓN DE LOS JUEGOS CREADOS EN AGS 3.x

Transcripción

TRADUCCIÓN DE LOS JUEGOS CREADOS EN AGS 3.x
TRADUCCIÓN DE LOS JUEGOS
CREADOS EN AGS 3.x
Índice
1. Extracción del texto ..................................... 2
i.
ii.
Por medio de otra traducción................................ 2
Por medio del ejecutable ...................................... 4
2. Modificación del texto................................ 16
3. Compilación del texto traducido............... 19
4. Fuentes........................................................ 20
5. Extracción y compilación de imágenes ... 34
6. Modificación de una “room” y posterior
compilación................................................. 40
7. Creación del parche ................................... 51
8. Modificación hexadecimal ......................... 52
9. Notas............................................................ 55
10. Enlaces de las aplicaciones usadas......... 56
1
TRADUCCIÓN DE LOS JUEGOS CREADOS EN AGS 3.x
1. Extracción del texto
1. Extracción del texto
Por medio de otra traducción
Para realizar este proceso necesitamos un archivo con extensión “tra” que
previamente tendremos en nuestro poder. Ya sea porque exista una
traducción oficial u amateur. Este método es el más sencillo, ya que, como
veremos más adelante, no tendremos que usar el siguiente método, que es
el más engorroso.
Programas necesarios:
 Agslrelease (enlace de descarga al final del manual)
Cómo se hace:
Como ejemplo voy a poner la aventura “5 Days a Stranger”, concretamente
la versión que salió con varias traducciones. Ya sé que no es de la versión
3.x, pero para el ejemplo nos vale. Tenemos los siguientes archivos:
Copiamos un archivo con extensión “tra”, el que queramos, a la carpeta
donde tengamos la herramienta “agslrelease”.
2
TRADUCCIÓN DE LOS JUEGOS CREADOS EN AGS 3.x
1. Extracción del texto
Abrimos una consola de comandos desde “ejecutar” del menú Incio de
Windows. Nos aseguramos que estamos en la carpeta de la herramienta y
ejecutamos en nuestro caso:
“agslrelease –decompile italian.tra”
Nos habrá creado un archivo, en nuestro caso, “italian.trs” con el texto en
inglés (original) e italiano.
3
TRADUCCIÓN DE LOS JUEGOS CREADOS EN AGS 3.x
1. Extracción del texto
En el título 2 “Modificación del texto” explico varios métodos para
modificar este archivo, quitar todo el texto del segundo idioma y tenerlo
listo para su compilación.
Pasos a realizar (resumen):
1) Abrimos una consola de comandos, “cmd”.
2) Ejecutamos “agslrealease –decompile ‘archivo.tra’”.
3) Creado “archivo.trs” listo para traducir.
Por medio del ejecutable
Como veréis más adelante este paso es más complejo que el anterior y
quizá nos dejemos algún texto sin traducir. Es muy importante la labor del
testeo para que a la hora de publicar el parche esté 100% traducido.
Existen dos herramientas para conseguir extraer el texto. En vuestra
elección está cual usar. Yo voy a usar las dos en el ejemplo y
compararemos cual ha extraído más texto. No todo lo extraído es válido,
por lo que tendremos que hacer limpieza manualmente.
Programas necesarios:
 Gobread (enlace de descarga al final del manual)
 TRA Creator (enlace de descarga al final del manual)
 TRS_adder (enlace de descarga al final del manual)
 Exestringz (enlace de descarga al final del manual)
 Notepad ++ (enlace de descarga al final del manual)
Cómo se hace:
Para el ejemplo voy a usar la aventura recientemente publicada en el
SummerBatch “Nancy The Happy Whore” ya que existe una traducción
oficial en latín y en alemán. Extraeremos el texto de las versiones oficiales
usando el paso anteriormente explicado y lo compararemos con el extraído
usando el nuevo método.
Antes voy a explicaros una cosa importante. ¿Cómo saber que versión de
AGS usa un juego?
4
TRADUCCIÓN DE LOS JUEGOS CREADOS EN AGS 3.x
1. Extracción del texto
Aquí vemos que la versión es 3.2.1.1115. A fecha de hoy esta es la última
versión oficial publicada.
Pues bien, una vez asegurados que es una versión 3.x, paso a la
explicación.
Primero vamos a usar la herramienta “TRA Creator” de los creadores
rusos. Nos aparecerá una ventana como se muestra más abajo.
Seleccionamos el ejecutable del juego “NancyATPPS.exe” y luego
cliqueamos en el primer botón.
5
TRADUCCIÓN DE LOS JUEGOS CREADOS EN AGS 3.x
1. Extracción del texto
El título de la ventana cambiará, indicando que se está procesando la
información. Una vez terminado nos aparecerá en nuestra carpeta de
trabajo el archivo “NancyATPPS.trs”. Que fácil, ¿no?. Pues no, todavía
nos falta más texto por extraer. Frases de los scripts globales y los plugins,
así como los nombres de los hotspots y los objetos.
Ahora vamos a usar otra herramienta, el turno es para “exestringz” de
Luigi. Ejecutamos desde la línea de comandos:
“exestringz –b –q 1 NancyATPPS.exe texto.txt”
Tendremos un archivo “texto.txt” con el texto extraído. Si lo editamos
veremos que tiene mucha basura incluida. Para purgar vendría bien que
supierais usar un poco AGS. Para los que no sepáis os daré unos pasos a
seguir que os servirá como guía, pero puede que aún así nos saltemos
alguna palabra.
AGS cuando ejecuta los scripts usa unos nombres para cada personaje,
objeto, hotspot (puntos calientes), GUI (interfaz), Button, inventario,
música, etc. Os paso a enumerar como los nombra:
 Personajes: cNombre_del_personaje
o Ejemplo: cNancy
 Objetos: oNombre_del_objeto
o Ejemplo: cDoor
 Hotspots: hNombre_del_hotspot
o Ejemplo: hPhone
 GUIs: gNombre_GUI
o Ejemplo: gCard
 Button: ButtonNombre_del_botón
o Ejemplo: ButtonMainLoad
 Inventario: iNombre_del_objeto_del_inventario
o Ejemplo: iCoins
 Música: aNombre_del_archivo_música
6
TRADUCCIÓN DE LOS JUEGOS CREADOS EN AGS 3.x
1. Extracción del texto
o Ejemplo: aSound_CreakFall
Pues bien, estos nombres no se deben traducir.
También aparecen las instrucciones que ejecuta el engine (motor) del
juego. No las voy a enumerar porque creo que son más que evidentes
cuales son. Por ejemplo:
 ShakeScreen
 Wait
 Dialog::SetOptionState^2
 AudioClip::Play^2
Pasemos a la acción.
Buscamos la primera cadena “.asc”. En nuestro caso será
“__NEWSCRIPTSTART_GlobalScript.asc”.
Pues bien, como vemos en la captura las cadenas de texto que están debajo
son las que nos interesa. Os recomiendo que copiéis en otro archivo de
texto plano esas cadenas, así no destruimos el archivo creado. Recordad
que no nos interesa los nombres de los scripts. El texto se encuentra por
7
TRADUCCIÓN DE LOS JUEGOS CREADOS EN AGS 3.x
1. Extracción del texto
bloques, es decir, entre el primer nombre del script, en nuestro caso,
“GlobalScript.asc” y la siguiente búsqueda de la cadena de texto “.asc”
que vuelve a llamarse “GlobalScript.asc” está todo el texto que usa ese
script.
Como veis en la captura, en la parte superior están esos nombres que usan
los scripts (iBurningMagazine_UseInv$0, ButtonConDefault_OnClick$2,
iViagra_UseInv$0, cNancy_Talk$0, etc.). Si seguimos hacia arriba
llegaremos hasta la última línea de texto interesante del script
“GlobalScript.asc”, que es “This is neither the time or place for colonic
irrigation.”.
Para resumir, debemos copiar desde “SAVE NAME” hasta “This is neither
the time or place for colonic irrigation.”
8
TRADUCCIÓN DE LOS JUEGOS CREADOS EN AGS 3.x
1. Extracción del texto
Hay que hacer un inciso, y hacer saber que depende que scripts se traducen
textos de forma diferente.




DialogScripts.asc  Diálogos.
GlobalVariables.asc  No se traduce nada.
@OVERHOTSPOT@  Variable usada por el sistema.
Los scripts de las “room” están estructurada de la siguiente manera:
o Hotspot
o Texto
o Objetos
El texto de los scripts de las rooms no nos hace falta copiarlo porque ya lo
ha hecho la anterior herramienta.
Texto extraído con la herramienta “exestringz”
9
TRADUCCIÓN DE LOS JUEGOS CREADOS EN AGS 3.x
1. Extracción del texto
Texto extraído con la herramienta “TRA Creator”
Con esto ya tenemos casi todo el texto, ahora vamos a sacar los nombres de
los objetos y los hotspot.
Buscamos la cadena “No hotspot” y copiamos las líneas de texto que
vienen debajo hasta la primera que aparezca “Hotspot nºhotspot”. En
nuestro caso “Hotspot 7”.
Para el caso de los objetos debemos copiar el texto que viene debajo de
cada línea que termina el script de una room. Vayamos con el ejemplo.
10
TRADUCCIÓN DE LOS JUEGOS CREADOS EN AGS 3.x
1. Extracción del texto
Buscamos la cadena texto “.asc” hasta que topemos con
“__NEWSCRIPTSTART_room7.asc”, buscamos el final del script que será
“room7.asc”. Copiamos las líneas que nos interesa:
Ahora ya tenemos todo el texto de los plugins, de las rooms, los hotspots y
los objetos. Tan sólo nos falta el inventario y el texto de las interfaces.
Para el inventario buscamos la cadena “Adventure Creator Game File
v2*” y después de una clave entre llaves está lo que nos interesa. Nuestro
ejemplo:
11
TRADUCCIÓN DE LOS JUEGOS CREADOS EN AGS 3.x
1. Extracción del texto
Ahora le toca al interface. Esta parte es más engorrosa y hay que ser más
intuitivo para extraer el texto. No se os olvide hacer un buen testeo.
Buscamos la primera cadena “No hotspot” y subimos hacia arriba hasta
que topemos con algún script. En nuestro ejemplo:
Como veis está el nombre de los personajes, diversos texto usado en la
aventura y etiquetas usadas en los diferentes interfaces.
Por alguna razón, no se extraen los diálogos de los juegos. Seguramente si
afinamos más con la herramienta “exestringz” podremos conseguirlo. Yo
lo que hago es extraer los recursos del juego con “Gobread”:
“Gobread NancyATPPS.exe”
Con esto tendremos en la misma carpeta varios archivos. Usamos de nuevo
la herramienta “exestringz” sobre el fichero “game28.dta”:
“exestringz –b –q 1 game28.dta dialogos.txt”
Una vez terminado, suponiendo que tenemos todo el texto, hay que editar
lo copiado añadiendo una línea en blanco debajo. Yo uso Notepad++ que lo
hace muy fácil.
Activamos la siguiente opción:
12
TRADUCCIÓN DE LOS JUEGOS CREADOS EN AGS 3.x
1. Extracción del texto
Nos aparecerán unos códigos que indican el final de cada línea.
Reemplazamos esos finales de líneas por una nueva línea en blanco debajo
de cada una. Para eso hacemos lo siguiente:
En Buscar->Reemplazar nos aparecerá una ventana y ponemos los valores
siguientes:
Reemplazamos todos. Y tendremos formateado el texto de la forma
siguiente:
13
TRADUCCIÓN DE LOS JUEGOS CREADOS EN AGS 3.x
1. Extracción del texto
Guardamos los cambios. Y ahora vamos a añadir al primer archivo
“NancyATPPS.trs” el contenido de “texto_nacy_limpio.txt”. Para ello
vamos a usar otra herramienta de nuestros amigos rusos, “TRS_adder”.
Antes tenemos que renombrar “NancyATPPS.trs” por “1.trs” y
“texto_nacy_limpio.txt” por “2.trs”. Ejecutamos la herramienta.
Como se puede ver lo único que entendemos es “Go”. Así que a darle sin
miedo. El título de la ventana cambiará a “Completed.”. Se habrá creado el
archivo “1_added.trs”. Si echáis un vistazo veréis que las líneas repetidas
ya no aparecen, y es que AGS no necesita esas cadenas para traducirlas.
14
TRADUCCIÓN DE LOS JUEGOS CREADOS EN AGS 3.x
1. Extracción del texto
¡POR FIN! Lo hemos conseguido. Ya tenemos el texto listo para traducir.
Si tras el testeo encontramos algo sin traducir, basta con que añadas al final
de todo el texto esa línea y su traducción.
Pasos a realizar (resumen):
1)
2)
3)
4)
5)
Ejecutamos “TRA Creator”
Ejecutamos “exestringz”
Buscamos texto
Formateamos el texto
Ejecutamos “TRS_adder”
15
TRADUCCIÓN DE LOS JUEGOS CREADOS EN AGS 3.x
2. Modificación del texto
2. Modificación del texto
Esta parte le corresponde a los traductores realizar una buena tarea de
traducción. Después de todo el trabajo de extracción, más vale que sea así.

Existen dos herramientas específicas para ayudarnos a traducir todo el
texto.
Programas necesarios:
 AGS Translation Editor (enlace de descarga al final del manual)
 AGSLinguist (enlace de descarga al final del manual)
 Sed (enlace de descarga al final del manual)
 Notepad++
Cómo se hace:
Si tenéis el archivo “.trs” formateado y listo para traducir recomiendo que
uséis la primera herramienta ya que está en constante desarrollo, yo he
usado la versión 1.1.1. y puede que ahora ya vaya por otra versión. Es muy
intuitiva y fácil de usar. Respecto a la otra, decir que lleva sin actualizarse
desde 2007 y pasar de línea a línea es un poco tedioso (Control+Intro).
En caso de que vengamos de un caso parecido al punto 1.1 de otra
traducción, en nuestro ejemplo, con el archivo “italian.trs”, usaremos Sed
para la versión Windows. Según nuestra captura nos interesa borrar las
líneas pares a partir de la 14:
16
TRADUCCIÓN DE LOS JUEGOS CREADOS EN AGS 3.x
2. Modificación del texto
Así que usaremos el siguiente comando:
“sed 14~2d italian.trs > castellano.trs”
Nos quedaría el siguiente texto:
Tan solo tenemos el texto en inglés, que es lo que nos interesa. Usando el
método de las páginas 13 y 14 con el Notepad++ para añadir una línea
blanca después de cada una, tendremos el texto listo para traducir.
17
TRADUCCIÓN DE LOS JUEGOS CREADOS EN AGS 3.x
2. Modificación del texto
Pasos a realizar (resúmen):
1) Usar la herramienta “Sed” para eliminar líneas innecesarias
2) Reformatear el texto con “Notepad++” para añadir las líneas en
blanco debajo de cada texto en inglés.
3) Usar la herramienta para traducir.
18
TRADUCCIÓN DE LOS JUEGOS CREADOS EN AGS 3.x
3. Compilación del texto
3. Compilación del texto traducido
Que ganas de probar y testear los resultados. Ya queda menos.
Programas necesarios:
 Agslrelease
Cómo se hace:
En la misma carpeta que estamos trabajando debemos crear otra carpeta
llamada “Compiled” y ejecutamos siguiendo nuestro ejemplo:
“agslrelease NancyATPPS.trs”
Nos habrá creado en la carpeta “Compiled” el archivo “1_added.tra”. Este
es el archivo con la traducción compilada. 
19
TRADUCCIÓN DE LOS JUEGOS CREADOS EN AGS 3.x
4. Fuentes
4. Fuentes
Casi siempre las aventuras creadas con este motor usan unas fuentes
especiales que sólo tienen 128 caracteres debido al rendimiento, con lo que
se omite el uso de caracteres extendidos (áéíóúÁÉÍÓÚñÑ¡¿). Esto era de
entender en máquinas antiguas, pero en la actualidad no es necesario. Para
saber si el juego nos va a detectar nuestros caracteres os aconsejo que
hagáis una prueba rápida, y sustituyáis una línea del principio del juego por
la cadena escrita más arriba. Existe un “pero”, y es que el juego puede usar
diferentes fuentes para cada caso. Es decir, para el texto de fondo use una
fuente y otro cuando los personajes hablen, e incluso se puede dar algún
caso más.
Si no tenéis problemas con los caracteres podéis omitir este punto. Si no es
vuestro caso, aquí os explicaré como conseguirlo.
Me voy al ejemplo con “Gemini Rue” el cual me dio muchos quebraderos
de cabeza en su día.
Programas necesarios:
 Gobread
 Fontcreator u otro similar.
 Radiant FontEdit
Cómo se hace:
Necesitamos extraer los recursos del juego, para ello vamos a usar
“Gobread” del autor asmxtx, y en una consola de comandos escribimos:
“gobread Gemini Rue.exe”
Nos empezará a extraer, en la misma carpeta donde nos encontremos, todos
los recursos, entre ellos las fuentes que necesitamos. En nuestro caso se usa
la fuente gratuita Munro en “agsfnt5.fnt” y “agsfnt6.fnt”.
20
TRADUCCIÓN DE LOS JUEGOS CREADOS EN AGS 3.x
4. Fuentes
Si tuviésemos lista la traducción al español y no hubiéramos editado las
fuentes, en el juego se presentaría el siguiente error:
Pues bien, vamos a editar la fuente. Cualquiera de las dos nos vale, porque
son iguales, tan sólo cambia el nombre. Usaremos por ejemplo
“agsfnt5.fnt”.
Abrimos la herramienta “FontCreator” y editamos la fuente. Si echamos
un vistazo, veremos que no se encuentran los caracteres españoles. Así que
los tendremos que añadir nosotros.
21
TRADUCCIÓN DE LOS JUEGOS CREADOS EN AGS 3.x
4. Fuentes
Añadimos una letra nueva.
Pinchamos en propiedades.
22
TRADUCCIÓN DE LOS JUEGOS CREADOS EN AGS 3.x
4. Fuentes
En esta ventana seleccionamos la letra minúscula “a” con acento y damos
a OK.
Tendremos la casilla vacía, pero con el título cambiado a “aacute”. Ahora
seleccionamos la letra “a” y copiamos.
23
TRADUCCIÓN DE LOS JUEGOS CREADOS EN AGS 3.x
4. Fuentes
Seleccionamos nuestra casilla creada y pegamos.
Ya tenemos una copia de la letra, ahora le tenemos que añadir una tilde.
Pinchamos dos veces sobre la casilla y se nos abrirá una ventana para editar
el dibujo. Añadimos un rectángulo y dibujamos uno pequeño.
24
TRADUCCIÓN DE LOS JUEGOS CREADOS EN AGS 3.x
4. Fuentes
Pinchamos sobre el cuadro hasta que la selección cambie como se muestra
en la captura y giramos.
Salimos del editor, y si comprobamos pulsando “F5”, nos saldrá una
ventana en la que podemos escribir y saber si todo está saliendo bien.
Escribimos “á”.
25
TRADUCCIÓN DE LOS JUEGOS CREADOS EN AGS 3.x
4. Fuentes
Vemos que nos sale una interrogación, eso es porque no hemos hecho algo
bien. Volvemos a darle a propiedades a nuestro nuevo carácter y nos vamos
a la siguiente pestaña.
Pinchamos en “Select...” y seleccionamos tal se muestra en la captura.
26
TRADUCCIÓN DE LOS JUEGOS CREADOS EN AGS 3.x
4. Fuentes
Pulsamos “OK” y volvemos a probar pulsando “F5”.
Ahora sí que nos sale. Pues a cambiarlas todas y a probar la traducción.
27
TRADUCCIÓN DE LOS JUEGOS CREADOS EN AGS 3.x
4. Fuentes
¿PERO ESTO QUÉ ES?
¿Qué ha pasado? Me cago en todo lo que se menea. ¿Qué ha fallado?
Tranquilo, tengo la respuesta. Parece ser que el juego ha detectado algún
cambio en la fuente y ha usado por defecto la “agsfnt0.wfn” que sólo
soporta 128 caracteres y no aparecen los caracteres extendidos. ¿Entonces?
Pues bien el cambio que detecta es si supera el tamaño en bytes de la fuente
original. Para que funcione hay que volver a cargar la fuente modificada
con “FontCreator” y eliminar los caracteres para Macintosh y Unicode.
Quizá de fallos si se juega en otra plataforma, pero no lo he probado.
Pinchamos en “Format->Platform Manager”. Y eliminamos las dos tablas
“Macintosh Roman” y “Unicode 2.0 and onwards, BMP”.
28
TRADUCCIÓN DE LOS JUEGOS CREADOS EN AGS 3.x
4. Fuentes
Ahora nos debería quedar un peso de unos 9 Kbs. Y si probamos vemos
que ya funciona todo como queremos.
Ahora le toca el turno si fuera el caso de modificar una fuente propia del
motor AGS con extensión “wfn”. Usaremos de prueba el juego que usamos
al principio del tutorial “Nancy The Happy Whore”. Si extraemos los
recursos del juego vemos que no existen fuentes truetype, tan sólo las
propias del engine.
Para ver lo que ocurre si usamos los caracteres españoles, hacemos una
prueba. Por ejemplo, con la traducción al latín previamente extraída con
“agslrelease” vamos a buscar la cadena de texto “Quit” y debajo vamos a
poner los caracteres “áéíóúñ¡¿” , corremos el juego y vemos que pasa:
29
TRADUCCIÓN DE LOS JUEGOS CREADOS EN AGS 3.x
4. Fuentes
En vez de mostrar los caracteres españoles, como no los reconoce nos lo
llena con los símbolos de interrogación. Para que aparezcan, vamos a hacer
un truco muy habitual en el mundillo de la traducción.
Ejecutamos la herramienta “Radiant FontEdit” y tenemos varias fuentes.
En nuestro caso nos interesa “AGSFNT0.wfn”. La abrimos y se nos
presenta esto:
Ahí hay caracteres que no se usan en el juego y para saber cuáles son
debemos hacer una búsqueda con un editor de texto.
30
TRADUCCIÓN DE LOS JUEGOS CREADOS EN AGS 3.x
4. Fuentes
Yo he encontrado estas: “\"#$+=@^”. Puede que haya alguna más, pero
con estas bastan. Ahora editamos cada carácter con cada letra española.
Pinchamos en la letra “a”, “Copy” y luego “Letter”.
Pinchamos en el carácter “\” y luego en “Paste”.
Tendremos una copia de la letra “a”, le añadimos el acento.
31
TRADUCCIÓN DE LOS JUEGOS CREADOS EN AGS 3.x
4. Fuentes
Y así con todas las letras, hasta que nos quede así.
Hacemos una prueba para ver que funciona correctamente:
Para el paso final, hay que hacer una búsqueda en nuestro texto traducido
de cada letra “áéíóúñ¡¿” y lo sustituimos por su equivalencia de nuestra
fuente. Así si tenemos una frase del tipo “¿Qué nombre tiene ese niño?” lo
escribimos así “^Qu" nombre tiene ese ni=o?”.
32
TRADUCCIÓN DE LOS JUEGOS CREADOS EN AGS 3.x
4. Fuentes
Pasos a realizar (resúmen):
1) Comprobar con la cadena de texto “áéíóúñü¡¿” si se muestra
correctamente en el juego.
2) Si no se cumple, usar “gobread” para extraer las fuentes.
3) Editar las fuentes ttf con “Fontcreator” o similar y wfn con “Radian
FontEdit”.
33
TRADUCCIÓN DE LOS JUEGOS CREADOS EN AGS 3.x
5. Extracción y compilación de imágenes
5. Extracción y compilación de imágenes
En algunas ocasiones existen imágenes con texto que hay que traducir para
darle un toque más profesional a la traducción, o por necesidades del juego.
Tal es el caso de la traducción que llevé a cabo con Asperet (GuiasPat) que
tuvimos que editar casi una centena de imágenes.
Programas necesarios:
 AGS 3.2.1
 AGS 2.72
 Spr_extractor_by_Legato
Cómo se hace:
Ejecutamos “Spr_extractor_by_Legato” en la misma carpeta donde
tengamos el archivo “acsprset.spr”, extraído previamente con “Gobread”.
Nos extraerá todos los gráficos que usa la aventura en formato “bmp”.
Buscamos la que necesitemos y editamos grabando con el mismo nombre.
Por último abrimos AGS 3.2.1, y con un nuevo juego que debemos crear,
importamos todos los sprites extraídos incluyendo el modificado.
34
TRADUCCIÓN DE LOS JUEGOS CREADOS EN AGS 3.x
5. Extracción y compilación de imágenes
Seleccionamos todos los sprites a importar.
Con eso nos habrá creado en la carpeta de trabajo los nuevos archivos
“acsprset.spr” y “sprindex.dat”.
Se nos puede presentar un nuevo problema. Con el ejemplo que llevo a
cabo en este tutorial me he topado con él. Al extraer todas las imágenes,
resulta que no puedo ver ninguna. Solucionado con la nueva versión.
35
TRADUCCIÓN DE LOS JUEGOS CREADOS EN AGS 3.x
5. Extracción y compilación de imágenes
He encontrado una solución que paso a explicar.
Abrimos AGS 2.72 y creamos un juego nuevo.
En la carpeta “Sprite Manager” creamos subcarpetas debajo de “Main”.
Hay que tener en cuenta que cada carpeta tiene un límite de 200 sprites. Así
que en nuestro ejemplo debemos crear 5 carpetas. Y luego importamos
múltiples sprites.
Dejamos la siguiente configuración:
36
TRADUCCIÓN DE LOS JUEGOS CREADOS EN AGS 3.x
5. Extracción y compilación de imágenes
Así hasta que tengamos todos los sprites en nuestro proyecto. Seguimos
adelante y salvamos el juego.
Copiamos el archivo “acsprset.spr” y “sprindex.dat” del juego “Nancy
and the Perfidious Petrol Station” en la carpeta del nuevo juego creado con
AGS 2.72. Luego ejecutamos AGS 3.2.1 y abrimos nuestro proyecto.
37
TRADUCCIÓN DE LOS JUEGOS CREADOS EN AGS 3.x
5. Extracción y compilación de imágenes
Empezará a transformar la versión 2.72 a la nueva. Y ya deberíamos de ver
nuestros sprites.
38
TRADUCCIÓN DE LOS JUEGOS CREADOS EN AGS 3.x
5. Extracción y compilación de imágenes
Ahora exportamos el que nos interese para editar y luego lo volvemos a
insertar ya modificado.
Sólo nos queda salvar los cambios y ya tenemos los nuevos archivos con
los sprites cambiados.
Pasos a realizar (resúmen):
1) Usar “spr_extractor” para extraer los sprites.
2) Modificar las imágenes necesarias.
3) Abrir “AGS 3.2.1” e importar todos los sprites (modificados y no
modificados).
4) Los archivos con todos los sprites (incluidos los modificados) son
“acsprset.spr” y “sprindex.dat”.
39
TRADUCCIÓN DE LOS JUEGOS CREADOS EN AGS 3.x
6. Modificación y compilación de una “room”
6. Modificación y compilación de una “room”
Hay veces que existe un “background” o fondo que está en los recursos de
las “room” del juego. Vamos a usar el ejemplo de “Gemini Rue” que tuve
que modificar en su momento para que funcionara el plano de ventilación.
Programas necesarios:
 Viewer by Legato
 Gobread
 AGS 3.2.1
 HxD Editor Hexadecimal
 TRA Creator
Cómo se hace:
Aunque no nos hace realmente falta, sí que quiero mostraros esta
herramienta de nuestro amigo ruso “Legato”. Hablo de “Viewer by
Legato”. Antes debemos tener extraído todos los recursos con “Gobread”.
40
TRADUCCIÓN DE LOS JUEGOS CREADOS EN AGS 3.x
6. Modificación y compilación de una “room”
Como veis, la habitación (room) que necesitamos para modificar es
“room72.crm”.
Bien vayamos a extraer la imagen para modificarla. Abrimos AGS 3.2.1.,
abrimos nuestro proyecto “TUTORIAL_ AGS3” y luego cargamos esa
“room”.
41
TRADUCCIÓN DE LOS JUEGOS CREADOS EN AGS 3.x
6. Modificación y compilación de una “room”
Seleccionamos la room que nos interesa (room72.crm). Y pinchamos en
“Export”.
Guardamos la imagen, le damos el nombre y el formato que queramos. Yo
la he grabado como “room72.bmp”. Hacemos las modificaciones que haya
que hacerle. Y luego pinchamos en “Change” para seleccionar la nueva
imagen.
42
TRADUCCIÓN DE LOS JUEGOS CREADOS EN AGS 3.x
6. Modificación y compilación de una “room”
Guardamos la habitación (room).
En nuestra carpeta del proyecto tenemos la room modificada. Pero todavía
no está completa. Falta cambiar la llave (key) del juego y añadir el script
para que funcione correctamente. Para ello vamos a editar
hexadecimalmente esta room.
43
TRADUCCIÓN DE LOS JUEGOS CREADOS EN AGS 3.x
6. Modificación y compilación de una “room”
Ejecutamos “TRA Creator” , seleccionamos el ejecutable de “Gemini
Rue”. Pinchamos en el siguiente botón:
Nos extraerá la llave (key) del juego en hexadecimal. Nuestro caso
84668800h.
Ejecutamos “HxD” y abrimos la habitación modificada“room72.crm” y la
original, que en nuestro caso la he llamado, para que sea más fácil
identificar, “room72_orig.crm”. Tendremos dos pestañas con los dos
archivos abiertos. Ahora buscamos en la original la llave (key)
hexadecimal.
Daremos con ella.
44
TRADUCCIÓN DE LOS JUEGOS CREADOS EN AGS 3.x
6. Modificación y compilación de una “room”
Apuntamos la posición, la necesitaremos más adelante, B2Eh.
Continuamos con la otra pestaña donde está abierta la room modificada.
Vamos a la posición B2Eh.
Y allí tenemos la llave (key) de nuestro proyecto.
45
TRADUCCIÓN DE LOS JUEGOS CREADOS EN AGS 3.x
6. Modificación y compilación de una “room”
Sustituimos los valores hexadecimales por los originales. Quedaría así.
46
TRADUCCIÓN DE LOS JUEGOS CREADOS EN AGS 3.x
6. Modificación y compilación de una “room”
Ahora nos falta añadir el script para que funcione correctamente.
Esta parte es nueva, incluso para nuestros amigos los rusos que, al parecer,
intuyen el script y tratan de hacer funcionar la habitación.
Seguimos usando “HxD” y en “room_orig.crm” buscamos la cadena de
texto “SCOMY” desde el principio.
47
TRADUCCIÓN DE LOS JUEGOS CREADOS EN AGS 3.x
6. Modificación y compilación de una “room”
Nos vamos hasta el valor hexadecimal justo después del paréntesis que se
encuentra antes de la cadena de texto.
Apuntamos la posición y nos vamos al final del archivo. Allí
seleccionamos un bloque de bytes desde el menú Edición -> Selección de
bloque. Pegamos en el campo de posición inicial el valor de antes.
Tendremos seleccionado un bloque con longitud 13BBh. Copiamos el
bloque. Nos vamos a la pestaña de “room72.crm”, buscamos de nuevo la
48
TRADUCCIÓN DE LOS JUEGOS CREADOS EN AGS 3.x
6. Modificación y compilación de una “room”
cadena “SCOMY” y, al igual que con la otra room, desde el valor después
del paréntesis pegamos escribiendo.
Nos preguntará si deseamos continuar y le decimos que sí. Con esto ya está
nuestra habitación (room) modificada con los textos traducidos y
funcionando el script original.
49
TRADUCCIÓN DE LOS JUEGOS CREADOS EN AGS 3.x
6. Modificación y compilación de una “room”
Pasos a realizar (resúmen):
1)
2)
3)
4)
5)
6)
7)
8)
9)
10)
Usar “gobread” para extraer las habitaciones (room).
Visionar las room con “viewer_by_legato”.
Abrir “AGS 3.2.1.” con un nuevo proyecto.
Importar room.
Exportar imagen de fondo de la room.
Modificar imagen de fondo.
Importar imagen de fondo de la room.
Guardar habitación (“Save Room”).
Usar “TRA Creator” para saber la llave (key).
Editar hexadecimalmente la nueva room para introducir la key y el
script.
50
TRADUCCIÓN DE LOS JUEGOS CREADOS EN AGS 3.x
7. Creación del parche
7. Creación del parche
Pues ya tenemos todos los archivos necesarios para crear un parche y poder
disfrutar de la aventura en “completo” castellano. Vuelvo a recordar la
importancia del testeo porque siempre suele haber fallos.
Todos los archivos que hemos creados/modificados tan sólo hace falta
meterlos en la misma carpeta donde se encuentre el ejecutable del juego.
Y para crear el parche, existen varios programas, algunos gratuitos.







NSIS (Nullsoft Scriptable Install System)
Inno Setup
ClickTeam Instant Creator
PatchMaker
WinRAR
IPS2Exe
IExpress
51
TRADUCCIÓN DE LOS JUEGOS CREADOS EN AGS 3.x
8. Modificación Hexadecimal
8. Modificación Hexadecimal
Explicar cómo se edita hexadecimalmente. Sin superar el número de
caracteres o rellenándolos con 00h en casos que no lleguemos.
Esta parte ya está documentada en algunos tutoriales que circulan por
internet. Yo daré una breve explicación con las nociones más básicas.
Programas necesarios:
 HxD
Cómo se hace:
Abrimos el archivo que queremos editar con nuestra herramienta. Hacemos
una búsqueda de la cadena de texto que queremos traducir.
Como podemos ver, la cadena exacta que nos interesa es “Medical Station”
con longitud Fh, es decir, 16 en decimal.
52
TRADUCCIÓN DE LOS JUEGOS CREADOS EN AGS 3.x
8. Modificación Hexadecimal
Para modificarla, no podemos pasarnos de esta longitud. Yo la sustituiré
por “Estación Médica” que es justo los 16 caracteres de longitud máximo.
53
TRADUCCIÓN DE LOS JUEGOS CREADOS EN AGS 3.x
8. Modificación Hexadecimal
Como podéis ver, antes y después de la cadena de texto está el valor 00h.
Esto es así normalmente porque ese valor indica el final de cada cadena y
es obligatorio, si no el juego falla.
Ahora vayamos a sustituir “Medical” por “Médico” y comprobamos que la
última cadena tiene un carácter menos. Podemos añadir un espacio al final
o sustituir su valor hexadecimal por 00h.
Ya sólo es cuestión de probar qué cadenas de texto no se traducen y
buscarlas hexadecimalmente.
54
TRADUCCIÓN DE LOS JUEGOS CREADOS EN AGS 3.x
9. Notas
9. Notas
 Las partidas guardadas antes de la traducción del juego, por
norma general, no funcionan correctamente. Dos
posibilidades, o se juega desde el principio o se edita
hexadecimalmente las partidas. Un ejemplo de ello fue el
parche que publiqué para las partidas de Gemini Rue.
 Hay veces que tenemos todo traducido y en el juego
aparece texto sin traducir o hay problemas de
funcionamiento. Esto puede ser por el uso de plugins que
usen comandos de operaciones con cadenas de texto como
“String functions” o “Overlay functions and properties”
(véase la ayuda de AGS 3.2.1). En este caso sólo nos queda
editarlo hexadecimalmente o bien, dejarlo tal cual. 
 Cuando hacemos uso de la herramienta “agslrelease”, ésta
crea un archivo “game.agf” con la key (llave) del juego en
decimal.
55
TRADUCCIÓN DE LOS JUEGOS CREADOS EN AGS 3.x
10. Enlaces de las aplicaciones usadas
10. Enlaces de las aplicaciones usadas
















Gobread  http://www.mediafire.com/download.php?a6rs4eqgzdi2fq1
TRA Creator  http://www.mediafire.com/download.php?xmjg4jvp41trl5d
TRS Adder  http://www.mediafire.com/download.php?e1u1s3nbsnmyrsl
SPR Extractor  http://www.mediafire.com/download.php?arp0wc7h9nh09kt
Viewer_by_Legato  http://www.mediafire.com/download.php?ald5f2l1h0at7x2
Exestringz  http://aluigi.altervista.org/mytoolz.htm
AGS Translation 
http://www.adventuregamestudio.co.uk/forums/index.php?topic=46417.0
AGSLinguist  http://www.maniac-mansionmania.com/index.php/es/ressourcen/tools/666-ags-linguist.html
Agslrelease  http://www.maniac-mansionmania.com/index.php/es/ressourcen/downloads/doc_download/347-agstranslationfiledecompiler.html
Sed  http://gnuwin32.sourceforge.net/packages/sed.htm
FontCreator  http://www.high-logic.com/font-editor/fontcreator.html
Radian FontEdit  http://www.tdrdesign.net/downloads/fontedit.exe
Notepad ++  http://notepad-plus-plus.org/
HxD  http://mh-nexus.de/en/hxd/
AGS 3.2.1  http://www.adventuregamestudio.co.uk/AGS.aspx
AGS 2.72  http://www.bigbluecup.com/ags_272.zip
56

Documentos relacionados