shithub: qk1

ref: d62733faff1367e247d387ca41ae27f3b6674c49
dir: /qw/docs/qwcl-readme.txt/

View raw version
--------------------------
| qwcl-readme.txt        |
| QWCL documentation     |
| 5/11/98                |
|                        |
| Based on WinQuake      |
| 3/21/97                |
--------------------------

QWCL is a native Win32 version of Quake, optimized for internet
play, and will run on either Win95 or Windows NT 4.0 or later.  It is
designed to take advantage of whatever enhanced video, sound, and input
capabilities (such as DirectX or VESA VBE video modes) are present,
but has fallback functionality so it can run on any Win95 or NT 4.0
or later system, even if neither DirectX nor VESA VBE is available.
You may experience problems running QWCL on some systems, because driver
and operating-system support for game functionality are not yet mature
under Win32, and many bugs and incompatibilities remain in those
components.  If you encounter what seems to be a bug, first please
check through the list of known problems, below.  For other info,
check out http://www.quakeworld.net/

The material accompanying Quake is the reference for all
non-Windows-related matters concerning QuakeWorld; in terms of gameplay,
QuakeWorld is the same as Quake.  This file contains Windows-related
information only.

The rest of this document is organized as follows:

Installing and running QWCL
Common problems and workarounds
A bit about how QWCL video works
Video command-line switches
A bit about how QWCL sound works
Sound command-line switches
Notes on networking
Notes on the mouse
Log of changes to documentation
Special thanks


-----------------------------------
| Installing and running QWCL     |
-----------------------------------

In order to run QWCL, you must first have Quake installed.
Assuming Quake is installed in the standard directory, c:\quake,
unzip the QWCL zip file into c:\quake.  The following files
from the zip file must be present in order for QWCL to run:

qwcl.exe
pmpro16.dll
pmpro32.dll
wdir16.dll
wdir32.dll
wdirnop.com
wdirnop.pif

Then you can run QWCL by making c:\quake the current directory,
typing "qwcl" and pressing the Enter key.  Alternatively, you can
use qwc.bat to run QWCL.  The qwc batch file requires one parameter
describing how to configure QWCL for performance; just type "qwc" to get
a list of the six options.  The first of the six options is

qwc fast

This is the same as typing "qwcl"; this runs QWCL in an
aggressive configuration that is likely to yield the best performance
if it runs successfully on your system, but which has a risk of
causing QWCL or even your system to crash if there are bugs or
incompatibilities in your video or sound drivers.  Alternatively, you
can use

qwc safe

to run QWCL in a conservative configuration, likely to run
on almost all machines with no problems, but possibly with slower
graphics, fewer high-resolution modes, and delayed sound.  Or you
can run

qwc verysafe

to run QWCL in a very conservative configuration that is pretty
much guaranteed to run, but will probably have slow performance, and
will have no sound.  Two other options are

qwc fastvid

which has maximum video performance, but greater sound latency (delay
until the sound is heard), and

qwc fastsnd

which uses more conservative video modes, but low-latency sound.

(One odd note is that DirectSound has much lower-latency sound than
wave sound, but is currently quite a bit slower overall.  Thus you
may find that "qwc fastvid" is actually faster, by as much as 5-10%,
than "qwc fast"; however, it may not feel faster, because the sound
will lag.)

Finally, you can use

qwc max

which is the same as qwc fast, but turns on DirectInput, which
provides more responsive mouse control, but does not work properly
on all systems.

Note that DirectX is not required for QWCL to run, but QWCL will
automatically take advantage of DirectSound and DirectDraw if they
are present.  If DirectSound is not present, there will generally be
considerable sound latency (sound will become audible several hundred
milliseconds after the event that caused it).  Note also that there
are currently no true DirectSound drivers for Windows NT, so QWCL will
always run using wave output on NT, and will consequently have lagged
sound.  See below for information about obtaining DirectX if you do
not have it.

Note that VESA VBE modes aren't required for QWCL to run, but QWCL will
automatically make VESA modes available if they're present.  Your BIOS
may already have VESA VBE 2.0 support built in, but most BIOSes
don't. Worse, some BIOSes do have VESA VBE 2.0 built-in, but have
buggy implementations, which may prevent you from being able to run
the faster configurations of QWCL.  An easy way to get reliable VESA 2.0
support is by obtaining SciTech Display Doctor; see below for
further information. QWCL can also use VBE/AF 1.0 and greater modes;
again, SciTech Display Doctor is the commonest way to get VBE/AF
support.

