It seems that you're using an outdated browser. Some things may not work as they should (or don't work at all).
We suggest you upgrade newer and better browser like: Chrome, Firefox, Internet Explorer or Opera

×
Woo hoo. As of yesterday, the unofficial "prologue" of the game is now completable. That's right.. you can start the computer, see the crash, chat with the Doorbot, enter the ship, and see the credits. I can finally stop having to play the entire crash sequence every time I make a change, and want to test it. :)

There's still a variety of minor glitches to look into, but they're all the sort of things that aren't likely to be specific to just the intro, so I'll be able to work on tracking down and fixing the problems at leisure, without having to run the game from the start every time. I can definitely use a break from Mr "I forgot what I was going to say". From here on out, I'll keep working my way through the game, and fixing problems as I encounter them. With the credits done, next will be the first conversation with the Deskbot. Fingers crossed that there aren't any major issues lurking with the conversation system, and that it will work properly. :)
Post edited October 31, 2016 by dreammaster
avatar
dreammaster: Woo hoo. As of yesterday, the unofficial "prologue" of the game is now completable. That's right.. you can start the computer, see the crash, chat with the Doorbot, enter the ship, and see the credits. I can finally stop having to play the entire crash sequence every time I make a change, and want to test it. :)

There's still a variety of minor glitches to look into, but they're all the sort of things that aren't likely to be specific to just the intro, so I'll be able to work on tracking down and fixing the problems at leisure, without having to run the game from the start every time. I can definitely use a break from Mr "I forgot what I was going to say". From here on out, I'll keep working my way through the game, and fixing problems as I encounter them. With the credits done, next will be the first conversation with the Deskbot. Fingers crossed that there aren't any major issues lurking with the conversation system, and that it will work properly. :)
Really cool news! Well done!
After working over the weekend on fixing various bugs in the conversation parser, Deskbot, and BellBot scripts, I'm now able to successfully get assigned a room, and make it into the ship interior. Additionally, I also discovered and fixed a minor bug in the original.. when asked "fish?", the original didn't just have yes/no, but also a third response "fish" allowed, which would further prompt the player for "ensuite" or "separate". But it ended up not accepting fish as a response because, for some reason, "fish" is one of the recognised slang terms, which is replaced by the parser with the text "randomresponse". So the logic in the Bellbot never thought fish had actually been entered. Okay, it's just a really minor thing, but I thought it kinda cool that I'm now in a position to fix bugs in the original.

My next step is to try and work on the sound handling a bit more. When I leave the embarkation lobby, the background water playing sound is too loud, and obscures the PA announcement that the ship is out of control. Although I'm not implementing the 3D spatial sound that the original did, I figure I should be able to at least record the distance specified for each sound, and use that to proportionately reduce the volume.

Then I'll move on to exploring more of the ship, and see how far further I can get before more bugs need to be fixed :)
Reading your posts is fascinating. Thanks.
avatar
TaxAkla: Reading your posts is fascinating. Thanks.
No worries. Some of the details may go over some peoples heads, but at least it will give everyone a good idea of progress.

The last two weeks have seen a lot of progress in various miscellaneous areas. First of all, I spent a deal of time work on bugfixes for the PET Rooms, Remote, and Real Life tabs. They all work a lot better now. Particularly the Save/Load code had had a lot of bugfixes. I'd previously been using ScummVM's built-in save dialog, so hadn't realised how buggy in-game saving was. It now works correctly, and you can save or load from any of the first five slots. A fringe benefit of being in ScummVM, though, is that ScummVM's built in save dialog will let you save in up to 100 slots. No more frustration only being limited by only 5 slots that the original had.

Next, I started focusing on getting to my SGT stateroom as an obvious next goal. Dealing with the Liftbot and lift revealed several problems, particularly dealing with how NPCs handle arbitrary responses like "hello" that don't any effect apart from a given response. So now, with fixes, I can more believably speak with NPCs after various topics, and actually get pertinent replies. Makes chatting with them a lot more fun. :) I can also now order the Liftbot to a specific floor, or use the remote to go my stateroom floor, just like the original, once I get tired of his military anecdotes ;)

Now on the correct floor, I went to my stateroom, and encountered yet another case of the original dicking around with the video formats. The animations for all the stateroom objects use a single video track Indeo 4 videos with embedded transparency data for indicating which parts of each picture frame to draw. Whereas previous videos either used a secondary video track to specify the transparency of each pixel, or encoded full 32-bit RGBA colors for each pixel that included an alpha to indicate how transparent it was, we now have this third method of handling transparency.

And the bad thing about this is that the Indeo 4 decoder code I got from the ffmpeg project doesn't have any logic for decoding transparency information. So all the objects cover up parts of the screen, including each other, with black areas that shouldn't be drawn. I'm currently trying to hunt down further information on how the transparencies are encoded in this case. Worst case I'm going have to spend a whole bunch of time disassembling the video codec DLLs installed with the original game to try and figure it out. Which I'm really not looking forward to having to do. In the meantime, I'm likely going to just keep trying to play my way through the game and come back to fixing the stateroom when I find out how to decode the data. Hopefully not too many other game objects are using that type of video.

I like to console myself that every time I fix one of these NPC or rendering problems, I'm fixing it for the entire game. So I'm ever hopeful that the further i get through the game, the less number of bugs I'm likely to encounter. Given that I'm already into the game proper, the reimplementation is still coming along pretty well.
I don't think I ever noticed the 3d-sound. What does it mean in this case? 5:1 support or something? Just out of curiosity, does ScummVM use OpenAL?
avatar
skymandr: I don't think I ever noticed the 3d-sound. What does it mean in this case? 5:1 support or something? Just out of curiosity, does ScummVM use OpenAL?
Probably not quite that good. It's more that it can calculate how far away a sound is and decrease it's volume, as well as favor outputting to the left or right speaker depending on the sound's relative position to the player. So, for example, when you first enter the promenade (Top of Well) after checking in, there's a water lapping sound that plays. But it's positioned at such a distance that it sounds faint, and varies as you walk around.

