Commit Graph

218 Commits

Author SHA1 Message Date
Max Horn
c6752cccf5 renamed more OSystem methods to follow our naming scheme; renamed NewGuiColor to OverlayColor; fixed some calls to error() in the SDL backend
svn-id: r13087
2004-02-28 12:58:13 +00:00
Max Horn
1141ff1ac2 Modified version of patch #892795 (Let scumvm -v show supported libs)
svn-id: r12780
2004-02-09 01:27:27 +00:00
Max Horn
033ff78ae9 updated copyright notice
svn-id: r12176
2004-01-06 12:45:34 +00:00
Max Horn
80aac33327 cleanup
svn-id: r11620
2003-12-13 21:06:47 +00:00
Paweł Kołodziejski
d5eddef057 changed some shift operators to *, /
svn-id: r11315
2003-11-16 20:52:57 +00:00
Paweł Kołodziejski
1f9e408e2f cleanup whitespaces
svn-id: r11217
2003-11-08 21:59:32 +00:00
Jamieson Christian
b901a24d49 Another fix for Bug [817871] re hanging notes on
pause with MT-32. Apparently the first fix doesn't work.

svn-id: r10876
2003-10-17 17:38:18 +00:00
Jamieson Christian
0279ace9ae Added trace output for IMuse doCommand codes that we're not sure
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
2003-10-17 16:46:06 +00:00
Max Horn
d71160af74 removed the kDefault*Volume constants
svn-id: r10816
2003-10-15 23:16:52 +00:00
Jamieson Christian
83f7aa69b5 Fix for Bug [817871]: Added MT-32 master volume adjustment to pause().
svn-id: r10759
2003-10-12 16:46:23 +00:00
Jamieson Christian
577fe4c5fb Patch [818296] Modified MT-32 intialization sequence.
svn-id: r10666
2003-10-07 12:00:53 +00:00
Jamieson Christian
a722d0601e Preliminary preparation for new YM2612 FM emulator.
All the hooks are in, but actual implementation
needs to be checked for portability.

svn-id: r10615
2003-10-05 15:36:52 +00:00
Max Horn
d7660a2662 introduced namespace Scumm; made #include statements use scumm/ prefix explicitly
svn-id: r10571
2003-10-03 18:33:57 +00:00
Max Horn
2ed4677ede const as const can
svn-id: r10555
2003-10-03 00:59:27 +00:00
Max Horn
3f55f2669d renamed class Scumm to ScummEngine (consisten with other engine names; also makes room for a potential 'Scumm' namespace)
svn-id: r10549
2003-10-02 22:42:03 +00:00
Jamieson Christian
b75a925640 Fix for Bug [812737] ALL: pitchbend range with MT32
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
2003-10-01 15:19:12 +00:00
Jamieson Christian
457f888ea7 Fixed MT-32 init not getting called
svn-id: r10501
2003-09-30 13:18:25 +00:00
Jamieson Christian
e70fcf1737 Fix for Bug [812740] ALL: MT32: some notes cut off early
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
2003-09-30 08:25:57 +00:00
Jamieson Christian
70e8d2780d Cleanup, mostly related to matching up semantics
between Part and MidiChannel (which Part may
derive from eventually).

svn-id: r10480
2003-09-29 08:09:38 +00:00
Jamieson Christian
3f845084f1 Fixed iMuse termination sequence to avoid deadlock.
Fixes Bug [813920].

svn-id: r10477
2003-09-29 06:32:46 +00:00
Jamieson Christian
044bcd5430 Added terminate() to the MusicEngine and publicized
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
2003-09-28 00:03:24 +00:00
Max Horn
c1a678afeb new module 'base'; moved gameDetector.*, main.cpp and base/plugins.* there (this removes the need for an ugly hack in the build system, and is also conceptionally cleaner)
svn-id: r10282
2003-09-17 22:41:01 +00:00
Jamieson Christian
091b41a278 Partial fix for Bug [636985] ZAK256: No kazoo tune
Implemented a parser for Euphony music. No
FM instrument support yet, as the FM chip used
by FM Towns is not being emulated yet. In the
meantime, a stock FM-emulated GM instrument is
being used instead.

This at least makes the Zak Towns kazoo tune
and the Loom Towns distaff audible. Emulation
of the FM Towns synth chip, or suitable
emulation using the OPL2 synth, is still
under investigation.

svn-id: r10265
2003-09-16 11:44:48 +00:00
Jamieson Christian
e0129c34e7 Feature Request [806641] Increase MIDI
performance by omitting redundancies

Removed the use of the _bank member for iMuse Parts.
The member is still being saved/loaded, and a
warning will display if a non-zero _bank value is
set. If it turns out some musical passage is actually
using the _bank, we'll need to reinstate it.
Otherwise, after sufficient testing we can obsolete
it in the savegames.

svn-id: r10261
2003-09-15 21:35:30 +00:00
Jamieson Christian
d91278198b Fix for Bug [805593] MI2: Music stops in LeChuck's fortress
Implemented _cmd_queue save/load. In addition to requiring
_cmd_queue information, this bug arises from a rare assumption
that sound resources are loaded in memory even though they
aren't currently playing. Therefore, a list of sound resources
loaded in memory is included in the savegame, so that all
relevant sound resources are reloaded when the savegame is
loaded. This also fixes an unreported music bug in S&M when
saving a game while outside the Bumpusville mansion.

As a result of savegame format modifications, we are now at
savegame version 23.