QWCL normally uses half the physical memory in your system for its
heap, but not less than 8.5 Mb and not more than 16 Mb.  You can
override this with "-heapsize n", where n is the amount of memory to
allocate for the heap, in Kb.

To use the joystick, you must bring down the console by pressing the
tilde ('~') key, and type "joystick 1<enter>"; you can disable the
joystick with "joystick 0<enter>" at any time.  The joystick setting
remains in effect for subsequent QWCL sessions until changed, so
you only need to do joystick 1 once to enable the joystick.  If the
joystick somehow causes problems that keep you from being able to run
QWCL at all, you can start QWCL -nojoy to complete disable the
joystick for that session.


-----------------------------------
| Common problems and workarounds |
-----------------------------------

QWCL crashes or won't run
-----------------------

If QWCL refuses to run or crashes on your system, try running
it using "qwc safe" or "qwc verysafe".  Or you can use command-line
switches:

qwcl -nodirectdraw -nowindirect -wavonly

This will almost certainly solve your problem; however, it may result
in  lagged sound (a long delay from action to hearing the sound), may
result in fewer or slower high-res video modes, and the mouse may be
somewhat less responsive.  If this does work, you can try removing
each of the command-line switches until you identify the one that
fixes the problem, thereby sacrificing as little functionality as
possible.

If the above command line does not fix your problems, try:

qwcl -dibonly -nosound

which forces QWCL into silent operation with bare-bones video support
and no use of DirectInput for mouse input (the normal Windows mouse
APIs are used instead).  Again, if this works, try removing switches
until you identify the needed one.

Both of the above command lines are quick fixes.  Often, the problem
is caused by outdated or buggy DirectX drivers or code, and can
frequently be completely fixed simply by installing the latest
Microsoft-supplied version of DirectX, which you may be able to find
on http://www.microsoft.com/mediadev/download/directx.exe, although
the availability and location of the DirectX file changes
periodically; note that at last check, this is a 3.4 Mb file.  (Be
aware, though, that sometimes Microsoft's DirectX drivers don't
support features that the manufacturers' drivers do support, such as
display refresh rate control.)

One known problem of this sort involves the current SB16 drivers from
Creative Labs, which cause QWCL to crash on some machines.  The
DirectSound drivers from Microsoft, available via the above-mentioned
URL, fix this problem.

It can also sometimes help to get the latest Windows drivers for your
video adapter or sound card (although as the SB16 example indicates,
this is not always a good idea), and for video boards that have flash
BIOSes, it can sometimes help to get the latest BIOS upgrade.


How do I select fullscreen or windowed QWCL operation?
----------------------------------------------------
Check out QWCL's new, spiffy Video menu, accessible from the Options
menu.  There are now two types of modes listed, windowed and
fullscreen.  You can make any of these modes the current and/or
default mode, just as in DOS Quake.  If you make a windowed mode the
default, QWCL will still briefly start up in fullscreen mode, then
switch to windowed; if this is a problem, use the -startwindowed
command-line switch.  More complete video control is available
through the console, as described in the "A bit about how QWCL video
works" section, below.


Gee, I wish I could use a mouse to play QWCL with in a window
-----------------------------------------------------------
You can!  While in a windowed mode, go to the Options menu.  At the
bottom, you'll find a new selection that lets you choose to have the
mouse active when you're in a window.  Of course, if you do this,
you'll have to use the keyboard (Alt-Tab, the Windows key, Ctrl-Esc,
Alt-Esc, or Shift-Alt-Tab) to switch away from QWCL.


Serial/modem menu is missing
----------------------------
QWCL currently does not support direct connect serial or modem play.


DOS Quake reports unknown variables on startup after running QWCL
---------------------------------------------------------------
QWCL uses some console variables that do not exist in DOS Quake, and
some of these are automatically archived in config.cfg when you exit
QWCL.  If you then start DOS Quake, DOS Quake will complain that it
doesn't recognize those variables.  You will also lose the settings
of these variables when you return to QWCL.  Apart from losing the
settings, this is harmless; ignore it.


Problems running QWCL on NT 3.51
------------------------------
NT 3.51 isn't supported by QWCL.


QWCL crashes while switching modes or Alt-Tabbing
-----------------------------------------------
So far, all cases of this seem to be tied to Creative Lab's SB16 sound
drivers, and have been fixed by getting the latest DirectX drivers, as
described above.  Alternatively, you should be able to fix this either
by not switching modes or Alt-Tabbing, or by running -wavonly to
disable DirectSound support.


