Commit graph

150 commits

Author SHA1 Message Date
Filippos Karapetis
24e7b4d2c0 SAGA: Remove outdated comment, related to Adlib instrument files
When that comment was written, there wasn't any support for the
instrument definition files of the Miles Sound System used with IHNM
2024-11-17 02:01:54 +02:00
Le Philousophe
f58b045ec8 SAGA: Migrate engine to Path 2023-12-24 13:19:25 +01:00
Coen Rampen
737111e9d8 SAGA: Add OPL2 support for ItE DOS GOG and Windows 2023-01-05 21:18:30 +01:00
Vladimir Serbinenko
7b9f0ab75d SAGA: Switch from custom macbinary parser to MacResManager
This makes it compatible with other resource fork formats after
update of detection entries
2022-12-18 20:46:34 +01:00
Vladimir Serbinenko
808f8f679e SAGA: Rename playAmigaMod to playProtracker 2022-12-15 16:58:49 +01:00
Vladimir Serbinenko
50be5b017e SAGA: Support music for ITE Amiga 2022-12-14 13:50:10 +01:00
Vladimir Serbinenko
5a431670d4 SAGA: Disable music on Amiga
Not implemented yet.
2022-11-14 00:27:33 +01:00
Le Philousophe
d5b55b667f SAGA: Don't use unsafe sprintf and vsprintf 2022-10-23 22:46:19 +02:00
Eugene Sandulenko
abea37c9bb
ALL: Update ScummVM project license to GPLv3+ 2021-12-26 18:48:43 +01:00
Orgad Shaneh
2930d37788 SAGA: Use nullptr
Using clang-tidy modernize-use-nullptr
2021-11-14 15:51:59 +02:00
Torbjörn Andersson
216ad40746 SAGA: Fix ITE digial music looping regression
When the MUSIC_DEFAULT flag was removed, the logic for looping music was
accidentally inverted: Instead of everything except tracks 13 and 19
defaulting to looping, now only tracks 13 and 19 would default to
looping.

See b14a2599bc (SAGA: Get rid of the MUSIC_DEFAULT flag, 2014-07-20)
2021-11-10 21:30:24 +02:00
Coen Rampen
28dcd89782 SAGA: Add AdLib fallback for IHNM GOG
This commit adds a fallback for the GOG version of I Have No Mouth... This
version is missing the AdLib instrument definition files which are necessary
to use the Miles driver. If these files are missing, the regular AdLib driver
is used, which has built-in instrument definitions. A warning is shown so the
user knows the music is inaccurate without the missing files.
2021-10-13 22:21:16 +02:00
Coen Rampen
af75c433e0 SAGA: Fix MIDI driver type detection
This fixes a small omission in the MIDI driver type detection where it would
not look at the Native MT-32 setting to set MT-32 type on a MIDI device.
2021-08-06 22:37:46 +02:00
Coen Rampen
d73b19b9b3 AUDIO/MIDI: Fix Miles 3 AdLib pitch bend range
Miles 2 uses the default MT-32 pitch bend range of 12 semitones for its AdLib
driver. Miles 3 switched to the default GM pitch bend range of 2 semitones for
AdLib. ScummVM would always use the Miles 2 pitch bend range, which caused
pitch bend for Miles 3 games to sound wrong on AdLib.

To fix this, a property was added to the Miles AdLib driver to specify which
Miles version to emulate. Depending on the value of this option, the correct
default pitch bend range is set.
2021-08-06 21:01:08 +02:00
Coen Rampen
832791407c SAGA: Fix music fade-outs
This fixes the fade-outs in IHNM, most notably at the end of the title screen
when using GM. Fades would take 30 seconds instead of the intended 3, and the
engine did not wait for the fade to finish but immediately played the next
track, which aborted the fade.
Note that the engine still does not always wait for a fade to finish when it is
triggered from a script. For example after AM's speech when dying in
Gorrister's chapter, in the original interpreter the music fades out while the
screen fades to black. In ScummVM, the screen does not fade out, so the music
fade is immediately aborted by playing the next track.
2021-07-29 20:24:43 +02:00
Coen Rampen
72c8622927 SAGA: Set Miles version on MIDI driver
This sets the version to emulate on the Miles MIDI driver so the MIDI devices
are initialized in the same way as the original interpreter.
2021-07-29 20:24:42 +02:00
Coen Rampen
e63b556015 SAGA: Add ITE MT-32 display message
This adds the message that the DOS version of Inherit The Earth displays on the
MT-32 when quitting the game.
2021-07-29 20:24:42 +02:00
Coen Rampen
12974b29e4 SAGA: Limit end of track resets to IHNM
This limits the pitch bend and sustain reset messages at the end of MIDI tracks
to I Have No Mouth, And I Must Scream. Inherit The Earth does not use sustain
and pitch bend is already reset at the start of each track. IHNM does use
sustain and does not reset pitch bend at the start of each track.
2021-07-29 20:24:42 +02:00
Coen Rampen
e6b30e4d57 SAGA: Fix MIDI parser memory leak
A new MidiParser object is created every time a MIDI track is played, but the
old parser would not be freed. Fixed this by first deleting the parser before
creating a new one.
2021-07-21 22:25:32 +02:00
Cameron Cawley
d1488f46de SAGA: Fix compilation with C++98 compilers 2021-07-09 17:09:00 +01:00
Coen Rampen
f86604ce66 SAGA: Replace MusicPlayer with multisource drivers
This removes the MusicDriver class, which was a subclass of MidiPlayer. The
MidiPlayer relies on MidiChannel objects for some functionality and has
problems with the Miles AdLib driver and Munt.
The functionality of this class is now implemented in the Music class. Volume
management is handled by the multisource MIDI drivers themselves, and added to
the Music class for digital and PC98 music.
2021-07-09 15:20:50 +02:00
Filippos Karapetis
e9c60720c0 SAGA: Remove SAGA2 references, code and stubs
All SAGA2 game development will continue in the new SAGA2 engine
2021-07-01 16:23:48 +03:00
Eugene Sandulenko
d33683558e SAGA: Added support for ITE GOG Mac CD v1.1 2020-09-17 22:08:25 +02:00
athrxx
a933b0a83e SAGA: (ITE/PC98) - fix music fading 2020-05-19 16:18:26 +02:00
athrxx
c22d9ea086 SAGA: (ITE/PC98) - add music support
We had an existing driver for that, so that could be hooked up rather quickly.

