10/12/2019

La decadencia del Olimpo

Estamos llegando al final del año, un tiempo fantástico para reflexionar sobre todo lo que ocurrió a lo largo de él; y también para comenzar a planear los proyectos y objetivos a alcanzar durante el próximo año. Aunque como ya sabéis, el 2020 me lo voy a tomar con muuuucha más calma.

Quizás algo que no esperaba que gustase tanto, fueron mis apariciones en el magnifico podcast del señor Chema. Al ser todo tan improvisado, siempre voy a tener la sensación de que podía haberme expresado mejor ó por lo menos, haber detallado mejor ciertos aspectos. Pero quizás por eso mismo terminó saliendo tan natural y desenfadado, y se agradece muchísimo todas esas felicitaciones por las risas compartidas con los amigos durante ese ratejo.

Una de los asuntos que más ha llamado la atención, fue mi visión sobre el final de la "época dorada". Mi punto de vista personal está muy apartado de esa opinión generalizada de que las empresas no se supieron adaptar; no es que no se supieran adaptar, es que en realidad no había mucho interés en fomentar una industria de videojuegos en el país. A veces pienso, que muchas de las empresas tenían bien claro desde el comienzo que aquello era solo la moda del momento, y que en aquel instante se hacía eso, pero una semana después se podía dar un giro de 180 grados y hacer una cosa sin relación alguna con los videojuegos.

Tampoco ayudó mucho el desgaste existente a finales de los 80, que ayudó a que las principales empresas perdieran el norte por completo; los motivos para ese desgaste/decadencia son múltiples y variados, y van desde la falta de proyección internacional al desinterés en fomentar la creación de profesionales en el área.

Este último detalle es más importante de lo que parece, porque rara fue la compañía japonesas que no tenía una academia para poder preparar a sus futuros empleados, los ejemplos más conocidos son Nintendo ó Hudson Soft. En esta última, uno de los proyectos para graduarse era la creación de una versión del Cannon Ball, juego que más tardé inspiraría a Mitchell para el Pang.


Desarrollo de Juegos en Japón 101

También soy muy crítico por la forma con que las empresas se dejaron deslumbrar con los fastos del 92. Todas querían hacer juegos de deportes, algunas como Opera hasta decidieron traicionar por completo el espíritu de la compañía, una empresa que llevaba la originalidad por bandera y que de la noche a la mañana, decide dedicarse por completo a la creación de juegos deportivos y a comprar licencias "prestigiosas/ridículas"; el ejemplo máximo es Angel Nieto, el cual llevaba ya más de media década inactivo.

Y numeritos en esa línea, como el tan loado (por revistas de sábanas) "gran triunfo" económico del Drazen Petrovic, juego favorito de Nieto, "personaje de nefasto recuerdo que destrozó 💩💩soft" según la definición del DRAE. Pues eso, otra 💩💩villa estilo Score 3020 donde lo más importante no fue hacer un algo que pudiésemos llamar juego, aquí la genialidad fue meter una clausula en el contrato para cobrar un dinerito en el caso de que Drazen saliese del Madrid, lo cual no era difícil de imaginar que ocurriese, especialmente conociendo como se comportaba el tipejo.


3020 tonos de 💩

Como podéis imaginar, producto de ese desgaste y esas decisiones estúpidas e incongruentes, se empezaron a notar las primeras grietas, comenzando por una falta de cuidado y dejadez de lo que hasta entonces eran productos intachables. Una falta de calidad que resultaría inimaginable unos años antes; pero lo peor fue esa complacencia que les hizo no ver más allá de los Pirineos hasta que ya fue tarde, tan tarde, que ya no fue posible distribuir sus productos fuera de España por carecer de versiones de consolas ó de ordenadores 16 bits, que era lo que por entonces pedía el mercado internacional.

