aboutsummaryrefslogtreecommitdiff
path: root/engines/kyra/sound_adlib.cpp
AgeCommit message (Collapse)Author
2006-03-10Since updateAndOutput2() is the only function that sets up wave forms andTorbjörn Andersson
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
2006-03-10Some more/updated comments.Torbjörn Andersson
svn-id: r21196
2006-03-09- Removes deleted waitTicks prototype in KyraEngineJohannes Schickel
- Adds sound fading support to the adlib player - Adds support for stopping running tracks - Changes baseFreq type back to uint8 - corrects octave handling in updateAndOutput1 (Thanks to eriktorbjorn for doing that) svn-id: r21185
2006-03-09As LordHoto pointed out to me, updateCallback41() was slightly different afterTorbjörn Andersson
all: it adjusts the frequency even when state.unk16 is zero. Fixed that, and added some comments to hopefully explain the differences between the cleaned up code and the original disassembly. svn-id: r21184
2006-03-09More cleanups and renamings:Torbjörn Andersson
* Rewrote updateCallback41() in terms of updateAndOutput1(), since they were almost identical to begin with. * Rewrote updateAndOutput1() for better readability. * Made unk10 signed, and renamed it baseOctave. * Made unk14 signed, and renamed it baseNote. * Made unk15 signed, and renamed it baseFreq. * Renamed unk17 regAx. It appears to be a cache for that register. * Renamed unkOutputValue1 regBx. It appears to be a cache for that register. * Renamed updateCallback8() update_setBaseOctave(). * Renamed updateCallback13() update_setBaseNote(). * Renamed updateCallback20() update_setBaseFreq(). Which still leaves the mystery of unk16 and _unkTables[]. Perhaps *this* is the pitch bend? svn-id: r21183
2006-03-09Set down in comments what I know about _outputTable[], and what I suspect aboutTorbjörn Andersson
_unkTable[]. Investigating the latter further might help unravelling several of the "unk" variables. (Right now, I'm suspecting that unk15 is the pitch bend.) svn-id: r21164
2006-03-09Corrected a few comments where I had mistaken the note on/off bit for one ofTorbjörn Andersson
the octave bits. The unkOuput1() function always turns off the note, so I've renamed it noteOff(). I've added some comments to unkOuput2() as well, but I'm still not quite sure what its purpose is. It seems unlikely that it's simply a "note on" function, given the many things it will clear for the channel. It does end by turning the note on, though. Strange. svn-id: r21162
2006-03-08Fixed tons of format string warnings for debug/error calls (including ↵Max Horn
several errors where the format string didn't match the number of arguments to the call) svn-id: r21141
2006-03-08The adlib code was calling the Kyra delay() function instead of the Oystein Eftevaag
system delay, which was causing concurrency problems. svn-id: r21136
2006-03-06Renamed setTempo to update_setTempo, also fixed tempo handling (intro is too ↵Johannes Schickel
fast now though, but seems to be another problem). Also changed some unsigned values to signed. svn-id: r21111
2006-03-06More renamings: _unkTableByte1 is now _tempo, and updateCallback29() isTorbjörn Andersson
setTempo(). svn-id: r21110
2006-03-06CleanupTorbjörn Andersson
svn-id: r21109
2006-03-05Corrects implementation of updateCallback48.Johannes Schickel
svn-id: r21105
2006-03-05Note to self: compile before commit.Torbjörn Andersson
svn-id: r21103
2006-03-05The updateUnk6Value() appears to be some sort of random number generator, so ITorbjörn Andersson
have renamed it getRandomNr(). The _unk6 variable has been renamed _rnd. (Our MidiDriver_ADLIB class also has its own random number generator, so it's not such a far-fetched guess as it may seem.) svn-id: r21102
2006-03-05Renamed output1() to adjustVolume(). I'm still uncertain exactly *how* theTorbjörn Andersson
volume is modified (it depends on several still unknown variables), but that's all it does as far as I can tell. svn-id: r21101
2006-03-04Cleanup: output0x388(0xABCD) is now writeOPL(0xAB, 0xCD), which is slightlyTorbjörn Andersson
more easy to read. svn-id: r21081
2006-03-02Changed timeing related variables to unsigned.Johannes Schickel
Also changed the callback interval. svn-id: r21012
2006-03-01Oops forgot to enable music again.Johannes Schickel
svn-id: r20993
2006-03-01Added debug calls to the adlib functions, also uses mixer samplerate now.Johannes Schickel
Fixed a bug in updateCallback41. svn-id: r20992
2006-03-01Fixed updateCallback11() according to LordHoto's directions, and renamed itTorbjörn Andersson
update_writeAdlib(). (The "update_" prefix will probably be changed later, but for now I want it to remain obvious that the functions belong to the other updateCallback*() functions.) svn-id: r20990
2006-03-01Renamed 'unk9' to a slightly more descriptive 'repeatCounter'. (I should haveTorbjörn Andersson
done that in the previous commit.) svn-id: r20987
2006-03-01Use signed integers for jump offsets, so that the jump opcodes can jump bothTorbjörn Andersson
forward and backward. This seems to fix the looping of the Black forest music (and probably others as well), and might fix the invalid pointer crashes and wrong music that would sometimes play after a song had finished. Changed the names of the jump opcode functions, and added "update_" prefixes to the previously cleaned-up opcode functions. svn-id: r20986
2006-03-01Cleaned up updateCallback36() and renamed it setVibratoDepth().Torbjörn Andersson
svn-id: r20985
2006-03-01Cleaned up updateCallback35() and renamed it setAMDepth(). It looks like theTorbjörn Andersson
_unkOutputByte2 variable is there to keep track of the current value of the BD register (AM Depth / Vibrato Depth / Rhythm) svn-id: r20984
2006-03-01Minor cleanup and comments.Torbjörn Andersson
svn-id: r20983
2006-02-28Added lock() and unlock() again to readBuffer.Johannes Schickel
Implemented stateCallback1_1. Fix some small bugs here and there (can't say what the fixed but it should be correct now) Also set's the correct timer call value (with the other the music was too fast) svn-id: r20973
2006-02-28Added some basic comments, along with some very, very minor cleanup.Torbjörn Andersson
svn-id: r20972
2006-02-28Removed unnecessary line.Torbjörn Andersson
svn-id: r20971
2006-02-28This may be needless paranoia, but I always get nervous about order ofTorbjörn Andersson
evaluation when there are multiple side-effects on the same variable (in this case the internal state modified by va_arg()) in the same expression. So let's just humor me and do the va_arg() calls one at a time. svn-id: r20970
2006-02-27Fixes hangs in the "Pool of Sorrow" scene (at least I don't get them anymore).Johannes Schickel
svn-id: r20964
2006-02-27Added WIP Adlib sound playing code to kyra.Johannes Schickel
It needs some checks since it doesn't work correctly in every case at the moment. svn-id: r20960