In the CVS repository, added a subset of libc and SUSv2. Categories of libc functions implemented include stdio, stdlib, assert, errno, ctype, dirent, fcntl, unistd. Also included libsexpr, as a potential base for a menuing system (instead of using a full Scheme).
Another alpha release, 00001. Implemented charged weaponry (charge time affecting projectile).
Implemented decoys and limits to projectile instances.
Worked out the kink in QVM'd Ogg Vorbis. The problem was a bad ldexp() [re]implementation. Decoded sound is much better now.
Banged up TinySCHEME mighty good, and it works sufficiently well as a Scheme core. Speed (lack of) is still a problem (as is anything running in Q3VM...). In any case, now I can spend time on getting game objects to futz about, instead of hacking on a Scheme interpreter.
All the Scheme files are moved into a qs/ directory, to group them together somewhere. This also becomes a convenience during testing, since only one symlink to the qs/ directory in ~/.q3/fi is needed, instead of symlinking each Scheme file one by one.
Stumbled across TinySCHEME, a small but still capable implementation of R5RS-specified Scheme. Minor modifications were needed to get this to compile cleanly to QVM bytecode. This looks like a promising underpinning for an extensible language implementation.
For various reasons, I worked on MD3 import/export using Blender Creator. It's done in two python modules, one is a general parsing module, the other is Blender-specific. Once exporting works, Blender can be used for creating Q3 models. MD3 import.
Might as well start populating this section. I took in much of the source tree of Ogg Vorbis reference library version 1.0rc3 into my mod. After much whacking with printfs and adding/debugging supporting code, my mod finally deogged the test sample file into a little-endian 16-bit PCM sound file that sounds sort of right.
Original sound file: test1.wav (540 KB)
Test ogg file: test1.ogg (44 KB)
Resulting output (after conversion by sox): test1wav.wav (536 KB)