svn-id: r10254
2003-09-14 20:34:48 +00:00
Max Horn
90ec1dc34e make even more use of Scumm::_musicEngine; added MusicEngine::setMasterVolume
svn-id: r10097
2003-09-08 17:06:44 +00:00
Max Horn
1dbab0237f cleanup/refactoring
svn-id: r10070
2003-09-07 19:28:45 +00:00
Max Horn
361c3b95d5 some cleanup; clarified isSoundInUse semantics and the difference between IMuse::get_sound_active and IMuse::getSoundStatus; added lots of const qualifiers to IMuse; rewrote IMuseInternal::getSoundStatus (hopefully not breaking it); added MusicEngine::getSoundStatus
svn-id: r10069
2003-09-07 17:14:56 +00:00
Max Horn
0012f7fa96 added common base class MusicEngine for iMuse/iMuseDigital/Player_V123 (initial stab, more work to follow)
svn-id: r10066
2003-09-07 16:16:19 +00:00
Jamieson Christian
5507d75228 Replaced VER_V* notation for savegames with
a simple number. So that it's still obvious
that the number refers to version, a VER()
macro does nothing to the number but makes
it obvious what the number is for. This
has the exact same effect as the enum that
was going to get more and more lengthy
as the savegame version evolved.

svn-id: r9901
2003-08-29 04:05:23 +00:00
Travis Howell
5e0f61a8b2 Typo
svn-id: r9827
2003-08-23 13:51:37 +00:00
Jamieson Christian
c6b5749f03 Added explicit 'ASFX' awareness for clarity
svn-id: r9826
2003-08-23 13:31:59 +00:00
Jamieson Christian
d7fae3d1cb More corrections to the VAR_MUSIC_TIMER
computations, mostly to produce the
exptected output with AD resources.

svn-id: r9730
2003-08-16 17:08:22 +00:00
Jamieson Christian
121b00a6f7 Corrected timing mechanism for RO music streams.
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
2003-08-16 09:34:19 +00:00
Jamieson Christian
4da3bf3a61 Fixed transpose/detune computations
svn-id: r9715
2003-08-16 06:17:27 +00:00
Travis Howell
c258337b27 No need for those brackets
svn-id: r9694
2003-08-15 01:18:19 +00:00
Travis Howell
876383a9c9 Don't confuse RO and ROL sound resources
svn-id: r9693
2003-08-15 01:16:19 +00:00
Jamieson Christian
3a39c653af Added support for Roland MT-32 music tracks
in monkeyvga/ega. Tested in monkeyvga, but
not in monkeyega yet. There are still wrinkles
to work out, but the parser for the new format
is in and hooked up.

svn-id: r9684
2003-08-14 08:26:59 +00:00
Jamieson Christian
442c79671a Removed unused stuff.
svn-id: r9647
2003-08-12 07:32:43 +00:00
Jamieson Christian
e8d04067a0 Fix for Bug [785373] SAM: Overlapping music at Bigfoot convention
Included the ImDeferredCommand list when checking for
sounds that have been queued to play. Also added
sound queue processing between execution of exit script
and entry script. In the case of this bug, the entry
script required that the iMuse state be fully up to
date, including last-moment changes from the previous
exit script.

svn-id: r9622
2003-08-10 11:44:43 +00:00
Chris Apers
d910e7b066 In fact, Nicolas, this is no more needed :)
svn-id: r9584
2003-08-07 14:33:38 +00:00
Nicolas Bacca
1c1fd05a72 Remove old tweak that can break the music when restoring now ... Chris, you should check it too :p
svn-id: r9582
2003-08-06 21:07:59 +00:00
Jamieson Christian
1615278ecc Upgraded IMuse::doCommand() to support more than 8 parameters.
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
2003-08-06 18:20:15 +00:00
Jamieson Christian
7453cabbbc Fix for Bug [780918] SAM: Music stops at Bumpusville
Tweaked handling of ImSetTrigger when the triggered
command starts a new song. If the song to be started
is already playing, we stop it (in preparation for
a restart) ONLY if the song containing the command
trigger is actually playing. Otherwise the restart
is likely to never occur (as is the case with the
Bumpusville mansion interior music).

svn-id: r9576
2003-08-06 17:47:29 +00:00
Max Horn
75db41750e getting rid of g_mixer; removing lots of whitespace
svn-id: r9527
2003-08-05 23:58:24 +00:00
Max Horn
7c2713f57a indention fix (so the code adheres to our indention rules)
svn-id: r9384
2003-08-01 20:39:16 +00:00
Max Horn
b05e7de7bb replaced SCUMMVM_VERSION/SCUMMVM_CVS by gScummVMVersion/gScummVMBuildDate/gScummVMFullVersion; made engine.o depend on all other .o files, so that the build date in it is always up-to-date
svn-id: r9032
2003-07-15 02:16:33 +00:00
Jamieson Christian
0fefe4602c Fix for bug [761637] FOA: Music problems in endgame/credits.
Revision to the handle_maker() fix for bug #733401, since that
didn't seem to take care of the problem. This fix chomps marker
queue entries if it finds a matching marker not at the head of
the queue. This might cause inappropriate behavior elsewhere;
regression testing is advised.

svn-id: r8831
2003-07-07 05:45:55 +00:00
Jamieson Christian
f83a32464c Fix for bug [756555] ALL: With '-ewindows' notes don't stop at quit
and bug [755176] SIMON2: Hanging notes

More cleanup of the thread issues associated with iMuse and MidiParser
shutdown. Untested.

svn-id: r8546
2003-06-18 22:46:17 +00:00
Chris Apers
d120ea093f I will add a wrapper for that (currently NULL driver)
svn-id: r8526
2003-06-17 08:50:15 +00:00