Age | Commit message (Collapse) | Author |
|
|
|
MI2 deletes the parser object(!) so we can't access any member
variables here. Thanks to athrxx for finding this.
This reverts commit 86c2fe47e04449602e4c005fa0a9c183bc8bba39 and adds
a comment explaining why.
|
|
This broke SCI, since it doesn't call processEvent any more.
This reverts commit afa54072a9622d7a370846bf280016843dc61009.
|
|
(this caused a crash in MI2)
|
|
ALL: Fix optimization unstable code on checking for null after new.
|
|
This removes overwrites in ReportHandlerScummVM which are simply the default
implementation anyway. A side effect is that this silences/fixes a warning
about the former onProgramChanged to hide an virtual method due to parameter
differences.
|
|
MIDI code will control volume via MIDI events thus the generated audio should
not be affected by mixer sound volumes.
The initial commit 0e6cdfd67580f75e912c5e92abb26821d032f74b added it as music
sound type. Might be copied from the (also) incorrect FluidSynth code.
|
|
MIDI code will control volume via MIDI events thus the generated audio should
not be affected by mixer sound volumes.
The initial commit(s) in d4d045b1174b4a48659f39f026ade42684b679bf /
13dc149ded691e718905049990dd0220230c500e added it as music sound type.
So, this seems to be a long standing issue.
|
|
Formerly the audio stream was registered as sfx. This is incorrect behavior
since the client code will control music volume with MIDI events on its own.
It seems 67b311713d8f4cfcd460a9649e0075f24278a048 introduced this very long
ago.
This should fix unintended coupling of sfx volume and music volume in BASS.
|
|
These issues were identified by the STACK tool.
By default, the C++ new operator will throw an exception on allocation
failure, rather than returning a null pointer.
The result is that testing the returned pointer for null is redundant
and _may_ be removed by the compiler. This is thus optimization
unstable and may result in incorrect behaviour at runtime.
However, we do not use exceptions as they are not supported by all
compilers and may be disabled.
To make this stable without removing the null check, you could qualify
the new operator call with std::nothrow to indicate that this should
return a null, rather than throwing an exception.
However, using (std::nothrow) was not desirable due to the Symbian
toolchain lacking a <new> header.
A global solution to this was also not easy by redefining "new" as "new
(std::nothrow)" due to custom constructors in NDS toolchain and various
common classes.
Also, this would then need explicit checks for OOM adding to all new
usages as per C malloc which is untidy.
For now to remove this optimisation unstable code is best as it is
likely to not be present anyway, and OOM will cause a system library
exception instead, even without exceptions enabled in the application
code.
|
|
At the point where the emulator is created extrapath should already been
added to extrapath. If not, the check in checkDevice already failed and thus
adding it would be too late anyway.
It seems this was added in 805b21181ab7138da6960ade703b25716120fc29. The
comment about it being a HACK has been removed in bbad3f333a9227ccb1de633a0fe92d9e01ad7bb3
but it's not clear to my why... At any rate, this should not be here.
|
|
|
|
|
|
|
|
|
|
This is to prepare for overriding more of this functionality in SCI.
|
|
|
|
ALL: Don't use EventRecorder at all when not compiled in
|
|
|
|
|
|
|
|
Formerly it tried to pass 'va_list' as '...' to debug. Now it's first creating
a String containing the output via String::vformat and then passing it
to debug.
Found by buildbot (master-dc). The warning message was:
audio/softsynth/mt32.cpp:65: warning: cannot pass objects of non-POD type
`struct va_list' through `...'; call will abort at runtime
|
|
GSoC2012: Event Recorder (reworked)
|
|
|
|
This syncs our code with munt commits 258cd89 and 17b40a6
|
|
Formerly the frequency was at 10000Hz. This resulted in 3,4 or even only 1
sample to be generated between callbacks on my system. All the other MIDI
drivers use a much lower frequency here. The MidiDriver_Emulated subclasses
use a frequency of 250Hz (by default) and the MidiDriver_MPU401 subclasses
(which are for example the ALSA output) use 100Hz. With the new frequency
of 250Hz 128 samples are generated between callbacks. This will hopefully
reduce the overhead of the MT-32 emulator (the engine's code was run 10000
times a second too) a bit.
I talked with KingGuppy and it seems the value was increased in the past
(still with the very old MT-32 emulator code) because there were accuracy
issues. However, I gave the lower frequency a quick test with the MI1, MI2
and ITE intro and didn't spot any obvious differences. As a result, KingGuppy
and I agreed to lower it back to 250Hz. If there are any problems coming up
we can still slightly increase the frequency to 1000Hz for example.
Thanks to waltervn for noticing this. Thanks to KingGuppy for discussion.
|
|
|
|
This fixes warnings that would appear after a little while in
Kyrandia 2, which would happen because every time the music
changed it would add a new loop point. This was probably harmless
because once the list was full it would keep re-using the last
element, and I imagine all songs were set to loop forever. But
this should be more correct, as I understand it.
|
|
|
|
|
|
|
|
|
|
A mistake in commit 3dc788da63520b8baad2b5c0726f34168ab55356
|
|
|
|
This fixes a Protracker module in the OS/2 version of
Hopkins FBI (bug #3612101). In row 0x30 of the first
pattern, the set channel offset effect in the fourth track
pushes the offset past the sample (repeat) length.
This is not error; the mixing function already handles this
case flawlessly. No assert() is necessary there.
|
|
This should fix bug #3571139.
|
|
|
|
|
|
|
|
|
|
This syncs our code with munt commit 15e9f65
|
|
|
|
|
|
|
|
The major change is the addition of a refined wave generator based on
logarithmic fixed-point computations and LUTs
|
|
|
|
|
|
This was accidentally removed in commit 5711d23
|
|
This syncs our code with munt commit ee380de
|
|
A large part of cadavre.mod is broken. No new notes play, and only
the old background sounds remain. It's possible, perhaps even
probable, that the original MOD player didn't have this problem,
but all standalone players I've tried do, so I'm assuming it's the
file that's broken. We work around it by changing the length of
the song after it's been loaded to only include the good parts.
|