Age | Commit message (Collapse) | Author |
|
MKID_BE relied on unspecified behavior of the C++ compiler,
and as such was always a bit unsafe. The new MKTAG macro
is slightly less elegant, but does no longer depend on the
behavior of the compiler.
Inspired by FFmpeg, which has an almost identical macro.
|
|
Found by GCC 4.6's -Wunused-but-set-variable
|
|
|
|
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.
|
|
|
|
|
|
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.
|
|
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.
|
|
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.
|
|
And respect global mute settings
|
|
This was introduced when converting to the new RGB data setPalette call. It
should not have caused any troubles, since start is always 0 it seems, but
better be sure about this one and keep the original behavior.
|
|
This change is not tested. It should work just fine though, since it just
removes the RGB->RGBA conversion before calling setPalette.
|
|
svn-id: r55850
|
|
svn-id: r55806
|
|
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
|
|
svn-id: r54815
|
|
handling keyboard keys
svn-id: r54568
|
|
svn-id: r54385
|
|
svn-id: r54148
|
|
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
|
|
MADE does not currently use Debug Channels, but this does provide a base for adding them along with any other debugging commands.
svn-id: r54139
|
|
svn-id: r54036
|
|
svn-id: r53487
|
|
svn-id: r53484
|
|
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
|
|
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
|
|
svn-id: r51495
|
|
Cache needed to be cleared every time we load a game. Otherwise, those platforms that happen to use the exact same addresses (PC) were ok, but those platforms that had different addresses (PSP for example) would get messed up.
svn-id: r51138
|
|
svn-id: r51066
|
|
svn-id: r50950
|
|
FM-Towns CD).
svn-id: r50941
|
|
svn-id: r50840
|
|
select MDT_PREFER_MT32 or MDT_PREFER_GM
svn-id: r50288
|
|
svn-id: r50128
|
|
Without this parameter mass detection gave tons of false alarms.
Use globbing for narrowing down the depth search.
svn-id: r49788
|
|
svn-id: r49678
|
|
Now AD can search nested directories. By default it is turned off,
but there is new parameter to ADParameters struct. Usually value
of 2 is good enough for all purposes.
svn-id: r49653
|
|
- 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
|
|
These functions are only used internally be Engine subclasses, and
by moving them to a separate header we can reduce indirect header
dependencies.
svn-id: r48934
|
|
svn-id: r48637
|
|
This removes the dependency on array.h from str.h.
Also, begun migration from the confusing type name "StringList" to
the more appropriate StringArray.
svn-id: r48282
|
|
svn-id: r48279
|
|
Fixes bug #2960238.
svn-id: r48149
|
|
svn-id: r47716
|
|
sound/decoders/
svn-id: r47579
|
|
svn-id: r47541
|
|
svn-id: r47492
|
|
svn-id: r47397
|
|
svn-id: r47395
|
|
Also fix several recently introduced new/delete vs. malloc/free mismatches.
svn-id: r47369
|