Quake BSP Texture Renamer v1.00
(c) 1998 by Matthias Buecher
a "GL_LoadTexture: cache mismatch" workaround for OpenGL Quake/QuakeWorld

plus Quake BSP Texture Lister

Date: 1998-11-01

Download locations:
http://www.bigfoot.com/~maddes/ (redirection) - "Quake Info Pool"
ftp://ftp.cdrom.com/pub/quake/utils/bsp_pak_tools/bsptxren100.zip


Index
-----

1. Disclaimer
2. Why it was created
3. Who should use it
4. How to use BSPTxRen
5. Note on BSPTxRen and QuakeWorld's map checksumming
6. Note for users of SdSGLfix and JMGLfix
7. Note for Unix users
8. Known bugs/shortcomings
9. Credits
10. Thanks


1. Disclaimer
-------------
The authors of this program, intended for Classic Quake(R), are not
responsible for any damage this program may cause to your system.
id software were not part of the production of this program, and are
also not responsible for it and its results.
The sources included with this program may not be redistributed,
or reduplicated without the authors permission.
The compiled binary may not be redistributed by any means other than
electronically. If you would like to make further modifications or
additions to this program, please ask for permission from the authors.


2. Why it was created:
----------------------
A bug in the cache handling for textures crashes OpenGL Quake/QuakeWorld
(GLQuake 0.98 and GLQWclient 2.30 as of 1998-10-21) when a texture is
loaded which has the same name but a different size than another texture
that was used before by a previous loaded map.

This problem occurs in the combination of id's E2M5/E4M4 and DM4 maps of
regular Quake, and Hipnotic/Ritual's HIP2M4 and HIP3M3 map from
Mission Pack #1 called "Scourge of Armagon".

BSPTxRen can rename the problematic textures in the mentioned maps,
so the error does not occur anymore.
It does not really fix the problem within the Quake executables.
It is more like a workaround, hence it is possible this error could occur
with other maps (custom made ones or from other commercial packages).

By the way, when the texture has the same size but a different image,
the level is displayed with the wrong/previous texture.
An example can be seen in "dif_tex_img.jpg", where "comp1_1" of E1M1 was
renamed to "city2_6". The modified E1M1 was loaded in GLQuake and then DM6.
Funny isn't it :)


3. Who should use it
--------------------
Everybody should use it!!! :)
We *recommend* it for everybody who provides or plays on QuakeWorld servers
where map checksumming is enabled.

So if you are a server admin, please help your GL clients to enjoy your
server without a crash by using BSPTxRen.
Don't forget to put a link to BSPTxRen on your homepage, so your clients
know where to find it. Thanks.


4. How to use BSPTxRen
----------------------
Unpack all files into your Quake folder (e.g. "C:\QUAKE" under Win32
or "/usr/local/games/Quake" under Unix).

Under Unix you have to make sure you have the privileges to read
and write all files in this directory and its sub-folders.
So you have to be the owner of these files or use the root user.

Now run BSPTxRen without any parameters and it will patch all known
texture problems of the maps you have currently installed.

BSPTxRen has some parameters which can be helpful:

  "-?"
    list all possible parameters with a short explanation and the credits

  "-t"
    enables testmode, no changes will be done to your files

  "-u"
    will undo all previous changes done by the config file

  "-d <config file>"
    specifies the start directory, where your Quake files are stored

  "-c <config file>"
    specifies which config file to use, default is "glfix.ini"

  "-y"
    assumes YES on all queries

Information how to create your own configuration files can be found in "glfix.ini"
Updates of "glfix.ini" will be available at the "Quake Info Pool" homepage


5. Note on BSPTxRen and QuakeWorld's map checksumming
-----------------------------------------------------
Renaming textures conflicts with QuakeWorld's map-checksumming in
v2.20 to 2.30 (as of 1998-10-20)
We hope that all servers will use this workaround, otherwise you can
use the implemented undo function.


6. Note for users of SdSGLfix and JMGLfix
-----------------------------------------
If you already used the previous workarounds provided by the
"Scourge Done Slick" or the "Clan Jaegermeister Promo" movie,
BSPTxRen can correct their work or undo them, so you can reconnect
to QuakeWorld servers again.

If you want to avoid the GL fix warning message of the SdS movie, just
create a file called "gl_fixed.cfg" within its directory and put the
following console command in it: "registered 2"


7. Note for Unix users
----------------------
Remember that file and directory names are case-sensitive under Unix,
so if BSPTxRen can not find the files check the pathes in GLFIX.INI

You have to make sure you have the privileges to read and write all
files in these pathes. So you have to be the owner of these files or
use the root user.


8. Known bugs/shortcomings
--------------------------
- no backups of the processed files are made by the programm, you should
  do it by yourself before using BSPTxRen

- no message when you specify the same path twice

- no message when you specify the same textures within a map twice

- New texture names can not exceed the length of the original name, as
  most names are not stored correctly in BSP files (in id's maps too!!!)
  The memory behind a name should be initialized with zeros, but normally
  there's a lot of garbage. If these garbage bytes are overwritten by a
  longer name, the undo function can never recreate them.
  This causes problems connecting to QuakeWorld servers with map checksumming
  enabled (see also chapter 4), because QuakeWorld also includes
  the garbage bytes into the CRC computing.
  So when they are removed the CRCs will never match anymore.
  We hope that most QBSP tools will be corrected soon, for future maps.

- The readme could be better ;)


9. Credits
----------
Matthias "Maddes" Buecher <maddes@bigfoot.com>
  Homepage: "Quake Info Pool" at http://www.bigfoot.com/~maddes/ (redirection)

  Author of BSPTXTREN and maintainer of Q.I.P., where you can find out about
  bugs and shortcomings in Classic Quake and QuakeWorld, plus the
  "Ultimate Regular Quake Patch" (URQP)


Additional credits:
Stefan Schwoon <ssch0098@rz.uni-hildesheim.de>
  Homepage: "Quake Done Quick Team" at http://www.planetquake.com/qdq/

  Wrote the initial version of this program, called SdSGLfix, for their superb
  Quake movie "Scourge Done Slick". He was not involved in the creation of BSPXTREN.
  Do not send him technical questions or reports.


Martin "Lunatic" Willers <M.Willers@tu-bs.de>
  Homepage: "Clan Jaegermeister" at http://come.to/clan-jm/

  Helped a lot to create one source for Unix and Win32.
  Do not send him technical questions or reports.


Paul "PaK" Koehler <koehler@globalserve.net>
  Homepage: "The Frag" at http://www.frag.com/, "3D Edge" http://www.3dedge.com/

  Helped a lot to create one source for Unix and Win32.
  Do not send him technical questions or reports.


10. Thanks
----------
... id Software for making such a great game
... all supporters of the buglist on "Quake Info Pool"
