:D All sounds like great progress to me, and an interesting read.
Thanks for the support. :)
Since last pointing I've made some further progress. I was actually blocked for the past week, since as soon as the Doorbot exited the crashed ship and started talking to me, the game would crash. Turns out that that the NPC videos were using Indeo4 video encoding, which the ScummVM framework didn't support. It had a decoder for Indeo3 already, but not 4. So I had to spend the week pinching code from ffmpeg and building up a decoder that properly plugs into the existing ScummVM decoder framework, and meets the project's coding conventions. And on the weekend I finished it, and it was accepted into the codebase. No longer any crash \o/. Though the Doorbot isn't properly animating yet either. But that must be due to some other bug in my code, since a little test video playback loop I did outside of the engine verifies I can play the Doorbot's AVI file (y457.avi) just fine now.
The lack of transparency is also noticeable now for the Doorbot. It's looking more and more like the secondary video track that some of the AVIs have is used as a mask, to indicate which pixels are transparent (and shouldn't be drawn).. I'd previously avoided bothering to disassemble the drawing routines, and just used the ScummVM framework's drawing. Though ScummVM's drawing methods only allow for a designated transprency color, not an entire image mask. So it looks like I'll have to write some custom blitting code to handle the drawing.
The other thing that happened was that it was pointed out to me that GOG, bless them, offer the German version as a download option. It hadn't previously dawned on me - I'd been willing to wait until the English version was done and then hunt down a German release. But being able to download the version from GOG, now I don't. So I spent further time on the weekend, getting the German version to at least start. Now I can at least hear the German localisation of the message on the TV, shouting at me in German to, presumably, start playing the darn game :)
In case anyone's interested, the German version has the following differences:
1) Most obviously, the text strings for the messages throughout the game are different.
2) The German version has a "Translation" subview within the PET. Most noticeably, it has logic for showing German players what the various texts mean when the player is in the Arboretum.
3) There's new data fields for the CodeWheel and ArboretumGate game classes. I haven't yet delved into the changes to see what they do. At least the moment, I've merely implemented loading and saving of the new fields so the game at least starts up
4) Unfortunately, it looks like there was a widespread change of .wav filenames used for sound playback throughout the game. Considering the hundreds of tiimes the method is called, it's going to be a pain to slowly step through each call and do "if german then "file1.wav" else "file2.wav"" throughout the code. So I'm going to leave that for a future date too.
So good progress overall. Indeo video support implemented, and German version starts up. Now to get back to general bugfixing. I'm eager to finally be able to start talking to the Doorbot and finally get on board. :)