are even used by the game scripts. This is in preparation for a
restructuring of the volume model.
Also removed unused get_music_volume() member.
svn-id: r10872
Manual scaling of pitchbends to account for the fact that the
MT32 doesn't respond to RPN-based pitchbend range adjustments.
Also tweaked the MT32 partial reserve settings per Bug [812740].
svn-id: r10521
logicdeluxe's patch to set MT-32 partial reserves
equally for all channels, to ensure that entire
notes don't get cut off. The patch as committed is
slightly modified to reorder the MT-32 initialization
sequence. The mods (1) ensure a brief delay between
SysEx transmissions to give the MT-32 time to process
each request, and (2) hopefully sequence the delays
such that the ScummVM welcome message is actually
readable and doesn't just flash for a split-second
(as was the reported behavior in the past).
svn-id: r10498
the iMuse implementation. This allows the termination
sequence to be done BEFORE object destruction, so
that the destructor is not making calls that may not
be appropriate during object destruction. (Virtual
functions were the concern, although I'm not sure any
of that was happening anyway. Oh well, better to be
safe than sorry.)
I implemented an empty terminate() in the base class,
but the other MusicEngine derivatives may have stuff
in their destructors that should be moved to this
method. I didn't check.
svn-id: r10452
RO streams have built-in timer markers (the
unknown 0xA0 mentioned in FR [742249]) that
override automated methods of updating
VAR_MUSIC_TIMER. Since these timer markers
do not seem to be present in AD resources, the
old mechanism is used if MD_ADLIB is the current
MidiDriver.
svn-id: r9720
V6 scripts can specify up to 16 parameters to be passed to
doCommand(). In most cases 8 or fewer parameters were used,
but occasional uses of 9 or 10 parameters resulted in
incorrect iMuse behavior due to lost doCommand() data.
ImTrigger was also upgraded to support 8 parameters instead
of 4, since the incorrect behavior that was observed involved
the use of triggered commands that required more than 4
parameters. Since ImTrigger data is not currently being saved
(which is bad), we do not at this time have to go to another
savegame format to support the additional ImTrigger data
(which is good).
This fix corrects a problem in the Tunnel of Love. When the
"execution scene" music finishes and the hidden door opens,
the Tunnel of Love music is supposed to start up again. In
ScummVM, it never would, do to the loss of parameters for a
trigger-based "Parameter Fade" command.
A bit of miscellaneous cleanup has also been made.
svn-id: r9579
Added some IMuse property options to support some assumptions that seem to be made by Humongous games.
This is still preliminary. It will play music, and it will switch between songs. But I don't know if it's switching to the right song at the right time.
svn-id: r7869
Miscellaneous upgrades and fixes to MidiParser, including the Smart Jump (which could not be tested before iMuse started making use of the MidiParser).
*** THIS IS A BIG UPGRADE! EXTENSIVE REGRESSION TESTING IS NEEDED! ***
This has been tested through the intros and a number of other scenes from MI2, FOA and S&M.
NOTE! This upgrade introduces savegame format version V19. Earlier version savegames will load, but the music will simply start over from the beginning. Only V19 and later games will properly restore the position of the music! Don't say you weren't warned....
svn-id: r7849