miércoles, 22 de agosto de 2012

El Parcheador de TDW

¿QUÉ ES EL PARCHEADOR Y PARA QUE SIRVE?

Primero que nada, creo que existe la necesidad de explicarles a ustedes, a qué me estoy refiriendo con el título de la nota.

Nuestro camarada The Dark Wright (miembro activo y uno de los galardonados de la web www.subsim.com), ha pasado muchos meses estudiando la estructura del ejecutable del Silent Hunter V, con el fin de resolver algunos "bugs" directamente en el código del juego.

Allá por marzo del 2011, TDW nos asombraba a todos los seguidores con ésta noticia:

"Me siento un poco conmovido ahora. No, mejor dicho estoy realmente conmovido! Luego de meses de buscar y escarbar en el ejecutable de SH5, finalmente he encontrado la rutina que controla los contactos que pueden escucharse en el hidrófono. Luego, con algo más de tiempo, me las arreglé para saber cómo trabajaba (desde el punto de vista del lenguaje ensamblador vía OllyDebug). Ahora puedo decir que cuento con la solución a un gran problema.

Cómo todos sabemos, la estación del sonar en la versión 1.2, es simplemente inútil, ya que el rango de capacidad de los sonidos emitidos por un contacto, es de simplemente 0.01º. Por lo tanto, cuando uno encuentra un contacto, se tiene entre 1 y 3 segundos antes que el mismo cambie de marcación y lo pierda. Imposible llegar a clasificiarlo como "Desconocido", "Mercante" o "Buque de Guerra.

Lo que yo hice, fue habilitar la ventana del sonido para que abarque 20º, tal cual se muestra en la pantalla del dial del sonar. Ahora, la estación del hidrófono, vuelve a ser útil nuevamente, y ya podremos clasificarlo en uno de los tres tipos antes descritos."

Lo que TDW había logrado, era resolver un "bug", editando directamente el ejecutable del simulador. 

Pero inmediatamente, surge el problema legal del copyright que atañe a dicho archivo, que impide que el mismo sea distribuido por alguien más que no sea Ubisoft, su propietario.

Por lo tanto, si bien TDW no puede distribuir ni compartir su "EXE", lo que si puede es enseñarnos a nosotros a modificar el que tenemos comprado.

IMPORTANTE: El parcheador, NO SIRVE PARA EL EJECUTABLE DE LA VERSIÓN STEAM del juego. TDW explica:

"Me veo imposibilitado en darle una solución a los usuarios de Steam. El ejecutable que usa esa versión, está modificado por un código especial que desempaca el archivo original para correr, y el cual lo protege de copias. Es muy complicado y llevaría muchísimo tiempo llegar a familiarizarme y decodificar, cosa que no tengo, además de no ser poseedor de esa versión. Lo siento mucho. Disculpas a todos."



En la imagen anterior, pueden ver como dos pequeñas flechas a los lados de la aguja del hidrófono, muestran la amplitud del sonido del contacto que TDW ha modificado. Además, en la libreta de notas del sonarista (arriba a la izquierda), pueden ver que ahora es posible ser capaz de clasificarlo.

Otras de las modificaciones que ha hecho posible TDW directamente desde el ejecutable, es poder cambiar el color de las tediosas líneas grises que en muchas ocasiones tantos dolores de cabeza nos ha traído, ya que  la gama del mapa de SH5, es mucho más oscura que las de SH3 y 4.

Aquí pueden ver algunas posibilidades:




Pero no termina aquí. Podemos decir sin dudarlo, que aquí comienza todo. Seguramente vamos a tener una batería de modificaciones espectaculares por venir. 

En un principio, todas las modificaciones debían hacerse utilizando un programa que permitiera editar el EXE, buscar la dirección correcta de la rutina (sólo representada por cadenas de números), cambiar los valores con mucho cuidado de no equivocarnos, y luego volver a compilarlo. Algo que a muchos de nosotros nos aterraba de sólo pensarlo. Un solo número equivocado, un error por más sencillo que sea en cualquiera de los pasos, y nuestro SH5 dejaba de funcionar.

Para aliviarnos el trabajo, una vez más, nuestro ángel de la guarda submarinístico, conocido como TDW, nos creó una interface desde la cual poder manipular todos estos cambios, con 1 (un) solo clic!



