Commit graph

100 commits

Author SHA1 Message Date
Jakob Wagner
08b500b5e9 TINSEL: Work around PCM playback deadlock in Noir
This workaround disables PCM playback.

The PCMPlayers _chunk is NULL but _state is S_MID.
As a result getNextChunk always return 1, leading to readBuffer in
the playback thread never unlocking _mutex.
2022-04-27 00:33:15 +03:00
Jakob Wagner
165ec9cbae TINSEL: Replace TinselV3 checks with comparisons 2022-04-21 20:34:17 +03:00
Jakob Wagner
7fc6499264 TINSEL: Replace TinselV0 checks with comparisons 2022-04-21 20:34:17 +03:00
Jakob Wagner
67c3bce30e TINSEL: Replace TinselV2 checks with comparisons
Until now, the TinselV* defines were used for discerning between
engine versions. The define TinselV2 was true for both v2 and v3.
Sticking to the old scheme would lead to confusion when more
special paths for v3 are implemented.
2022-04-21 20:34:17 +03:00
Eugene Sandulenko
abea37c9bb
ALL: Update ScummVM project license to GPLv3+ 2021-12-26 18:48:43 +01:00
Filippos Karapetis
4f1676e38b TINSEL: Initial work on the Saturn version of DW1
This version is using the same graphics format as the PSX version, with
differences in resource endianess, but features digital music with a
different track structure and has a different sound sample format

Pending issues:
- Font rendering is wrong - this is evident in the text and menus in
  the game title screen
- Cursor sprite and trails are wrong - can be seen in the menu of the
  game title screen
- Digital music is not supported yet - seems that a different track
  structure is used
- The sound sample format is different than the PC version - looks to
   be raw, but isn't
- The game crashes at the first room after watching Rincewind's waking
  up cutscene
2021-09-04 12:13:18 +03:00
Orgad Shaneh
a05e54f00c JANITORIAL: Remove trailing whitespaces 2021-05-04 11:46:30 +03:00
Le Philousophe
b5c67b9ae0 TINSEL: Fix build when MP3 decoding isn't available 2021-03-04 14:01:28 +01:00
sluicebox
93eeffc84d JANITORIAL: Update old bug tracker numbers 2021-03-03 02:15:05 +02:00
Einar Johan Trøan Sømåen
483ead52dd
TINSEL: Implement music playback for Discworld Noir 2021-03-01 21:52:25 +01:00
Einar Johan Trøan Sømåen
f9c1f62cdd
TINSEL: Partially implement scene loading for Discworld Noir 2021-02-16 23:24:27 +01:00
Filippos Karapetis
ae2e05cbd3 TINSEL: Move all handle-related functions into a new Handle class 2020-10-04 01:15:19 +03:00
Filippos Karapetis
63ae50e790 TINSEL: Replace usage of NULL with nullptr 2020-02-29 02:21:41 +02:00
Filippos Karapetis
939f7cf2b7 TINSEL: Move all the music related functions into a new Music class 2020-02-23 14:51:01 +02:00
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