QWCL sometimes runs pretty slowly fullscreen
------------------------------------------
There are several possible reasons for this, starting with "You have a
slow computer."  Assuming that's not the case, if you don't have
either DirectDraw or SciTech Display Doctor installed (see the "A bit
about how QWCL video works" section), it would probably be a good thing
to install one or the other, because slow operation can be a result
of slow copying or stretching of pixels to the screen by a Windows
driver, something that's eliminated by both DirectDraw and Display
Doctor.  You can also sometimes get a faster 320x200 mode on Win95 by
doing vid_describemodes, then using vid_mode to select a non-VGA
320x200 mode, as described in the "A bit about how QWCL video works"
section.

You can also try using a primary sound buffer on Win95 (this doesn't
work on NT) by using the -primarysound command-line switch; this can
improve performance by several percent, but does not work on all
systems, and can result in odd sound effects on some systems when
minimizing QWCL or switching the focus away from it.  If you use this
switch, please don't report sound bugs; it's in there purely for you
to use if it helps you, and we know it has problems on many systems.
Finally, you can use -wavonly to select wave sound; this will increase
your sound latency (sounds will be heard later than they should), but
allows QWCL to run 5-10% faster on some systems.  That's about all you
can do to speed up fullscreen QWCL on Win95, other than shrinking the
active area of the screen with the screen size control in the Options
menu.

NT 4.0 comes with DirectX installed, but doesn't have any resolutions
lower than 640x480.  In order to support a lower-resolution 320x240
mode, QWCL has NT double each pixel in both directions to get enough
pixels for 640x480.  The extra stretching costs some performance, the
result being that NT can seem sluggish on all but high-end Pentiums
and Pentium Pros.  (In fact, depending on the quality of your driver's
stretching code, it can sometimes be faster to run QWCL at 640x480 than
320x240-stretched on NT.)  One thing that can help on NT is switching
to 640x480, then using the Options menu to shrink the active area of
the screen.

A common cause of slowness running in a window is having the desktop
run in 16- or 32-bpp mode.  QWCL is an 8-bpp application, and it slows
things down if pixels have to be translated from 8-bpp to 16- or
32-bpp.  (Note that this is generally a problem only when running in a
window; fullscreen apps rarely suffer from this.)


Sound is sluggish on NT
-----------------------
NT doesn't have any real DirectSound drivers yet, so there's no way to
do quick-response sound on NT.  When DirectSound drivers for NT
appear, QWCL's sound should automatically be snappier.


Sound breaks up or gets choppy, especially in menus
---------------------------------------------------
This is generally a sign that QWCL's frame rate is too low on your
system.  Try reducing resolution or shrinking the active area of the
screen.  In some circumstances, it may help to set the console
variable _snd_mixahead to a larger value.


The color black doesn't change with palette flashes sometimes
-------------------------------------------------------------
Normally, DirectDraw lets QWCL change all 256 colors, so when a palette
flash happens, we can change all the colors, including black.
However, on NT DirectDraw currently doesn't allow changing black;
likewise, on both NT and Win95, black can't be changed in a window,
either a normal window or fullscreen.  Consequently, in some modes and
in a window, some parts of the QWCL screen (such as the sigils on the
status bar and the spray where a shotgun blast hits) stay black when
the palette flashes.  There is no workaround.


Problems can result if Office shortcut bar is running
-----------------------------------------------------
Various odd behaviors, especially with sound, have been reported if
the Office shortcut bar is running while QWCL is running.  If you
experience odd problems, you might try shutting down the Office
shortcut bar and see if that fixes anything.


Other apps fail to play sound while QWCL is running
-------------------------------------------------------
The sound hardware is currently not a fully shareable resource on
Win32.  Consequently, while QWCL is running, it always has the sound
hardware allocated to itself, to make sure that sound is never lost to
another app.  This means that normally (when QWCL is using DirectSound),
apps that use wave sound (most non-game apps) will not be able to play
sound while QWCL is running, even if QWCL is minimized or not the active
app, although other DirectSound apps will be able to play sound when
QWCL is not the active app.  If QWCL is using wave sound rather than
DirectSound (either because -wavonly is used on the command line, or
because there is no DirectSound driver, as is always the case on NT),
then no other app will be able to play any sound while QWCL is running,
period.


QWCL doesn't have quite the right colors when it�s not the active app
-------------------------------------------------------------------
We're working on fixing this.  But QWCL puts everything back again as
soon as it is reactivated, and anyway, when it�s not active, you can�t
actually do anything in QWCL, so it doesn�t really matter anyway, right?


Desktop is weird colors when QWCL runs windowed
---------------------------------------------
QWCL needs all 256 colors to look right and run fast, which causes it to
have to change some of the 20 colors used to draw the desktop.


Sometimes Permedia boards crash unless -nowindirect is used
-----------------------------------------------------------
It looks like this is probably a Permedia driver bug, so it might help
if you get the most recent drivers.


Right-click on QWCL button in task bar to close doesn�t work as expected
----------------------------------------------------------------------
In some modes, right-clicking on the QWCL task bar button doesn't work
the way you'd expect.  We're trying to fix this, but if it's a
problem, don't right-click.


Screen saver never kicks in when running QWCL fullscreen
------------------------------------------------------
It does work windowed, but when QWCL is fullscreen, it completely
owns the screen and doesn't share it with anyone, even the
screensaver.  If you use Alt-Tab to minimize QWCL, the screensaver will
then be enabled, so Alt-Tab away from QWCL if you're leaving your
computer alone for a while and want the screensaver to be able to kick
in.


QWCL doesn't work in a window in 16-color mode
--------------------------------------------
That's 16 *colors*, not 16-bpp.  If you're still running a 16-color
desktop, run QWCL fullscreen.


Can't minimize window while mouse active
----------------------------------------
When running in a window with the mouse active as a QWCL input device,
there is no easy way to minimize the window, because the system menu
can't be brought up from the keyboard (because some of you use Alt
and Spacebar for playing the game), and the mouse can't be used to
manipulate the window because it's controlling QWCL.  To minimize, you
can disable the mouse for QWCL and use it to minimize the window.  Or
on Win95 you can Alt-Tab away from QWCL, then use the mouse to
minimize (this doesn't work on NT, where clicking on the window
controls just reactivates QWCL).  Or you can bind a key to the
vid_minimize command, as in

