Monday, July 21, 2008

The past week, after gaining much understanding of how sound is implemented in the engines, I have made some progress getting the settings in the Options dialog to function correctly as well as implemented properly for most engines. Learning how the sound should be implemented and finding the common ground between all of the engines was a challenging part of the Global Main Menu portion of my task.

In the following engines, modifying the sound settings through the GMM works very well, meaning that the volume for music, sfx, and speech can all be adjusted separately:

AGOS, GOB, LURE, QUEEN, SAGA, SKY, SCUMM, SWORD1, SWORD2, TOUCHE

Engines for which sound settings are modifiable, but not are not yet 100%:

KYRA – Volume is adjustable, however the music and sfx can not be separately adjusted. (At least in LoK, which is the only game I have to test with)

PARALLACTION – Sound effects are adjustable, however I have not yet been able to test music because music has not ever played for me in the game I have which uses this engine (Nippon Safes, full and demo versions).

Engines which I have not been able to properly implement the configuration of the sound settings through the GMM, due to time constraints and/or issues specific to how sound is currently handled in the engine:

AGI, CINE

It took some time to understand how the sound was being implemented in all of the engines, and sometimes I think I may have spent a little too much time on the details of certain engines trying to get the sound settings to work right. I’m certain that with a little attention from the engine maintainers, all of the engines will work seamlessly with the settings in the Options dialog.

Testing the sound settings for all of these engines was also a challenge. Due to many different variables which depend on the user such as the operating system, sound card/MIDI device being used, and game versions (demo, cd version, floppy version), it is hard for me to test that these sound settings are working correctly in *all* situations.

I did want to look into getting the engines to be able to let the GMM know what sound settings are supported by the game being played (such as speech, subtitle speed, etc.) so that only the relevant controls are displayed in the Options dialog. Hopefully I will have some time to come back and address this.

This week I begin my work on the Savestate Management portion of my project. So I am looking forward to becoming familiar with yet another aspect of ScummVM!