                                                  <<File version 3.1>>
Contents
========

Introduction
Setup guide
FAQ
Additional information
Author


Introduction
============

This is the bandwidth patch readme for clients.

This patch allows you to increase the maximum number of cars that GPL will show over modem connections.

Supported GPL versions are 1201 and 1202 (Cpu fix)


Setup guide
===========

To set things up, do the following:

1. Backup gpl.exe and core.ini in a save place
2. Extract bwpatch.exe to your GPL directory
3. Run bwpatch.exe and follow instructions to apply the more cars patch.
4. In core.ini set:
      [ Communications ] 
      net_mdm_client_send_every = 3
      net_mdm_client_send_size = 84
      net_mdm_server_send_every = 3
      net_mdm_server_send_size = 384    ; show 19 cars
      net_use_mdm_bandwidth_for_tcp_ip = 1 
   The 384 (show 19 cars) above is the maximum. It will work with
   all servers. Depending on how many cars the server really shows it may
   be too much for your connection. See "Additional Information" below
   for estimates of what your connection should be able to handle.
   Note that you must set the net_mdm parameters, not the net_lan.

   N.B. There is one exception: if you want to join a non-dedicated
   server that does not force the bandwidth in Winvroc, set the 
   server_send_size equal to what the server specifies, usually 84. 
   Alternatively you can temporarily remove the more cars patch.
   Otherwise you will have trouble to see the server car.

To join a race:

1. In Winvroc when joining the race, go to the Advanced page 
   in the Join screen and set the GPL Bandwidth settings to: 
      "Use core.ini settings"
   If you cannot set this option because it is greyed out, that's
   ok. It is because the server is forcing the bandwidth.
2. You can also join directly by entering the server's ip address
   in GPL yourself, GPL will then use the core.ini settings. Set 
   your core.ini according to his specs.

For cable and dsl users:
If you have a fixed connection and always connect direct, you can 
opt to omit the more cars patch by using the net_lan parameters:
   In core.ini set:
      [ Communications ] 
      net_lan_client_send_every = 3
      net_lan_client_send_size = 84
      net_lan_server_send_every = 3
      net_lan_server_send_size = 384    ; show 19 cars
      net_use_mdm_bandwidth_for_tcp_ip = 0
Note that with this setup, joining any server via Winvroc who
is forcing high bandwidth will not work. You _have_ to connect direct.
The reason for this is that Winvroc forces your GPL to use the net_mdm
parameters, which have a limit of 5 cars without the patch. Therefor 
the advice is to always use the more cars patch.


FAQ
===

1. GPL reports a Bandwidth mismatch error when joining

   The server is sending more data than your GPL expects. Check these:
   *  Did you select 'Use core.ini settings' under Advanced - GPL Bandwidth 
      settings in WinVroc's join screen?
   *  Did you set core.ini as described?
      -  The parameters must be spelled exactly right.
   *  Did you patch gpl.exe as described?
   *  Did you edit the right files? 
      -  Make sure all file extensions are shown (see additional information below).
      -  Both gpl.exe and core.ini must be in the sierra\gpl folder.

2. You can't select 'Use core.ini settings' for the GPL Bandwidth settings in WinVroc's join screen under the Advanced tab

   The server was started in Winvroc using Winvroc's pre-defined bandwidth 
   settings. This may be as intended. Try to join anyway.

3. You can join but still see only 5 other cars

   The server was started using the conventional settings. Contact the 
   server dude.

4. Excessive warping or disconnects

   Either your connection (or isp) cannot handle the increased bandwidth, 
   or the server cannot handle the combined increased bandwidth of all 
   clients on the server connection.

   If it is your connection, decrease the server_send_size in core.ini 
   (see "Additional inforomtion" below). You will not be able to connect 
   to the same server unless it also decreases the server_send_size.

   If the server can't handle the load, he should allow less drivers to 
   join in.   

   If you want to keep the number of cars shown, decrease the demand 
   for bandwidth by changing all send_every parameters from 3 to 4. This
   must be done on the server and all clients. See Additional information 
   below. Latency will be slightly increased by this change, +0.040s on 
   average, and GPL's prediction of where cars are will be slightly more 
   unprecise.

5. You join a race on a non-dedicated server but cannot see the server car.

   This is an error in GPL. It fails to show the server car to clients who 
   have set a larger server_send_size than the server itself. GPL allows 
   these clients to connect, and they will see all other clients ok, only 
   the server car is not shown to them, and possibly vice versa as well. 
   To prevent this, make sure you use the same server_send_size as the 
   server itself. If the server uses 84 for the send_size, you can do this 
   by temporarily removing the more cars patch. GPL will then limit your 
   server_send_size to 84.


Additional information
======================

1. There is no need to remove the patch or change back core.ini for 
"standard" races. The only difference for a standard race is that you 
cannot select Use core.ini settings in Winvroc; the option will be 
greyed out.

2. To make sure you copy / edit the right files, set the Windows 
Explorer to always show file extensions:
-  Start Windows Explorer
-  Select View - Folder Options from the menu
-  Select the tab View
-  Under 'Hidden files', select 'Show all files'
-  De-select 'Hide file extensions for known file types'
-  You may also want to uncheck 'Remember each folder's view settings'
-  Click on the button 'Like Current Folder' to use these settings
   for all folders

3. You can set net_mdm_server_send_size or net_lan_server_send_size to 
a value that you know your connection can handle, instead of the suggested
maximum of 384. This way a bandwidth mismatch will be reported for servers
that show too many cars for your connection. 
   17Kbps       100    6 other cars visible
   19Kbps       116    7 other cars visible
   28Kbps       164   10 other cars visible
   56Kbps       340   19 other cars visible
   ISDN-64      340   19 other cars visible
   Cable/DSL    340   19 other cars visible
Depending on connection quality, you may be able to go higher or be 
forced to go lower. Always use multiples of 16 plus 4 for the send_size.

If the server is using net_mdm_server_send_every = 4 or 
net_lan_server_send_every = 4 (using less bandwidth but with higer 
latency), you get:
   17Kbps       132    8 other cars visible
   19Kbps       148    9 other cars visible
   28Kbps       244   15 other cars visible
   56Kbps       340   19 other cars visible
   ISDN-64      340   19 other cars visible
   Cable/DSL    340   19 other cars visible
Set the send_every thingies in your core.ini equal to the server's.


Author
======

Bart Westra
http://www.xs4all.nl/~westrab
5 Januar 2003