As for OpenAL, no, ScummVM has it's own mixer and sound code, which then gets passed on the low level backend/system specific handling.
The following Wikipedia article explains QSound better.
Just wanted to tell you that i really appreciate your work here. Most of your posts are on a technical level i cannot even begin to grasp, but i wanted to make sure you know the interest is definately there.
Thanks for the encouragement. It's kind of nice for me to talk about the technical challenges I've faced, even if not everyone can understand.. particularly having had to deal with all the varying video formats the game used, it's nice to vent my frustration.

Gameplay wise, only just last night I reached a point where I could complete the SGT Class stateroom puzzle, and get upgraded to 2nd class. So now onto getting a 1st class room out of Marsinta the Deskbot :)
Post edited December 09, 2016 by dreammaster
I'm now able to upgrade to first class. I was delayed a bit by finally getting the conversation dials working, but once that was taken care of, the Deskbot was much more friendly. :). In fact, I've now gotten further, and can now also go to the special first class room and get the first of Titania's missing components.

[spoilers ahead]

But then again, it's probably not a good idea to be reading this entire thread at all unless you've already played the game, or don't mind being spoiled. :)

One thing that really confused me is that I haven't actually played all the way through the game previously, so I've been playing through the original and my engine at the same time as I fix things. I have to say, the puzzle for Titania's eye confused me. When dealing with the Bellbot, I specifically had to refer to it by "broken light". "loose light" didn't work. Which is weird, since the light actually still works when I use the Lights remote glyph. I'm kind of leaning towards treating this as a genuine bug in the original, and adding logic to stop the light from lighting up in that room whilst Titania's eye is still present. Anyone have an opinion on it?
Plowing on ahead. I got the missing elevator head from the Bottom of the Well, and was able to use it to fix the Liftbot. Various problems with dragging and dropping in general had to be fixed, but I eventually got it all sorted out and working as expected. I then moved onto the Parrot room. This too had various problems with not being able to pan away from the cage, cursor disappearing when you tried to drag the parrot into the inventory, and the SuccUBus not working properly. But I eventually sorted them all out. There's still an issue with the graphics of the parrot cage close-up where much of the background is drawn in the transparent color rather than it being treated as transparent. I've decided to pretty much ignore such minor graphic issues for now, and concentrate on making the game completable. I can always come back to fine-tune the graphics later.

Tomorrow also marks the start of my two week Christmas holidays. Not sure how much I'll end up spending on Titanic during it, so we'll have to see. Merry Christmas, or Seasons Greetings as appropriate, to everyone :)
Post edited January 09, 2017 by dreammaster
avatar
dreammaster: Tomorrow also marks the start of my two week Christmas holidays. Not sure how much I'll end up spending on Titanic during it, so we'll have to see. Merry Christmas, or Seasons Greetings as appropriate, to everyone :)
Merry Christmas, and thanks for the updates! As for the bug-fix in 1st Class I concur. Making the light not-work will make the puzzle a little bit easier and logical. You could always ask Yoz Grahame (he worked on the original; @yoz on twitter), I think he'd be excited to be asked.
Well, I've been back from my Christmas holiday for two weeks. And have been working on the game again. I did spent a bit of the time I was off working on the game, but mostly I tried to take things easy and relax.

I've made quite a bit of progress since my last posting; I'm getting closer and closer to having the game completable. At this point, I only have a few pieces of Titania remaining:
1) The perch. I'm currently focusing on this at the moment. As you can imagine, there's some complicated logic dealing with getting the parrot out of the way enough that you can take it. But I don't anticipate it taking much longer.
2) The mouth. At the moment, the music room puzzle is still left to do, which means I can't yet free up the Maitre D's arms to get the mouth. This is likely going to end up being tricky to do, since I'll have to figure out all the logic it uses for sound mixing, and figure out a way to replicate it using ScummVM's sound framework.

Then of course there is, as I've previously mentioned, the whole mess of the 3D star-field at the end of the game. I'm really not looking forward to having to deal with that. So overall, if you were to follow a walkthrough for the game, I'm about one page from the game being "completable" without the need for the original game executable. So close, but yet still so far war. Still, not a bad finish to last year :)
And, as before, I inch closer to the game being completeable. I've now been able to finish the parrot puzzle and get the perch. Plus, also get the crushed TV and interact with the BarBot to complete the drink. Getting the
BarBot to work properly proved to be an interesting challenge.. it originally wasn't recognising the phrases he was supposed to respond to, so I had to really dig into how the original parser worked. Finally I was able to fix the problems. The parser overall is pretty complicated, so I hope no other problems like this pop in the future.. spending days slowing tracing through the individual instructions in the original executable to try and figure out where it was diverging from what my code was doing was pretty boring. :P

So now I'm on the first of the two remaining big areas: implementing the music room. A part of me wishes that they could have come up with a puzzle that didn't require so much new code.. it seems like some form of streaming audio and a mixer that can mix fragments from the different wave files at different speeds and directions, according to whatever control settings the player uses. It's going to be a pain to reimplement.

But once it's done, it'll be just any minor bugfixes to the MaitreD to unclench his hands, then use them to get Titania's mouth, and on to the endgame :)