Credits and Thanks
------------------

The following should be a more or less complete list of people
or organisations who have helped me in one way or another. If
you feel you should be mentioned here, please contact me. It is very
easy for me to forget someone and I really like to have a complete
list here.

Thanks to the people at GrimmWare for contributing a WEB place for
Crystal Space! Without them this project would not have gotten
such a start.

Thanks to Alessandro Russo for convincing his system manager
for creating a mailing list for Crystal Space. Thanks to Marco d'Itri
(the system manager) for creating this list for me.
Also thanks to those people for creating a ftp mirror of the
GrimmWare site at:
ftp://ftp.linux.it/pub/mirrors/CrystalSpace/

Crystal Space has it's first contributor! Many thanks to Murat
Demircioglu <demircio@boun.edu.tr> for providing the first steps
to porting Crystal Space to DOS. His code is still present in
this archive (although a bit modified).

David N. Arnold <derek_arnold@fuse.net> has enhanced the DOS
port made by Murat. He added C++ classes and VESA support.
David also wrote the Pentium assembler version of scan.cpp.

Nathaniel Saint Martin <nsaintmartin@mfoptima.fr> enhanced Arnold's
DOS port again so that it works with the Watcom C++ compiler.
He also suggested and implemented a considerable restructering
of the system-dependent stuff. Every system now has its own
directory (currently 'djgpp' for djgpp (with or without ALLEGRO),
'wcc' for Watcom C++, 'xlib' for X Window support, 'svgalib'
for SVGALIB, 'amiga' for Amiga support, 'maclib' for
Macintosh support, and 'win32' for Windows 32-bit support
(current implementation requires DirectDraw)).

Nathaniel Saint Martin <nsaintmartin@mfoptima.fr> made a very nice
console for input and output that should work on all ports.

Nathaniel Saint Martin <nsaintmartin@mfoptima.fr> was the first
to actually present me with an almost working Windows 95 version WITH
source!

Nathaniel Saint Martin <nsaintmartin@mfoptima.fr> donated the
first sound support code. His code is currently not integrated with
Crystal Space. You can find it in the 'contributions' directory.
Recently Nathaniel started working on real sound support integrated
with CS.

Nathaniel Saint Martin <nsaintmartin@mfoptima.fr> created the
'config' utility which allows for easier editing of the 'cryst.cfg'
file. Currently only for Windows and DOS.

Nathaniel Saint Martin <nsaintmartin@mfoptima.fr> created a mirror
of all the developers archives and files at:
ftp://ftp.mfoptima.fr/mirrors/CrystalSpace

Nathaniel Saint Martin <nsaintmartin@mfoptima.fr> ported csar to
Windows giving it a nice userinterface.

Nathaniel Saint Martin <nsaintmartin@mfoptima.fr> helped fixing the
Direct3D and OpenGL version.

Nathaniel Saint Martin <nsaintmartin@mfoptima.fr> contributed the
Quake mdl/md2 to sprite convertor.

Nathaniel Saint Martin <nsaintmartin@mfoptima.fr> was co-author of
the Glide port.

Jyrki O Saarinen <jxsaarin@cc.helsinki.fi> made the original
Amiga port of Crystal Space. This old port can still be found at:
http://www.helsinki.fi/~jxsaarin/crystalspace/
but it is obsoleted by the new Amiga port in the current release.

Steve Israelson <pfhorte@rogers.wave.ca> made the Macintosh
port of Crystal Space.

Steve Israelson <pfhorte@rogers.wave.ca> suggested a few
enhancements to the inner draw_scanline functions to benifit
processors with many registers (like the PowerPC and 680x0 and
unlike the Pentium). He also removed the need for the loop
counter ('i') in the inner loop.

Steve Israelson made the first preliminary physics system.

Steve Israelson added an easy, uniform kind of dynamic lighting
useful for fluorescent lights and other flickering light
sources.

Steve Israelson made a few parser routines which should make
the parsing of the world file easier to understand :-)
I used his routines to convert all 'load' functions.

