GPL 60 fps patch, version 1

March 2009

Petteri Pajunen and Nigel Pattinson


IMPORTANT

* this is an unpolished 'early' release, consider it as such. Better out early than never.
* 60 fps is compatible online only with 60 fps servers. Make sure the server is patched for 60 fps before joining.
* only the original 67 GPL is supported, although some mods may work without problems with the 60 patch 
* GEM+ is required for installing the patch


BACKGROUND

The patch is intended to avoid display problems when using a 60 Hz refresh rate which is often the only reasonable choice for many people (LCD monitors using the DVI connection, some monitors support native resolution with at most 60 Hz refresh rate, Vista may force 60 Hz, projectors etc..). GPL running at 36 fps looks quite bad with a 60 Hz refresh rate. This patch increases the fps to 60, matching the 60 Hz refresh rate. It results in a smoothly updating display, as opposed to the visibly notchy display updating with the original GPL.



LAPTIMES

The patch does not touch actual physics parameters, but it makes some changes to the rates at which certain things are calculated (this was unavoidable since these rates need to be compatible with 60 fps). Calculating the same thing slightly more often is not expected to have a noticeable effect on laptimes. To make sure, laptimes were extensively tested by a large group of drivers. No significant difference was found when setting best laptimes.

Those worried about devaluing current WR laptimes should note that 60 fps replays can easily be identified. Therefore GPL Rank admins can treat 60 fps WR laptimes separately if they consider it necessary.

For techical reasons, this patch does not prevent from joining the "wrong" kind of server (client running at 60 fps but server at 36 fps, or vice versa). When on track on a server with wrong fps, things do not work correctly. It is possible that this results in incorrect laptimes, similar to "warp" laptimes. These laptimes should not be submitted to GPL Rank, just as warp laptimes should not be submitted when achieved using the unpatched GPL.



REQUIREMENTS

* A working GPL installation (there may be problems with old installs, one tester had problems using original sounds and no carsound patch)
* GEM+ with the xml patching feature. At least version 2.5.09 (or later) from http://gem.ebi-service.de/ works.

System requirements are impossible to specify accurately, as well as unnecessary since it is easy test it yourself (the patch is a small download and easy to install/uninstall). 60 fps is no free lunch, so considerably more PC performance is needed. Test it on your PC, and read the feedback from other users to get a better idea what is required.



INSTALLATION

Put the patch file 60FPSv1.xml in the GEM+ Options folder, located by default at

  C:\Program Files\GPLSecrets\GEM+\Options

Start GEM+ and check the box next to "60fpsv1". Start GPL, which should now be running at 60 fps. Check your fps display to ensure this. For best results, use a display mode with 60 Hz vertical refresh rate and set vsync on. Consider setting your ffb latency to zero, since higher values may give unwanted ffb effects.

GEM+ produces a patched exe called gplc67.exe (other names are used for mods), which you can use to start GPL directly if you prefer to do so. Only patching and unpatching needs to be done through GEM+.



FEATURES

You can drive offline, and join online races hosted by a 60 fps server. This patch disables AI since it does not work properly yet at 60 fps. You can select 'Single Race' or 'World Championship' but both lead to 'Training' anyway. If you want to drive against AI, simply uncheck the patch in GEM+ and use 36 fps for AI.

The following utilities work with the 60 fps patch (others may work too, but not everything has been tested):

* Pribluda (60 fps has no effect on any data Pribluda uses)
* iGOR (test races were hosted on iGOR)
* CCM
* VROC (launch it from GEM+ so gpl.exe will be patched)
* GPLRA (currently gives wrong values when analyzing 60 fps laps, but generates correct race reports)


MULTIPLAYER

Those considering hosting 60 fps races should make sure that everyone joining is using the 60 fps patch. Currently unpatched GPL is not compatible with 60 fps online. Joining is technically possible, but driving does not work properly when on track. Please do not join a 60 fps server with unpatched GPL, and vice versa. It may cause problems for others on track.

The following Core.ini parameters are recommended (change them if you know what you are doing):


net_mdm_client_send_every = 5                ; Client packet freq on dialup
net_mdm_client_send_size = 84                ; Client packet size on dialup
net_mdm_server_send_every = 5                 ; Server packet freq on dialup
net_mdm_server_send_size = 384               ; Server packet size on dialup
net_server_port=0                             ; Server port number (0 = default)
net_use_mdm_bandwidth_for_tcp_ip=1            ; Use modem bandwidthfor TCP/IP - 1 = Use net_mdm_ settings *

The reason for using send_every = 5 instead of the commonly used 3 is that networking code is also speeded up. Send_every = 3 means sending data every third frame (12 times per second in original GPL). Using send_every = 5 means sending data every fifth frame, which is again 12 times per second when using the 60 fps patch. Send_size parameters are not affected by the 60 fps patch, so they can be chosen as before.

Joining a 60 fps server from iGOR works, but currently joining the wrong type of server is not prevented. Make sure that the appropriate exe is patched (or unpatched) before joining.



KNOWN ISSUES

* AI is disabled in this release. Getting AI to work properly is difficult, and it is not yet good enough to be released. A lot of progress has been made, so it should eventually be available in 60 fps.

* Online replays have extra jumpiness. This is a general GPL issue, and 60 fps simply makes the problem more obvious. 

* There are frequent 'double-clicks' especially in the setup screen.

* Moving 3do objects (flags etc..) move too fast.

* Mixing 36 fps and 60 fps online does not work correctly. Online races must be 60 fps only, or 36 fps only. This is not currently enforced, so those hosting online races should make sure everyone knows which version to use when joining. Drivers should find out what fps is used on the server, and use the correct version when joining. 

* GPLRA does not currently handle 60 fps replays correctly. However, race reports can be extracted so posting the results of online races is possible.



GPL Rank

The 60 fps patch has no effect on storing record laptimes in player.ini. Therefore record laps made with the 60 fps patch will not be treated differently from 36 fps record laps when uploading to GPL Rank. If you want to keep 60 fps records separate, the easiest solution is to make a separate player for 60 fps.




CREDITS

Thanks for testing:

	William Campbell
	Bill Cooper
	dangermouse
	ducwolf
	Aleksi Elomaa
	Phil Flack
	Allie Fraser
	Ginetto
	Stewart Grove
	Juha Hallikainen
	Elias Hirvonen
	Remco Hitman
	Robbie Hunter
	Jackseller
	Barry Kooistra
	Harri Lattu
	MECH
	Ken Murray
	Guillaume Nachin
	Simon Nott
	Tommie van Ostade
	Remy Roesz
	Paul Skingley
	Vosblod
	Phil Woodward
	Stefano Zampedri


	I've lost track of some testers, thanks to all not mentioned here