Así que la única opción que les quedó fue intentar explotar el mercado interno de los 8 bits en una endiablada carrera de lanzamientos continuos; buena parte de estos juegos carecían del tiempo de desarrollo y pruebas necesario para poder estar a la altura de antaño. Y si en las versiones mimadas de 8 bits se podían apreciar esos desconchones, el estado en que se encontraban las versiones de 16 bits daba para ver como los cimientos se iban resquebrajando.

La transición a estos nuevos ordenadores fue bien traumática; comenzando por el hecho de que ese estilo de juegos de 8 bits, tan caduco a esas alturas, no alcanzaba las expectativas del grupo de usuarios que constituían el parque de 16 bits en nuestro país; el cual en su mayor parte poseía un perfil más maduro que "esos críos que jugaban a marcianitos".

Imaginad que entráis en una tienda queriendo comprar un juego de ST y puedes escoger entre el Chicago's 30 de Topo, el Phantis de Dinamic, el Corsarios de Opera, el Telemark Warrios de Dro Soft, el Free Climbing de Zafiro ó el Maniac Mansion de Lucasfilm. ¿A ver quién es el guapo que no sale con el Maniac Mansion?


Hijo de 16 bits nunca reconocido...

Lo cual se convirtió en la pescadilla que se muerde la cola, ya que por un lado tenemos una carencia de juegos españoles ambiciosos de 16 bits, juegos más bien 8 biteros que no podían competir con los juegos de calidad proveniente del extranjero; debido a esta baja calidad del producto patrio, el usuario nacional les da la espalda por completo; y como consecuencia de esa falta de ventas, se hace imposible para las empresas españolas el poder dedicar recursos a hacer esos juegos más ambiciosos que el público reclamaba.

Y no, una presentación que se hace en dos tardes, no se puede comparar con las que se estilaba Psygnosis; ni mucho menos cuando lo que le acompaña es un puzzle de los que le falta una casilla, de esos de listado basic de 10 líneas de revistas; más una fase de plataformas típica de 8 bits; un árcade corto de scroll lateral; el enésimo intento de reusar el scroll del Butragueño; para terminar en otro juego cutre en basic. No, eso no es un juego ambicioso de 16 bits, es un conjunto de pruebas de juegos de 8 bits mal pegadas.


Nadie más dudará de mi Nietoteligencia...

¡No siento los pixeles de mis piernas!

Emilio dribla a la tortuga y...

El equipo recibiendo un merecido premio

Todo eso nos ha creado a día de hoy un gravísimo problema a la hora de intentar preservar estos títulos, ya que las ventas de estos juegos de 16 bits fue ridícula; juegos que llegaban a mil unidades vendidas en ST ó Amiga se consideraban un éxitazo, pero lo normal era llegar a trescientas unidades vendidas ó números similares.

Por lo que cada vez que conseguimos recuperar un juego español de 16 bits, deberíamos celebrar una fiesta, porque no es fácil, nada fácil. Y el esfuerzo que hay atrás de cada una de estas preservaciones de juegos de 16 bits es bastante mayor que en el caso de los 8 bits.

Así que hoy es un día de fiesta, y por primera vez en este blog, no voy a hablar de CPC, hoy hablaremos de esa otra máquina maravillosa que empieza por Am... ¡el Amiga! Voy a intentar mostraros el trabajo que hay detrás de la recuperación de un MIA de 16 bits. En este caso del MOT de Amiga, que gracias a Jaime(quién si no), "estamos en proceso" de preservarlo. Luego explicaré mejor que es eso de estar en proceso... y si, habrá muchos dibujitos, jejeje.

El primer paso es uno de los más difíciles, encontrar un original de un juego español de Amiga es algo muy complicado, encontrarlo con caja, manuales y demás es prácticamente imposible; muchas veces se usan los manuales de 8 bits porque a veces aparecen las instrucciones de carga de 16 bits, pero no siempre se corresponden con los verdaderos manuales de esas versiones.

