Commit Graph
66 Commits
Author SHA1 Message Date
Coen Rampen 0fafb0ee19 AGOS: Fix Waxworks crash when playing digital SFX
Waxworks DOS has both digital and limited MIDI SFX. The game scripts use two
different opcodes for trigging digital and MIDI SFX; if a sound effect has both
a digital and a MIDI version, both opcodes are triggered. When digital SFX are
active, ScummVM would try to handle both the digital and the MIDI opcode by
playing a digital SFX. This would crash the game if the MIDI SFX ID was invalid
as a digital SFX ID. Strangely enough, this bug also seems to affect the Amiga
version. Apparently both opcodes are still in the scripts of this version, even
though it does not support MIDI at all AFAIK.

This commit fixes the issue by only playing the MIDI SFX if digital SFX are
turned off and ignoring them otherwise.
2022-08-05 22:16:43 +02:00
Coen Rampen 66bb075f1c AGOS: Add E2/WW AdLib and MT-32 SFX and enhancements
This adds support for the AdLib and MT-32 sound effects in Elvira 2 and
Waxworks. It adds an option to the UI to toggle between sampled and
synthesized SFX. It also adds the following enhancements:
- AdLib OPL3 mode for Elvira 2, Waxworks and Simon 1 floppy demo. This can be
selected using a new UI option.
- Mixed AdLib/MIDI mode for Elvira 2 and Waxworks.
- Implemented "monophonic chords", a feature of the original MIDI code which
would play only the highest note of a chord on AdLib. Most noticable in the
Waxworks music.
- Added UI option to select Simon 1 DOS music tempos.
- Rewrite of the AdLib and MT-32 drivers to remove duplication and make use of
features of the standard multisource drivers.
- Refactored MidiPlayer to standardize interface and remove code moved to the
drivers and parsers.
2022-05-09 17:19:44 +02:00
Eugene Sandulenko abea37c9bb ALL: Update ScummVM project license to GPLv3+ 2021-12-26 18:48:43 +01:00
Orgad Shaneh 8c81b5026a AGOS: 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
Ori Avtalion 5e49800901 AGOS: Reduce audio header dependencies 2016-04-14 16:48:02 +03:00
Johannes Schickel c4fc0cee96 AGOS: Make GPL headers consistent in themselves. 2014-02-18 02:39:32 +01:00
strangerke 69b1485a22 GIT: Clean up: Suppress SVN tags, now useless 2011-05-12 01:16:22 +02:00
Max Horn 8d1431a5ab AGOS: cleanup
svn-id: r48227
2010-03-10 20:56:54 +00:00
Travis Howell 3f22122413 Correct vertical offset, when print stats in the AtariST version of Elvira 2.
svn-id: r39558
2009-03-20 10:01:00 +00:00
Travis Howell 356e803a95 Add work around for bug #2686883 - WAXWORKS: Crash in Jack the Ripper Zone.
svn-id: r39557
2009-03-20 09:59:40 +00:00
Travis Howell 2620d6836c Add initial support for Personal Nightmare.
Thanks to dreammaster for file decompression and icon decoding code.

NOTE: setjmp/longjmp code will require conversion for portability.