bind m "vid_minimize"

and press that key to minimize the window.


Window controls don't work on NT when mouse enabled
---------------------------------------------------
When running in a window on NT with the mouse enabled (so you can use
the mouse to play QWCL), if you Alt-Tab away from QWCL, then use the mouse
to click on the QWCL system menu control, or the minimize, maximize, or
close controls, the controls are ignored and QWCL just reactivates.


Mouse sometimes vanishes in system menu on Win95
------------------------------------------------
On Win95, if QWCL is running in a window with the mouse enabled (so you
can use the mouse to play QWCL), if you Alt-Tab away, then click on the
system menu, the menu comes up, but the mouse vanishes.  However, you
can still use the keyboard to select system menu items, or to exit
the system menu.


QWCL behaves oddly if Scandisk starts defragmenting
-------------------------------------------------
If QWCL is running fullscreen on Win95 when Scandisk starts an automatic
defragging, QWCL is forced to minimize, and when it is brought back up,
may either be in a strange mode where it runs one frame for each
keystroke (in which case Alt-Tab generally fixes things), or may hang
the system.  We don't know what the problem is right now, but you may
want to make sure you don't leave QWCL sitting there fullscreen
overnight if you have automatic defragging.


Hang reported with zero sound volume
------------------------------------
When sound is turned all the way down via the QWCL menus, hangs have
been reported.


Joystick worked fine with earlier versions of QWCL but not now
------------------------------------------------------------------
The joystick was enabled by default in earlier versions of
QWCL, but quite a few people reported serious problems that
forced them to disable the joystick--even some people who didn't
have a joystick attached.  Since most people don't have joysticks,
we've decided to disable the joystick by default, and let people
who do want to use it set joystick 1 in the console (QWCL
remembers this setting, so this only needs to be done once).


QWCL runs very slowly when it has the focus under NT
--------------------------------------------------
In one case, QWCL ran very slowly when it had the focus, but fast when
it didn't (obviously this is only visible in windowed modes).  The
problem turned out to be that NT had a Sidewinder 3D Pro joystick
driver installed; when the driver was removed, things were fine.
If you see a similar problem, check whether QWCL is detecting that
your system has a joystick when you don't think it should; if so,
try doing "joystick 0", or -nojoy on the command line, and see if
that fixes it.  If so, there's something flaky in your system
joystick setup.


Joystick doesn't seem calibrated properly
-----------------------------------------
QWCL relies on the information about your joystick stored in the
system registry.  If the joystick seems miscalibrated, run the
joystick applet and recalibrate and see if that fixes things.


Playdemo fails across multiple levels
-------------------------------------
If "record" is used to record a client-side demo, bad things will
happen on playback via playdemo if a level change is recorded.
(Timedemo works fine.)  This is unfortunate, but QWCL
internals make this not fixable without a good chance of
breaking something more important, so it'll have to stay this way.


