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
callbackOutput() and updateCallback3() functions won't change the channel data
pointer unless the new sound has a higher unk2 and the current one.
Since it's set to 0 when the data pointer is nulled, I've changed the priority
to be unsigned.
The updateCallback22() function is now update_setPriority().
svn-id: r21206
level", which I believe is the individual channel volume. (The functions also
return the "scaling level" bits, but they are preserved, not calculated.) I
have renamed these functions calculateOpLevel1() and 2().
The unk25 and unk26 variables have been renamed opLevel1 and opLevel2. These
are called oplvl_1 and oplvl_2 in our MidiDriver_ADLIB class.
The unk26, unk27 and unk28 variables are potentially added to both operator
levels, and have been renamed opExtraLevel1, opExtralevel2 and opExtraLevel3.
The updateCallback25() function has been remamed update_setExtraLevel1().
The updateCallback33() function has been renamed update_setExtraLevel2().
The updateCallback32() function has been renamed update_setExtraLevel3().
Note that these callbacks aren't quite as similar as their names would seem to
indicate: They differ in whether or not the volume is updated and/or how the
parameters are passed.
svn-id: r21199
stuff, it pretty much has to be our "set instrument" function. Also, while I'm
not entirely sure of the implications, "unk23" is the Algorithm bit for the
Feedback / Algorithm register, so I've renamed it "algorithm".
svn-id: r21197