¡Ah!, y no me hablen del After the War, AMC, Rainbow Island, F29 Retaliator, ... que esos juegos venían de regalo con uno de los pack más vendidos del A500 en nuestro país. Estoy hablando de juegos españoles ó distribuidos en España en tiendas, si, de esos que tenías que pasar por caja y los recibías a cambio de dinero, no de aquellos juegos que te pasaba tu colega en disquetes azules ó en Verbatim (si tenías pasta) y que en las pistas sin usar te aparecía escrito (W)XCOPY(W)XCOPY(W)XCOPY...


¿Eso un original de Amiga? No, no, no...

¡Estos si son juegos originales de Amiga!

Después de ese primer paso, viene uno de los más divertidos y es volcar esos discos; si fuera una cinta ya sabemos que un WAV es más que suficiente para poder trabajar luego sobre él y así obtener algunos de los formatos estándar como CDT y similares. Bueno, pues en el caso de los discos, todos tenemos claro que la precisión para poder capturar toda la información es a nivel de flujos magnéticos. Pero fuera parte eso, no se llega a un acuerdo en nada más; y es que una vez que entras en la actualidad del mundo de los 16 bits, verás que los egos son de por lo menos 128 bits.

Así que no existe un estándar con el que todo el mundo concuerde, para que os hagáis una idea no ha sido hasta hace muy poco que tenemos por lo menos un contendiente que es open source; el cual hace uso del formato SCP ó Super Card Pro, un estándar a nivel de flujos magnéticos tan bueno como cualquier otro. Ya que hasta ahora, las únicas opciones que teníamos disponibles eran el formato FDI, que es de pago y cerrado, ó el kryoflux ídem de ídem y además, controlado por un grupo de gilipollas... una historia demasiado larga para el bien de este blog, y eso que ni iba a mencionar el atraco intelectual a Richard Aplin, así que ojos que no ven, corazón que no siente :P

Gracias a este fantástico compañerismo, aunque en teoría es posible convertir de un formato de flujos magnéticos a otro, ahora mismo solo podemos hacer esas conversiones usando una de las dos herramientas de terceros existentes. Pero por culpa de ser formatos cerrados sin documentación, se dificulta y mucho la aparición de más herramientas de terceros que podrían ayudar a tareas que ahora mismo son bien pesadas, como la corrección manual de bits, algo que puede ser más útil de lo que parece.

En este momento es cuando viene mi amigo el picstar y comenta que él ha usado ADFs toda la vida y nunca tuvo problemas. Ehem, sr. Pica, un ADF es un volcado a saco de los sectores de un disco sin protección, osea, perfecto para tus juegos piratas pero totalmente impracticable para el uso de originales protegidos. Hecho el inciso, sigamos con el proceso de recuperar el MOT.


Tengo el Batbam novo maubricio

Nuestra primera opción fue hacer una imagen raw con kryoflux, la principal gran ventaja es que se genera un fichero por cada pista del disco en donde se almacenan los flujos magnéticos correspondientes a esa pista; por lo que una vez tenemos una parte importante del disco preservado, podemos enfocarnos en recuperar las pistas problemáticas. Algunos pensaréis que sería bastante más interesante que fuera un fichero por cada sector; pero en función de las protecciones, el número de sectores por pista y la información de control de las pistas puede variar y muchísimo. Por lo que la única forma de conservar toda la información, es trabajar a nivel de pistas.

Recordemos que el Amiga usa las dos caras del disco, y un disco normal tiene 80 pistas por cara, y cada pista contiene 11 sectores (2 * 80 * 11 * 512 = 901.220 bytes = 880 KBs). Aunque un detalle importante es que la mayoría de las disqueteras de Amiga eran capaces de leer por lo menos 4 pistas adicionales, por lo que incluir estas pistas extras es una buena practica a la hora de hacer un volcado. De hecho, el mismo programa de volcado nos dirá si aquellas pistas estaban formateadas ó no; y es que aunque se pueden contar con los dedos de una mano los casos de los juegos que soportaban estas pistas extras, ahora mismo solo recuerdo el Last Duel de US Gold, seguramente habrá algún caso más y sería una pena perder una parte del juego por falta de celo.


