Menu

#1946 ADLIB: Adlib Emulation doesn't Respect Volume Settings

open
nobody
5
2005-03-26
2005-03-09
tbcarey
No

In INDY3, LOOM, and MONKEYVGA, when Adlib emulation is
selected, the music volume does not decrease or mute
when volume is changed using the volume control hotkeys
and new dialogue. For example, setting volume at 0 for
any of these games will still play the music at full
volume using Adlib emulation. I do not have MONKEYEGA
to test, but I have tried all other SCUMM games
utilizing MIDI and no others exhibit this behavior.

Note that this behaviour occurs only with Adlib
emulation; any other type of emulation will properly
mute or lower the volume when the volume control
hotkeys are used.

Discussion

  • tbcarey

    tbcarey - 2005-03-09

    Logged In: YES
    user_id=1103943

    Once again, forgot to mention I'm using the latest CVS build
    [Mar 9 2005 10:47:16] on Win32. Sorry about that.

     
  • tbcarey

    tbcarey - 2005-03-09

    Logged In: YES
    user_id=1103943

    I downloaded the Monkey1 Demo [which uses the MONKEYEGA
    target] and the same behaviour was exhibited.

     
  • Max Horn

    Max Horn - 2005-03-20

    Logged In: YES
    user_id=12935

    Yes, we know that the adlib emu doesn't use the volume
    settings. It would be trivial to make it use the music
    volume setting (at least in SCUMM games), too. However,
    adlib is also used for SFX, which means this wouldn't be the
    right fix... of course, being able to control the volume at
    least in some way for now might be better than not having
    any control over it at all... I'll see what I can do once I
    am back home from this conference sometime next week.

     
  • Max Horn

    Max Horn - 2005-03-20
    • assigned_to: nobody --> fingolfin
    • summary: MULT: Adlib Emulation Does Not Respect Music Volume Settings --> ADLIB: Adlib Emulation doesn't Respect Volume Settings
     
  • Max Horn

    Max Horn - 2005-03-26

    Logged In: YES
    user_id=12935

    I am back to my own computer now and had some time to look into this.
    Essentially, the problem is that with V3-V6 SCUMM games, volume
    control is done by iMuse. Hence, it would be wrong if the adlib emu would
    do volume control, too, because then everything would be too quiet.

    So, the question is why the volume settings aren't applied for these three
    games. All of them are small header (V3/V4) games. For those games,
    PROP_OLD_ADLIB is set. To quote from adlib.cpp:
    "Older games used a different operator volume algorithm". There is a flag
    in it, _game_SmallHeader, which controls the differences between old and
    new games.

    My guess: for some reason, the small header mode doesn't properly
    handle volume changes. Note in particular that for SH games, neither
    volume_table nor lookup_table are used.

     
  • Max Horn

    Max Horn - 2005-03-26
    • assigned_to: fingolfin --> nobody
     
  • Torbjörn Andersson

    Logged In: YES
    user_id=577918

    Looks like you're right. Without the final volume
    adjustments - the one where volume_table[] is used - it
    seems to me like the note volume is simply a constant
    determined by a property (oplvl_1 and oplvl_2) of the
    instrument itself.

    But I don't really understand this part of the code.

     
  • Filippos Karapetis

    Bug #3053125 seems to be a duplicate of this, for SCI

     
  • Johannes Schickel

    Bug #3053125 is probably not related to the cause of this problem though. The SCUMM engine uses a different AdLib driver implementation.

     
Want the latest updates on software, tech news, and AI?
Get latest updates about software, tech news, and AI from SourceForge directly in your inbox once a month.