Simon the Sorcerer - App Store

Ask for help with ScummVM problems

Moderator: ScummVM Team

User avatar
Red_Breast
Posts: 775
Joined: Tue Sep 30, 2008 10:33 pm
Location: The Bar Of Gold, Upper Swandam Lane.

Post by Red_Breast »

Why did you try 0.50 in the first place?
User avatar
eriktorbjorn
ScummVM Developer
Posts: 3561
Joined: Mon Oct 31, 2005 7:39 am

Post by eriktorbjorn »

Red_Breast wrote:Why did you try 0.50 in the first place?
Probably because of what I wrote, that even in 0.5.0 there was a comment about subtitles being incomplete in the English and German talkie versions of Simon the Sorcerer 1.
Darnn wrote:No word on how do to do this in current versions? I assume it's possible, since the iPhone version of ScummVM that runs Simon does it.
As far as I know, the only way would be to modify the ScummVM source code to allow the _subtitles variable to be set to true.

I don't know how badly the subtitles are missing. Simon reading Calypso's letter is shortened to just "Dear Simon," so it seems only the first printed part of the message is there. But I always assumed there had to be more missing than that, because I think that's how the Feeble Files subtitles are, and we enable those...
Darnn
Posts: 13
Joined: Sat Dec 24, 2005 5:44 pm

Post by Darnn »

Well, I just took a look at the source code and realized that I have absolutely no idea what I'd need to change to enable subtitles. Could anyone who's ever coded anything in their life help me out?
User avatar
eriktorbjorn
ScummVM Developer
Posts: 3561
Joined: Mon Oct 31, 2005 7:39 am

Post by eriktorbjorn »

Darnn wrote:Well, I just took a look at the source code and realized that I have absolutely no idea what I'd need to change to enable subtitles. Could anyone who's ever coded anything in their life help me out?
I imagine there are two places that would have to be changed. First, there's the bit in engines/agos/agos.cpp that sets the initial value of _subtitles. This is what it looks like in the current development version of ScummVM:

Code: Select all

    if (getGameType() == GType_PP) {
        _speech = true;
        _subtitles = false;
    } else if (getFeatures() & GF_TALKIE) {
        _speech = !ConfMan.getBool("speech_mute");
        _subtitles = ConfMan.getBool("subtitles");

        if (getGameType() == GType_SIMON1) {
            // English and German versions don't have full subtitles
            if (_language == Common::EN_ANY || _language == Common::DE_DEU)
                _subtitles = false;
            // Other versions require speech to be enabled
            else
                _speech = true;
        }

        // Default to speech only, if both speech and subtitles disabled
        if (!_speech && !_subtitles)
            _speech = true;
    } else {
        _speech = false;
        _subtitles = true;
    }
In plain English, what this means is:

If the game is any of the ones in Simon the Sorcerer's Puzzle Pack (getGameType() == GType_PP), there is speech but no subtitles. If it's a talkie game (getFeatures() & GF_TALKIE), get the speech and subtitles settings from the configuration file (ConfMan). If it's Simon the Sorcerer 1 (getGameType() == GType_SIMON1), check if it's the English or German version. If so, subtitles are always off. If not, speech is always on. In any talkie game, if speech and subtitles are both off, enable speech. If it's not a talkie game, disable speech and enable subtitles.

Changing the Simon the Sorcerer 1-specific part to something like this ought to work:

Code: Select all

            if (getGameType() == GType_SIMON1) {
                // All versions require speech to be enabled
                _speech = true;
            }
The second part is in engines/agos/input.cpp and looks like this in the current development version:

Code: Select all

    switch (_keyPressed.ascii) {
    case 't':
        if (getGameType() == GType_FF || (getGameType() == GType_SIMON2 && (getFeatures() & GF_TALKIE)) ||
            ((getFeatures() & GF_TALKIE) && _language != Common::EN_ANY && _language != Common::DE_DEU)) {
            if (_speech)
                _subtitles = !_subtitles;
        }
        break;
This checks if the user presses 't'. If so, if the game is The Feeble Files, or Simon the Sorcerer 2, or a talkie game in any other language than English or German, and speech is enabled, toggle the subtitles.

All of the above games are talkie games, so it could probably be simplified as

Code: Select all

    switch (_keyPressed.ascii) {
    case 't':
        if (getFeatures() & GF_TALKIE) {
            if (_speech)
                _subtitles = !_subtitles;
        }
        break;
But this is fairly untested, and as I said I don't know how well the subtitles work in the first place.
User avatar
Red_Breast
Posts: 775
Joined: Tue Sep 30, 2008 10:33 pm
Location: The Bar Of Gold, Upper Swandam Lane.

Post by Red_Breast »

Might I ask a slightly off-topic question - if one were to change something like Darnn wants to are there any problems with compiling?
I had a game once which ScummVM wasn't detecting and I think I'd just started compiling my own builds. I found where the md5s are listed (detection.cpp maybe?) but wasn't sure if it would cause problems with compiling and let it be. In the end, a few days later, my game was being detected OK anyway so I never looked into it further.
Darnn
Posts: 13
Joined: Sat Dec 24, 2005 5:44 pm

Post by Darnn »

Wow, thanks a lot for this! You're really going above and beyond, here. I'll report my findings once I'm able to actually compile the darn thing.
User avatar
eriktorbjorn
ScummVM Developer
Posts: 3561
Joined: Mon Oct 31, 2005 7:39 am

Post by eriktorbjorn »

Red_Breast wrote:Might I ask a slightly off-topic question - if one were to change something like Darnn wants to are there any problems with compiling?
I'm afraid I don't understand the question.
Darnn
Posts: 13
Joined: Sat Dec 24, 2005 5:44 pm

Post by Darnn »

Well, I finally managed to get it to compile... and it is with great pleasure that I announce that it works!

If anyone wants the executable I can upload it somewhere.

Again, thanks a lot, eriktorbjorn.
User avatar
Red_Breast
Posts: 775
Joined: Tue Sep 30, 2008 10:33 pm
Location: The Bar Of Gold, Upper Swandam Lane.

Post by Red_Breast »

I guess that answers my question if you managed to compile it Darnn.
panosd
Posts: 1
Joined: Fri Feb 08, 2013 1:13 am
Location: Melee Island

Post by panosd »

Darnn wrote:Well, I finally managed to get it to compile... and it is with great pleasure that I announce that it works!

If anyone wants the executable I can upload it somewhere.

Again, thanks a lot, eriktorbjorn.
Hi there

I know it's been a couple of years now but any chance you still have the executable?
Darnn
Posts: 13
Joined: Sat Dec 24, 2005 5:44 pm

Post by Darnn »

As a matter of fact, I do: https://dl.dropbox.com/u/645489/scummvm ... talkie.exe

Put that in your ScummVM folder and run it. Add the talkie version of Simon 1 if you haven't already. Press "t" in-game to switch text on or off. Note that the subtitles for Calypso's note don't work. Everything else seems to work fine, though I only played through about half the game.
tumbleweed
Posts: 45
Joined: Fri Mar 01, 2013 3:37 pm

Post by tumbleweed »

Is this patch targeted for the Win version only? I'm trying it with DOS/CD one and it seems to be not working
Post Reply