Bill Bohan <zorn@technologist.com> contributed the first free
textures for Crystal Space (more will probably follow). They are
absolutely free (he placed them in the public domain) so you may
take the from Crystal Space and use them for something else (for
example, you can decorate your room with them :-). The textures
are Wood1.gif, Wood2.gif, Wood3.gif, Wood4.gif, Wood5.gif,
and Wood6.gif. As you can imagine they are wooden surfaces :-)

Ang See Chai <lynx@tm.net.my> contributed the textures in
ang_text.tgz (in the textures archive). They are not directly
useable (they are not tileable and don't have the correct size)
but they are interesting textures anyway and I think some nice things
can be made from them.

Jaison Lee <jaison@apk.net> gave me a new version of police.fnt
which doesn't give an error on the Borland compiler.

Phil Harvey <filrv@syroxdev.co.uk> suggested a statistics counter
so that you can see the number of polygons considered and drawn
each frame.

Phil Harvey <filrv@syroxdev.co.uk> helped with Nathaniel to get
the Windows 32-bit port working.

Phil Harvey <filrv@syroxdev.co.uk> patched find_rgb_slow to make
it slightly faster.

Tor Andersson <d97ta@efd.lth.se> gave me the texture TStone22.gif
which is a nice tileable texture created with PovRay.

Tor Andersson <d97ta@efd.lth.se> donated code for reading several
file formats and a virtual machine. This code has not been integrated
with Crystal Space yet but you can find his code in the
'contributions' directory.

Tor Andersson <d97ta@efd.lth.se> gave me a 'dj_joy.c' file (in
the 'contributions' directory) which is an example on how to use
the joystick from within DOS with DJGPP.

Tor Andersson <d97ta@efd.lth.se> added JPG support to Crystal Space.

Tor Andersson <d97ta@efd.lth.se> added support for the mouse in DJGPP.

Alessandro Russo <alessandro.russo@ntt.it> gave me a patch for the
X version of Crystal Space which allows simultanious keypresses
and disables autorepeat. This makes movement much more smoother.
The patch still needs to be applied to the other ports as well but
they should currently work unchanged (but not with the simultanious
keypresses of course).

Alessandro Russo presented me with a patch to fix the autorepeat
problem (in X Windows).

Gary Clark <GaryC@jeld-wen.com> designed the basic framework of the
Graphics3D class and I helped him start implement this (it is still
unfinished currently).

Gary Clark also made an extension so that Crystal Space can now use
accurate RGB light sourcing. Since this slows down the texture cache
a bit I have made it optional (using 'cryst.cfg').

Added patch from Gary Clark to fix the problem with the X version
of CS that CS would not immediatelly start drawing but only after
an expose event was generated.

Gary Clark gave me a 'lin_joy.cpp' file (in the 'contributions'
directory) which is an example on how to use the joystick from within
Linux.

Karlis Freivalds <karlisf@cclu.lv> found and fixed a few stupid
bugs in wcc/watcom.cpp. I wonder how this version could work before
he fixed it :-)

Darius Snapkauskas <snapkus@iname.com> was busy with 3D sprites.
He contributed some unfinished stubs for his work. Unfortunately
he seemed to have stopped supporting it. His code has now been moved to
the attic directory. The current 3D sprites in Crystal Space are
developed by me (Jorrit Tyberghein).

Dan Ogles <dogles@peachtree.com> gave me a patch for 'printf' so that
'printf' also works with the Windows port.

Dan Ogles <dogles@peachtree.com> made the Direct3D port for Windows!

Dan Ogles <dogles@peachtree.com> greatly enhanced the Windows port and
also added 16-bit support for Windows..

Dan Ogles <dogles@peachtree.com> converted the 3D and 2D graphics subsystems
to COM. He thus provided the foundations for the COM system (also on non-Windows
platforms) which Crystal Space is going to use in future.

Dan Ogles <dogles@peachtree.com> contributed the Halo code to Crystal Space.

Robert Blum <r.blum@advertainment.com> patched Dan Ogles 'printf' patch
so that there is no more buffer overrun and also found a bug in
'gifload.cpp'. He also ran a memory debugger on Crystal Space and
found/fixed many bugs related to that.

