VAR_CHARINC issue in SCUMM

Ask for help with ScummVM problems

Moderator: ScummVM Team

Post Reply
seubz
Posts: 41
Joined: Sat Aug 11, 2007 1:24 am

VAR_CHARINC issue in SCUMM

Post by seubz »

Hello,

For my project, I ran into a *possible bug* in the SCUMM engine using ScummVM 0.13.1, linked to the text speed when actors speak.

If the user writes to ScummVM conf's manager to the variable "talkspeed" (this can be set via one of ScummVM's menus by changing the voice speed), this will write to one of the engine environment variables called VAR_CHARINC which is used as a timing modifier for text display. When "talkspeed" is present in the conf, scripts are not able to set VAR_CHARINC anymore.

The code for this is present in engines/scumm/script.cpp, line 624. It will, on purpose, get the talk speed from the configuration even if scripts set it.

The problem is that I checked Fate of Atlantis to see if this had a bad effect, and in the credits at the beginning, if the user modify the talk speed in ScummVM's configuration, the names of the developers will not fade out and disappear abruptly. Also, during the introduction, scripts set VAR_CHARINC multiple times, but ScummVM will not allow the modification.

The reason I didn't file a bug report is that I don't know if this was the case in the original interpreter. If one of the devs could verify this, it would be nice.

Thank,
Sebastien
Kirben
Posts: 421
Joined: Wed Sep 21, 2005 12:15 pm
Location: Melbourne, Victoria, Australia

Post by Kirben »

The config file setting overrides any VAR_CHARINC changes by scripts, in order to allow users a consistent setting for text speed.

VAR_CHARINC is changed by the scripts of several games, and not always reset back to custom value (if modified by user).

Using a set value for VAR_CHARINC, can cause side effects though, as you noticed.
seubz
Posts: 41
Joined: Sat Aug 11, 2007 1:24 am

Post by seubz »

Hi Kirben,

Thanks for the quick response. One thing which is not totally true though, is that even if the user doesn't specify a text speed in ScummVM's configuration (I never did it myself), the first time a script will set VAR_CHARINC, the configuration will be updated. This means that even if the user has no control on the text speed, a second script writeVar call will be useless.

I don't know if this is "bad" or not, but at least you're aware of it.

Thank you and keep up the great work !

Cheers,
Sebastien
Post Reply