I haven't targeted the non-digital sfx for now, since I haven't fully analyzed whether they are even used. And it would require the reading of static data from the executable which we'd rather avoid.
2020-05-19 12:35:54 +02:00
athrxx
925e9e6fbc SAGA: (ITE/PC98) - digital sfx fine tuning
The experimental/guessed approach works fair enough, but there is a bit more to it.

I also removed the GF_ITE_PC98, since the platform is not exactly a game feature and can just as well be queried via _vm->getPlatform().

This commit doesn't fix the missing speech during the chess game sequence. Might be a resource issue. I haven't looked into it...
2020-05-19 12:35:54 +02:00
Misty De Meo
a87d8ca778 SAGA: skip music for PC-98 version of ITE
The PC-98 version of ITE has music in a different format I haven't
identified yet, so normal music handling code chokes on it. For now,
simply skipping all music allows the game to run.
2020-05-19 12:35:54 +02:00
Filippos Karapetis
98da344a67 SAGA: Remove obsolete disabled code 2017-08-21 22:31:33 +03:00
Ori Avtalion
3564032330 JANITORIAL: Reduce audio header dependencies 2016-04-14 16:10:21 +03:00
Johannes Schickel
01020089da SAGA: Add comments about possibly race conditions to timer callbacks.
(cherry picked from commit 93f627441a)
2016-02-09 02:52:29 +01:00
Filippos Karapetis
5b7dc80a64 SAGA: Fix typo in commit 6a49654 2015-07-13 02:29:07 +03:00
Filippos Karapetis
6a49654d86 SAGA: Fall back to the default Adlib driver for non-DOS versions of ITE
Only the DOS version of ITE uses the Miles audio driver
2015-07-13 02:21:51 +03:00
Filippos Karapetis
a95d22a2cd SAGA: Initial work on the DOS ITE demo 2015-07-04 01:51:45 +03:00
Kirben
1d204c752f SAGA: Fix Adlib in original DOS CD version of Inherit the Earth. 2015-07-03 09:39:30 +10:00
Torbjörn Andersson
a1929c6887 SAGA: Use the new "Miles" drivers for AdLib and MT-32
Note that this breaks the IHNM demo, as provided on the ScummVM web
page, since it doesn't have the sample.ad and sample.opl files
needed, but I have a feeling that this is a packaging error on
our part.

I don't have the original release of ITE, so I can't test that.
2015-06-28 16:08:49 +02:00
Filippos Karapetis
e88d6265d8 SAGA: Add support for MIDI music in SAGA2 games 2014-07-20 21:19:20 +03:00
Filippos Karapetis
b14a2599bc SAGA: Get rid of the MUSIC_DEFAULT flag 2014-07-20 17:10:55 +03:00
Johannes Schickel
c1be2aedbb SAGA: Make GPL headers consistent in themselves. 2014-02-18 02:39:37 +01:00
Sven Hesse
989ea7cb56 JANITORIAL: Remove trailing whitespace 2013-07-14 19:01:47 +02:00
Filippos Karapetis
0d53b7f628 SAGA: Fix some non-initialized variables in the Music class - CID 1003131 2013-05-01 02:01:23 +03:00
Matthew Hoops
b996a6a270 SAGA: Add support for IHNM Mac music 2012-09-12 19:31:29 -04:00
Christoph Mallon
23a0f5318c JANITORIAL: Remove trailing empty lines. 2011-08-07 13:53:33 +02:00
Eugene Sandulenko
78f1ea7690 OSYSTEM: extended installTimerProc() with timer ID parameter 2011-08-06 11:28:35 +01:00
eriktorbjorn
1b231ed7ff SAGA: Mute the music while the game is paused
It already paused the music, but any notes that were playing were
just left hanging. At least with the ALSA MIDI driver. This was
quite annoying when using the debug console.
2011-07-10 07:39:38 +02:00
Filippos Karapetis
0d3a2267c7 SAGA: Removed several game flags, which are now found more reliably on the fly
- The logo screens of all ITE versions are shown correctly now
- Wyrmkeep versions, demo versions with scene substitutes, demos with
mono music and demo versions with LE VOX encoded voices are all found
automatically now
2011-07-09 15:59:30 +03:00
strangerke
69b1485a22 GIT: Clean up: Suppress SVN tags, now useless 2011-05-12 01:16:22 +02:00
Max Horn
8c931fd1e8 AUDIO: Add Audio::MidiPlayer::createDriver(), let some engines use it 2011-03-28 18:06:36 +02:00
Max Horn
9e65daef3b SAGA: Change Sage to use Audio::MidiPlayer 2011-03-25 17:00:54 +01:00
Max Horn
06b5432e94 SAGA: Rename some MusicDriver members to match Audio::MidiPlayer 2011-03-24 16:46: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