Página de Alejandro Muñoz Fernández

Cómo aplicar el parche de traducción al inglés de Emerald Dragon en Linux

Emerald Dragon es uno de los RPG de culto más destacados que permanecieron exclusivos del mercado del país del sol naciente. Desarrollado originalmente por Glodia y publicado para la PC Engine CD-ROM² en 1994, destaca por su excelente banda sonora y un sistema de combate táctico muy dinámico para su época.

Recientemente adquirí una copia física original por 29,94 € en eBay a un vendedor japonés. Con un regalito adicional que pagó mi padre a la entrega en concepto de arancel.

1. Requisitos previos: Instalación de xdelta3

Para aplicar el parche binario en formato .xdelta, necesitaremos la herramienta xdelta3. Puedes instalarla desde el terminal según tu distribución:

En Debian y derivadas (Ubuntu / Mint):

sudo apt install xdelta3

En Fedora:

sudo dnf install xdelta3

En openSUSE:

sudo zypper install xdelta3

2. Descarga del parche de traducción

La traducción al inglés (versión 1.0) es un proyecto de Stargood Translations liderado por Supper, con las siguientes contribuciones:

La versión actual del parche (v1.0) se puede obtener directamente desde el sitio oficial del proyecto Stargood.

# Descargar el parche v1.0
wget -c "https://stargood.org/trans/files/Emerald%20Dragon%20EN%20[v1.0].zip"

# Descomprimir
unzip "Emerald Dragon EN [v1.0].zip"

3. Preparación de los archivos del juego

Este tutorial utiliza la versión 1.1 (Rev 1) del juego original japonés (recomendada). El proceso también funciona con la Rev 0, pero debes usar los archivos y el parche correspondientes.

3.1. Extracción y organización

Extrae los datos del juego (asumiendo que los tienes en un archivo comprimido de 7z):

7z e Emerald\ Dragon\ \(Japan\)\ \(Rev\ 1\).7z

Mueve los archivos .bin a la carpeta splitbin_patch para trabajar de forma organizada:

mv *.bin splitbin_patch/

3.2. Limpieza del directorio

Es recomendable eliminar los archivos innecesarios (ejecutables de Windows y archivos de configuración que no usaremos en Linux) para evitar confusiones:

