Академический Документы
Профессиональный Документы
Культура Документы
x
ndice
1. Extraccin del texto ..................................... 2
i. ii. Por medio de otra traduccin................................ 2 Por medio del ejecutable ...................................... 4
2. Modificacin del texto................................ 16 3. Compilacin del texto traducido............... 19 4. Fuentes........................................................ 20 5. Extraccin y compilacin de imgenes ... 34 6. Modificacin de una room y posterior compilacin................................................. 40 7. Creacin del parche ................................... 51 8. Modificacin hexadecimal ......................... 52 9. Notas............................................................ 55 10. Enlaces de las aplicaciones usadas......... 56
Copiamos un archivo con extensin tra, el que queramos, a la carpeta donde tengamos la herramienta agslrelease.
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 ingls (original) e italiano.
En el ttulo 2 Modificacin del texto explico varios mtodos para modificar este archivo, quitar todo el texto del segundo idioma y tenerlo listo para su compilacin. Pasos a realizar (resumen): 1) Abrimos una consola de comandos, cmd. 2) Ejecutamos agslrealease decompile archivo.tra. 3) Creado archivo.trs listo para traducir.
Aqu vemos que la versin es 3.2.1.1115. A fecha de hoy esta es la ltima versin oficial publicada. Pues bien, una vez asegurados que es una versin 3.x, paso a la explicacin. Primero vamos a usar la herramienta TRA Creator de los creadores rusos. Nos aparecer una ventana como se muestra ms abajo. Seleccionamos el ejecutable del juego NancyATPPS.exe y luego cliqueamos en el primer botn.
El ttulo de la ventana cambiar, indicando que se est procesando la informacin. Una vez terminado nos aparecer en nuestra carpeta de trabajo el archivo NancyATPPS.trs. Que fcil, no?. Pues no, todava nos falta ms 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 lnea de comandos: exestringz b q 1 NancyATPPS.exe texto.txt
Tendremos un archivo texto.txt con el texto extrado. Si lo editamos veremos que tiene mucha basura incluida. Para purgar vendra bien que supierais usar un poco AGS. Para los que no sepis os dar unos pasos a seguir que os servir como gua, pero puede que an as nos saltemos alguna palabra. AGS cuando ejecuta los scripts usa unos nombres para cada personaje, objeto, hotspot (puntos calientes), GUI (interfaz), Button, inventario, msica, 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_botn o Ejemplo: ButtonMainLoad Inventario: iNombre_del_objeto_del_inventario o Ejemplo: iCoins Msica: aNombre_del_archivo_msica
6
o Ejemplo: aSound_CreakFall Pues bien, estos nombres no se deben traducir. Tambin aparecen las instrucciones que ejecuta el engine (motor) del juego. No las voy a enumerar porque creo que son ms que evidentes cuales son. Por ejemplo: ShakeScreen Wait Dialog::SetOptionState^2 AudioClip::Play^2 Pasemos a la accin. Buscamos la primera cadena .asc. En nuestro caso ser __NEWSCRIPTSTART_GlobalScript.asc.
Pues bien, como vemos en la captura las cadenas de texto que estn debajo son las que nos interesa. Os recomiendo que copiis 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
bloques, es decir, entre el primer nombre del script, en nuestro caso, GlobalScript.asc y la siguiente bsqueda 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 estn 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 lnea 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.
Hay que hacer un inciso, y hacer saber que depende que scripts se traducen textos de forma diferente. DialogScripts.asc Dilogos. GlobalVariables.asc No se traduce nada. @OVERHOTSPOT@ Variable usada por el sistema. Los scripts de las room estn 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.
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 lneas de texto que vienen debajo hasta la primera que aparezca Hotspot nhotspot. En nuestro caso Hotspot 7.
Para el caso de los objetos debemos copiar el texto que viene debajo de cada lnea que termina el script de una room. Vayamos con el ejemplo.
10
Buscamos la cadena texto .asc hasta que topemos con __NEWSCRIPTSTART_room7.asc, buscamos el final del script que ser room7.asc. Copiamos las lneas que nos interesa:
Ahora ya tenemos todo el texto de los plugins, de las rooms, los hotspots y los objetos. Tan slo nos falta el inventario y el texto de las interfaces. Para el inventario buscamos la cadena Adventure Creator Game File v2* y despus de una clave entre llaves est lo que nos interesa. Nuestro ejemplo:
11
Ahora le toca al interface. Esta parte es ms engorrosa y hay que ser ms 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 algn 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 razn, no se extraen los dilogos de los juegos. Seguramente si afinamos ms 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 aadiendo una lnea en blanco debajo. Yo uso Notepad++ que lo hace muy fcil. Activamos la siguiente opcin:
12
Nos aparecern unos cdigos que indican el final de cada lnea. Reemplazamos esos finales de lneas por una nueva lnea en blanco debajo de cada una. Para eso hacemos lo siguiente: En Buscar->Reemplazar nos aparecer una ventana y ponemos los valores siguientes:
13
Guardamos los cambios. Y ahora vamos a aadir 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 ttulo de la ventana cambiar a Completed.. Se habr creado el archivo 1_added.trs. Si echis un vistazo veris que las lneas repetidas ya no aparecen, y es que AGS no necesita esas cadenas para traducirlas.
14
POR FIN! Lo hemos conseguido. Ya tenemos el texto listo para traducir. Si tras el testeo encontramos algo sin traducir, basta con que aadas al final de todo el texto esa lnea y su traduccin.
Pasos a realizar (resumen): 1) 2) 3) 4) 5) Ejecutamos TRA Creator Ejecutamos exestringz Buscamos texto Formateamos el texto Ejecutamos TRS_adder
15
16
As que usaremos el siguiente comando: sed 14~2d italian.trs > castellano.trs Nos quedara el siguiente texto:
Tan solo tenemos el texto en ingls, que es lo que nos interesa. Usando el mtodo de las pginas 13 y 14 con el Notepad++ para aadir una lnea blanca despus de cada una, tendremos el texto listo para traducir.
17
Pasos a realizar (resmen): 1) Usar la herramienta Sed para eliminar lneas innecesarias 2) Reformatear el texto con Notepad++ para aadir las lneas en blanco debajo de cada texto en ingls. 3) Usar la herramienta para traducir.
18
19
4. Fuentes
4. Fuentes
Casi siempre las aventuras creadas con este motor usan unas fuentes especiales que slo tienen 128 caracteres debido al rendimiento, con lo que se omite el uso de caracteres extendidos (). Esto era de entender en mquinas antiguas, pero en la actualidad no es necesario. Para saber si el juego nos va a detectar nuestros caracteres os aconsejo que hagis una prueba rpida, y sustituyis una lnea del principio del juego por la cadena escrita ms 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 algn caso ms. Si no tenis problemas con los caracteres podis 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 da.
Cmo 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
4. Fuentes
Si tuvisemos lista la traduccin al espaol y no hubiramos editado las fuentes, en el juego se presentara el siguiente error:
Pues bien, vamos a editar la fuente. Cualquiera de las dos nos vale, porque son iguales, tan slo 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 espaoles. As que los tendremos que aadir nosotros.
21
4. Fuentes
Pinchamos en propiedades.
22
4. Fuentes
Tendremos la casilla vaca, pero con el ttulo cambiado a aacute. Ahora seleccionamos la letra a y copiamos.
23
4. Fuentes
Ya tenemos una copia de la letra, ahora le tenemos que aadir una tilde. Pinchamos dos veces sobre la casilla y se nos abrir una ventana para editar el dibujo. Aadimos un rectngulo y dibujamos uno pequeo.
24
4. Fuentes
Pinchamos sobre el cuadro hasta que la seleccin 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
4. Fuentes
Vemos que nos sale una interrogacin, eso es porque no hemos hecho algo bien. Volvemos a darle a propiedades a nuestro nuevo carcter y nos vamos a la siguiente pestaa.
26
4. Fuentes
27
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 algn cambio en la fuente y ha usado por defecto la agsfnt0.wfn que slo soporta 128 caracteres y no aparecen los caracteres extendidos. Entonces? Pues bien el cambio que detecta es si supera el tamao 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
4. Fuentes
Ahora nos debera 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 extensin 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 slo las propias del engine. Para ver lo que ocurre si usamos los caracteres espaoles, hacemos una prueba. Por ejemplo, con la traduccin al latn previamente extrada 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
4. Fuentes
En vez de mostrar los caracteres espaoles, como no los reconoce nos lo llena con los smbolos de interrogacin. Para que aparezcan, vamos a hacer un truco muy habitual en el mundillo de la traduccin. 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 cules son debemos hacer una bsqueda con un editor de texto.
30
4. Fuentes
Yo he encontrado estas: \"#$+=@^. Puede que haya alguna ms, pero con estas bastan. Ahora editamos cada carcter con cada letra espaola. Pinchamos en la letra a, Copy y luego Letter.
31
4. Fuentes
Para el paso final, hay que hacer una bsqueda 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 nio? lo escribimos as ^Qu" nombre tiene ese ni=o?.
32
4. Fuentes
Pasos a realizar (resmen): 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
5. Extraccin y compilacin de imgenes En algunas ocasiones existen imgenes con texto que hay que traducir para darle un toque ms profesional a la traduccin, o por necesidades del juego. Tal es el caso de la traduccin que llev a cabo con Asperet (GuiasPat) que tuvimos que editar casi una centena de imgenes. Programas necesarios: AGS 3.2.1 AGS 2.72 Spr_extractor_by_Legato Cmo se hace: Ejecutamos Spr_extractor_by_Legato en la misma carpeta donde tengamos el archivo acsprset.spr, extrado previamente con Gobread. Nos extraer todos los grficos 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 extrados incluyendo el modificado.
34
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 imgenes, resulta que no puedo ver ninguna. Solucionado con la nueva versin.
35
He encontrado una solucin 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 lmite de 200 sprites. As que en nuestro ejemplo debemos crear 5 carpetas. Y luego importamos mltiples sprites.
36
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
38
Ahora exportamos el que nos interese para editar y luego lo volvemos a insertar ya modificado.
Slo nos queda salvar los cambios y ya tenemos los nuevos archivos con los sprites cambiados.
Pasos a realizar (resmen): 1) Usar spr_extractor para extraer los sprites. 2) Modificar las imgenes 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
Programas necesarios: Viewer by Legato Gobread AGS 3.2.1 HxD Editor Hexadecimal TRA Creator Cmo 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 extrado todos los recursos con Gobread.
40
Como veis, la habitacin (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
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
En nuestra carpeta del proyecto tenemos la room modificada. Pero todava no est completa. Falta cambiar la llave (key) del juego y aadir el script para que funcione correctamente. Para ello vamos a editar hexadecimalmente esta room.
43
Ejecutamos TRA Creator , seleccionamos el ejecutable de Gemini Rue. Pinchamos en el siguiente botn:
Nos extraer la llave (key) del juego en hexadecimal. Nuestro caso 84668800h. Ejecutamos HxD y abrimos la habitacin modificadaroom72.crm y la original, que en nuestro caso la he llamado, para que sea ms fcil identificar, room72_orig.crm. Tendremos dos pestaas con los dos archivos abiertos. Ahora buscamos en la original la llave (key) hexadecimal.
44
Apuntamos la posicin, la necesitaremos ms adelante, B2Eh. Continuamos con la otra pestaa donde est abierta la room modificada. Vamos a la posicin B2Eh.
45
46
Ahora nos falta aadir 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 habitacin. Seguimos usando HxD y en room_orig.crm buscamos la cadena de texto SCOMY desde el principio.
47
Nos vamos hasta el valor hexadecimal justo despus del parntesis que se encuentra antes de la cadena de texto.
Apuntamos la posicin y nos vamos al final del archivo. All seleccionamos un bloque de bytes desde el men Edicin -> Seleccin de bloque. Pegamos en el campo de posicin inicial el valor de antes.
Tendremos seleccionado un bloque con longitud 13BBh. Copiamos el bloque. Nos vamos a la pestaa de room72.crm, buscamos de nuevo la
48
cadena SCOMY y, al igual que con la otra room, desde el valor despus del parntesis pegamos escribiendo.
Nos preguntar si deseamos continuar y le decimos que s. Con esto ya est nuestra habitacin (room) modificada con los textos traducidos y funcionando el script original.
49
Pasos a realizar (resmen): 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 habitacin (Save Room). Usar TRA Creator para saber la llave (key). Editar hexadecimalmente la nueva room para introducir la key y el script.
50
51
8. Modificacin Hexadecimal
8. Modificacin Hexadecimal
Explicar cmo se edita hexadecimalmente. Sin superar el nmero de caracteres o rellenndolos con 00h en casos que no lleguemos. Esta parte ya est documentada en algunos tutoriales que circulan por internet. Yo dar una breve explicacin con las nociones ms bsicas. Programas necesarios: HxD Cmo se hace: Abrimos el archivo que queremos editar con nuestra herramienta. Hacemos una bsqueda 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
8. Modificacin Hexadecimal
Para modificarla, no podemos pasarnos de esta longitud. Yo la sustituir por Estacin Mdica que es justo los 16 caracteres de longitud mximo.
53
8. Modificacin Hexadecimal
Como podis ver, antes y despus 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 Mdico y comprobamos que la ltima cadena tiene un carcter menos. Podemos aadir un espacio al final o sustituir su valor hexadecimal por 00h.
54
9. Notas
9. Notas
Las partidas guardadas antes de la traduccin 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 (vase la ayuda de AGS 3.2.1). En este caso slo 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
56