Ahora, voy a pasar a explicar cómo debemos usar esta interface correctamente, corriendo el mínimo de riesgo posible, para no corromper nuestro ejecutable, y así no sufrir CTDs imprevistos por este tema.

IMPORTANTE: Antes que nada, y de cualquier cosa, se deberá crear un backup de nuestro ejecutable original, y lo pondremos en seguro resguardo. Esto nos permitirá contar con una marcha atrás inmediata si algo saliese mal.

LA INSTALACIÓN 

Bajamos desde el post de subsim de TDW, el paquete de parcheado. Al momento de esta nota, la versión es la 1.0.65. Las versiones varían a medida que su autor va agregando cosas, así que tranquilamente pueden encontrar una superior en cualquier momento. 


Al terminar la descarga, nos encontraremos con que hemos descargado un zip con lo siguiente:


La carpeta llamada MODS, contiene "mods" que deben ser copiados y pegados dentro de la carpeta en dónde tenemos los mods que habilitamos con el JSGME.

Luego, en la raíz del juego (Silent Hunter 5), vamos a crear una nueva carpeta que llamaremos "Parcheador". Allí descomprimiremos todos los archivos que tenemos en el zip (menos la carpeta MODs que ya expliqué antes que hacer). Si lo desean, pueden crear dentro de la carpeta recientemente otra creada en dónde podrán guardar una copia de respaldo del ejecutable que están a punto de modificar.

IMPORTANTE: El parcheador, va a modificar el archivo SH5.EXE. Algunos anti-virus, son bastante celosos de aquellas aplicaciones que alteran ejecutables. Más en este caso en particular, cuya acción producirá un incremento de su tamaño, o lo que en la jerga común se conoce como "inflado". Si es su caso, inhabilite su antivirus durante el proceso para no recibir errores de escritura o falsos positivos de virus.

Desde la carpeta que nombramos Parcheador, ejecutaremos el archivo GenericPatcher.exe. Y automáticamente se nos abrirá una ventana, con sólo una opción de comando: "FILE" arriba a la izquierda. Hacemos clic allí, y elegimos OPEN


Inmediatamente, tendremos una ventana de exploración, que nos mostrará tres archivos disponibles:


  • TDW_SH5_Patches.s5p
  • TDW_SHCollisions_Patch.s5p
  • TDW_SHSim_Patch.s5p

Éstos 3 archivos, para que se entiendan, son los responsables de contener los menúes de modificaciones disponibles sobre el ejecutable del Silent Hunter 5. Además, crearán archivos de contenido históricos en la carpeta raíz del juego, para poder recordar luego que cosas ha variado del ejecutable y así poder revertir los cambios ya hechos. Así que cuando la aplicación anuncie de archivos inexistentes y pregunte por su consentimiento para crearlos, dígale que si para que proceda.

Cada archivo, contiene un conjunto de modificaciones, agrupadas por temática. Vamos a abrir cada uno de ellos de a uno por vez. Recuerde que son 3. Si es la primera vez que correr el parcheador, seguramente le pedirá que lo guíe hasta la carpeta en dónde tiene instalado el simulador, para poder encontrar el ejecutable SH5.EXE.

Realizar los cambios es muy sencillo. Los íconos son muy intuitivos a la hora de mostrar que cosa está habilitada y que no. En mi caso particular, he habilitado todas las mejoras, salvo por la de los colores de las herramientas cuya composición las dejaré a gusto personal del lector.



Cómo si fuera un árbol, se deben activar cada uno con un doble clic del mouse. De rojo, pasarán a azules una vez activados. Entre las mejoras activadas en la imagen anterior, se pueden ver:

  • Corrección del sistema de reaprovisionamiento en el mar.
  • Corrección del hidrófono
  • Nuevas entradas en el menú txt para los que usan Navegación Real
  • Colores en el mapa
  • Corrige un bug sobre el CO2 presente en la versión original
  • Abre y Cierra las compuertas interiores del submarino cuando se pulsa F7 (Zafarrrancho de Combate)
  • Tripulación despierta
  • Correcciones de renderizado
  • Cubierta mojada
  • Los tripulantes no ven cosas al estar sumergidos
  • Control independiente de los motores

