Últimas publicaciones
14 dic. 2023: Resumen de fin de año sobre Director
Publicado por moralrecordings

Ya se acerca el final del año, al igual que una nueva versión de ScummVM. Así que aquí tenéis una puesta al día sobre uno de los subproyectos más ambiciosos que ha estado operando en un segundo plano: ¡el soporte para Macromedia Director! Para quienes no lo sepan, Macromedia Director fue un «framework» popular que se utilizó en miles de juegos, títulos educativos, catálogos, obras de arte y otras obras multimedia.

Nuevos juegos listos para pruebas

Para empezar, la próxima versión 2.8.0 incluirá varios juegos nuevos compatibles, ¡y necesitamos de vuestra ayuda para probarlos!

  • Alice: An Interactive Museum
  • Ape Odyssey
  • Classical Cats
  • Gadget: Invention, Travel and Adventure (no confundir con Gadget: Past as Future/El Pasado es el Futuro)
  • The Cute Machine
  • The Dark Eye
  • Wrath of the Gods

Necesitaréis los archivos de datos de los medios de instalación originales de los juegos y una compilación diaria de ScummVM. Para las ediciones para Macintosh tendréis que abrir las imágenes de los discos con Dumper Companion para extraer una copia completa de los archivos. En el caso concreto de The Dark Eye también hacen falta los archivos creados por el instalador. Como siempre, si encontráis cualquier problema, os rogamos que nos lo hagáis saber en el gestor de problemas (en inglés).

Si vuestro juego favorito no se encuentra en la lista de juegos compatibles, ¡no perdáis la esperanza! ScummVM es capaz de abrir títulos hechos con Director de hasta 1995, así que haceos con la última compilación diaria y probad suerte. Los títulos publicados después de 1995 suelen utilizar versiones de Director que todavía no son compatibles. Si os atascáis en las pruebas, contactadnos en el gestor de problemas (en inglés) e intentaremos ayudar.

Si encontráis un título hecho con Director que no sea reconocido por ScummVM, ¡estupendo! Avisadnos en el gestor de problemas (en inglés) para que podamos añadir el título a la lista de detección.

Versiones del motor

En el momento de redactar estas palabras, ScummVM puede detectar 1595 títulos distintos basados en el motor Director, y este es el recuento según la versión de Director:

D0 D1 D2 D3 D4 D5 D6 D7 D8 D9 D10 D11
12 1 14 288 602 262 194 97 138 31 36 4

¡La versión de ScummVM 2.8.0 será la primera que incluya compatibilidad preliminar con la versión D5 de Director! Hemos trabajado mucho para actualizar el código base y dar soporte a varias librerías «cast», sin embargo, todavía queda mucho que hacer para añadir las funciones Lingo y los Xtras.

Añadir soporte para una versión nueva de Director es un proceso complejo. Primero tenemos que comprobar si hay el más mínimo cambio en el formato de archivos de vídeo, después añadir cualquier característica nueva, tanto del motor como de Lingo; y por último empezar a resolver problemas en un puñado de juegos candidatos. Debido a la dificultad que tiene controlar qué son hechos y qué son suposiciones, solo activamos las características de una versión del motor una vez han sido confirmadas mediante pruebas. Por ese motivo, los juegos de la versión D6 en adelante no se ejecutarán, aunque el código que tengamos llegase a funcionar.

El soporte para las versiones D2, D3 y D4 de Director ha mejorado a paso firme. Estamos preparando un conjunto de pruebas unitarias, tanto para Lingo como para los diversos modos de dibujado que tiene el renderizador. La mayoría de fallos que quedan están relacionados con comportamientos sin definir o incidentales: ¿sabéis cómo se comparan dos tipos de Lingo, o el orden exacto con el que se procesan los eventos, o cómo reaccionan las funciones al transmitirles datos sin sentido? ¡Todo esto es utilizado por miles de productos hechos con Director! Y ScummVM debe dar compatibilidad a todo de la forma más fiel posible.

XLibs

Macromedia incluía una API para C con DIrector que demostró ser muy popular para añadir características nuevas al motor. Hay cientos de bibliotecas XObject y Xtra en circulación, y a todas ellas hay que hacerles ingeniería inversa para añadirlas como código a ScummVM. En el momento de redactar esta noticia hemos añadido el soporte a 63 de dichas bibliotecas.

Un caso de uso común son los vídeos; Director incluye la capacidad de reproducir vídeos en formato QuickTime en forma de sprite, pero a los PC de la época tendrían problemas con la sobrecarga adicional del renderizador de Director si la resolución del vídeo era más grande que un sello de correos. Para hacer el apaño existen varias XLibs que reproducen vídeos como superposiciones aceleradas. A bastantes títulos en D3 y D4 les falta la reproducción de vídeos por este tipo de XLib y pretendemos crear un método común para darles soporte.

La buena noticia es que la mayoría de XLib especiales solo hacían una o dos cosas y es bastante fácil darles un soporte inicial. Una parte del formato XLib consiste en una lista de «docstrings» que explican cada una de las funciones, hay un script en /devtoolsque puede convertir dichas docstrings en código «stub» C++, lo que ahorra muchas molestias.


¡Y eso es todo! Tenemos voluntarios muy entregados que están escudriñando hasta el último rincón del planeta en busca de títulos de Director poco conocidos para probarlos; si es algo que os llama la atención, podéis visitarlos en el canal #engine-director del Discord de ScummVM. ¡Hasta la próxima!