version of patch 1448395 by Aubin and some of my
own changes.
Notably:
* Two elements of a struct in backends/midi/quicktime.cpp
needed to be forced to BE.
* NASM set to build Mach-O binaries
* configure now checks for Altivec support on Darwin hosts,
instead of assuming it. Altivec support can also be disabled (not 100% sure if t
his is actually needed, but might be handy for crosscompiling).
* The aliasing of the symbols contained in the .asm files
done on Windows were also needed on MacOS.
Note that while the asm code is properly compiled and linked
in, HQ2/3x support will still not work properly on Intel macs
if NASM is enabled.
svn-id: r21280
bug is a bug in our fmopl.cpp. Ken Silverman's Adlib emulator doesn't seem to
exhibit the bug either. (But is apparently less feature complete than MAME's.)
svn-id: r21275
beginning of music" bugs. As an experiment, I tried hooking up ScummVM with the
most recent version of the FMOPL code, and the bug went away.
Unfortunately, I believe we are stuck with the ancient version for license (and
performance?) reasons.
svn-id: r21267
but it seems that it drifts out of sync after a few repeats even with the
original interpreter. It's a feature!
This cleanup clears up some of the more confusing break/continues in the
callbackProcess() function, and gets rid of _continueFlag.
svn-id: r21259
really mean "channel". Fixed that:
OutputState -> Channel
_curTable -> _curChannel
_outputTables[] -> _channels[]
The biggest change was modifying all the "state" and "table" local variables
and function parameters.
Ahd, at no extra charge:
_outputTable[] -> _regOffset[]
svn-id: r21247
generate "leap samples". I doubt this will make any noticeable difference, but
at least now we can probably rule out timer inaccuracies from the list of
possible suspects for the remaining bugs.
Also removed unnecessary mutex locking/unlocking from readBuffer(), spotted by
LordHoto.
svn-id: r21239
timer inaccuracies can cause that kind of problems, or we'd have noticed it in
the other game engines as well", guess what? The other game engines do not
necessary use a timer for their Adlib music. So now Kyra doesn't either.
Fortunately for my dignity, the music is still a bit uneven at times, but the
situation does seem to have improved a bit, and the sound effects sound better
to me now.
svn-id: r21237
update1() -> setupDuration()
updateAndOutput1() -> setupNote()
setInstrument() -> setupInstrument() (just for the symmetry)
updateAndOutput3() -> noteOn()
That made the following two renamings seem natural:
updateCallback10() -> update_playRest()
updateCallback27() -> update_playNote()
I decided to number the secondary effects, even though there's only one:
update_setupSecondaryEffect() -> update_setupSecondaryEffect1()
update_removeSecondaryEffect() -> update_removeSecondaryEffect1()
And finally, I renamed the effects callbacks:
stateCallback1_1() -> primaryEffect1()
stateCallback1_2() -> primaryEffect2()
stateCallback2_1() -> secondaryEffect1()
svn-id: r21232