
ok yes... the demo underwent huge changes after the party, enough to warrant
a sequel to the README.

the party version may or may not be released to the public :) this ones
more fun.. and just better.

ok things that have changed:

- switched from using IPC (signals and fork) to multithreading.
- switched all gfx data from targa format to my own proprietary format
- switched from svgalib to libSDL.  this still works fairly well on X machines
- bumpmapping has been heavily redone.  it looks much better now :)
- redid roto-zoomer code to use a 64x64 image instead of the party version's
  256x256 image, 64x64 performs better (cache), also added use of cos/sin LUT
- psychadelic scene (spiral spinning around with direction synched to bass drum
  and strobe with bass drum) was changed to generate more psychadelic palettes
  on the fly instead of the plain gradients it generated before..
- sprite fading(merging) code cleaned up, sped up, almost entirely rewritten.
- palette fading code claned up also, sped up a little.
- sprite loading/drawing code changed around a bit (mostly to support the new
  file format well) also sped up a small bit.  there isnt much sprite drawing
  in speed crucial areas of the demo so i didnt worry about it too much.
- implemented a much newer version of libmikmod, this, was for the most part,
  a very bad idea and did more damage than good.  libmikmod does a decent
  amount of buffering during the mixing process, which makes realtime synching
  with the music, a fairly tricky task.  Well, the older mikmod didnt do too
  much buffering, and was fairly consistent with loop.it, so we just adjusted
  the synch triggers in the patterns to compensate for the delay due to the
  buffering, this worked well for the party version and you couldnt really
  notice that some of the synch's were slightly off, unless you really paid
  attention.  Well, the newer libmikmod handles things a bit differently,
  and has made the buffering quite inconsistent and the synching a bit fubar,
  we had to move the synch triggers down i think it was 6 rows to compensate
  for the increase in buffering, and just eat the fact that the synching is
  pretty damn inconsistent.  I was considering implementing some sort of timing
  system in mikmod where it could predict how many ticks away a synch would be
  actually played back on the sound hardware, but I got lazy.  oh well. deal.
  there are benefits to the newer libmikmod though, it plays loop.it much
  better.  And most .it's in general.
- Makefile reformatted / rewritten.  This one just works better. trust me.
- Fixed quite a few memory leaks and just bugs here and there.
- Cleaned up alot of the scene code.  particularly the palette fading stuff.
- added plug at end of demo, and one here too ! www.csrmusic.org. phear. :P
- added fun little text thingy to show the demo is still alive while waiting
  for mikmod to start playing the ereet muzak (this is only apparent in an
  xterm or something, fullscreen visual wont show the text) 
- rewrote code in the credits scene, now loads images/palettes in a more
  dynamic/evenly distributed fasion across the scene's run time length.
  (while an image is displayed (fade in -> sleep) we free the current one
  and load the next palette/image.  this lessens the memory footprint and
  removes any chance of a significant pause in the beginning of the scene.
- modified quite a bit to keep support for SVGAlib in the demo, while having
  libSDL still supported.



The move to SDL was done more recently during one of my few attempts to obtain
a job (blink, its not that shocking, really) one of my tasks for my 'interview'
for a cool linux game developer was to develop a skeletal GGI driver for libSDL.
Well, of course, during this process, I ended up playing more with little demo's
that used libSDL and, well, you guessed it, spent many hours converting loop 
over to libSDL while fixing/changing alot of things in loop also :)


- Swivel | CSR
  swivel@csrmusic.org
