Commit Graph

86 Commits

Author SHA1 Message Date
Eugene Sandulenko
4dc60b525d TINSEL: Fix class initialization 2016-06-17 12:10:11 +02:00
Ori Avtalion
3564032330 JANITORIAL: Reduce audio header dependencies 2016-04-14 16:10:21 +03:00
Martin Kiewitz
1d8646ee01 TINSEL: Enable Miles Audio for DW1+DW1CD Demo only
DW1 floppy demo doesn't seem to have audio at all
2016-02-09 02:14:08 +01:00
Martin Kiewitz
4e852a691b TINSEL: DW1: Improve timbre file error message
it now mentions all the possible file names.
2015-10-24 20:25:48 +02:00
Martin Kiewitz
0800d67f65 TINSEL: DW1: enable Miles Audio for DOS only 2015-07-04 23:08:27 +02:00
Martin Kiewitz
3f31b5ba64 TINSEL: DW1: Miles Audio AdLib MIDPAK.AD support
- added support for MIDPAK.AD timbre files on top
FAT.OPL. FAT.OPL gets copied by installer into MIDPAK.AD for this version
- changed order of timbre file checking
- adjusted and improved comments about discworld 1 versions
2015-07-04 22:20:34 +02:00
Martin Kiewitz
b8bec0aaa0 TINSEL: DW1: Miles Audio AdLib support for FAT.OPL
eriktorbjorn owns a version of DW1, that only has FAT.OPL and no
SAMPLE.AD/SAMPLE.OPL. We check if SAMPLE.AD/.OPL are available,
if not we try our luck with FAT.OPL
2015-07-04 21:37:24 +02:00
Matthew Hoops
a1e2986056 TINSEL: Silence a gcc warning 2015-06-28 20:05:24 -04:00
Martin Kiewitz
60903c2908 TINSEL: DW1: MT32: don't pass timbre file
because the game does not have one
2015-06-28 12:49:12 +02:00
Martin Kiewitz
63656348a7 TINSEL: DW1: add support for Miles Audio driver
- AdLib + MT32 support
2015-06-28 02:10:18 +02:00
Johannes Schickel
9b138f4eb4 TINSEL: Make GPL headers consistent in themselves. 2014-02-18 02:39:39 +01:00
Strangerke
29a63886aa TINSEL: Janitorial - Fix spacing errors 2013-11-24 19:20:12 +01:00
Filippos Karapetis
95f92ed9de TINSEL: Add support for enhanced music in the Mac version of DW1 2013-04-12 19:31:11 +03:00
Filippos Karapetis
07994fb361 TINSEL: Add support for the digitized music in DW1 Mac 2012-12-13 03:09:41 +02:00
Filippos Karapetis
394ff22232 TINSEL: Add another check to skip the non-MIDI music of DW1 Mac 2012-12-11 02:59:30 +02:00
Filippos Karapetis
b05fa7f204 TINSEL: Add resource handling of the BE resources in DW1 Mac
This is the second attempt. All the BE resources of DW1 Mac are
handled correctly now. Added READ_16, READ_32, FROM_16, FROM_32 and
TO_32 to handle all of the different cases where endianess is
already handled. Note that the game scripts are LE, so these
haven't been changed
2012-12-11 02:56:48 +02:00
Filippos Karapetis
3fdddd53b2 TINSEL: Start handling the BE resources of the Mac versions of DW1
Refer to bug #3110936

