Commit Graph
75 Commits
Author SHA1 Message Date
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
Alejandro Marzini e991cd8c53 - Revised abstract AudioCDManager.
- Removed AudioCDManager Singleton, and changed code for using AudioCDManager in OSystem.
- Added initialization code for new AudioCDManager in BaseBackend and OSystem_SDL.

svn-id: r49548
2010-06-09 20:09:57 +00:00
Willem Jan Palenstijn 6f4063fd5f Fix warning
svn-id: r48817
2010-04-27 20:14:56 +00:00
Max Horn a1840bd573 AUDIO: Rename Mixer::playInputStream to playStream
svn-id: r48637
2010-04-12 09:14:17 +00:00
Max Horn 21e1cc4cf8 Switch makeADPCMStream to DisposeAfterUse::Flag
svn-id: r47736
2010-01-31 02:11:41 +00:00
Max Horn 1565f14bc1 Moved audio stream implementations (for MP3, FLAC, etc.) to new dir sound/decoders/
svn-id: r47579
2010-01-26 22:48:45 +00:00
Max Horn f720d99b0a Switch Mixer::playInputStream to use DisposeAfterUse::Flag
svn-id: r47182
2010-01-08 22:09:43 +00:00
Max Horn 0cf53b025d Move DisposeAfterUse::Flag from Common to global namespace, and into a new header common/types.h
svn-id: r47180
2010-01-08 22:07:35 +00:00
Max Horn f692015301 Got rid of ReadStream::ioFailed()
svn-id: r46379
2009-12-15 08:18:57 +00:00
Max Horn 80b8d0af65 TINSEL: Make some const tables static; move static int priorVolMusic into SetMidiVolume to reduce its scope
svn-id: r45784
2009-11-09 22:19:54 +00:00
Max Horn 5cf868b757 TINSEL: Turn config code into a simple C++ class
svn-id: r45617
2009-11-02 21:56:29 +00:00
Max Horn 51933629d1 Changed foo(void) to foo() in almost all non-backend source files
svn-id: r45616
2009-11-02 21:54:57 +00:00