1 | ..... | Compiling, installing, running XRacer
1.1 | ..... | Can I get my Voodoo Banshee card running with XRacer?
1.2 | ..... | I've got a Voodoo XYZ 3D accelerator, but when I run XRacer, it runs in a window at about 0.01 frames per second. (or) I've got a Voodoo Graphics or Voodoo2 3D accelerator, and the -f switch gives a badly offset screen view.
1.3 | ..... | XRacer can't find my GL/GLU/glut libraries when compiling. (or) XRacer runs, but it doesn't seem to be using acceleration
1.4 | ..... | On Linux, with my Voodoo XYZ, XRacer dumps core before even opening a window!
1.5 | ..... | `configure' works, but the compile fails with the error "sh: no: command not found".
2 | ..... | Platforms
2.1 | ..... | Is there a Windows port of XRacer?
2.2 | ..... | Is there a (insert Unix flavour here) port?
2.3 | ..... | I can't run XRacer on my 386. Are you planning support for low-end PCs? (or) Can I run XRacer without a 3D accelerator card?
3 | ..... | Contributions
3.1 | ..... | How to make code contributions
3.2 | ..... | What formats can I send music/samples/textures in?
3.3 | ..... | I'm a music composer. Can I send you music/samples?
3.4 | ..... | I'm a Blender guru. How do I design tracks?
4 | ..... | Miscellaneous questions
4.1 | ..... | Wouldn't it be cool if XRacer did (insert cool feature) !
4.2 | ..... | I'm too lazy to download these beta versions. When is release 1.0 coming out?
4.3 | ..... | What are your future plans for XRacer?
4.4 | ..... | Where do you live, and what's your day job?

## 1 Compiling, installing, running XRacer

### 1.1 Can I get my Voodoo Banshee card running with XRacer?

The Voodoo Banshee is the combined 2D/3D version of the Voodoo 2 (rather like the relationship between the Voodoo Rush and the original Voodoo 1).

Jason Gill sent me this message:

    Richard -
    I am glad to inform you that, after much tweaking and testing, I have been
    able to get my Voodoo Banshee card running with XRacer. Here's what I did
    (feel free to add this to the FAQ, if you feel needed. This information
    *should* apply to the Voodoo3, because AFAIK, the Voodoo3 and Banshee are
    essentially the same (the use the same drivers, at least.))

    1) Get the newest versions of Glide and the associated tools for the
    Voodoo3/Voodoo Banshee from
    http://glide.xxedgexx.com/3DfxRPMS_vb_glibc.html
    Install them as instructed on that page. Make sure that test3dfx works!

    2) Get the Mesa 3.0 source (NOT BINARIES/RPMS!). Compile using 'make
    linux-glide` (try other options if you feel you need them, but linux-glide
    should work no matter what.) Install as appropriate for your system.

    3) Set MESA_GLX_FX=f in your shell (better yet, add it to your shell's
    profile or start-up script).

    4) Download, compile, and install XRacer however you like. Edit
    "globals.c" and set the resolution you want (works for me in any
    resolution that my Xserver is set up for.)

    5) XRacer should work! If not, make sure that you can run test3dfx, a few
    Mesa Demo's or other Mesa-based Fullscreen programs. If all else fails,
    make a patch and submit it :)

### 1.2 I've got a Voodoo XYZ 3D accelerator, but when I run XRacer, it runs in a window at about 0.01 frames per second. (or) I've got a Voodoo Graphics or Voodoo2 3D accelerator, and the -f switch gives a badly offset screen view.

Try setting the `MESA_GLX_FX` environment variable before running it, like this:

    export MESA_GLX_FX=f

or

    setenv MESA_GLX_FX f

if you have a csh-derived shell.

Do not use the -f switch with Voodoo Graphics and Voodoo2 cards, it's broken with these.

If that fails to make any difference, then it's probably a problem with libraries (see question 1.3).

### 1.3 XRacer can't find my GL/GLU/glut libraries when compiling. (or) XRacer runs, but it doesn't seem to be using acceleration