Así que era por eso lo de los últimos ceritos de cada cara...

Una vez hecho la primera imagen de los dos discos del MOT, llega el momento de analizar si todas las pistas y sectores fueron leídas correctamente. En el caso del primer disco todo parecía correcto:

Pero con el segundo disco encontramos bastantes más problemas, ya que existían varias pistas con múltiples errores. Aquí fue donde Jaime tuvo que hacer uso de todo su arsenal de trucos para al final poder obtener la imagen que a continuación mostramos:

Como podéis ver, después de todo ese duro trabajo, todavía se producía un error al leer un sector del disco, mas exactamente en el sector 6 de la pista 25 de la segunda cara. Los motivos de ese error pueden ser de lo más variados, en este caso sospechamos que el disco está empezando a sentir síntomas de desmagnetización por el paso del tiempo, esos discos tienen 30 años. Afortunadamente Jaime logró reducir el error a un solo sector, por lo que en el peor de los casos eso nos supondría tan solo una perdida de 512 bytes.

Es en este punto donde Jaime me pasó el testigo para intentar ayudar a preservar este juego. Lo primero que hice, partiendo de esos archivos con los flujos magnéticos de las pistas, fue generar un par de imágenes de disco en formato SCP para poder cargarlas en el emulador de Amiga, WinUAE, y confirmar que el juego funcionaba.




Cosas divertidas, como salta a la vista, la presentación del juego está en francés. Así es, en una demostración de profesionalidad y saber hacer, a los chicos de Opera directamente se la sudaba el mercado español de Amiga y ni se molestaron en vendernos el juego en castellano (*).


Busco a Jack... ¡Bomb Jack!

Ahora la cosa menos divertida, al intentar cargar el último nivel, el juego nos pedirá introducir el segundo disco, para leer los datos de ese nivel... por desgracia intentará leer varias veces la maldita pista 25, mas sin éxito, por lo que el juego se termina bloqueando al ser imposible de leer sin errores la susodicha pista 25.

Al llegar a este punto, nuestras opciones para intentar recuperar la información del sector son limitadas, pero existen. Lo más fácil, normalmente, es hacer uso de algunos de los múltiples crack de ese juego para restaurar los datos perdidos, a priori es lo más cómodo y rápido. Pero debida al paupérrimo número de unidades vendidas de estos juegos españoles, el número de cracks también es bastante limitado.

En el caso del MOT, solo existe un crack y de origen desconocido (aunque yo teorizo que fue hecho en España). Y para que os hagáis una idea, hasta la gente del whdload ha tenido que tirar de este crack para hacer el instalador del juego.

Mediante el uso de un editor hexadecimal me fue posible encontrar los datos correspondientes al sector maldito, que por supuesto en el crack se encontraban en otra posición completamente diferente, y pude descubrir que... ¡solo teníamos un bit mal en todo el sector! Otro motivo más para aplaudir el duro trabajo de Jaime.

Aunque ahora llega el momento del humor absurdo, corregir ese bit en los archivos de flujos magnéticos, no es tarea para débiles de corazón, principalmente porque ese formato no está documentado y no existen públicamente disponibles herramientas que nos permitan hacer esa tan útil, como básica operación. La única opción que nos queda es intentar entender el formato, algo que me robaría un tiempo absurdamente estúpido.

Por lo que pensamos en una solución más directa y eficaz. Ver si era posible crear un imagen de disco en un formato más fácil de manipular, como los ADF. Corregir el bit en esa versión, volcarlo a un disco real y extraer esa pista con las herramientas de preservación, para así reemplazar la pista errónea con una versión corregida.