Anis Ahmad <anis@cyberus.ca> updated the makefiles for Watcom C++ for
both Crystal Space and csar.

Anis Ahmad <anis@cyberus.ca> made the Crystal Space editor for Windows
95.

Andrew Zabolotny <bit@eltech.ru> ported Crystal Space to OS/2.

Andrew Zabolotny <bit@eltech.ru> changed Crystal Space to read/write
ZIP files instead of the CSAR archive format.

Andrew Zabolotny <bit@eltech.ru> enhanced Crystal Space to read PNG
files.

Andrew Zabolotny <bit@eltech.ru> did a MAJOR MAJOR rewrite of the
system dependent stuff and made a lot of support classes for that.

Andrew Zabolotny <bit@eltech.ru> wrote the 2D sprites.

Andrew Zabolotny <bit@eltech.ru> wrote CSWS, the Crystal Space
Windowing System.

Andrew Zabolotny <bit@eltech.ru> is busy writing MazeD, a Crystal
Space level editor.

Andrew Zabolotny <bit@eltech.ru> for his work on DrawPolygon and
DrawTriangle.

Andrew Zabolotny <bit@eltech.ru> for rewriting the DJGPP port
(non-Allegro) to use 16-bit and also support more video modes.

John Lilley <jlilley@empathy.com> manages the Crystal Space Texture
Archive at http://www.empathy.com.

Jon Heiner <jonh@MIT.EDU> sent me a few patches and a makefile for
the SGI/IRIX port.

Andrew Apted <ajapted@netspace.net.au> ported Crystal Space to the
GGI library (more information at: http://www.ggi-project.org/).

Paul Garceau <pgarceau@teleport.com> gave me a makefile for Windows NT
with GCC.

Ralf Eisele <eiselera@pcpool1.informatik.uni-ulm.de> updated the Amiga
port to 0.09.

Maurice Vosmeijer <Maurice.Vosmeijer@ehv.sc.philips.com> is also helping
maintaining the Amiga version.

Ivan Avramovic <iavramov@ibm.net> for cleaning up all the matrix/vector
stuff and rewriting the Camera class.

Ivan Avramovic <iavramov@ibm.net> for cleaning up the perspective projection
and clipping and also considerably improving it.

Ivan Avramovic <iavramov@ibm.net> for helping me fix a lot of bugs with
portals and clipping.

Slavik Levtchenko <Smirnov@bbs.math.spbu.ru> for creating the last
Watcom port with 16-bit display support.

Markus F.X.J. Oberhumer <k3040e4@wildsau.idv-edu.uni-linz.ac.at> for
a small patch on the X port.

Trochu Xavier <xtrochu@yahoo.com> for writing the HOWTO describing how to
compile CS with Visual C++ for Windows 95 and also for a few small patches
to the Windows 95 version. He also contributed up-to-date project files
for Visual C++.

Trochu Xavier <xtrochu@yahoo.com> made the Glide port for Crystal Space
(together with Nathaniel)!

Thomas Ogbuji, Chimezie <thomasog@uiuc.edu> for writing the
CS world file to VRML convertor.

Thomas Ogbuji, Chimezie <thomasog@uiuc.edu> for writing the
JAVA Crystal Space world file editor (not really a level editor, but
for editing world files).

Thanks to Helge Foerster <Helge.Foerster@t-online.de> whose algorithm
for texel filtering is now in Crystal Space.

Thanks to Charles Vidal <vidalc@club-internet.fr> for his tcl/tk script
for launching Crystal Space.

Olivier Langlois <olanglois@sympatico.ca> made a few fixes on the event
model in CS and ported CS to Borland C++. He also found and fixed some
memory leaks.

Olivier Langlois <olanglois@sympatico.ca> contributed the MemoryHeap class
for the texture cache.

Olivier Langlois <olanglois@sympatico.ca> ported some GCC assembly routines
to Visual C++ and added a few Visual C++ specific assembly functions.

Olivier Langlois <olanglois@sympatico.ca> wrote the BMP loader class.

Olivier Langlois <olanglois@sympatico.ca> optimized and helped optimize
several key-functions in the engine pipeline. For example, he managed
to DOUBLE the speed of the assembler scanline drawers!!!

Alex Pfaffe <AlexPfaffe@csi.com> integrated Crystal Space with the VCOLLIDE
library for collision detection. Later he removed VCOLLIDE and used RAPID
instead. He then rewrited RAPID to work better with Crystal Space.

Antonio Gascon <434961@cepsz.unizar.es> presented me a few notes
which allowed me to optimize a few matrix inversions away.

Doug Rabson <dfr@nlsystems.com> helped fixed a possible memory leak in the
X port with SHM extension.

Jeff Lundin <jlundin@fz.ml.org> for helping with the DJGPP port.

Philipp Spoth <Spoeth@t-online.de> for helping with optimizing the texture
cache.

Philipp Spoth <Spoeth@t-online.de> contributed a few optimizations of internal
routines.

Xavier Hosxe <xhosxe@cyrano.com> contributed a few patches which
allowed Crystal Space to compile with the EGCS compiler. For one reason or
another this compiler doesn't support a C++ construction which other compilers
do support.

Rodolphe Ortalo <ortalo@laas.fr> patched the Glide port so that it works
on Linux.

Rodolphe Ortalo <ortalo@laas.fr> also gave me Purify output which helped a lot
for debugging Crystal Space.

Greg Ewing <greg@cosc.canterbury.ac.nz> contributed a patch which greatly
speeds up the computing of the initial palette table.

Vyacheslav L. Chupyatov <sla@istu.udm.ru> suggested some fixes so that CS
compiles with Watcom C++ v11. He also contributed a few makefiles for Watcom
C++ and fixed a few small bugs.

Dmitry Derevyanko <dmitryd@robotics.eecs.berkeley.edu> helped me by running
Purify and solving a lot of bugs that way.

Xavier Pianet <xavier@planet.dk> ported CS to BeOS!

Jesko Schwarzer <jesko@bigfoot.de> suggested a way to improve speed of
the volumetric fog.

Ayal Pinkus <apinkus@xs4all.nl> gave me a nice missile to use instead
of my ugly missile :-)