Libraries seem to be a big problem for people compiling XRacer, or rather people seem to like to install five similar but subtly different versions of Mesa all over the place, and then complain that the configure script isn't clever enough to find the right one.

First a note: there are Mesa libraries and there are Mesa libraries. Just because you installed what you thought are the latest Mesa libraries from RPMs, does not mean that they support your 3D accelerator card in accelerated mode. In fact, most Mesa RPMs seem to be compiled with software drivers only.

Therefore, I strongly suggest that you search your system, remove all out of date Mesa libraries, and recompile from source.

Use the `locate` command to find Mesa libraries installed, eg:

    locate libMesa
    locate libGL
    locate libglut

Follow the instructions in the Mesa packages when compiling from source. At a minimum you will need to find the right compile option from the possible list. For example you might do:

    ./configure --help

Make sure that /usr/local/lib appears in /etc/ld.so.conf and rebuild the ld.so cache like so:

    /sbin/ldconfig

Now that you have a correctly installed Mesa, build XRacer. During the configure, you should see lines like this:

       :
    checking for glNewList in -lGL... yes
    checking for gluLookAt in -lGLU... yes
    checking for glutKeyboardUpFunc in -lglut... yes
       :

The `yes` indicates that the configure script successfully located the GL, GLU and glut libraries.

If you prefer to install Mesa libraries in a non-standard place, then try configuring XRacer with the `--with-gl-libs=DIR`, `--with-gl-inc=DIR`, `--with-glut-libs=DIR` and/or `--with-glut-inc=DIR` options. You will definitely need to add the non-standard paths to your /etc/ld.so.conf and rebuild the ld.so cache with ldconfig, or else use the `LD_LIBRARY_PATH` environment variable.

If you still have problems after building XRacer, check which libraries it is linked against using the `ldd` command. A correct build looks like this. Notice the glide, GL, GLU and glut libraries.

    $ ldd `which xracer`
       :
            libglut.so.3 => /usr/local/lib/libglut.so.3 (0x4003b000)
            libGLU.so.1 => /usr/local/lib/libGLU.so.1 (0x4006d000)
            libGL.so.1 => /usr/local/lib/libGL.so.1 (0x40089000)
       :
            libglide2x.so => /usr/lib/libglide2x.so (0x404eb000)
       :

### 1.4 On Linux, with my Voodoo XYZ, XRacer dumps core before even opening a window!

If you built support for `/dev/3dfx` into your kernel, then upgraded the kernel and forgot to rebuild the `/dev/3dfx` module, then any GL program will dump core as soon as it runs. Solution: rebuild the `/dev/3dfx` module.

### 1.5 `configure' works, but the compile fails with the error "sh: no: command not found".

You don't have gettext installed on your system. Either install gettext, or run configure with the --disable-nls switch.

## 2 Platforms

### 2.1 Is there a Windows port of XRacer?

Yes. It's part of the main distribution. You will need Cygnus Cygwin to compile it. The port is maintained by Bart Jaszcz, and he periodically releases binary versions which you can find on the main site.

To compile from source, please see the following resources:

- How to compile GLUT on Windows: http://members.xoom.com/bpj1138/glut_on_windows.html
- Precompiled GLUT 3.7 DLLs: http://reality.sgi.com/opengl/glut3/glutdlls37beta.zip

### 2.2 Is there a (insert Unix flavour here) port?

XRacer compiles out of the box on most Unix flavours. Please mail me (with patches) if you successfully compile XRacer on an esoteric flavour of Unix.

### 2.3 I can't run XRacer on my 386. Are you planning support for low-end PCs? (or) Can I run XRacer without a 3D accelerator card?

The short answer is no: I have no plans to support low-end PCs or PCs without 3D accelerator cards. As a general guide, you will need a PC at least as powerful as mine to run XRacer, and my PC is a Pentium II 266 MHz with a Voodoo 2 and a Matrox Millenium G200 graphics card.

