Commit Graph
44 Commits
Author SHA1 Message Date
athrxx 0a15c027b2 SCUMM: (Amiga/Mac/PCSpk) - add detune/transpose to sound drivers. 2022-10-08 00:28:21 +02:00
athrxx 8a487f0ff1 SCUMM: (SAMNMAX) - add some missing volume controls
(unsure if used)
2022-10-08 00:28:18 +02:00
athrxx f5c421e52a SCUMM: (IMS) - some cleanup and fixes
Move some Midi related code into the new drivers. I have
kept some handling for Mac and PCSpk for now, since I'll
have to do more research, before I touch them. But eventually
it would be nice to get rid of as much of these sound
type checks/exceptions in the common code as possible.

Also, I finally verified that Samnmax does actually init the
pitchbend factor to 2, but it can be set to 0 by control
change 16. In this case the pitchbend message will alter
the volume instead of the pitch. I don't know if that method
is used anywhere, though.
2022-10-08 00:28:15 +02:00
athrxx 70c2d07f19 SCUMM: (IMS) - minor fixes 2022-10-06 18:47:56 +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 99dd6cb248 SCUMM: (IMS) - minor restructuring and cleanup
Currently, Roland MT-32 sound is broken for
SAMNMAX. Just try the intro song with shut off
speech. It is very obvious that it plays with a quite
reduced number of channels compared to the
original interpreter.

Now, due to the not-so-helpful code design (much
of the iMuse code has been drawn into the common
code) it has become increasingly difficult to fix Midi
related thing in iMuse. I have added more and more
crude hacks over time.

SAMNMAX requires more elaborate channel
allocation. To make it happen I have added driver
wrappers for Midi to the iMuse code.

Other than that, I have done only minor cleanup here.

Actually, I would have liked to withdraw much more
of the iMuse code from the common code and move
it to SCUMM (basically all the MidiChannel
stuff which is exclusively used by iMuse. But it turns
out that it is so thoroughly intertwined (the major
blocker here being the AdLib driver) that it requires
more thought and effort and would just distract me
from fixing the SAMNMAX sound.
2022-10-06 18:47:40 +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
athrxx e052fee77f SCUMM: (IMS) - cleanup sound init process
Reduce abuse of the property function to set init vars.
Better distinction between drivers to prevent a GM init on
the Mac driver (which could happen depending on the
launcher sound setting).
2022-09-13 22:13:53 +02:00
athrxx f5bfc7b60a SCUMM: (IMS) - improve transpose precision
(I have checked some more drivers. It seems that the AdLib and PC Speaker
drivers of the earlier games have larger boundaries, the MT-32 drivers have
smaller ones)
2022-09-13 22:13:43 +02:00
athrxx 1b4d3ea3ed SCUMM: (IMS) - cleanup
(also fix Amiga regression)
2022-09-08 22:42:04 +02:00
athrxx 0b8d7cf0f4 SCUMM: (IMS) - fix transpose clipping boundaries
These are a bit different between DOTT and the earlier
games.
2022-09-08 20:49:42 +02:00
athrxx 755e6222bb SCUMM: (DOTT) - properly set detune for new midi parts
(after changing the detune handling a bit, we also need to
have it in Part::sendAll())
2022-09-07 18:56:57 +02:00
athrxx b7bbdd4792 SCUMM: remove garbage (debug) code 2022-09-06 22:26:30 +02:00
athrxx 162e1bb764 SCUMM: (DOTT) - fix AdLib transpose/detune
Continued bug fixing for ticket no. 13460 ("Incorrect MIDI
pitch bending"). This time the AdLib part (which applies
to FM-Towns, too, since it is more or less the same driver).
This fixes the sound when the bird is dropping from the
sky in the DOTT intro.

Also separate the GM code for SAMNMAX a bit after
checking the original code.
2022-09-06 22:01:21 +02:00
athrxx 3ef9ec5560 SCUMM: (DOTT) - fix bug no. 13460 (Incorrect MIDI pitch bending)
(General Midi Part only)

The bug report says that the AdLib part is broken, too. I am not sure about that device. For GM it was very obvious, though...
2022-09-04 13:32:38 +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
sluicebox 93eeffc84d JANITORIAL: Update old bug tracker numbers 2021-03-03 02:15:05 +02:00
athrxx 4a7b720a31 SCUMM: whitespace 2020-10-24 17:58:29 +02:00
athrxx d1b64aab0c SCUMM: (iMuse/Amiga) - improve accuracy
This fixes the issue that some rhythm instruments didn't receive correct notes. The changes have been limited to the Amiga versions.
2019-07-14 21:45:29 +02: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
Johannes Schickel 3847465163 SCUMM: Make GPL headers consistent in themselves. 2014-02-18 02:39:38 +01:00
Johannes Schickel 40ab5f8788 SCUMM: Ignore detune for Sam&Max. 2012-10-01 03:11:09 +02:00
Matthew Hoops b105104534 SCUMM: Update comments 2012-09-20 12:00:13 -04:00
Matthew Hoops 2a9d98003e SCUMM: Restrict the Mac m68k v5 driver to MI2/Indy4
Shouldn't be used with MI1
2012-09-20 11:58:04 -04:00
Matthew Hoops fc6ab89b50 SCUMM: Add support for Indy4 Mac 68k sound 2012-09-20 11:48:00 -04: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 fb4ed2224f SCUMM: Minor clean up in iMuse instrument handling code. 2011-07-10 05:28:20 +02:00
Johannes Schickel abbd29b16a SCUMM: Limit iMuse default instrument load to PC Speaker output.
Albeit the code is marked as a hack inside the source, the original behaved
exaclty the same. If the code is removed the PC Speaker output will miss notes,
since unlike the original we only output to parts, which have an instrument set
up.
2011-07-10 05:21:25 +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
athrxx 3d42141e9d SCUMM: implement some missing (very low relevance) imuse code
1) Don't skip transpose setting in sysex command 0. There are only a few sounds where this setting is used (mainly sfx).

