it seems that sound system up till SCI0_LATE uses int16, afterwards it seems they changed to byte
main music object (conMusic) in Laura Bow 1 uses -1 as priority. This was truncated to 255 till now, which resulted in many sound effects not getting played, because those used priority 0
SCI: Only stop after fading, if the song to be faded is faded down. Also,
reset the song signal when fading starts. It was set to -1 when fading
started in bug #3267956, thus it stopped immediately.
We now accept signals from all channels if channel 15 is missing. This
is a very rare edge case, but our behavior is now somewhat closer to what
the original interpreter seems to be doing. Mordack's appearance animation
is now synced properly. The more generic workaround works for songs 1840
and 1843, but not for 1849, which is still problematic and we still resort
to manually changing its dataInc selector
This is caused because songs 1840, 1843 and 1849 are all missing their special
SCI signaling channel (channel 15), so the game scripts wait indefinitely for
signals which are never set
Thanks to waltervn and clone2727 for the original patch. Tested LSL5
with this change, and the problematic sound in the mud wrestling scene
is handled correctly
It was using 'pri' instead of 'priority', apparently due to a
selector number->name translation error from 544daa5c31.
Thanks to waltervn for spotting this.
Now, sound effects in SCI1.1 games will no longer be incorrectly using the speech
sound volume. This avoids them being silenced in floppy games that are flagged
as not having speech. Fixes bug #3554709 - "SCI: Digital SFX don't play when
Override Global Audio set"
No functionality change has been made with this commit. This avoids
setting and getting the reg_t members directly, and is the basis of any
future work on large SCI3 scripts (larger than 64KB)
The sound handle should not be set in kDoSound(init), but in
kDoSound(play). This is verified against several SCI versions,
plus game scripts check if a sound slot is playing primarily
by checking its handle. Fixes the sound in Shivers and probably
an assortment of other sound related bugs
- Unified the sound resource initialization code in
processInitSound() and reconstructPlayList()
- Now checking the "Mixed Adlib/MIDI" mode checkbox for SCI1.1 digital
audio sound effects, like it's done for SCI0 - SCI1 sound effects. If
it's unchecked, their MIDI counterparts will play instead, if
available
This bug only manifested in the Windows version of SQ4CD. Some Windows
MIDI music tracks are missing from room 530, which messed up the
animations in that scene, and led to a crash. Moved the code that
obtains the song number from an object into a separate function. Also,
fixed a bug in kDoSoundSetPriority().