Commit Graph
26 Commits
Author SHA1 Message Date
athrxx 6984faf958 AUDIO: add data size arg to MidiChannel::sysEx_customInstrument()
As a safety check...

Also throw out some warnings when loading savegames
with instrument data for a different device (the savegame
incompatibility would be very nice to be fixed, but it is not
trivial.
2022-10-06 18:47:47 +02:00
athrxx 40b459164b SCUMM: (IMS) - add dedicated MT-32 sound driver
(fixes bug no. 1248 - "SAM: some MIDI channels missing on MT-32")

This is a very obvious bug if the speech is turned off (otherwise the speech will
kind of cover it up). In the SAMNMAX intro it is hardly playing anything.

The reason is that the newer sound system has an extra driver layer between the
imuse parts and the actual hardware which mananges the channels (similar to
what we already do for AdLib, Amiga, FM-Towns...). Whenever the songs are
attempting to use a Midi part > 9 our current system will fail.

I have written the MT-32 player to also handle the older games music and sound
effects. This will allow cleaning up various more hacks in the common sound code.
I have done only little cleanup here, since it is not the main purpose of the commit.

I will also write a GM driver. This is going to be easier. Currently, there is a only
some init and skeleton code for it, the rest is just pass-through...
2022-10-06 18:47:46 +02:00
athrxx 78ec6a9c23 SCUMM: (IMS) - get rid of instrument static var
I noticed broken sound when starting DOTT with MT-32
setting, then returning to the launcher and then starting in
GM mode.
Turns out that there was a nasty static var in instrument.cpp
that was not always reset to the correct value.
Instead of just doing that I cleaned it up a bit and got rid of
the static var.
2022-09-15 20:56:46 +02:00
Eugene Sandulenko abea37c9bb ALL: Update ScummVM project license to GPLv3+ 2021-12-26 18:48:43 +01:00
Orgad Shaneh ed5489929c SCUMM: Use nullptr
Using clang-tidy modernize-use-nullptr
2021-11-14 15:51:59 +02:00
Torbjörn Andersson 3454101f59 SCUMM: Fix missing iMuse instruments (mainly Mac MI2 and FoA)
The way the condition for checking if an instrument is valid, it should
be valid if the music player and MIDI driver agree on whether it's MT-32
MIDI. Otherwise, it's only valid if the instrument can be mapped to or
from MT-32.

But the way the check was written, it would always look for an
instrument mapping, since || binds harder than the ? operator.

All MT-32 instruments can be mapped to General MIDI, but a few General
MIDI instrument can't be mapped to MT-32. So theoretically, this should
have happened a lot. However, the GM instruments that can't be mapped
are mostly sound effects. The only cases where I've actually heard it
is with the Mac versions of Monkey Island 2 and Fate of Atlantis. They
provide their own digitized instruments, so who knows how those numbers
were assigned.

Two obvious early cases were the swamp music in Monkey Island 2 and the
New York music in Fate of Atlantis. Both were missing a "wood block"
instrument, among other things.
2021-07-07 12:27:54 +02:00
Bastien Bouclet 730a1ee4cc SCUMM: Add override keywords 2020-02-09 12:43:16 +01:00
Colin Snover 2e061d95c5 COMMON: Move VER macro for serializer into common code 2018-01-31 17:58:01 +01:00
Colin Snover 9916b26383 SCUMM: Replace UB-triggering serialization code with Common::Serializer
Fixes Trac#10342.
2018-01-31 17:58:01 +01:00
Eugene Sandulenko f7a551dab2 SCUMM: Fix class initalization 2016-11-19 17:37:44 +01:00
Johannes Schickel 3847465163 SCUMM: Make GPL headers consistent in themselves. 2014-02-18 02:39:38 +01:00
Johannes Schickel 6ea51e8c45 SCUMM: Implement support for special sfx in MI2 Mac.
This also increases the savegame version, since it introduces a new
Instrument subclass.
2012-09-20 02:13:03 +02:00
Johannes Schickel 25c0f0a772 SCUMM: Adapt iMuse code formatting to our standards. 2011-07-11 22:53:41 +02:00
Johannes Schickel ed993e6350 SCUMM: Initial PC Speaker output implementation for SCUMM v5.
This is *not* complete yet.
2011-07-08 04:45:01 +02:00
strangerke 69b1485a22 GIT: Clean up: Suppress SVN tags, now useless 2011-05-12 01:16:22 +02:00
Max Horn 42ab839dd6 AUDIO: Rename sound/ dir to audio/
svn-id: r55850
2011-02-09 01:09:01 +00:00
Jordi Vilalta Prat 9255d7c3cb Remove some extra spaces
svn-id: r49489
2010-06-07 17:18:25 +00:00
Johannes Schickel 0d995c5920 Rename all "Adlib" uses to "AdLib" to match the real name of the sound card / company.
Check this for reference:
http://en.wikipedia.org/wiki/Ad_Lib,_Inc.
http://www.crossfire-designs.de/images/articles/soundcards/adlib.jpg (note the upper left of the card)

This commit does not touch "adlib" and "ADLIB" uses!

Also it does not update all the SCUMM detection entries, which still use "Adlib".

svn-id: r47279
2010-01-12 21:07:56 +00:00
Torbjörn Andersson 72eb9ec9ea Fixed a bunch of cppcheck warnings. Mostly about checking if a pointer is null
before freeing it, which isn't necessary.

svn-id: r46941
2010-01-03 19:37:43 +00:00
Nicola Mettifogo 258901bab9 Merged common/stdafx.h into common/scummsys.h. All referencing files have been updated.
svn-id: r28966
2007-09-19 08:40:12 +00:00
Max Horn e1bcd70436 Re-added __attribute__(packed)
svn-id: r27830
2007-07-01 18:18:43 +00:00
Max Horn 218e132e37 Updated legal headers in source files, based on what Pidgin (the IM client formerly knowns as Gaim) does; added new (incomplete) COPYRIGHT file; updated copyright dates in a few spots
svn-id: r27024
2007-05-30 21:56:52 +00:00
Max Horn 96162c14ea Ugh -- these internal iMuse structs were supposed to be packed, but never were explicitly markes as such. Doing that now (might break old savegames on some ports :/)
svn-id: r25629
2007-02-16 12:34:30 +00:00
Torbjörn Andersson c5fca7b9ce Whitespace
svn-id: r24680
2006-11-12 02:24:25 +00:00
Jamieson Christian 2469e00248 SysEx data now passed around with const pointers. Permits simplification of some SysEx client code.
Testing on Windows. Developers on other platforms, please verify integrity of music handling in your respective MidiDrivers.

svn-id: r20952
2006-02-27 01:59:07 +00:00
Max Horn 81e8a2860e Moved iMUSE code to the new directory engines/scumm/imuse/
svn-id: r20801
2006-02-20 20:57:26 +00:00