The slightly longer answer is that various people have talked about writing a version of XRacer which can run on low-end hardware, but no one has yet sent me any concrete patches. One person, for instance, hacked together a wireframe version of the game. I'm quite willing to incorporate such patches, provided the changes are fairly minor.

## 3 Contributions

### 3.1 How to make code contributions

I only accept code contributions in the form of a unified diff against the latest version (or a very recent version) of the code.

To make a unified diff, please follow these instructions:

1. Remove temporary files:

       make distclean

2. Rename your source tree:

       cd ..
       mv xracer-5.67 xracer-5.67-snazzy-feature

3. Unpack the original xracer source alongside it:

       tar zxf /tmp/xracer-5.67.tar.gz

4. Generate the diffs:

       diff -urNb xracer-5.67 xracer-5.67-snazzy-feature > /tmp/xracer.patch

5. Check the patch and remove any unnecessary patches from the file.
6. If you've added several features, it's best to send them as several independent patches if you can.
7. Don't forget to add your name and email address to AUTHORS so that you assert copyright over XRacer and help to keep XRacer free!

If you have just patched one or two files, then making patches is even easier. For each file, just do:

    cp file.c file.c.orig
    Make changes to file.c ...
    diff -u file.c.orig file.c > /tmp/file.c.patch

and just send me the patch: `/tmp/file.c.patch`.

### 3.2 What formats can I send music/samples/textures in?

XRacer will soon be able to play MP3 files. If you would like to contribute a music track, then please send it in MP3 format.

Sound samples should be sent in WAV or RAW format. If you send it in RAW format, please tell me the sample rate, number of channels, number of bits per sample and byte order.

Textures should be supplied as JPEGs or GIMP XCF files.

### 3.3 I'm a music composer. Can I send you music/samples?

If you wish to write music to go with XRacer, please send it to me in MP3 format. Like Wipeout, XRacer goes well with upbeat techno / house tracks.

I particularly need samples of the following:

- Crowd noises.
- Crashes.
- Powerups (shield: woommm .. woommm .. woommm, laser sounds, missile sounds, explosions, pick up powerup sounds).
- A loopable scraping sound.
- A loopable wind-noise sound.

### 3.4 I'm a Blender guru. How do I design tracks?

At the moment, you can't design tracks in Blender. Also, designing tracks now in the hope that I may eventually incorporate Blender support is not likely to be useful - I will probably require all sorts of special textures and object names to indicate special things to the importer. Sorry. Use AC3D instead, or see question 4.3

## 4 Miscellaneous questions

### 4.1 Wouldn't it be cool if XRacer did (insert cool feature) !

Yes, wouldn't it. Show me the code, and I'll show you the feature.

### 4.2 I'm too lazy to download these beta versions. When is release 1.0 coming out?

Probably never if too many people take this attitude. The more people send me cogent bug reports, code patches, samples, scenery and so on, the faster XRacer gets developed.

### 4.3 What are your future plans for XRacer?

At the moment, the main aim is to get a stable 1.0 release of XRacer. There is a limited list of features that I am working on for a 1.0 release (you can find it on the website). Once 1.0 is released, XRacer will be a stable, enjoyable game, probably with just a single level.

For 2.0, I intend to completely rewrite the track design code to use Blender and more free-form tracks. Currently tracks are divided into `segments', and segments are treated separately from scenery. This distinction will disappear and you will be able to design tracks which are much more arbitrary - for example, tracks will be able to cross over themselves, and you will be able to have tracks where you can `escape' and drive around the scenery. Once Blender support is in place and there is a stable 1.0 release to demonstrate the engine, I'm hoping to attract a lot more people to just develop and submit tracks.

With 2.0, I will take the opportunity to slow down development, perhaps to just a few releases a week, and clean up the code.

LAN multiplayer mode may go into 1.0 if there is time. Otherwise, it will be held over to 2.0 when the code is cleaned up.

### 4.4 Where do you live, and what's your day job?

I live in London, England. By day I'm migrating Postmaster (a free email service) and Schoolmaster (a free-for-schools web service) from legacy NT to Linux.

Last modified: Sun Jan 30 08:18:57 GMT 2000