Das Jahresende steht vor der Tür, und mit ihm eine neue Version von ScummVM. Hier also ein kurzes Update zu einem der ambitionierteren Teilprojekte, das im Hintergrund vor sich hin brodelt: die Unterstützung von Macromedia Director! Für diejenigen, die es nicht wissen: Macromedia Director war ein beliebtes Framework, das für Tausende von Spielen, Bildungstiteln, Katalogen, Kunstwerken und anderen Multimedia-Werken verwendet wurde. ## Neue Spiele zum Testen
Zunächst einmal wird die kommende Version 2.8.0 einige neue unterstützte Spiele enthalten, und wir brauchen Ihre Hilfe beim Testen! Alice: An Interactive Museum Ape Odyssey Classical Cats Gadget: Invention, Travel and Adventure The Cute Machine The Dark Eye * Wrath of the Gods
Sie benötigen die Datendateien von den Original-Installationsmedien der Spiele und eine tägliche Build von ScummVM. Für Macintosh-Versionen müssen Sie die Disc-Images mit Dumper Companion ausführen, um eine vollständige Kopie der Dateien zu extrahieren. Im Fall von The Dark Eye benötigen Sie außerdem die vom Installationsprogramm erstellten Dateien. Wie immer gilt: Wenn Sie auf Probleme stoßen, teilen Sie uns diese bitte über den Issue Tracker mit.
Wenn Ihr Favorit nicht in der Liste der unterstützten Titel aufgeführt ist, verzweifeln Sie nicht! ScummVM kann Director-Titel aus dem Jahr 1995 und früher öffnen. Laden Sie sich also die neueste Daily Build herunter und probieren Sie es aus. Titel, die nach 1995 veröffentlicht wurden, verwenden in der Regel Director-Versionen, die noch nicht unterstützt werden. Wenn Sie nicht weiterkommen, wenden Sie sich an den Issue Tracker und wir werden versuchen, Ihnen zu helfen. Wenn Sie einen Director-Titel gefunden haben, der von ScummVM nicht erkannt wird, ist das großartig! Bitte teilen Sie uns dies im Issue Tracker mit, damit der Titel zur Erkennungsliste hinzugefügt werden kann.
Engine-Versionen Zum Zeitpunkt der Erstellung dieses Artikels kann ScummVM 1595 verschiedene Titel auf Basis von Director erkennen, mit folgenden Zahlen nach Director-Version: | 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 wird die erste Version sein, die eine vorläufige Unterstützung für die D5-Version von Director enthält! Es wurde viel Arbeit in die Überarbeitung des Codes gesteckt, um mehrere Cast-Bibliotheken zu unterstützen, aber es gibt noch viel zu tun, um Lingo-Funktionen und Xtras hinzuzufügen. Die Unterstützung für eine neue Director-Version hinzuzufügen, ist ein kniffliger Prozess. Zuerst müssen wir prüfen, ob es Änderungen am Filmdateiformat gibt, dann müssen wir neue Engine- und Lingo-Funktionen hinzufügen und schließlich müssen wir uns mit Problemen in einer Reihe von Kandidaten-Spielen befassen. Da es schwierig ist, Fakten von Annahmen zu unterscheiden, aktivieren wir Funktionen für eine Engine-Version erst, wenn sie durch Tests bestätigt wurden. Aus diesem Grund lassen sich Spiele für D6 und höher überhaupt nicht öffnen, auch wenn der Code, über den wir verfügen, teilweise funktionieren würde. Die Unterstützung für die Versionen D2, D3 und D4 von Director wurde kontinuierlich verbessert. Wir erstellen eine Reihe von Unit-Tests, sowohl für Lingo als auch für die verschiedenen Zeichenmodi im Renderer. Die meisten verbleibenden Fehler hängen mit undefiniertem oder zufälligem Verhalten zusammen: Wie werden zwei Typen in Lingo verglichen, in welcher Reihenfolge werden Ereignisse verarbeitet oder wie reagieren Funktionen, wenn man ihnen unsinnige Daten übergibt? All diese Dinge werden von Tausenden von Director-Produkten genutzt! Und ScummVM muss sie alle so genau wie möglich unterstützen.
XLibs Macromedia stellte mit Director eine C-API zur Verfügung, die sich für das Hinzufügen neuer Engine-Funktionen als sehr beliebt erwies. Es gibt Hunderte von XObject- und Xtra-Bibliotheken im Umlauf, und jede muss rückentwickelt und als Code zu ScummVM hinzugefügt werden. Zum Zeitpunkt des Verfassens dieses Artikels haben wir Unterstützung für 63 dieser Bibliotheken hinzugefügt. Ein häufiger Anwendungsfall ist Video; Director bietet die Möglichkeit, QuickTime-Videos als Sprite wiederzugeben, aber die Computer jener Zeit hatten Schwierigkeiten mit der zusätzlichen Belastung durch den Renderer von Director, wenn die Videoauflösung größer als eine Briefmarke war. Um dies zu umgehen, gibt es mehrere XLibs, mit denen Videos als beschleunigte Überlagerung wiedergegeben werden können. Bei einigen D3- und D4-Titeln fehlt aufgrund dieser Art von XLib die Videowiedergabe, und wir planen, eine gemeinsame Methode zur Unterstützung dieser Titel zu entwickeln.
Die gute Nachricht ist, dass die meisten ungewöhnlichen XLibs nur ein oder zwei Dinge tun und daher recht einfach zu unterstützen sind. Teil des XLib-Formats ist eine Liste von Docstrings, die jede der Funktionen erklären. In /devtools gibt es ein Skript, das diese Docstrings in Stub-C++-Code umwandeln kann, was viel Arbeit spart. ---
Das war's auch schon! Wir haben einige sehr engagierte Freiwillige, die jeden Winkel der Welt nach obskuren Director-Titeln absuchen und diese testen. Wenn das nach Ihrem Geschmack ist, können Sie sie im Kanal #engine-director des ScummVM Discord besuchen. Bis zum nächsten Mal!