Patches for ioquake3 (formerly known as Quake 3)

Here are some patches against development versions of ioquake3, formerly known as Quake 3 (the patches are updated once in a while to incorporate small improvements or reflect changes in the svn repository). The patches are tested on linux/x86 only.

The patches are for the pre-unified-SDL versions of ioquake3 and don't apply to the current svn version.


To use all of the fixes in ioquake3 and most of my patches it is needed to use the shared libraries instead of the quake virtual machine (qvm) code provided in the pak*.pk3 files. To do this you need to add the following parameters to your ioquake3 command line:

+set sv_pure 0 +set vm_cgame 0 +set vm_game 0 +set vm_ui 0

As an alternative you can use my search directories before PAK files patch to use VM files installed in the baseq3/vm/ respectively missionpack/vm/ directory. To use the updated VM files in-game you have to specify +set sv_pure 0 as well.

Pending Patches

Keep Menu Aspect Ratio

Currently (ioquake3 SVN revision 581) the aspect ratio is not preserved when scaling the menu to a resolution with an aspect ratio less than 4:3. This patch fixes that. The patch affects the Quake 3 menu only, (at least some) mods (e.g. Team Arena) use their own menu code.

Keep Video Aspect Ratio

This patch keeps the aspect ratio of cinematics when using non 4:3 video modes if the CVar cl_keepvidaspect is set to 1. It keeps the console in this area as well (comments in the code suggest this is the correct behaviour). The patch works without the keep menu aspect ratio patch, but should be applied after that if both shall be used. In Team Arena this code is used to display cinematics, but the menu is not cleared beforehand.

Menu Entry for Custom Video Modes

This patch adds selecting and setting a custom video mode to the menu. To use the modified menu the game has to be started with the command line options +set sv_pure 0 +set vm_ui 0. Only menu code is changed by the patch, custom video modes have been implemented by id Software via the r_mode, r_customwidth, r_customheight and r_customaspect CVars. Note that cinematics were not displayed in wide-screen modes, this was a bug in the original code. That bug has been fixed in svn revision 577.

An Extended List of Video Modes

This patch extends the list of video modes (resolutions). I implemented this before I was aware of the custom video mode, I don't recommend extending the mode list to keep compatibility with the original code base and other ports. It is not feasible to list every useful video mode anyway. This patch is not compatible with the menu entry for custom video modes patch above (though only a minor modification is needed to use both).

Obsolete Patches

Make Game Window Resizable

This patch allows to change the resolution by resizing the window when not using fullscreen. This has to be enabled by setting the CVar r_allowResize to 1 via in-game console or command line (+set r_allowResize 1). A change to this CVar requires a vid_restart to take effect. Changing the resolution sets the CVars r_mode, r_customwidth and r_customheight appropriately. Open the in-game console to ungrab the mouse. Since a vid_restart is done to activate the new resolution, this will work well with window managers sending a single resize event only. Has been updated and commited to svn on 2009-09-14 (svn revision 1594).

Better Joystick Support

This patch adds the CVar in_joystickNo to select the joystick to use as well as support for joystick hats. It affects the SDL build only. Has been commited do svn on 2006-06-17 (svn revision 809).

Create botlib.log only if logfile 1

This patch lets the CVar logfile control creation of the file botlib.log. Has been commited to svn on 2006-04-21 (svn revision 715).

Create botlib.log in the base directory

This patch creates the the file botlib.log in the game directory in the quake home dir where all other logfiles are as well. This patch has been commited to svn on 2006-04-21 (svn revision 715).

Create botlib.log in quake home dir

This patch creates the file botlib.log in the quake home dir instead of the current dir. This patch has been commited to svn on 2006-04-14 (svn revision 705).

Fix Menu Rendering in Wide Screen Resolutions

The incorporated fix for bug 2583 broke rendering the menu for aspect ratios ≥ 4:3, this is a trivial fix for this. This patch has been commited to svn on 2006-02-12 (revision 538). For correct menu rendering in every resolution my keep menu aspect ratio patch is needed.

Rejected Patches

These patches will not be merged to ioquake3.

Search directories before PAK files

This patch changes the search order for files such that files in a directory shadow those in PAK files.

back to my homepage.