2) Make MI2 and INDY4 read certain player start parameters from the sound resource. The start parameters usually  match our default parameters (exception: e.g. LeChuck's Fortress). The use of these parameters has been dropped in DOTT (they use default parameters like we do).
2011-05-29 01:03:55 +02:00
strangerke 69b1485a22 GIT: Clean up: Suppress SVN tags, now useless 2011-05-12 01:16:22 +02:00
Ori Avtalion 9414d7a6e2 JANITORIAL: Reduce header dependencies in shared code
Some backends may break as I only compiled SDL
2011-04-28 15:08:58 +03: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
Johannes Schickel d1acdaeb59 Slightly changed unsupported effect level handling in native MT-32 mode.
svn-id: r44214
2009-09-20 15:24:08 +00:00
Johannes Schickel 066d748c95 Cleanup.
svn-id: r44186
2009-09-18 15:54:39 +00:00
Johannes Schickel 0864394748 Implement proper reverb setting in native MT-32 mode (as desribed in bug report #1088045 "MI2: Minor problems in native MT-32 mode").
svn-id: r44185
2009-09-18 15:54:12 +00:00
Johannes Schickel c20bc5ea99 Implement proper pan reversal for Roland MT-32 in iMuse (as desribed in bug report #1088045 "MI2: Minor problems in native MT-32 mode").
svn-id: r44184
2009-09-18 15:12:27 +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 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 548cb2fbad Added FIXME comment about 'static' abuse in imuse_part.cpp
svn-id: r24327
2006-10-15 01:51:02 +00:00
Jamieson Christian b1f7f32ed1 Separated the IMuse Part methods into their own file. Updated the Bloodshed Dev-C++ project file at the same time.
svn-id: r21085
2006-03-05 05:14:20 +00:00