Se debe tener en cuenta, que algunas opciones necesitan que también se activen ciertas modificaciones en los otros archivos que describí antes. Por ejemplo, si activamos Control Independiente de Motores, deberemos recordar activar el quinto patch (contando de arriba hacia abajo) del fichero TDW_SHSim_Patch.s5p.

Cuando terminen de realizar las modificaciones, vuelven al comando FILE arriba a la izquierda y del menú emergente eligen CLOSE. Eso hará que el SH5.EXE sea re-escrito con los nuevos valores.

Hagan las modificaciones necesarias en los 3 archivos que mencioné antes.

Finalizado todo, ya pueden cerrar la aplicación y correr el simulador para probar que los cambios hayan surtido efecto y disfrutar de las mejoras.

CÓMO IMPLEMENTAR UNA ACTUALIZACIÓN DEL PARCHEADOR

Tal cual lo mencioné antes, el parcheador es regularmente actualizado por su autor, para agregar nuevas funciones que él va encontrando. Cuando eso sucede, sale una versión nueva, y si queremos disfrutar de ellas, deberemos actualizar la versión de la interface. Para tal caso, deberemos seguir algunos pasos.

  1. Antes de proceder a la actualización, vaya a la carpeta Parcheador y ejecute el archivo GenericPatcher.exe
  2. Inhabilite todas las opciones que estén activas, en los 3 archivos de gestión, hasta que todo quede en rojo. Asegúrese que nada quede activado y de hacer CLOSE.
  3. Cierre la aplicación.
  4. Explore la carpeta Parcheador, y elimine todos los archivos de la versión vieja.
  5. Descomprima en la carpeta Parcheador, los archivos de la versión nueva.
  6. Haga los cambios necesarios como ha aprendido.

FINALIZANDO

Aunque a alguno le parezca un proceso penoso, poder contar con las reformas que TDW ha conseguido, es maravilloso poder contar con ellas. The Dark Wairth, es un gran pionero en los mods de SH5, y éste es sólo una de sus increíbles hazañas. El Generic Patcher, sin dudas nos deparará enormes sorpresas a futuro, y sería muy útil que todos disfrutemos de ellas, tal es el deseo de su autor.




6 comentarios:

  1. Como es habitual el "experten" Tordo desasna a los giles como yo :-)
    Los mods que se activan con el jsgme... ¿también hay que hacerlo?
    Y una mas.. que es el real navigation?.. el que no te actualiza la posición propia en el mapa?
    Un abrazo

    ResponderEliminar
    Respuestas
    1. Los mods que se activan con el JSGME, son otra cosa y siguen instalándose a través del gestor, como siempre.

      Eliminar
  2. Agrego, estuve probando en el simulador el "parcheador", funciona de 10 (por lo menos no da CTD), estuve probando el control independiente de motores, y si bién funciona visualmente (en la camara externa veo las dos hélices moverse de forma independiente), me parece que la física de el control en sí no está representada, cuando doy avante en un motor y retroceso en el otro, el sub tendría que girar (lo mismo que al encender 1 solo motor), y eso no sucede.
    Como dice en el "readme" del MOD, activé el parche en dos lugares, desactive todos los mods salvo el del control independiente de motores, y usé la misión que viene para probar el control de motores.

    ResponderEliminar
  3. Si, Álvaro. El tema de los motores independientes, todavía está muy verde. Por ahora, sólo sirve para reducir las RPM y ser más silencioso. Pero aún tiene muchas limitaciones. También existe el problema que el motor de babor, parece controlar al motor de estribor y suele dar un mensaje de error (Cannot Comply). El autor dice que aún está investigando el tema.

    ResponderEliminar
  4. Estamos en Guerra!!! TU PAIS TE NECESITA.Ayuda a que tu patria no sea borrado del mapa!Es Una invitación a un juego online GRATUITO, en el que uno tiene un ciudadano y debe pelear por su país, actualmente hay cientos de miles de jugadores de todo el mundo defendiendo sus paises en las constantes guerras que hay. Lo bueno de este juego es que cualquier jugador, con tiempo y experiencia puede formar parte del congreso, tener un periodico, una empresa y hasta ser presidente de la nación (obviamente si se consiguen los votos del pueblo). http://www.erepublik.com/en/referrer/FrancsisG

    ResponderEliminar
  5. alguien me puede decir cual es la clave del silent hunter 5

    ResponderEliminar