This is a patch for Kingpin that fixes a number of bugs, and adds some other
improvements too (see the lists below). No files are modified by the patch, so
it works with all Kingpin (v1.21) releases, including the Steam version. The
WSOCK32.DLL file is the patch that gets loaded by Kingpin and PATCHCFG.EXE is a
configuration app for the patch. Both files should be put in your Kingpin
directory.

If you have Kingpin installed under "Program Files" or "Program Files (x86)"
then you may need to run PATCHCFG.EXE as administrator (right-click on it) for
it to be able to write the patch's PATCH.CFG config file.


New features and tweaks
=======================
Custom screen resolution
  A custom screen resolution can be set in the PATCHCFG app, which will replace
  the game's 1600 x 1200 option. If the wanted resolution is not listed, the
  "width" and "height" values can be set manually in the PATCH.CFG file. The
  current resolution is also now added to the "gl_mode" variable.

FOV auto-adjustment
  The FOV can optionally (in the PATCHCFG app) be adjusted automatically to
  maintain the same vertical view with any aspect ratio. This results in the
  horizontal view expanding, instead of the vertical view shrinking, when using
  a widescreen aspect ratio. The "fov" variable is unchanged by this (the
  adjustment is applied on top of that).

Improved support for any size of image
  Standard Kingpin limits images/textures to 256x256 pixels and anything larger
  gets reduced, losing detail. It also resizes any images/textures that are not
  a power of 2 (256/128/64/etc) because they needed to be a power of 2 in the
  past, again losing detail. Both of those limitations are removed now, so
  affected images/textures are shown in higher quality. The "texture quality"
  option (gl_maxtexsize) has been removed from the "visuals" menu as it no
  longer has any effect. If wanted, power of 2 images can be re-enabled by
  setting the new "gl_pow2" console variable to "1" ("vid_restart" is needed
  after changes).

Anisotropic filtering
  A new anisotropic filtering option is available in the "visuals" menu and a
  "gl_anisotropy" console variable. When enabled, it keeps images/textures
  looking sharp when they are viewed at an angle. Higher settings allow it to
  have effect at greater angles and distances. Note this setting may be
  overridden in the video card's control panel.

Anti-aliasing
  A new multisample anti-aliasing (MSAA) option is available in the "visuals"
  menu and a "gl_multisample" console variable. When enabled, anti-aliasing
  smooths jagged edges. Higher settings are smoother but more demanding. Note
  this setting may be overridden in the video card's control panel.

Vertical sync setting
  A new vertical sync option is available in the "visuals" menu, which gives
  access to the existing "gl_swapinterval" console variable. Setting it to "no"
  (off) is recommended to reduce input lag. Note this setting may be overridden
  in the video card's control panel.

Improved lighting of see-through surfaces
  See-through surfaces (eg. grills/fences/banners) now have the same lighting
  applied as other surfaces in the same area, so that they blend in better.
  Dynamic lighting is also now applied to those surfaces, and they can be
  charred by explosions and flames.

Improved dynamic lighting
  The performance of dynamic lighting (and charring) is much improved so that
  it can now be enabled on Intel GPUs without causing lag. Dynamic lights are
  also now approximately the same size on all surfaces, and work properly on
  bmodels (eg. moving platforms) and windows, and no longer show on the other
  side of thin walls.

Dynamic light disabling
  A new dynamic lighting option is available in the "visuals" menu, which gives
  access to the existing "gl_dynamic" console variable.

Improved effect visibility
  Effects such as flames/sparks/blood/etc are now visible through translucent
  surfaces (eg. windows and water).

Improved shadows
  Shadows are now shaded rather than pitch-black. They also point away from the
  nearest/strongest light sources, and are not shown for things that are a long
  way off the ground.

Auto directional lighting
  A new "auto" setting is available for the "directional lighting" menu option,
  which will automatically disable directional lighting on players and items
  when there are no juniors (lights) around them, to prevent them becoming
  pitch-black.

Maximum FPS setting
  The maximum frames per second (cl_maxfps) can be set in the PATCHCFG app.
  This limits the screen refresh rate and also how frequently your input is
  sent to a server. If vertical sync is enabled then the FPS will be limited
  to the monitor's refresh rate. It may also be limited by the server. FPS is
  no longer limited by the "rate" setting.