Pero el formato ADF no permite protecciones, ¿cómo vas a garantizar que el disco sea idéntico al original? Fácil, las protecciones de los juegos españoles de Amiga son nivel juego "dinámico" para calculadora (seguro que ya estabais echando de menos una broma de calculadoras :P).

Dicho y hecho, creé un par de ADFs a partir de los SCPs, corregí el bit e intenté cargar los ADFs en el emulador. Durante el primer intento me saltó la protección en el disco 1; pero como en ese instante no estaba preocupado con eso, pues cambie el ADF del primer disco por la versión en formato SCP y cuando el juego me pidió el segundo disco, usé mi ADF con el bit corregido. Y éste fue el resultado:


Lo cual me confirmó dos cosas, que la protección está solo en el primer disco y que el segundo disco ya estaba correcto. Aunque para confirmar mis sospechas de que ese bit equivocado no era tan importante, decidí echar un vistazo y descubrí que pertenecía a un byte de datos (creo que es ó un efecto de sonido ó parte del mapa). En este momento, se podía decir que ya había terminado mi tarea...

Los que me conocéis, sabéis que esto no podía terminar aquí, jejeje. Y es que la posibilidad de hacer un crack de un MIA de Amiga a día de hoy es prácticamente cero... excepto si hablamos de juegos españoles :P

Como sabía que la protección sería lo más aburrido, la dejé para el final. Pero como al mismo tiempo, y por comodidad, quería lanzar el juego desde los ADFs, pues decidí prestar atención a los sectores del disco que se estaban intentando cargar. No fue complicado de ver que una vez que seleccionábamos una de las cuatro opciones del menú, el cargador intentaba mirar algo en la última pista del disco, la 79; y si no encontraba lo que quería, el juego aparentaba bloquearse.


Protección bien calculada

Así que abrí el ADF en un editor hexadecimal y observé que esa última pista estaba rellena con el mensaje "MISSING BLOCK", lo cual significa que esa pista estaba sin formatear en el disco original. Por lo que la protección de Opera debe leer varias veces esa pista y en el caso de que devuelva siempre la misma información, considerará que es un disco pirata y se bloqueará (NOTA: Normalmente si lees varias veces seguidas una pista sin formatear los valores que obtienes aparentan ser aleatorios, por la sencilla razón de que los delimitadores no están inicializados, por lo que las lecturas comenzarán en zonas diferentes, por eso esa aparente aleatoriedad).

FX Solución Cutre para saltarse esta protección de forma temporal en emuladores: Abrimos ese ADF en un editor hexadecimal, cortamos esa última pista y grabamos de nuevo el fichero. Un emulador decente reemplazará en memoria esas pistas inexistentes por pistas sin formatear, por lo que acabamos de saltarnos la protección sin escribir un byte de código.

Éste es el momento de recordar de lo que hablamos varios párrafos atrás, eso de que las opciones que teníamos a nuestra disposición para corregir el disco eran bien limitadas. La otra opción que teníamos es solamente posible gracias a esa mentira tan grande de que las compañías exprimían la máquina al máximo. En el caso del software español de 16 bits, las versiones de Amiga solían ser conversiones tristísimas de ST... y lo más divertido, es posible crear una biblioteca con todas las funciones de acceso al Amiga que usaban nuestras queridas compañías y es que cuando me dió por estudiar los juegos patrios, llegué a la conclusión de que ó todos habían sido muy buenos amiguitos ó el pirateo entre las compañías era salvaje :P (**)


El pie original de donde saqué esta foto es más divertido que mi decadente imaginación...

¿Y a qué viene esto ahora? Pues a que me dió por buscar si la versión de MOT para ST estaba preservada. ¡Y lo está! La gente de ST es más metódica, trabajadora y menos dada al autobombo que la plaga de amigueros que quedan hoy en día. Lógicamente el juego es idéntico a todos los niveles, excepto que en la versión de Amiga, recordemos por un segundo la intro:


Mientras que la flamante versión española de ST, ¡Chantatachan! Tenemos la intro en perfecto español:


No será capaz...

Llegó la hora de explicar el primer asterisco. En realidad, yo creo que la existencia de la versión de Amiga se la debemos más a Ubi Soft que a Opera; seguramente fue una exigencia de Ubi para vender el juego en Francia, ya que se nota que la versión de 16 bits original fue la de ST y no solo por la traducción de la intro. Si echáis un vistazo a esa versión, os vais a encontrar que la flecha del menú hasta tiene una pequeña animación de la que carece la versión de Amiga y algún que otro pequeño detalle, cosas de las prisas por mandar a Ubi rápidamente una versión de Amiga.

Siguiendo con otra de esas demostraciones de gran nivel técnico de Opera en Amiga (y pensar que era mi empresa favorita de CPC por su cuidado técnico y amor al detalle...), decidí investigar con más detalle el contenido del segundo disco, ya que solo se usa para el último nivel del juego. Lo mismo podría encontrar una outro ó hasta restos del código u otros juegos de Opera. Pero mi gozo en un pozo, para comenzar ese segundo disco está prácticamente vació y al pasarlo por un ripeador de gráficos me encontré esto:


La papelera estándar del WorkBench 1.x...

Pero ya sabemos que la vida es como una caja de bombones, y esta vez fue una grata sorpresa digna de los mejores momentos de Forrest. Resulta que me da por revisar el resto del disco en el ripeador de gráficos y allí está todo el juego sin compresión alguna. Seguramente Opera ó robaban los discos ó se los regalaban las empresas ó tenían acciones en alguna empresa que fabricaba discos.


Nivelón, nivelón...

Por lo que reemplazar la imagen original de la intro de Amiga por la de ST, fue tan fácil como: extraer la imagen de ST de un volcado de memoria de un emulador de ST; pasarla por mi herramienta conversora de gráficos a formato nativo de Amiga y pegar esos datos en el disco usando un editor en hexadecimal.

Aprovechando que ya tenía el editor hexadecimal abierto, copié el texto que sale en castellano en el scroll de letras al final de la intro de ST. Y ¡voilà! Versión Amiga en español en menos de los famosos 5 minutos con los que Opera se pavoneaba cuando decían que eso es lo que tardaban en "convertir" un juego de calculadora a msx :P


Je suis magnifique... y no tengo abuela

En este instante, lo único que nos falta es anular esa protección del primer disco para lanzar el juego sin problemas en la máquina real, ya que desformatear una pista no es algo tan fácil :P

Aquí es solo recordar eso que comentamos antes, que cuando la protección salta... "el juego aparentaba bloquearse". Sabiendo que nos esperaría otra maravilla tecnológica, decidí cortar por lo sano, cargar la versión con el ADF completo en el emulador, esperar al supuesto bloqueo, entrar en el depurador del emulador y observar donde se había parado el código. Como me suponía, el código estaba en un bucle infinito del tipo:

bucle_infinito: BRA bucle_infinito

Así que reemplacé esa instrucción de dos bytes por el NOP de dos bytes del 68000, salí del depurador y mágicamente el juego volvió a funcionar retomando la carga del nivel correspondiente.

Por lo que volví al editor hexadecimal para parchear esos dos bytes de la protección en el ADF. Guardamos el ADF, lo cargamos de nuevo en el emulador y comprobamos que hemos desactivado esa protección de los "genios de la edad dorada"...


Debía ser porque comían muchas galletas...

Llegados a este punto, para poder publicar el crack lo único que tengo que hacer es:

¡Nos vemos el año que viene!


-*-





.

.

.






¿Y esos dos asteriscos?






.

.

.






.

.

.






Yo creo que es algo muy sospechoso....






.

.

.






.

.

.






.

.

.






.

.

.






OK, OK, OK, quizás 2020 sea finalmente el año de mis dos sorpresas de 16 bits ;)


-*-