Abandonsocios > Traducciones y Proyectos

Les Manley in: Search for the King (Traducción) [Finalizada]

(1/23) > >>

gatuno:
TL;DR
PALESTRA es un TSR que hace un man in the middle entre el juego y el jugador, para interceptar comandos y mensajes, y traducir comandos :es: -> :en: y mensajes :en: -> :es: Todo esto en memoria y transparente para el juego.


--- Código: ---jugador <-> TSR <-> juego
--- Fin del código ---

es importante destacar que es un man in the middle, es decir, el parser del juego no se toca, para el juego todo sigue estando en :en:, hay un flujo bidireccional constante, de comandos y mensajes en ingles y castellano, y el TSR traduciendo y dando cambiazos en memoria constantemente.

TSR y man in the middle, es lo importante, de aqui para abajo es paja.
--

video de ejemplo (enero 2020)

esos parones (se nota sobre todo en la musica) los causaba nuestro codigo, primitivo como los humanos al nacer, chupaba de la teta de la CPU que no veas :lol:

-----------------------------------------
INDICE
-----------------------------------------
1. sobre el juego
2. sobre la traduccion
3. nuestra estrategia
4. algunos problemas
5. % progreso
6. TODO/bugs
-----------------------------------------

gracias a cireja por la inspiracion en la estructura del mensaje. :)

1. sobre el juego
es una vieja (1990) aventura grafica/conversacional para DOS, con una interfaz similar a las primeras aventuras de Sierra, donde los comandos se introducen por teclado, y hay un parser que los interpreta, y movemos al protagonista por la pantalla con los cursores (o el raton).
+ Info AbandonWiki

2. sobre la traduccion
basicamente son dos partes a traducir.
1. comandos que introduce el jugador (parser) y
2. mensajes que muestra el juego, normalmente como respuesta a estos comandos.

y despues tenemos casos especiales como:
-tres animaciones en un formato desconocido, posiblemente ILBM o basado en ILBM.
-botones de menu.
-quizas otras cadenas de los menus (o de otro sitio) que se le escapen al TSR.

3. nuestra estrategia
Spoiler: tocho (click para mostrar/ocultar)(+) para ir trabajando en la traduccion a gusto, usamos archivos .txt , que luego el TSR usara.
lineas impares en :en: , lineas pares en :es: .

(+) para el parser hemos creado tres diccionarios:

Verbos.txt
Nombres.txt
Preposiciones.txt

los tres van en memoria convencional, y para añadir sinonimos simplemente añadimos nuevas lineas. Ejemplo:

toilet
retrete
toilet
inodoro
toilet
letrina
toilet
water
toilet
vater

(+) para los mensajes tenemos otros tres txt.

Desc60_umb.txt
Desc61_ems.txt
Subcadena61_ems.txt

umb y ems indica la zona de la memoria donde pondremos las cadenas, y el numero indica el numero de INT. El TSR cuelga una rutina traductora en INT_60 y otra en INT_61. Para que estas rutinas se activen, parcheamos el codigo del juego con llamadas a INT_60 e INT_61.
+ Info: de dinamitas, mechas y artificieros.

ejemplo de contenido:

Was that sentence missing a verb?
&No le faltar[a un verbo a esa frase?
The * is already open.
%n ya est^ abierto.

gracias a pakolmo que se ha currado las fuentes modificando los archivos DATAZ.DAT y DATAB.DAT, podemos usar tildes, ñ, ¡, ¿, ü, segun la siguiente tabla
# -> ¡
& -> ¿
^ -> á
] -> é
[ -> í
/ -> ó
{ -> ú
} -> ñ
~ -> ü

podemos usar tambien algunos comodines en los txt.
*   cualquier cosa, como el * del DOS.
%n   un nombre
%v   un verbo

(+) sobre las animaciones
la rutina que pinta en pantalla esta localizada. El TSR podria infectarla y pintar lo que queramos.
video de ejemplo pintando un bocadillo desde el debugger:

lo ideal seria exportar/importar las animaciones sobre los archivos, pero tenemos una bala en la recamara.

4. algunos problemas
el juego no acepta la tecla Ñ
Spoiler: solucion (click para mostrar/ocultar)cuando se pulsa una tecla, INT_9 guarda dos bytes en un buffer. Uno es el scancode y otro el ASCII.
el TSR comprueba el scancode, y si es el de la Ñ, cambia el ASCII por el ASCII del caracter ">" (el juego pintara la "ñ" que pakolmo ha dibujado sobre la fuente del juego para ">").

no hay suficiente memoria convencional para todas las cadenas del juego.
&& los programas .COM en DOS tienen un limite teorico de 64 KB.
Spoiler: solucion (click para mostrar/ocultar)existe alguna tecnica curiosa, que se aprovecha de como funciona la memoria segmentada del DOS (segmentos de 64 KB que se "solapan" parcialmente), y colocando el programa ~"en medio", podemos direccionar ~128 KB. La documentacion de A86 describe un metodos parecidos. Como PoC esta bien, pero se complica, asi que dejamos el TSR en su segmentito de 64 KB y alojamos los mensajes en memoria EMS y UMB.
umb: memoria alta, espacio que va desde los 640 KB hasta el primer MB de memoria, en los bloques UMB libres que el TSR es capaz de encontrar.
ems: ocupamos 1 segmento de 64 KB de memoria expandida.

cada vez que cambiemos algo de la traduccion, convertir los .txt puede ser una fiesta.
Spoiler: solucion (click para mostrar/ocultar)dos cutrescripts en bash: src/scripts/txt.sh y src/scripts/hexpos.sh

5. % progreso
parser: 90 %
mensajes: 90 %
animaciones: 0 % 33% en PALESTRA v0.2 (muy pronto sera publica)
botones: 100 %
pruebas: vamos haciendo.

las cadenas estan traducidas todas (o el 99%) en archivos txt
el juego esta crakeado (ya existia crack) y la traduccion usara la v2.0 (la ultima que sepamos).
hemos introducido algunos huevos de pascua, que aparecen si el comando introducido contiene ciertas palabras clave ;D

6. TODO/bugs
1. bug: "dejar objeto" + "mirar" -> no se traduce completo.
2. simplificar mensajes de conversaciones: definir solo "Said to %n/Hablando a %n" o similar.
3. eliminar lista de nombres de Desc60_umb.txt
4. tecla Ñ. Añadir sinonimo dream/sueno en Nombres.txt
5. parser: implementar deteccion de plurales, y asi poder definir solo singular en diccionarios. Solucionaria el bug smell bernardo.jpg y similares. <-- no hay deteccion de plurales, pero ese caso concreto esta solucionado.
6. bug: bajar helmut por desague -> lower helmut about drain. <-- hecho solo para este caso concreto.
7. bug: en pantalla de elefantes, "dejar pala" sin tener la pala cuelga el juego. fixed
8. bug extraño que no entra en ningun punto anterior: ensenar bufanda.png y quizas otros.
9. eliminar rutina CHAPUZA y limpiar el codigo todo lo posible.
10. bug: deteccion y reserva segmento EMS: esta pillando el caso fallback (variable a fuego)
11. INT_9: si es intro, no llamar al parser si estamos en los menus. Fixes: nombre_savegame "hola mundo que tal" se quedaba en "tal". <-- hecho en PALESTRA v0.2
12. tfc, tocar/play/touch guitarra/lagartija
13. revisar Nombres.txt, Verbos.txt, preposiciones.txt y parser para que el juego en castellano sea lo mas natural posible.
14. animaciones <-- 33% (intro traducida) en PALESTRA v0.2
15. pruebas

==creditos
traductores: pakolmo y danstructor
fuentes de letra: pakolmo
codigo: gatuno

==descargas
1. Solo traducción (binarios y código fuente)
2. Juego ingles v2.0 original de Archive
3. Juego con traducción aplicada (v2.0 original de Archive + traduccion -binarios y codigo fuente-)

Para versiones STEAM y GOG (y mirror) visitar https://pakolmo.netlify.app/LesManley.htm

Preinstalado de cireja, preconfigurado con sonido MT32
:dosbox: Les Manley in - Search for the King - DOSBox.7z (3,19 MB) -- Desprotegido y traducción aplicada

por supuesto se incluye el codigo fuente en ensamblador, los diccionarios y un par de scripts auxiliares. Todo un poco quick&dirty aun, pero el juego ya es completable en castellano. Para jugar la opcion mas rapida es bajarse el paquete 3, y en dosbox ejecutar RUNME.BAT y a jugar. + Info en el README.TXT y en la noticia de la tradu.

yo quiero dedicar la traduccion a mi gato Lino, que nos dejo el mismo dia que se subio la traduccion a internet, el 18 de abril de 2021. Al final encontre al Rey. Buen viaje y pechuga de pavo. Te queremos.
el codigo que gestiona la memoria UMB es de Ciriaco Garcia de Celis.
parte del codigo que gestiona la memoria EMS viene del virus Eat the Ritch, escrito por SX/NuKE. Codigo fuente en ensamblador: http://zen7.vlan7.org/file-cabinet/EATRICH.ASM

de danstructor, gatuno y pakolmo para abandonsocios, que la disfruten. :)

