quiquelin escribió:Hola a todos, por falta de tiempo no he podido leer todo el hilo, así que si alguien ha preguntado algo similar de antemano ya pido disculpas.
El caso que me ha picado el gusanillo de la traducción y me gustaría intentar hacer el Ranma 1/2 de MegaCD.
Aún no tengo ni idea de este mundillo, así que he visto este proyecto y me preguntaba si alguien del equipo podría darme indicaciones de por dónde debería empezar y qué herramientas aprender a utilizar para iniciar algo así...
En la web es todo muy confuso y no hay un sitio claro que explique como iniciarse en la traducción para este sistema en concreto.
Un saludo y muchas gracias.
Desconozco como sería en otros juegos de Mega CD, pero en este mismo hilo hay varias cosas que detalló Mairtrus y que fueron de gran ayuda. Te recomiendo que busques sus mensajes. También hay varios mensajes donde explico la parte de traducción de los textos que hice con un script, de ahí pasamos a montar una aplicación web que extraía y guardaba los textos en una base de datos, así como generar ficheros traducidos a partir de la traducción de la base de datos. Nos facilitó mucho realizar la traducción en equipo.
Básicamente, los diálogos de Snatcher de Mega CD se pueden encontrar en el final de varios archivos llamados "SPXX.bin". Cada número de XX corresponde a un escenario de cada capítulo. Están sin ningún tipo de compresión y no tienen verificación de checksum. Abriendo cualquier archivo con un editor hexadecimal verás que al final aparecen los textos y puedes cambiar en un texto (por ejemplo "Hello" por "Holaa") con la misma longitud, añadir el nuevo archivo modificado en una nueva imagen ISO y ejecutar el juego con tus cambios.
DiálogosLos diálogos están separados siempre por el mismo
byte, incluso en un mismo diálogo había un byte para añadir una nueva
línea o saltar a una
nueva página dentro de ese mismo diálogo. Descubrir para que servían cada byte u otros
comodines dentro de los textos de los diálogos era tan simple como buscar la conversación en los hex y la misma conversación ejecutando el juego. A partir de ahí, hice un script que extrajera todos los textos del juego y los volcara en una base de datos de una backend. Un frontend servía para ver esos diálogos y añadirles una traducción. Después otro script permitía generar el mismo fichero SPXX.bin
Actualización de punterosSin embargo, en una traducción seguramente la longitud de tu nuevo diálogo cambie o quieras insertar una letra que todavía no existe el en mapa de caracteres del juego (eg: tildes o ñ):
- Para los cambios de longitud necesitarás modificar los punteros del código del mismo archivo. Se puede
calcular según la diferencia de la antigua y la nueva frase.
- Para añadir nuevos caracteres necesitas encontrar el archivo donde está dibujado el tile del mapa o tabla de caracteres. Sustituir un caracter original del juego por uno nuevo (redibujar).
Añadir caracteres que no existen en el juego:Esta parte implica:
- Encontrar el archivo que contiene el dibujo con el mapa o tabla de caracteres, editar el tile y redibujar el recuadro donde estaba el antiguo caracter por tu nuevo caracter. Este mapa se encuentra en el archivo SUBCODE.BIN en el Snatcher.
- En los diálogos donde vas a introducir tus nuevos caracteres (vocales con tilde, la eñe, etc) insertar los
caracteres originales que quieres utilizar. El código del juego sigue interpretando dibuja "mi caracter original" del "código ASCII" del fichero. Necesitarás escribir en el archivo traducido que contiene los diálogos la letra o caracter original para este caso, aquí solo el mapa de caracteres es un nuevo y dibujará la nueva letra que has cambiado.
Al principio del hilo escribió Mairtrus sobre ello y se encargó de editar el mapa añadiendo las tildes, eñes para mayúsculas y minúsculas. Por suerte algunos caracteres del final del mapa sobraban o apenas se utilizaban (eg: "-").
Actualizar archivos en imagen ISO:Los archivos SPXX.bin cambiarán de tamaño con la nueva traducción, eso implica
modificar la tabla de ficheros de la nueva imagen .ISO con el tamaño de los nuevos ficheros. También añadir los
ficheros modificados a la nueva ISO.
Esto la parte de los textos. Para textos en imágenes hace falta encontrar el tile y editarlo a mano. Esta parte puede ser algo laboriosa. Konami comprimió algunos archivos del juego con un algoritmo propio, por suerte no todos. Pero hay algunas cosillas que necesitarías descomprimir y recomprimir. De esta parte se encargó Mairtrus.
Herramientas creadas para Snatcher:- La aplicación web (un obsoleto CakePHP, framework similar a Ruby on Rails):
https://bit.ly/3QIWGaI- Para el parche final tienes el código en Java:
https://bit.ly/3A8z2NTObviamente esto para el juego Snatcher hecho por Konami para Mega CD. En otros juegos la mecánica podría ser diferente.
Herramientas y referencias:Hay herramientas como decompiladores de código que soportan Motorola 68k, por ejemplo IDA Pro (versión de pago) o algunas herramientas Open Source como
ghidra o
Radare2.
Para Mega Drive es muy útil un emulador con modo debugger para identificar instrucciones del código mientras juegas
https://segaretro.org/Comparison_of_Seg ... _emulators. Recomendaría de probar
Exodus, aunque hay otros también usados de aquella.
Existen foros como romhacking, un foro con guías de traducción en español que ahora mismo no recuerdo o
hilos en este mismo de EOL donde puedes encontrar guias.