FPS display
  A new FPS display option is available in the "visuals" menu and a "showfps"
  console variable. When enabled, the current number of frames per second is
  displayed at the bottom of the screen.

Internet server browsing
  A live server list is downloaded and included in the "join network server"
  menu. A copy of the list is also written to a SERVERS.TXT file, which will
  be used if the master server is ever unavailable. The dead "play on heat.net"
  menu option is removed.

Faster downloading
  Download speed is no longer limited by the "rate" or "cl_maxfps" settings or
  by vertical sync, and can now reach speeds of up to 4 MB/s if the server
  allows. A speed limit can be set in the PATCHCFG app and a new
  "max_download_rate" console variable can be used to change the limit in-game.
  Downloads are also sent in fewer/larger packets when connected to a kpded2
  server, for greater efficiency.

PAK downloading tweaks
  PAK files are downloaded (if the server offers any) before any other files,
  to avoid separately requesting files that are in the PAKs. Only the mod's
  directory is checked for existing PAK files (and other root directory files)
  so that existing files in the "main" directory do not prevent mod-specific
  client files being downloaded.

Model skin downloading
  Skins/textures used by models (including weapon models) are downloaded from
  the server.

Network compression
  When connected to a kpded2 server, game state data will be compressed when it
  would otherwise be too large to send, instead of dropping it. This can be
  disabled by setting the new "net_compress" console variable to "0". Note that
  demos containing compressed data will not be playable without the patch
  enabled. File downloads are also compressed for greater speed and lower
  bandwidth usage.

Increased entity limit
  The entity display limit is increased from 128 to 256. This fixes the problem
  of your gun sometimes disappearing/flickering when there is a lot of action.

Visible gun with any FOV
  You can choose in the PATCHCFG app to have your gun visible with any "fov"
  setting, not only up to 90.

Consistent HUD layout
  The position of the HUD items and the chat text are now the same in all
  screen resolutions and aspect ratios.

Hi-res console text
  A new hi-res console option is available in the "options" menu and a
  "con_highres" console variable. When enabled (the default), a hi-res font
  will be used to show console and overlay text, adding support for lowercase
  letters and colouring.

Improved text input
  Non-US keyboard layouts are now supported, and the cursor can be moved using
  the left/right arrow keys to modify the entered text. The Ctrl key can also
  be used to jump words, and the home/end keys to jump to the start/end of the
  text.

Highlighted non-chat text
  Non-chat text shown in the chat area (eg. connection notifications) is shown
  in light blue to make it more distinguishable from chat. This also applies to
  the console when hi-res console text is enabled.

Nicer scoreboard text
  Scoreboard text now has smoother edges and a drop shadow.

Chat while console is open
  The chat area is now still shown while the console is open.