Spoiler: primer mensaje (16-11-2019) (click para mostrar/ocultar)Viene de este hilo.

@pakolmo

He hecho un TSR. No estoy seguro de que sea la solucion simple, pero por ahora es lo que se me ha ocurrido.

Bajate este archivo:

http://www.mediafire.com/file/20yohaampzk9a2o/PAKOLMO.COM/file

Copialo a la carpeta del juego, ejecuta PAKOLMO.COM y despues ejecuta el KING.BAT del juego.

Y aceptara el verbo MIRAR a secas.

Me quedarian por hacer dos cosas.

1. Que acepte verbo+nombre, por ejemplo "mirar escritorio" o como traduzcas cada cosa.
2. Añadir el resto de verbos/nombres.

Pues na, si te va bien asi seguimos.

pakolmo:
Me encanta el TSR!!!

La primera prueba de "mirar" funciona perfectamente. A ver si puedes con los verbos y nombres.

Yo he hecho una extracción de todas las frases y palabras del juego. Ahí está incluido el inventario y pero no las palabras de las pantallas.
https://www.dropbox.com/s/0y5zpcs1u96nuvf/Gatuno.zip?dl=0

Según el manual los verbos más típicos son:

ask about (ab)
look (I)
sing
ask for
look at
sit
climb
look in
score
close
look
under
stand
dance
open (o)
take (t)
drop
pull
taste
jump
push
touch
listen
put
unlock
read
awaken
examine
give
tell me about
talk to


¡Muchas gracias! ¡Me has alegrado el día!

¿Se podría hacer que frases del EXE.EXE se quedaran residentes en memoria y se mostraran traducidas sin modificar el EXE.EXE, sino modificando el Pakolmo.com?

¿Podría tener un txt para los verbos y objetos y otro txt donde las frases es inglés fueran las impares y las pares la parte traducida de las frases en exe.exe y los dat? más que nada para poder alargar las frases traducidas.

Veo que al poner “mirar” cambia a look. ¿Se podría esperar a pulsar INTRO? Y si es un problema, que cambiara al pulsar punto, se tradujera e hiciera un INTRO.

gatuno:
Me alegro de que te guste, seguimos pues. :)

Te envio MP.

gatuno:
Avances:

-Se ha conseguido que el juego acepte cadenas mas largas para las descripciones de habitaciones. Ha sido necesario modificar 6 bytes del EXE.EXE del juego.
-No sera necesario traducir dichas descripciones editando archivos en hexadecimal. Se podra hacer en archivos txt, que el TSR usara.


Otro tipo de cadenas, por ejemplo las descripciones de objetos, o conversaciones, que supongo que las habra, requieren otro analisis. Se ira informando de las novedades.

Por cierto, que el juego esta protegido y que sepamos no hay crack publico. Se intentara desproteger.

RodrigoH17:
Si necesitas la version desprotegida (crackeada), aca te la dejo:


--- Código: ---https://mega.nz/#!sNYmyAZL!e8fO36FMzrqMQAMDvqerIhTw0nc1DCX4vlGLtyqaqAI
--- Fin del código ---

Navegación

[0] Índice de Mensajes

[#] Página Siguiente

Ir a la versión completa