Slutet av året är nästan här, tillsammans med en ny version av ScummVM. Så här kommer en snabb uppdatering för ett av de mer ambitiösa delprojekten som har legat och grott i bakgrunden: Stöd för Macromedia Director! För dem som inte vet det var Macromedia Director ett populärt ramverk som användes för tusentals spel, utbildningstitlar, kataloger, konstverk och andra multimedieverk.
Nya spel att testa
För det första kommer den kommande 2.8.0-versionen att ha några nya spel som stöds, och vi behöver din hjälp med att testa dem!
- Alice: An Interactive Museum
- Ape Odyssey
- Classical Cats
- Gadget: Invention, Travel and Adventure
- The Cute Machine
- The Dark Eye
- Wrath of the Gods
Du behöver datafilerna från spelens ursprungliga installationsmedia och en daily build av ScummVM. För Macintosh-utgåvorna måste du köra skivavbildningarna genom Dumper Companion för att extrahera en fullständig kopia av filerna. När det gäller The Dark Eye behöver du också filerna som skapats av installationsprogrammet. Som alltid, om du stöter på problem, vänligen meddela oss på issue tracker.
Om din favorit inte finns i listan över stödda program, misströsta inte! ScummVM kan öppna Director-titlar från 1995 och tidigare, så hämta den senaste [daily build] (https://www.scummvm.org/downloads/#daily) och prova. Titlar som släpptes efter 1995 tenderar att använda Director-versioner som inte stöds ännu. Om du fastnar, kontakta oss på [issue tracker] (https://bugs.scummvm.org/) så kan vi försöka hjälpa till.
Om du har stött på en Director-titel som inte känns igen av ScummVM, är det bra! Låt oss veta det på issue tracker så att titeln kan läggas till i detekteringslistan.
Engine-versioner
I skrivande stund kan ScummVM upptäcka 1595 olika titlar baserat på Director, med följande antal per 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 kommer att vara den första utgåvan som innehåller preliminärt stöd för D5-versionen av Director! Mycket arbete har lagts ner på att se över kodbasen för att stödja flera cast-bibliotek, men det finns fortfarande mycket arbete kvar att göra med att lägga till Lingo-funktioner och Xtras.
Att lägga till stöd för en ny Director-version är en knepig process. Först måste vi kontrollera om det har skett några ändringar i filmfilformatet, sedan lägga till nya motor- och Lingo-funktioner och slutligen börja arbeta med problem i ett antal kandidatspel. Eftersom det är svårt att hålla reda på fakta kontra antaganden aktiverar vi funktioner för en motorversion först när de har bekräftats genom tester. Det är därför som D6 och högre spel inte kommer att öppnas alls, även om den kod vi har skulle fungera.
Supporten för D2-, D3- och D4-versionerna av Director har stadigt förbättrats. Vi håller på att bygga upp en svit med enhetstester, både för Lingo och för de olika ritlägena i renderingsprogrammet. De flesta av de återstående buggarna är relaterade till odefinierat eller tillfälligt beteende: tänk på hur två typer i Lingo jämförs, eller den exakta ordningen som händelser behandlas i, eller hur funktioner svarar när du skickar dem nonsensdata? Alla dessa saker förlitar sig tusentals Director-produkter på! Och ScummVM måste stödja dem alla så nära som möjligt.
XLibs
Macromedia tillhandahöll ett C API med Director, vilket visade sig vara mycket populärt för att lägga till nya motorfunktioner. Det finns hundratals XObject- och Xtra-bibliotek i omlopp, och alla måste baklängeskonstrueras och läggas till som kod i ScummVM. I skrivande stund har vi lagt till stöd för 63 av dessa bibliotek.
Ett vanligt användningsfall är video; Director innehåller möjligheten att spela upp QuickTime-videor som en sprite, men dåtidens datorer skulle kämpa med det extra overhead som Director's renderare medförde om videoupplösningen var större än ett frimärke. För att komma runt detta finns det flera XLibs som kan spela upp video som ett accelererat överlägg. En hel del D3- och D4-titlar saknar videouppspelning på grund av den här typen av XLib, och vi planerar att skapa en gemensam metod för att stödja dessa.
Den goda nyheten är att de flesta ovanliga XLibs bara gjorde en eller två saker och är ganska enkla att lägga till initialt stöd för. En del av XLib-formatet är en lista med dokumentsträngar som förklarar var och en av funktionerna; det finns ett skript i /devtools
som kan förvandla dessa dokumentsträngar till stubbed C ++ -kod, vilket sparar mycket besvär.
Det är ungefär allt! Vi har några väldigt dedikerade volontärer som söker igenom alla hörn av världen efter obskyra Director-titlar och testar dem; om det låter som din grej kan du besöka dem i kanalen #engine-director på [ScummVM Discord] (https://discord.gg/4cDsMNtcpG). Tills nästa gång!