Console access without developer mode
  The console key (`) and menu option can now be used to access the console at
  any time without needing the "developer" variable to be set to "1".

Larger console buffer
  The console buffer size is now 128 KB rather than 32 KB, which allows 4 times
  as many lines of text to be retained.

Console scrolling
  The mouse wheel can now be used to scroll the console.

Console width limiting
  The number of characters per line of console text can be limited in the
  PATCHCFG app and in-game with a new "con_maxwidth" console variable. Shorter
  lines allows more lines of text to be retained.

Fixed console image brightness
  The brightness (vid_gamma) setting no longer effects the console background
  image, so that the text does not become harder to read when the brightness is
  turned up.

Console image removal
  The console background image can be replaced with a solid colour to make the
  text easier to read. This can be set in the PATCHCFG app and in-game with a
  new "con_noback" console variable. A new "con_color" variable can be used to
  change the background colour (to a palette index from the COLORMAP.PCX file).

Console overlay lines
  The maximum number of lines of console text that overlays the top of the
  screen can be adjusted in the PATCHCFG app and in-game with a new
  "con_notifylines" console variable.

Chat lines
  The maximum number of lines of text shown in the chat area can be adjusted in
  the PATCHCFG app and in-game with a new "chatlines" console variable.

Transparent graphs
  The netgraph and timegraph backgrounds can be made transparent in the
  PATCHCFG app, so that they do not block the HUD. A new "graphseethru"
  console variable can be used to change this in-game.

Wider graphs
  The screen can now be up to 2048 pixels wide (instead of 1024 pixels) before
  the netgraph and timegraph displays repeat.

Netgraph ping range
  The ping range coverered by the netgraph display can now be set with the new
  "netgraph_min" and "netgraph_max" console variables.

Menu text brightness
  The brightness (vid_gamma) setting now applies to menu text too, so it is
  more legible over the background.

Darkened menu background
  The PATCHCFG app gives the option of darkening the background when using
  menus to make them easier to read.

Customisable crosshair colour
  A new "crosshair color" option is available in the "options" menu, which
  allows the crosshair colour to be changed. Custom RGB settings are also
  possible with a new "crosshair_color" console variable.

Targeted player name placement
  A new "crosshair names" option is available in the "options" menu, and a
  "crosshairnames" console variable, which allows adjustment of where the name
  of the targeted player is shown. The amount of cash carried by the player
  (if it is a bagman teammate) is also placed accordingly. Targeted player
  names are also now shown during playback of demos.

Weapon key binding
  The weapons can now be bound to other keys/buttons in the "customize
  controls" menu.

Support for 5 mouse buttons
  If your mouse has them, 2 extra buttons (MOUSE4 and MOUSE5) can be bound in
  the "customize controls" menu options and AUTOEXEC.CFG files.

Mod-specific binds
  Binds are now saved to and loaded from the CONFIG.CFG file in a mod's
  directory. Other settings continue to be only loaded from the CONFIG.CFG
  file in the "main" directory.

Ignoring arrow key commands
  When an arrow key is pressed, a command is sent to tell the server even if
  those keys are bound to something else (eg. player movement). Those commands
  are generally ignored by servers, so they are now not sent by default. The
  command sending can be re-enabled by setting the new "cl_sendarrows" console
  variable to "1".

Improved reverb effect
  Kingpin's built-in reverb sound effect is replaced with a better sounding
  one. A new option is available in the "options" menu to switch back to the
  original reverb effect or disable reverb. That option is also accessible
  with a new "s_reverb" console variable. Note the "sound quality" option must
  be set to "high" for reverb to be enabled.

Sound when inactive
  A new "mute when inactive" option is available in the "options" menu, and a
  "s_focus" console variable. When disabled, it allows Kingpin's sound to still
  be heard when Kingpin is in the background.

Improved playback of 8-bit sounds
  The playback quality of 8-bit sounds is improved, particularly at lower
  volume levels.

Sound buffering control
  A new "buffer / delay" option is available in the "options" menu, which gives
  access to the existing "s_mixahead" console variable. It determines how much
  sounds are delayed by. Note there may be glitches in the sound if it is set
  too low.

JPEG screenshots
  A new "screenshot format" option is available in the "options" menu, with the
  option of writing screenshots in the JPEG format at various quality levels. A
  new "screenshot_quality" console variable is also available for more control
  over the JPEG quality level (0 = TGA). The high quality TGA format is still
  supported and is also compressed now but the size reduction will not be as
  great as JPEG.

Screenshot filename display
  When a screenshot is saved, its filename is displayed.

New lasers
  The existing railgun laser has been replaced with a new one that supports
  different colours, for use in the instagib game mode (can also be used in
  other mods). The muzzle flash is also the same colour as the laser now.

Underwater rocket tweak
  A rocket's flame trail stops when it enters water.

More efficient scoreboards
  New scoreboard layout options are supported that allow more players to be
  shown in the scoreboards.

Reduced idle bandwidth usage
  When you are not moving, fewer packets will be sent to the server, reducing
  bandwidth usage, and server load too.

Reconnecting mid-download
  The "reconnect" command now works while downloading if the download has
  stalled for over 3 seconds.

Increased default "rate" setting
  The default "rate" setting is now 25000 (T1/LAN) instead of 4000 (56 MODEM).

Demo playback speed control
  The mouse wheel can be used to speed up and slow down/pause the playback of
  demos. The volume level is reduced when playing at higher speeds to prevent
  excessive noise.

Demo angle adjustment
  The view angle can be changed during demo playback by holding down the left
  mouse button and moving the mouse.

Using commands/binds while playing demos
  Key binds can be used while playing demos (eg. to take screenshots). The
  console can also be accessed while playing demos.

Downloads excluded from demos
  Any files that are downloaded while recording a demo are now not included in
  the demo.

F12 key disabling
  The PATCHCFG app gives the option of preventing the F12 key from closing
  Kingpin. F10 or Alt+F4 can be used instead. This may be particularly useful
  for Steam users, which defaults to using F12 for screenshots.

No empty directories created
  Directories are no longer created for missing downloads.

CPU priority boost
  Kingpin's CPU priority is raised to reduce the chances of other processes
  denying it CPU time and causing lag. This can be adjusted with a new
  "win_priority" console variable. Possible values are: -2 = low, -1 = below
  normal, 0 = normal, 1 = above normal, 2 = high. The default is 1 (above
  normal). When the priority is raised, Kingpin will pause for a bit between
  frames (when it has nothing to do) instead of trying to hog the CPU, so it
  will actually use less CPU than normal.

Reduced background CPU usage
  Kingpin will pause between frames instead of trying to hog the CPU when it is
  in the background. When Kingpin's CPU priority is raised, it will drop back
  to normal priority while it is in the background. 

No CD check
  The CD check is disabled so that you can play without having the CD in the
  drive (if you are using the CD version of Kingpin).

More verbose model error messages
  The model's filename is included in "R_DrawAliasModel" and "R_CullAliasModel"
  error messages.


Fixed bugs
==========
Physical memory detection only works up to 2GB RAM. This bug could result in
reduced sound and texture quality.

Multiple copies of images/textures being loaded when they have uppercase
letters in their name. This bug can result in "MAX_GLTEXTURES" errors.

If a player carries a cashbag/flag while spawn protection is active, it results
in multiple "r_cullaliasmodel" errors for everyone that sees them.

Chat text disappears when centred text is shown.

Chat text turns to garbage in the output of the "condump" command.

Crash when there have been 32768 lines of console text.

Buffer overflow/crash with text messages over 4095 characters long. This bug
prevents Kingpin running without Windows' app compatibility feature enabled
(which also blocks Alt+Tab).

Looping sounds are not recorded in demos.

Only the first map is played back from demos that span multiple maps.

Demos end early when they contain an empty message (caused by an overflow when
the demo was recorded).

Crash when taking a screenshot before the game's directory exists.

When a map's texture is missing, it may be requested from the server multiple
times instead of just once.

When changing mod, the Kingpin window is unnecessarily recreated/reinitialized.

When connecting to a mod server and then a standard server, files (eg. config
and downloads) will be written in Kingpin's root directory instead of "main".

In deathmatch, the reverb sound effect is only applied to the first player
(client 0).

Distortion and panning of non-attenuated sounds.

A targeted player's name is not shown when the player is behind a see-through
surface (eg. fence or window).

Targeted player names are not shown when movement prediction is disabled
through the "cl_predict" variable or by the server (eg. when chasing).

A server's instruction to disable directional lighting is ignored on the
player's weapon, which means it may be pitch-black on some maps.

The lighting of the player's weapon is incorrect when spectating in eyecam mode
with directional lighting enabled.

Laser beams are sometimes black instead of their correct colour.

You are sometimes left facing the ceiling/floor after spawning or teleporting.

The Esc key does not access the main menu while a scoreboard is showing.

Using Alt+F4 keys to quit results in an error message.

The Kingpin window sometimes re-grabs the mouse when clicking away from it.

Nvidia drivers automatically turn on vertical sync when it has been turned off
in-game and the driver is set to use the game's setting in the Nvidia control
panel.


New/modified menu options
=========================
gangbang > join network server
options > buffer / delay
options > reverb
options > mute when inactive
options > crosshair color
options > crosshair names
options > directional lighting
options > hi-res console
options > screenshot format
options > customize controls
visuals > anisotropic filter
visuals > anti-aliasing
visuals > vertical sync
visuals > dynamic lighting
visuals > show fps


New console variables
=====================
chatlines
cl_sendarrows
con_color
con_highres
con_maxwidth
con_noback
con_notifylines
con_scale
crosshaircolor
crosshairnames
gl_anisotropy
gl_multisample
gl_pow2
graphseethru
max_download_rate
net_compress
netgraph_max
netgraph_min
s_focus
s_reverb
screenshot_quality
showfps
win_priority
