Commit Graph
31 Commits
Author SHA1 Message Date
Eugene Sandulenko abea37c9bb ALL: Update ScummVM project license to GPLv3+ 2021-12-26 18:48:43 +01:00
Orgad Shaneh 6333092801 MADE: Use nullptr
Using clang-tidy modernize-use-nullptr
2021-11-14 15:51:59 +02:00
Coen Rampen 245c4cc923 MADE: Display MT-32 quit message
This commit adds the message displayed on the MT-32 display when the game quits.
2021-10-09 16:59:45 +02:00
Coen Rampen 2d5e8dbee6 MADE: New MIDI player
This rewrites the MADE music player to remove the use of the MidiPlayer. This
fixes the following issues in Return to Zork:
- User music volume control did not work for AdLib.
- MIDI channels were remapped; sometimes channels were missing (f.e. at the
  lighthouse exterior).
- Some music tracks did not play because the current track had to be stopped
  before playing a new track (f.e. the music over the credits after the intro).
- MIDI played at half volume and volume control would reset when a new track
  started playing.
- "Native MT-32" flag was not checked, so the Miles driver was not used for
  hardware MT-32.
- MT-32 to GM instrument mapping did not work.
- Roland GS mode now works.
2021-10-09 16:59:44 +02:00
Martin Kiewitz cae493523c MADE: Music: initialize musicType variable
wasn't initialized in case milesAudio was disabled
2015-07-05 21:26:08 +02:00
Torbjörn Andersson 2b3553306d MADE: Delete AdLib instrument stream after driver initialization 2015-07-05 01:32:53 +02:00
Torbjörn Andersson cc471ecd07 MADE: Cleanup AdLib driver initialization...
... as per m_kiewitz's suggestions.
2015-07-05 01:09:55 +02:00
Torbjörn Andersson 672bdeff1f MADE: Allow loading of sample.ad from rtzcd.red
At the moment, AdLib music doesn't work yet though. At least not
for this particular case.
2015-07-05 00:08:15 +02:00
Kirben 3ad35f760c MADE: Limit Miles audio to Return to Zork only, and enable Adlib support. 2015-07-02 23:05:50 +10:00
Kirben 46babcc3c4 MADE: Add Miles support for RTZ, currently disabled for Adlib due to known issues. 2015-07-02 20:30:49 +10:00
Johannes Schickel 5b70d34479 MADE: Make GPL headers consistent in themselves. 2014-02-18 02:39:36 +01:00
Johannes Schickel 7b126c5f24 MADE: Minimize #include usage. 2011-10-09 22:58:37 +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
Max Horn 8c931fd1e8 AUDIO: Add Audio::MidiPlayer::createDriver(), let some engines use it 2011-03-28 18:06:36 +02:00
Max Horn 7949d7c6de AUDIO: Move more common code to Audio::MidiPlayer
This also should fix some regressions from the previous
commits, related to MidiParser's either being leaked,
or being deleted and then used again (i.e., crashing).

I tested as many games as I had available, but further
testing of all affected engines is called for anyway.
2011-03-25 14:15:53 +01:00
Max Horn 84d68f31e8 MADE: Change MusicPlayer to derive from Audio::MidiPlayer 2011-03-24 16:46:47 +01:00
Max Horn 088bd7a70b ENGINES: Remove unused MIDI pass-through code 2011-03-23 17:07:48 +01:00
Max Horn e70fd59b35 ENGINES: Further simplify pseudo MidiDrivers; fix some regressions
The regression affected AGOS and maybe some others; specifically,
the real MidiDriver would have been deleted twice -- I previously
missed that the Engine instances takes care of freeing the real
MidiDriver, not the MidiPlayer wrapping it.

