Commit Graph
60 Commits
Author SHA1 Message Date
Adrian Frühwirth 7ebbb12dfb SCUMM: Remove superfluous 'else' in IMuseInternal::ImSetTrigger()
Both means to calculate `diff` are essentially equal because
wraparound of unsigned integers is well-defined and does what
the 'else' branch is simulating manually. Because of this,
gcc complains when compiling with -Wduplicated-branches.
2018-05-07 22:21:42 +02:00
Colin Snover 08186aeec6 SCUMM: Rename iMUSE save/load function to avoid confusing function hiding 2018-01-31 21:24:09 -06: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
Ben Castricum d58f594755 SCUMM: MI2 kill tune 113 on start of next, Fixes bug #1410 / Booty Island
Fix the "MI2: Two soundtracks playing at once" bug from the bug tracker.
It's triggered when the player enters the kiosk for the second time and
leaves before tune 113 is started.
2017-07-30 22:10:54 +02:00
Ben Castricum 392d8b44ff SCUMM: MI2 kill tune 107 on start of next, Fixes bug #1410 / Scabb Island
Fix the "MI2: Two soundtracks playing at once" bug from the forum.  It's
triggered when the player is moving faster then the scripts expect causing
the "stop tune 117" command be executed before the start of the tune.
Effectily creating a hanging tune 107.
This patch kills the tune when this sitation is detected.
2017-07-30 22:10:54 +02:00
Johannes Schickel 3847465163 SCUMM: Make GPL headers consistent in themselves. 2014-02-18 02:39:38 +01:00
Sven Hesse 989ea7cb56 JANITORIAL: Remove trailing whitespace 2013-07-14 19:01:47 +02:00
Torbjörn Andersson 29bc36d070 SCUMM: Fix initGM() buffer overflow (CID 1032513)
We're clearly using 12 bytes, not 11.
2013-07-06 14:03:31 +02:00
tcarey dc6b39d058 SCUMM: Clean-up of Roland GS code
1. Remove _sc55 bool. All Roland GS-capable devices have MT-32 sound/drum maps, so they should always be used when _enable_gs is set.
2. Always enable _native_mt32 if Roland GS mode is selected. I don't know why I never did this originally, since _enable_gs is automatically disabled for SCUMM v6+ games that use General MIDI tracks instead of MT-32 music.
3. Set master tune for GS devices to 442.0kHz. This is the master tune setting for the MT-32.
2013-05-11 19:18:11 +03:00
Willem Jan Palenstijn 2d1fd3b554 ALL: Fix typo (existant->existent) 2013-02-23 22:07:32 +01:00
Torbjörn Andersson f0c1d8dcc4 SCUMM: Add hack to preserve savegame compatibility with Mac MI1
For old savegames, we now use a "dummy" iMUSE objet to skip the old
iMUSE save state. I had hoped to be able to do this without making
any changes to the iMUSE code itself, but I was unable to.

Also added note about how the save state for the new music will not
quite work if the mixer output rate changes. Personally, I'm not
too worried about that. It breaks, but it shouldn't break badly.
2012-11-16 07:49:17 +01:00
Johannes Schickel 58f542d434 SCUMM: Implement support for Monkey Island 2 Mac music.
This is a initial RE of the audio output Monkey Island 2 Mac uses. Support
for special sound effects is not in there yet.
2012-09-20 02:12:41 +02:00
Johannes Schickel 482fcea8f3 SCUMM: Add debug output in case the code tries to set up a non-existant iMuse instrument. 2011-07-14 01:09:47 +02:00
Johannes Schickel f814dc971c SCUMM: Handle default instrument set up in iMuse like the original. 2011-07-14 00:49:32 +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
Max Horn 88913c0139 ALL: Remove trailing whitespaces
This tries to make our code a bit more compliant with our code formatting
conventions. For future use, this is the command I used:
  git ls-files "*.cpp" "*.h" | xargs sed -i -e 's/[ \t]*$//'
