Kasparov final (v2.1)
=====================

Unfortunatly, extreme deadline pressure prevented us from releasing the 
Kasparov demo in the quality Elitegroup releases should be known for.

On some cards, the demo will display a warning screen informing you 
that your 3d card sucks and that the demo will look ugly because of 
that. Please do not take part in any discussion about the quality of
the demo until you have seen the "real" version.



Why did it took so long to fix Kasparov?
========================================

Hundreds of code-slaves, including my personal lamer, tested and 
improved Kasparov at the Elitegroup Testing & Compatibility Labs on 
every 3d card ever created for the IBM-PC compatible platform, and 
great care was taken to hunt down even the slightest problem. But since
the code slaves are not as good as I am, and I was too busy planing my
suicide after the failed attempt of gaining world domination at the 
party, it took a bit longer. And fixing the hidden parts wasn't easy, 
too.



Tested cards 
============

Card              Chipset     Driver           status
------------------------------------------------------
Matroix G400 DH   G400        5.20.013         ok
Asus V6600        GeForce 256 Detonator 3.68   ok
STB Velocity 4400 Riva TNT    Detonator 3.53   ok
Elsa Erazor III   Riva TNT2   Detonator 3.68   ok
Elsa Winner II    Savage 4                     ok
Oxygene GVX1      Glint R3    latest           ok
ATI XPert@Work    Rage Pro    w82560en         options: -c 128
Voodoo 3                      DX7 1.03.05      nofx
Voodoo 2                      3.03.00(beta)    nofx
Intel 3d Express  I740                         nofx+bugs options: -c 128
FireGL 1000 pro   permedia2   Release 1098     nofx+bugs
Asus AGP V 3000   Riva 128                     nofx+awful
and more...



Credits
=======

Main 2D/3D code:      powa
Main 2D/3D graphics:  the united states of america
Soundtrack:           herr weltschaft  
Additional fx code:   der commander
Additional gui code:  Dr. Detroit (now kicked)
Character-animation:  genius
Soundsystem:          the artist formerly known as doctor roole
Additional sys code:  gott



I have nothing to do with the demo scene, what the hell is all this?
====================================================================

We have been informed that our demo was uploaded at 3dfiles.com, and
some people who visit 3dfiles.com may be confused by this strange 
release and even stranger readme file:

There is a thing called demo-scene that exists for more then 15 years
now, where young people start using thier computers (C64, Amiga, PC, 
anything with a keyboard will do) for creating strange but cool
programs like this, just for fun and competition, instead of just
playing games. These people meet several times a year at a big 
so-called "parties" where some of them compete each other with 
thier latest production.

Kasparov was released at "The Party 99" in denmark and won the 
first place in the category "3d accelerated pc".

We are an elite demo group called "Elitegroup" (nothing to do with
a mainboard manufacturer that uses the same name). Elitegroup is
surely not representative for style and behavour in the scene, 
because we are different and because we are the best.

If you are interested in seeing more peaces of audiovisual 
noninteractive computer entertainment visit one of the following 
pages:

www.scene.org: a good starter
www.theparty.dk: where we released the demo
ms.demo.org: the biggest party without gamers we know. You must be 
             very brave if you start playing quake here...



The hell of DirectX programing
==============================

Kasparov was written using Microsofts DirectX API. Coding for this
API seriosly damages your mental health, endangers you sanity. I can 
only compensate the pain I suffered supervising the code-slaves and my
personal lamer by wining about some of the driver bugs I found in the 
past 8 weeks. Please forgive me for this. Some individuals who dare 
touching DirectX might even find this helpful, and it gives you an 
insight about the complexity of creating DirectX programs that work on 
more then one 3d-card. 

Many bugs are noted for TNT1 or G400 cards, but that does not mean 
that these are the only cards that expose the bug. It's just that my 
code-slaves and my personal lamer found a workaround before we tried
to reproduce the bug on other cards. TNT1/2 and G200/G400 cards are 
great cards for demo coding, unlike Voodoo cards which are only good 
for playing OpenGL based third person shooters. 

Please let my personal lamer know if you have a better workaround for 
one of the problem.



Releasing Texture Surfaces
--------------------------

Bug: Many drivers crash after leaving the program when you release a 
surface that has been used as texture. 

Workaround: Do not release textures by hand, they are released 
automatically when you release the 3d device.

Tip: If you plan to release textures when you switch from one scene
to another, you can not use the d3dx library. Using d3dx, you can 
not release the 3d device without switching the resolution.


SetRenderTarget()
-----------------

Bug: Setting a surface as render target that is already a render 
target crashes the g400.

Workaround: Cache SetRenderTarget() calls.

Tip: It seems to be save to assign one zbuffer to multiple surfaces. 
The sample codes make a lot of fuzz about removing and assigning 
zbuffers, but I ignore that.


SetRenderTarget() (again)
-------------------------

Bug: on G400, SetRenderTarget gets slower with each call.

Workaround: ignore it, the demo get slower when looping for hours.


Clearing rendertargets that are textures
----------------------------------------

Bug: TNT1 drivers will not clear the right area on both zbuffer and
texture when you want to clear only a part of the buffers. Must have 
something to do with twiddled textures.

Workaround: Clear the complete texture. This is much slower, of 
course.


Lines with fancy vertexformats
------------------------------

Bug: Savage 4 drivers crash when trying to draw lines with a vertex
format that has two texture coordinate sets. (You might ask yourself
why someone would like to do that, but it makes sense...)

Workaround: Use D3DTLVERTEX instead. This is a bit slower in some
cases.


Trilinear mipmapping
--------------------

Bug: Sometimes, the Savage 4 drivers do a wrong setup for the 
renderstages when emulating trilinear mipmapping.

Workaround: Allways supplay an option so that the user can fallback
to normal mipmapping.


Disabling ZBuffer does not work
-------------------------------

Bug: Sometimes, the Savage 4 drivers ignore my request to disable
the ZBuffer. 

Workaround: When disabling the ZBuffer, also set ZFUNC to ALWAYS.



Last Word
=========


We thank all the enthusiastic fans for thier moral support and the
work they put in creating cool web-pages. It is really great to 
see that our work is so well appreciated in the scene. 

You may contact Der Commander of the elite demo group Elitegroup by 
writing to cmdr_e@gmx.net

Have fun enjoying the best demo ever made, and try to create better 
ones if you can!


powa of elitegroup
signing off for ever