Alt-Tab fullscreen only works sometimes
---------------------------------------
I know it seems that way, but actually the trick is that on Win95
it only works if you let go of Tab before you let go of Alt.
This is due to a Windows quirk involving what key sequences are
passed along, so you'll have to work around it by remembering to
let go of Tab first.


MS-DOS windows get scrunched on Alt-Tab
---------------------------------------
This is a quirk of Windows; when you run QWCL in a low-res
mode, sometimes when you exit QWCL or Alt-Tab back to the
desktop, any open MS-DOS windows will be scrunched down to the
size of the low-res mode.  There is no known workaround.


Dprint in progs doesn't work
----------------------------
Dprint means "developer print," so it only works if the developer
console variable is set to 1.  It was a bug in earlier versions that
it worked even when developer was set to 0.


Some DirectDraw modes flicker badly and look wrong
--------------------------------------------------
Page flipping doesn't work properly in some modes on some
systems, particularly when using some DirectDraw modes.  You
can work around this by setting the console variable
vid_nopageflip to 1, then setting the desired mode (note
that the vid_nopageflip setting does not take effect until
the next mode set after the setting is changed).  Bear in
mind, though, that the vid_nopageflip setting is remembered
until it is explicitly changed again, meaning that once you
change it, it thereafter applies to all modes, even if you
exit and restart QWCL.


The Windows key doesn't do anything fullscreen on Win95
-------------------------------------------------------
True.  This is a minor bug we haven't figured out how to fix yet.
You'll have to use Ctrl-Esc, Alt-Tab, or Alt-Esc to switch away.


My default mode is windowed, but QWCL goes fullscreen first
---------------------------------------------------------
For internal reasons, QWCL has to pick a single mode to always
initialize when it starts up, before it sets whatever default you've
selected.  We've chosen fullscreen mode, because that's the way most
people will play.  If this is a problem for you, however, you can
run QWCL with the -startwindowed command-line parameter.


Some high-resolution video modes flicker or fail to initialize
--------------------------------------------------------------
We think these problems are all fixed, but if not, they have to
do with triple-buffering in some modes on some DirectDraw drivers.
If you encounter this problem, either don't use the problem modes
or try using the -notriplebuf command-line parameter to turn off
triple buffering.  Note, though, that turning off triple-buffering
can reduce performance in some modes, so do this only if needed.


Right-click doesn't work right on minimized QWCL
----------------------------------------------------
If you right-click on minimized QWCL on the task bar, the
Close selection in the right-click menu doesn't work; you have
to restore QWCL before you can exit it.  Also, the cursor vanishes
over the right-click menu, although it still works.


The screen briefly blanks when you exit QWCL
------------------------------------------
We're trying to fix this, but it's not harmful, just a mite ugly.


MWAVE sound loses focus
-----------------------
We've had a report that on a ThinkPad with MWAVE sound, QWCL loses
sound focus (and thus sound) every few seconds.


Desktop doesn't reset to proper resolution on QWCL exit
-----------------------------------------------------
We've had a report that on exiting QWCL, the desktop didn't reset
to the proper dimensions.  This may be a bug with the Matrox
drivers, but we're not sure.  If it's a problem and newer
drivers don't fix it, you can run -dibonly, which solves the
problem but can cost some performance.


Palette goes bad periodically on #9 Imagine card
------------------------------------------------
There's only one report of this, so maybe it's a flaky board,
or maybe it's a driver bug.  Newer drivers might help.


System with Packard Bell sound card III crashes on CapsLock
-----------------------------------------------------------
This appears to be the result of buggy DirectSound drivers;
-wavonly makes the problem go away.


Dvorak keyboard mapping ignored
-------------------------------
QWCL is hardwired for QWERTY.


Cursor messed up after running QWCL
---------------------------------
This is a Windows driver bug; the driver isn't restoring the
cursor properly on return from fullscreen QWCL to the desktop.
Try newer drivers.


Ctrl-Alt-Del on NT sometimes doesn't allow return to QWCL
-------------------------------------------------------
This happens on some machines while running QWCL fullscreen.
If you experience this problem, the only workaround is not
to press Ctrl-Alt-Del while fullscreen; Alt-Tab away first.


Many fast Alt-Tabs on Win95 sometimes disable QWCL input
------------------------------------------------------
If you Alt-Tab fast lots of times on Win95 with QWCL running
fullscreen, sometimes you end up in fullscreen QWCL, with the
game not accepting any keyboard input (so there's no way to
exit).  The only workaround is to not do lots of fast
Alt-Tabs (why you'd want to, I'm not sure).