2011-06-20 00:59:48 +02:00
athrxx 1ca44c076c SCUMM: fix possible portability issue 2011-06-15 00:10:55 +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
athrxx 5fd257d3cc SCUMM: fix regression 2011-05-16 18:04:40 +02:00
athrxx 6fd78858d7 SCUMM: formatting 2011-05-16 00:41:57 +02:00
athrxx 0001b7a12b SCUMM: fix imuse bugs #1315950 and #761637
- Revert guesswork fix for bug #761637 which caused bug #1315950
- Add missing clear_queue() call to stopAllSounds_internal(). This is taken from INDY4 / MONKEY2 disasm. Someone with a SAMXMAX or DOTT disasm might want to check whether this is correct for these targets, too.
- Old FOA savegames saved after the Dr. Ubermann death scene (= during the ending sequence) will still be bugged, since the messed up imuse trigger/command queue gets restored from the savegame.
2011-05-15 23:23:10 +02:00
Max Horn 9ec64a66fe SCUMM: Turned ResTypeData into a Common::Array<Resource>, subsuming its _resource member 2011-05-13 14:48:01 +02:00
Max Horn c02420df43 SCUMM: Add a Resource class, refactor res code around it 2011-05-13 11:47:13 +02:00
Max Horn 75b9deb185 SCUMM: Get rid of the MemBlkHeader hack
This uncovered at least one potentially serious bug in the inventory
code, which still needs to be investigated and fixed.
2011-05-13 11:47:10 +02:00
strangerke 69b1485a22 GIT: Clean up: Suppress SVN tags, now useless 2011-05-12 01:16:22 +02:00
Max Horn 0ce2ca4e00 COMMON: Replace MKID_BE by MKTAG
MKID_BE relied on unspecified behavior of the C++ compiler,
and as such was always a bit unsafe. The new MKTAG macro
is slightly less elegant, but does no longer depend on the
behavior of the compiler.
Inspired by FFmpeg, which has an almost identical macro.
2011-04-12 16:53:15 +02:00
Max Horn 756f592b61 SCUMM: Remove unused iMuse MIDI 'passthrough' code 2011-03-23 15:25:46 +01:00
Johannes Schickel b36b7ee349 SCUMM: Fix GM initialization when "enable_gs" is set.
This is a regression from r25630, which caused the code to send some garbage
data to the GS device, which resulted in some devices to fail with an
"Address Error." (like the Roland SC-55).

This might also fix bug #1927501 "GS option is broken". Even though actually
the device there failed with another error it is likely to be caused by the
same code. At least it is the only iMuse MIDI code change between 0.9.0 and
0.12.0, which might result in such a problem.

svn-id: r54727
2010-12-01 23:55:10 +00:00
Max Horn e27b05ef35 COMMON: Rename String::printf() to String::format()
This is a first step towards getting rid of all uses of regular printf,
fprintf, vprintf, vfprintf, puts, fputs, etc. in our codebase.

The name format() reflects the purpose of the function, and parallels
String.format() in Java, boost::format, and others.

svn-id: r54004
2010-11-01 16:02:28 +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
Travis Howell 8783b0f2f7 Add patch #2839048 - MM C64 sound/music player, with minor changes.
svn-id: r46143
2009-11-26 00:31:19 +00:00
Travis Howell 40504d7810 Add patch #2876221 - FBEAR: Fix for MIDI piano notes (DOS version), with minor change.
svn-id: r46081
2009-11-22 11:58:14 +00:00
Andre Heider e98c791106 Fixed iMuse regression: IMuseInternal::terminate() was never called, because the base class does not have that virtual function anymore. Code moved to the destructor.
svn-id: r43714
2009-08-24 22:41:56 +00:00
Johannes Schickel ecb6423055 Fix warning caused by -Wformat-security, also fixed a possible buffer overflow along with it.
svn-id: r43445
2009-08-16 17:36:16 +00:00
Torbjörn Andersson b97c9ef136 Work around bug #1324106 again. Apparently, I was mistaken the other day when I
said the timer changes fixed it. This time, I've made the workaround a bit
simpler to understand, though.

svn-id: r30429
2008-01-11 22:59:13 +00:00
Max Horn 6bc4a9a35e The SCUMM timer fix makes the workaround for bug #1324106 obsolete
svn-id: r30419
2008-01-11 22:13:34 +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 4db72c8762 Unified how we deal with (and how we generate) MIDI sysex messages -- in particular, we now always do so w/o framing the message (documented this with a Doxygen comment in the MidiDriver class)
svn-id: r25630
2007-02-16 13:30:41 +00:00
Torbjörn Andersson dfe8d777c1 Applied my own patch #1594924 to work around bug #1324106 ("MI2 VGA: Music as
Rapp is instantiating isn't synchronized"). I don't know if our timing is off,
or if it's just a case of overly optimistic scripting, but the pause / unpause
music instructions are issued in the wrong order.

svn-id: r24726
2006-11-16 17:08:31 +00:00
Torbjörn Andersson e61526555c More whitespace.
svn-id: r24682
2006-11-12 02:34:09 +00:00
Torbjörn Andersson c5fca7b9ce Whitespace
svn-id: r24680
2006-11-12 02:24:25 +00:00
Eugene Sandulenko d292c0ec55 Since our debug() adds an exclamation mark at the message end, remove
it in several calls to avoid duplication!!11!

svn-id: r21607
2006-04-04 22:04:51 +00:00
Andrew Kurushin 62d2bcf735 Fix MSVC warnings #2
svn-id: r21441
2006-03-24 18:32:10 +00:00
Jamieson Christian 4d5a3e4c45 IMuse SysEx processing now handled by client-specified callbacks. This removes all game-specific references from the Player class. Bloodshed Dev-C++ project file updated.
svn-id: r21241
2006-03-12 18:06:22 +00:00
Jamieson Christian 06398d1a84 Removed tag2str usage, which eliminates scumm/util.h dependency.
svn-id: r21107
2006-03-05 22:35:26 +00:00