Ayal Pinkus <apinkus@xs4all.nl> helped me create the base classes for the
curve system. He then implemented the first Bezier curves with 3x3 control
points.

Seth Galbraith <sgalbrai@linknet.kitsap.lib.wa.us> also gave me a nice missile.

Seth Galbraith <sgalbrai@linknet.kitsap.lib.wa.us> fixed the texture bug
in mdl2spr.

Gert Steenssens <gsteenss@eps.agfa.be> wrote the Linux drivers for the sound
system and he also converted the SVGALIB driver to COM. He also helped
develop the Linux/Glide and OpenGL ports.

Gary Haussmann <haussman@cthulhu.engr.sgi.com> wrote the OpenGL port.

Andrew Kenneth Milton <akm@zeus.theinternet.com.au> gave me a makefile for
FreeBSD.

Conor Stokes <cstokes@wantree.com.au> further optimized the 16-bit scanline
drawers which were already optimized by Olivier Langlois.

Mattias Engdegrd <f91-men@nada.kth.se> gave me a patch with a cleaner
handling of the X11 visual and window creation.

Serguei Narojnyi (Snaar) <snaar@idirect.ca> added the first integrated
networking code to CS. His code uses the COM subsystem so it can easily
be extended for system-dependent parts.

Rob Bate <rbate@ma.ultranet.com> updated the Macintosh port to COM.

Norman Kramer <normank@lycosmail.com> sent me a few fixes. In particular
he has fixed some stuff in the sound code.

Nicholas <nicholasfrancis@iname.com> helped developing MazeD.

Eric Sunshine <sunshine@sunshineco.com> ported Crystal Space
to NextStep 3.3, OpenStep 4.2, and Rhapsody (MacOS/X Server) DR2!

Wolfgang Lehrach <wolfg_l@pro-net.co.uk> wrote a Doom to CS convertor
in Java. It is included in the contrib directory.

McClusky, Jesse <Jesse.McClusky@PSS.Boeing.com> made the latest Amiga
port including the COM stuff.

Many thanks to various other people whose suggestions and ideas helped
shape Crystal Space.