svn-id: r39216
2009-03-08 08:45:21 +00:00
Travis Howell 546744fec4 Code difference no longer required (fixed by revision 35327).
svn-id: r36262
2009-02-11 12:33:37 +00:00
Travis Howell 5de19ecb28 Cleanup.
svn-id: r36232
2009-02-07 03:36:36 +00:00
Travis Howell c2daf686d6 Add upper case code for oe1_pcName() in Elvira 1/2.
svn-id: r35330
2008-12-13 07:38:37 +00:00
Max Horn 9b160804ab Renamed Engine::quit to Engine::shouldQuit (previously, it was easily confused with Engine::quitGame); also cleaned up engine.h a bit
svn-id: r34700
2008-09-30 12:27:38 +00:00
Christopher Page 8d8c46e36f Cleanup: Got rid of _quit and _rtl variables in engine.h/.cpp which are not used anymore. Found some _quit flags in Agos and Gob and replaced with bool quit() where appropriate
svn-id: r33848
2008-08-13 20:45:00 +00:00
Travis Howell fd65ea311a Hopefully allow quiting at any stage AGOS engines games again.
svn-id: r33693
2008-08-08 02:18:17 +00:00
Travis Howell ee89c3000b Minor cleanup.
svn-id: r31514
2008-04-16 12:24:09 +00:00
Travis Howell 7e222b1a0c Cleanup.
svn-id: r31512
2008-04-16 08:50:25 +00:00
Jordi Vilalta Prat 66e9d4f5e8 Removed trailing spaces.
svn-id: r30664
2008-01-27 19:47:41 +00:00
Max Horn f44a196087 Moved all time() calls in AGOS to a single new method AGOSEngine::getTime(); also replaced an evil function-static variable by a member variable (lastMinute)
svn-id: r29908
2007-12-20 09:43:46 +00:00
Travis Howell 2670862c33 Update comment for workaround for bug #1745996.
svn-id: r29545
2007-11-18 04:42:40 +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
Travis Howell 24b09cdc08 Use warning for that last work around.
svn-id: r27845
2007-07-02 00:22:03 +00:00
Travis Howell 3ef882041b Add work around for possible script bug in Elvira 2.
svn-id: r27844
2007-07-02 00:14:53 +00:00
Travis Howell d768edcd3a Fix bug #1746107 - Elvira 2: Crash Catacombs lev2.
svn-id: r27842
2007-07-01 23:57:49 +00:00
Max Horn 206d167457 AGOS: Introduced ChildType enum
svn-id: r27792
2007-06-30 16:25:59 +00:00
Travis Howell 49242a9e34 Fix display of experience in Elvira 2.
svn-id: r27772
2007-06-29 14:55:45 +00:00
Travis Howell fc373c9544 Fix some scripts failing to start in Elvira 2, due code difference in isCalled opcode.
svn-id: r27770
2007-06-29 02:06:46 +00:00
Travis Howell fff80bc489 Fix load/save interface in Elvira 1.
svn-id: r27191
2007-06-08 07:50:28 +00:00
Travis Howell 3f819b9085 Add details for French and German Amiga versions of Elvira 1. Remove restart state from Elvira 1 detection, due to two byte difference in the restart state on each disk of Amiga versions.
svn-id: r27164
2007-06-07 09:37:22 +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
Travis Howell 9d041cc059 Add sound effects code for Amiga and AtariST versions of Elvira 2.
svn-id: r26989
2007-05-28 11:22:53 +00:00
Travis Howell 0d789e074e Fix glitches caused by interface differences in the AtariST verison of Elvira 2.
svn-id: r26988
2007-05-28 08:54:13 +00:00
Travis Howell 45e8fbe8f5 Rename script opcode in Elvira 2.
svn-id: r26986
2007-05-28 01:11:43 +00:00
Travis Howell 6511a32905 Correct error in printStats opcode for Elvira 2.
svn-id: r26953
2007-05-27 03:01:20 +00:00
Travis Howell d6e0fe13b5 Add code for opcodes 177/178 in Elvira 2.
svn-id: r26937
2007-05-26 13:23:06 +00:00
Travis Howell 5e1af6f479 Add load/save interface support for Elvira 2 and Waxworks.
svn-id: r26909
2007-05-22 10:31:51 +00:00
Travis Howell 6452a701be Fix glitches in pause options of Elvira 1.
svn-id: r26796
2007-05-10 00:43:27 +00:00
Travis Howell 20bf83a2ce Imrproved support for Elvira 1/2 and Waxworks.
svn-id: r26792
2007-05-09 15:36:05 +00:00
Travis Howell 1a69604e82 Cleanup.
svn-id: r26769
2007-05-07 01:11:10 +00:00
Travis Howell 48c21a1e31 Add eriktorbjorn's patch to split script opcodes into specific game engines.
svn-id: r26490
2007-04-15 12:04:47 +00:00
Travis Howell 2d3e77db85 Split game engines, to allow further cleanups.
svn-id: r26481
2007-04-15 05:04:48 +00:00
Travis Howell 74f21c1c4f Correct typo.
svn-id: r25808
2007-02-23 10:19:53 +00:00
Travis Howell 47280b3301 Fix bug #1600999 - SIMON2: Crash while talking to Bingo Bongo. A regression due to the work around for extra long strings been broken, when support for the Feeble Files was added in the past.
svn-id: r25807
2007-02-23 10:18:14 +00:00
Travis Howell 590bd33a9e Fix bug #1624767 - FF: save games will not load.
svn-id: r24960
2007-01-01 04:35:27 +00:00
Travis Howell f55320f988 Add inital pause code for Elvira 1/2 & WW, and cleanup
svn-id: r24723
2006-11-15 13:11:53 +00:00
Travis Howell 493af8f40b Only read a single item, in doTable opcode
svn-id: r24624
2006-11-05 07:42:23 +00:00
Travis Howell a2abbf919d Add inital load/save code changes for earlier games and cleanup
svn-id: r24622
2006-11-05 06:26:45 +00:00