----------------------------------
| A bit about how QWCL video works |
----------------------------------

QWCL has the built-in ability to draw into windows (both normal, framed 
desktop windows and fullscreen, borderless windows).  It also has
built- in support for VGA 320x200 graphics, and supports DirectDraw,
VESA VBE 2.0 and VESA VBE/AF (Accelerator Functions) graphics modes,
if those are available.

QWCL does not require DirectDraw, but in order for DirectDraw modes to
be available, you must have DirectDraw installed; some systems come
with it preinstalled, but if it's not on your system, you can download
it from http://www.microsoft.com/mediadev/download/directx.exe (the
exact URL may vary), and install it.

QWCL does not require VESA VBE, but in order for VESA VBE modes to be
available, your graphics card must be VESA VBE 2.0 or VBE/AF
compliant; a VESA driver can either be built into the BIOS of your
graphics card, or loadable via software.  If you don't have a VESA VBE
driver, Scitech Display Doctor, available from Scitech Software, will
update most graphics cards to VESA VBE 2.0 and VBE/AF.


SciTech Display Doctor
----------------------
If you are having problems with your video drivers, or if you would
like to take a shot at improving your video performance in QWCL, you may
want to try out SciTech Display Doctor (SDD).  SDD works on just about
any graphics card and it can do several things that can make QWCL run
better on your system:

1. It will update your graphics card to be compatible with VESA VBE
2.0 and VESA VBE/AF (Accelerator Functions). These modes will usually
give you the best performance in QWCL (which is often but not always
faster than your current performance).

2. It creates low-resolution modes on your graphics card.
Low-resolution video modes (such as 320x240, 400x300 and 512x384)
allow you to adjust the level of detail in QWCL so you can get the best
balance between performance and image quality.

The latest version of SciTech Display Doctor can be obtained from the
following locations:

www: http://www.scitechsoft.com
ftp: ftp.scitechsoft.com
CIS: GO SCITECH
AOL: Keyword SciTech

SciTech can be contacted at:

email: info@scitechsoft.com

SciTech Software, Inc.
505 Wall Street
Chico, CA  95926-1989
916-894-8400
916-894-9069 FAX


Video modes supported in Win95
------------------------------
What all this means is that on Win95, QWCL will always be able to run in
the following modes:

1)  in a window
2)  fullscreen 320x200 VGA mode 0x13
3)  fullscreen high-resolution of some sort

Category #3 can be any of several configurations.  On Win95, if either
DirectDraw or VESA VBE modes are available, then all the DirectDraw
and VESA modes will be presented as high-res choices.  (320x200 will
always default to VGA mode 0x13.)  In the case that a given resolution
is supported by both DirectDraw and VESA, the VESA mode will be used.
(However, the command-line switch -nowindirect can turn off VESA modes
entirely.)  If neither DirectDraw nor VESA modes are available, then
high-resolution modes will be provided by using fullscreen, borderless
windows in whatever resolutions the Windows driver supports, usually
starting at 640x480 and going up.


Video Modes Supported in Windows NT
-----------------------------------
NT is similar but not identical, because neither VESA VBE modes nor
VGA mode 0x13 are available.  On NT, QWCL will always be able to run in
the following modes:

1)  in a window
2)  fullscreen high-resolution of some sort

On NT, category #2 can be one of two configurations.  If DirectDraw
modes are available, then those will be the high-res choices;
otherwise, fullscreen, borderless windows will be used in whatever
resolutions the driver supports, usually starting at 640x480 and going
up.  Because there is normally no low-resolution mode such as 320x200
or 320x240 on NT, a pseudo low-res mode is created by rendering at
320x240, then stretching the image by doubling it in each direction
while copying it to a 640x480 screen.  However, stretching performance
depends on the driver, and can be slow, so sometimes 640x480 is
actually faster than 320x240 on NT.

The bottom line here is that you can generally just use the Video menu
and pick one of the modes and be happy.  In some cases, though, you
may need to use command-line switches (described next) to get the
types of modes you want.  One useful tip is to go into the console and
do vid_describemodes, which lists all the modes QWCL makes available on
your machine given the command-line switches you've used.  Each mode
is followed by the name of the internal QWCL driver that supports it, so
you can tell which modes are DirectDraw, VESA, and so on, as follows:

WINDOWED: QWCL runs in a normal window
FULLSCREEN DIB: fullscreen borderless window
FULLSCREEN VGA8.DRV: VGA 320x200 mode
FULLSCREEN DDRAW8.DRV: DirectDraw mode
FULLSCREEN LINEAR8.DRV: VESA VBE 2.0+ mode
FULLSCREEN ACCEL8.DRV: VESA VBE/AF (Accelerator Functions) mode
                       (note that QWCL does not take advantage of
                       VBE/AF acceleration; so far as QWCL is
                       concerned VBE/AF is the same as normal VBE)

You can use vid_mode from the console to set any of these modes.  So,
for example, if you see that there are two 320x200 modes (such as one
VGA mode 0x13, normally mode 3, and one VESA mode, normally mode 4),
you can choose the VESA mode, which will often be faster, with
vid_mode 4.  (You can make it the default by setting
_vid_default_mode_win to the mode number.)

There's more to the windowed modes than you might think.  320x240 is
just what you�d expect, but 640x480 is actually rendered at 320x240
and stretched up to 640x480, because most machines can�t handle the
performance demands of real 640x480 rendering.  Likewise, 800x600 is a
stretched 400x300.  Actually, though, vid_mode 2 (the 800x600 mode) is
a user-configurable mode.  By setting the following console variables,
you can change the characteristics of vid_mode 2:

vid_config_x: width of mode 2 window

vid_config_y: height of mode 2 window

vid_stretch_by_2: whether to render at half-resolution in each
direction and stretch up to the specified size in mode 2, or render at
full resolution.

After setting these variables in the console, do a vid_forcemode 2,
and you�ll have the window you specified.  Note that after making
these changes, the new resolution will show up as the third windowed
mode in the Video menu.

If you don't have QWCL mouse play enabled in windowed mode, you can also
go from windowed to fullscreen mode simply by clicking on the maximize
button.  The mode switched to is controlled by the vid_fullscreen_mode
console variable, and defaults to mode 3.

Other video console commands include:

vid_fullscreen: switch to the mode specified by the
vid_fullscreen_mode console variable.

vid_windowed: switch to the mode specified by the vid_windowed_mode
console variable.

Vid_fullscreen and vid_windowed can be bound to keys, so it's possible
to flip between windowed and fullscreen with a single key press.

Also, vid_minimize minimizes the QWCL window if and only if
QWCL is running in a windowed mode.  You can bind a key to
the commands "vid_windowed; wait; vid_minimize" to minimize QWCL
regardless of whether you're running in windowed or fullscreen mode.

You can turn off page flipping by setting the console variable
vid_nopageflip to 1, then setting a new mode.  (Note that the
vid_nopageflip setting does not take effect until the next mode set.)
Some systems run faster with page flipping turned off; also, page
flipping does not work properly on some adapters, and vid_nopageflip
is a workaround for this.  Note that vid_nopageflip is a persistent
variable; it retains its setting until it is explicitly changed again,
even across multiple QWCL sessions.

The vid_forcemode console command sets the specified mode, even if
it's the same as the current mode (normally the mode set only happens
if the new mode differs from the current mode).  This is generally
useful only if you've modified the characteristics of video mode 2
(the configurable window) while you're in mode 2, and want to force
the new characteristics to take effect.

Whenever you switch to running QWCL in a window, the window is
placed at the same location it was in the last time QWCL ran
in a window.  You can reset the window position to the upper left
by using the -resetwinpos command-line switch.  The window position
is stored in the vid_window_x and vid_window_y console variables.



-------------------------------
| Video command-line switches |
-------------------------------

The full list of video-related command-line switches is:

-dibonly: QWCL will use only windows (both normal, framed windows on the
desktop and fullscreen, borderless windows), not any direct hardware
access modes such as DirectDraw or VESA modes, or even VGA 320x200
mode.  This is the closest thing to a guaranteed-to-run fullscreen
mode QWCL has.

-nowindirect: QWCL will not try to use VESA VBE 2.0 modes, or VBE/AF
1.0 or later modes.  Note that if there are both DirectDraw and VESA
modes for a given resolution, QWCL will normally use the VESA mode;
-nowindirect allows DirectDraw modes to be the preferred choice for
all resolutions except 320x200.  This can be useful if QWCL is crashing
because of a buggy VESA driver.

-nodirectdraw: QWCL will not try to use DirectDraw modes.  This can be
useful if QWCL is crashing because of a buggy DirectDraw driver.

-novbeaf: QWCL will not try to use VBE/AF 1.0 or later modes.

-startwindowed: QWCL will come up in a windowed mode, without going
fullscreen even during initialization.

