Publicações Mais Recentes
14 de dez. de 2023: Resumo de fim de ano do Director
Publicado por moralrecordings

O fim do ano está quase chegando, junto com um novo lançamento do ScummVM. Então, aqui está uma atualização rápida para um dos subprojetos mais ambiciosos que tem permanecido em segundo plano: suporte ao Macromedia Director! Para quem não sabe, o Macromedia Director foi um popular framework utilizado por milhares de jogos, títulos educacionais, catálogos, peças de arte e outros trabalhos multimídia.

Novos jogos para teste

Em primeiro lugar, a próxima versão, 2.8.0, terá alguns novos jogos suportados e precisamos da sua ajuda para testá-los!

  • Alice: An Interactive Museum
  • Ape Odyssey
  • Classical Cats
  • Gadget: Invention, Travel and Adventure
  • The Cute Machine
  • The Dark Eye
  • Wrath of the Gods

Você precisará dos arquivos de dados da mídia de instalação original dos jogos e de uma versão diária do ScummVM. Para edições Macintosh, você precisará executar as imagens do disco através do Dumper Companion para extrair uma cópia completa dos arquivos. No caso do The Dark Eye, você também precisará dos arquivos criados pelo instalador. Como sempre, se você tiver problemas, informe-nos no rastreador de problemas.

Se o seu jogo favorito não estiver na lista de suportados, não se desespere! O ScummVM pode abrir títulos do Director de 1995 e anteriores, então pegue a versão diária mais recente e experimente. Os títulos lançados depois de 1995 tendem a usar versões do Director que ainda não são suportadas. Se você tiver dúvidas, contate-nos pelo rastreador de problemas para que possamos tentar ajudar.

Se você encontrou um título de Director que não é reconhecido pelo ScummVM, ótimo! Informe-nos no rastreador de problemas para que o título possa ser adicionado à lista de detecção.

Versões da engine

No momento em que este artigo foi escrito, o ScummVM pode detectar 1595 títulos diferentes com base no Director, com as seguintes contagens por versão do 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

ScummVM 2.8.0 será o primeiro lançamento a incluir suporte preliminar para a versão D5 do Director! Muito trabalho foi feito para revisar a base de código para suportar múltiplas bibliotecas de conversão, no entanto, ainda há muito trabalho a ser feito adicionando funções Lingo e Xtras.

Adicionar suporte para uma nova versão do Director é um processo desafiador. Primeiro, precisamos verificar se há alterações no formato do arquivo do filme, depois adicionar qualquer nova engine e recursos do Lingo e, finalmente, começar a resolver os problemas em vários jogos candidatos. Devido à dificuldade de acompanhar fatos versus suposições, só ativamos recursos para uma versão da engine depois de confirmados por testes. É por isso que os jogos D6 e superiores não abrem, mesmo que o código que temos funcione de alguma forma.

O suporte para as versões D2, D3 e D4 do Director tem melhorado constantemente. Estamos construindo um conjunto de testes unitários, tanto para o Lingo quanto para os vários modos de desenho no renderizador. A maioria dos bugs restantes está relacionada a comportamento indefinido ou incidental: considere como dois tipos no Lingo são comparados, ou a ordem precisa em que os eventos são processados, ou como as funções respondem quando você lhes passa dados sem sentido? Todas essas coisas são utilizadas por milhares de produtos Director! E o ScummVM deve oferecer suporte a todos eles da forma mais próxima possível.

XLibs

A Macromedia forneceu uma API C com Director, que provou ser muito popular para adicionar novos recursos à engine. Existem centenas de bibliotecas XObject e Xtra em circulação, e cada uma precisa passar por engenharia reversa e ser adicionada como código ao ScummVM. No momento em que este artigo foi escrito, adicionamos suporte para 63 dessas bibliotecas.

Um caso de uso comum é o vídeo; O Director inclui a capacidade de reproduzir vídeos QuickTime como um sprite, mas os computadores da época teriam dificuldades com a sobrecarga adicional do renderizador do Director se a resolução do vídeo fosse maior que um selo postal. Para contornar isso, existem vários XLibs para reproduzir vídeo como uma sobreposição acelerada. Muitos títulos D3 e D4 não têm reprodução de vídeo devido a esse tipo de XLib, e planejamos criar um método comum para suportá-los.

A boa notícia é que a maioria dos XLibs incomuns faziam apenas uma ou duas coisas e são muito fáceis de adicionar suporte inicial. Parte do formato XLib é uma lista de documentos que explicam cada uma das funções; existe um script em /devtools que pode transformar essas docstrings em código C++ fragmentado, evitando muitos problemas.


E é isso! Temos alguns voluntários muito dedicados vasculhando todos os cantos do globo em busca de títulos obscuros do Director e testando-os; se isso te interessa, você pode visitá-los no canal #engine-director do Discord do ScummVM. Até a próxima!