This commit should clarify the ownership of the real MidiDriver for
most pseudo MidiDrivers.
2011-03-23 16:49:41 +01:00
Max Horn 29847ea42d AUDIO: Change several fake MidiDrivers to MidiDriver_BASE subclasses
Many engines follow the advice in audio/midiparser.h and create a
"pseudo-MidiDriver" subclass. But MidiParser really only needs a tiny
subset of the MidiDriver capabilities, namely those found in
MidiDriver_BASE. So we try to subclass from that whenever possible; this
allows us to remove many stub methods, and enables further future
simplifications.
2011-03-23 15:25:47 +01:00
Max Horn 8982fff1b7 AUDIO: Add pure virtual MidiDriver::isOpen() method
This in turn enables modifying MidiDriver_MPU401::close() to allow
it to be called on a midi driver that has not yet been opened.

The specific issue that triggered me to make these changes was a
crash-upon-quit in HUGO, caused by it instantiating a midi driver,
then encountering an error (missing hugo.dat) *before* having
opened the new midi driver; the general cleanup code then tries
to close the (not yet opened) midi driver -> kaboom

Also fixed some engines which were leaking MidiDriver instances.
2011-03-22 23:51:47 +01:00
Max Horn 42ab839dd6 AUDIO: Rename sound/ dir to audio/
svn-id: r55850
2011-02-09 01:09:01 +00:00
Filippos Karapetis 9b8c04045b MIDI: Fix for bug #3170988 - "MONKEY2: Messed up MT-32 music"
This is a regression from r55256. Apparently, SCUMM has issues when sending a sustain
off on a notes off event. Thus, this has been turned into a feature, which is disabled
by default. Since MADE, SAGA and tinsel all share the same music code and play regular
MIDI files, and this feature fixes hanging notes for them, it has been enabled for them.
Also, applied a patch for a bug regarding the notes off event in MADE and tinsel,
which has been applied in SAGA already

svn-id: r55746
2011-02-02 23:27:59 +00:00
Johannes Schickel 6588398ce6 MIDI: Send a reset MIDI device signal on startup.
This is currently done in the engine code. I adapted AGI, AGOS, DRACI,
GROOVIE, LURE, MADE, QUEEN, SAGA, SKY, TINSEL and TOUCHE to send a reset
device on startup. The sound output still works fine (started up a game
from every engine), so this should hopefully not introduce any regressions.

As far as I can tell it seems that SCUMM does send a proper device reset, so
I did not touch it. KYRA only sends a proper reset for MT-32 currently. I am
not sure about SCI though.

This fixes bug #3066826 "SIMON: MIDI notes off when using RTL after SCI".

svn-id: r52736
2010-09-15 22:00:20 +00:00
Filippos Karapetis c2db2b91a5 - Music now works in LGoP2
- Changed the default music volume to 127, down from 255
- Added an explanation/FIXME for the out of sync mouth animations in RTZ
- Added some TODOs and removed some obsolete ones

svn-id: r35843
2009-01-13 10:11:52 +00:00
Torbjörn Andersson eb35835f5e I believe the setVolume() function has to be guarded by a mutex. (I added this to
the Tinsel engine a while back to fix mysterious problems, but forgot to add it
elsewhere.) Maybe this will fix the mysterious IHNM crashes, as well?

svn-id: r34048
2008-08-20 09:12:11 +00:00
Benjamin Haisch 7191b2c515 Added MIDI playback (which doesn't work yet) and fixed compilation (sorry all)
svn-id: r31873
2008-05-05 12:51:50 +00:00
Filippos Karapetis 00e652f8e4 More cleanup
svn-id: r31692
2008-04-24 14:15:35 +00:00
Filippos Karapetis 068372ac94 Cleanup and simplification of the music playing code
svn-id: r31691
2008-04-24 14:12:08 +00:00
Filippos Karapetis 68c511423e Cleanup
svn-id: r31686
2008-04-24 13:12:08 +00:00
Benjamin Haisch efeb8a3193 Added (early) midi player code.
Added "screen flash" effect.
Implemented opcodes:
- o1_PLAYMUS
- o1_STOPMUS
- o1_ISMUS
- o1_FLASH
- o1_LOADSND
- o1_LOADMUS

svn-id: r31682
2008-04-23 23:22:02 +00:00