-noforcevga: normally, QWCL uses VGA mode 0x13 for the default 320x200
mode, even if a DirectDraw or VESA 320x200 mode exists.  However,
DirectDraw and VESA modes can be considerably faster than mode 0x13,
because they can set up a linear framebuffer with higher memory
bandwidth.  If you specify -noforcevga, the default 320x200 mode in
the menu will be a DirectDraw or VESA mode if one exists.  This has no
effect on modes selected via the console variable vid_mode, and if
320x200 is already your video mode, -noforcevga doesn't do anything
until you use the menu to select another mode, then select 320x200
again.  (So if your default mode is 320x200 and you then specify
-noforcevga, switch away to some other mode and then back to 320x200
to get the potentially faster 320x200 mode.)  The downside to this
switch is that DirectDraw and VESA modes can cause problems in some
systems, due to driver bugs or hardware incompatibilities; if you
experience problems with this switch, don't use it.

-noautostretch: don't stretch windowed modes selected with
-startwindowed to double resolution.

-nofulldib: don't use fullscreen, borderless windows, even if there
are no DirectDraw or VESA modes available.

-allow360: allow listing of 360-wide modes in the video mode menu.
These are normally filtered out to make sure the menu doesn't get too
full, which could cause high-res modes not to be displayed.

-notriplebuf: prevent triple-buffered page flipping (rather than double-
buffered).  This may result in slower performance, but is a workaround
if you encounter problems with flicker or initialization failure, which
could possibly happen in some modes with some DirectDraw drivers.



----------------------------------
| A bit about how QWCL sound works |
----------------------------------

QWCL can use either DirectSound or Windows wave output to generate
sound.  If DirectSound is available, it is used; if not, if wave sound
is available it is used; and if neither is available, there is no
sound.  DirectSound results in the best sound quality, and also the
lowest-latency sound; use it if you can, because you will be happier
with the results.  (Note, though, that no NT sound drivers yet support
DirectSound.)  Wave sound will often have high latency, lagging the
events that generate sound by hundreds of milliseconds on some
machines.

You can tell what kind of sound QWCL uses on your system by looking at
the startup portion of the console; you will see either "DirectSound
initialized" or "Wave sound initialized" (neither message is printed
if there's no sound).  Any sound failure messages will also be printed
in the startup portion of the console.

Note that QWCL generates sound only when it is the active app, the one
with the input focus.



-------------------------------
| Sound command-line switches |
-------------------------------

The full list of sound-related command-line switches is:

-wavonly: don�t use DirectSound, but use wave sound if available.
Note that wave sound is generally faster than DirectSound, but has
considerably greater latency.  This switch is redundant on NT, because
all sound output on current NT drivers is wave sound.

-nosound: don�t output any sound.

-primarysound: use DirectSound primary buffer output.  This is
generally faster than normal secondary buffer output, but does not
work in some systems, and produces odd sound glitches on minimization
and focus switching in other systems.  Use it at your own risk, and
please do not report sound bugs if you're using this switch.

-snoforceformat: QWCL will not try to force the sound hardware to 11
KHz, 16 bits per sample.  This may be useful if DirectSound is failing
for no apparent reason, but generally QWCL will produce better sound and
better performance if this switch is not used.



-----------------------
| Notes on networking |
-----------------------

The winsock TCP/IP driver will not cause a dial-up internet connection
to automatically start up when Quake is started.  If you start Quake
with it inactive, the connection will be activated when you either try
to connect to a server or search for local servers.

The local IP address will not always be known at startup.  If it is
currently unknown the menu will display "INADDR_ANY".  This will be
replaced with the real address when it is known.  The IP address will
become known when you try to connect to a server, you search for local
servers, or you start a server.

For multi-homed machines (machines with more than one network adapter
and IP adress), you can force QWCL to bind to a specific IP
address.  There is a command line option "-ip" that takes an IP
address as its parameter.



----------------------
| Notes on the mouse |
----------------------

If DirectInput is installed and functioning, QWCL can use it for
mouse input, but does not do so automatically because DirectInput does
not work properly on all systems.  DirectInput can be enabled via the
command-line switch -dinput.  If DirectInput is not available or is
not enabled, QWCL uses the normal Windows mouse APIs instead.
DirectInput provides slightly smoother motion; also, it tends to be
more responsive to fast spinning motions, and we recommend that you use
it if it works properly on your system.  You can determine if QWCL uses
DirectInput on your system when you use -dinput by checking for
"DirectInput initialized" in the startup console text.  If not, you
might try installing DirectX 3 (note, though, that as I write this
there is no released DirectInput support for Windows NT, only Win95).