Difference between revisions of "Director"

Jump to navigation Jump to search
3,050 bytes added ,  08:31, 27 September 2022
Add information about compiling director with `--enable-asan`. The buildbot will error when finding a memory leak.
(Fixed wording)
(Add information about compiling director with `--enable-asan`. The buildbot will error when finding a memory leak.)
(22 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=None|
release=2.5.0|
        status=Not (yet) part of ScummVM|
}}
}}


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 22: Line 25:


== Versions ==
== Versions ==
In Japan at least D4+ was released under title マクロメディア ディレクター
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 35: 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 60: 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 66: 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]]
42

edits

Navigation menu