La fin de l'année approche, ainsi qu'une nouvelle version de ScummVM. Voici donc une mise à jour rapide de l'un des sous-projets les plus ambitieux qui s'est développé en coulisse : Le support de Macromedia Director ! Pour ceux qui ne le savent pas, Macromedia Director était un framework populaire utilisé pour des milliers de jeux, de titres éducatifs, de catalogues, d'œuvres d'art et d'autres travaux multimédias.
Nouveaux jeux à tester
Tout d'abord, la prochaine version 2.8.0 comportera de nouveaux jeux pris en charge, et nous avons besoin de votre aide pour les tester !
- Alice: An Interactive Museum
- Ape Odyssey
- Classical Cats
- Gadget: Invention, Travel and Adventure
- The Cute Machine
- The Dark Eye
- Wrath of the Gods
Vous aurez besoin des fichiers de données provenant des supports d'installation originaux des jeux et d'une compilation quotidienne de ScummVM. Pour les éditions Macintosh, vous devrez exécuter les images des disques via Dumper Companion afin d'extraire une copie complète des fichiers. Dans le cas de The Dark Eye, vous aurez également besoin des fichiers créés par le programme d'installation. Comme toujours, si vous rencontrez des problèmes, n'hésitez pas à nous en faire part dans notre gestionnaire de problèmes.
Si votre jeu préféré n'est pas dans la liste des jeux pris en charge, ne désespérez pas ! ScummVM peut ouvrir les titres Director de 1995 et antérieurs, alors prenez la dernière compilation quotidienne et faites un essai. Les titres sortis après 1995 ont tendance à utiliser des versions de Director qui ne sont pas encore prises en charge. Si vous êtes bloqué, vous pouvez nous contacter via le gestionnaire de problèmes et nous essaierons alors de vous aider.
Si vous avez rencontré un titre Director qui n'est pas reconnu par ScummVM, c'est génial ! Merci de nous le faire savoir sur le gestionnaire de problèmes afin que le titre puisse être ajouté à la liste de détection.
Versions du moteur
Au moment où nous écrivons ces lignes, ScummVM peut détecter 1595 titres différents basés sur Director, avec les chiffres suivants par version 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 |
ScummVM 2.8.0 sera la première version à inclure la prise en charge préliminaire de la version D5 de Director ! Beaucoup de travail a été fait pour réviser la base de code afin de supporter plusieurs bibliothèques de contenu, mais il y a encore beaucoup de travail à fournir pour ajouter les fonctions Lingo et les Xtras.
L'ajout de la prise en charge d'une nouvelle version de Director est un processus délicat. Nous devons d'abord vérifier si le format de fichier vidéo a été modifié, puis ajouter les nouvelles fonctions du moteur et de Lingo, et enfin commencer à travailler sur les problèmes d'un certain nombre de jeux candidats. En raison de la difficulté de distinguer les faits des hypothèses, nous n'activons les fonctionnalités d'une version du moteur qu'une fois qu'elles ont été confirmées par des tests. C'est pourquoi les jeux D6 et supérieurs ne s'ouvriront pas du tout, même si le code dont nous disposons fonctionnerait plus ou moins bien.
La prise en charge des versions D2, D3 et D4 de Director s'est constamment améliorée. Nous construisons une suite de tests unitaires, à la fois pour Lingo et pour les différents modes de dessin dans le moteur de rendu. La plupart des bogues restants sont liés à des comportements indéfinis ou occasionnels : pensez à la façon dont deux types sont comparés dans Lingo, ou à l'ordre précis dans lequel les événements sont traités, ou encore à la façon dont les fonctions réagissent lorsque vous leur passez des données absurdes. Toutes ces choses sont utilisées par des milliers de produits Director ! Et ScummVM doit les prendre en charge le plus fidèlement possible.
XLibs
Macromedia fournissait une API C avec Director, qui s'est avérée très populaire pour ajouter de nouvelles fonctionnalités au moteur. Il existe des centaines de bibliothèques XObject et Xtra en circulation, et chacune d'entre elles doit faire l'objet d'une rétro-ingénierie et être ajoutée en tant que code à ScummVM. Au moment où nous écrivons ces lignes, nous avons ajouté le support pour 63 de ces bibliothèques.
Un cas d'utilisation courant est la vidéo ; Director inclut la possibilité de lire des vidéos QuickTime en tant que sprite, mais les ordinateurs de l'époque avaient du mal à supporter la surcharge du moteur de rendu de Director si la résolution de la vidéo était supérieure à celle d'un timbre-poste. Pour contourner ce problème, il existe plusieurs XLibs qui permettent de lire des vidéos sous forme de superposition accélérée. Plusieurs titres D3 et D4 n'ont pas de lecture vidéo à cause de ce type de XLib, et nous prévoyons de créer une méthode commune pour les prendre en charge.
La bonne nouvelle, c'est que la plupart des XLibs peu communes ne font qu'une ou deux choses, et sont assez faciles à prendre en charge. Une partie du format XLib est une liste de docstrings expliquant chacune des fonctions ; il y a un script dans /devtools
qui peut transformer ces docstrings en code C++, ce qui évite beaucoup de tracas.
C'est à peu près tout ! Nous avons quelques volontaires très dévoués qui parcourent les quatre coins du monde pour trouver d'obscurs titres Director et les tester ; si cela vous tente, vous pouvez leur rendre visite sur le canal #engine-director du Discord ScummVM. À la prochaine !