rm -rf *.zip *.7z *.txt *.cue auto_patch Emerald\ Dragon\ \(Japan\)\ \(Rev\ 1\) redump_patch/*.exe redump_patch/*.cue redump_patch/Emerald\ Dragon\ EN\ \[v1.0-rev0\]\ Redump.xdelta splitbin_patch/*.bat splitbin_patch/xdelta3.exe

La estructura resultante debería ser similar a esta:

├── redump_patch
│   └── Emerald Dragon EN [v1.0-rev1] Redump.xdelta
└── splitbin_patch
    ├── Emerald Dragon EN [v1.0] SplitBin.cue
    ├── Emerald Dragon (Japan) (Rev 1) (Track 01).bin
    ├── ... (pistas intermedias)
    └── Emerald Dragon (Japan) (Rev 1) (Track 31).bin

4. Aplicación del parche con script de Bash

Dado que el juego original se compone de múltiples pistas (split bin), el proceso requiere concatenar los archivos, aplicar el parche y luego renombrar el resultado. He adaptado el archivo .bat original a un script de Bash nativo para Linux.

Crea el archivo aplicar_parche.sh dentro de splitbin_patch:

#!/bin/bash
# ⚙️ Script para unir tracks de un juego de PSX (Emerald Dragon) y aplicar un parche XDelta
# 🧩 Convierte los tracks binarios individuales en un único bin + aplica traducción/arreglos

# 🛡️ Configuración robusta: salir si hay error, variables no definidas o fallo en tuberías
set -euo pipefail

# 📦 Definición de variables (fáciles de modificar)
BASE_NAME="Emerald Dragon (Japan) (Rev 1)"
OUTPUT_NAME_UNPATCHED="Emerald Dragon EN [v1.0-rev1] SplitBin.bin"
PATCH_SOURCE="../redump_patch/Emerald Dragon EN [v1.0-rev1] Redump.xdelta"
OUTPUT_PATCHED_TEMP="Emerald Dragon EN [v1.0-rev1] SplitBin.bin_patched"
FINAL_BIN="Emerald Dragon EN [v1.0] SplitBin.bin"
CUE_FILE="Emerald Dragon EN [v1.0] SplitBin.cue"

# 🎵 Generar lista de pistas (01..31 con formato de dos dígitos)
TRACKS=()
for i in $(seq -w 1 31); do
    TRACKS+=( "${BASE_NAME} (Track $i).bin" )
done

# 🧹 Función para limpiar archivo temporal si existe
clean_temp() {
    if [[ -f "$OUTPUT_NAME_UNPATCHED" ]]; then
        echo "🗑️ Eliminando archivo temporal antiguo: $OUTPUT_NAME_UNPATCHED"
        rm "$OUTPUT_NAME_UNPATCHED"
    fi
}

# ✅ Verificar que existan las pistas y que xdelta3 esté disponible
echo "🔍 Verificando requisitos..."
if ! command -v xdelta3 &> /dev/null; then
    echo "❌ Error: xdelta3 no está instalado. Instálalo con: sudo apt install xdelta3 (o equivalente)"
    exit 1
fi

for track in "${TRACKS[@]}"; do
    if [[ ! -f "$track" ]]; then
        echo "❌ Error: No se encuentra el archivo $track"
        exit 1
    fi
done
echo "✅ Todas las pistas existen y xdelta3 está instalado."

# 1️⃣ Limpiar posibles restos de ejecuciones anteriores
clean_temp

# 2️⃣ Unir todos los tracks en un solo bin (concatenación)
echo "🔗 Uniendo las 31 pistas en $OUTPUT_NAME_UNPATCHED ..."
cat "${TRACKS[@]}" > "$OUTPUT_NAME_UNPATCHED"
echo "✅ Unión completada."

# 3️⃣ Aplicar el parche xdelta3
echo "🩹 Aplicando parche XDelta desde $PATCH_SOURCE ..."
xdelta3 -d -s "$OUTPUT_NAME_UNPATCHED" "$PATCH_SOURCE" "$OUTPUT_PATCHED_TEMP"
echo "✅ Parche aplicado correctamente."

# 4️⃣ Limpiar archivo temporal sin parchear
clean_temp

# 5️⃣ Renombrar el archivo parcheado al nombre final
echo "✏️ Renombrando resultado final a $FINAL_BIN ..."
mv "$OUTPUT_PATCHED_TEMP" "$FINAL_BIN"

# 6️⃣ Comprobar que el CUE necesario existe (opcional pero útil)
if [[ ! -f "$CUE_FILE" ]]; then
    echo "⚠️ Advertencia: No se encontró el archivo CUE esperado ($CUE_FILE)."
    echo "   Asegúrate de tenerlo en la misma carpeta para que el juego funcione correctamente."
else
    echo "✅ Archivo CUE encontrado."
fi

# 🎉 Mensaje final
echo "════════════════════════════════════════════════════════"
echo "✨ ¡Proceso completado con éxito! ✨"
echo "📁 Archivos necesarios para jugar (en la carpeta actual):"
echo "   🎮 $FINAL_BIN"
echo "   🎼 $CUE_FILE"
echo "════════════════════════════════════════════════════════"

Ejecuta el script:

chmod +x splitbin_patch/aplicar_parche.sh
cd splitbin_patch && ./aplicar_parche.sh

5. Conclusión y ejecución

Si todo ha ido bien, obtendrás dos archivos finales:

  1. Emerald Dragon EN [v1.0] SplitBin.bin
  2. Emerald Dragon EN [v1.0] SplitBin.cue

Estos archivos están listos para ser cargados en emuladores como Mednafen o RetroArch (núcleo Beetle PCE FAST). Aunque poseo el hardware original, la emulación actual ofrece ventajas imbatibles: desde el escalado de resolución hasta la comodidad de jugar en dispositivos móviles. Teniendo en cuenta que los televisores CRT (tubo) son hoy objetos de coleccionista y que las pantallas modernas ya no integran entradas analógicas de forma nativa, la emulación es, sin duda, la mejor forma de preservar y disfrutar de estas joyas.

6. Galería del juego traducido

Así luce este clásico de PC Engine con textos en inglés:

Emerald Dragon: escena visual de Athrushan y Tamrin © 1994 Glodia / Alfa System

Emerald Dragon: dragón Blanco © 1994 Glodia / Alfa System

Emerald Dragon: batalla © 1994 Glodia / Alfa System

Emerald Dragon: pantalla de título © 1994 Glodia / Alfa System

Emerald Dragon: ciudad de Urvan © 1994 Glodia / Alfa System

Emerald Dragon: escena visual de Atrushan © 1994 Glodia / Alfa System

Emerald Dragon: Atrushan en el monte Diana © 1994 Glodia / Alfa System

Emerald Dragon: escena visual de la extinción de los dragones © 1994 Glodia / Alfa System

Emerald Dragon: Atrushan se convierte en humano © 1994 Glodia / Alfa System

Emerald Dragon: Atrushan se adentra en la necrópolis de los dragones © 1994 Glodia / Alfa System

7. Créditos

Todas las imágenes y capturas de pantalla incorporadas en este artículo pertenecen al videojuego Emerald Dragon. Este título fue desarrollado originalmente por Glodia y publicado para el sistema PC Engine CD-ROM² en el año 1994.

El material gráfico se reproduce en este tutorial con fines estrictamente informativos, educativos y de reseña técnica, acogiéndose al derecho de cita establecido en la Ley de Propiedad Intelectual de España (Art. 32.1). Todos los derechos de autor (copyright) y propiedad intelectual del juego original pertenecen a sus respectivos creadores y distribuidoras legales.

Asimismo, se reconoce que el parche de traducción al inglés mencionado es una obra derivada sin ánimo de lucro creada por el proyecto fan Stargood Translations. Los créditos de dicha traducción corresponden a Supper (hacking y traducción), cccmar (edición y pruebas) y Oddoai-sama (pruebas). Este artículo no aloja ni distribuye copias no autorizadas de software comercial.

Etiquetas: