Hi, I am Ramyak. My work centered on the Macromedia Director preservation effort in ScummVM: extending the ImGui-based visual debugger (DT), fixing engine compatibility bugs surfaced by the Gus games, implementing embedded movie cast members, and building screenshot-diff tooling into the ScummVM buildbot. All links below point to the pull requests.
Please refer to the links at the end of this post for weekly breakdowns.
Key deliverables
- Movie cast members (#7752):
embedded Director movies that run as parallel sprites, managing separate execution states while sharing global variables. - Visual Debugger:
- Major features and changes in debug tools like:
Lingo execution tracer (#7816):
a flamegraph view inside the debugger that records Lingo execution for performance and control-flow analysis.
- Major features and changes in debug tools like:

- ImageDiff on buildbot:
brought screenshot-diff regression testing into the ScummVM buildbot dashboard, plus a set of Director regression test movies, so rendering changes can be caught visually.

- Games compatibility:
Mostly for gus games: detection entries and a series of engine fixes (film loops, mouse dispatch, digital video, sound channels) that make the Gus titles playable. Some work was also done on trektech. The goal initially also included The Journeyman Project but since there were a lot of bugs in gus games, I did more work there instead.

Before the coding period I made around 10 contributions building the initial Director visual debugger and fixing film loop rendering, which laid the groundwork for the GSoC work.
Most of the PRs below are merged, three are in review.
Director visual debugger (DT)
- #7553 Fix bugs and crashes throughout the visual debugger
- #7564 Improve search and add a Windows panel
- #7577 Improve cast details, add script browser navigation and keyboard shortcuts
- #7612 Fix script not rendering in the script viewer
- #7646 Fix crashes, stale state, and navigation in the debugger
- #7690 Call-stack highlighting, Cast window improvements, and paused redraw
- #7781 ImGui debugger improvements (sortable cast lists, thumbnail refreshing)
- #7816 Add a Lingo execution tracer that records execution as a flamegraph (in review)
Director engine fixes and features
- #7563 Fix empty cast slot error and immediate sprite drag in D4+
- #7598 Add detection entries for Gus Goes to Cyberopolis (Windows and Mac)
- #7614 Add detection entry for Gus Goes to Cybertown
- #7620 Fix film loop shift when swapping a cast member with Lingo
- #7633 Fix mouseUp dispatching to the wrong sprite in D4
- #7727 Fix film loop D4 and D5+ behavior (freeze during pauses)
- #7752 Implement movie cast members as parallel interactive movies
- #7780 Fix trail-sprite erasure and 0x0 digital-video sizing
- #7825 Share sound channels across the Stage and MIAWs (in review)
- #7854 Fix Lingo point/rect operations and bitmap picture assignment (in review)
Backend
- #7779 BACKENDS: SDL: Preserve SDL text input for active ImGui text fields
ImageDiff and buildbot infrastructure (scummvm-sites)
- #39 Integrate the ImageDiff screenshot diff viewer
- #40 Add pagination and default to the last page
- #41 Replace image comparison with a file check
- #42 Add ImageDiff integration using the wsgi-dashboards plugin
- #43 Fix imports after merging imagediff.py into main.py
Director regression test movies (director-tests)
- #4 D4-win: Text wrapping test movie with reference rendering
- #5 D4 test movies for mouseUp dispatch and text wrapping
- #7 D4-win/D5-win: clickOn manual test movie in both D4 and D5