44
edits
Thunderforge (talk | contribs) (Removing release value so that Template:EngineDescription properly parses it) |
(Add information about compiling director with `--enable-asan`. The buildbot will error when finding a memory leak.) |
||
(21 intermediate revisions by 10 users not shown) | |||
Line 1: | Line 1: | ||
{{EngineDescription| | {{EngineDescription| | ||
name=director| | name=director| | ||
developer=[[User:sev|sev]], [[User:iskrich|iskrich]]| | developer=[[User:sev|sev]], [[User:iskrich|iskrich]], [[User:djsrv|djsrv]], [[User:npjg|npjg]], [[User:Mstea|mstea]]| | ||
companies=[[Macromedia]]| | companies=[[Macromedia]]| | ||
usedBy=hundreds of games| | usedBy=[[Director/Games|hundreds of games]]| | ||
dateAdded=August 4, 2016 | | dateAdded=August 4, 2016 | | ||
release=| | release=2.5.0| | ||
}} | }} | ||
The Macromedia Director engine was partially implemented by [[User:iskrich|iskrich]] for the [[Summer of Code|Google Summer of Code]] in 2016. | The Macromedia Director engine was partially implemented by [[User:iskrich|iskrich]] for the [[Summer of Code|Google Summer of Code]] in [[Summer of Code/GSoC2016|2016]] and was further implemented by the Google Summer of Code students [[User:djsrv|djsrv]] and [[User:npjg|npjg]] in [[Summer of Code/GSoC2020|2020]] and the Google Summer of Code students djsrv and [[User:sheep|sheep]] in [[Summer of Code/GSoC2021|2021]]. | ||
== Introduction == | == Introduction == | ||
Started out as MacroMind VideoWorks. MacroMind was founded by Marc Canter. The name VideoWorks was changed to Director in 1987. | |||
Director underwent huge number of versions. | Director underwent huge number of versions. | ||
[http://lingoworkshop.com/articles/history History of the engine]. | [http://lingoworkshop.com/articles/history History of the engine]. | ||
[[Director/Codenames|A bit more history of the engine codenames]] | |||
==Games and software targeted by the engine== | ==Games and software targeted by the engine== | ||
Line 21: | Line 25: | ||
== Versions == | == Versions == | ||
See [[Director/Versions]] | |||
== File Format == | |||
=== Archive Team's documentation === | |||
* [http://fileformats.archiveteam.org/wiki/Shockwave_(Director) Shockwave (Director)] | |||
* [http://fileformats.archiveteam.org/wiki/Lingo_bytecode Lingo bytecode] | |||
=== Team Earthquake's documentation === | |||
* [https://medium.com/@nosamu/a-tour-of-the-adobe-director-file-format-e375d1e063c0 A Tour of the Adobe Director File Format] | |||
* [https://docs.google.com/document/d/18FMRZ0EvR2uF9rKTtvt-TXyIMFIBVg13bUhmV3_iHD0/edit Team Earthquake Shockwave Unofficial Documentation] | |||
* [https://docs.google.com/document/d/1jDBXE4Wv1AEga-o1Wi8xtlNZY4K2fHxW2Xs8RgARrqk/edit More Director Movie File Unofficial Documentation] (has in-depth documentation of structs) | |||
* [https://github.com/Brian151/OpenShockwave OpenShockwave repo] (rather unorganized documentation and tools including a Lingo decompiler) | |||
* [https://github.com/Earthquake-Project Earthquake Project repos] (newer versions of the above) | |||
== Development and Running == | == Development and Running == | ||
Line 34: | Line 50: | ||
./scummvm --start-movie=HandV workshop | ./scummvm --start-movie=HandV workshop | ||
Here HandV is the name of a movie in the directory | Here HandV is the name of a movie in the directory. A frame number to start execution | ||
can also be added: | |||
./scummvm --start-movie=HandV@2 workshop | |||
=== Executing lingo tests === | === Executing lingo tests === | ||
Point ScummVM to engines/director/lingo/tests, that will create target 'directortest'. Launching it will try to compile and execute all *.lingo files in that directory. The tests can also be run from the command line with: | Point ScummVM to engines/director/lingo/tests, that will create target 'directortest'. Launching it will try to compile and execute all *.lingo files in that directory. The tests can also be run from the command line with: | ||
./scummvm -d11 -p engines/director/lingo/tests/ directortest | ./scummvm -d11 -p engines/director/lingo/tests/ directortest | ||
The option <tt>--start-movie=<script_name></tt> is also available to run a specific .lingo file. | |||
=== Executing all director movies in a directory === | === Executing all director movies in a directory === | ||
Line 59: | Line 80: | ||
* bytecode -- execute precompiled bytecode instead of compiling Lingo. Lingo Workshop movies have both bytecode and script texts | * bytecode -- execute precompiled bytecode instead of compiling Lingo. Lingo Workshop movies have both bytecode and script texts | ||
* loading -- produces tons of deciphered data from movie files. | * loading -- produces tons of deciphered data from movie files. | ||
=== Compilation === | |||
We aim for 0 memory leaks in the director engine. The automated tests will error when it detects a memory leak. To enable memory leak checks run `./configure` with `--enable-asan`. | |||
=== Automated Tests === | |||
There is a CI (continuous integration) server running for Director. | |||
* [https://john.scummvm.org Buildbot server] | |||
* [https://github.com/rvanlaar/director-buildbot Buildbot server sourcecode] | |||
=== Is my game a Director Game and which version is it? === | |||
Run the following command in the directory of your installed gamedata: | |||
grep --text -ir director|strings |egrep 'Macromedia Director [0-9]' | |||
This will show which version of Macromedia Director was used. If this yields nothing, it probably isn't a Macromedia director game. | |||
== Debugger Commands == | |||
To open the [[Debugging ScummVM|interactive debugger console]] press the key combination that is set for "Open Debugger" in the "Keymaps" tab from ScummVM options (default should be Ctrl+Alt+d). | |||
=== lingo === | |||
Opens a lingo language shell. | |||
) lingo on | |||
lingo) set a to "Hello ScummVM" | |||
lingo) put a | |||
-- "Hello ScummVM | |||
lingo) lingo off | |||
) | |||
Arguments: | |||
* lingo on - Start the interactive lingo shell | |||
* lingo off - Stop the interactive lingo shell | |||
When the shell is on when the line starts with `lingo) `. | |||
==External Links== | ==External Links== | ||
Line 65: | Line 121: | ||
* [https://github.com/scummvm-director/scummvm/tree/director another clone of it] | * [https://github.com/scummvm-director/scummvm/tree/director another clone of it] | ||
* [https://en.wikipedia.org/wiki/Adobe_Director Wikipedia article on the topic] | * [https://en.wikipedia.org/wiki/Adobe_Director Wikipedia article on the topic] | ||
* [https://www.mistys-internet.website/blog/blog/2022/01/06/do-you-speak-the-lingo/ Do You Speak the Lingo?] - blog post by Misty De Meo about the ScummVM engine's development | |||
[[Category:Engines]] | [[Category:Engines]] |
edits