This is still work in progress, but it doesn't affect the rest
of the LE versions of DW1. Both the Mac demo and the full
version still crash. The music in the Mac version is skipped for
now, as it isn't MIDI
2012-12-01 21:53:33 +02:00
Filippos Karapetis
1fffbe40ce TINSEL: Change SetMidiVolume() so that it doesn't start/stop music tracks
Previously, SetMidiVolume() would stop the currently playing track when
the MIDI volume was set to 0. Now, the music track always plays, even
when the volume is set to 0. This fixes bug #3541533 - "DW: Silencing
music volume stops music" and resolves two FIXME comments
2012-07-15 17:37:55 +03:00
Filippos Karapetis
89aa6573fe TINSEL: Remove the GF_DEMO flag 2012-07-15 14:38:26 +03:00
Filippos Karapetis
b8354e27ae TINSEL: Fix bug #3541230 - "DW: PSX version locks up after using the book"
Removed the superfluous MIDI offset storing code. Now, the MIDI buffer is
re-read when the music loops. This removes a static variable and also
fixes another bug in the SEQ decoder.
2012-07-09 01:33:40 +03:00
Matthew Hoops
76dfbbede4 TINSEL: Add basic PSX SEQ playback support
Instrument bank support is not implemented yet
2012-05-03 18:19:54 -04:00
Alyssa Milburn
be35baddc7 TINSEL: Rename globals to add g_ prefix. 2012-02-22 23:14:29 +01:00
Alyssa Milburn
e21764be76 TINSEL: Don't leak _curChunk on exit. 2011-11-14 22:54:34 +01:00
strangerke
69b1485a22 GIT: Clean up: Suppress SVN tags, now useless 2011-05-12 01:16:22 +02:00
Max Horn
7607e351cc TINSEL: Move custom ADPCM decoders to tinsel engine 2011-04-13 12:48:57 +02:00
Max Horn
f5ff6e9e18 TINSEL: cleanup 2011-04-12 16:06:39 +02:00
md5
cd085b1ae8 TINSEL: Removed some unused global static variables 2011-04-10 17:27:48 +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
f333d93fe8 TINSEL: Remove unused TinselEngine::_musicVolume member 2011-03-25 14:15:52 +01:00
Max Horn
47e347b922 TINSEL: Change MidiMusicPlayer to derive from 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
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
md5
a796f7843d TINSEL: Added enhanced music support for the German CD "Neon Edition" re-release of DW1 (bug #2827022) 2011-02-24 14:54:12 +02: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
Max Horn
2180b2d6b5 COMMON: Split common/stream.h into several headers
svn-id: r54385
2010-11-19 17:03:07 +00:00
Max Horn
1dbf8d73d5 TINSEL: Mark all (?) global vars with a FIXME comment
Use of global vars is what prevents RTL from working in Tinsel (and
probably in other engines). More specifically, the fact that many
global vars are not explicitly inited when the engine is (re)launched.

svn-id: r54262
2010-11-16 09:53:55 +00:00
Max Horn
059944e59c COMMON: Push #include audiocd.h in system.h out to .cpp files
svn-id: r54148
2010-11-08 23:07:42 +00:00
Max Horn
82e473bc3b BACKENDS: Partial merge of gsoc2010-opengl: Audio CD changes only
This commit contains the AudioCDManager changes from the gsoc2010-opengl
branch. The other changes in that branch are restricted to the backends
directory only (plus configure).

The Nintendo DS and Dreamcast ports still need to be ported over to
the new Audio CD system, but that should be fairly easy to do.

svn-id: r54147
2010-11-08 22:53:36 +00:00
Max Horn
9a350f4398 ENGINES: Get rid of some (f)printfs
svn-id: r54011
2010-11-01 16:04:47 +00:00
Johannes Schickel
75e8452b6e OPENGL: Merged from trunk, from rev 52105 to 53396.
This includes an rather hacky attempt to merge all the recent gp2x backend
changes into the branch. I suppose the gp2x backend and probably all new
backends, i.e. gph, dingux etc., might not compile anymore.

Since I have no way of testing those it would be nice if porters could look
into getting those up to speed in this branch.

svn-id: r53399
2010-10-13 03:57:44 +00:00
Paul Gilbert
70fed746df TINSEL: Fix for #3032780 - Mute not respected in DW1
svn-id: r52674
2010-09-11 05:28:54 +00:00
Filippos Karapetis
83c8ed97e3 TINSEL: Code cleanup, fixed potentially undefined behavior
svn-id: r52338
2010-08-24 13:31:44 +00:00
Filippos Karapetis
3082354fa4 TINSEL: Adjusted the commented out music debug code for the latest changes to
the lookup tables

svn-id: r52333
2010-08-24 12:45:19 +00:00
Filippos Karapetis
808e36541e TINSEL: Removed the hardcoded MIDI offset arrays.
MIDI offsets for the enhanced music soundtrack
are now calculated on the fly

svn-id: r52331
2010-08-24 12:27:22 +00:00
Eugene Sandulenko
cb93679ea2 TINSEL: Fixed final track mapping to Ench soundtrack.
For some reason it referred to non-existent 3141. Changed it to
correct 3142.

svn-id: r52324
2010-08-24 09:47:04 +00:00
Eugene Sandulenko
95748c07cc TINSEL: Partial fix for MIDI in German release.
Bug #2827022: "DW: Enhanced music doesn't work". This release
has completely different MIDI.DAT file. So far offsets and detection
for this version were added. The mapping has to be confirmed with
James Woodcock.

svn-id: r52323
2010-08-24 09:46:17 +00:00
Alejandro Marzini
e1ef3cd9fc Renamed getAudioCD to getAudioCDManager.
svn-id: r49678
2010-06-15 04:13:12 +00:00