diff --git a/doc/3dfx.txt b/doc/3dfx.txt new file mode 100644 index 000000000..404aa9a10 --- /dev/null +++ b/doc/3dfx.txt @@ -0,0 +1,69 @@ +GLQuake Drivers + +Graphics Subsystem: Voodoo Graphics or Voodoo Rush + +Copyright ( 1997 3Dfx Interactive, Inc. ) +All Rights Reserved + +3Dfx Interactive, Inc. +www: www.3dfx.com +news: news.3dfx.com + +----------------------------------------------------------------------- +NOTE: GLQuake requires DirectX support DirectSound. DirectX can be +installed from the media provided with your Voodoo Based 3D Accelerator. + +Glide 2.31 or HIGHER runtime drivers *MUST* be installed to use this +GLQuake driver. Please download these drivers from your board +manufacturer OR unsupported drivers from http://www.3dfx.com +----------------------------------------------------------------------- + +Release Notes for GLQuake's mini-GL driver + +What's in the distribution? +--------------------------- + +This distribution contains GLQuake Drivers for Voodoo Based 3D +Accelerators. These drivers were tested on the following boards: + +Voodoo Graphics: +- Quantum 3D Obsidian +- Diamond Monster 3D +- Orchid Righteous 3D +- Deltron Realvision Flash 3D +- Guillemot MaxiGamer +- Skywell Magic 3D + +Voodoo Rush: +- Hercules Stringray 128-3D +- Intergraph Intense 3D Voodoo +- Jazz Multimedia Adrenaline Rush + +NOTE: The enclosed drivers are not meant to replace any Direct3D or +Glide drivers provided by your Voodoo Graphics card manufacturer. +Please obtain supported drivers from your board manufacturer. + +OEMSR2 and NT users: Do NOT replace OPENGL32.DLL located in your +Windows\SYSTEM directory. + +Requirements +------------ + +- Voodoo Graphics or Voodoo Rush Based 3D Accelerator +- Windows 95 (Windows NT is supported for Voodoo Rush) +- A PC with a Pentium 90 or higher CPU +- 16MB of RAM +- 2D Video card set at 16 bit color + +Support and Frequently Asked Questions +-------------------------------------- + +GLQuake is currently unsupported. You may however find answers to +questions on various Quake dedicated websites. 3Dfx provides a GLQuake +newsgroup on news.3dfx.com (Newsgroup name is 3dfx.games.glquake ) to +discuss GLQuake with other users. 3Dfx also provides a regularly +updated GLQuake FAQ at: http://www.3dfx.com/game_dev/quake_faq.html + + +Voodoo Graphics and Voodoo Rush are trademarks of 3Dfx Interactive, Inc. +All other trademarks are the property of their respective owners. \ No newline at end of file diff --git a/doc/cvarlist.txt b/doc/cvarlist.txt new file mode 100644 index 000000000..d0cba717f --- /dev/null +++ b/doc/cvarlist.txt @@ -0,0 +1,1696 @@ +Cvar : _snd_mixahead +Targets : all clients +Category : sound +Type : Number +Default : 0.1 +Description : + +Cvar : _vid_default_mode +Targets : +Category : +Type : Number +Default : 0 +Description : + +Cvar : _vid_default_mode_win +Targets : +Category : +Type : Number +Default : 3 +Description : + +Cvar : _vid_wait_override +Targets : +Category : +Type : +Default : 0 +Description : + +Cvar : _windowed_mouse +Targets : +Category : +Type : Boolean +Default : varies +Description : + +Cvar : allow_download +Targets : +Category : +Type : +Default : 1 +Description : + +Cvar : allow_download_maps +Targets : +Category : +Type : +Default : 1 +Description : + +Cvar : allow_download_models +Targets : +Category : +Type : +Default : 1 +Description : + +Cvar : allow_download_skins +Targets : +Category : +Type : +Default : 1 +Description : + +Cvar : allow_download_sounds +Targets : +Category : +Type : +Default : 1 +Description : + +Cvar : ambient_fade +Targets : +Category : +Type : +Default : 100 +Description : + +Cvar : ambient_level +Targets : +Category : +Type : float +Default : 0.3 +Description : Ambient sound volume + +Cvar : baseskin +Targets : +Category : +Type : +Default : base +Description : + +Cvar : bgmbuffer +Targets : +Category : +Type : +Default : 4096 +Description : + +Cvar : bgmvolume +Targets : +Category : +Type : +Default : 1 +Description : + +Cvar : block_switch +Targets : +Category : +Type : +Default : 0 +Description : + +Cvar : bottomcolor +Targets : +Category : +Type : +Default : 0 +Description : + +Cvar : cl_anglespeedkey +Targets : +Category : +Type : +Default : 1.5 +Description : + +Cvar : cl_autoexec +Targets : +Category : +Type : Boolean +Default : 0 +Description: : whether or not to exec autoexec.cfg on gamedir change + +Cvar : cl_backspeed +Targets : +Category : +Type : +Default : 200 +Description : + +Cvar : cl_bob +Targets : +Category : +Type : +Default : 0.02 +Description : + +Cvar : cl_bobcycle +Targets : +Category : +Type : +Default : 0.6 +Description : + +Cvar : cl_bobup +Targets : +Category : +Type : +Default : 0.5 +Description : + +Cvar : cl_camera_maxpitch +Targets : +Category : +Type : +Default : 10 +Description : + +Cvar : cl_camera_maxyaw +Targets : +Category : +Type : +Default : 30 +Description : + +Cvar : cl_chasecam +Targets : +Category : +Type : +Default : 0 +Description : + +Cvar : cl_chatmode +Targets : all clients +Category : +Type : Number +Default : 1 +Description : Controls when console text will be treated as a chat message + : 0-never, 1-always, 2-smart + +Cvar : cl_crossx +Targets : +Category : +Type : +Default : 0 +Description : + +Cvar : cl_crossy +Targets : +Category : +Type : +Default : 0 +Description : + +Cvar : cl_forwardspeed +Targets : +Category : +Type : +Default : 200 +Description : + +Cvar : cl_hightrack +Targets : +Category : +Type : +Default : 0 +Description : + +Cvar : cl_hudswap +Targets : +Category : +Type : +Default : 0 +Description : + +Cvar : cl_maxfps +Targets : +Category : +Type : +Default : 0 +Description : + +Cvar : cl_movespeedkey +Targets : +Category : +Type : +Default : 2.0 +Description : + +Cvar : cl_nodelta +Targets : +Category : +Type : +Default : 0 +Description : + +Cvar : cl_nopred +Targets : +Category : +Type : +Default : 0 +Description : + +Cvar : cl_pitchspeed +Targets : +Category : +Type : +Default : 150 +Description : + +Cvar : cl_predict_players +Targets : +Category : +Type : +Default : 1 +Description : + +Cvar : cl_predict_players2 +Targets : +Category : +Type : +Default : 1 +Description : + +Cvar : cl_rollangle +Targets : +Category : +Type : +Default : 2.0 +Description : + +Cvar : cl_rollspeed +Targets : +Category : +Type : +Default : 200 +Description : + +Cvar : cl_sbar +Targets : +Category : +Type : +Default : 0 +Description : + +Cvar : cl_shownet +Targets : +Category : +Type : +Default : 0 +Description : + +Cvar : cl_sidespeed +Targets : +Category : +Type : +Default : 350 +Description : + +Cvar : cl_solid_players +Targets : +Category : +Type : +Default : 1 +Description : + +Cvar : cl_timeout +Targets : +Category : +Type : +Default : 60 +Description : + +Cvar : cl_upspeed +Targets : +Category : +Type : +Default : 200 +Description : + +Cvar : cl_verstring +Targets : all clients +Category : client screen ui +Type : string +Default : varies +Description : Client version string + +Cvar : cl_warncmd +Targets : +Category : +Type : +Default : 1 +Description : + +Cvar : cl_yawspeed +Targets : +Category : +Type : +Default : 140 +Description : + +Cvar : con_notifytime +Targets : +Category : +Type : +Default : 3 +Description : + +Cvar : crosshair +Targets : +Category : +Type : +Default : 0 +Description : + +Cvar : crosshaircolor +Targets : +Category : +Type : +Default : 79 +Description : + +Cvar : d_mipcap +Targets : +Category : +Type : +Default : 0 +Description : + +Cvar : d_mipscale +Targets : +Category : +Type : +Default : 1 +Description : + +Cvar : d_subdiv16 +Targets : +Category : +Type : +Default : 1 +Description : + +Cvar : deathmatch +Targets : +Category : +Type : +Default : 1 +Description : + +Cvar : developer +Targets : +Category : +Type : +Default : 0 +Description : + +Cvar : entlatency +Targets : +Category : +Type : +Default : 20 +Description : + +Cvar : filterban +Targets : +Category : +Type : +Default : 1 +Description : + +Cvar : fov +Targets : +Category : +Type : +Default : 90 +Description : + +Cvar : fraglimit +Targets : +Category : +Type : +Default : 0 +Description : + +Cvar : freelook +Targets : +Category : +Type : Boolean +Default : 0 +Description : 1 = force mouse look on (exactly like in Q2/Q3) + +Cvar : fs_globalcfg +Targets : all +Category : filesystem +Type : string +Default : varies +Description : global configuration file + +Cvar : fs_sharepath +Targets : all +Category : filesystem +Type : string +Default : . +Description : location of shared (read-only) game directories + +Cvar : fs_userpath +Targets : all +Category : filesystem +Type : string +Default : . +Description : location of local user (read/write) game directories + +Cvar : gamma +Targets : +Category : +Type : +Default : 1 +Description : + +Cvar : gl_affinemodels +Targets : +Category : +Type : +Default : 0 +Description : + +Cvar : gl_clear +Targets : +Category : +Type : +Default : 0 +Description : + +Cvar : gl_colorlights +Targets : gl clients +Category : gl renderer +Type : Boolean +Default : 1 +Description : whether or not to use RGB lightmaps + +Cvar : gl_conalpha +Targets : gl clients +Category : gl console ui +Type : number +Default : 0.6 +Description : alpha value for console when fully lowered + +Cvar : gl_conspin +Targets : gl clients +Category : gl console ui +Type : number +Default : 0 +Description : speed at which the console spins + +Cvar : gl_constretch +Targets : gl clients +Category : gl console ui +Type : boolean +Default : 0 +Description : whether to slide or stretch the console + +Cvar : gl_cshiftpercent +Targets : +Category : +Type : +Default : 100 +Description : + +Cvar : gl_cull +Targets : +Category : +Type : +Default : 1 +Description : + +Cvar : gl_flashblend +Targets : +Category : +Type : +Default : 0 +Description : + +Cvar : gl_keeptjunctions +Targets : +Category : +Type : +Default : 1 +Description : + +Cvar : gl_max_size +Targets : +Category : +Type : +Default : 1024 +Description : + +Cvar : gl_nobind +Targets : +Category : +Type : +Default : 0 +Description : + +Cvar : gl_nocolors +Targets : +Category : +Type : +Default : 0 +Description : + +Cvar : gl_picmip +Targets : +Category : +Type : +Default : 0 +Description : + +Cvar : gl_playermip +Targets : +Category : +Type : +Default : 0 +Description : + +Cvar : gl_polyblend +Targets : +Category : +Type : +Default : 1 +Description : + +Cvar : gl_reporttjunctions +Targets : +Category : +Type : +Default : 0 +Description : + +Cvar : gl_smoothmodels +Targets : +Category : +Type : +Default : 1 +Description : + +Cvar : gl_subdivide_size +Targets : +Category : +Type : +Default : 128 +Description : + +Cvar : gl_texsort +Targets : +Category : +Type : +Default : 1 +Description : + +Cvar : gl_triplebuffer +Targets : +Category : +Type : +Default : 1 +Description : + +Cvar : host_speeds +Targets : +Category : +Type : +Default : 0 +Description : + +Cvar : hostname +Targets : +Category : +Type : string +Default : unnamed +Description : + +Cvar : joyadvanced +Targets : +Category : +Type : +Default : 0 +Description : + +Cvar : joyadvaxisr +Targets : +Category : +Type : +Default : 0 +Description : + +Cvar : joyadvaxisu +Targets : +Category : +Type : +Default : 0 +Description : + +Cvar : joyadvaxisv +Targets : +Category : +Type : +Default : 0 +Description : + +Cvar : joyadvaxisx +Targets : +Category : +Type : +Default : 0 +Description : + +Cvar : joyadvaxisy +Targets : +Category : +Type : +Default : 0 +Description : + +Cvar : joyadvaxisz +Targets : +Category : +Type : +Default : 0 +Description : + +Cvar : joyforwardsensitivity +Targets : +Category : +Type : +Default : -1.0 +Description : + +Cvar : joyforwardthreshold +Targets : +Category : +Type : +Default : 0.15 +Description : + +Cvar : joyname +Targets : +Category : +Type : +Default : joystick +Description : + +Cvar : joypitchsensitivity +Targets : +Category : +Type : +Default : 1.0 +Description : + +Cvar : joypitchthreshold +Targets : +Category : +Type : +Default : 0.15 +Description : + +Cvar : joysidesensitivity +Targets : +Category : +Type : +Default : -1.0 +Description : + +Cvar : joysidethreshold +Targets : +Category : +Type : +Default : 0.15 +Description : + +Cvar : joystick +Targets : +Category : +Type : +Default : 0 +Description : + +Cvar : joywwhack1 +Targets : +Category : +Type : +Default : 0.0 +Description : + +Cvar : joywwhack2 +Targets : +Category : +Type : +Default : 0.0 +Description : + +Cvar : joyyawsensitivity +Targets : +Category : +Type : +Default : -1.0 +Description : + +Cvar : joyyawthreshold +Targets : +Category : +Type : +Default : 0.15 +Description : + +Cvar : loadas8bit +Targets : +Category : +Type : +Default : 0 +Description : + +Cvar : localid +Targets : +Category : +Type : string +Default : "" +Description : + +Cvar : lookspring +Targets : +Category : +Type : +Default : 0 +Description : + +Cvar : lookstrafe +Targets : +Category : +Type : +Default : 0 +Description : + +Cvar : m_filter +Targets : +Category : +Type : +Default : 0 +Description : + +Cvar : m_forward +Targets : +Category : +Type : +Default : 1 +Description : + +Cvar : m_pitch +Targets : +Category : +Type : +Default : 0.022 +Description : + +Cvar : m_side +Targets : +Category : +Type : +Default : 0.8 +Description : + +Cvar : m_yaw +Targets : +Category : +Type : +Default : 0.022 +Description : + +Cvar : maxclients +Targets : +Category : +Type : +Default : 8 +Description : + +Cvar : maxspectators +Targets : +Category : +Type : +Default : 8 +Description : + +Cvar : msg +Targets : +Category : +Type : +Default : 1 +Description : + +Cvar : name +Targets : +Category : +Type : string +Default : unnamed +Description : + +Cvar : noaim +Targets : +Category : +Type : +Default : 0 +Description : + +Cvar : noskins +Targets : +Category : +Type : +Default : 0 +Description : + +Cvar : nosound +Targets : +Category : +Type : +Default : 0 +Description : + +Cvar : password +Targets : +Category : +Type : +Default : +Description : + +Cvar : pausable +Targets : +Category : +Type : +Default : 1 +Description : + +Cvar : precache +Targets : +Category : +Type : +Default : 1 +Description : + +Cvar : pushlatency +Targets : +Category : +Type : +Default : -999 +Description : + +Cvar : qport +Targets : +Category : +Type : +Default : 0 +Description : + +Cvar : r_aliastransadj +Targets : +Category : +Type : +Default : 100 +Description : + +Cvar : r_aliastransbase +Targets : +Category : +Type : +Default : 200 +Description : + +Cvar : r_ambient +Targets : +Category : +Type : +Default : 0 +Description : + +Cvar : r_clearcolor +Targets : +Category : +Type : +Default : 2 +Description : + +Cvar : r_drawentities +Targets : +Category : +Type : +Default : 1 +Description : + +Cvar : r_drawflat +Targets : +Category : +Type : +Default : 0 +Description : + +Cvar : r_draworder +Targets : +Category : +Type : +Default : 0 +Description : + +Cvar : r_drawviewmodel +Targets : +Category : +Type : +Default : 1 +Description : + +Cvar : r_dspeeds +Targets : +Category : +Type : +Default : 0 +Description : + +Cvar : r_dynamic +Targets : +Category : +Type : +Default : 1 +Description : + +Cvar : r_fullbright +Targets : +Category : +Type : +Default : 0 +Description : + +Cvar : r_graphheight +Targets : +Category : +Type : +Default : 15 +Description : + +Cvar : r_lightmap +Targets : +Category : +Type : +Default : 0 +Description : + +Cvar : r_maxedges +Targets : +Category : +Type : +Default : 0 +Description : + +Cvar : r_maxsurfs +Targets : +Category : +Type : +Default : 0 +Description : + +Cvar : r_mirroralpha +Targets : +Category : +Type : +Default : 1 +Description : + +Cvar : r_netgraph +Targets : +Category : +Type : +Default : 0 +Description : + +Cvar : r_norefresh +Targets : +Category : +Type : +Default : 0 +Description : + +Cvar : r_novis +Targets : +Category : +Type : +Default : 0 +Description : + +Cvar : r_numedges +Targets : +Category : +Type : +Default : 0 +Description : + +Cvar : r_numsurfs +Targets : +Category : +Type : +Default : 0 +Description : + +Cvar : r_polymodelstats +Targets : +Category : +Type : +Default : 0 +Description : + +Cvar : r_reportedgeout +Targets : +Category : +Type : +Default : 0 +Description : + +Cvar : r_reportsurfout +Targets : +Category : +Type : +Default : 0 +Description : + +Cvar : r_shadows +Targets : +Category : +Type : +Default : 0 +Description : + +Cvar : r_skyname +Targets : +Category : +Type : string +Default : "none" +Description : name of the current skybox + +Cvar : r_speeds +Targets : +Category : +Type : +Default : 0 +Description : + +Cvar : r_timegraph +Targets : +Category : +Type : +Default : 0 +Description : + +Cvar : r_wateralpha +Targets : +Category : +Type : +Default : 1 +Description : + +Cvar : r_waterwarp +Targets : +Category : +Type : +Default : 1 +Description : + +Cvar : r_zgraph +Targets : +Category : +Type : +Default : 0 +Description : + +Cvar : rate +Targets : +Category : +Type : +Default : 2500 +Description : + +Cvar : rcon_address +Targets : +Category : +Type : +Default : +Description : + +Cvar : rcon_password +Targets : +Category : +Type : +Default : +Description : + +Cvar : registered +Targets : all +Category : +Type : boolean +Default : 0 +Description : should be set to 1 if you have Id Software's registered game + +Cvar : samelevel +Targets : +Category : +Type : +Default : 0 +Description : + +Cvar : scr_allowsnap +Targets : +Category : +Type : +Default : 1 +Description : + +Cvar : scr_centertime +Targets : +Category : +Type : +Default : 2 +Description : + +Cvar : scr_conspeed +Targets : +Category : +Type : +Default : 300 +Description : + +Cvar : scr_printspeed +Targets : +Category : +Type : +Default : 8 +Description : + +Cvar : sensitivity +Targets : +Category : +Type : +Default : 3 +Description : + +Cvar : show_fps +Targets : +Category : +Type : +Default : 0 +Description : + +Cvar : showdrop +Targets : +Category : +Type : +Default : 0 +Description : + +Cvar : showpackets +Targets : +Category : +Type : +Default : 0 +Description : + +Cvar : showpause +Targets : +Category : +Type : +Default : 1 +Description : + +Cvar : showram +Targets : +Category : +Type : +Default : 1 +Description : + +Cvar : showturtle +Targets : +Category : +Type : +Default : 0 +Description : + +Cvar : skin +Targets : +Category : +Type : +Default : +Description : + +Cvar : snd_noextraupdate +Targets : +Category : +Type : +Default : 0 +Description : + +Cvar : snd_show +Targets : +Category : +Type : +Default : 0 +Description : + +Cvar : spawn +Targets : +Category : +Type : +Default : 0 +Description : + +Cvar : spectator +Targets : +Category : +Type : +Default : +Description : + +Cvar : spectator_password +Targets : +Category : +Type : +Default : +Description : + +Cvar : sv_accelerate +Targets : +Category : +Type : +Default : 10 +Description : + +Cvar : sv_aim +Targets : +Category : +Type : +Default : 2 +Description : + +Cvar : sv_airaccelerate +Targets : +Category : +Type : +Default : 0.7 +Description : + +Cvar : sv_friction +Targets : +Category : +Type : +Default : 4 +Description : + +Cvar : sv_gravity +Targets : +Category : +Type : +Default : 800 +Description : + +Cvar : sv_highchars +Targets : Server +Category : +Type : Boolean +Default : 1 +Description : Allow high-ASCII characters in serverinfo keys + +Cvar : sv_mapcheck +Targets : +Category : +Type : +Default : 1 +Description : + +Cvar : sv_maxspeed +Targets : +Category : +Type : +Default : 320 +Description : + +Cvar : sv_maxtic +Targets : +Category : +Type : +Default : 0.1 +Description : + +Cvar : sv_maxvelocity +Targets : +Category : +Type : +Default : 2000 +Description : + +Cvar : sv_mintic +Targets : +Category : +Type : +Default : 0.03 +Description : + +Cvar : sv_phs +Targets : +Category : +Type : +Default : 1 +Description : + +Cvar : sv_spectalk +Targets : +Category : +Type : +Default : 1 +Description : + +Cvar : sv_spectatormaxspeed +Targets : +Category : +Type : +Default : 500 +Description : + +Cvar : sv_stopspeed +Targets : +Category : +Type : +Default : 100 +Description : + +Cvar : sv_timekick +Targets : +Category : +Type : Boolean +Default : 3 +Description : Time cheat protection + +Cvar : sv_timekick_fuzz +Targets : +Category : +Type : float +Default : 15 +Description : Timecheat sensitivity (15 = 1.5%) + +Cvar : sv_timekick_interval +Targets : +Category : +Type : float +Default : 30 +Description : Timecheat check interval + +Cvar : sv_wateraccelerate +Targets : +Category : +Type : +Default : 10 +Description : + +Cvar : sv_waterfriction +Targets : +Category : +Type : +Default : 4 +Description : + +Cvar : sys_extrasleep +Targets : +Category : +Type : +Default : 0 +Description : + +Cvar : sys_nostdout +Targets : +Category : +Type : +Default : 0 +Description : + +Cvar : sys_sleep +Targets : Win32 +Category : +Type : integer +Default : 8 for Win9x, 0 for WinNT +Description : Numbers of milliseconds to try to Sleep() every frame. + : Needed when running the server on localhost in Win9x. + +Cvar : team +Targets : +Category : +Type : +Default : +Description : + +Cvar : teamplay +Targets : +Category : +Type : +Default : 0 +Description : + +Cvar : timelimit +Targets : +Category : +Type : +Default : 0 +Description : + +Cvar : timeout +Targets : +Category : +Type : +Default : 65 +Description : + +Cvar : topcolor +Targets : +Category : +Type : +Default : 0 +Description : + +Cvar : v_centermove +Targets : +Category : +Type : +Default : 0.15 +Description : + +Cvar : v_centerspeed +Targets : +Category : +Type : +Default : 500 +Description : + +Cvar : v_contentblend +Targets : +Category : +Type : +Default : 1 +Description : + +Cvar : v_idlescale +Targets : +Category : +Type : +Default : 0 +Description : + +Cvar : v_ipitch_cycle +Targets : +Category : +Type : +Default : 1 +Description : + +Cvar : v_ipitch_level +Targets : +Category : +Type : +Default : 0.3 +Description : + +Cvar : v_iroll_cycle +Targets : +Category : +Type : +Default : 0.5 +Description : + +Cvar : v_iroll_level +Targets : +Category : +Type : +Default : 0.1 +Description : + +Cvar : v_iyaw_cycle +Targets : +Category : +Type : +Default : 2 +Description : + +Cvar : v_iyaw_level +Targets : +Category : +Type : +Default : 0.3 +Description : + +Cvar : v_kickpitch +Targets : +Category : +Type : +Default : 0.6 +Description : + +Cvar : v_kickroll +Targets : +Category : +Type : +Default : 0.6 +Description : + +Cvar : v_kicktime +Targets : +Category : +Type : +Default : 0.5 +Description : + +Cvar : vid_config_x +Targets : +Category : +Type : +Default : 800 +Description : + +Cvar : vid_config_y +Targets : +Category : +Type : +Default : 600 +Description : + +Cvar : vid_fullscreen +Targets : +Category : +Type : Boolean +Default : 0 +Description : whether or not to run in fullscreen mode + +Cvar : vid_fullscreen_mode +Targets : +Category : +Type : +Default : 3 +Description : + +Cvar : vid_mode +Targets : +Category : +Type : +Default : 0 +Description : + +Cvar : vid_mode +Targets : +Category : +Type : +Default : 5 +Description : + +Cvar : vid_nopageflip +Targets : +Category : +Type : +Default : 0 +Description : + +Cvar : vid_redrawfull +Targets : +Category : +Type : +Default : 0 +Description : + +Cvar : vid_stretch_by_2 +Targets : +Category : +Type : +Default : 1 +Description : + +Cvar : vid_wait +Targets : +Category : +Type : +Default : 0 +Description : + +Cvar : vid_waitforrefresh +Targets : +Category : +Type : +Default : 0 +Description : + +Cvar : vid_window_x +Targets : +Category : +Type : +Default : 0 +Description : + +Cvar : vid_window_y +Targets : +Category : +Type : +Default : 0 +Description : + +Cvar : vid_windowed_mode +Targets : +Category : +Type : +Default : 0 +Description : + +Cvar : viewsize +Targets : +Category : +Type : +Default : 100 +Description : + +Cvar : volume +Targets : +Category : +Type : +Default : 0.7 +Description : + +Cvar : watervis +Targets : +Category : +Type : +Default : 0 +Description : + +Cvar : zombietime +Targets : +Category : +Type : +Default : 2 +Description : Number of seconds server ignores client after disconnect + diff --git a/doc/data/comexp.txt b/doc/data/comexp.txt new file mode 100644 index 000000000..06bc4af84 --- /dev/null +++ b/doc/data/comexp.txt @@ -0,0 +1,487 @@ + COMMERCIAL EXPLOITATION LICENSE AGREEMENT FOR QUAKE + + This Commercial Exploitation License Agreement for QUAKE +(the "Agreement") is between Id Software, Inc., a Texas +Corporation, (hereinafter "Id Software") and Licensee (as described +on the signature page hereof) and is made effective beginning on +the date of last signature hereto (the "Effective Date"). + + R E C I T A L S + + WHEREAS, Id Software is the owner and developer of the +computer software game entitled QUAKE; + + WHEREAS, Id Software desires to license certain +non-exclusive rights regarding QUAKE to Licensee; and + + WHEREAS, Licensee desires to receive a license for such +rights. + + T E R M S A N D C O N D I T I O N S + + NOW, THEREFORE, for and in consideration of the mutual +premises contained herein and for other good and valuable +consideration, the receipt and sufficiency of which is hereby +acknowledged, the undersigned parties do hereby agree as follows: + + 1. DEFINITIONS. As used in this Agreement, the parties +hereto agree the words set forth below shall have the specified +meanings: + + a. "Authorized Copy" shall mean one (1) copy of the + Subject Game actually purchased by Licensee from an + Id Software approved retailer; and + + b. "Subject Game" shall mean the full registered + version of QUAKE on a CD-ROM and shall not mean the + shareware or any other version. + + 2. GRANT OF RIGHTS. Id Software hereby grants to +Licensee and Licensee hereby accepts, subject to the provisions and +conditions hereof, a world-wide (except as otherwise provided +herein), non-exclusive, non-transferable, and non-assignable +license to: + + a. publicly display an Authorized Copy in exchange for + rental payment; + + b. run the Authorized Copy so that it will accept + network/modem connections in exchange for payments + from end-users who also must have actually purchased + an Authorized Copy; and + + c. otherwise commercially exploit an Authorized Copy, + except that Licensee shall not copy, reproduce, + manufacture or distribute the Authorized Copy. + + 3. RESERVATION OF RIGHTS AND PROHIBITIONS. Id Software +expressly reserves all rights not granted herein. Under no +circumstances shall Licensee copy, reproduce, manufacture or +distribute (free of charge or otherwise) the Authorized Copy or the +Subject Game. Licensee shall not reverse engineer, decompile, +disassemble, modify or alter the Authorized Copy. Licensee is not +receiving any rights hereunder regarding the Trademark or any +artwork, sound, music or other element of the Subject Game. + + 4. OWNERSHIP. Title to and all ownership rights in and +to the Subject Game, and the QUAKE Trademark (the "Trademark") and +the copyrights, trademarks, patents and other intellectual property +rights related thereto shall remain with Id Software which shall have +the exclusive right to protect the same by copyright or otherwise. +Licensee shall have no ownership rights in or to the Subject Game or +the Trademark and Licensee shall not own any intellectual property +rights regarding the Authorized Copy, including, without limitation, +the copyright regarding the Authorized Copy. Licensee acknowledges +that it only has a limited license to use the Authorized Copy, as +specified in that certain QUAKE Enduser License contained within the +Authorized Copy and as specified in this Agreement. + + 5. TERM AND TERMINATION. + + a. The term of this Agreement and the license granted +herein begins on the Effective Date and shall expire on a date one +(1) calendar year from the Effective Date. + + b. Either party may terminate this Agreement, for any +reason or no reason, on thirty (30) days written notice to the +other party. Termination will be effective on the thirtieth (30th) +day following delivery of the described notice. Notwithstanding +anything to the contrary herein, this Agreement shall immediately +terminate, without the requirement of any notice from Id Software +to Licensee, upon the occurrence of any of the following: (a) if +Licensee shall file a petition in bankruptcy or make an assignment +for the benefit of creditors, or if any bankruptcy proceeding or +assignment for benefit of creditors, shall be commenced against +Licensee and not be dismissed within sixty (60) days after the date +of its commencement; (b) the insolvency of Licensee; (c) the +cessation by Licensee of its business; or (d) the cessation by +Licensee, without the prior written consent of Id Software of the +distribution, manufacture, and sale responsibilities embodied +herein. Further, Id Software may elect to terminate this Agreement +upon the occurrence of any of the following: (1) if Licensee's +business operations are interrupted for forty (40) consecutive +calendar days; or (2) if each of two Id Software audit inspections +during any eighteen (18) month period demonstrates an +understatement by Licensee of Royalty payments due Id Software for +the six (6) month period immediately preceding each such inspection +of five percent (5%) or more. Upon the occurrence of such +terminating event, and the election of Id Software, if necessary, +to cause such termination, this Agreement and any and all rights +thereunder shall terminate without prejudice to any rights or +claims Id Software may have, and all rights hereunder shall +thereupon terminate, revert to and be vested in Id Software. + + 6. EFFECT OF TERMINATION OR EXPIRATION. Termination or +expiration of this Agreement, either by Id Software or +automatically, shall not create any liability against Id Software. +Upon expiration or earlier termination of this Agreement, Licensee +shall have no further right to exercise the rights licensed +hereunder or otherwise acquired in relation to this Agreement. + + 7. INDEMNIFICATION. Licensee hereby agrees to +indemnify, hold harmless and defend Id Software and Id Software's +predecessors, successors, assigns, officers, directors, +shareholders, employees, agents, representatives, licensees, +sublicensees, distributors, attorneys and accountants +(collectively, the "Id Related Parties") from and against any and +all damages, claims, losses, causes of action, liabilities, +lawsuits, judgments and expenses (including, without limitation, +reasonable attorneys' fees and expenses) arising from, relating to +or in connection with a breach of this Agreement by Licensee and +arising from, relating to or in connection with the Licensee's use +or non-use of the Authorized Copy (collectively, the "Claims"). Id +Software agrees to notify Licensee of any such Claims within a +reasonable time after Id Software learns of same. Licensee, at its +own expense, shall defend Id Software and the Id Related Parties +from any and all Claims. Id Software and the Id Related Parties +reserve the right to participate in any defense of the Claims with +counsel of their choice, and at their own expense. In the event +Licensee fails to provide a defense, then Licensee shall be +responsible for paying the attorneys' fees and expenses incurred by +Id Software and the Id Related Parties regarding the defense of the +Claims. Id Software and the Id Related Parties, as applicable, +agree to reasonably assist in the defense of the Claims. No +settlement by Licensee of any Claims shall be valid unless Licensee +receives the prior written consent of Id Software and the Id +Related Parties, as applicable, to any such settlement. + + 8. CONFIDENTIALITY. It is understood and agreed that +any proprietary information of Id Software that may from time to +time be made available or become known to Licensee is to be treated +as confidential, is to be used solely in connection with Licensee's +performance under this Agreement, and is to be disclosed only to +employees of Licensee who have a need for access. Such proprietary +information shall include, but not be limited to, trade secrets, +release information, financial information, personnel information, +and the like. Reasonable measures shall be taken by Licensee to +protect the confidentiality of Id Software's proprietary +information and any memoranda or papers containing proprietary +information of Id Software's that Licensee may receive are to be +returned to Id Software upon request. Licensee's obligations and +duties under this paragraph shall survive expiration or earlier +termination of this Agreement. Licensee shall obtain from its +employees an undertaking in a form which may be supplied by Id +Software, and which is subject to Id Software's prior written +approval, not to use or disclose to any third party any information +or knowledge concerning the business of Id Software which may be +communicated to such employees. + + 9. LIMITATION OF LIABILITY. ID SOFTWARE EXPRESSLY +DISCLAIMS ALL WARRANTIES NOT PROVIDED BY ID SOFTWARE HEREUNDER. +UNDER NO CIRCUMSTANCES SHALL ID SOFTWARE BE LIABLE TO LICENSEE FOR +ACTUAL, SPECIAL, INCIDENTAL, CONSEQUENTIAL OR PUNITIVE DAMAGES OR +ANY OTHER DAMAGES, WHETHER OR NOT ID SOFTWARE RECEIVES NOTICE OF +ANY SUCH DAMAGES. + + 10. COMPLIANCE WITH APPLICABLE LAWS. In performing +under this Agreement, Licensee agrees to comply with all applicable +laws, [including, without limitation, 22 U.S.C., 2778 and 22 +U.S.C. C.F.R. Parts 120-130 (1995)] regulations, ordinances and +statutes, including, but not limited to, the import/export laws and +regulations of the United States and its governmental and +regulatory agencies (including, without limitation, the Bureau of +Export Administration and the U.S. Department of Commerce) and all +applicable international treaties and laws. Further, Licensee +shall defend, indemnify and hold harmless Id Software from any and +all sales tax, tariffs and/or duties in connection with Licensee's +performance hereunder. + + 11. SPECIFIC UNDERTAKINGS BY LICENSEE. In addition to +the obligations of Licensee otherwise set forth in this Agreement, +during the term of this Agreement, and thereafter where specified, +Licensee agrees that: + + a. It will not attack the title of Id Software to the +Subject Game or the Trademark and any copyright, patent or +trademark or other intellectual property right related thereto and +it will not attack the validity of the license granted hereunder +during the term hereof or thereafter; and + + b. It will promptly inform Id Software of any +unauthorized use of the Authorized Copy, the Subject Game and the +Trademark and any portions thereof and reasonably assist Id +Software in the enforcement of any rights Id Software may have +against such unauthorized users. + + 12. FINANCIAL OBLIGATIONS AND ACCOUNTING. + + a. Payment of Royalties. Licensee agrees to pay Id +Software a royalty ("Royalty") at the rate of twelve and one-half +percent (12.5%) of Net Income. The term "Net Income" shall mean +all revenue received by Licensee from the commercial use of the +Authorized Copy, less only Licensee's actual, documented costs +relating directly to such use. A Royalty shall only be due for +those months in which Licensee's gross revenue from QUAKE +distribution exceeds U.S. Five Thousand Dollars ($5,000.00) and in +such months Licensee shall pay a full Royalty on all revenue +received. + + b. Rendition of Statements. Licensee shall account to +Id Software with regard to transactions hereunder within forty-five +(45) days following the conclusion of each calendar quarter. +Licensee hereby represents and warrants that such statements of +account to be prepared shall be true and correct. The accounts +shall show in summary form the appropriate calculations relating to +the computation of Royalties, if any. The statements shall also +show the gross revenue received by Licensee per month. The +Royalties payable to Id Software hereunder shall be remitted with +the particular statement indicating such amount to be due. All +statements hereunder shall be deemed rendered when deposited, +postage prepaid, in the United States mail, addressed to Id +Software at Id Software's address set forth on the signature page +hereof. + + c. Books of Account and Audits. Licensee shall keep +books of account relating to the commercial use of the Authorized +Copy on the basis of generally accepted accounting principles and +shall maintain such books of account for a period of at least two +(2) years after the expiration or earlier termination of this +Agreement; provided, however, that Licensee shall not be required +to keep such records longer than seven (7) years from their date of +origination. Id Software may, upon reasonable notice and at its +own expense, audit the applicable records at Licensee's office, in +order to verify statements rendered hereunder. Any such audit +shall take place during reasonable business hours and in such +manner so as not to interfere with Licensee's normal business +activities. Id Software agrees that such information inspected +and/or copied on behalf of Id Software hereunder shall be used only +for the purpose of determining the accuracy of the statements, and +shall be revealed only to such officers, directors, employees, +agents and/or representatives of Id Software as necessary to verify +the accuracy of the statements. If in an audit of Licensee's books +and records it is determined that there is a short fall of ten +percent (10%) or more in Royalties reported for any calendar +quarter, in addition to payment of such short fall and interest as +may be due, as provided herein, Licensee shall reimburse Id +Software for the full out-of-pocket costs of the audit including +reasonable travel costs and expenses; provided, however, that the +amount of reimbursement paid by Licensee shall not exceed U.S. +Fifteen Thousand Dollars ($15,000.00) for any audit. + + d. Payment of the Royalty. Licensee assumes all risks +associated with fluctuations in foreign currency exchange rates. +Licensee shall pay and agrees to pay all sums due Id Software in +United States Dollars. With respect to Royalties due for +commercial use outside the United States, other currencies shall be +exchanged at the expense of Licensee into United States Dollars +using the bid price quoted at the Citibank, N.A. of New York, New +York, for the purchase of United States Dollars at the close of +business on the last day of the calendar quarter during which any +amounts accrue. Payment of the Royalties shall be made in Dallas +County, Texas. + + e. Interest. If Id Software does not receive the +applicable Royalty payment on or before the due date of such +payment, Licensee agrees to pay and shall pay interest on Royalties +owed to Id Software from such date as specified in the following +sentence at a rate per annum equal to the Index Rate. For purposes +of clarification, the interest will begin to accrue on the first +(1st) day following the due date of the Royalty payment, unless the +Royalty payment is paid timely. The "Index Rate" shall be the +prime rate as published in The Wall Street Journal's "Money Rates" +table. If multiple prime rates are quoted in the table, then the +highest prime rate will be the Index Rate. In the event that the +prime rate is no longer published in the "Money Rates" table, then +Id Software will choose a substitute Index Rate which is based upon +comparable information. The applicable interest rate will be +determined and take effect on the first day of each month. + + NOTHING HEREIN SHALL BE CONSTRUED AS A REQUEST OR DEMAND BY +ID SOFTWARE OF INTEREST AT A RATE HIGHER THAN ALLOWED BY APPLICABLE +LAW. IT IS THE INTENT OF THE PARTIES HERETO THAT NO INTEREST BE +CHARGED HEREUNDER WHICH EXCEEDS THE MAXIMUM RATE ALLOWED BY +APPLICABLE LAW. IF THE RATE REFERENCED ABOVE EXCEEDS THE MAXIMUM +RATE ALLOWED BY APPLICABLE LAW, THEN THE INTEREST RATE MADE +APPLICABLE HEREIN SHALL BE THE MAXIMUM RATE ALLOWED BY APPLICABLE +LAW. + + 13. SUBLICENSE. Licensee shall not be entitled to +sublicense any of its rights under this Agreement. + + 14. GOODWILL. Licensee recognizes the great value of +the goodwill associated with the Subject Game and the Trademark, +and acknowledges that such goodwill, now existing and hereafter +created, exclusively belongs to Id Software and that the Trademark +has acquired a secondary meaning in the mind of the public. + + 15. REMEDIES. In the event of a breach of this +Agreement by Id Software, Licensee's sole remedy shall be to +terminate this Agreement. In the event of a breach by Licensee of +this Agreement, Id Software may pursue the remedies to which it is +entitled under applicable law, including, but not limited to, +termination of this Agreement. Licensee agrees that its failure to +comply with the terms of this Agreement upon expiration or earlier +termination hereof or Licensee's unauthorized use of the Authorized +Copy may result in immediate and irreparable damage to Id Software +for which there is no adequate remedy at law, and in the event of +such failure by Licensee, Id Software shall be entitled to +injunctive relief. Pursuit of any remedy by Id Software shall not +constitute a waiver of any other right or remedy of Id Software +under this Agreement or under applicable law. Termination of this +Agreement shall not be a pre-condition to Id Software pursuing its +other remedies for breach. + + 16. LICENSEE'S WARRANTIES. Licensee warrants and +represents that it has full legal rights to enter into this +Agreement and to perform its obligations hereunder and that it will +comply, at all times during the terms of this Agreement, with all +applicable laws, as set forth hereinabove. + + 17. BANKRUPTCY. If Licensee's liabilities exceed its +assets, or if Licensee becomes unable to pay its debts as they +become due or if Licensee files for voluntary bankruptcy, or is +placed in bankruptcy which is not dissolved or dismissed after +thirty (30) days from the petition filing date, or if Licensee +becomes insolvent, or makes an assignment for the benefit of its +creditors or an arrangement pursuant to any bankruptcy laws or if +Licensee discontinues its business or if a receiver is appointed +for its business, this Agreement shall automatically terminate, +without notice, and become null and void; provided, however, all +duties of Licensee upon termination or expiration of this Agreement +shall continue in full force and effect. + + 18. ENTIRE AGREEMENT AND ASSIGNMENT. This Agreement +constitutes the entire understanding between Licensee and Id +Software regarding the Subject Game. Each and every clause of this +Agreement is severable from the whole and shall survive unless the +entire Agreement is declared unenforceable. No prior or present +agreements or representations shall be binding upon any of the +parties hereto unless incorporated in this Agreement. No +modification or change in this Agreement shall be valid or binding +upon the parties unless in writing, executed by the parties to be +bound thereby. This Agreement shall bind and inure to the benefit +of Id Software, its successors and assigns, and Id Software may +assign its rights hereunder, in Id Software's sole discretion. +This Agreement is personal to Licensee, and Licensee shall not +sublicense, assign, transfer, convey nor franchise its rights +granted hereunder. + + 19. CHOICE OF LAW, VENUE AND SERVICE OF PROCESS. This +Agreement shall be construed in accordance with the laws of the +State of Texas and applicable U.S. federal law and all claims +and/or lawsuits in connection with this Agreement must be brought +in Dallas County, Texas. Licensee hereby agrees that service of +process by certified mail to the address set forth below, with +return receipt requested, shall constitute valid service of process +upon Licensee. If for any reason Licensee has moved or cannot be +validly served, then Licensee appoints the Secretary of State of +the state of Texas to accept service of process on Licensee's +behalf. + + 20. EXCUSED PERFORMANCE. Neither party shall be deemed +to be in default of any provision of this Agreement nor be liable +for any delay, failure in performance or interruption of service, +resulting directly or indirectly from acts of God, civil or +military authority, civil disturbance, military action, war, +strikes, other catastrophes or any other similar cause beyond its +reasonable control. Written notice to the non-affected party of any +such condition shall be given by the affected party within ten (10) +days of the event. + + 21. DELIVERY OF NOTICES, AND DELIVERY OF PAYMENTS. +Unless otherwise directed in writing by the parties, all notices +given hereunder and all payments made hereunder shall be sent to +the addresses set forth on the signature page hereof. All +notices, requests, consents and other communications under this +Agreement shall be in writing and shall be deemed to have been +delivered on the date personally delivered or on the date deposited +in the United States Postal Service, postage prepaid, by certified +mail, return receipt requested, or telegraphed and confirmed, or +delivered by electronic facsimile and confirmed. Any notice to Id +Software shall also be sent to its counsel: D. Wade Cloud, Jr., +Hiersche, Martens, Hayward, Drakeley & Urbach, P.C., 15303 Dallas +Parkway, Suite 700, LB 17, Dallas, Texas 75248. + + 22. NO PARTNERSHIP, ETC. This Agreement does not +constitute and shall not be construed as constituting a partnership +or joint venture between Id Software and Licensee. Neither party +shall have any right to obligate or bind the other party in any +manner whatsoever, and nothing herein contained shall give, or is +intended to give, any rights of any kind to any third persons. + + 23. COUNTERPARTS. This Agreement may be executed in +several counterparts, each of which will be deemed to be an +original, and each of which alone and all of which together, shall +constitute one and the same instrument, but in making proof of this +Agreement it shall not be necessary to produce or account for each +copy of any counterpart other than the counterpart signed by the +party against whom this Agreement is to be enforced. This +Agreement may be transmitted by facsimile, and it is the intent of +the parties for the facsimile of any autograph printed by a +receiving facsimile machine to be an original signature and for the +facsimile and any complete photocopy of the Agreement to be deemed +an original counterpart. + + 24. MEDIATION. If a dispute arises out of or relates to +this Agreement, or a breach of this Agreement, and if the dispute +cannot be settled through direct discussion, then the parties agree +to endeavor to settle the dispute in an amicable manner by +mediation, under the applicable provisions of Section 154.00 et +seq., Texas Civil Practices and Remedies Code, as supplemented by +the rules of the Association of Attorney Mediators. + + 25. SURVIVAL. The following provisions shall survive +the expiration or earlier termination of this Agreement: +paragraphs 4., 7., 8., and the audit rights of Id Software in +paragraph 12.c. + + 26. MISCELLANEOUS. + + a. All captions in this Agreement are intended solely +for the convenience of the parties, and none shall effect the +meaning or construction of any provision. + + b. The terms and conditions of this Agreement have been +negotiated fully and freely among the parties. Accordingly, the +preparation of this Agreement by counsel for a given party will not +be material to the construction hereof, and the terms of this +Agreement shall not be strictly construed against such party. + + By signing in the spaces provided below, the parties have +agreed to all of the terms and conditions set forth in this +Agreement. + + +AGREED: + +LICENSEE: + + +Signed:_______________________________ +Printed Name:_________________________ +Title:________________________________ +Address:______________________________ +______________________________________ +______________________________________ +Telephone #: _________________________ +Fax #:________________________________ +E-Mail Address:_______________________ +Date: ________________________________ + + +AGREED: + +ID SOFTWARE, INC. + + +Signed:_______________________________ +Printed Name:_________________________ +Title:________________________________ +Address:______________________________ +______________________________________ +______________________________________ +Telephone #: _________________________ +Fax #:________________________________ +E-Mail Address:_______________________ +Date: ________________________________ + + + +June 10, 1996 + + + +COMMERCIAL EXPLOITATION LICENSE AGREEMENT FOR QUAKE +(DWC:dw:3406.0299:dwc\doc:5017) + + diff --git a/doc/data/docs/install b/doc/data/docs/install new file mode 100644 index 000000000..bf317c1d4 --- /dev/null +++ b/doc/data/docs/install @@ -0,0 +1,177 @@ +INSTALL for Linux Quake +----------------------- + +Quake for Linux provides several different binary executables to support +different hardware and drivers. + +Included with Linux Quake are: + - SVGALib Quake (squake) + This is a software renderer Quake that runs at the text console in Linux. + - GLQuake (glquake, glquake.glx and glquake.3dfxgl) + This is a hardware renderer Quake that runs using hardware 3D + acceleration. + - X11 Quake (quake.x11) + Software rendering in a window under X11. + +Installation +------------ + +Mount the Quake CD as one would usually mount a CDROM, this can be +accomplished by using the command: + + mount /dev/cdrom /mnt + +As root. Once the CD is mounted, run the setup script on the CD as root. + + $ su + Password: + # mount /dev/cdrom /mnt + # /bin/sh /mnt/setup + +The script will ask some questions about what options you want to install +and automatically install the software into /usr/local/games/quake. + +Requirements +------------ + +Requirements for SVGALib Quake: + +- SVGALib 1.20 or later (/lib/libvga.so.1.2.10) +- libc 5.2.18 or later (5.0.9 will not work, /lib/libc.so.5.2.18) + or glibc (libc6) for the glibc version +- CD-ROM for CDAudio +- Soundcard capable of mmap'd buffers. USSLite 3.5.4 was used to build squake + with. Works fine on SoundBlaster 16 and Gravis Ultrasound MAX. +- SVGALib supported mouse (usually if it works with X, it'll work with + squake). +- Kernel 2.0.24 or later + - untested with 2.1 kernels, your mileage may vary + +Requirements for GLQuake: + +- 3DFX based card for the GLQuake version, VooDoo, VooDoo Rush or VooDoo2 +at this writing. In order to use 3DFX hardware, you must have 3DFX's +GLIDE drivers installed. RPMs for these drivers are available at: +http://glide.xxedgexx.com/3DfxRPMS.html +- For the glX version, an OpenGL implementation that includes hardware +glX support. +- CD-ROM for CDAudio +- Soundcard capable of mmap'd buffers. USSLite 3.5.4 was used to build squake + with. Works fine on SoundBlaster 16 and Gravis Ultrasound MAX. +- SVGALib compatible mouse for glquake or X11 for glquake.glx +- Kernel 2.0.24 or later + - untested with 2.1 kernels, your mileage may vary + +Requirements for X11 Quake: + +- X11R5 later, only tested with XFree86, should work with most X Servers +- libc 5.2.18 or later (5.0.9 will not work, /lib/libc.so.5.2.18) + or glibc (libc6) for the glibc version +- CD-ROM for CDAudio +- Soundcard capable of mmap'd buffers. USSLite 3.5.4 was used to build squake + with. Works fine on SoundBlaster 16 and Gravis Ultrasound MAX. +- SVGALib supported mouse (usually if it works with X, it'll work with + squake). +- Kernel 2.0.24 or later + - untested with 2.1 kernels, your mileage may vary + +Additional notes for SVGALib Quake +---------------------------------- + +SVGALib may not detect a 3-button mouse properly (it +will only use two buttons). Check your /etc/vga/libvga.config +and set it up for your mouse type. + +Also, newer versions of SVGALib have an mouse_accel_type option. Most +users will want to set this to "off" in /etc/vga/libvga.config. + +Additional notes for GLQuake +---------------------------- + +There are three different ways to execute GLQuake: + +1. The binary "glquake" requires Mesa 3-D 2.5 or later installed and compiled +with 3DFX support (fxMesa..() function interface). It also requires +svgalib 1.3.0 or later for keyboard/mouse input. This binary is a console +application. Mesa 3-D requires GLIDE to be installed. + +2. The shell script "glquake.3dfxgl" runs the "glquake" binary after +preloading the lib3dfxgl.so library. This is a port of 3DFX's Win32 +OpenGL MCD (Mini Client Driver) to Linux. It is faster than Mesa 3-D +since it was written specifically with supporting GLQuake in mind. +lib3dfxgl.so requires that GLIDE be installed. + +3. The binary "glquake.glx" is linked against standard OpenGL libraries. +It should run on many different hardward OpenGL implementations under +Linux and X11. This binary is an X11 application and must be run under +X11. It will work with Mesa 3-D as a standard glX based OpenGL +applications. If the Mesa 3-D library is compiled with 3DFX support, +you can have Mesa 3-D support 3DFX hardware under X11 by setting the +enviroment variable "MESA_GLX_FX" to "fullscreen" for fullscreen mode +and "window" for windowed mode, eg. "export MESA_GLX_FX=fullscreen" for sh +or "setenv MESA_GLX_FX fullscreen" for csh. + +For glquake, you must also have SVGALib or later installed (1.3.0 or later +prefered). GLQuake uses SVGALib for mouse and keyboard handling. + +If you have gpm and/or selection running, you will have to terminate them +before running GLQuake since they will not give up the mouse when GLQuake +attempts to run. You can kill gpm by typing 'killall gpm' as root. + +You must run GLQuake as root or setuid root since it needs to access things +such as sound, keyboard, mouse and the 3DFX video. Future versions may not +require root permissions. + +Additional notes for X11 Quake +------------------------------ + +This is a windowed version that is generic for X11. It runs in a window +and can be resized. You can specify a starting window size with: + -width + -height + -winsize +Default is 320x200. It works in 16bit modes, but it's slower (twice as many +bytes to copy). + +No other video modes are supported (just runs windowed). Mouse is read, but +not "grabbed" by default. Go to the Options menu and turn on Use Mouse to grab +the mouse and use it in the game (or type "_windowed_mouse 1" at the console). + +Command Line Options for Linux Quake +------------------------------------ + +-mem +Specify memory in megabytes to allocate (default is 8MB, which should be fine +for most needs). + +-nostdout +Don't do any output to stdout + +-mdev (SVGALib based versions only) +Mouse device, default is /dev/mouse + +-mrate (SVGALib based versions only) +Mouse baud rate, default is 1200 + +-cddev +CD device, default is /dev/cdrom + +-mode +Use indicated video mode + +-nokdb +Don't initialize keyboard + +-sndbits <8 or 16> +Set sound bit sample size. Default is 16 if supported. + +-sndspeed +Set sound speed. Usual values are 8000, 11025, 22051 and 44100. +Default is 11025. + +-sndmono +Set mono sound + +-sndstereo +Set stereo sound (default if supported) + diff --git a/doc/data/docs/install.q2mission b/doc/data/docs/install.q2mission new file mode 100644 index 000000000..e69b63c15 --- /dev/null +++ b/doc/data/docs/install.q2mission @@ -0,0 +1,39 @@ +INSTALL for Linux Quake2 Mission Packs +-------------------------------------- + +Installation +------------ + +Mount the Quake2 Mission Pack CD as one would usually mount a CDROM, this can +be accomplished by using the command: + + mount /dev/cdrom /mnt + +As root. Once the CD is mounted, run the setup script on the CD as root. + + $ su + Password: + # mount /dev/cdrom /mnt + # /bin/sh /mnt/setup + +The script will ask some questions about what options you want to install +and automatically install the software into /usr/local/games/quake2. + +After Installation +------------------ + +To run Quake2 Mission Pack #1: The Reckoning add the following option when +executing Quake2: + + ./quake2 +set game xatrix + +To run Quake2 Mission Pack #2: Ground Zero add the following: + + ./quake2 +set game rogue + +Requirements +------------ + +The Quake2 Mission Packs require a previous installation of Quake2. + + diff --git a/doc/data/docs/install.quake b/doc/data/docs/install.quake new file mode 100644 index 000000000..bf317c1d4 --- /dev/null +++ b/doc/data/docs/install.quake @@ -0,0 +1,177 @@ +INSTALL for Linux Quake +----------------------- + +Quake for Linux provides several different binary executables to support +different hardware and drivers. + +Included with Linux Quake are: + - SVGALib Quake (squake) + This is a software renderer Quake that runs at the text console in Linux. + - GLQuake (glquake, glquake.glx and glquake.3dfxgl) + This is a hardware renderer Quake that runs using hardware 3D + acceleration. + - X11 Quake (quake.x11) + Software rendering in a window under X11. + +Installation +------------ + +Mount the Quake CD as one would usually mount a CDROM, this can be +accomplished by using the command: + + mount /dev/cdrom /mnt + +As root. Once the CD is mounted, run the setup script on the CD as root. + + $ su + Password: + # mount /dev/cdrom /mnt + # /bin/sh /mnt/setup + +The script will ask some questions about what options you want to install +and automatically install the software into /usr/local/games/quake. + +Requirements +------------ + +Requirements for SVGALib Quake: + +- SVGALib 1.20 or later (/lib/libvga.so.1.2.10) +- libc 5.2.18 or later (5.0.9 will not work, /lib/libc.so.5.2.18) + or glibc (libc6) for the glibc version +- CD-ROM for CDAudio +- Soundcard capable of mmap'd buffers. USSLite 3.5.4 was used to build squake + with. Works fine on SoundBlaster 16 and Gravis Ultrasound MAX. +- SVGALib supported mouse (usually if it works with X, it'll work with + squake). +- Kernel 2.0.24 or later + - untested with 2.1 kernels, your mileage may vary + +Requirements for GLQuake: + +- 3DFX based card for the GLQuake version, VooDoo, VooDoo Rush or VooDoo2 +at this writing. In order to use 3DFX hardware, you must have 3DFX's +GLIDE drivers installed. RPMs for these drivers are available at: +http://glide.xxedgexx.com/3DfxRPMS.html +- For the glX version, an OpenGL implementation that includes hardware +glX support. +- CD-ROM for CDAudio +- Soundcard capable of mmap'd buffers. USSLite 3.5.4 was used to build squake + with. Works fine on SoundBlaster 16 and Gravis Ultrasound MAX. +- SVGALib compatible mouse for glquake or X11 for glquake.glx +- Kernel 2.0.24 or later + - untested with 2.1 kernels, your mileage may vary + +Requirements for X11 Quake: + +- X11R5 later, only tested with XFree86, should work with most X Servers +- libc 5.2.18 or later (5.0.9 will not work, /lib/libc.so.5.2.18) + or glibc (libc6) for the glibc version +- CD-ROM for CDAudio +- Soundcard capable of mmap'd buffers. USSLite 3.5.4 was used to build squake + with. Works fine on SoundBlaster 16 and Gravis Ultrasound MAX. +- SVGALib supported mouse (usually if it works with X, it'll work with + squake). +- Kernel 2.0.24 or later + - untested with 2.1 kernels, your mileage may vary + +Additional notes for SVGALib Quake +---------------------------------- + +SVGALib may not detect a 3-button mouse properly (it +will only use two buttons). Check your /etc/vga/libvga.config +and set it up for your mouse type. + +Also, newer versions of SVGALib have an mouse_accel_type option. Most +users will want to set this to "off" in /etc/vga/libvga.config. + +Additional notes for GLQuake +---------------------------- + +There are three different ways to execute GLQuake: + +1. The binary "glquake" requires Mesa 3-D 2.5 or later installed and compiled +with 3DFX support (fxMesa..() function interface). It also requires +svgalib 1.3.0 or later for keyboard/mouse input. This binary is a console +application. Mesa 3-D requires GLIDE to be installed. + +2. The shell script "glquake.3dfxgl" runs the "glquake" binary after +preloading the lib3dfxgl.so library. This is a port of 3DFX's Win32 +OpenGL MCD (Mini Client Driver) to Linux. It is faster than Mesa 3-D +since it was written specifically with supporting GLQuake in mind. +lib3dfxgl.so requires that GLIDE be installed. + +3. The binary "glquake.glx" is linked against standard OpenGL libraries. +It should run on many different hardward OpenGL implementations under +Linux and X11. This binary is an X11 application and must be run under +X11. It will work with Mesa 3-D as a standard glX based OpenGL +applications. If the Mesa 3-D library is compiled with 3DFX support, +you can have Mesa 3-D support 3DFX hardware under X11 by setting the +enviroment variable "MESA_GLX_FX" to "fullscreen" for fullscreen mode +and "window" for windowed mode, eg. "export MESA_GLX_FX=fullscreen" for sh +or "setenv MESA_GLX_FX fullscreen" for csh. + +For glquake, you must also have SVGALib or later installed (1.3.0 or later +prefered). GLQuake uses SVGALib for mouse and keyboard handling. + +If you have gpm and/or selection running, you will have to terminate them +before running GLQuake since they will not give up the mouse when GLQuake +attempts to run. You can kill gpm by typing 'killall gpm' as root. + +You must run GLQuake as root or setuid root since it needs to access things +such as sound, keyboard, mouse and the 3DFX video. Future versions may not +require root permissions. + +Additional notes for X11 Quake +------------------------------ + +This is a windowed version that is generic for X11. It runs in a window +and can be resized. You can specify a starting window size with: + -width + -height + -winsize +Default is 320x200. It works in 16bit modes, but it's slower (twice as many +bytes to copy). + +No other video modes are supported (just runs windowed). Mouse is read, but +not "grabbed" by default. Go to the Options menu and turn on Use Mouse to grab +the mouse and use it in the game (or type "_windowed_mouse 1" at the console). + +Command Line Options for Linux Quake +------------------------------------ + +-mem +Specify memory in megabytes to allocate (default is 8MB, which should be fine +for most needs). + +-nostdout +Don't do any output to stdout + +-mdev (SVGALib based versions only) +Mouse device, default is /dev/mouse + +-mrate (SVGALib based versions only) +Mouse baud rate, default is 1200 + +-cddev +CD device, default is /dev/cdrom + +-mode +Use indicated video mode + +-nokdb +Don't initialize keyboard + +-sndbits <8 or 16> +Set sound bit sample size. Default is 16 if supported. + +-sndspeed +Set sound speed. Usual values are 8000, 11025, 22051 and 44100. +Default is 11025. + +-sndmono +Set mono sound + +-sndstereo +Set stereo sound (default if supported) + diff --git a/doc/data/docs/install.quake2 b/doc/data/docs/install.quake2 new file mode 100644 index 000000000..6339c76cf --- /dev/null +++ b/doc/data/docs/install.quake2 @@ -0,0 +1,218 @@ +INSTALL for Linux Quake2 +------------------------ + +Quake2 for Linux supports the following video subsystems: + +- SVGALib Console Graphics (ref_soft.so) + - Requires SVGALib 1.2.0 or later +- X11 Window Graphics (ref_softx.so) + - X11R5 or later, XShm shared memory extension supported +- 3DFX fxMesa with Mesa 3-D or 3DFX Miniport (ref_gl.so) + - Mesa 3-D 2.6 or later, specifically compiled for 3DFX support + Mesa 3-D 2.6 compiled with 3DFX support is provided with this archive. +- Generic glX (X11) based OpenGL (ref_glx.so) + - Requires a glX based hardware accelerated OpenGL implementation. + Mesa 3-D 2.6 supports this on 3DFX hardware. + +Also included is a specific 3DFX mini-OpenGL implementation for running Quake2 +on 3DFX hardware. + +Installation +------------ + +Mount the Quake2 CD as one would usually mount a CDROM, this can be +accomplished by using the command: + + mount /dev/cdrom /mnt + +As root. Once the CD is mounted, run the setup script on the CD as root. + + $ su + Password: + # mount /dev/cdrom /mnt + # /bin/sh /mnt/setup + +The script will ask some questions about what options you want to install +and automatically install the software into /usr/local/games/quake2. + +Make sure you have the appropirate hardware, drivers and libraries installed +for the renderer you are going to play on. + +Quake2 for Linux supports the following renderers: + +- ref_soft + Software rendering under SVGALib (console only). SVGALib 1.2.10 or later + is required. Note that SVGALib 1.2.11 supports the ability to run a + SVGALib application under X11 as it will automatically allocate a new + console. The default mode is 320x240 (ModeX) since that is the lowest + resolution supported by Quake2. If SVGALib supports your video card, higher + resolution modes such as 640x480 and 800x600 are also supported. + + Please note that you may need to configure your mouse for SVGALib in + /etc/vga/libvga.config (or /etc/libvga.config). + +- ref_softx + Software rendering under X11. This uses the MITSHM Extension and should + work will virtually all Linux X Servers. **NOTE: Do not resize the window + under X11. You must use the Video menu to change resolution/window size. + + By default, the mouse will not be 'tied' to the Quake2 window. To cause + Quake2 to grab the mouse, select 'Windowed Mouse' from the video menu, + or type '_windowed_mouse 0' at the console. Do the reverse to release it. + You can bind keys to grab and release the mouse in the console, like so: + bind i "_windowed_mouse 1" + bind o "_windowed_mouse 0" + Then "i" will grab the mouse and "o" will release it. + +- ref_gl + This render can be run with two different OpenGL drivers: Mesa 3-D + ontop of Linux GLIDE, or 3DFX's mini-OpenGL Quake driver. + For Mesa 3-D, the necessary libMesaGL.so.2.6 is included with this archive. + You must copy it to /usr/lib or /usr/local/lib and run ldconfig (as root) + in order to use it. You can do this as follows: + tar cf - lib*GL* | (cd /usr/lib; tar xf -) + You should use tar to keep the symlinks intact. Once you copy them over + run ldconfig. + You must also download and install the Linux GLIDE drivers at + http://www.3dfx.com/software/download_glidel.html + And install them as instructed. + RPMs for GLIDE are available at : + http://glide.xxedgexx.com/3DfxRPMS.html + With version 3.20, the GL library is entirely runtime loaded. This means + you can specify what shared object to load for GL display. + To use Mesa 3-D GL (console), run quake with: + ./quake2 +set vid_ref gl +set gl_driver libMesaGL.so.2 + To use the 3DFX OpenGL Miniport, run the included quake2.3dfxgl: + ./quake2 +set vid_ref gl +set gl_driver lib3dfxgl.so + The gl_driver cvar indicates the name of the library to load for GL + functions. It can be in any directory listed in /etc/ld.so.conf + or in /etc/quake2.conf + + **NOTE: There is a problem on libc5 systems where a vid_restart (causing + a reload of the video system) will crash. There doesn't seem to be a + solution to this yet. It looks to be some sort of ld.so dynamic loading + interaction with SVGALib and ref_gl.so. A work around is to start in + software mode (./quake2 +set vid_ref soft), then use the menu to set your + mode and a vid_restart will work when going from software to GL. Exit + out then and save your video mode settings. + This problem does not occur on libc6 (glibc) based systems; vid_restart + works fine on there. + +- ref_glx + ref_glx should run on many different hardward OpenGL implementations under + Linux and X11. This binary is an X11 application and must be run under + X11. It will work with Mesa 3-D as a standard glX based OpenGL + applications. If the Mesa 3-D library is compiled with 3DFX support, + you can have Mesa 3-D support 3DFX hardware under X11 by setting the + enviroment variable "MESA_GLX_FX" to "fullscreen" for fullscreen mode + and "window" for windowed mode, eg. "export MESA_GLX_FX=fullscreen" for sh + or "setenv MESA_GLX_FX fullscreen" for csh. + + As with ref_gl, the "gl_driver" cvar indicates the shared library to load + for OpenGL functions (the glX functions must provided in that library + as well). + +Permissions +----------- + +Quake2 requires root permissions to use the software (SVGALib) and GL (MesaGL +w/3dfx) renders. In order to make this secure, some special considerations +must be made. + +Quake2 should get setuid root: + chown root quake2 + chmod 4711 quake2 + +And the ref_soft.so and ref_gl.so files must owned by root. + +The file /etc/quake2.conf must be installed. This file contains a single +line with the path of where the ref shared libraries can be found. +A sample one is included that lists /usr/games/quake2 as the default +path. The libraries are only loaded out of the directory listed in +/etc/quake2.conf for security considerations. + +Special permissions are not required for the softx renderer, but quake2 may +still need to be setuid root to open the sound device (quake2 will give up +setuid root permissions before loading softx). + +NOTE: If you use a setuid quake2 binary and run it as a normal user, it +will NOT be able to switch renderers on the fly because root permissions +are given up after the renderer is loaded. You can switch renderers on the +fly if you run quake2 as root (su or log in as root). + +NOTE: When the quake2 binary is run in dedicated server mode +(+set dedicated 1), no special permissions are required and +/etc/quake2.conf is not read since no renderer is loaded. + +---- + +The first time you run Quake2, it will use ref_soft or ref_softx based +on whether a DISPLAY environment variable exists. + +To force the loading of a specific renderer at load time, use the following +command lines: + + ./quake2 +set vid_ref soft + ./quake2 +set vid_ref softx + ./quake2 +set vid_ref gl + ./quake2 +set vid_ref glx + +Linux Specific Cvars +-------------------- + +To set this, use +set on the command line, i.e.: + ./quake2 +set cd_dev /dev/hdc +set sndmono 1 + +nocdaudio (defaults to 0) + Do not enable cd audio if not zero + +sndbits (defaults to 16) + Set sound bit sample size. + +sndspeed (defaults to 0) + Set sound speed. Usual values are 8000, 11025, 22051 and 44100. + If set to zero, causes the sound driver to attempt speeds in the following + order: 11025, 22051, 44100, 8000. + +sndchannels (defaults to 2) + Indicates stereo or mono sound. Defaults to 2 (stereo). Use 1 for mono. + +nostdout (defaults to 0) + Whether to output console msgs to standard out. Non-zero is cease output. + +Dedicated server +---------------- + +To run Linux Quake2 as a dedicated server, just run it as follows: + + ./quake2 +set dedicated 1 + +You can also set dmflags, timelimit, etc. in a config file, like so: + set timelimit 20 + set fraglimit 25 + set dmflags 532 + map fact3 + +Then exec that config file on load, like so: + + ./quake2 +set dedicated 1 +exec server.cfg + +If you use a config file, you must put a 'map' command in it or the +server won't load a map. + +To run a dedicated server in the background, use this; + + nohup ./quake2 +set dedicated 1 +exec server.cfg & + +A better way is to run Quake2 on a tty via screen. screen can be found +at ftp://prep.ai.mit.edu/pub/gnu/screen-3.7.4.tar.gz, but it comes with +most modern Linux installations now. + +----------------------------------------------------------------------------- + +Linux Quake2 is an unsupported product. Usage of this product is bound by +the legal notice found on the distribution Quake2 CDROM. + +/// Zoid +zoid@idsoftware.com + diff --git a/doc/data/docs/readme b/doc/data/docs/readme new file mode 100644 index 000000000..ee5a22d5c --- /dev/null +++ b/doc/data/docs/readme @@ -0,0 +1,157 @@ +README for Linux Quake +---------------------- + +This README convers all versions of Quake for Linux: + - SVGALib Quake (squake) + - GLQuake (glquake, glquake.glx and glquake.3dfxgl) + - X11 Quake (quake.x11) + +Requirements for SVGALib Quake: + +- SVGALib 1.20 or later (/lib/libvga.so.1.2.10) +- libc 5.2.18 or later (5.0.9 will not work, /lib/libc.so.5.2.18) + or glibc (libc6) for the glibc version +- CD-ROM for CDAudio +- Soundcard capable of mmap'd buffers. USSLite 3.5.4 was used to build squake + with. Works fine on SoundBlaster 16 and Gravis Ultrasound MAX. +- SVGALib supported mouse (usually if it works with X, it'll work with + squake). +- Kernel 2.0.24 or later + - untested with 2.1 kernels, your mileage may vary + +Requirements for GLQuake: + +- 3DFX based card for the GLQuake version, VooDoo, VooDoo Rush or VooDoo2 +at this writing. In order to use 3DFX hardware, you must have 3DFX's +GLIDE drivers installed. RPMs for these drivers are available at: +http://glide.xxedgexx.com/3DfxRPMS.html +- For the glX version, an OpenGL implementation that includes hardware +glX support. +- CD-ROM for CDAudio +- Soundcard capable of mmap'd buffers. USSLite 3.5.4 was used to build squake + with. Works fine on SoundBlaster 16 and Gravis Ultrasound MAX. +- SVGALib compatible mouse for glquake or X11 for glquake.glx +- Kernel 2.0.24 or later + - untested with 2.1 kernels, your mileage may vary + +Requirements for X11 Quake: + +- X11R5 later, only tested with XFree86, should work with most X Servers +- libc 5.2.18 or later (5.0.9 will not work, /lib/libc.so.5.2.18) + or glibc (libc6) for the glibc version +- CD-ROM for CDAudio +- Soundcard capable of mmap'd buffers. USSLite 3.5.4 was used to build squake + with. Works fine on SoundBlaster 16 and Gravis Ultrasound MAX. +- SVGALib supported mouse (usually if it works with X, it'll work with + squake). +- Kernel 2.0.24 or later + - untested with 2.1 kernels, your mileage may vary + +Additional notes for SVGALib Quake +---------------------------------- + +SVGALib may not detect a 3-button mouse properly (it +will only use two buttons). Check your /etc/vga/libvga.config +and set it up for your mouse type. + +Additional notes for GLQuake +---------------------------- + +There are three different ways to execute GLQuake: + +1. The binary "glquake" requires Mesa 3-D 2.5 or later installed and compiled +with 3DFX support (fxMesa..() function interface). It also requires +svgalib 1.3.0 or later for keyboard/mouse input. This binary is a console +application. Mesa 3-D requires GLIDE to be installed. + +2. The shell script "glquake.3dfxgl" runs the "glquake" binary after +preloading the lib3dfxgl.so library. This is a port of 3DFX's Win32 +OpenGL MCD (Mini Client Driver) to Linux. It is faster than Mesa 3-D +since it was written specifically with supporting GLQuake in mind. +lib3dfxgl.so requires that GLIDE be installed. + +3. The binary "glquake.glx" is linked against standard OpenGL libraries. +It should run on many different hardward OpenGL implementations under +Linux and X11. This binary is an X11 application and must be run under +X11. It will work with Mesa 3-D as a standard glX based OpenGL +applications. If the Mesa 3-D library is compiled with 3DFX support, +you can have Mesa 3-D support 3DFX hardware under X11 by setting the +enviroment variable "MESA_GLX_FX" to "fullscreen" for fullscreen mode +and "window" for windowed mode, eg. "export MESA_GLX_FX=fullscreen" for sh +or "setenv MESA_GLX_FX fullscreen" for csh. + +For glquake, you must also have SVGALib or later installed (1.3.0 or later +prefered). GLQuake uses SVGALib for mouse and keyboard handling. + +If you have gpm and/or selection running, you will have to terminate them +before running GLQuake since they will not give up the mouse when GLQuake +attempts to run. You can kill gpm by typing 'killall gpm' as root. + +You must run GLQuake as root or setuid root since it needs to access things +such as sound, keyboard, mouse and the 3DFX video. Future versions may not +require root permissions. + +Additional notes for X11 Quake +------------------------------ + +This is a windowed version that is generic for X11. It runs in a window +and can be resized. You can specify a starting window size with: + -width + -height + -winsize +Default is 320x200. It works in 16bit modes, but it's slower (twice as many +bytes to copy). + +No other video modes are supported (just runs windowed). Mouse is read, but +not "grabbed" by default. Go to the Options menu and turn on Use Mouse to grab +the mouse and use it in the game (or type "_windowed_mouse 1" at the console). + +Command Line Options for Linux Quake +------------------------------------ + +-mem +Specify memory in megabytes to allocate (default is 8MB, which should be fine +for most needs). + +-nostdout +Don't do any output to stdout + +-mdev (SVGALib based versions only) +Mouse device, default is /dev/mouse + +-mrate (SVGALib based versions only) +Mouse baud rate, default is 1200 + +-cddev +CD device, default is /dev/cdrom + +-mode +Use indicated video mode + +-nokdb +Don't initialize keyboard + +-sndbits <8 or 16> +Set sound bit sample size. Default is 16 if supported. + +-sndspeed +Set sound speed. Usual values are 8000, 11025, 22051 and 44100. +Default is 11025. + +-sndmono +Set mono sound + +-sndstereo +Set stereo sound (default if supported) + +End Notes +--------- + +Linux Quake is *NOT* an officially supported product. Mail about it +will be deleted. Do not email id about this product. If you are having +technical difficultly, you can email me, but make sure you have the correct +kernel, libc, svgalib and other software versions before you email me. + +Dave 'Zoid' Kirsch +zoid@idsoftware.com +Official Quake Unix Port Administrator diff --git a/doc/data/docs/readme.glquake b/doc/data/docs/readme.glquake new file mode 100644 index 000000000..385625f03 --- /dev/null +++ b/doc/data/docs/readme.glquake @@ -0,0 +1,162 @@ +Linux Glquake v0.98, Quake v1.09 release notes + +Requirements +------------ + +For 3DFX based hardware, you must download and install Linux GLIDE from +http://glide.xxedgexx.com/3DfxRPMS.html and install as per the +instructions. + +Running GLQuake +--------------- + +There are three different ways to execute GLQuake: + +1. The binary "glquake" requires Mesa 3-D 2.5 or later installed and compiled +with 3DFX support (fxMesa..() function interface). It also requires +svgalib 1.3.0 or later for keyboard/mouse input. This binary is a console +application. Mesa 3-D requires GLIDE to be installed. + +2. The shell script "glquake.3dfxgl" runs the "glquake" binary after +preloading the lib3dfxgl.so library. This is a port of 3DFX's Win32 +OpenGL MCD (Mini Client Driver) to Linux. It is faster than Mesa 3-D +since it was written specifically with supporting GLQuake in mind. +lib3dfxgl.so requires that GLIDE be installed. + +3. The binary "glquake.glx" is linked against standard OpenGL libraries. +It should run on many different hardward OpenGL implementations under +Linux and X11. This binary is an X11 application and must be run under +X11. It will work with Mesa 3-D as a standard glX based OpenGL +applications. If the Mesa 3-D library is compiled with 3DFX support, +you can have Mesa 3-D support 3DFX hardware under X11 by setting the +enviroment variable "MESA_GLX_FX" to "fullscreen" for fullscreen mode +and "window" for windowed mode. + +You must also have SVGALib 1.3.0 or later installed. GLQuake uses SVGALib +for mouse and keyboard handling. + +If you have gpm and/or selection running, you will have to terminate them +before running GLQuake since they will not give up the mouse when GLQuake +attempts to run. You can kill gpm by typing 'killall gpm' as root. + +You must run GLQuake as root or setuid root since it needs to access things +such as sound, keyboard, mouse and the 3DFX video. Future versions may not +require root permissions. + +resolution options +------------------ +glquake -width 512 -height 384 +Tries to run glquake at the specified resolution. +Only highend VooDoo cards support such high resolutions (most +cards on the market right now do not). Another popular and supported mode +is 512x384 (-width 512 -height 384) which can offer a faster speed than +the default 640x480. + +You can also specify the resolution of the console independant of the screen +resolution. + +glquake -conwidth 320 +This will specify a console resolution of 320 by 240 (the height is +automatically determined by the default 4:3 aspect ratio, you can also +specify the height directly with -conheight). + +In higher resolution modes such as 800x600 and 1024x768, glquake will default +to a 640x480 console, since the font becomes small enough at higher +resolutions to become unreadable. If do you wish to have a higher resolution +console and status bar, specify it as well, such as: +glquake -width 800 -height 600 -conwidth 800 + +texture options +--------------- +The amount of textures used in the game can have a large impact on performance. +There are several options that let you trade off visual quality for better +performance. + +There is no way to flush already loaded textures, so it is best to change +these options on the command line, or they will only take effect on some of +the textures when you change levels. + +OpenGL only allows textures to repeat on power of two boundaries (32, 64, +128, etc), but software quake had a number of textures that repeated at 24 +or 96 pixel boundaries. These need to be either stretched out to the next +higher size, or shrunk down to the next lower. By default, they are filtered +down to the smaller size, but you can cause it to use the larger size if you +really want by using: + +glquake +gl_round_down 0 +This will generally run well on a normal 4 MB 3dfx card, but for other cards +that have either worse texture management or slower texture swapping speeds, +there are some additional settings that can drastically lower the amount of +textures to be managed. + +glquake +gl_picmip 1 +This causes all textures to have one half the dimensions they otherwise would. +This makes them blurry, but very small. You can set this to 2 to make the +textures one quarter the resolution on each axis for REALLY blurry textures. + +glquake +gl_playermip 1 +This is similar to picmip, but is only used for other players in deathmatch. +Each player in a deathmatch requires an individual skin texture, so this can +be a serious problem for texture management. It wouldn't be unreasonable to +set this to 2 or even 3 if you are playing competatively (and don't care if +the other guys have smudged skins). If you change this during the game, it +will take effect as soon as a player changes their skin colors. + +run time options +---------------- +At the console, you can set these values to effect drawing. + +gl_texturemode GL_NEAREST +Sets texture mapping to point sampled, which may be faster on some GL systems +(not on 3dfx). + +gl_texturemode GL_LINEAR_MIPMAP +This is the default texture mode. + +gl_texturemode GL_LINEAR_MIPMAP_LINEAR +This is the highest quality texture mapping (trilinear), but only very high +end hardware (intergraph intense 3D / realizm) supports it. Not that big of +a deal, actually. + +gl_finish 0 +This causes the game to not issue a glFinish() call each frame, which may make +some hardware run faster. If this is cleared, the 3dfx will back up a number +of frames and not be very playable. + +gl_flashblend 0 +By default, glquake just draws a shaded ball around objects that are emiting +light. Clearing this variable will cause it to properly relight the world +like normal quake, but it can be a significant speed hit on some systems. + +gl_ztrick 0 +Glquake uses a buffering method that avoids clearing the Z buffer, but some +hardware platforms don't like it. If the status bar and console are flashing +every other frame, clear this variable. + +gl_keeptjunctions 0 +If you clear this, glquake will remove colinear vertexes when it reloads the +level. This can give a few percent speedup, but it can leave a couple stray +blinking pixels on the screen. + +novelty features +---------------- +These are some rendering tricks that were easy to do in glquake. They aren't +very robust, but they are pretty cool to look at. + +r_shadows 1 +This causes every object to cast a shadow. + +r_wateralpha 0.7 +This sets the opacity of water textures, so you can see through it in properly +processed maps. 0.3 is very faint, almost like fog. 1 is completely solid +(the default). Unfortunately, the standard quake maps don't contain any +visibility information for seeing past water surfaces, so you can't just play +quake with this turned on. If you just want to see what it looks like, you +can set "r_novis 1", but that will make things go very slow. When I get a +chance, I will probably release some maps that have been processed properly +for this. + +r_mirroralpha 0.3 +This changes one particular texture (the stained glass texture in the EASY +start hall) into a mirror. The value is the opacity of the mirror surface. + diff --git a/doc/data/docs/readme.squake b/doc/data/docs/readme.squake new file mode 100644 index 000000000..3d4ba918d --- /dev/null +++ b/doc/data/docs/readme.squake @@ -0,0 +1,127 @@ + +README for Linux SVGALib Quake +------------------------------ + +Requirements: + +- SVGALib 1.20 or later (/lib/libvga.so.1.2.10) +- libc 5.2.18 or later (5.0.9 will not work, /lib/libc.so.5.2.18) +- CD-ROM for CDAudio +- Soundcard capable of mmap'd buffers. USSLite 3.5.4 was used to build squake + with. Works fine on SoundBlaster 16 and Gravis Ultrasound MAX. +- SVGALib supported mouse (usually if it works with X, it'll work with + squake). +- Kernel 2.0.24 or later + - untested with 2.1 kernels, your mileage may vary + +Here's the release you've been waiting for. Linux squake supports +320x200x256, the various modeX modes (320x400, 360x400, etc) as well as high +res modes if your card is supported by SVGALib. Use the Quake console command +vid_describemodes to list supported modes and the command vid_mode to +change modes. + +Full sound support is included. The default sound rate is 16-bit stereo, +11KHz. You can change this in the options section below. + +Mouse works great, but SVGALib may not detect a 3-button mouse properly (it +will only use two buttons). Check your /etc/libvga.config (or +/etc/vga/libvga.config for SlackWare users). + +**Version 1.1 fixes some crash bugs with the mission packs. + +New Command Line Options for Linux SVGAlib Quake +------------------------------------------------ + +-mem +Specify memory in megabytes to allocate (default is 8MB, which should be fine +for most needs). + +-nostdout +Don't do any output to stdout + +-mdev +Mouse device, default is /dev/mouse + +-mrate +Mouse baud rate, default is 1200 + +-cddev +CD device, default is /dev/cdrom + +-mode +Use indicated video mode + +-nokdb +Don't initialize keyboard + +-sndbits <8 or 16> +Set sound bit sample size. Default is 16 if supported. + +-sndspeed +Set sound speed. Usual values are 8000, 11025, 22051 and 44100. +Default is 11025. + +-sndmono +Set mono sound + +-sndstereo +Set stereo sound (default if supported) + +Installation +------------ + +Boot DOS (I know, but you need it to run the Quake install program) and +install Quake from your Quake CD to a DOS parition. + +Boot Linux and make a directory for Quake. Copy everything from the DOS Quake +directory into it. i.e.: + (cd /dos/quake; tar cf - .) | (cd ~/quake; tar xf -) + +Place squake into your Quake directory. You must make it setuid root (since +Quake access stuff like direct video writes, the raw keyboard mode, CD, etc). +Quake will setuid back to the normal user as soon as it opens these files. +Make Quake suid root as follows: + chown root squake + chmod 4755 squake + +Run squake. I don't recommend running it as root, since all the saved +config.cfg files will be then owned as root. Use your normal account, unless +you do everything as root, then your mileage will vary. + +squake may segfault if it tries to initialize your sound card and their isn't +one. Same with the CDROM. If it dies, try it with -nosound and/or +-nocdaudio. If you have a sound card it died on and you know it is +supported by USSLite (the driver that comes with the Linux kernel), let me +know and I'll take a look at it. + +It should work with SCSI CDROMs, but is untested. + +Full TCP/IP network support is in, including listen and dedicated server +modes. squake makes a nice dedicated server as you don't need the X11 +libraries kicking around. + +All of the options described in TECHINFO.TXT and MANUAL.TXT from the Quake +distribution will work, 'cept for stuff with vid modes and stuff. + +End Notes +--------- + +Linux SVGALib Quake is *NOT* an officially supported product. Mail about it +will be deleted. Do not email id about this product. If you are having +technical difficultly, you can email me, but make sure you have the correct +kernel, libc, svgalib and other software versions before you email me. + +Dave 'Zoid' Kirsch +zoid@threewave.com +Official Quake Unix Port Administrator + +Acks +---- + +Greg Alexander for initial work in SVGALib +support. +Dave Taylor for basic Linux support. +id Software for Quake and making me port it. :) + +Lots of people on #linux, #quake for testing. + diff --git a/doc/data/docs/readme.x11 b/doc/data/docs/readme.x11 new file mode 100644 index 000000000..b7a1667cb --- /dev/null +++ b/doc/data/docs/readme.x11 @@ -0,0 +1,107 @@ + +README for Linux SVGALib Quake +------------------------------ + +Requirements: + +- X11R5 later, only tested with XFree86, should work with most X Servers +- libc 5.2.18 or later (5.0.9 will not work, /lib/libc.so.5.2.18) +- CD-ROM for CDAudio +- Soundcard capable of mmap'd buffers. USSLite 3.5.4 was used to build squake + with. Works fine on SoundBlaster 16 and Gravis Ultrasound MAX. +- SVGALib supported mouse (usually if it works with X, it'll work with + squake). +- Kernel 2.0.24 or later + - untested with 2.1 kernels, your mileage may vary + +This is a windowed version that is generic for X11. It runs in a window +and can be resized. You can specify a starting window size with: + -width + -height + -winsize +Default is 320x200. It works in 16bit modes, but it's slower (twice as many +bytes to copy). + +No other video modes are supported (just runs windowed). Mouse is read, but +not "grabbed" by default. Go to the Options menu and turn on Use Mouse to grab +the mouse and use it in the game. If you want to move the mouse out of +QWCL, you have to turn Use Mouse off. + +Full sound support is included. The default sound rate is 16-bit stereo, +11KHz. You can change this in the options section below. + +New Command Line Options for Linux SVGAlib Quake +------------------------------------------------ + +-mem +Specify memory in megabytes to allocate (default is 8MB, which should be fine +for most needs). + +-nostdout +Don't do any output to stdout + +-cddev +CD device, default is /dev/cdrom + +-sndbits <8 or 16> +Set sound bit sample size. Default is 16 if supported. + +-sndspeed +Set sound speed. Usual values are 8000, 11025, 22051 and 44100. +Default is 11025. + +-sndmono +Set mono sound + +-sndstereo +Set stereo sound (default if supported) + +Installation +------------ + +Boot DOS (I know, but you need it to run the Quake install program) and +install Quake from your Quake CD to a DOS parition. + +Boot Linux and make a directory for Quake. Copy everything from the DOS Quake +directory into it. i.e.: + (cd /dos/quake; tar cf - .) | (cd ~/quake; tar xf -) + +Quake for X11 does not need to be setuid root. Sound can fail if /dev/dsp is +not mode 666. + +Quake may segfault if it tries to initialize your sound card and their isn't +one. Same with the CDROM. If it dies, try it with -nosound and/or +-nocdaudio. If you have a sound card it died on and you know it is +supported by USSLite (the driver that comes with the Linux kernel), let me +know and I'll take a look at it. + +It should work with SCSI CDROMs, but is untested. + +Full TCP/IP network support is in, including listen and dedicated server +modes. + +All of the options described in TECHINFO.TXT and MANUAL.TXT from the Quake +distribution will work, 'cept for stuff with vid modes and stuff. + +End Notes +--------- + +Linux Quake is *NOT* an officially supported product. Mail about it +will be deleted. Do not email id about this product. If you are having +technical difficultly, you can email me, but make sure you have the correct +kernel, libc, svgalib and other software versions before you email me. + +Dave 'Zoid' Kirsch +zoid@idsoftware.com +Official Quake Unix Port Administrator + +Acks +---- + +Greg Alexander for initial work in SVGALib +support. +Dave Taylor for basic Linux support. +id Software for Quake and making me port it. :) + +Lots of people on #linux, #quake for testing. + diff --git a/doc/data/help.txt b/doc/data/help.txt new file mode 100644 index 000000000..ef79fbdcf --- /dev/null +++ b/doc/data/help.txt @@ -0,0 +1,119 @@ +TECH SUPPORT +Any of the information listed below could change. Check the id software +Web Site, at www.idsoftware.com, for updates. + +A. Tech Support Options +id Software does charge for technical support, but we strive to offer +this service at the lowest cost possible. Because volume on the support +lines dictate costs, we periodically adjust our rates for Voice Tech +Support. Check our web site for current pricing. + +Paying for Voice or Automated Support +1 -- You can get Voice Support using a major credit card for a one-time +shot. The system asks for your credit card number and expiration date, +then pre-authorizes your credit card for the tech support call. You will +only be billed for the number of minutes actually used. + +2 -- You can assign yourself a rechargeable PIN account. The system prompts +you for your credit card information, and assigns you a PIN account number. +You can use the PIN to access Voice Support, Automated Support and the +Game Hints Line. Once your account runs out, you can charge it up again. + +3 -- You may also charge up a PIN account using the number 1 (900) call-2-id. +Then call back at 1(800)ID-GAMES (1(800)434-3627), and use your new PIN to +receive all the support and hints you wish. + +4 -- id Software's Game Hints Line is accessible either using a PIN account +via 1 (800) ID-GAMES (see above), or by calling 1 (900) CALL2-ID, which +places the call on your phone bill. + + 1. Voice Support + Telephone -- 1 (800) id-games + + Lines Open from 12 noon to 10pm Central Time, 7 Days a + week ($1.75 per minute). Closed some holidays + + Please have the following information handy. + 1. Game title and version number. (The version + number can be found on the end text screen.) + 2. Your operating system, processor, processor + speed and amount of RAM. + 3. If you are having a sound, video or modem + problem, we need to know the device brand name + and model. + + 2. Automated Support + Telephone -- 1 (800) id-games + + Lines Open 24 hours a day, 365 days a year, or 366 days + in Leap years ($0.25 per minute) + + Please have pencil and paper handy. + + 3. E-mail Support + Just send your e-mail to support@idsoftware.com + + We will do our best to respond within 48 hours after + receiving your e-mail. + + When sending e-mail, cut and paste the following into your + e-mail message and fill in the blanks: + +Date: +Name: +Phone number: +E-mail address: (please include this, we redirect tons of mail) +Game Title: +Version #: +Operating system (eg., DOS 6.0 or Windows 95): +Computer type: +Processor type: +Processor speed: +Video card brand and model: (only if video problem) +Audio card brand and model: (only if audio problem) +Modem brand and model: (only if modem problem) +Network card brand and model: (only if netgame problem) +Network configuration (eg., NET.CFG file): (only if netgame problem) +Drivers, protocol stacks, and versions: (eg., lsl v2.14, exp16odi +v2.33, and ipxodi v3.01) (only if netgame problem) +If there were any error messages or fault information, report them +here: +Please state the problem you encountered: +Please state how to reproduce the problem: + + 4. Web Support + Found at www.idsoftware.com + + Our web support pages provide the same information that's + available via Automated Support, except it's free! + + 5. News Sites + For information, FAQ, or announcements: + rec.games.computer.quake.announce + For editing and hecking Quake-related files: + rec.games.computer.quake.editing + For general Quake discussion: + rec.games.computer.quake.misc + + 6. Game Hints Line + Telephone -- 1 (800) id-games or 1 (900) call-2-id + + Lines Open 24 hours a day, 365 days a year, or 366 days + in Leap years ($0.85 per minute) + You must be 18 years of age or have parental permission + to call 1 (900) call-2-id. + +B. In Europe + The help lines in Europe are open 7:30am - 5:00pm GMT, + Monday - Friday. + +English: +44 01923 209145 +German: +44 (0)1923 209151 +French: +44 (0)1923 209148 + +C. Problems + If you have an unfavorable experience using our services, please + send e-mail to 911@idsoftware.com. We would also like to hear + from you if you have something positive to share with us. Kindly + include your full name, address, phone number, and the problem + encountered or information you'd like to tell us about. diff --git a/doc/data/licinfo.txt b/doc/data/licinfo.txt new file mode 100644 index 000000000..f909e3818 --- /dev/null +++ b/doc/data/licinfo.txt @@ -0,0 +1,97 @@ +Here is a brief explanation of all the legal mumbo jumbo contained in the +various license agreements that may or may not be part of this package. + +(This document was designed to be a quick overview of our license terms. +You must refer to the full text of the license for a complete listing of +terms and conditions.) + +QUAKE SHAREWARE END USER LICENSE (slicnse.txt) or +What You Can and Cannot Do With the Shareware Version of Quake. + +CAN DO: +-- Play & Enjoy the single player game +-- Setup a shareware version based server on a not-for-profit basis + +CANNOT DO: +-- Run the game with user developed levels. +-- You may not commercially exploit the shareware version in any way + This specifically excludes retail distribution of the shareware + version. Do not call or e-mail to ask if you can be a retail + distributor of the shareware version -- the answer is no! +-- Commercially exploit any id copyrighted and/or trademarked property. + Example: Game names, logos, graphics, etc. + + +QUAKE REGISTERED VERSION END USER LICENSE (rlicnse.txt) or +What You Can and Cannot Do With the Registered Version of Quake. + +CAN DO: +-- Play & Enjoy the single player game +-- Setup a registered version based server on a not-for-profit basis +-- Develop new levels and/or level creation utilities. +-- Play the game and/or setup a Registered Version based server using + a user-developed level. + +CANNOT DO: +-- Commercially exploit the Registered Version of Quake in any way; + see commercially exploitation license info below. +-- Commercially exploit any id copyrighted and/or trademarked + property. + Example: Game names, logos, game graphics, etc. +-- Sell user-developed levels and/or tools + +COMMERCIAL EXPLOITATION LICENSE (comexp.txt -- accompanies Quake + registered version only) + +If you are interested in trying to make money using the registered version +of Quake (this sort of thing is not allowed using the shareware version) you +must sign our easy-to-digest Commercial Exploitation License. + +This is a royalty free license that allows you to run Quake for a profit +through a certain monthly gross profit range. If your Quake-related business +becomes successful the agreement brings id into the revenue stream. + +Basic terms of the commercial exploitation license: + +-- License grants a royalty free commercial exploitation right for the + registered version of Quake as a whole so long as Quake's monthly gross + revenue is below $5,000.00 + +-- License provides for a 12.5% royalty to be paid to id Software in months + where the licensee's Quake related monthly gross revenue is above $5,000.00 + +-- Royalty is based off net income. Net income is defined as Quake-related + gross income less Quake-related expenses. + +-- License expressly prohibits commercial exploitation via the sale (retail + or otherwise) of the shareware or registered versions of Quake. + +-- License expressly prohibits advertising/marketing use of our copyrighted + and/or trademarked properties. + +To get into bed with us on this deal you must print two (2) copies of the +document named comexp.txt. (You should find comexp.txt somewhere on the +registered version CD.) Sign/fill in the blanks of both copies where +indicated and mail both to: + + id Software + 18601 LBJ #666 + Mesquite, TX 75150 + Attn: ComExp License + +We will then countersign the documents and mail one back to you. + +Two items worth noting here: + +1. It is VERY IMPORTANT that the information you enter in the signature +block be legible. We prefer it if you enter the info into the blanks before +printing your two copies. If we cannot read your information we will not be +able to return the documents to you. + +2. The terms of this document are not subject to negotiation. If you cannot +live with the terms spelled out in the agreement do not engage in any +commercial exploitation of Quake and do not sign the document. + + + + diff --git a/doc/data/manual.txt b/doc/data/manual.txt new file mode 100644 index 000000000..0a4523678 --- /dev/null +++ b/doc/data/manual.txt @@ -0,0 +1,1030 @@ +Table of Contents + I. THE STORY + A. Background + B. Prelude to Destruction + + II. INSTALLING QUAKE + A. Installation + B. README.TXT + C. MANUAL.TXT + D. TECHINFO.TXT + + III. THE BASICS OF PLAY + A. Goal of the Game + B. Skill + C. Episode + D. Getting About + E. Finding Things + + IV. CONTROLS + A. Keyboard Commands + B. The Main Menu + C. Console + D. Command Line + E. Cheat Codes + + V. THE GAME + A. The Screen + B. Messages + C Ending a Level + D. Ending a Dimension + + VI. YOUR NEW ENVIRONMENT + A. Firepower + B. Ammo + C. Power-ups + D. Bad Guys + E. Environmental Hazards and Effects + + VII. MULTIPLAYER ACTION + A. Cooperative + B. Deathmatch + C. Team Games + + VIII. COMMONLY ASKED QUESTIONS + + IX. TECH SUPPORT + A. Tech Support Options + B. In Europe + C. Problems + + X. LEVELS AND DESIGNERS + + XI. LEGAL BOILERPLATE +**************** +I. THE STORY +A. Background + You get the phone call at 4 a.m. By 5:30 you're in the secret + installation. The commander explains tersely, "It's about the Slipgate + device. Once we perfect these, we'll be able to use them to transport + people and cargo from one place to another instantly. + + "An enemy codenamed Quake, is using his own slipgates to insert death + squads inside our bases to kill, steal, and kidnap.. + + "The hell of it is we have no idea where he's from. Our top scientists + think Quake's not from Earth, but another dimension. They say Quake's + preparing to unleash his real army, whatever that is. + + "You're our best man. This is Operation Counterstrike and you're in + charge. Find Quake, and stop him ... or it ... You have full authority + to requisition anything you need. If the eggheads are right, all our + lives are expendable.." + +B. Prelude to Destruction + While scouting the neighborhood, you hear shots back at the base Damn, + that Quake bastard works fast! He heard about Operation Counterstrike, + and hit first. Racing back, you see the place is overrun. You are almost + certainly the only survivor. Operation Counterstrike is over. Except for + you. + + You know that the heart of the installation holds a slipgate. + Since Quake's killers came through, it is still set to his dimension. + You can use it to get loose in his hometown. Maybe you can get to the + asshole personally. You pump a round into your shotgun, and get moving. + +II. INSTALLING QUAKE +A. Installation + You must install Quake before you can play it. It will not run off the + CD-ROM. Place the CD-ROM into your drive, log on to that drive, and type + 'INSTALL'. If you have downloaded Quake via modem, simply go to the + directory you've placed Quake in, unzip it, and type 'INSTALL'. + +B. README.TXT + After you install Quake, you go right into the README.TXT file, which is + henceforth available in your Quake directory. This is a full listing of + Quake's technical parameters, and is constantly updated with new versions + of Quake. We strongly recommend that after you install Quake, you glance + through README.TXT. + + You may wish to print this file out, so you can have a copy of it on hand + while playing Quake. + +C. MANUAL.TXT + Also available in your Quake directory is a file labeled MANUAL.TXT. + This is the file you are now reading. + +D. TECHINFO.TXT + For those who are more technically inclined, or to fill out a bug report, + check out TECHINFO.TXT. Information on filling out a bug report is located + at the end of TECHINFO.TXT. + + +III. THE BASICS OF PLAY +A. Goal of the Game + Quake has two basic goals. First, stay alive. Second, get out of the + place you're in. The first level of each episode ends in a slipgate -- + these signify thatyou're entering another dimension. When you complete + an entiredimension (this takes six to eight levels), you'll find a + Rune and another slipgate, which returns you to the start. + +B. Skill + The start area has three short hallways. The one you go down selects + the Skill you wish to play at. + Easy -- This is meant for little kids and grandmas. + Medium -- Most people should start Quake at Medium skill. + Hard -- Here at id, we play Hard skill, and we think you should too, + once you're ready. + (Nightmare) -- This is so bad that the entry is hidden, so people + won't wander in by accident. If you find it, don't say we didn't warn + you. + +C. Episode + After the Skill halls, you're in a room with four exits. Each exit + leads to a different military complex, at the end of which is a + slipgate leading to a new dimension. If you have not registered, the + first episode, Dimension of the Doomed, is the only place you can go. + After registration, all four episodes are available. The other three + episodes, in order from second to fourth, are Realm of Black Magic, + Netherworld, and The Elder World. + +============================================================================= +== TIP -- From episode 1 to episode 4, the dimensions become progressively == +== more difficult. We suggest you play the episodes in the proper order to == +== get the maximum fun out of Quake. == +============================================================================= + +D. Getting About + The specific keys named below can be changed by using the Configure Keys + Menu. If you have renamed Run as the R key, for instance, then the Shift + key will not double your speed. + Walk + Use the arrow keys or the mouse. To walk steadily forward, hold down + the Forward key (up arrow or center mouse button). Turn left or right + with the left or right arrow keys or sliding your mouse to the left or + right. + Run + Hold down Run (the Shift key) to double your speed. + Jumping + Tap the Jump key (the space bar or Enter key). You jump further if + you're moving forward, and you jump higher if you're moving up a slope at + the time. You'll be surprised at the spots you can reach in a jump. You + can even avoid some attacks by jumping at the right time. + Swimming + When underwater, aim yourself in the direction you wish to go, and + move forward. You have full three-dimensional freedom. Unfortunately, + as in real life, you may lose your bearings while underwater. Use + jump (the space bar or Enter key) to kick straight up towards the + surface. Once on the surface, tread water by holding down jump. + To get out of the drink, swim towards the shore. Once there, use jump + to clamber up. If you're down a well or you can't get a grip, you may + not be able to climb out. There is always another way out, but you may + have to submerge to find it. + Shooting + Tap the Shoot key (the Ctrl key or left mousebutton) to fire. Hold it + down tokeep firing. + Use + Quake has no "Use" function. To push a button or open a door, walk up + to it. To ride a platform up or down, step atop it. If a door won't open + or a platform won't lower, you may need to do something special to + activate it. + Picking up stuff + To pick up items, weapons, and power-ups, walk over them. If you can't + pick up something, it means you already have the maximum possible of + that thing. If it is armor, it means the stuff you're trying to get is + worse than what you now have. + +E. Finding Things + Buttons and Floorplates + Buttons activate with a touch, and floorplates must be stepped on. + If you see a distinctive-looking button in a spot you cannot reach, + it's probably a shootable button-- fire at it. + Doors + Most doors open at your approach. If one doesn't, seek a button, + floorplate, or key. + Secret Doors + Some doors are camouflaged. Almost all secret doors open when they are + shot or hit with an axe. The rest are opened by hidden pressure plates + or buttons. + Platforms + Most platforms only go up and down, while some follow tracks around + rooms or levels. When you step atop of a platform, it rises to its + full height, and usually only lowers when you step off. Some platforms + must be activated via button or pressure plate. + Pressure Plates & Motion Detectors + Invisible or visible sensors which open doors, unleash traps, warn + monsters, etc. + Uncovering Secrets + Secrets are hidden lots of ways. You might need to shoot a button, kill + a monster, walk through a secret motion detector, etc. + The Secret of Secrets + All secrets in Quake are indicated by clues. Don't waste your time + hacking at every wall. It's much more productive (and fun) to use your + brain and your eyes. Look up. An angled texture, a light shining under + a wall, a strange sound -- anything -- might be the clue. Something + prominent in a room might be decoration ... or it might be the clue. + +============================================================================= +== TIP -- Bouncing a grenade off a shootable button or secret door won't == +== open it, but if the grenade's explosion goes off nearby, this may == +== activate such secrets. == +============================================================================= + +IV. CONTROLS +A. Keyboard Commands + By using the key configuration option from the Main Menu, you can + customize the keyboard to suit your fancy, except for the Function keys, + the Escape key, and the ~ (tilde) key. + +FUNCTION KEYS +Help F1 +Save Game F2 +Load Game F3 +Options Menu F4 +Multiplayer Menu F5 +Quicksave F6 +Quickload F9 +Quit to operating system F10 +Screenshot F12 + +WEAPONS +Axe 1 +Shotgun 2 +Double Barrelled Shotgun 3 +Nailgun 4 +Supernailgun 5 +Grenade Launcher 6 +Rocket Launcher 7 +Thunderbolt 8 +Change to next weapon / + +MOVEMENT +Move / Turn arrow keys +Jump / Swim Space bar or Enter +Run Shift +Sidestep Left . or > +Sidestep Right , or < +Strafe * Alt +Swim Up D +Swim Down C + +OTHER CONTROLS +Main Menu Escape +Console ~ (tilde) +Look Up A or PgDn +Look Down Z or Del +Center View X or End +Mouse Look ** \ or center mouse button +Keyboard Look *** Ins + + * Turning right or left sidesteps instead while the Strafe key is pressed. + ** Sliding your mouse forward and back looks up and down while the Mouse + Look key is pressed. +*** The walk forward/backpedal arrows will look up and down while the + Keyboard Look key is pressed. + +B. The Main Menu + Tap the Escape key to pop up the Main Menu. While you are in the menu, + the game is paused. + Use the arrow keys to move the Quake icon up and down the menu. Place + the icon before the desired option, and tap the Enter key. To return to the + Main Menu, tap the Escape key again. To exit the menu and return to the + game, tap the Escape key when you are on the Main Menu. + + NEW GAME + Discards the game you're playing, and starts anew. + + MULTIPLAYER + Controls multiplayer game starting and details... + Name + Type your name or alias here, and all messages about you will use + this. So the computer says stuff like, "Josephine rides Bad Bill's + rocket." + Shirt Color + Lets you select your character's uniform color from 14 different + options (numbered 0-13). + Pants Color + As above, but your pants color also determines what team you're on, + if in team play. (After all, pants are more important than shirts.) + Communications Configuration + Takes you to a separate menu on which you can change communications + settings. + Com Port + Selects the COM Port to use for Communications. A null modem or + modem must be connected to this port. + Baud Rate + Selects the COM port baud rate (9600-57600bps). This is NOT the + same as setting the modem speed. The COM port speed must be AT + LEAST the same speed as the modem speed. + Device + Selects the type of connection, either direct (null-modem) or + modem. + Modem Init String + The Initialization string for the modem. + + Start a Multiplayer Game + If you want your machine to be the host for a multiplayer game + (Note: if you are starting a listen server, id Software strongly + recommends that the fastest machine act as the host! If you are + playing a game with more than 4 players, we suggest using a + dedicated server as the host!), select this option, and you'll get + the following menu ... + Begin Game + Starts up the game. Now all your friends have to do is log on, + using either "search for local network games" or "join a + running game at..." Multiplayer options (see below). + Maximum Players + You can have up to 16 players. You need at least 2, or it's not + "multiplayer", right? + Game Type + Toggles between cooperative and deathmatch. + Team Color Rules + Toggles between "none" and "no friendly fire". In the latter mode, + your shots won't injure someone wearing the exact same color + pants as you. + Skill + Chooses skill level. Only applicable in a cooperative game. + Frag Limit + From none to 100, in ten-frag increments. When someone reaches + the frag limit, by killing the 40th (or whatever) person, then + the game ends immediately, and final scores are printed. If your + frag limit is none, the game won't end till someone exits the + level or the time limit expires. + Time Limit + From none to 60 minutes, in 10 minute increments. When the time + limit is up, the game ends immediately, and final scores are + printed. If your time limit is none, the game won't end till + someone exits the level or the frag limit is reached. + Start Map + Lets you choose what map you'd like to play on. The top line + gives you the episode name, and the lower line is the level's + name. Note that all levels in Quake are fun to play, but the + episode Deathmatch Arena is composed of special levels that are + solely-designed for deathmatch play. Try them, you'll like them. + Search For Local Network Games + Has your computer look through your network. It will list all the + games it finds on the console, and you can choose to join one of + them by typing connect . + Join A Running Game At ... + Lets you join a game either by typing its net address (for a net + game) or your friend's modem phone number (for a modem game). + If necessary, ensure your modem and network connections are operative + by checking your Communications Configuration menu. + + SAVE + Brings up a list of saved games. Highlight the desired slot, and tap the Enter key. Each saved game is identified by the level's name, plus the + proportion of kills you have achieved so far. + LOAD + Brings up a list of saved games. Highlight the desired slot, and tap the + Enter key. + OPTIONS + Miscellaneous game options ... + Configure Keys + Permits you to customize Quake so every action is linked to the + button or key that you prefer. + First, move the cursor (via the arrow keys) to the action you + wish to change. Then tap the Enter key. Now press the key or + button you want to bind to that action. For instance, if you wish + to use the Alt key for Jump, move the cursor to Jump / Swim, tap + the Enter key, then press the Alt key. + Each action can have two different keys assigned to it. If you + already have two keys in an entry, you cannot add more from this + menu. + To clear the keys bound to an action, move the cursor to that + action and tap the Backspace or Delete key instead of the Enter + key. This will clear the keys formerly bound to that action, + leaving it blank. + You can bind any key to an action except Function keys, the + Escape key, and the ~ (tilde) key. "Weird" keys such as Scroll + Lock, Print Screen, etc. may or may not work, depending on your + machine, but why bother? + + Attack + Fires your weapon + Change Weapon + Switches to the weapon "above" the one you're now using. Wraps + around to the axe. + Jump / Swim Up + If you're on land, jumps. If you're underwater, kicks you + towards the surface. If you're right at the water's edge, pops + you up out of the water, if you combine it with forward + movement. + Walk Forward + Backpedal + Turn Left + Turn Right + Run + Press this while moving, and you move at double speed. + Step Left + Sidesteps (strafes) left + Step Right + Sidesteps (strafes) right + Sidestep + Press this when using turn left or turn right and you sidestep + (strafe) instead. + Look Up + Lets you angle your view upwards. Your view returns to + horizontal when you start walking forward. + Look Down + Lets you angle your view upwards. Your view returns to + horizontal when you start walking forward. + Center View + If you're looking up or down, returns your view to dead + center. + Mouse Look + Press this to allow your mouse to look up or down (by + sliding it forward and back), and to remain looking up or + down even if you move forward. + Keyboard Look + Press this to use your movement keys to look up or down. + Go To Console + Brings down the Console. Also possible by tapping the + ~ (tilde) key. + Reset To Defaults + Everything you've changed in the options menu is reset by + this option. Consider it an "Oops" key. + Screen Size + A slider which enlarges or shrinks your view area. All + Quake's sliders use the right and left arrow keys. + Brightness + Pretty much self-explanatory. Choose a brightness which + doesn't strain your eyes. + Mouse Speed + Adjusts mouse sensitivity. The further you set the slider + to the right, the quicker your mouse reacts. + Music Volume + Self-explanatory + Sound Effects Volume + Self-explanatory + Always Run + When this is selected, you do not need the Run key -- you + are always at double speed. + Invert Mouse Up / Down + This gives your mouse "airplane-style" controls. This means + that pushing the mouse forward "noses down", and pulling it + back "noses up". Some people prefer this control technique. + Lookspring + Returns your view immediately to straight ahead when you + release the look up / down key. Otherwise, you must move + forward for a step or two before your view snaps back. + Lookspring does not work while you are underwater. + Lookstrafe + If you are using the look up / down key, then this option + causes you to sidestep instead of turn when you try to move + left or right. + + HELP / ORDERING + Lists the default keyboard and mouse commands. Also contains the + information you need to register Quake. + QUIT + Exits Quake at once. + +============================================================================= +== TIP -- Quake saves your current key configuration when you quit, so == +== next time you play, you have the same configuration. == +============================================================================= + +C. Console + Tap the ~ (tilde) key to bring down the console. As with the Main Menu, + when the console is down, a singleplayer game is paused. A wide variety of + esoteric commands can be entered at the console. If your keyboard has no + ~ (tilde), the Options Menu (inside the Main Menu) has a "Console" option. + +D. Command Line + For special command line parameters, see README.TXT. + +E. Cheat Codes + id Software, as in our previous games, has removed all cheat codes from + Quake. + +V. THE GAME +A. The Screen + The large top part of the screen is the view area, in which you see + monsters and architecture. Immediately below is the Inventory, beneath + which is the Status Bar. You can enlarge the viewing area (tap the + key), + so much that it engulfs first the Inventory Bar and then the Status Bar. + The - key shrinks the view area. + + Inventory Bar + Lists ammo, weapons, deathmatch scores, and power-ups. + The active weapon is lit up. Each weapon has a number by it -- type + the appropriate number key to switch to that weapon. + In addition, this gives the amount of ammo you have of each type, + any keys you possess, and any power=ups currently active. Plus it shows + how many and which of the four Runes you possess. + In Deathmatch, it shows the top four scores in the game. + + Status Bar + A vital part of the screen. When your armor, hit points, or ammo get + low, the number turns red. + From left to right, the big numbers represent: Armor Points, Health, + and Ammo (of the current weapon). Icons show the Armor Type (green, + yellow, or red), your adorable face, and your Ammo Type). + + Score Bar + Hold down theTab key to replace the Status Bar with the Score Bar. + This lists the proportion of monsters you've killed, secrets you've + found, and time you've spent, along with the level name. + In Deathmatch, the Score bar lists the top six scorers, along with + their names. + +B. Messages + Quake talks to you from time to time. Some messages appear at the top of + the screen. These are non-critical, and tell you that you've picked up an + object, or you've died in an interesting fashion. Ignore these messages if + you please. + Certain messages appear inconveniently in the middle of your view. These + are always important, and you do not want to ignore them! + +D Ending a Level + Once you finish a level, you'll find a slipgate or a distinctive archway + leading to the next level. Pass through to emerge onto a new level. + You start the new level with the same armor, weapons, and ammo you had at + the end of the previous one. If a power-up was active at the end of the + previous level, it is now, sadly, gone. Make the best of it. If your hit + points were over 100 or under 50, they are altered to 100 or 50, + respectively. Otherwise, your hit points are unchanged. + +D. Ending a Dimension + Once you've finished all the levels in a particular dimension, you return + to the starting hall. New dimensions are started from scratch -- you, your + shotgun, and axe. + +VI. Your New Environment +A. Firepower + You are blessed with eight different Means o' Mass Destruction. Each has + its place in a balanced diet. + + Axe + The last resort. Face it -- going toe-to-toe with the uglies in Quake + demonstrates all the good sense of a man parachuting into an alligator + farm. + + Shotgun + The basic gun, to which all other guns compare favorably. + + Double-barrelled Shotgun + A worthy weapon with three minor drawbacks: first, it uses up 2 shells + per blast; second, it's slow; third, its shot pattern is very loose at + long range. But in general, once you find this puppy, the other shotgun + starts rusting from disuse. + + Nailgun + A two-barrel dingus that prickles bad guys with armor-piercing darts, + technically termed "nails". + + Supernailgun + The great equalizer. Four cyclic barrels that hose out spikes like + crazy. Pro: foes drop like flies. Con: eats ammo like popcorn. + + Grenade Launcher + Thumps neat exploding bombs into the air. You can even bounce a grenade + off the wall or floor.. When a grenade hits someone, it explodes. + If it misses, the bomb sits on the floor for a moment, then explodes. + Even though I sometimes bounce grenades into myself, this gun's still + my favorite. + + Rocket Launcher + For when a grenade positively, absolutely, has to be there on time. + + Thunderbolt + Try it. You'll like it. Use the same technique as watering your + rosebush. + + Switching Between Weapons + If you are firing a weapon and run out of ammo, Quake automatically + switches you to another weapon. It will never switch to the grenade + launcher or rocket launcher, however, for reasons that ought to be + obvious. So if you're firing away happily and suddenly switch to the + axe, it doesn't mean you're out of all ammo -- you may still have + grenades. But Quake requires you to select such dangerous + explosives on your own. + +============================================================================= +== TIP -- If you shoot the Thunderbolt underwater, it discharges all its == +== cells in every direction in a single gigantic KA-ZAP, with you at the == +== center. Don't try this at home. == +============================================================================= + +B. Ammo + The eight weapons use four types of ammo. Each ammo type comes in two + flavors -- small and large. The large boxes carry twice as much as the + small. + + Shells + For shotguns and double-barrelled shotguns. A small box holds 20. + + Flechettes + For nailguns and supernailgunss. A small box holds 25. + + Grenades + For grenade launchers and rocket launchers. A small crate holds 5. + + Cells + For Mr. Thunderbolt. A small battery has 6 charges, lasting a little + over a second. + +C. Power-ups + All power-ups except armor burn out after a while, so smoke 'em while you + got 'em. + + Armor + Comes in three flavors; green, yellow, and red, from weakest to most + powerful. + + Megahealth + Gives you 100 additional hit points. After a few seconds, all hit points + over 100 start slowing draining away, because it's too much for the human + frame to hold. Still, it's nice while it lasts. + + Biosuit + lets you breathe underwater and swim through slime without harm. Does + not protect against lava. + + Ring of Shadows + Renders you almost totally invisible. Only your eyes can be seen. + Monsters don't detect you unless you do something stupid. Like shoot. + + Pentagram of Protection + Renders you invulnerable. + + Quad Damage + Magnum upgrade! You now deliver four times the pain! + +============================================================================= +== TIP -- When quad damage is activated, use the grenade or rocket == +== launcher with care -- their bursts are four times as deadly to you, as == +== well as your enemies. == +============================================================================= + +D. Bad Guys + Quake critters are extremely tough, but you have the firepower to vent + your grievances on them anyway. Good hunting. + + Rottweiler + Bad, bad doggie! Play dead! -- blam! -- yipe! Good dog! + + Grunt + Goons with probes inserted into their pleasure centers; wired up so + when they kill someone, they get paroxysms of ecstasy. In essence, + customized serial killers. Easy to kill, and they tote shotgun shells. + It's like a little Christmas each time you blow a Grunt away! + + Enforcer (registered only) + Grunt, Mark Two. Recruits who are surlier and beefier than the rest get + outfitted in combat armor and built-in blasters. + + Knight + Canned meat. Open 'er up and see if it's still fresh. + + Death Knight (registered only) + This particular canned meat tends to open you up instead. + + Rotfish (registered only) + Disgusting little critters who dish it out, but can't take it. + + Zombie + Thou canst not kill that which doth not live. But you can blast it + into chunky kibbles. + + Scrag + Floats like a butterfly, stings like a bee. Ugly as hell. They're not + real tough, but like to bushwhack you. + + Ogre + What's worse than a cannibal monster eight feet tall? One with a + chainsaw. And a sack of grenades. + + Spawn (registered) + A merrily bouncing blob as dangerous to kill as to ignore. Blech. + + Fiend + In essence, organic buzzsaws, rife with pummeling power! + + Vore (registered) + A spideresque hybrid horror. Keep your eye on the energy pod he hurls. + + Shambler + Even other monsters fear him, so expect a clobbering. He shrugs off + explosions. Good luck. + +============================================================================= +== TIP -- Some weapons are better vs. particular monsters than others. If == +== a new monster seems real tough, switch weapons. == +============================================================================= + +E. Environmental Hazards and Effects + + Explosions + Radioactive containers are in some military bases. Shooting these + things unleashes a big boom, so be careful -- you may not want to + stand too close in a firefight. + Your own grenades and rockets cause explosions too, of course -- the + blast can hurt you if you're too close. + + Water + Safe enough unless you stay under so long you start to drown. Come up + for air periodically to prevent this. + + Slime + Hurts you instantly and keeps on hurting. Stay out of slime unless you + have a very good reason to take a dip. + + Lava + If you're quick and the lava's shallow, you might escape before you're + burnt to a crisp, but don't bet on it. + + Traps + Quake has many different traps. Don't be paranoid, because traps aren't + really very common, but be aware of their existence. Traps can't be + classified because they come in many varieties -- monsters in ambush, + spike shooters, crushing walls, trapdoors, etc. + + Teleporters + These are distinctive in appearance and emit a unique sound. When you + step into a teleporter, you're instantly transported to another + teleporter, or atop a teleport pad. If you teleport directly right atop + of somebody else, he or she is killed instantly. + +============================================================================= +== TIP -- Monsters are smart enough not to activate their own traps, but == +== if you activate the traps, the monsters can get caught by them. == +============================================================================= + +VII. Multiplayer Action + Quake can be even more fun when you're playing with friends than when + you're playing by yourself. + When you are using the console or Main Menu in multiplayer, the game does + not pause. Irresponsible players and monsters can freely shoot you, and + your only recourse is bloodthirsty vengeance. + The Talk function is useful here. When you talk, the message appears at + the top of all players' screens, preceded by the speaker's name. + To talk, press 'T' and start typing your message. Press ENTER to set + the message to everyone. + To set up, run, or join a multiplayer game, use the Main Menu Multiplayer + option. README.TXT contains details that may be useful if your network or + modem need special configurations. + +A. Cooperative + In a co-op game, you and your friends work together to finish the level. + When one person exits, everyone else exits too, wherever they might be. If + you are killed in co-op, you reappear at the start area, and have to catch + up to your buddies. Use Talk to find out where they are. See the + Multiplayer options on the Main Menu for more info. + +B. Deathmatch + In a deathmatch, play is totally cutthroat. No monsters exist, and when + you are killed, you reappear in a random spot. After you pick up an item, + it respawns (i.e. pops back into existence) after a while. (Some items + take longer to respawn than others.) Every time you kill someone, you get + a Frag. The person with the most Frags wins, so wreak slaughter amongst + your pals! + If you kill yourself, whether intentionally or by accident, you lose a + Frag. This includes drowning, getting crushed, and so forth. See the + Multiplayer options on the Main Menu for more info. + +C. Team Games + Team play is a cool combination of co-op and deathmatch. Each team picks + a "uniform" and everyone on that team changes their color to the team + color. The team with the most Frags wins. See README.TXT or the Main Menu + for details. + +============================================================================= +== TIP -- if you have the Team Color Rules set to No Friendly Fire, your == +== weapons won't hurt other players wearing the same color pants as you. == +== (You can still have differently-colored shirts.) Your shots still wear == +== down their armor, and your own grenade and rocket explosions still hurt == +== YOU, just not them. == +============================================================================= + +VIII. Commonly Asked Questions + +Q. I'm stuck. How do I get through the level? +A. Take a stroll around and look for a place you haven't been yet. Sometimes +you have to kill a particular monster in order to progress, so exterminate +them all! + +Q. How can I find all the secrets? +A. Don't worry about it. You never have to find a secret to finish a level.. +Also, some secrets are intentionally hard to find. + +Q. I've cleared out the whole level, but my monster kill score isn't 100%. +Where are they hiding? +A. Some monsters hide inside secrets, or are released by them. You won't be +able to kill those monsters until you find their secrets. Also, some monsters +might lurk underwater. Good fishing. + +Q. Don't you worry that Quake teaches people that all problems can be solved +by the misuse of deadly force? +A. No. + +Q. Did I really see two monsters fighting each other? +A. Probably. Some monsters hate one another almost as much as they hate you. +You can use this to your advantage (exercise left up to the reader). + +Q. How do I prevent motion sickness when watching Quake? +A. If you're one of the unlucky sufferers from motion sickness in Quake, +we're sorry to say the answer seems to differs from person to person. Try +sitting closer to the screen, or further away. Dim the lights in your room, +or turn them up high. Adjust screen brightness up or down. Take a break from +Quake and rest your eyes every hour or so. One or more of these tricks, or a +combination, ought to work. + +Q. Are you guys Satan-worshipers? +A. No. + +IX. Tech Support + Any of the information listed below could change. Check the id software Web +Site, at www.idsoftware.com, for updates. + +A. Tech Support Options +id Software does charge for technical support, but we strive to offer this +service at the lowest cost possible. Because volume on the support lines +dictates costs, we periodically adjust our rates for Voice Tech Support. +Check our web site for current pricing. + +Paying for Voice or Automated Support + 1 -- You can get Voice Support using a major credit card for a one-time + shot. The system asks for your credit card number and expiration date, then + pre-authorizes your credit card for the tech support call. You will only be + billed for the number of minutes actually used. + + 2 -- You can assign yourself a rechargeable PIN account. The system + prompts you for your credit card information, and assigns you a PIN account + number. You can use the PIN to access Voice Support, Automated Support and + the Game Hints Line. Once your account runs out, you can charge it up + again. + + 3 -- You may also charge up a PIN account using the number + 1 (900) call-2-id. Then call back at 1 (800) id-games, and use your + new PIN to receive all the support and hints you wish. + +Voice Support +Telephone -- 1 (800) id-games + Lines Open from 12 noon to 10pm Central Time + 7 Days a week ($1.75 per minute maximum as of this printing) + Closed some holidays +Please have the following information handy. + 1. Game title and version number. (The version number can be found in the + lower right-hand corner of the console.) + 2. Your operating system, processor, processor speed and amount of RAM. + 3. If you are having a sound, video or modem problem, we need to know the + device brand name and model. + +Automated Support +Telephone -- 1 (800) id-games + Lines Open 24 hours a day, 365 days a year (366 in Leap year) + ($0.25 per minute) +Please have pencil and paper handy + +E-mail Support + Just send your e-mail to support@idsoftware.com + We will respond within 48 hours after receiving your e-mail. When sending + e-mail, cut and paste the following into your e-mail message and fill + in the blanks -- + +Date: +Name: +Phone number: +E-mail address: (please include this, we redirect tons of mail) +Game Title: +Version #: +Operating system (eg., DOS 6.0 or Windows 95): +Computer type: +Processor type: +Processor speed: +Video card brand and model: (only if video problem) +Audio card brand and model: (only if audio problem) +Modem brand and model: (only if modem problem) +Network card brand and model: (only if netgame problem) +Network configuration (eg., NET.CFG file): (only if netgame problem) +Drivers, protocol stacks, and versions: (eg., lsl v2.14, exp16odi +v2.33, and ipxodi v3.01) (only if netgame problem) +If there were any error messages or fault information, report them +here: +Please state the problem you encountered: +Please state how to reproduce the problem: + +Web Support + Found at www.idsoftware.com + Our web support pages provide the same information that's available via + Automated Support, except it's free! + +News Sites + For information, FAQ, or announcements, check out + rec.games.computer.quake.announce + + For editing and hecking Quake-related files, check out + rec.games.computer.quake.editing + + For general Quake discussion, check out + rec.games.computer.quake.misc + +Game Hints Line +Telephone -- 1 (800) id-games or 1 (900) call-2-id + Lines Open 24 hours a day, 365 days a year (366 in Leap year) + ($0.85 per minute) + +B. In Europe + Our help lines in Europe are open 7:30am - 5:00pm GMT, Monday - Friday. + + English: +44 01923 209145 + German: +44 (0)1923 209151 + French: +44 (0)1923 209148 + +C. Problems + If you have an unfavorable experience using our services, please send + e-mail to support@idsoftware.com. Kindly include your full name, + address, phone number, and the problem encountered. + +X. LEVELS & DESIGNERS + +*************************************** +The Beginning +start -- Welcome to Quake -- by John Romero +*************************************** +Dimension of the Doomed (shareware episode) +e1m1: Slipgate Complex -- by John Romero +e1m2: Castle of the Damned -- by Tim Willits +e1m3: The Necropolis -- by Tim Willits +e1m4: The Grisly Grotto -- by Tim Willits +e1m5: Gloom Keep -- by Tim Willits +e1m6: The Door To Chthon -- by American McGee +e1m7: The House of Chthon -- by American McGee +*************************************** +Realm of Black Magic +e2m1: The Installation -- by John Romero +e2m2: Ogre Citadel -- by John Romero +e2m3: Crypt of Decay -- by John Romero +e2m4: The Ebon Fortress -- by John Romero +e2m5: The Wizard's Manse -- by John Romero +e2m6: The Dismal Oubliette -- by John Romero +*************************************** +Netherworld +e3m1: Termination Central -- by John Romero +e3m2: The Vaults of Zin -- by American McGee +e3m3: The Tomb of Terror -- by American McGee +e3m4: Satan's Dark Delight -- by American McGee +e3m5: Wind Tunnels --by Tim Willits +e3m6: Chambers of Torment -- by American McGee & Tim Willits +*************************************** +The Elder World +e4m1: The Sewage System -- by Tim Willits +e4m2: The Tower of Despair --by Sandy Petersen +e4m3: The Elder God Shrine --by Sandy Petersen +e4m4: The Palace of Hate --by Sandy Petersen +e4m5: Hell's Atrium --by Sandy Petersen +e4m6: The Pain Maze --by Sandy Petersen +e4m7: Azure Agony --by Sandy Petersen +*************************************** +The End +end: Shub-Niggurath's Pit --by John Romero +*************************************** +The Deathmatch Arenas +dm1: Place of Two Deaths --by Tim Willits +dm2: Claustrophobopolis --by American McGee +dm3: The Abandoned Base --by John Romero +dm4: The Bad Place --by American McGee +dm5: The Cistern --by Tim Willits +dm6: The Dark Zone --by Tim Willits +*************************************** +??? +Ziggurat Vertigo --by American McGee +Underearth --by Tim Willits +The Haunted Halls -- by American McGee +The Nameless City -- by Sandy Petersen +*************************************** + +XI. Legal Boilerplate + Quake (tm) (c) id Software, Inc. All rights reserved. All trademarks are + the property of their respective companies. For full information on the + legal issues of owning and using Quake, please refer to the files + LICINFO.TXT and ORDER.TXT. + +The program you've purchased was produced through the effort of many people. +Don't make copies for others who have not paid for the right to the +registered version of Quake. To report copyright violations to the Software +Publishers Association, call 1 (800) 388-PIR8 or write: + + Software Publishers Association + Suite 901 + 1101 Connecticut Avenue NW + Washington, DC 20036 + +XII. MUSIC CREDITS + +Titles of Songs or Themes (C) 1996 TVT/Interscope Records. +All Rights Reserved. +Written by Trent Reznor (C) 1996 Leaving Hope/TVT Music. +ASCAP All Rights Reserved. + +Note: music is ONLY available on CD. See your local software retailer +or order Quake today at 1-800-idgames! + +XIII. Thanks + +id Software would like to give special thanks to: + +Sean Barrett +Raymond Chen +DJ Delorie +Andy Glew +Lance Hacking +Chris Hecker +Todd Laney +Terje Mathisen +Charles Sandmann +Jon Vondrak +Billy Zelsnack +The GameTech crew +Syntrillium Software for CoolEdit diff --git a/doc/data/order.txt b/doc/data/order.txt new file mode 100644 index 000000000..fb4598d5c --- /dev/null +++ b/doc/data/order.txt @@ -0,0 +1,103 @@ +ORDERING INFO + To order the full version of Quake (or any other id Software +product) in North America, call our fulfillment center at 1-800-idgames +(1-800-434-3627). Except as noted by our operators, you can expect +Airborne Express afternoon delivery. The price for the full version +of Quake (available on PC CDROM only) is $45, plus $5 shipping, for a +total of $50. Our fulfillment center accepts Visa, Mastercard, and +American Express. You can also fax, mail, or email your order using +the attached forms. The fax number is (317) 361-3710 and the email +address is idsoftware@stream.com. To prepay and order with a check +by mail, send your check and the order form to: + + id Software + P.O. Box 4500 + Crawfordsville, IN 47933 + + To see an electronic catalog of our software, tshirts, hint books, and + other merchandise available, check out the Shopping Maul section of our + website at www.idsoftware.com. + +INTERNATIONAL ORDERS +Quake is available worldwide as a full retail product. To find out +which local stores carry Quake and other id products, contact the +following international affiliates: + +Europe Australia +GT Interactive Software Roadshow New Media +1712 583791 (U.K.) 1 902 962000 + +Taiwan Singapore +U.S. Summit Corporation Summit Co. (Singapore) Pte. Ltd. +706-0660 273-9988 + +Malaysia Honk Kong +Summit Co. (Malaysia) Sdn Bhd Tsun Tsun Trading Company +757-2244 571-4231 + +Thailand Israel/Jordan/Lebanon/Egypt +U.S. Summit Corp. (Overseas) Mirage Mulimedia +374-3956 972 3 510 5764 + +If you are in a territory that cannot access 1(800)idgames, and you +wish to order our products directly, you must place your order in +writing to the fax, mail, or email addresses listed above under +ORDERING INFO. + +International phone orders will NOT be accepted. Unfortunately, due +to international shipping costs, all international orders are sent +out via US Mail. This means we cannot guarantee timeliness of delivery +due to customs and other delays inherent to international shipping +______________________________________________________________________ + ORDER FORM -- USE THIS FORM TO FAX , MAIL OR EMAIL YOUR ORDER. + +id Software Order Center Date ______________ +PO BOX 4500 Phone: 1800 id games +Crawfordsville, IN 47933 Fax: (317) 361-3710 + idsoftware@stream.com + + +Product List and Prices in U.S. Currency: (check items) + +Quake (CD ROM only) $45 ____ +The Ultimate DOOM (Mac version available – must specify) $25 ____ +DOOM II (Mac version available – must specify) $40 ____ +Master Levels for DOOM II (CD ROM only) $25 ____ +Final DOOM (CD ROM only) $40 ____ +DOOM Hint Book $15 ____ +Original DOOM Tshirt (S,M.L.XL) $13 ____ +The Ultimate DOOM Tshirt (XXL only) $13 ____ +Final DOOM Tshirt $13 ____ +Heretic:Shadow of the Serpent Riders (CD ROM only) $40 ____ +Heretic Hint Book $15 ____ +Hexen:Beyond Heretic (Mac version available – must specify) $40 ____ +Hexen:Deathkings of the Dark Citadel (CD ROM only) $25 ____ +Hexen Hint Book $15 ____ +Hexen Tshirt (XXL only) $13 ____ +Wolfenstein 3D (PC CD only) $20 ____ +Commander Keen (3.5 disk only) $15 ____ + + Order total: $______ + +Name: Age (optional): + +Form of payment (check, money order, or credit card): + +Credit card number: Expiration Date: + +Exact mailing address:______________________________________ + _______________________________________ + _______________________________________ + _______________________________________ + +Phone: Fax: Email: + +Shipping: US orders-$5.00 first product/$2.00 each additional +(allow 3-5 business days) + +International shipping for prepaid orders are via US Mail, and +we cannot guarantee the time it will take to arrive. + +*Prices subject to change + + diff --git a/doc/data/readme.txt b/doc/data/readme.txt new file mode 100644 index 000000000..fc62729f3 --- /dev/null +++ b/doc/data/readme.txt @@ -0,0 +1,456 @@ +Welcome to Quake! + +This file details how to get Quake running on your system and what to do +if you have problems. We would like to thank Gandalf Technologies, Inc and +MPath Interactive for the use of their technology. We would also like to +thank Trent Reznor and Nine Inch Nails for their tremendous contributions +to Quake's entire audio portion. + +The NIN logo is a Registered Trademark licensed to Nothing Interactive, Inc. +All Rights Reserved. + +Quake System Requirements +------------------------- +IBM PC and Compatibles +Pentium processor or better +VGA Compatible Display or better +8MB RAM minimum, 16MB recommended (16 MB required for running under Win95) +CD-ROM drive Required +MS-DOS 5.0 or better or Windows 95 (does NOT run under Windows NT) +Hard Drive (30MB for Shareware, 80 MB for Registered) + +*** IMPORTANT!: Quake requires a floating point processor. +Systems that do not have an FPU installed will not run Quake -- at all. + +*** IMPORTANT Video Adapter Note! *** +On some ATI Mach32 cards, Quake can come up with a garbled video display. +This is due to a problem with the card in which 320x200 mode isn't +initialized correctly. Workarounds include: + +1) If running from Windows, start Quake from an icon, or from a windowed +(not fullscreen) MS-DOS prompt. If Quake is already running and has +the garbled screen, press Alt-Enter twice to switch to the desktop and +back to fullscreen, and the screen will display properly. + +2) If running from DOS, either put the line + +vid_mode 1 + +in id1\autoexec.cfg, or, typing blind, press tilde ('~') to bring down +the console, type + +vid_mode 1 + +and the screen will display properly. + +======================================================================== +Here are the text files included with the shareware release of Quake and +what they are: + +README.TXT This file +TECHINFO.TXT Technical information on Quake's subsystems and + their advanced use. +MANUAL.TXT Text version of the printed game manual +LICINFO.TXT Info on the various license files included with Quake +SLICNSE.TXT Shareware Quake end-user license +ORDER.TXT How to order Quake +HELP.TXT How to get help with Quake + +Here are the text files included with the registered version of Quake and +what they are: + +README.TXT This file +TECHINFO.TXT Technical information on Quake's subsystems and + their advanced use. +MANUAL.TXT Text version of the printed game manual +LICINFO.TXT Info on the various license files included with Quake +RLICNSE.TXT Registered Quake end-user license +COMEXP.TXT Commercial exploitation agreement +ORDER.TXT How to order Quake +HELP.TXT How to get help with Quake + + +Running Quake +------------- + +DOS: To launch Quake from the DOS Prompt, go to the Quake directory and +simply type "QUAKE" . (no quotes) + +Windows 95: To launch Quake in single player mode, double click on the file +QUAKE.EXE From Windows Explorer. To run Quake in Multi-Player mode using +the TCP/IP protocol, first check your network settings to ensure the +protocol is installed, then double click on the Q95.BAT file to launch the +game. In this version (v0.91) there is a minor bug that will cause the +Q95.BAT file to exit the first time you run it, without running Quake. +Merely double-click on that file again and it will work. + +Audio Setup +----------- + +When using a Sound Card with Quake, there are a few setup steps which must +be taken. First, the "BLASTER" environment variable setting must be in your +autoexec.bat (or you can type it in manually from the MS-DOS command prompt). +Running the Sound Blaster utility diagnose.exe will automatically configure +your sound card and put this statement in your autoexec.bat file for you. +A typical blaster setting looks like this (although yours may vary): + +SET BLASTER=A220 I5 D1 H5 P330 T6 + +If you want to play the audio track from the CD-ROM while playing Quake, +you must ensure that the audio cable from the CD-ROM is connected to the +sound card. + +If you think your sound card is setup properly and it STILL doesn't work, +check to make sure that your BLASTER environment variable contains the +high DMA setting (H5 in the above example). + +If you don't get sound while trying to play the audio track, check to see +if a small cable goes from the back of your CD-ROM player directly to your +sound card. If the CD-ROM audio cable is connected to your sound board (or +the motherboard in some cases) and you STILL don't hear CD Audio coming from +your speakers, make sure the MIXER program has the CD volume turned up. +You will also need to run the CD-ROM driver MSCDEX.EXE. Here is an example +of the files you should see (yours probably will vary) listed in your +CONFIG.SYS and AUTOEXEC.BAT (explanation is in parentheses): + +CONFIG.SYS: + +DEVICE=C:\PROSCSI\CDROM.SYS /D:PROCD01 (CD-ROM driver) + +AUTOEXEC.BAT: + +SET BLASTER=A220 I5 D1 H5 P330 T6 (sound environment variable setting) +C:\WINDOWS\COMMAND\MSCDEX.EXE /D:PROCD01 /L:D (CD-ROM driver) + +=================================================== +UltraSound MAX and UltraSound PnP Support for Quake +=================================================== + +Before running Quake, make sure that your sound card works and your +environment variables are set correctly. + +Other UltraSound Cards (ACE & Classic) +-------------------------------------- +These drivers are not for the UltraSound ACE or UltraSound Classic +sound cards. We have heard mixed reports that MegaEm or SBOS +have a chance of working with the UltraSound Classic but there is a +short sound F/X delay. + +UltraSound PnP and PnP Pro +-------------------------- +You must make sure that you do NOT have IWSBOS or MegaEm loaded. + +Setup +----- +Quake will automatically detect that the UltraSound Max or PnP +are installed. It does this by looking at the SET INTERWAVE (PnP) +and SET ULTRA16 (Max) environment variables. + +Quake will use the settings found on the SET ULTRASND/ULTRA16 (Max) +and in the IW.INI (PnP) file to determine what port settings to use. + +Troubleshooting Windows 95 (DOS Box) +------------------------------------ +We recommend that you restart your computer in MS-DOS Mode. DOS Box +may or may not work, so use at your own risk. + +CD Audio Input +-------------- +If you have not already enabled CD audio output by default you will +need to enable it. For the UltraSound MAX you can run "ULTRINIT -EC". +For the UltraSound PnP you will need to enable the CD audio output +in Win'95 and then restart your computer into MS-DOS. + +=================================================== +Mouse Setup +----------- + +If you are going to use a mouse when playing Quake, you will need to load +your mouse driver. This should go in the AUTOEXEC.BAT file as well. Here +is an example: + +C:\LOGITECH\MOUSE\MOUSE.EXE (mouse driver) + + +Booting Clean +------------- + +If you are going to be running Quake with only 8 megabytes of RAM, it is best +to boot clean . You eliminate unwanted utilities or applications from taking +up valuable memory, without having to alter your regular AUTOEXEC.BAT and +CONFIG.SYS. Booting clean can be done in one of two ways. If you have +MS-DOS version 6.xx, booting clean is as simple a pressing the shift key +when you see the words "Starting MS-DOS". If you have MS-DOS ver 5.xx you +will need to make a system disk. + +To make a boot disk, type the following from the MS-DOS command prompt: + +FORMAT A: /S + +1. Make sure that this is a disk you wish to erase. +2. This disk absolutely HAS to be formatted in the A: drive. + +To use the system disk, place the disk in the A: drive and reset the +computer. + +NOTE: If your sound card requires a driver to be loaded, or you will be +using a mouse, or you will be using Quake's CD audio feature, the system +disk will need to have a CONFIG.SYS and AUTOEXEC.BAT that load the +appropriate drivers. + +Creating a Quake Shortcut + +As an alternative to making a Boot Disk, Windows 95 users can create a +Quake Shortcut. By double clicking onthis shortcut, Windows 95 will reboot +in MS-DOS mode and install only the desired drivers, giving you the same +results as using a Boot Disk. To create a Quake Shortcut, do the following: + +1. Using Explorer, right click and drag the file QUAKE.EXE, from the Quake + directory, to your desktop. Windows 95 will make an MS-DOS Icon titled + "Shortcut to quake". +2. Right click on the new icon, and from the menu that pops up, choose + "Properties". Then choose the "Program" tab at the top. +3. Now click on the "Advanced..." button near the bottom. The "Advanced + Program Settings" window should appear. +4. Select the "MS-DOS mode" check box and the "Specify a new MS-DOS + configuration" option button. +5. Now simply fill in the "CONFIG.SYS for MS-DOS mode:" and "AUTOEXEC.BAT + for MS-DOS mode:" boxes with the same sound, CD-ROM and mouse settings as + mentioned above in the Boot Disks section. +6. Click on "OK" when you are finished. If you wish, you can change your + Quake Shortcut Icon to something a little more exciting by clicking on + "Change Icon...". +7. To finish, click on "OK" again. + 8. You can rename your Quake Shortcut by right clicking on the shortcut + icon, choosing "Rename" and typing in the new name. + + +====================================================== +== Known Problems == +====================================================== + +Problem: Zombies sometime get stuck on the ground and connot get back up. +(You can still hear them, but you cannot kill them. This bug makes it +impossible to get 100% kills on whatever level it occurs on.) +Solution: There is no workaround for this bug. + +Problem: It is sometimes possible for the player to get stuck in a room or +in a wall. +Solution: If you get stuck, use the 'kill' console command. It is a good +idea to save your game often. + +Problem: View centering problems. Sometimes during a game, the view will not +center properly. The end result is the player view looking up torwards the +ceiling while walking. +Solution: Exit to the next level or use the 'kill' console command.. + + +====================================================== +== Troubleshooting == +====================================================== + +If Quake fails to start up, or has problems not addressed elsewhere in the +documentation, try the -safe command line switch, which disables a number +of parts of Quake that can be problems if there are hardware or configuration +problems. The -safe command line switch is equivalent to -stdvid, -nosound, +-nonet, and -nocdaudio together. Those four switches do the following: + +-stdvid: disables VESA video modes. + +-nosound: disables sound card support. + +-nonet: disables network card support. + +-nocdaudio: disables CD audio support. + +If -safe makes the problem go away, try using each of the switches +individually to isolate the area in which you're experiencing the problem, +then either correct the configuration or hardware problem or play Quake with +that functionality disabled. + +If you still have problems, try booting clean in conjunction with +the -safe command line parameter. For information on booting clean, refer +to the "Booting Clean" section above. + +If you experience page faults while running Quarterdeck's QDPMI DPMI server, +this is caused by a bug in QDPMI. Workarounds: Remove QDPMI from CONFIG.SYS, +issue the command QDPMI OFF before running QUAKE, or get the update patch +for QDPMI from Quarterdeck. You may be running QDPMI without knowing it if +you have QEMM installed, because it can be installed as part of the QEMM +installation. + + +Technical Support +----------------- + +If you are having trouble installing or running Quake you can receive +technical support by sending e-mailing to support@idsoftware.com. You can +also refer to our web page, www.idsoftware.com, or call 1-800-idgames. + +When sending support e-mail, cut and paste the following into your e-mail +message and fill in the blanks: + +Date: +Name: +Phone number: +E-mail address: (please include this, we redirect tons of mail) +Game Title: +Version #: +Operating system (i.e., DOS 6.0 or Windows 95): +Computer type: +BIOS date: +BIOS version: +Processor type: +Processor speed: +Do you program at school/work? +Do you provide tech. support at school/work? +Please state the problem you encountered: +Please state how to reproduce the problem: + +If program crashed with nasty undecipherable techno-garbage, please +look for the eight-digit hex number which comes after "eip=" +and write it down here: + +** NOTE: If you are sending a bug report, PLEASE refer to the TECHINFO.TXT +file for the correct form and procedures. + + +====================================================== +== Version History == +====================================================== +v1.01 -- Bugs fixed +------------------------------------------------------ +* Fixed modem code +* Fixed fraglimit & timelimit +* Added NOEXIT cvar (so no one can exit a level) +------------------------------------------------------ +v1.00 -- Bugs fixed +------------------------------------------------------ +* Gravis Ultrasound audio support (still has bugs) +* More deathmatch start spots on E1M6 and END +* Print server version and PROG CRC on connect +* -dedicated starts start.map if nothing else specified +* fixed lookspring function during net game +* fixed rare crash during long running dedicated server +------------------------------------------------------ +v0.94 -- Bugs fixed / Features added -- LIMITED BETA VERSION +------------------------------------------------------ +* Totally rewritten menus +* New lighting model with overbrighting +* Parsed lowercase BLASTER parms +* Better Sound Blaster shutdown code +* Rewrote BLASTER initialization +* Fixed DMA channel 0 bugs +* Added SBPro 8 stereo setup +* Fix delayed sound on 8 bit Sound Blasters +* Fixed speed key affecting angle-turning from keyboard +* Fixed "no such Alias frame" bugs +* Fixed Zombie not getting up bug +* Checked for very high joystick values, signalling a failed read +* Unstuck jumping Fiends and Spawn +* Fixed large BModels blinking out in complex areas +* Fixed s_localsound with no sound started +* Saved spawn parms in savegame +* Fixed screenshot save location +* Bind with no arguments no longer clears value +* Allow console in intermission / finale +* Fixed false gib messages +* Full-screen TAB scoreboard in DeathMatch +* Fixed "+playdemo " from command line +* Trapped overflow in sizebuf messages +* Moveup / movedown in water! +* Fixed-up Talk command +* Added unsupported crosshair option ("crosshair 1" from console) +* Colored chat messages with notify sound +* Fixed "connect during intermission" bug +* Changelevel while demos running no longer crashes +* Fixed changelevel with no map left up loading screen +* Fixed long names entered from the console causing crash +* Stopped demos changing while in the menus + +* Fixed modem initialization from menu +* Fixed serial reliable stream getting stalled +* Serial/modem code fixes + 16550a lost transmit buffer empty interrupts + fixed sometimes processing interrupts from com1 when using com2 + added com3/com4 support from menus + fixed first character of modem init not getting sent + saved serial/modem settings in config.cfg +* Fixed name and colors not always sent to server at startup +* Fixed "stopdemo" crashing the system when there wasn't a demo playing +* Added server's TCP/IP and IPX addresses (if available) to status command + +* In 0.92, an additional check for a usable VESA video mode was added; +the numpages field was verified to be greater than 0, and no mode was +supported that had numpages set to 0 (which indicates that there's not +enough video memory for that mode). ATI's VESA driver, m64vbe, +reports 0 for numpages, so VESA video modes that were available in 0.91 +were no longer available in 0.92. This extra numpages check has +been removed. + +----------------------------------------------------------------------- +v0.93 -- Never officially released; internal testing only. +----------------------------------------------------------------------- +v0.92 -- Bugs fixed +----------------------------------------------------------------------- +Typing long strings in the hostname or modem init field in the menus caused +crashes. + +Under Win95 IPX was detected but not functional, resulting in the game +exiting to DOS. + +If -nosound, got "S_LocalSound: can't cache" on every keypress in the menu. + +When vid_nopageflip was set to 1 in VESA modes, going underwater resulted in +only the upper left corner of the drawing area being updated. + +The single player scoreboard (tab) printed text incorrectly in all modes +greater than 320 pixels wide. + +On network connections that dropped packets, the reliable message stream +could get stopped up, resulting in frag counts and talk messages no longer +being delivered, although game movement continued. + +The com port settings from the menu were getting saved & restored but +not used. + +Direct serial connections did not work with slist. + +Quake now checks the vesa information for hardware incabable of page-flipping. + +Menu sound sometimes didn't play. + +Q95 (qlaunch.exe) frequently failed to execute on the first attempt. + +Q95 (quakeudp.dll) was running out of buffers when running a server. + +Teams were not being set according to pants colors. + + +Joystick notes +-------------- +Your joystick must be plugged in when Quake is launched. + +If you have a joystick plugged in, but don't want to use it in Quake +(it slows the game down a few percent), or you have weird hardware that +doesn't like being tested as a joystick add "-nojoy" to your Quake +command line. + +You can turn off joystick reading during the game by typing "joystick 0" at +the Quake command console. + +You MUST configure your buttons from the configure keys menu before they will +work. There is no default configuration. + +If your joystick or interface card improperly sets the third or fourth +joystick buttons, type "joybuttons 2" at the quake console or in your +.CFG file. + +The "mlook" button command now lets the joystick as well as the mouse control +pitch angles. + +The "sidestep" buttom command works on joysticks as with mice and keyboard +movement. + +The "invert mouse up/down" menu option also inverts the joystick pitch +direction. diff --git a/doc/data/rlicnse.txt b/doc/data/rlicnse.txt new file mode 100644 index 000000000..a3fdc3548 --- /dev/null +++ b/doc/data/rlicnse.txt @@ -0,0 +1,204 @@ +REGISTERED VERSION: QUAKE +LIMITED USE SOFTWARE LICENSE AGREEMENT + + This Limited Use Software License Agreement (the +"Agreement") is a legal agreement between you, the end-user, and Id +Software, Inc. ("ID"). By continuing the installation of this game +program, by loading or running the game, or by placing or copying +the game program onto your computer hard drive, you are agreeing to +be bound by the terms of this Agreement. If you do not agree to +the terms of this Agreement, promptly return the game program and +the accompanying items (including all written materials), along +with your receipt to the place from where you obtained them for a +full refund. + +ID SOFTWARE LICENSE + + 1. Grant of License. ID grants to you the limited +right to use one (1) copy of the enclosed or foregoing game program +(the "Software") on a single computer. You have no ownership or +proprietary rights in or to the Software or the written materials +accompanying the Software. For purposes of this section, "use" +means loading the Software into RAM, as well as installation on a +hard disk or other storage device. You may create a map editor, +modify maps and make your own maps (collectively referenced as the +"Permitted Derivative Works") for the Software. Permitted +Derivative Works may not be sold, whether by you or by any other +person or entity, but you may exchange the Permitted Derivative +Works at no charge amongst other end-users. The Software, together +with any archive copy thereof, shall be either returned to ID or +destroyed when no longer used in accordance with this Agreement, or +when the right to use the Software is terminated. You agree that +the Software will not be shipped, transferred or exported into any +country in violation of the U.S. Export Administration Act (or any +other law governing such matters) and that you will not utilize, in +any other manner, the Software in violation of any applicable law. + + 2. Commercial Use is Prohibited. Except as provided in +paragraph 5. hereinbelow in regard to the Software, under no +circumstances shall you, the end-user, be permitted, allowed or +authorized to commercially exploit the Software, any data +comprising the Software. Neither you nor anyone at your direction +shall do any of the following acts (any such acts shall be deemed +void and a breach of this Agreement) with regard to the Software, +or any portion thereof, such as a screen display or a screenshot: + + a. Rent the Software; + + b. Sell the Software; + + c. Lease or lend the Software; + + d. Offer the Software on a pay-per-play basis; + + e. Distribute, by electronic means or otherwise, the + Software for money or any other consideration; or + + f. In any other manner and through any medium + whatsoever commercially exploit the Software or use + the Software for any commercial purpose. + + 3. Additional Prohibited Uses. Neither you nor anyone +at your direction shall take the following action in regard to the +Software, or any portion thereof, such as a screen display or a +screenshot: + + a. Modify, disassemble, reverse engineer or decompile + the Software; + + b. Translate the Software; + + c. Reproduce the Software; + + d. Publicly display the Software; + + e. Prepare derivative works based upon the Software + (except Permitted Derivative Works); or + + f. Distribute, by electronic means or otherwise, the + Software. + + 4. Use of Other Material is Prohibited. Use, in any manner, of + the trademarks, such as Quake(tm) and the NIN(r) logo, logos, symbols, + art work, images, screen displays or screenshots, sound effects, music, + and other such material contained within, generated by or relating to + the Software is prohibited. + + 5. To Receive Permission to Commercially Exploit. If +you desire to commercially exploit the Software, you may execute +the Commercial Exploitation License Agreement for QUAKE (the +"License") contained within the QUAKE install package and forward +the original License to Id Software at the address noted therein. +Please note that ID may refuse your request and not sign the +License in ID's sole discretion. + + 6. Restrictions Apply to Third Parties. The +prohibitions and restrictions described herein apply to anyone in +possession of the Software and/or Permitted Derivative Works. + + 7. Copyright. The Software and all copyrights related +thereto (including all characters and other images generated by the +Software or depicted in the Software) is owned by ID and is protected +by United States copyright laws and international treaty provisions. +You must treat the Software like any other copyrighted material, +except that you may either (a) make one copy of the Software solely +for back-up or archival purposes, or (b) transfer the Software to a +single hard disk provided you keep the original solely for back-up or +archival purposes. You may not otherwise reproduce, copy or disclose +to others, in whole or in any part, the Software. You may not copy +the written materials accompanying the Software. The same +restrictions and prohibitions regarding your use of the Software as +provided in this Agreement apply to your use of the written materials +accompanying the Software. The written materials are owned by ID and +are protected by United States copyright laws and international +treaties. You agree to use your best efforts to see that any user of +the Software licensed hereunder complies with this Agreement. + + 8. Limited Warranty. ID warrants that if properly +installed and operated on a computer for which it is designed, the +Software will perform substantially in accordance with the +accompanying written materials for a period of ninety (90) days +from the date of purchase of the Software. ID's entire liability +and your exclusive remedy shall be, at ID's option, either (a) +return of the price paid or (b) repair or replacement of the +Software that does not meet ID's Limited Warranty. To make a +warranty claim, return the Software to the point of purchase, +accompanied by proof of purchase, your name, your address, and a +statement of defect, or return the Software with the above +information to ID. This Limited Warranty is void if failure of the +Software has resulted in whole or in part from accident, abuse, +misapplication or violation of this Agreement. Any replacement +Software will be warranted for the remainder of the original +warranty period or thirty (30) days from your receipt of the +replacement software, whichever is longer. This warranty allocates +risks of product failure between Licensee and ID. ID's product +pricing reflects this allocation of risk and the limitations of +liability contained in this warranty. + + 9. NO OTHER WARRANTIES. ID DISCLAIMS ALL OTHER +WARRANTIES, BOTH EXPRESS IMPLIED, INCLUDING BUT NOT LIMITED TO, +IMPLIED WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR +PURPOSE WITH RESPECT TO THE SOFTWARE AND THE ACCOMPANYING WRITTEN +MATERIALS. THIS LIMITED WARRANTY GIVES YOU SPECIFIC LEGAL RIGHTS. +YOU MAY HAVE OTHER RIGHTS WHICH VARY FROM JURISDICTION TO +JURISDICTION. ID DOES NOT WARRANT THAT THE OPERATION OF THE +SOFTWARE WILL BE UNINTERRUPTED, ERROR FREE OR MEET LICENSEE'S +SPECIFIC REQUIREMENTS. THE WARRANTY SET FORTH ABOVE IS IN LIEU OF +ALL OTHER EXPRESS WARRANTIES WHETHER ORAL OR WRITTEN. THE AGENTS, +EMPLOYEES, DISTRIBUTORS, AND DEALERS OF ID ARE NOT AUTHORIZED TO +MAKE MODIFICATIONS TO THIS WARRANTY, OR ADDITIONAL WARRANTIES ON +BEHALF OF ID. ADDITIONAL STATEMENTS SUCH AS DEALER ADVERTISING OR +PRESENTATIONS, WHETHER ORAL OR WRITTEN, DO NOT CONSTITUTE +WARRANTIES BY ID AND SHOULD NOT BE RELIED UPON. + + 10. Exclusive Remedies. You agree that your exclusive +remedy against ID, its affiliates, contractors, suppliers, and +agents for loss or damage caused by any defect or failure in the +Software regardless of the form of action, whether in contract, +tort, including negligence, strict liability or otherwise, shall be +the return of the purchase price paid or replacement of the +Software. This Agreement shall be construed in accordance with and +governed by the laws of the State of Texas. Copyright and other +proprietary matters will be governed by United States laws and +international treaties. IN ANY CASE, ID SHALL NOT BE LIABLE FOR +LOSS OF DATA, LOSS OF PROFITS, LOST SAVINGS, SPECIAL, INCIDENTAL, +CONSEQUENTIAL, INDIRECT OR OTHER SIMILAR DAMAGES ARISING FROM +BREACH OF WARRANTY, BREACH OF CONTRACT, NEGLIGENCE, OR OTHER LEGAL +THEORY EVEN IF ID OR ITS AGENT HAS BEEN ADVISED OF THE POSSIBILITY +OF SUCH DAMAGES, OR FOR ANY CLAIM BY ANY OTHER PARTY. Some +jurisdictions do not allow the exclusion or limitation of +incidental or consequential damages, so the above limitation or +exclusion may not apply to you. + + 11. General Provisions. Neither this Agreement nor any +part or portion hereof shall be assigned, sublicensed or otherwise +transferred by you. Should any provision of this Agreement be held +to be void, invalid, unenforceable or illegal by a court, the +validity and enforceability of the other provisions shall not be +affected thereby. If any provision is determined to be +unenforceable, you agree to a modification of such provision to +provide for enforcement of the provision's intent, to the extent +permitted by applicable law. Failure of a party to enforce any +provision of this Agreement shall not constitute or be construed as +a waiver of such provision or of the right to enforce such +provision. If you fail to comply with any terms of this Agreement, +YOUR LICENSE IS AUTOMATICALLY TERMINATED. + + YOU ACKNOWLEDGE THAT YOU HAVE READ THIS AGREEMENT, THAT YOU +UNDERSTAND THIS AGREEMENT, AND UNDERSTAND THAT BY CONTINUING THE +INSTALLATION OF THE SOFTWARE, BY LOADING OR RUNNING THE SOFTWARE, OR +BY PLACING OR COPYING THE SOFTWARE ONTO YOUR COMPUTER HARD DRIVE, YOU +AGREE TO BE BOUND BY THIS AGREEMENT'S TERMS AND CONDITIONS. YOU +FURTHER AGREE THAT, EXCEPT FOR WRITTEN SEPARATE AGREEMENTS BETWEEN ID +AND YOU, THIS AGREEMENT IS A COMPLETE AND EXCLUSIVE STATEMENT OF THE +RIGHTS AND LIABILITIES OF THE PARTIES. THIS AGREEMENT SUPERSEDES ALL +PRIOR ORAL AGREEMENTS, PROPOSALS OR UNDERSTANDINGS, AND ANY OTHER +COMMUNICATIONS BETWEEN ID AND YOU RELATING TO THE SUBJECT MATTER OF +THIS AGREEMENT. + +June 21, 1996 + +REGISTERED VERSION: QUAKE LIMITED USE SOFTWARE LICENSE AGREEMENT Page 4 +(DWC:dw:3406.0024:DWC\doc:1164) + + diff --git a/doc/data/slicnse.txt b/doc/data/slicnse.txt new file mode 100644 index 000000000..057302ba7 --- /dev/null +++ b/doc/data/slicnse.txt @@ -0,0 +1,175 @@ +SHAREWARE VERSION: QUAKE +LIMITED USE SOFTWARE LICENSE AGREEMENT + + This Limited Use Software License Agreement (the "Agreement") is a + legal agreement between you, the end-user, and id Software, Inc. + ("ID"). By continuing the installation of this game program, by + loading or running the game, or by placing or copying the game + program onto your computer hard drive, you are agreeing to be bound + by the terms of this Agreement. + +ID SOFTWARE LICENSE + + 1. Grant of License. ID grants to you the limited right to use + one (1) copy of the enclosed or foregoing Id Software game program + (the "Software"), which is the shareware version or episode one of + the game program. For purposes of this section, "use" means loading + the Software into RAM, as well as installation on a hard disk or + other storage device. You agree that the Software will not be + shipped, transferred or exported into any country in violation of + the U.S. Export Administration Act (or any other law governing such + matters) and that you will not utilize, in any other manner, the + Software in violation of any applicable law. + + 2. Commercial Use is Prohibited. Under no circumstances shall + you, the end-user, be permitted, allowed or authorized to + commercially exploit the Software, or any portion thereof, such + as a screen display or a screenshot. Neither you nor anyone at your + direction shall do any of the following acts: + + a. Rent the Software; + + b. Sell the Software; + + c. Lease or lend the Software; + + d. Offer the Software on a pay-per-play basis; + + e. Distribute the Software for money or any other + consideration; or + + f. In any other manner and through any medium + whatsoever commercially exploit the Software or use + the Software for any commercial purpose. + + 3. Additional Prohibited Uses. Neither you, nor anyone at your + direction, shall take the following action in regard to the + Software, or any portion thereof, such as a screen display or + a screenshot: + + a. Modify, disassemble, reverse engineer or decompile + the Software; + + b. Translate the Software; + + c. Reproduce the Software; + + d. Publicly display the Software; or + + e. Prepare derivative works based upon the Software. + + 4. Use of Other Material is Prohibited. Use, in any manner, of + the trademarks, such as Quake(tm) and the NIN(r) logo, logos, symbols, + art work, images, screen displays or screenshots, sound effects, music, + and other such material contained within, generated by or relating to + the Software is prohibited. + + 5. Restrictions Apply to Third Parties. The prohibitions and + restrictions described herein apply to anyone in possession of + the Software. + + 6. Permitted Distribution. So long as this Agreement + accompanies the Software at all times, ID grants to Providers the + limited right to distribute, free of charge, except normal access + fees, and by electronic means only, the Software; provided, however, + the Software must be so electronically distributed only in a + compressed format. The term "Providers," as used in the foregoing + sentence, shall mean persons whose business it is to provide + services on the Internet, on commercial online networks, or on the + BBS. Anyone who receives the Software from a Provider shall be + limited to all the terms and conditions of this Agreement. Further, + ID grants to you, the end-user, the limited right to distribute, + free of charge only, the Software as a whole. + + 7. Copyright. The Software is owned by ID and is protected by + United States copyright laws and international treaty provisions. + You must treat the Software like any other copyrighted material, + except that you may make copies of the Software to give to other + persons. You may not charge or receive any consideration from any + other person for the receipt or use of the Software. You agree to + use your best efforts to see that any user of the Software licensed + hereunder complies with this Agreement. + + 8. Limited Warranty. ID warrants that if properly installed and + operated on a computer for which it is designed, the Software will + perform substantially in accordance with its designed purpose for a + period of ninety (90) days from the date the Software is first + obtained by an end-user. ID's entire liability and your exclusive + remedy shall be, at ID's option, either (a) return of the retail + price paid, if any, or (b) repair or replacement of the Software + that does not meet ID's Limited Warranty. To make a warranty claim, + return the Software to the point of purchase, accompanied by proof + of purchase, your name, your address, and a statement of defect, or + return the Software with the above information to ID. This Limited + Warranty is void if failure of the Software has resulted in whole + or in part from accident, abuse, misapplication or violation of this + Agreement. Any replacement Software will be warranted for the + remainder of the original warranty period or thirty (30) days, + whichever is longer. This warranty allocates risks of product + failure between Licensee and ID. ID's product pricing reflects this + allocation of risk and the limitations of liability contained in + this warranty. + + 9. NO OTHER WARRANTIES. ID DISCLAIMS ALL OTHER WARRANTIES, + EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO, IMPLIED + WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A pARTICULAR PURPOSE + WITH RESPECT TO THE SOFTWARE AND THE ACCOMPANYING WRITTEN MATERIALS, + IF ANY. THIS LIMITED WARRANTY GIVES YOU SPECIFIC LEGAL RIGHTS. YOU + MAY HAVE OTHERS WHICH VARY FROM JURISDICTION TO JURISDICTION. ID + DOES NOT WARRANT THAT THE OPERATION OF THE SOFTWARE WILL BE + UNINTERRUPTED, ERROR FREE OR MEET LICENSEE'S SPECIFIC REQUIREMENTS. + THE WARRANTY SET FORTH ABOVE IS IN LIEU OF ALL OTHER EXPRESS + WARRANTIES WHETHER ORAL OR WRITTEN. THE AGENTS, EMPLOYEES, + DISTRIBUTORS, AND DEALERS OF ID ARE NOT AUTHORIZED TO MAKE + MODIFICATIONS TO THIS WARRANTY, OR ADDITIONAL WARRANTIES ON BEHALF + OF ID. ADDITIONAL STATEMENTS SUCH AS DEALER ADVERTISING OR + PRESENTATIONS, WHETHER ORAL OR WRITTEN, DO NOT CONSTITUTE WARRANTIES + BY ID AND SHOULD NOT BE RELIED UPON. + + 10. Exclusive Remedies. You agree that your exclusive remedy + against ID, its affiliates, contractors, suppliers, and agents for + loss or damage caused by any defect or failure in the Software + regardless of the form of action, whether in contract,tort, + including negligence, strict liability or otherwise, shall be the + return of the retail purchase price paid, if any, or replacement of + the Software. This Agreement shall be construed in accordance with + and governed by the laws of the State of Texas. Copyright and other + proprietary matters will be governed by United States laws and + international treaties. IN ANY CASE, ID SHALL NOT BE LIABLE FOR LOSS + OF DATA, LOSS OF PROFITS, LOST SAVINGS, SPECIAL, INCIDENTAL, + CONSEQUENTIAL, INDIRECT OR OTHER SIMILAR DAMAGES ARISING FROM BREACH + OF WARRANTY, BREACH OF CONTRACT, NEGLIGENCE, OR OTHER LEGAL THEORY + EVEN IF ID OR ITS AGENT HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH + DAMAGES, OR FOR ANY CLAIM BY ANY OTHER PARTY. Some jurisdictions do + not allow the exclusion or limitation of incidental or consequential + damages, so the above limitation or exclusion may not apply to you. + + 11. General Provisions. Neither this Agreement nor any part or + portion hereof shall be assigned or sublicensed, except as described + herein. Should any provision of this Agreement be held to be void, + invalid, unenforceable or illegal by a court, the validity and + enforceability of the other provisions shall not be affected thereby. + If any provision is determined to be unenforceable, you agree to a + modification of such provision to provide for enforcement of the + provision's intent, to the extent permitted by applicable law. Failure + of a party to enforce any provision of this Agreement shall not + constitute or be construed as a waiver of such provision or of the + right to enforce such provision. If you fail to comply with any terms + of this Agreement, YOUR LICENSE IS AUTOMATICALLY TERMINATED. + + YOU ACKNOWLEDGE THAT YOU HAVE READ THIS AGREEMENT, YOU UNDERSTAND + THIS AGREEMENT, AND UNDERSTAND THAT BY CONTINUING THE INSTALLATION + OF THE SOFTWARE, BY LOADING OR RUNNING THE SOFTWARE, OR BY PLACING + OR COPYING THE SOFTWARE ONTO YOUR COMPUTER HARD DRIVE, YOU AGREE TO + BE BOUND BY THIS AGREEMENT'S TERMS AND CONDITIONS. YOU FURTHER + AGREE THAT, EXCEPT FOR WRITTEN SEPARATE AGREEMENTS BETWEEN ID AND + YOU, THIS AGREEMENT IS A COMPLETE AND EXCLUSIVE STATEMENT OF THE + RIGHTS AND LIABILITIES OF THE PARTIES. THIS AGREEMENT SUPERSEDES + ALL PRIOR ORAL AGREEMENTS, PROPOSALS OR UNDERSTANDINGS, AND ANY + OTHER COMMUNICATIONS BETWEEN ID AND YOU RELATING TO THE SUBJECT + MATTER OF THIS AGREEMENT. + +June 21, 1996 + +SHAREWARE VERSION: QUAKE LIMITED USE SOFTWARE LICENSE AGREEMENT +(DWC:dw:3406.0024:DWC\doc:1163) diff --git a/doc/data/techinfo.txt b/doc/data/techinfo.txt new file mode 100644 index 000000000..4156f3105 --- /dev/null +++ b/doc/data/techinfo.txt @@ -0,0 +1,1901 @@ +Welcome to the Quake Technical Information file! + +TABLE OF CONTENTS +----------------- +Introduction to the Console.............. +Video Subsystem Documentation............ +Sound Subsystem Documentation............ +CD Audio Subsystem Documentation......... +Network Subsystem Documentation.......... +Modem Strings............................ +Win95 Documentation...................... +Key Binding and Aliases.................. +Quake Keys and Common Commands........... +Making a Config File..................... +Demos.................................... +Reporting Quake Bugs..................... + + +========================================== +== Introduction to the Console == +========================================== + +Throughout this document, examples of commands are given, all of which +are typed in at the console. To bring up the console, press the tilde ('~') +key or press ESC to bring up the menu, select Options, and select Console... +from the options menu. To exit the console, press ESC. + +The console provides a way to change console variables and also accepts +commands that change game settings such as movement keys, video mode, as +well as providing an interface for key binding and command aliasing (more +on that later). + +The console also has a command history with which you can browse through +previous commands. Use the up and down arrows to navigate through the +command history and press to re-issue a command. + +Partially typing a command and then pressing the TAB key will complete the +currently typed text with the first matching console variable or command. +(Yes, this is a good way to look for console commands.) + +To review previous actions by page, use the PGUP and PGDN keys. + + +========================================== +== Video Subsystem Documentation == +========================================== + +The Video Modes menu +-------------------- + +Video modes can most easily be selected from the the Video Modes menu, which +is brought up by selecting the Video Options choice in the Options menu. +All the resolutions that Quake can support on the current computer are +displayed. + +Please note that higher-resolution modes require correspondingly more +system memory in order for Quake to run, and that some high-resolution +modes may not be available when running Quake on 8 Mb machines. Such +modes are not listed in the Video Modes menu. Please do not report +video modes that do not appear in the Video Modes menu as bugs; either +those modes are not supported by your video adapter, or there is not +enough system memory for Quake to support those modes. + +The video modes listed in the Video Modes menu can be tested, set, and made +the default mode for Quake from the Video menu, as follows: + +* The arrow keys can be used to move the blinking indicator to any of the +modes listed in the Video menu. + +* Pressing the 'T' key tests the mode the blinking indicator points to, by +setting the mode, leaving it set for 5 seconds, and returning to the previous +mode. This lets you verify that your computer does in fact support that +mode. We highly recommend that you always test modes with 'T' before setting +thempermanently by pressing the Enter key, in case some sort of hardware or +software glitch causes a mode to function incorrectly and produce a garbled +screen. It is unlikely but possible that testing or setting a mode will +cause your computer to hang or crash; if this happens, there is a serious +hardware or software bug, and you should not attempt to select that mode +again. + +* Pressing the Enter key sets the mode the blinking indicator points to, +leaving it set so Quake will then run in that mode. We suggest that you +test a mode by pressing the 'T' key before setting it by pressing the Enter +key. Note that a selection made with the Enter key remains in effect only +until Quake is exited (or a new mode is set). You must explictly make a mode +the default mode by pressing the 'D' key in order to automatically set that +mode when you start Quake up in the future. + +* Pressing the 'D' key makes the current mode the default mode that Quake +starts up with. Note that the current mode is the mode that's displayed in +white in the mode list, not necessarily the mode that the blinking indicator +points to. The current default mode is listed in the description of the 'D' +key at the bottom of the Video Modes menu. + +* Pressing Esc exits the Video Modes menu. + +Please see "Bug Reporting," below, for information on how to report any +problems you encounter. + + +Video modes from the console: Quick start +------------------------------------------ + +More comprehensive but more complex video control is available through the +Quake console. This section describes the commands necessary to perform +basic mode setting through the console (this is similar to what can be +accomplished through the Video Modes menu), and following sections describe +console video control in detail. + +To see all the video modes that are available, bring up the console (either +press tilde ('~'), or press Esc to bring up the menu, select Options, and +select Console... from the Options menu). + +From the console, type vid_describemodes to see all available modes. +Type vid_mode to set a mode, where is the mode number +listed for the desired mode by vid_describemodes. Higher-resolution modes +generally require more extra system memory in order to run, and many are +not available in 8 Mb systems; modes that are supported by the video +adapter but are currently unavailable due to system memory limitations +will still show up inthe mode list from vid_describemodes, but will +have "**" in place of a mode number. (Such modes will not show up at +all in the Video Modes menu.) If you try to set a mode for which +there is insufficient system memory, you will receive a message to that +effect, and the video mode will remain unchanged. + + +More detail +----------- + +This version of Quake supports software drawing in a variety of +video modes. It does not support any 3-D hardware accelerators. +Video modes that are built into Quake are: + +320x200, 360x200, 320x240, 360x240, 320x350, 360x350, 320x400, +360x400, 320x480, 360x480 + +However, the higher-resolution modes on this list require additional +memory, and may not be available in 8 Mb systems. + +In addition, all VESA 2.0 256-color linear framebuffer modes +supported by the video adapter are supported. Further information +about VESA 2.0 is provided below. + + +Video mode reporting and selection +---------------------------------- + +Quake assigns each available video mode a mode number, which can +then be used to query information about the mode or to select the +mode. The first 11 mode numbers are always as follows: + +0: 320x200 +1: 320x200 +2: 360x200 +3: 320x240 +4: 360x240 +5: 320x350 +6: 360x350 +7: 320x400 +8: 360x400 +9: 320x480 +10: 360x480 + +You will notice that modes 0 and 1 are both 320x200; mode 1 is a +Mode X-style version, which may someday allow support of page +flipping for cleaner graphics, but right now it's just slower with +no advantages, so use mode 0 for 320x200 resolution. Modes 2-10 +are all higher resolution than mode 0, and look very nice, but are +also all slower than mode 0. Mode 0 is the fastest of the 11 +built-in modes. + +In addition to the built-in modes, Quake checks for the presence +of a VESA version 2.0 driver. If such a driver is detected, the +driver is queried for all 8-bit-per-pixel linear framebuffer (LFB) +modes that are supported; also, if no LFB 320x200 mode is available, +a banked 320x200 VESA mode is queried for. All such modes are added +to the mode list starting at mode 11. The available modes will vary +depending on adapter, graphics chipset, amount of video memory, and VESA +2.0 driver. The higher the resolution, the lower the performance, and +thehigher-resolution modes will often be too slow for good gameplay +on most machines. (Also, higher-resolution modes often need more memory +than is available in an 8 Mb system.) The screen can be sized down to +improve performance in higher-resolution modes, but then of course the +effective resolution of Quake is reduced. + +At the same resolution, VESA LFB modes are often faster than the non-VESA +modes 0-10, because adapters often have faster memory access in LFB modes. + +If a given VESA mode can support page flipping, then it defaults to page- +flipped operation. A VESA mode can be forced to non-page-flipped operation +by setting the vid_nopageflip console variable to 1, then setting the mode +(note that vid_nopageflip takes operation on the next, not the current, mode +set, and note that it then stays in effect permanently, even when Quake is +exited and restarted, unless it is manually set back to 0). If there is not +enough memory for two pages in a VESA mode, or if the +adapter doesn't support page flipping, then the mode will automatically +be non-page-flipped. Page flipping can have higher visual quality, but may +be either faster or slower, depending on the graphics adapter and other +hardware. (See the discussion of the Pentium Pro, below, for a +discussion of why page flipping can be faster but is sometimes much slower +on that processor.) Page-flipped modes use less system memory than non- +page-flipped modes. + +Quake's VESA support, including VESA driver detection, can be disabled by +using the -stdvid command-line switch, and can also be disabled, along with +sound, network, and other hardware support, by the -safe command-line switch. + +The maximum resolution supported by Quake is 1280x1024. Modes with higher +resolutions will not be reported by vid_describemodes, and cannot be set. + +There is no support for any 3-D accelerator boards in this version of Quake. +Coming soon. + +Quake always starts up in mode 0, and modes 0-10 are always available, given +enough system memory. + + +A note on modes reported in the Video Modes menu +------------------------------------------------ + +The vid_describemodes console command lists all modes with +resolution less than or equal to 1280x1024 that are +supported by the video adapter, although modes for which there +is not enough system memory have "**" for the mode number. VGA, +Mode X-style, and VESA 2.0 modes are listed separately, so a +single resolution can be listed as many as three times, once for +each hardware mode that supports it. For example, mode 0 is +VGA mode 0x13, which supports 320x200 resolution, and mode 1 is +320x200 Mode X-style mode. Quake looks identical in both +modes, although it usually runs faster in mode 0. + +The Video Modes menu is much simpler. Only modes with resolution +less than or equal to 1280x1024 that are both supported by the +hardware and for which there is sufficient system memory are +listed. Further, a given resolution is listed only once. If a +given resolution is available in multiple hardware modes, then +selecting that resolution will select the appropriate hardware mode +as follows: + +If the mode is 320x200, then VGA mode 0x13 is selected, and +equivalent Mode X and VESA modes are ignored; + +Otherwise, the VESA version of the mode is used. + +You can always see what video mode is selected from the console by typing +the command: + +vid_mode + +command. + +None of this has any effect on selecting modes through the +console, where all the different versions of each mode are +listed, and the desired version can be selected by using the +appropriate mode number. + + +How to get VESA 2.0 support +--------------------------- + +Some video adapters have VESA 2.0 support in ROM. Other video +adapters come with loadable VESA 2.0 TSRs. In the absence of either +of these, UniVBE, a shareware product from SciTech, provides VESA 2.0 +support for most video adapters. The latest version of UniVBE 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: sales@scitechsoft.com + +SciTech Software +5 Governors Lane, Suite D +Chico, CA +95926-1989 + +The current version at this writing is UniVBE 5.2. This version +supports many more adapters than previous versions, and adds +a number of useful low- and medium-resolution modes, such as 400x300 +and 512x384. + + +Video-related commands +---------------------- + +vid_describecurrentmode + lists the description for the current video mode. + +vid_describemode + lists the description for the specified video mode, where is as + reported by vid_describemodes. + +vid_describemodes + lists descriptions for all available video modes. + +vid_mode + sets the display to the specified mode, where is as reported by + vid_describemodes. + +vid_nopageflip <1|0> + when set to 1, VESA mode sets will always select non-page-flipped + operation. When set to 0, VESA mode sets will select page-flipped + operation whenever possible. All non-VESA modes are always + non-page-flipped. The setting of vid_nopageflip is remembered + when Quake is exited (by being saved in config.cfg), and is reloaded + when Quake is restarted, so once vid_nopageflip is set to 1, all + VESA modes set in all Quake sessions after that point be will non-page- + flipped until vid_nopageflip is set to 0. Note that setting this + variable doesn't affect whether the current video mode is page-flipped, + but rather whether page-flipping can be used by future mode sets. + +vid_nummodes + reports the total number of modes available. + +vid_testmode + tries to switch Quake to the specified mode, then returns to the current + mode after 5 seconds. This allows you to try an untested mode without + ending up with a black screen if, for example, the monitor can't display + the mode properly. There may still be instances in which, due to VESA + driver or hardware bugs, the machine will hang in certain modes; + vid_testmode can't recover from these situations, but it can recover + from a blank or scrambled screen. + +vid_wait + sets the type of waiting that the video adapter should do, as follows: + 0: no waiting + 1: wait for vertical sync active + 2: wait for display enable active + +The default state of vid_wait depends on the video mode selected. +(_vid_wait_override can force vid_wait to 1, wait for vertical +sync; see the description of _vid_wait_override below.) +In built-in modes 0-10, the default is always 0, no waiting. You +can set vid_wait to 1 (wait for vertical sync) to eliminate shear +and tearing in these modes (so partially-completed frames are never +drawn, resulting in a rock-solid image). However, waiting for +vertical sync can result in substantial performance loss. + +In VESA modes, if the adapter is VGA compatible and there's enough +memory for three video pages, then triple-buffering is enabled and +vid_wait is set to 2, wait for display enable. There is little +performance loss to this sort of waiting. If the adapter is not +VGA compatible, or if there's only enough memory for double-buffering, +then vid_wait is set to 1 (wait for vertical sync). This can cause +significant loss of performance, but some sort of wait is generally +necessary to avoid occasional glitching of the screen when +page-flipping; we always choose the lowest-cost wait option that +seems to be safe to use. If there's only enough memory for one +page, or if vid_nopageflip 1 is in effect, then vid_wait is set to 0 +(no wait). As with modes 0-10, vid_wait 1 can be used to eliminate +shear, but at a performance cost. + +We have encountered problems with a few adapters in VESA modes when +vid_wait is set to 2 (wait for display enable). Apparently some adapters +just toggle display enable all the time, rather than only when pixels +are being sent to the screen; this can cause occasional glitches in +which the screen image jumps for one frame. You can fix this by +setting vid_wait to 1 (wait for vertical sync). We would have made +vid_wait 1 the default, but it's slower, and vid_wait 2 works on most +machines. + +The default setting for vid_wait can be changed from the console +at any time. If you are in a VESA mode that waits for vertical +sync and want to turn it off to get a speed-up, you can do so. +However, changing a vid_wait 1 default in a VESA mode may result +in problems. If vid_wait defaults to 1 (wait for vertical sync) +in a mode, and you force it to 2 (wait for display enable), the +machine may hang, because some VGA-incompatible adapters, such as +some ATI Mach64s, don't support the display enable status. If you +force vid_wait to 0 (no wait), then the screen may glitch periodically +if the page flips at a time that results in a bad flip address, +although some adapters work fine with no wait at all. + +If you force a new setting for vid_wait and encounter problems, DO +NOT send us a bug report! + +_vid_wait_override <1|0> + can be used to force wait for vertical sync in all modes. When + _vid_wait_override is set to 0, the type of waiting, if any, for + each video mode that's set thereafter is automatically set to + what appears to be the fastest safe state. However, it is + possible in some cases that automatic setting may result in some + screen glitching, and it is also true that shear can be + eliminated by waiting for vertical sync (although at a cost in + performance), so it may be desirable in some cases to override + the automatic wait selection and always wait for vertical sync. + This can be done by setting _vid_wait_override to 1. Once set, + this remains in effect through all succeeding mode sets, even + when Quake is exited and re-entered; the only way to keep Quake + from waiting for vertical sync once _vid_wait_override is set to + 1 is to set _vid_wait_override to 0. Note that changing + _vid_wait_override doesn't affect the current mode, but rather + takes effect on the next mode set. _vid_wait_override is initially + set to 0. + +_vid_default_mode + can be used to force Quake to start up in a particular mode. + The easiest way to select a default mode is by pressing the + 'D' key in the Video Modes menu, but you can alternatively + use _vid_default_mode to specify the mode in which you want + Quake to start up in future Quake sessions. _vid_default_mode + is initially set to 0. + + +Higher-quality perspective texture mapping +------------------------------------------ + +For maximum speed, perspective correction is performed only every 16 +pixels. This is normally fine, but it is possible to see texture ripples +in surfaces that are viewed at sharp angles. For more precise texture +mapping, set the console variable d_subdiv16 to 0. Doing this will result +in somewhat slower performance, however, and the difference in visual +quality will not normally be noticeable. + + +Known video problems and workarounds +------------------------------------ + +If you think you've encountered a bug, see "Bug Reporting," below. +As a general rule, go back to mode 0 if you have problems; mode 0 +should work properly in all cases. + +On some ATI Mach64 adapters, the palette is sometimes too dark in +some VESA modes, and is tinted oddly (too red, for example) in other +modes. The workaround is to use different modes, or modes 0-10. + +In modes 0-10, shear and tearing can occur as partially finished +frames are displayed. Workaround: set vid_wait to 1 (wait for +vertical sync); this can result in a substantial performance loss, +however. An alternative is to use a page-flipped VESA mode. + +In page-flipped VESA modes, occasional glitched frames may occur with some +VESA driver-hardware combinations. Workaround: set vid_wait to 1 (wait +for vertical sync) (you can set _vid_wait_override to 1 to make waiting +for vertical sync permanent for future Quake sessions), or use a different +mode. + +The VESA video drivers that come with some video adapters don't +support low-resolution modes such as 320x200; often, +nothing lower than 640x400 is supported. For example, +this is the case with some ATI adapters. There's nothing +Quake can do to provide low-resolution VESA modes in these +cases, because Quake simply supports whatever modes the VESA +driver chooses to report as supported. Unfortunately, 640x400 +is too high a resolution for really good performance unless you +have a very fast Pentium or a Pentium Pro, so on machines with +this sort of adapter, the VESA modes aren't very usable. +Workaround: Use UniVBE 5.2, which supports low-resolution modes +on a wide variety of adapters. Note that a few adapters simply can't +support low-resolution modes, in which case you'll have to stick with +the low-resolution VGA and Mode X modes that are built into Quake, +which run fine but may be somewhat slower than VESA modes. + +A few video adapters are almost but not fully VGA compatible, because +they don't support some unusual VGA video modes. In particular, a few +adapters don't support the 360-wide Mode X-style video modes that are +build into Quake (modes 2, 4, 6, 8, and 10), and display garbage in those +modes. Workaround: use different modes, such as 0, 3, 5, 7, 9, or any +VESA modes that are available. + +Under Win 95, the palette occasionally gets messed up when switching from +Quake to the desktop and back again. You can restore the palette by +bringing down the console (either press tilde ('~'), or press Esc to bring +up the menu, select Options, and select Console... from the Options menu), +and typing bf and pressing the enter key, to generate a background flash, +which sets the palette. Press Esc to exit the console. Alternatively, +setting the screen brightness, either from the Options menu or via the +gamma console variable, sets the palette. + +Under Win 95, if the system key (the key with the Win 95 flag on it) is +pressed while Quake is running fullscreen in a VESA mode, Win 95 may be +unable to switch back from the desktop to Quake, in which case it will +notify you of this, then terminate the Quake session. This is a quirk +of Win 95, and normally there is no workaround other than not to press +that key or not to use VESA modes. (Some people go so far as to remove +the system key from their keyboard.) However, you can +disable the system key for Quake with the following utility: + +http://www.microsoft.com/windows/download/doswinky.exe + +Switching away from Quake with Alt-Enter, Ctrl-Esc, Alt-Tab, or +Alt-Spacebar all work fine (except that if you disable the system key +with doswinky.exe, Ctrl-Esc will also be disabled). + + +Performance +----------- + +Quake's graphics should be adequately fast in mode 0 (320x200) on all +Pentium-class machines. If you feel Quake is running slowly, set the +showturtle console variable to 1; you will then see a turtle icon +appear in the upper left corner of the screen if the frame rate drops +below 10 frame/second. If you are getting the turtle, you are probably +not getting great gameplay. Performance can be improved in several ways: + +* size down the screen with the minus key + +* select a lower-resolution mode, if possible + +* use a VESA mode + +* if you're using a VESA mode and vid_wait is set to 1 (wait for +vertical sync) by default (you can check by typing vid_wait +in the console), you can try setting vid_wait to 0 or 2, as detailed +in the discussion of the vid_wait command above. Be aware that +risks of screen glitching or hung machines are associated with +overriding a default vid_wait 1 setting in VESA modes. + +To see how exactly fast Quake is running, bring up the console and type + +host_speeds 1 + +You will see a display at the top indicating total frame time in +milliseconds, and also server, graphics, and sound frame time in +milliseconds. (Note, though, that unless you also do + +snd_noextraupdate 1 + +sound time will actually show up as graphics time. However, +snd_noextraupdate 1 can cause sound to get choppy, so it's not +generally recommended.) + +Lower numbers are better. + +Type + +host_speeds 0 + +to turn off the frame time display. + + +Pentium Pro Performance +----------------------- + +The Pentium Pro is a very fast Quake platform, but has one weak spot; it is +by default very slow on writes to video memory. This means that in default +hardware configurations, you are usually much better off setting +vid_nopageflip to 1 if you use VESA modes, so drawing is done to system +memory instead of to video memory. Remember that you must set the mode +after setting vid_nopageflip to 1 in order to get vid_nopageflip to take +effect. (vid_nopageflip can sometimes be faster on a Pentium, too, but +not by nearly as much in general, and it's often slower.) + +The Pentium Pro has some special features that are not turned on by default, +but which can help Quake performance a LOT. These features can be enabled +by John Hinkley's program FASTVID, which can be obtained from +ftp://members.aol.com/JHinkley/fastvid.zip. Performance in 640x480 +mode on a Pentium Pro/150 nearly doubled after FASTVID was run; Quake +was very playable (and looked great!) at this resolution. + +There's the usual caution with FASTVID: It could conceivably make your +system run goofily, or who knows what. FASTVID is not a product of +id Software, and id makes no guarantees regarding FASTVID. In other words, +use FASTVID at your own risk. + +************************************************************************ +IMPORTANT NOTE: FASTVID works only on Pentium Pros!!! Please do NOT +contact either John Hinkley or id with problems concerning FASTVID on +Pentium or 486 machines. +************************************************************************ + + +Video Bug Reporting +------------------- + +If you encounter a video-related bug, please fill out the form found at the +end of this file and e-mail it to support@idsoftware.com. There are several +problems that are not bugs, and shouldn't be reported, including: + +* unavailability of some VESA modes; VESA modes are only supported by +Quake if they are 8-bpp, are LFB modes (except for 320x200), and are +no greater than 1280x1024 in resolution. If you have a VESA mode +that doesn't seem to be working properly, please contact the +manufacturer; we just use the information that the VESA driver +provides us with. + +* problems that occur when you change vid_wait from a default value +of 1 (wait for vertical sync) in VESA modes + +* sluggish performance on 486s + +* the known palette problem on some Mach64s. + +* the known palette problems switching from fullscreen to the desktop and +back under Win95. + +* the known problems switching back from the desktop in VESA modes after the +system (Windows flag) key has switched from fullscreen to the desktop. + +* video modes that are not listed in the Video Modes menu, or that are not +listed or are listed with "**" in the output from vid_describemodes; such +modes are either not supported by your video adapter, or cannot be supported +by Quake in the amount of memory your system has. High-resolution modes will +often not be available in 8 Mb systems. + +* 360-wide video modes that don't work although other resolutions do work + +* lack of low-resolution VESA modes; the availability of low-resolution modes +is the responsibility of the VESA driver. UniVBE 5.2 provides low-resolution +modes on most adapters. + +Apart from these, we would very much like to hear about any video +problems you encounter. + + +========================================== +== Sound Subsystem Documentation == +========================================== + +Quake's sound subsystem works only with Sound Blaster compatible sound +cards. For Quake to get the correct settings for DMA channel and PORT +address, you must set your BLASTER environment variable (or have it set for +you with the DIAGNOSE utility in your SB16 directory). If you do not have +the BLASTER environment variable set, your sound will not work. If your +sound card supports Sound Blaster compatibility, Windows 95 should set this +variable for you. + +Note: some sound cards do not have 100% Sound Blaster compatible +hardware, but emulate the Sound Blaster interface. Such cards may +display some inconsistencies relative to an actual sound blaster. +In particular, sound may be delayed on some cards. + +Note: it is possible for sound to get choppy if the frame rate +drops to a very low level, below 5 frames a second. A frame rate +that low will not provide a good gameplay experience, so if you +do experience choppy sound, your machine is almost certainly not +fast enough to run Quake satisfactorily in general. + +If (when) you see bugs, please use the form attached to the end +of these docs to submit a bug report. + +Sound Card Command Line Options, Commands, and Variables +================================================================== + +The commands and variables below work under any operating system. +Command-Line options are typed on the command line in most any place +but only in operating systems which support command line interfaces, +like DOS's COMMAND.COM, or NEXTSTEP's or Linux's csh, sh, or bash. +For example, under DOS, the NOSOUND option would be used like this: +"C:> quake -nosound". + +Command-Line Options +-------------------- + +NOSOUND + Syntax: -nosound + Description: This will prevent *any* sound code from being executed. If + you are having technical difficulty with the game and then try + running the game with this option and the problem goes away, then + the problem is probably somewhere in the sound code. + +SSPEED + Syntax: -sspeed + Description: This will ask the sound code to set the playback speed + within the constraints of the capabilities of the card. This is + 11025 Hz by default and usually from 8000 to 44100. Making this + faster requires more CPU horsepower, and has no actual benefits, + because the sounds only contain 11 KHz data. Making this slower + degrades sound quality, but improves performance and saves memory. + +Commands +-------- + +SOUNDINFO + Syntax: soundinfo + Description: This prints the "portable" information on your current + audio hardware setting in the game. It specifies whether there is + stereo output (0 or 1), the number of samples in the DMA buffer, the + current sample position (changes each time you run SOUNDINFO and + ranges from 0 to the number of samples), the number of sample bits, + the submission chunk (1 in DOS or Linux w/ mmaped sound, larger in + Linux w/o mmaped sound), playback speed in Hz, the DMA buffer address + in hexadecimal (usually 8 digits after the 0x, starting with 0xf00.. + in DOS, starting with 0x400.. in Linux, and less than 8 digits if the + hardware was not initialized successfully), and the number of + channels mixed in software (8 by default, changeable w/NUMCHANNELS + command). + +STOPSOUNDS + Syntax: stopsounds + Description: Stops any current looping sounds. + + +Sound Blaster Sound Card Command-Line Options and Commands +========================================================== + +The following applies to Sound Blaster cards or compatibles under DOS +or a DOS box. + +Commands +-------- + +SBINFO + Syntax: sbinfo + Description: This will print information on the Sound Blaster card + in the system. If the version is 4 or greater, then it is some + kind of Sound Blaster 16 or compatible. Version 2 is an 8 bit mono + sound blaster, Version 3 is an 8 bit stereo sound blaster pro. + The port is the I/O portsensed from the A variable in the BLASTER + environment variable.The DMA is the DMA channel and is confirmed in + hardware if thecard is version 4 or higher. The mixer port can be + ignored. + + +========================================== +== CD Audio Subsystem Documentation == +========================================== + +Overview +======== +Quake is designed to play background music off of a CD-ROM. The Quake CD has +music tracks on it and each level has been assigned a track that will be +played. + +Win95 Users: Putting a CD other than the Quake CD into the drive when Quake +is already running will sometimes cause another Windows application to start +and switch you back to Windows with Quake running in the background. You +will probably want to stop whatever was started and switch back to Quake as +quickly as possible... especially if you are playing deathmatch. + + +Command Line Parameters +======================= +-nocdaudio + This will prevent the CD audio system from even attempting to initialize. + No CD commands or functions will be available. The game will just run + with no music. + +-cdmediacheck + This causes the game to periodically check to see if the CD has been + removed and a new one placed in the player. It is off by default since + this operation is very slow on some CD players and is not needed under + Win95. There is normally no reason to enable this option; it would + only be useful if you were going to be changing the CD from within the + game on a regular basis. + +Commands +======== +There is normally no reason you would need to use any of these commands. If +you are playing Quake with the Quake CD in your CD-ROM drive, the appropriate +music track will be played automatically. + +cd on + Re-enables the CD audio system after a "cd off" command. + +cd off + Shuts down the CD audio system. No more music will be played unless it + is re-enabled. + +cd reset + Causes the CD audio to re-initialize. This is useful if you change + CDs or insert the CD after you've already run Quake. + +cd play + Plays the specified track one time. + +cd loop + Plays the specified track. It will be repeated until either it is + manually stopped or another track is started. + +cd stop + Stops the currently playing track. + +cd resume + Will resume playback of a stopped track. + +cd eject + This is for CD players that do not have a manual eject button. + +cd remap ... + Allows you to switch what tracks are played. This is especially useful + if you want to play music other than that on the Quake CD. If the CD + audio system is told to play track 1, it will instead play the 1st + track you specified. For example: assuming a CD with 1 data track and + 8 music tracks, the command "cd remap 1 9 8 7 6 5 4 3 2" would leave + the data alone and play the audio tracks as if they had been placed on + the CD in the opposite order. + +cd info + Reports information such as the number and types of tracks on the current + CD, what track (if any) is currently playing, and the playback volume. + + +Variables +========= +bgmvolume + The background music volume. Valid values are 0.0 though 1.0. Changes + will normally be made using the options menu. + + Not all CD-ROM players support variable volume. The 0.0 to 1.0 value + translated to a value from 0 to 255 before it is passed to MSCDEX. How + this value is interpreted varies from drive to drive. The only thing + required by the MSCDEX specification is that 0 is off and anything else + is on. Some CD-ROM drives only have on and off so change to bgmvolume + will have have no effect on volume once it is on. + + +Messages +======== +CDAudio_Init: MSCDEX version 2.00 or later required. + MSCDEX was either not loaded, or is a version earlier than 2.00. + +CDAudio_Init: First CD-ROM drive will be used + MSCDEX reported that the system has more than one CD-ROM drive. + Quake will always use the first drive in this case. + +CDAudio_Init: Unable to allocate low memory. + We were unable to allocate the memory needed to communicate with MSCDEX. + Although the game can still run, this indicates a severe low memory + condition. + +CD Audio Initialized + Indicates that the CD audio system has successfully initialized. + +CDAudio_Play: Bad track number N. + We attempted to play a track number that that is outside the range of + tracks recorded on the CD currently in the CD-ROM drive. Probable causes + are that a CD other than Quake is in the player, or a custom level has + specified an invalid track number. + +CDAudio_Play: Can not play data. + A valid track was requested to be played, but it was a not an audio track. + The probable causes are the same as for a bad track number. + +CDAudio_Play: track N failed + A valid audio track was going to be played, but the play command to MSCDEX + returned an error. + +CDAudio: media changed + This is simply a notification. It can only occur if the "-cdmediacheck" + option was specified on the command line. + +CDAudio: Error - playback stopped N + An error occurred while the CD was playing audio. Playback has been + stopped and no further automatic play will be attempted; the game will + proceed without music. + +CDAudio_Init: No CD in player. + MSCDEX reported an error while Quake was attempting to get information + about the current CD. There is either no CD in the player, or it was + unable to get the track information. No automatic CD play will be + attempted; the game will proceed without music. + + +========================================== +== Network Subsystem Documentation == +========================================== + +Overview +======== + +Quake is a client/server game. You are always running over some type of +network. In a standalone game, you are using a loopback network; it just +passes messages back and forth in memory buffers. This readme is talking +about real networks and multiplayer deathmatches. There are three main +sections: commands, LANs, and Serial. + +Most normal configuration can be done via the game menus. + +There are two types of Quake servers: dedicated and listen. A listen server +is a machine that is used to play the game and also hosts the game for other +players. A dedicated server only hosts the game; it runs in text mode and +does not let anyone play on that machine. A single player game is really +just a 1 player listen server that doesn't listen for network connections. + +Dedicated vs Listen. I'll try to make this simple: it is always better to +use a dedicated server. Why? Fairness and playability. With a listen +server, the person on the server always has advantages. They will always be +the first person into a level, they will always have zero latency, and they +will get a server update on each and every frame. On a dedicated server +everyone gets equal treatment. Getting into the server is a first come, +first served proposition; latency is determined by each player's connection; +and everyone is sent the same number of updates. It's about as fair as life +gets. By the way, a good 486 machine works nicely as dedicated server. + +Another suggestion. Until there is a native Win95 version of Quake, IPX will +usually provide better gameplay on a local area network. This is due to the +delicate balancing act that is required to let a DOS program use the Win95 +TCP/IP stack. + +To start a Dedicated Server, you invoke Quake with the "-dedicated" +command-line parameter. When the server starts, you can type any command +that you would normally type in the Quake Console, such as "map e1m1" to +start the server on a specific map. This can be done from the command- +line as well by typing "quake -dedicated +map e1m1". If a value is entered +after "-dedicated", that is the amount of players allowed to connect, up +to a maximum of 16 players. A dedicated server will quit to the OS whenever +a fraglimit or timelimit is reached. Example: "quake -dedicated 16" will +start a 16-player dedicated server. + +To start a Listen Server, you invoke Quake with the "-listen" command- +line parameter, or use the Multiplayer menu in the game. Starting a listen +server from the command-line will allow you to handle more than 4 players, +as 4 is the limit when starting a game from the Multiplayer menu. If a +value is used after the "-listen", that is the maximum amount of players +allowed, up to 16 players. + +Command Line Parameters, Commands, and Variables +================================================ + +Command line parameters +----------------------- +-nolan + Disables IPX, TCP/IP, and serial support. + +-noudp + Disables support for TCP/IP. + +-udpport + Specifies a UDP port to be used other than the default of 26000. + +-noipx + Disables support for IPX. + +-ipxport + Specifies a IPX port to be used other than the default of 26000. + +-noserial + Disable serial support. + +-mpath + Enables support for code to use Win95's TCP/IP stack. Do NOT use this + under DOS! + +-listen [n] + Starts Quake ready to be a non-dedicated server for up to + players. If you do not specify a number after -listen it will + default to 8. The maximum allowed value is 16. + +-dedicated [n] + Starts Quake ready to be a dedicated server for up to players. + If you do not specify a number after -listen it will default to 8. + The maximum allowed value is 16. A dedicated Quake server stays in + text mode. This is the Quake console with most commands still + available; those that make no sense (like vid_mode) are ommitted. + +Console Variables +----------------- + +net_messagetimeout + Specifies how long Quake should wait for a message to arrive before + deciding the connection has died. The default is 3 minutes. For + reference, messages usually arrive at the rate of about 20 per second. + +hostname + This is the name for your server that will show up on an slist + (see below). The default value is "unnamed". + +sys_ticrate + Only used by dedicated servers. This determines the rate at which the + server will send out updates to the clients. The default value is 0.05 + (20 updatesper second). For servers where bandwidth is limited, using + modems or the internet for example, it is advisable to lower this value + to 0.1 (10 updates per second). This will have a very minor effect on + responsiveness, but will half to outbound bandwitdh required making the + modem players a lot happier. + + +Console commands +---------------- + +net_stats + This is for debugging. It displays various network statistics. + +slist + Looks for Quake servers on a local LAN (or over a null modem + cable). This will NOT go outside the local LAN (will not cross + routers). + + +LANs +==== + +Here are the LANs that are supported by the Quake test +release. For each one, you'll be told how to connect to a server +*if it is not on your local network*. If it is, you can use the +"slist" command and connect by hostname. See the main readme for +a discussion of the connect command. + +IPX +--- + +Quake has been run with Novell's ODI IPX stack under DOS, PDIPX with packet +drivers under DOS, and the Microsoft IPX stack in a Win95 DOS box. When +connecting to a server using IPX, you specify its network:nodeaddress (like +12345678:1234567890AB). If you are on the same network, you can just specify +the node address. If you are doing a connect command from the console, a +full IPX address must be enclosed in quotes. + +For example, the server's IPX address is "00FADE23:00aa00b9b5b2", you would +enter: connect "00FADE23:00aa00b9b5b2" + +Win95 TCP/IP +------------ + +Please see the Win95 section of this file for details about playing using +TCP/IP under Win95. + +Kali +---- + +To Quake, Kali appears to be IPX. Once you've got Kali up and running, run +Quake as if it was on an IPX network. + +Beame & Whiteside TCP/IP +------------------------ + +This is the only DOS TCP/IP stack supported in the test release. +It is not shareware...it's what we use on our network (in case you +were wondering why this particular stack). This has been "tested" +extensively over ethernet and you should encounter no problems +with it. Their SLIP and PPP have not been tested. When connecting +to a server using TCP/IP (UDP actually), you specifiy it's "dot notation" +address (like 123.45.67.89). You only need to specify the unique portion +of the adress. For example, if your IP address is 123.45.12.34 +and the server's is 123.45.56.78, you could use "connect 56.78". + +Playing over the Internet +------------------------- +Yes, you can play Quake over the Internet. How many people can be in +the game? That depends. How smooth will the game be? That depends. +There are just too many variables (bandwidth, latency, current load, +etc...) for us to make any kind of promises about Internet play. + + +Serial/Modem +============ + +The Quake serial driver supports two COM ports. Although they are referred +to as COM1 and COM2, you can configure them to use any normal hardware +COM port (1 thru 4 on most PCs). The com ports are used with interrupts, +so their IRQ may not be used for another purpose (such as a LAN adapter +or sound card). The IRQ may not be shared with another device either; +not even another COM port. A client can only be connected to one server +at a time, so multiple ports are really only useful on a server. +When using modems, the client must originate the call and the server +must answer. This holds true even for a two player, non-dedicated +server configuration. + +In the Multiplayer menu, the default modem string is "ATZ". If your modem +games are too slow, you can change this string to the appropriate one for +your modem as listed below in the "Modem Strings" section. + + +The COMx commands +----------------- + +Use the menus for serial play whenever possible. The console +interface is only for unusual configurations. It is much more +difficult to understand and use correctly. + +Those of you who do use the console commands for serial play need to +know that the menus always use the first Quake COM line (COM1); yes, +even for COM2. The names COM1 and COM2 here mean the first and second +serial ports, not necessarily the PC COM1 and COM2 ports (although those +are the default configurations). + +There are two commands to support serial/modem play for Quake. They +are: COM1 and COM2. Entering one of these commands with no arguments +will display the status of that serial port, similar to this: + +Settings for COM1 +enabled: true +connected: false +uart: 16550 +port: 3f8 +irq: 4 +baud: 57600 +CTS: ignored +DSR: ignored +CD: ignored +clear: ATZ +startup: +shutdown: ATH + +When used with arguments, these commands change the settings and +status of the COM ports. The possible arguments are listed below; +examples follow. + +enable | disable + "enable" means that your configuration is complete and you want to use + the COM port. "disable" is used to turn off a COM port, usually to + change its settings. The default (initial) state is disabled. + + +modem | direct + Use one of these two to let Quake know if you are using a modem or a + direct connection (also called a null modem). Quake uses this to know + if it needs to handles modem initialization strings, dialing sequences, + and hangup procedures. + +reset + This will reset the COM port to its default settings and state. + + +port +irq + These are used to set the I/O Port and IRQ that your serial port uses. + The default values are: port=3f8 irq=4 for COM1 and port=2f8 irq=3 for + COM2. Note that the port number is displayed in hexadecimal; to enter + it you would use something like "COM2 port 0x2f8"; the "0x" preceding + the "2f8" indicates that you are giving the value in hexadecimal + otherwise decimal is assumed. + + +baud + Sets the baud rate. Valid values for are: 9600, 14400, + 28800, 57600, and 115200. 57600 is the default. Please note that + this is the baud rate used for the uart, not your modem. It is + perfectly valid to use 57600 on a COM port that is connected to a + 28.8 modem. + +8250 | 16550 + Specifies the type of uart chip in your system. Normally this is + automatically detected, one of these need only be used if your chip + is incorrectly detected. + +clear +startup +shutdown + This allows you to specify the clear, startup, and shutdown strings + needed fora modem for playing Quake. If you've found values that + previously workedwith Doom, use them here. If you are playing over + a null modem cable,leave these blank. + +-cts | +cts +-dsr | +dsr +-cd | +cd + These determine if certain serial control lines should be honored or + ignored. The "-" means you want that line ignored, the "+" means to honor + it. "cts" is an abbreviation for "clear to send", "dsr" for + "data set ready", and "cd" for "carrier detect". Do notchange these + values unless you are absolutely positive you need to. The default is to + ignore all 3 lines. + +Quake always uses no parity, 8 data bits, and 1 stop bit; these +values can not be changed. The baud, port, irq, and uart type can +not be changed on an enabled port, you must disable it first. + + +Configuration examples +---------------------- +Example1: You have a machine with two serial ports you are going +to use as a Quake server. COM1 will be using a null modem cable and +COM2 will be connected to a 14.4 modem. You would use commands similar +(the startup string would almost certainly be different) to these: + +COM1 baud 57600 enable +COM2 baud 14400 modem startup AT\N0%C0B8 enable + + +Example2: You are going to use your machine to connect to a dial-up +Quake server with your 28.8 modem connected to COM2. You would +use a command something like this: + +COM2 baud 57600 modem startup AT\N0%C0B8 enable + +Note the baud rate is not the same as the modem speed. This allows +the modem-to-uart communications to occur at a higher rate than +the modem-to-modem communications. + +Connecting to a serial Quake server +----------------------------------- + +Connecting to a Quake server over a serial/modem connection is done +using the "connect" command. The command "connect 5551212" would try to +connect to a Quake server at the phone number 555-1212. Note: your local +phone company would probably appreciate it if you didn't try this number! + +If you are using a null modem cable, you can type "connect #". +Quake will then attempt to connect to the server. + + +Known problems / workarounds +============================ +Packet drivers with PDIPX - there is a bug that stops a server running on +this combination from responding to the slist command. Use the patched +version of PDIPX included with Quake to correct this problem. + +SLIST sees no servers - Some PCMCIA ethernet cards and PPP drivers will +not do the UDP broadcasts needed for the SLIST command (search for local +games from the menu) to function correctly. In these cases you must +connect to a Quake game using either its IP address or hostname +(DNS resolvable hostname, not the hostname variable in Quake). + +"BW_OpenSocket failed: 5" - This error is specific to the Beame and +Whitesdie TCP/IP stack. This stack uses DOS file handles as it's +socket handles. This error occurs when DOS runs out of file handles. +You need to increase the number specified by "FILES=" in the DOS +config.sys file. + +Severe lag using TCP/IP under Win95: + - Occasionaly when you first connect in to a Quake game using Win95 +TCP/IP you will experience severe lag and not be able to control your +player's actions. This usually clears up in 10 to 15 seconds. + - There is apparently a strange limbo state for Microsoft's File and +Print sharing. This has been seen when it was installed and then later +removed, but it still appears on the menus. For some unknown reason +this causes severe lag for a Quake game. You need to go back and make +sure that it is either completely installed or removed. + + +========================================== +== Modem Strings == +========================================== + +Boca M1440i (internal): +ATS48=0S37=9S46=136%C0%E0%M0&K0&Q0&R1&C1&D2\G0\N1N0 + +Boca 14.4k (internal): +AT&C0N0S37=9&K0W0&Q0S36=3S48=128%C0 + +Boca 14.4 Fax/Modem +AT S46=0 S37=9 N0 &Q0 &D2 &K4 + +Boca 14.4k (external): +AT &F S0=1 S36=0 &K0 &Q6N0S37=9 &D2 + +Boca 14.4k: +AT S46=0 S37=9 N0 &Q0 &D2 &K0 %C0 + +Cardinal 14.4k v.32bis, v.42bis Fax/Modem: +AT &F N0 S37=9 &Q0 &D2 \N1 + +Digicom Systems (DSI) (softmodem): +AT Z \N0 &D2 &K0 S48=48 + +Digicom Systems Scout Plus: +ATZ*E0*N3*M0*S0*F0&D2 + +Gateway Telepath: +AT &F S37=9 %C0 &K0 &Q6 \G0 + +Gateway Telepath 14.4k: +AT S46=0 S37=9 N0 &Q0 &D2 &K0 %C0 + +Gateway Telepath I: +AT S0=1 &N6 &K0 &M0 + +Gateway Telepath II: +AT S0=1 S37=9 %C0 &Q0 &K0 + +Generic v.32bis 14.4k Fax/Modem: +AT \N0 %C0 B8 + +Generic 14.4k Fax/Modem: +AT S46=0 S37=9 N0 &Q0 &D2 %C0 \G0 &K0 + +GVC 14.4k (internal): +AT &F B8 \Q0 + +Hayes 28.8k V.FAST Modem: +AT &Q6 &K S37=9 N %C0 \N0 + +Infotel 144I: +AT&Q0 S37=9 N0 &D2 + +Infotel 14.4: +&F0 \N1 &D2 S37=F8 + +Intel 14.4k: +AT \N0 %C0 \Q0 B8 + +Intel 14.4k (internal): +AT Z B8 Q1 \C0 \N1 %C0 \V "H + +Linelink 144e: +AT &F &D1 &K0 &Q6 S36=3 S46=136 %C0 +19200 + +Microcom AX: +&F \N1 \Q0 &D2 + +Microcom QX/4232bis: +AT %C0 \N0 + +Netcomm M7F: +AT &E &K0 B0 \V0 X4 &D2 \N1 \Q0 #J0 #Q9 %C0 + +Nokia ECM 4896M Trellis V.32: +AT Z %C0 /N0 + +Nuvotel IFX 14.4 (internal): +&F \N1 &D2 + +Practical Peripherals 14400FX v.32bis: +AT Z S46=0 &Q0 &D2 + +Practical Peripherals 14400FX v.32bis: +AT S46=0 &Q0 &K0 &D2 + +Supra: +AT &F0 S46=136 %C0 + +Supra (external): +AT &K &Q &D \N1 + +Supra 14.4k v.32bis: +AT &F S46=136 &Q0 &D2 + +Supra 14.4k v.32bis: +AT &K &Q &D \N1 + +Supra Fax Modem 14.4K v.32 bis +AT &F %C0 S48=7 Q0 V1 W1 + +Telepath 14.4k: +AT &F&M0&K0&N6&H0 S0=1 + +Twincomm DFi 14.4: +AT&F &Q0 %C0 S37=9 &D2 + +UDS V.3223: +&F \N1 \Q &D2 + +UDS Fastalk 32BX: +&F0 \N1 &D2 + +USR Courier v.32bis: +ATS0=1 S7=60 E1 Q0 V1 &C1 &D2 &H0 &K0 &M0 &N6 &A3 + +USR Courier HST/DS 16.8k: +First reset the modem in a communication program with AT&F&W +AT X4 B0 &A0 &B0 &H2 &I0 &K0 &M0 &N6a + +USR DS v.32bis v.42bis (external): +AT&m0&n6&a0&r1&h0&k0&i0&s0&b1x1 + +USR Sporster 9600: +AT&M0&K0&N6 + +USR Sportster V.34 28.8 (note: works best at 19200 baud): +AT &F &M0 &I0 &K0 &B0 &N0 + +USR Sportster 14.4k Fax/Modem USING ERROR CORRECTION: +AT S0=1 S7=60 E1 QO V1 &C1 &D2 &K0 &N6 &A3 + +USR Sportster 14.4k Fax/Modem (internal): +AT &F&M0&K0&N6&H0 + +USR Sportster 14.4k (internal): +AT &F &B1 &H0 &I0 &K0 &M0 &N6 &R1 + +USR Sportster 14.4k: +ATS0=1S7=60E1Q0V1&C1&D2&K0&N6&A3 + +USR Sportster 14.4k: +AT &F0 &K0 &M0 &N6 &H0 &I0 &B1 &R1 + +USR Sportster 14,000 Fax Modem: +AT S0=2 &N6 &K0 &M0 &I0 &H0 &R1 &A0 V1 X4 + +USR 14.4k: +AT &F&A0&K0&M0 + +USR 14.4k +AT &K0 &H0 &D0 &I0 &R1 + +USR 14.4k Dual Standard +ATB0&R1&B1&N6Q0X4&A0&D2&H0&I0&K0&M0M1 + +USR (model?): +&F E1 V1 X4 &C1 &D2 &N0 + +ViVa 14.4k: +AT&F&Q6\N0%C0&D2N0S37=9 + +ViVa modem (internal): +&F&Q6\N0%C0&D2N0S37=9 + +Zoltrix model 14/14 VE: +AT S0=Q0 V1 &C1 &D2 W2 &Q0 + +Zoom 14.4k VFX: +AT&Q6S37=9N0%C\N0 + +Zoom 14.4k VFX: +AT&Q6S37=11N0%C&K0 + +Zoom OEM Modem: +AT&Q6S37=9N0&K0 + +Zyxel U-1496E: +AT Z &N4 &K0 + + +========================================== +== Win95 Documentation == +========================================== + +Quake is a DOS application. However, it runs fine from the MS-DOS prompt +under Win95, so long as the Properties for the MS-DOS prompt are set up so +that Quake can run. (See "Set the MS-DOS Prompt Properties", below, for +information about setting MS-DOS Prompt Properties.) Quake will NOT run +under Windows NT. Following are some steps that can help Quake run better +under Win95. + + +Have enough memory +------------------ + +Quake requires at least 16 Mb of installed memory in order to run under +Win95. + + +Set the MS-DOS Prompt Properties +-------------------------------- + +If Quake won't run, the MS-DOS Prompt Properties may not be set correctly. +To set the Properties for the MS-DOS prompt, bring up a DOS session, and +either click on the MS-DOS icon in the upper left corner or press +Alt-Spacebar, then select Properties from the menu that comes up, and make +sure the following settings are correct. + +In the Program sheet of MS-DOS Prompt Properties, make sure the "Suggest +MS-DOS mode as necessary" is checked. + +In the Memory sheet of MS-DOS Prompt Properties, make sure all five fields +are "Auto". + +In the Screen sheet of MS-DOS Prompt Properties, set "Usage" to Full-screen. + +In the Misc sheet of MS-DOS Prompt Properties, uncheck the "Allow screen +saver" box, and check the "Always suspend" box. + + +Make sure there's enough free disk space +---------------------------------------- + +If you get error messages like "can't lock memory" under Win 95, or if you +get other weird, inexplicable errors, make sure you haven't run out of disk +space; delete some files if necessary. You can see how much disk space is +free by bringing up "My Computer" and clicking on the disk icon; the free +disk space will be shown at the bottom of the window. + + +Run fullscreen +-------------- + +Quake can run in a window under Win95--but it will run very slowly. You are +unlikely to get satisfactory performance unless you run Quake fullscreen. +Quake normally comes up fullscreen under Win95; if you have switched it back +to windowed mode, you can get that window back to fullscreen by clicking on +it and then pressing Alt-Enter. + + +Shut down other applications +---------------------------- + +Many Win95 apps and DOS apps run even when they're not the foreground +application. Such applications contend for system resources such as memory, +processor cycles, and sound hardware. If Quake seems to be running choppily, +if sound is garbled, or if the disk is going all the time, try shutting down +whatever other applications you have running. For example, some players +have reported that Quake does not run as well when the Office shortcut bar +is running. + + +Restore the palette if it gets garbled +-------------------------------------- + +Under Win 95, the palette occasionally gets messed up when switching from +Quake to the desktop and back again. You can restore the palette by +bringing down the console (either press tilde ('~'), or press Esc to bring +up the menu, select Options, and select Console... from the Options menu), +and typing bf and pressing the enter key, to generate a background flash, +which sets the palette. Press Esc to exit the console. Alternatively, +setting the screen brightness, either from the Options menu or via the +gamma console command, sets the palette. + + +Avoid the system key +-------------------- + +Under Win 95, if the system key (the key with the Win 95 flag on it) is +pressed while Quake is running fullscreen in a VESA mode, Win 95 may be +unable to switch back from the desktop to Quake, in which case it will +notify you of this, then terminate the Quake session. This is a quirk +of Win 95, and there is no workaround other than not to press that key +or not to use VESA modes. (Some people go so far as to remove the system +key from their keyboard.) Switching away from Quake with Alt-Enter, +Ctrl-Esc, Alt-Tab, or Alt-Spacebar all work fine. + + +Give Quake more and/or locked memory +------------------------------------ + +By default, Quake tries to allocate 8 Mb of unlocked memory for heap space +under Win 95. More memory helps Quake run faster; you can allocate more +memory for Quake under Win95 by setting the command-line switch + +-winmem x + +where x is the number of megabytes to allocate for Quake. If there's enough +memory in the system, the larger the number, up to about 16, the better the +performance. If, however, there isn't enough memory in the system, or many +other applications are running, the larger number can just cause Quake to +page to disk a lot, and can actually slow performance considerably. Also, +higher numbers can also cause Win 95 to take longer to start Quake and take +longer to return to the desktop afterward. If you have 32 Mb or more in your +machine, -winmem 16 should provide the best performance for Quake. If you +have less than 32 Mb, or a lot of applications running, then you will have +to experiment to find the best amount of memory to allocate for Quake. + +You may optionally instruct Quake to lock itself in memory by using the +command-line switch + +-winlock + +so it won't get paged out by other applications. This can avoid hitches when +parts of Quake get paged into and out of memory, and thus provide a smoother +playing experience. On the other hand, it can cause Quake to take longer to +start, and can make the return to the desktop take longer when Quake ends, +because Quake has been hogging a lot of memory. It is even possible, if most +of the memory in the system is locked by Quake, that it will take many +minutes to switch back to the desktop while Quake is running, so the system +will effectively be nearly frozen. Therefore, use -winlock with caution; +Quake is not as well-behaved a Win95 citizen when -winlock is specified, and +does not share resources particularly well. + +-winmem can be used in conjunction with -winlock; if -winmem specifies more +memory than is available to be locked, then Quake will lock as much memory +as possible. Being too aggressive about how much memory is locked can +actually slow Quake performance, because unlocked parts of the system like +system CD and sound code and data can then be forced to page, so if you do +lock memory, you will have to experiment to find the sweet spot, unless you +have 32 Mb or more of memory. + +-winlockunlock can be specified as an alternative to -winlock, to tell Quake +to lock its memory when it starts, then immediately unlock it. The +advantages of doing this are: 1) it forces all of Quake's pages into memory, +so no pages should need to be brought in as Quake runs, making for smoother +running at the start, and 2) it enables Quake to determine whether the +specified amount of memory (if -winmem is also specified) is available in the +machine, so you can be sure Quake won't try to allocate more heap space than +the the amount of physical memory that's actually available. Like -winlock, +-winlockunlock causes Quake to take quite a bit longer to start up, but it +has the advantage of making Quake a good Win95 citizen if you need to switch +back to the desktop, or have other apps running. + +In general, Quake will run fine without any of the -winxxx switches, but you +may find that one or more of them--particularly -winmem if you have more than +16 Mb--helps Quake performance on your machine. + +None of this is an issue under DOS itself (as oppsed to a DOS box under +Win95), because Quake just uses all the memory in the machine under DOS. + +By default, Quake tries to allocate 8 Mb of unlocked memory for heap space + + +Watch out for limbo subsystems +------------------------------ +Microsoft's File and Print sharing and IPX protocol stack have both been +known to cause strange problems when they are in a limbo state. The limbo +state is seems to be an uninstall that did not complete succesfully. Both +of these cause poor network play performance. If you are experiencing +severe lag, check the File and Print services. If you the warning "IPX +driver send failue: 04", check the IPX protocol stack. They need to be +either completely installed or removed; the problems only occur when they +get into this strange semi-installed state. + + +========================================== +== Key Binding and Aliases == +========================================== + +Pressing the tilde key ("~") will bring down the console (pressing the +tilde key or ESC while in the console will close the console). From the +console you can adjust your player controls, this is done by "binding" +keys to commands. The format for binding keys is as follows: + +bind + +Where is a valid key control and is a valid quake command. + +Example: +To bind the j key to the 'jump' command, you would type: +bind j +jump +and press enter. + +Non-printable keys such as 'page up' and buttons from the mouse/joystick are +bound in the same manner as printable characters. A list of bindable keys can +be found at the end of this file. + +Example: +To bind the page up key to the 'jump' command, you would type: +bind pageup +jump +and press enter. + +To bind the right mouse button to the attack command, you would type: +bind mouse2 +attack +and press enter. + +The alias command is used to create a reference to a command or list of +commands. When aliasing multiple commands, or commands that contain +multiple words (such as "fraglimit 50"), you must enclose all the commands +in quotation marks and separate each command with a semi-colon. + +Example of an alias that changes some Deathmatch server parameters: + +alias net_game "hostname my_server ; fraglimit 15 ; timelimit 15" +bind INS net_game + +Once the server is spawned (you must be the one running the -listen server), +you just push the Insert key to set the hostname, frag limit and time limit +of the server. So now the first person to 15 frags, or with the one with the +most frags in 15 minutes, wins. + +Another example would be to change to the Rocket Launcher, fire one rocket, +and change back to the Double Barrel Shotgun, when you press the "," key: + +alias rl_dbsg "impulse 7 ; +attack ; wait ; -attack ; impulse 3" +bind , rl_dbsg + +Aliasing is very powerful, allowing you great flexibility, so you should +experiment by aliasing different commands in various ways. + +A list of common commands can be found in the next section. + + +========================================== +== Quake Keys and Common Commands == +========================================== + +The following keys can be bound: + +A-Z 0-9 +*F1-F12 *TAB +ENTER SPACE +BACKSPACE UPARROW +DOWNARROW LEFTARROW +RIGHTARROW ALT +CTRL SHIFT +INS DEL +PGDN PGUP +HOME END +PAUSE SEMICOLON + +MOUSE1 (mouse button 1) +MOUSE2 (mouse button 2) +MOUSE3 (mouse button 3) + +*~ (tilde) + +* Can only be bound on the command line or in a .cfg file. + +The ESC key cannot be bound. + + +========================================== +== Making a Config File == +========================================== + +The commands (bindings and aliases) discussed above can be included into a +file containing all of your personal configurations, known as a "config" +file. This file can then be loaded during game play to enable all your +personal bindings and settings. + +To do this, use your favorite editor to create a new file, such as +"fragmstr.cfg". Your .cfg file MUST be located in the quake\id1 directory +or quake won't find it. Then after launching Quake, you would type "exec +fragmstr.cfg" and press enter, from the console. You can also exec you .cfg +file from the DOS command prompt by typing "quake +exec fragmstr.cfg". +When you exec a config file, it is the same as typing all the lines in your +config file into the console, only Quake does it for you. Here is an +example config file (c:\quake\id1\bear.cfg) and the meaning of all the +bindings, aliases and settings: + +-------------------------------cut here------------------------------------- +name player1 // Sets player name to player1 (lets your opponent + // know who fragged them) + +sensitivity 4 // Sets the mouse sensitivity to 4 + +scr_conspeed 5000 // Sets the console raise/lower speed + +lookspring 0 // Sets Mouse Look Spring to 0 (0=keep looking, + // 1=spring back, when mouse button is released) + +vid_mode 10 // Sets Video Mode to mode 10 (360X480 resolution) + +gamma .8 // Sets Gamma Correction to .8 (<1=Lighter, 1=normal + // and >1=darker) + +viewsize 70 // Sets the Screen View size to 70 degrees + +bind mouse1 +forward // Binds the left mouse button to Move Forward + +bind mouse3 +attack // Binds the middle mouse button to Fire + +bind mouse2 +mlook // Binds the right mouse button to Mouse Look + +bind HOME "save bear1" // Binds the Home Key to quick save, saves to + // bear1.sav + +bind ENTER +showscores // Binds the Enter key to show Deathmatch Scores + +bind SHIFT +speed // Binds the Shift key to Run + +bind CTRL +jump // Binds the Control key to Jump + +bind ; +mlook // Binds the ; key to Mouse Look also + +bind . +moveleft // Binds the . key to Strafe Left + +bind / +moveright // Binds the / key to Strafe Right + +color 3 4 // Makes Uniform Top green and Pants Red for Net play + +alias rl_dbsg "impulse 7 ; +attack ; wait ; -attack ; impulse 3" + +bind , rl_dbsg // Aliases single rocket attack command and binds + // it to the ',' key. +-------------------------------cut here------------------------------------- + + +========================================== +== Demos == +========================================== + +The standard Demos +------------------ + +Quake has 3 standard demos that start playing when you first run the game. +It will cycle through these demos until you start or join a game. + +Recording a Demo +---------------- +"record [track]" This starts up level and begins +recording a demo into a file name .dem. You can specify the +optional to choose a background music from the CD, otherwise the +default selection for that map will be played. + +Playing a Demo +-------------- +"playdemo " This command will open the file .dem and +play the demo. + +How to not play the standard demos at startup +--------------------------------------------- + +So you've seen the Necropolis demo 10 billion times now and really don't +ever want to see it again? Here's how. + +The easy way is to start Quake with a "+map" command. You could do +"quake +map start" and you'll start on the single player start level. +Or you could do "quake +map nonsense" and you'll wind up at the Quake +console since there is no map named nonsense. You can accomplish the +same thing with a "+connect" too. "+connect" by itself will look for +Quake servers on the local network, "+connect 192.12.34.56" or +"+connect host.timbuktu.edu" will try to connect the the specified +Quake server. + +There is another way to not show the demos; one that also keeps your +customizations in a seperate directory from the data files in the +Quake distribution. + +Do this in the quake directory (the directory where you installed Quake; +where you find "quake.exe" and "the id1" directory). Create a file named +"quake.rc". Its contents should be: + +exec default.cfg +exec config.cfg +exec autoexec.cfg +stuffcmds +menu_main + +Create a batch file to run Quake in the quake directory. "Q.BAT" is a good +name. It's contents should be: + +quake -game . %1 %2 %3 %4 %5 %6 %7 %8 %9 + +If you normally use the Q95 batch file, just add the "-game ." part to +that file. + +Now you can run "q" and quake will start off with the main menu displayed +instead of running the demos. + +You can also make a seperate subdirectory for this if you'd like. For +example, make a directory named "mine" in the quake directory. Create +the "quake.rc" file as specified above in this directory. Use +"-game mine" instead of "-game ." in your batch file. + +Important note: The directory specified by "-game" is where Quake will +look for config.cfg, load and save games, and record and play +demos. + + +========================================== +== Reporting Quake Bugs == +========================================== + +How to use the bug report: + +Where to send bug reports: +E-mail : support@idsoftware.com +FAX : 214-686-9288 + +There are two sections of information - primary and secondary. + +Primary information contains information such as date, your name, e-mail +address, etc. Secondary information is actual bug information. There are +a few different sections depending on what type of bug you revieced +(sound, video, etc). Only fill out and include information from the section +related to the type of bug you received. + +If possible, start Quake with the "-condebug" command line parameter +and try to reproduce the bug. Attach the "qconsole.log" file found in the +"id1" directory to the end of the bug report. If the bug is sound related, +while in Quake, execute the SOUNDINFO and SBINFO (DOS only) commands from +the console. + +Please attach a copy of your CONFIG.SYS and AUTOEXEC.BAT file to the end of +the report. + +Bugs submitted properly with this form will get attention. +Unformatted ones sent to personal accounts will be ignored. +If you see problems, please take the time to do this. + +If you do not have all of the information requested in the form, +don't worry. Send what you do have. + +Please include the version #. THe version # for Quake can be found in the +lower right hand corner of the console. To bring up the console, press the +tilde ('~') key. Press tilde ('~') again or ESC to exit. + +-------------------------------cut here------------------------------------- + + +============================================================================ +== Quake Bug Report - Primary information == +============================================================================ + +Date: +Name: +Phone number: +E-mail address: (please include this, we redirect tons of mail) +Game Title: +Version #: +Operating system (i.e., DOS 6.0 or Windows 95): +Computer type: +BIOS date: +BIOS version: +Processor type: +Processor speed: +Do you program at school/work? +Do you provide tech. support at school/work? +Please state the problem you encountered: +Please state how to reproduce the problem: + +If program crashed with nasty undecipherable techno-garbage, please +look for the eight-digit hex number which comes after "eip=" +and write it down here: + + +============================================================================ +== Quake Bug Report - Secondary information == +============================================================================ + +------------------------------ Video Related ------------------------------ + +Video Card Manufacturer: +Video Card Model: +Chipset Used: +BIOS Date: +(If using UniVBE, The above information can be found by running uvconfig) + +Did the problem occur while in a VESA mode? + +If so, what is the VESA driver and version? (eg., UniVBE 5.1a, +built into board BIOS, or manufacturer provided TSR) + +------------------------------ Sound Related ------------------------------ + +Audio card brand and model: + +If DOS or a DOS box, please run the command "set > set.txt" then +attach "set.txt" to the end of the report. + +----------------------------- Network Related ----------------------------- + +What type of network connection was established when the error occurred? +(modem, nullmodem, or network) +If modem, Modem brand and model: + +If network, Network card brand and model: + Network protocol/configuration: + +--------------------------------------------------------------------------- + + + + + + + + diff --git a/doc/glqnotes.txt b/doc/glqnotes.txt new file mode 100644 index 000000000..22240724c --- /dev/null +++ b/doc/glqnotes.txt @@ -0,0 +1,171 @@ +Glquake v0.99, Quake v1.09 release notes + +3dfx owners -- read the 3dfx.txt file. + +On a standard OpenGL system, all you should need to do to run glquake is put +glquake.exe in your quake directory, and run it from there. DO NOT install +the opengl32.dll unless you have a 3dfx! Glquake should change the screen +resolution to 640*480*32k colors and run full screen by default. + +If you are running win-95, your desktop must be set to 32k or 64k colors +before running glquake. NT can switch automatically. + +Theoretically, glquake will run on any compliant OpenGL that supports the +texture objects extensions, but unless it is very powerfull hardware that +accelerates everything needed, the game play will not be acceptable. If it +has to go through any software emulation paths, the performance will likely +by well under one frame per second. + +3dfx has provided an opengl32.dll that implements everything glquake needs, +but it is not a full opengl implementation. Other opengl applications are +very unlikely to work with it, so consider it basically a "glquake driver". +See the encluded 3dfx.txt for specific instalation notes. 3dfx can only run +full screen, but you must still have your desktop set to a 16 bit color mode +for glquake to start. + +resolution options +------------------ +We had dynamic resolution changing in glquake for a while, but every single +opengl driver I tried it on messed up in one way or another, so it is now +limited to startup time only. + +glquake -window +This will start glquake in a window on your desktop instead of switching the +screen to lower resolution and covering everything. + +glquake -width 800 -height 600 +Tries to run glquake at the specified resolution. Combined with -window, it +creates a desktop window that size, otherwise it tries to set a full screen +resolution. + +You can also specify the resolution of the console independant of the screen +resolution. + +glquake -conwidth 320 +This will specify a console resolution of 320 by 240 (the height is +automatically determined by the default 4:3 aspect ratio, you can also +specify the height directly with -conheight). + +In higher resolution modes such as 800x600 and 1024x768, glquake will default +to a 640x480 console, since the font becomes small enough at higher +resolutions to become unreadable. If do you wish to have a higher resolution +console and status bar, specify it as well, such as: +glquake -width 800 -height 600 -conwidth 800 + +texture options +--------------- +The amount of textures used in the game can have a large impact on performance. +There are several options that let you trade off visual quality for better +performance. + +There is no way to flush already loaded textures, so it is best to change +these options on the command line, or they will only take effect on some of +the textures when you change levels. + +OpenGL only allows textures to repeat on power of two boundaries (32, 64, +128, etc), but software quake had a number of textures that repeated at 24 +or 96 pixel boundaries. These need to be either stretched out to the next +higher size, or shrunk down to the next lower. By default, they are filtered +down to the smaller size, but you can cause it to use the larger size if you +really want by using: + +glquake +gl_round_down 0 +This will generally run well on a normal 4 MB 3dfx card, but for other cards +that have either worse texture management or slower texture swapping speeds, +there are some additional settings that can drastically lower the amount of +textures to be managed. + +glquake +gl_picmip 1 +This causes all textures to have one half the dimensions they otherwise would. +This makes them blurry, but very small. You can set this to 2 to make the +textures one quarter the resolution on each axis for REALLY blurry textures. + +glquake +gl_playermip 1 +This is similar to picmip, but is only used for other players in deathmatch. +Each player in a deathmatch requires an individual skin texture, so this can +be a serious problem for texture management. It wouldn't be unreasonable to +set this to 2 or even 3 if you are playing competatively (and don't care if +the other guys have smudged skins). If you change this during the game, it +will take effect as soon as a player changes their skin colors. + +GLQuake also supports the following extensions for faster texture operation: + +GL_SGIS_multitexture +Multitextures support allows certain hardware to render the world in one +pass instead of two. GLQuake uses two passes, one for the world textures +and the second for the lightmaps that are blended on the textures. On some +hardware, with a GL_SIGS_multitexture supported OpenGL implementation, this +can be done in one pass. On hardware that supports this, you will get a +60% to 100% increase in frame rate. Currently, only 3DFX dual TMU cards +(such as the Obsidian 2220) support this extension, but other hardware will +soon follow. + +This extension will be autodetected and used. If for some reason it is not +working correctly, specify the command line option "-nomtex" to disable it. + +GL_EXT_shared_texture_palette +GLQuake uses 16bit textures by default but on OpenGL implementations +that support the GL_EXT_shared_texture_palette extension, GLQuake will use +8bit textures instead. This results in using half the needed texture memory +of 16bit texture and can improve performance. This is very little difference +in visual quality due to the fact that the textures are 8bit sources to +begin with. + +run time options +---------------- +At the console, you can set these values to effect drawing. + +gl_texturemode GL_NEAREST +Sets texture mapping to point sampled, which may be faster on some GL systems +(not on 3dfx). + +gl_texturemode GL_LINEAR_MIPMAP +This is the default texture mode. + +gl_texturemode GL_LINEAR_MIPMAP_LINEAR +This is the highest quality texture mapping (trilinear), but only very high +end hardware (intergraph intense 3D / realizm) supports it. Not that big of +a deal, actually. + +gl_finish 0 +This causes the game to not issue a glFinish() call each frame, which may make +some hardware run faster. If this is cleared, the 3dfx will back up a number +of frames and not be very playable. + +gl_flashblend 0 +By default, glquake just draws a shaded ball around objects that are emiting +light. Clearing this variable will cause it to properly relight the world +like normal quake, but it can be a significant speed hit on some systems. + +gl_ztrick 0 +Glquake uses a buffering method that avoids clearing the Z buffer, but some +hardware platforms don't like it. If the status bar and console are flashing +every other frame, clear this variable. + +gl_keeptjunctions 0 +If you clear this, glquake will remove colinear vertexes when it reloads the +level. This can give a few percent speedup, but it can leave a couple stray +blinking pixels on the screen. + +novelty features +---------------- +These are some rendering tricks that were easy to do in glquake. They aren't +very robust, but they are pretty cool to look at. + +r_shadows 1 +This causes every object to cast a shadow. + +r_wateralpha 0.7 +This sets the opacity of water textures, so you can see through it in properly +processed maps. 0.3 is very faint, almost like fog. 1 is completely solid +(the default). Unfortunately, the standard quake maps don't contain any +visibility information for seeing past water surfaces, so you can't just play +quake with this turned on. If you just want to see what it looks like, you +can set "r_novis 1", but that will make things go very slow. When I get a +chance, I will probably release some maps that have been processed properly +for this. + +r_mirroralpha 0.3 +This changes one particular texture (the stained glass texture in the EASY +start hall) into a mirror. The value is the opacity of the mirror surface. + diff --git a/doc/makefile.linuxi386 b/doc/makefile.linuxi386 new file mode 100644 index 000000000..7253dcd42 --- /dev/null +++ b/doc/makefile.linuxi386 @@ -0,0 +1,1240 @@ +# +# Quake Makefile for Linux 2.0 +# +# Aug '98 by Zoid +# +# ELF only +# + +BASEVERSION=1.09 +VERSION=$(BASEVERSION)$(GLIBC) + +# RPM release number +RPM_RELEASE=5 + +ifneq (,$(findstring libc6,$(shell if [ -e /lib/libc.so.6 ];then echo libc6;fi))) +GLIBC=-glibc +else +GLIBC= +endif + +ifneq (,$(findstring alpha,$(shell uname -m))) +ARCH=axp +else +ARCH=i386 +endif +NOARCH=noarch + +MOUNT_DIR=/grog/Projects/WinQuake +MASTER_DIR=/grog/Projects/QuakeMaster +MESA_DIR=/usr/local/src/Mesa-2.6 +TDFXGL_DIR = /home/zoid/3dfxgl + +BUILD_DEBUG_DIR=debug$(ARCH)$(GLIBC) +BUILD_RELEASE_DIR=release$(ARCH)$(GLIBC) + +EGCS=/usr/local/egcs-1.1.2/bin/gcc +CC=$(EGCS) + +BASE_CFLAGS=-Dstricmp=strcasecmp +RELEASE_CFLAGS=$(BASE_CFLAGS) -g -mpentiumpro -O6 -ffast-math -funroll-loops \ + -fomit-frame-pointer -fexpensive-optimizations +DEBUG_CFLAGS=$(BASE_CFLAGS) -g +LDFLAGS=-lm +SVGALDFLAGS=-lvga +XLDFLAGS=-L/usr/X11R6/lib -lX11 -lXext -lXxf86dga +XCFLAGS=-DX11 + +MESAGLLDFLAGS=-L/usr/X11/lib -L/usr/local/lib -L$(MESA_DIR)/lib -lMesaGL -lglide2x -lX11 -lXext -ldl +TDFXGLLDFLAGS=-L$(TDFXGL_DIR)/release$(ARCH)$(GLIBC) -l3dfxgl -lglide2x -ldl +GLLDFLAGS=-L/usr/X11/lib -L/usr/local/lib -lGL -lX11 -lXext -ldl -lXxf86dga -lXxf86vm -lm +GLCFLAGS=-DGLQUAKE -I$(MESA_DIR)/include -I/usr/include/glide + +DO_CC=$(CC) $(CFLAGS) -o $@ -c $< +DO_DEBUG_CC=$(CC) $(DEBUG_CFLAGS) -o $@ -c $< +DO_GL_CC=$(CC) $(CFLAGS) $(GLCFLAGS) -o $@ -c $< +DO_GL_DEBUG_CC=$(CC) $(DEBUG_CFLAGS) $(GLCFLAGS) -o $@ -c $< +DO_X11_CC=$(CC) $(CFLAGS) $(XCFLAGS) -o $@ -c $< +DO_X11_DEBUG_CC=$(CC) $(DEBUG_CFLAGS) $(XCFLAGS) -o $@ -c $< +DO_O_CC=$(CC) -O $(CFLAGS) -o $@ -c $< +DO_AS=$(CC) $(CFLAGS) -DELF -x assembler-with-cpp -o $@ -c $< +DO_GL_AS=$(CC) $(CFLAGS) $(GLCFLAGS) -DELF -x assembler-with-cpp -o $@ -c $< + +############################################################################# +# SETUP AND BUILD +############################################################################# + +TARGETS=$(BUILDDIR)/bin/squake \ + $(BUILDDIR)/bin/glquake \ + $(BUILDDIR)/bin/glquake.glx \ + $(BUILDDIR)/bin/glquake.3dfxgl \ + $(BUILDDIR)/bin/quake.x11 + # $(BUILDDIR)/bin/unixded + +build_debug: + @-mkdir $(BUILD_DEBUG_DIR) \ + $(BUILD_DEBUG_DIR)/bin \ + $(BUILD_DEBUG_DIR)/glquake \ + $(BUILD_DEBUG_DIR)/squake \ + $(BUILD_DEBUG_DIR)/unixded \ + $(BUILD_DEBUG_DIR)/x11 + $(MAKE) targets BUILDDIR=$(BUILD_DEBUG_DIR) CFLAGS="$(DEBUG_CFLAGS)" + +build_release: + @-mkdir $(BUILD_RELEASE_DIR) \ + $(BUILD_RELEASE_DIR)/bin \ + $(BUILD_RELEASE_DIR)/glquake \ + $(BUILD_RELEASE_DIR)/squake \ + $(BUILD_RELEASE_DIR)/unixded \ + $(BUILD_RELEASE_DIR)/x11 + $(MAKE) targets BUILDDIR=$(BUILD_RELEASE_DIR) CFLAGS="$(RELEASE_CFLAGS)" + +all: build_debug build_release + +targets: $(TARGETS) + +############################################################################# +# SVGALIB Quake +############################################################################# + +SQUAKE_OBJS = \ + $(BUILDDIR)/squake/cl_demo.o \ + $(BUILDDIR)/squake/cl_input.o \ + $(BUILDDIR)/squake/cl_main.o \ + $(BUILDDIR)/squake/cl_parse.o \ + $(BUILDDIR)/squake/cl_tent.o \ + $(BUILDDIR)/squake/chase.o \ + $(BUILDDIR)/squake/cmd.o \ + $(BUILDDIR)/squake/common.o \ + $(BUILDDIR)/squake/console.o \ + $(BUILDDIR)/squake/crc.o \ + $(BUILDDIR)/squake/cvar.o \ + $(BUILDDIR)/squake/draw.o \ + $(BUILDDIR)/squake/d_edge.o \ + $(BUILDDIR)/squake/d_fill.o \ + $(BUILDDIR)/squake/d_init.o \ + $(BUILDDIR)/squake/d_modech.o \ + $(BUILDDIR)/squake/d_part.o \ + $(BUILDDIR)/squake/d_polyse.o \ + $(BUILDDIR)/squake/d_scan.o \ + $(BUILDDIR)/squake/d_sky.o \ + $(BUILDDIR)/squake/d_sprite.o \ + $(BUILDDIR)/squake/d_surf.o \ + $(BUILDDIR)/squake/d_vars.o \ + $(BUILDDIR)/squake/d_zpoint.o \ + $(BUILDDIR)/squake/host.o \ + $(BUILDDIR)/squake/host_cmd.o \ + $(BUILDDIR)/squake/keys.o \ + $(BUILDDIR)/squake/menu.o \ + $(BUILDDIR)/squake/mathlib.o \ + $(BUILDDIR)/squake/model.o \ + $(BUILDDIR)/squake/net_dgrm.o \ + $(BUILDDIR)/squake/net_loop.o \ + $(BUILDDIR)/squake/net_main.o \ + $(BUILDDIR)/squake/net_vcr.o \ + $(BUILDDIR)/squake/net_udp.o \ + $(BUILDDIR)/squake/net_bsd.o \ + $(BUILDDIR)/squake/nonintel.o \ + $(BUILDDIR)/squake/pr_cmds.o \ + $(BUILDDIR)/squake/pr_edict.o \ + $(BUILDDIR)/squake/pr_exec.o \ + $(BUILDDIR)/squake/r_aclip.o \ + $(BUILDDIR)/squake/r_alias.o \ + $(BUILDDIR)/squake/r_bsp.o \ + $(BUILDDIR)/squake/r_light.o \ + $(BUILDDIR)/squake/r_draw.o \ + $(BUILDDIR)/squake/r_efrag.o \ + $(BUILDDIR)/squake/r_edge.o \ + $(BUILDDIR)/squake/r_misc.o \ + $(BUILDDIR)/squake/r_main.o \ + $(BUILDDIR)/squake/r_sky.o \ + $(BUILDDIR)/squake/r_sprite.o \ + $(BUILDDIR)/squake/r_surf.o \ + $(BUILDDIR)/squake/r_part.o \ + $(BUILDDIR)/squake/r_vars.o \ + $(BUILDDIR)/squake/screen.o \ + $(BUILDDIR)/squake/sbar.o \ + $(BUILDDIR)/squake/sv_main.o \ + $(BUILDDIR)/squake/sv_phys.o \ + $(BUILDDIR)/squake/sv_move.o \ + $(BUILDDIR)/squake/sv_user.o \ + $(BUILDDIR)/squake/zone.o \ + $(BUILDDIR)/squake/view.o \ + $(BUILDDIR)/squake/wad.o \ + $(BUILDDIR)/squake/world.o \ + $(BUILDDIR)/squake/cd_linux.o \ + $(BUILDDIR)/squake/sys_linux.o \ + $(BUILDDIR)/squake/vid_svgalib.o \ + $(BUILDDIR)/squake/snd_dma.o \ + $(BUILDDIR)/squake/snd_mem.o \ + $(BUILDDIR)/squake/snd_mix.o \ + $(BUILDDIR)/squake/snd_linux.o \ + \ + $(BUILDDIR)/squake/d_copy.o \ + $(BUILDDIR)/squake/d_draw.o \ + $(BUILDDIR)/squake/d_draw16.o \ + $(BUILDDIR)/squake/d_parta.o \ + $(BUILDDIR)/squake/d_polysa.o \ + $(BUILDDIR)/squake/d_scana.o \ + $(BUILDDIR)/squake/d_spr8.o \ + $(BUILDDIR)/squake/d_varsa.o \ + $(BUILDDIR)/squake/math.o \ + $(BUILDDIR)/squake/r_aliasa.o \ + $(BUILDDIR)/squake/r_drawa.o \ + $(BUILDDIR)/squake/r_edgea.o \ + $(BUILDDIR)/squake/r_varsa.o \ + $(BUILDDIR)/squake/surf16.o \ + $(BUILDDIR)/squake/surf8.o \ + $(BUILDDIR)/squake/worlda.o \ + $(BUILDDIR)/squake/r_aclipa.o \ + $(BUILDDIR)/squake/snd_mixa.o \ + $(BUILDDIR)/squake/sys_dosa.o + +$(BUILDDIR)/bin/squake : $(SQUAKE_OBJS) + $(CC) $(CFLAGS) -o $@ $(SQUAKE_OBJS) $(SVGALDFLAGS) $(LDFLAGS) + +#### + +$(BUILDDIR)/squake/cl_demo.o : $(MOUNT_DIR)/cl_demo.c + $(DO_CC) + +$(BUILDDIR)/squake/cl_input.o : $(MOUNT_DIR)/cl_input.c + $(DO_CC) + +$(BUILDDIR)/squake/cl_main.o : $(MOUNT_DIR)/cl_main.c + $(DO_CC) + +$(BUILDDIR)/squake/cl_parse.o : $(MOUNT_DIR)/cl_parse.c + $(DO_CC) + +$(BUILDDIR)/squake/cl_tent.o : $(MOUNT_DIR)/cl_tent.c + $(DO_CC) + +$(BUILDDIR)/squake/chase.o : $(MOUNT_DIR)/chase.c + $(DO_CC) + +$(BUILDDIR)/squake/cmd.o : $(MOUNT_DIR)/cmd.c + $(DO_CC) + +$(BUILDDIR)/squake/common.o : $(MOUNT_DIR)/common.c + $(DO_DEBUG_CC) + +$(BUILDDIR)/squake/console.o : $(MOUNT_DIR)/console.c + $(DO_CC) + +$(BUILDDIR)/squake/crc.o : $(MOUNT_DIR)/crc.c + $(DO_CC) + +$(BUILDDIR)/squake/cvar.o : $(MOUNT_DIR)/cvar.c + $(DO_CC) + +$(BUILDDIR)/squake/draw.o : $(MOUNT_DIR)/draw.c + $(DO_CC) + +$(BUILDDIR)/squake/d_edge.o : $(MOUNT_DIR)/d_edge.c + $(DO_CC) + +$(BUILDDIR)/squake/d_fill.o : $(MOUNT_DIR)/d_fill.c + $(DO_CC) + +$(BUILDDIR)/squake/d_init.o : $(MOUNT_DIR)/d_init.c + $(DO_CC) + +$(BUILDDIR)/squake/d_modech.o : $(MOUNT_DIR)/d_modech.c + $(DO_CC) + +$(BUILDDIR)/squake/d_part.o : $(MOUNT_DIR)/d_part.c + $(DO_CC) + +$(BUILDDIR)/squake/d_polyse.o : $(MOUNT_DIR)/d_polyse.c + $(DO_CC) + +$(BUILDDIR)/squake/d_scan.o : $(MOUNT_DIR)/d_scan.c + $(DO_CC) + +$(BUILDDIR)/squake/d_sky.o : $(MOUNT_DIR)/d_sky.c + $(DO_CC) + +$(BUILDDIR)/squake/d_sprite.o : $(MOUNT_DIR)/d_sprite.c + $(DO_CC) + +$(BUILDDIR)/squake/d_surf.o : $(MOUNT_DIR)/d_surf.c + $(DO_CC) + +$(BUILDDIR)/squake/d_vars.o : $(MOUNT_DIR)/d_vars.c + $(DO_CC) + +$(BUILDDIR)/squake/d_zpoint.o : $(MOUNT_DIR)/d_zpoint.c + $(DO_CC) + +$(BUILDDIR)/squake/host.o : $(MOUNT_DIR)/host.c + $(DO_CC) + +$(BUILDDIR)/squake/host_cmd.o : $(MOUNT_DIR)/host_cmd.c + $(DO_CC) + +$(BUILDDIR)/squake/keys.o : $(MOUNT_DIR)/keys.c + $(DO_CC) + +$(BUILDDIR)/squake/menu.o : $(MOUNT_DIR)/menu.c + $(DO_CC) + +$(BUILDDIR)/squake/mathlib.o : $(MOUNT_DIR)/mathlib.c + $(DO_CC) + +$(BUILDDIR)/squake/model.o : $(MOUNT_DIR)/model.c + $(DO_CC) + +$(BUILDDIR)/squake/net_dgrm.o : $(MOUNT_DIR)/net_dgrm.c + $(DO_CC) + +$(BUILDDIR)/squake/net_loop.o : $(MOUNT_DIR)/net_loop.c + $(DO_CC) + +$(BUILDDIR)/squake/net_main.o : $(MOUNT_DIR)/net_main.c + $(DO_CC) + +$(BUILDDIR)/squake/net_vcr.o : $(MOUNT_DIR)/net_vcr.c + $(DO_CC) + +$(BUILDDIR)/squake/net_udp.o : $(MOUNT_DIR)/net_udp.c + $(DO_CC) + +$(BUILDDIR)/squake/net_bsd.o : $(MOUNT_DIR)/net_bsd.c + $(DO_CC) + +$(BUILDDIR)/squake/nonintel.o : $(MOUNT_DIR)/nonintel.c + $(DO_CC) + +$(BUILDDIR)/squake/pr_cmds.o : $(MOUNT_DIR)/pr_cmds.c + $(DO_CC) + +$(BUILDDIR)/squake/pr_edict.o : $(MOUNT_DIR)/pr_edict.c + $(DO_CC) + +$(BUILDDIR)/squake/pr_exec.o : $(MOUNT_DIR)/pr_exec.c + $(DO_CC) + +$(BUILDDIR)/squake/r_aclip.o : $(MOUNT_DIR)/r_aclip.c + $(DO_CC) + +$(BUILDDIR)/squake/r_alias.o : $(MOUNT_DIR)/r_alias.c + $(DO_CC) + +$(BUILDDIR)/squake/r_bsp.o : $(MOUNT_DIR)/r_bsp.c + $(DO_CC) + +$(BUILDDIR)/squake/r_light.o : $(MOUNT_DIR)/r_light.c + $(DO_CC) + +$(BUILDDIR)/squake/r_draw.o : $(MOUNT_DIR)/r_draw.c + $(DO_CC) + +$(BUILDDIR)/squake/r_efrag.o : $(MOUNT_DIR)/r_efrag.c + $(DO_CC) + +$(BUILDDIR)/squake/r_edge.o : $(MOUNT_DIR)/r_edge.c + $(DO_CC) + +$(BUILDDIR)/squake/r_misc.o : $(MOUNT_DIR)/r_misc.c + $(DO_CC) + +$(BUILDDIR)/squake/r_main.o : $(MOUNT_DIR)/r_main.c + $(DO_CC) + +$(BUILDDIR)/squake/r_sky.o : $(MOUNT_DIR)/r_sky.c + $(DO_CC) + +$(BUILDDIR)/squake/r_sprite.o : $(MOUNT_DIR)/r_sprite.c + $(DO_CC) + +$(BUILDDIR)/squake/r_surf.o : $(MOUNT_DIR)/r_surf.c + $(DO_CC) + +$(BUILDDIR)/squake/r_part.o : $(MOUNT_DIR)/r_part.c + $(DO_CC) + +$(BUILDDIR)/squake/r_vars.o : $(MOUNT_DIR)/r_vars.c + $(DO_CC) + +$(BUILDDIR)/squake/screen.o : $(MOUNT_DIR)/screen.c + $(DO_CC) + +$(BUILDDIR)/squake/sbar.o : $(MOUNT_DIR)/sbar.c + $(DO_CC) + +$(BUILDDIR)/squake/sv_main.o : $(MOUNT_DIR)/sv_main.c + $(DO_CC) + +$(BUILDDIR)/squake/sv_phys.o : $(MOUNT_DIR)/sv_phys.c + $(DO_CC) + +$(BUILDDIR)/squake/sv_move.o : $(MOUNT_DIR)/sv_move.c + $(DO_CC) + +$(BUILDDIR)/squake/sv_user.o : $(MOUNT_DIR)/sv_user.c + $(DO_CC) + +$(BUILDDIR)/squake/zone.o : $(MOUNT_DIR)/zone.c + $(DO_CC) + +$(BUILDDIR)/squake/view.o : $(MOUNT_DIR)/view.c + $(DO_CC) + +$(BUILDDIR)/squake/wad.o : $(MOUNT_DIR)/wad.c + $(DO_CC) + +$(BUILDDIR)/squake/world.o : $(MOUNT_DIR)/world.c + $(DO_CC) + +$(BUILDDIR)/squake/cd_linux.o : $(MOUNT_DIR)/cd_linux.c + $(DO_CC) + +$(BUILDDIR)/squake/sys_linux.o :$(MOUNT_DIR)/sys_linux.c + $(DO_CC) + +$(BUILDDIR)/squake/vid_svgalib.o:$(MOUNT_DIR)/vid_svgalib.c + $(DO_O_CC) + +$(BUILDDIR)/squake/snd_dma.o : $(MOUNT_DIR)/snd_dma.c + $(DO_CC) + +$(BUILDDIR)/squake/snd_mem.o : $(MOUNT_DIR)/snd_mem.c + $(DO_CC) + +$(BUILDDIR)/squake/snd_mix.o : $(MOUNT_DIR)/snd_mix.c + $(DO_CC) + +$(BUILDDIR)/squake/snd_linux.o :$(MOUNT_DIR)/snd_linux.c + $(DO_CC) + +##### + +$(BUILDDIR)/squake/d_copy.o : $(MOUNT_DIR)/d_copy.s + $(DO_AS) + +$(BUILDDIR)/squake/d_draw.o : $(MOUNT_DIR)/d_draw.s + $(DO_AS) + +$(BUILDDIR)/squake/d_draw16.o : $(MOUNT_DIR)/d_draw16.s + $(DO_AS) + +$(BUILDDIR)/squake/d_parta.o : $(MOUNT_DIR)/d_parta.s + $(DO_AS) + +$(BUILDDIR)/squake/d_polysa.o : $(MOUNT_DIR)/d_polysa.s + $(DO_AS) + +$(BUILDDIR)/squake/d_scana.o : $(MOUNT_DIR)/d_scana.s + $(DO_AS) + +$(BUILDDIR)/squake/d_spr8.o : $(MOUNT_DIR)/d_spr8.s + $(DO_AS) + +$(BUILDDIR)/squake/d_varsa.o : $(MOUNT_DIR)/d_varsa.s + $(DO_AS) + +$(BUILDDIR)/squake/math.o : $(MOUNT_DIR)/math.s + $(DO_AS) + +$(BUILDDIR)/squake/r_aliasa.o : $(MOUNT_DIR)/r_aliasa.s + $(DO_AS) + +$(BUILDDIR)/squake/r_drawa.o : $(MOUNT_DIR)/r_drawa.s + $(DO_AS) + +$(BUILDDIR)/squake/r_edgea.o : $(MOUNT_DIR)/r_edgea.s + $(DO_AS) + +$(BUILDDIR)/squake/r_varsa.o : $(MOUNT_DIR)/r_varsa.s + $(DO_AS) + +$(BUILDDIR)/squake/surf16.o : $(MOUNT_DIR)/surf16.s + $(DO_AS) + +$(BUILDDIR)/squake/surf8.o : $(MOUNT_DIR)/surf8.s + $(DO_AS) + +$(BUILDDIR)/squake/worlda.o : $(MOUNT_DIR)/worlda.s + $(DO_AS) + +$(BUILDDIR)/squake/r_aclipa.o : $(MOUNT_DIR)/r_aclipa.s + $(DO_AS) + +$(BUILDDIR)/squake/snd_mixa.o : $(MOUNT_DIR)/snd_mixa.s + $(DO_AS) + +$(BUILDDIR)/squake/sys_dosa.o : $(MOUNT_DIR)/sys_dosa.s + $(DO_AS) + +############################################################################# +# X11 Quake +############################################################################# + +X11_OBJS = \ + $(BUILDDIR)/x11/cl_demo.o \ + $(BUILDDIR)/x11/cl_input.o \ + $(BUILDDIR)/x11/cl_main.o \ + $(BUILDDIR)/x11/cl_parse.o \ + $(BUILDDIR)/x11/cl_tent.o \ + $(BUILDDIR)/x11/chase.o \ + $(BUILDDIR)/x11/cmd.o \ + $(BUILDDIR)/x11/common.o \ + $(BUILDDIR)/x11/console.o \ + $(BUILDDIR)/x11/crc.o \ + $(BUILDDIR)/x11/cvar.o \ + $(BUILDDIR)/x11/draw.o \ + $(BUILDDIR)/x11/d_edge.o \ + $(BUILDDIR)/x11/d_fill.o \ + $(BUILDDIR)/x11/d_init.o \ + $(BUILDDIR)/x11/d_modech.o \ + $(BUILDDIR)/x11/d_part.o \ + $(BUILDDIR)/x11/d_polyse.o \ + $(BUILDDIR)/x11/d_scan.o \ + $(BUILDDIR)/x11/d_sky.o \ + $(BUILDDIR)/x11/d_sprite.o \ + $(BUILDDIR)/x11/d_surf.o \ + $(BUILDDIR)/x11/d_vars.o \ + $(BUILDDIR)/x11/d_zpoint.o \ + $(BUILDDIR)/x11/host.o \ + $(BUILDDIR)/x11/host_cmd.o \ + $(BUILDDIR)/x11/keys.o \ + $(BUILDDIR)/x11/menu.o \ + $(BUILDDIR)/x11/mathlib.o \ + $(BUILDDIR)/x11/model.o \ + $(BUILDDIR)/x11/net_dgrm.o \ + $(BUILDDIR)/x11/net_loop.o \ + $(BUILDDIR)/x11/net_main.o \ + $(BUILDDIR)/x11/net_vcr.o \ + $(BUILDDIR)/x11/net_udp.o \ + $(BUILDDIR)/x11/net_bsd.o \ + $(BUILDDIR)/x11/nonintel.o \ + $(BUILDDIR)/x11/pr_cmds.o \ + $(BUILDDIR)/x11/pr_edict.o \ + $(BUILDDIR)/x11/pr_exec.o \ + $(BUILDDIR)/x11/r_aclip.o \ + $(BUILDDIR)/x11/r_alias.o \ + $(BUILDDIR)/x11/r_bsp.o \ + $(BUILDDIR)/x11/r_light.o \ + $(BUILDDIR)/x11/r_draw.o \ + $(BUILDDIR)/x11/r_efrag.o \ + $(BUILDDIR)/x11/r_edge.o \ + $(BUILDDIR)/x11/r_misc.o \ + $(BUILDDIR)/x11/r_main.o \ + $(BUILDDIR)/x11/r_sky.o \ + $(BUILDDIR)/x11/r_sprite.o \ + $(BUILDDIR)/x11/r_surf.o \ + $(BUILDDIR)/x11/r_part.o \ + $(BUILDDIR)/x11/r_vars.o \ + $(BUILDDIR)/x11/screen.o \ + $(BUILDDIR)/x11/sbar.o \ + $(BUILDDIR)/x11/sv_main.o \ + $(BUILDDIR)/x11/sv_phys.o \ + $(BUILDDIR)/x11/sv_move.o \ + $(BUILDDIR)/x11/sv_user.o \ + $(BUILDDIR)/x11/zone.o \ + $(BUILDDIR)/x11/view.o \ + $(BUILDDIR)/x11/wad.o \ + $(BUILDDIR)/x11/world.o \ + $(BUILDDIR)/x11/cd_linux.o \ + $(BUILDDIR)/x11/sys_linux.o \ + $(BUILDDIR)/x11/vid_x.o \ + $(BUILDDIR)/x11/snd_dma.o \ + $(BUILDDIR)/x11/snd_mem.o \ + $(BUILDDIR)/x11/snd_mix.o \ + $(BUILDDIR)/x11/snd_linux.o \ + \ + $(BUILDDIR)/x11/d_draw.o \ + $(BUILDDIR)/x11/d_draw16.o \ + $(BUILDDIR)/x11/d_parta.o \ + $(BUILDDIR)/x11/d_polysa.o \ + $(BUILDDIR)/x11/d_scana.o \ + $(BUILDDIR)/x11/d_spr8.o \ + $(BUILDDIR)/x11/d_varsa.o \ + $(BUILDDIR)/x11/math.o \ + $(BUILDDIR)/x11/r_aliasa.o \ + $(BUILDDIR)/x11/r_drawa.o \ + $(BUILDDIR)/x11/r_edgea.o \ + $(BUILDDIR)/x11/r_varsa.o \ + $(BUILDDIR)/x11/surf16.o \ + $(BUILDDIR)/x11/surf8.o \ + $(BUILDDIR)/x11/worlda.o \ + $(BUILDDIR)/x11/r_aclipa.o \ + $(BUILDDIR)/x11/snd_mixa.o \ + $(BUILDDIR)/x11/sys_dosa.o + +$(BUILDDIR)/bin/quake.x11 : $(X11_OBJS) + $(CC) $(CFLAGS) -o $@ $(X11_OBJS) $(XLDFLAGS) $(LDFLAGS) + +#### + +$(BUILDDIR)/x11/cl_demo.o : $(MOUNT_DIR)/cl_demo.c + $(DO_X11_CC) + +$(BUILDDIR)/x11/cl_input.o : $(MOUNT_DIR)/cl_input.c + $(DO_X11_CC) + +$(BUILDDIR)/x11/cl_main.o : $(MOUNT_DIR)/cl_main.c + $(DO_X11_CC) + +$(BUILDDIR)/x11/cl_parse.o : $(MOUNT_DIR)/cl_parse.c + $(DO_X11_CC) + +$(BUILDDIR)/x11/cl_tent.o : $(MOUNT_DIR)/cl_tent.c + $(DO_X11_CC) + +$(BUILDDIR)/x11/chase.o : $(MOUNT_DIR)/chase.c + $(DO_X11_CC) + +$(BUILDDIR)/x11/cmd.o : $(MOUNT_DIR)/cmd.c + $(DO_X11_CC) + +$(BUILDDIR)/x11/common.o : $(MOUNT_DIR)/common.c + $(DO_X11_DEBUG_CC) + +$(BUILDDIR)/x11/console.o : $(MOUNT_DIR)/console.c + $(DO_X11_CC) + +$(BUILDDIR)/x11/crc.o : $(MOUNT_DIR)/crc.c + $(DO_X11_CC) + +$(BUILDDIR)/x11/cvar.o : $(MOUNT_DIR)/cvar.c + $(DO_X11_CC) + +$(BUILDDIR)/x11/draw.o : $(MOUNT_DIR)/draw.c + $(DO_X11_CC) + +$(BUILDDIR)/x11/d_edge.o : $(MOUNT_DIR)/d_edge.c + $(DO_X11_CC) + +$(BUILDDIR)/x11/d_fill.o : $(MOUNT_DIR)/d_fill.c + $(DO_X11_CC) + +$(BUILDDIR)/x11/d_init.o : $(MOUNT_DIR)/d_init.c + $(DO_X11_CC) + +$(BUILDDIR)/x11/d_modech.o : $(MOUNT_DIR)/d_modech.c + $(DO_X11_CC) + +$(BUILDDIR)/x11/d_part.o : $(MOUNT_DIR)/d_part.c + $(DO_X11_CC) + +$(BUILDDIR)/x11/d_polyse.o : $(MOUNT_DIR)/d_polyse.c + $(DO_X11_CC) + +$(BUILDDIR)/x11/d_scan.o : $(MOUNT_DIR)/d_scan.c + $(DO_X11_CC) + +$(BUILDDIR)/x11/d_sky.o : $(MOUNT_DIR)/d_sky.c + $(DO_X11_CC) + +$(BUILDDIR)/x11/d_sprite.o : $(MOUNT_DIR)/d_sprite.c + $(DO_X11_CC) + +$(BUILDDIR)/x11/d_surf.o : $(MOUNT_DIR)/d_surf.c + $(DO_X11_CC) + +$(BUILDDIR)/x11/d_vars.o : $(MOUNT_DIR)/d_vars.c + $(DO_X11_CC) + +$(BUILDDIR)/x11/d_zpoint.o : $(MOUNT_DIR)/d_zpoint.c + $(DO_X11_CC) + +$(BUILDDIR)/x11/host.o : $(MOUNT_DIR)/host.c + $(DO_X11_CC) + +$(BUILDDIR)/x11/host_cmd.o : $(MOUNT_DIR)/host_cmd.c + $(DO_X11_CC) + +$(BUILDDIR)/x11/keys.o : $(MOUNT_DIR)/keys.c + $(DO_X11_CC) + +$(BUILDDIR)/x11/menu.o : $(MOUNT_DIR)/menu.c + $(DO_X11_CC) + +$(BUILDDIR)/x11/mathlib.o : $(MOUNT_DIR)/mathlib.c + $(DO_X11_CC) + +$(BUILDDIR)/x11/model.o : $(MOUNT_DIR)/model.c + $(DO_X11_CC) + +$(BUILDDIR)/x11/net_dgrm.o : $(MOUNT_DIR)/net_dgrm.c + $(DO_X11_CC) + +$(BUILDDIR)/x11/net_loop.o : $(MOUNT_DIR)/net_loop.c + $(DO_X11_CC) + +$(BUILDDIR)/x11/net_main.o : $(MOUNT_DIR)/net_main.c + $(DO_X11_CC) + +$(BUILDDIR)/x11/net_vcr.o : $(MOUNT_DIR)/net_vcr.c + $(DO_X11_CC) + +$(BUILDDIR)/x11/net_udp.o : $(MOUNT_DIR)/net_udp.c + $(DO_X11_CC) + +$(BUILDDIR)/x11/net_bsd.o : $(MOUNT_DIR)/net_bsd.c + $(DO_X11_CC) + +$(BUILDDIR)/x11/nonintel.o : $(MOUNT_DIR)/nonintel.c + $(DO_X11_CC) + +$(BUILDDIR)/x11/pr_cmds.o : $(MOUNT_DIR)/pr_cmds.c + $(DO_X11_CC) + +$(BUILDDIR)/x11/pr_edict.o : $(MOUNT_DIR)/pr_edict.c + $(DO_X11_CC) + +$(BUILDDIR)/x11/pr_exec.o : $(MOUNT_DIR)/pr_exec.c + $(DO_X11_CC) + +$(BUILDDIR)/x11/r_aclip.o : $(MOUNT_DIR)/r_aclip.c + $(DO_X11_CC) + +$(BUILDDIR)/x11/r_alias.o : $(MOUNT_DIR)/r_alias.c + $(DO_X11_CC) + +$(BUILDDIR)/x11/r_bsp.o : $(MOUNT_DIR)/r_bsp.c + $(DO_X11_CC) + +$(BUILDDIR)/x11/r_light.o : $(MOUNT_DIR)/r_light.c + $(DO_X11_CC) + +$(BUILDDIR)/x11/r_draw.o : $(MOUNT_DIR)/r_draw.c + $(DO_X11_CC) + +$(BUILDDIR)/x11/r_efrag.o : $(MOUNT_DIR)/r_efrag.c + $(DO_X11_CC) + +$(BUILDDIR)/x11/r_edge.o : $(MOUNT_DIR)/r_edge.c + $(DO_X11_CC) + +$(BUILDDIR)/x11/r_misc.o : $(MOUNT_DIR)/r_misc.c + $(DO_X11_CC) + +$(BUILDDIR)/x11/r_main.o : $(MOUNT_DIR)/r_main.c + $(DO_X11_CC) + +$(BUILDDIR)/x11/r_sky.o : $(MOUNT_DIR)/r_sky.c + $(DO_X11_CC) + +$(BUILDDIR)/x11/r_sprite.o : $(MOUNT_DIR)/r_sprite.c + $(DO_X11_CC) + +$(BUILDDIR)/x11/r_surf.o : $(MOUNT_DIR)/r_surf.c + $(DO_X11_CC) + +$(BUILDDIR)/x11/r_part.o : $(MOUNT_DIR)/r_part.c + $(DO_X11_CC) + +$(BUILDDIR)/x11/r_vars.o : $(MOUNT_DIR)/r_vars.c + $(DO_X11_CC) + +$(BUILDDIR)/x11/screen.o : $(MOUNT_DIR)/screen.c + $(DO_X11_CC) + +$(BUILDDIR)/x11/sbar.o : $(MOUNT_DIR)/sbar.c + $(DO_X11_CC) + +$(BUILDDIR)/x11/sv_main.o : $(MOUNT_DIR)/sv_main.c + $(DO_X11_CC) + +$(BUILDDIR)/x11/sv_phys.o : $(MOUNT_DIR)/sv_phys.c + $(DO_X11_CC) + +$(BUILDDIR)/x11/sv_move.o : $(MOUNT_DIR)/sv_move.c + $(DO_X11_CC) + +$(BUILDDIR)/x11/sv_user.o : $(MOUNT_DIR)/sv_user.c + $(DO_X11_CC) + +$(BUILDDIR)/x11/zone.o : $(MOUNT_DIR)/zone.c + $(DO_X11_CC) + +$(BUILDDIR)/x11/view.o : $(MOUNT_DIR)/view.c + $(DO_X11_CC) + +$(BUILDDIR)/x11/wad.o : $(MOUNT_DIR)/wad.c + $(DO_X11_CC) + +$(BUILDDIR)/x11/world.o : $(MOUNT_DIR)/world.c + $(DO_X11_CC) + +$(BUILDDIR)/x11/cd_linux.o : $(MOUNT_DIR)/cd_linux.c + $(DO_X11_CC) + +$(BUILDDIR)/x11/sys_linux.o :$(MOUNT_DIR)/sys_linux.c + $(DO_X11_CC) + +$(BUILDDIR)/x11/vid_x.o: $(MOUNT_DIR)/vid_x.c + $(DO_O_CC) + +$(BUILDDIR)/x11/snd_dma.o : $(MOUNT_DIR)/snd_dma.c + $(DO_X11_CC) + +$(BUILDDIR)/x11/snd_mem.o : $(MOUNT_DIR)/snd_mem.c + $(DO_X11_CC) + +$(BUILDDIR)/x11/snd_mix.o : $(MOUNT_DIR)/snd_mix.c + $(DO_X11_CC) + +$(BUILDDIR)/x11/snd_linux.o :$(MOUNT_DIR)/snd_linux.c + $(DO_X11_CC) + +##### + +$(BUILDDIR)/x11/d_copy.o : $(MOUNT_DIR)/d_copy.s + $(DO_AS) + +$(BUILDDIR)/x11/d_draw.o : $(MOUNT_DIR)/d_draw.s + $(DO_AS) + +$(BUILDDIR)/x11/d_draw16.o : $(MOUNT_DIR)/d_draw16.s + $(DO_AS) + +$(BUILDDIR)/x11/d_parta.o : $(MOUNT_DIR)/d_parta.s + $(DO_AS) + +$(BUILDDIR)/x11/d_polysa.o : $(MOUNT_DIR)/d_polysa.s + $(DO_AS) + +$(BUILDDIR)/x11/d_scana.o : $(MOUNT_DIR)/d_scana.s + $(DO_AS) + +$(BUILDDIR)/x11/d_spr8.o : $(MOUNT_DIR)/d_spr8.s + $(DO_AS) + +$(BUILDDIR)/x11/d_varsa.o : $(MOUNT_DIR)/d_varsa.s + $(DO_AS) + +$(BUILDDIR)/x11/math.o : $(MOUNT_DIR)/math.s + $(DO_AS) + +$(BUILDDIR)/x11/r_aliasa.o : $(MOUNT_DIR)/r_aliasa.s + $(DO_AS) + +$(BUILDDIR)/x11/r_drawa.o : $(MOUNT_DIR)/r_drawa.s + $(DO_AS) + +$(BUILDDIR)/x11/r_edgea.o : $(MOUNT_DIR)/r_edgea.s + $(DO_AS) + +$(BUILDDIR)/x11/r_varsa.o : $(MOUNT_DIR)/r_varsa.s + $(DO_AS) + +$(BUILDDIR)/x11/surf16.o : $(MOUNT_DIR)/surf16.s + $(DO_AS) + +$(BUILDDIR)/x11/surf8.o : $(MOUNT_DIR)/surf8.s + $(DO_AS) + +$(BUILDDIR)/x11/worlda.o : $(MOUNT_DIR)/worlda.s + $(DO_AS) + +$(BUILDDIR)/x11/r_aclipa.o : $(MOUNT_DIR)/r_aclipa.s + $(DO_AS) + +$(BUILDDIR)/x11/snd_mixa.o : $(MOUNT_DIR)/snd_mixa.s + $(DO_AS) + +$(BUILDDIR)/x11/sys_dosa.o : $(MOUNT_DIR)/sys_dosa.s + $(DO_AS) + +############################################################################# +# GLQuake +############################################################################# + +GLQUAKE_OBJS= \ + $(BUILDDIR)/glquake/cl_demo.o \ + $(BUILDDIR)/glquake/cl_input.o \ + $(BUILDDIR)/glquake/cl_main.o \ + $(BUILDDIR)/glquake/cl_parse.o \ + $(BUILDDIR)/glquake/cl_tent.o \ + $(BUILDDIR)/glquake/chase.o \ + $(BUILDDIR)/glquake/cmd.o \ + $(BUILDDIR)/glquake/common.o \ + $(BUILDDIR)/glquake/console.o \ + $(BUILDDIR)/glquake/crc.o \ + $(BUILDDIR)/glquake/cvar.o \ + \ + $(BUILDDIR)/glquake/gl_draw.o \ + $(BUILDDIR)/glquake/gl_mesh.o \ + $(BUILDDIR)/glquake/gl_model.o \ + $(BUILDDIR)/glquake/gl_refrag.o \ + $(BUILDDIR)/glquake/gl_rlight.o \ + $(BUILDDIR)/glquake/gl_rmain.o \ + $(BUILDDIR)/glquake/gl_rmisc.o \ + $(BUILDDIR)/glquake/gl_rsurf.o \ + $(BUILDDIR)/glquake/gl_screen.o \ + $(BUILDDIR)/glquake/gl_test.o \ + $(BUILDDIR)/glquake/gl_warp.o \ + \ + $(BUILDDIR)/glquake/host.o \ + $(BUILDDIR)/glquake/host_cmd.o \ + $(BUILDDIR)/glquake/keys.o \ + $(BUILDDIR)/glquake/menu.o \ + $(BUILDDIR)/glquake/mathlib.o \ + $(BUILDDIR)/glquake/net_dgrm.o \ + $(BUILDDIR)/glquake/net_loop.o \ + $(BUILDDIR)/glquake/net_main.o \ + $(BUILDDIR)/glquake/net_vcr.o \ + $(BUILDDIR)/glquake/net_udp.o \ + $(BUILDDIR)/glquake/net_bsd.o \ + $(BUILDDIR)/glquake/pr_cmds.o \ + $(BUILDDIR)/glquake/pr_edict.o \ + $(BUILDDIR)/glquake/pr_exec.o \ + $(BUILDDIR)/glquake/r_part.o \ + $(BUILDDIR)/glquake/sbar.o \ + $(BUILDDIR)/glquake/sv_main.o \ + $(BUILDDIR)/glquake/sv_phys.o \ + $(BUILDDIR)/glquake/sv_move.o \ + $(BUILDDIR)/glquake/sv_user.o \ + $(BUILDDIR)/glquake/zone.o \ + $(BUILDDIR)/glquake/view.o \ + $(BUILDDIR)/glquake/wad.o \ + $(BUILDDIR)/glquake/world.o \ + $(BUILDDIR)/glquake/cd_linux.o \ + $(BUILDDIR)/glquake/sys_linux.o \ + $(BUILDDIR)/glquake/snd_dma.o \ + $(BUILDDIR)/glquake/snd_mem.o \ + $(BUILDDIR)/glquake/snd_mix.o \ + $(BUILDDIR)/glquake/snd_linux.o \ + \ + $(BUILDDIR)/glquake/math.o \ + $(BUILDDIR)/glquake/worlda.o \ + $(BUILDDIR)/glquake/snd_mixa.o \ + $(BUILDDIR)/glquake/sys_dosa.o + +GLSVGA_OBJS=$(BUILDDIR)/glquake/gl_vidlinux.o + +GLX_OBJS=$(BUILDDIR)/glquake/gl_vidlinuxglx.o + +$(BUILDDIR)/bin/glquake : $(GLQUAKE_OBJS) $(GLSVGA_OBJS) + $(CC) $(CFLAGS) -o $@ $(GLQUAKE_OBJS) $(GLSVGA_OBJS) $(MESAGLLDFLAGS) $(SVGALDFLAGS) $(LDFLAGS) + +$(BUILDDIR)/bin/glquake.glx : $(GLQUAKE_OBJS) $(GLX_OBJS) + $(CC) $(CFLAGS) -o $@ $(GLQUAKE_OBJS) $(GLX_OBJS) $(GLLDFLAGS) $(LDFLAGS) + +$(BUILDDIR)/bin/glquake.3dfxgl : $(GLQUAKE_OBJS) $(GLSVGA_OBJS) + $(CC) $(CFLAGS) -o $@ $(GLQUAKE_OBJS) $(GLSVGA_OBJS) $(TDFXGLLDFLAGS) $(SVGALDFLAGS) $(LDFLAGS) + +$(BUILDDIR)/glquake/cl_demo.o : $(MOUNT_DIR)/cl_demo.c + $(DO_GL_CC) + +$(BUILDDIR)/glquake/cl_input.o : $(MOUNT_DIR)/cl_input.c + $(DO_GL_CC) + +$(BUILDDIR)/glquake/cl_main.o : $(MOUNT_DIR)/cl_main.c + $(DO_GL_CC) + +$(BUILDDIR)/glquake/cl_parse.o : $(MOUNT_DIR)/cl_parse.c + $(DO_GL_CC) + +$(BUILDDIR)/glquake/cl_tent.o : $(MOUNT_DIR)/cl_tent.c + $(DO_GL_CC) + +$(BUILDDIR)/glquake/chase.o : $(MOUNT_DIR)/chase.c + $(DO_GL_CC) + +$(BUILDDIR)/glquake/cmd.o : $(MOUNT_DIR)/cmd.c + $(DO_GL_CC) + +$(BUILDDIR)/glquake/common.o : $(MOUNT_DIR)/common.c + $(DO_GL_DEBUG_CC) + +$(BUILDDIR)/glquake/console.o : $(MOUNT_DIR)/console.c + $(DO_GL_CC) + +$(BUILDDIR)/glquake/crc.o : $(MOUNT_DIR)/crc.c + $(DO_GL_CC) + +$(BUILDDIR)/glquake/cvar.o : $(MOUNT_DIR)/cvar.c + $(DO_GL_CC) + +$(BUILDDIR)/glquake/gl_draw.o : $(MOUNT_DIR)/gl_draw.c + $(DO_GL_CC) + +$(BUILDDIR)/glquake/gl_mesh.o : $(MOUNT_DIR)/gl_mesh.c + $(DO_GL_CC) + +$(BUILDDIR)/glquake/gl_model.o : $(MOUNT_DIR)/gl_model.c + $(DO_GL_CC) + +$(BUILDDIR)/glquake/gl_refrag.o : $(MOUNT_DIR)/gl_refrag.c + $(DO_GL_CC) + +$(BUILDDIR)/glquake/gl_rlight.o : $(MOUNT_DIR)/gl_rlight.c + $(DO_GL_CC) + +$(BUILDDIR)/glquake/gl_rmain.o : $(MOUNT_DIR)/gl_rmain.c + $(DO_GL_CC) + +$(BUILDDIR)/glquake/gl_rmisc.o : $(MOUNT_DIR)/gl_rmisc.c + $(DO_GL_CC) + +$(BUILDDIR)/glquake/gl_rsurf.o : $(MOUNT_DIR)/gl_rsurf.c + $(DO_GL_CC) + +$(BUILDDIR)/glquake/gl_screen.o : $(MOUNT_DIR)/gl_screen.c + $(DO_GL_CC) + +$(BUILDDIR)/glquake/gl_test.o : $(MOUNT_DIR)/gl_test.c + $(DO_GL_CC) + +$(BUILDDIR)/glquake/gl_vidlinux.o : $(MOUNT_DIR)/gl_vidlinux.c + $(DO_GL_CC) + +$(BUILDDIR)/glquake/gl_vidlinuxglx.o : $(MOUNT_DIR)/gl_vidlinuxglx.c + $(DO_GL_CC) + +$(BUILDDIR)/glquake/gl_warp.o : $(MOUNT_DIR)/gl_warp.c + $(DO_GL_CC) + +$(BUILDDIR)/glquake/host.o : $(MOUNT_DIR)/host.c + $(DO_GL_CC) + +$(BUILDDIR)/glquake/host_cmd.o : $(MOUNT_DIR)/host_cmd.c + $(DO_GL_CC) + +$(BUILDDIR)/glquake/keys.o : $(MOUNT_DIR)/keys.c + $(DO_GL_CC) + +$(BUILDDIR)/glquake/menu.o : $(MOUNT_DIR)/menu.c + $(DO_GL_CC) + +$(BUILDDIR)/glquake/mathlib.o : $(MOUNT_DIR)/mathlib.c + $(DO_GL_CC) + +$(BUILDDIR)/glquake/net_dgrm.o : $(MOUNT_DIR)/net_dgrm.c + $(DO_GL_CC) + +$(BUILDDIR)/glquake/net_loop.o : $(MOUNT_DIR)/net_loop.c + $(DO_GL_CC) + +$(BUILDDIR)/glquake/net_main.o : $(MOUNT_DIR)/net_main.c + $(DO_GL_CC) + +$(BUILDDIR)/glquake/net_vcr.o : $(MOUNT_DIR)/net_vcr.c + $(DO_GL_CC) + +$(BUILDDIR)/glquake/net_udp.o : $(MOUNT_DIR)/net_udp.c + $(DO_GL_CC) + +$(BUILDDIR)/glquake/net_bsd.o : $(MOUNT_DIR)/net_bsd.c + $(DO_GL_CC) + +$(BUILDDIR)/glquake/pr_cmds.o : $(MOUNT_DIR)/pr_cmds.c + $(DO_GL_CC) + +$(BUILDDIR)/glquake/pr_edict.o : $(MOUNT_DIR)/pr_edict.c + $(DO_GL_CC) + +$(BUILDDIR)/glquake/pr_exec.o : $(MOUNT_DIR)/pr_exec.c + $(DO_GL_CC) + +$(BUILDDIR)/glquake/r_part.o : $(MOUNT_DIR)/r_part.c + $(DO_GL_CC) + +$(BUILDDIR)/glquake/sbar.o : $(MOUNT_DIR)/sbar.c + $(DO_GL_CC) + +$(BUILDDIR)/glquake/sv_main.o : $(MOUNT_DIR)/sv_main.c + $(DO_GL_CC) + +$(BUILDDIR)/glquake/sv_phys.o : $(MOUNT_DIR)/sv_phys.c + $(DO_GL_CC) + +$(BUILDDIR)/glquake/sv_move.o : $(MOUNT_DIR)/sv_move.c + $(DO_GL_CC) + +$(BUILDDIR)/glquake/sv_user.o : $(MOUNT_DIR)/sv_user.c + $(DO_GL_CC) + +$(BUILDDIR)/glquake/zone.o : $(MOUNT_DIR)/zone.c + $(DO_GL_CC) + +$(BUILDDIR)/glquake/view.o : $(MOUNT_DIR)/view.c + $(DO_GL_CC) + +$(BUILDDIR)/glquake/wad.o : $(MOUNT_DIR)/wad.c + $(DO_GL_CC) + +$(BUILDDIR)/glquake/world.o : $(MOUNT_DIR)/world.c + $(DO_GL_CC) + +$(BUILDDIR)/glquake/cd_linux.o : $(MOUNT_DIR)/cd_linux.c + $(DO_GL_CC) + +$(BUILDDIR)/glquake/sys_linux.o : $(MOUNT_DIR)/sys_linux.c + $(DO_GL_CC) + +$(BUILDDIR)/glquake/snd_dma.o : $(MOUNT_DIR)/snd_dma.c + $(DO_GL_CC) + +$(BUILDDIR)/glquake/snd_mem.o : $(MOUNT_DIR)/snd_mem.c + $(DO_GL_CC) + +$(BUILDDIR)/glquake/snd_mix.o : $(MOUNT_DIR)/snd_mix.c + $(DO_GL_CC) + +$(BUILDDIR)/glquake/snd_linux.o : $(MOUNT_DIR)/snd_linux.c + $(DO_GL_CC) + +$(BUILDDIR)/glquake/math.o : $(MOUNT_DIR)/math.s + $(DO_GL_AS) + +$(BUILDDIR)/glquake/worlda.o : $(MOUNT_DIR)/worlda.s + $(DO_GL_AS) + +$(BUILDDIR)/glquake/snd_mixa.o : $(MOUNT_DIR)/snd_mixa.s + $(DO_GL_AS) + +$(BUILDDIR)/glquake/sys_dosa.o : $(MOUNT_DIR)/sys_dosa.s + $(DO_GL_AS) + +############################################################################# +# RPM +############################################################################# + +# Make RPMs. You need to be root to make this work +RPMROOT=/usr/src/redhat +RPM = rpm +RPMFLAGS = -bb +INSTALLDIR = /usr/local/games/quake +TMPDIR = /var/tmp +RPMDIR = $(TMPDIR)/quake-$(VERSION) +BASERPMDIR = $(TMPDIR)/quake-$(BASEVERSION) + +rpm: rpm-quake rpm-quake-data rpm-hipnotic rpm-rogue + +rpm-quake: quake.spec \ + $(BUILD_RELEASE_DIR)/bin/squake \ + $(BUILD_RELEASE_DIR)/bin/quake.x11 \ + $(BUILD_RELEASE_DIR)/bin/glquake \ + $(BUILD_RELEASE_DIR)/bin/glquake.glx \ + $(BUILD_RELEASE_DIR)/bin/glquake.3dfxgl + touch $(RPMROOT)/SOURCES/quake-$(VERSION).tar.gz + if [ ! -d RPMS ];then mkdir RPMS;fi + cp $(MOUNT_DIR)/quake.gif $(RPMROOT)/SOURCES/quake.gif + + # basic binaries rpm + -mkdirhier $(RPMDIR)/$(INSTALLDIR) + cp $(MOUNT_DIR)/docs/README $(RPMDIR)/$(INSTALLDIR)/. + cp $(BUILD_RELEASE_DIR)/bin/squake $(RPMDIR)/$(INSTALLDIR)/squake + strip $(RPMDIR)/$(INSTALLDIR)/squake + cp $(BUILD_RELEASE_DIR)/bin/quake.x11 $(RPMDIR)/$(INSTALLDIR)/quake.x11 + strip $(RPMDIR)/$(INSTALLDIR)/quake.x11 + cp $(BUILD_RELEASE_DIR)/bin/glquake $(RPMDIR)/$(INSTALLDIR)/glquake + strip $(RPMDIR)/$(INSTALLDIR)/glquake + cp $(BUILD_RELEASE_DIR)/bin/glquake.glx $(RPMDIR)/$(INSTALLDIR)/glquake.glx + strip $(RPMDIR)/$(INSTALLDIR)/glquake.glx + cp $(BUILD_RELEASE_DIR)/bin/glquake.3dfxgl $(RPMDIR)/$(INSTALLDIR)/glquake.3dfxgl + strip $(RPMDIR)/$(INSTALLDIR)/glquake.3dfxgl + -mkdirhier $(RPMDIR)/usr/lib + cp $(TDFXGL_DIR)/release$(ARCH)$(GLIBC)/lib3dfxgl.so $(RPMDIR)/usr/lib/lib3dfxgl.so + cp $(MESA_DIR)/lib/libMesaGL.so.2.6 $(RPMDIR)/usr/lib/libMesaGL.so.2.6 + + cp quake.spec $(RPMROOT)/SPECS/. + cd $(RPMROOT)/SPECS; $(RPM) $(RPMFLAGS) quake.spec + rm -rf $(RPMDIR) + rm -f $(RPMROOT)/SOURCES/quake-$(VERSION).tar.gz + + mv $(RPMROOT)/RPMS/$(ARCH)/quake-$(VERSION)-$(RPM_RELEASE).$(ARCH).rpm RPMS/. + +QUAKEDATADIR=$(TMPDIR)/quake-data-$(BASEVERSION) +rpm-quake-data: quake-data.spec + # data rpm + touch $(RPMROOT)/SOURCES/quake-$(BASEVERSION)-data.tar.gz + + -mkdirhier $(QUAKEDATADIR)/$(INSTALLDIR)/id1 + cp $(MASTER_DIR)/id1/pak0.pak $(QUAKEDATADIR)/$(INSTALLDIR)/id1/. + cp $(MASTER_DIR)/id1/pak1.pak $(QUAKEDATADIR)/$(INSTALLDIR)/id1/. + cp $(MOUNT_DIR)/docs/README $(QUAKEDATADIR)/$(INSTALLDIR)/. + cp $(MOUNT_DIR)/data/comexp.txt $(QUAKEDATADIR)/$(INSTALLDIR)/. + cp $(MOUNT_DIR)/data/help.txt $(QUAKEDATADIR)/$(INSTALLDIR)/. + cp $(MOUNT_DIR)/data/licinfo.txt $(QUAKEDATADIR)/$(INSTALLDIR)/. + cp $(MOUNT_DIR)/data/manual.txt $(QUAKEDATADIR)/$(INSTALLDIR)/. + cp $(MOUNT_DIR)/data/readme.txt $(QUAKEDATADIR)/$(INSTALLDIR)/. + cp $(MOUNT_DIR)/data/rlicnse.txt $(QUAKEDATADIR)/$(INSTALLDIR)/. + cp $(MOUNT_DIR)/data/slicnse.txt $(QUAKEDATADIR)/$(INSTALLDIR)/. + cp $(MOUNT_DIR)/data/techinfo.txt $(QUAKEDATADIR)/$(INSTALLDIR)/. + cp quake-data.spec $(RPMROOT)/SPECS/. + cd $(RPMROOT)/SPECS; $(RPM) $(RPMFLAGS) quake-data.spec + rm -rf $(QUAKEDATADIR) + rm -f $(RPMROOT)/SOURCES/quake-$(BASEVERSION)-data.tar.gz + + mv $(RPMROOT)/RPMS/$(NOARCH)/quake-data-$(BASEVERSION)-$(RPM_RELEASE).$(NOARCH).rpm RPMS/. + +RPMHIPNOTICDIR=$(TMPDIR)/quake-hipnotic-$(BASEVERSION) +rpm-hipnotic: quake-hipnotic.spec + touch $(RPMROOT)/SOURCES/quake-hipnotic-$(BASEVERSION).tar.gz + if [ ! -d RPMS ];then mkdir RPMS;fi + cp $(MOUNT_DIR)/quake.gif $(RPMROOT)/SOURCES/quake.gif + -mkdirhier $(RPMHIPNOTICDIR)/$(INSTALLDIR)/hipnotic/docs + cp $(MASTER_DIR)/hipnotic/pak0.pak $(RPMHIPNOTICDIR)/$(INSTALLDIR)/hipnotic/. + cp $(MASTER_DIR)/hipnotic/config.cfg $(RPMHIPNOTICDIR)/$(INSTALLDIR)/hipnotic/. + cp $(MASTER_DIR)/hipnotic/docs/manual.doc $(RPMHIPNOTICDIR)/$(INSTALLDIR)/hipnotic/docs/. + cp $(MASTER_DIR)/hipnotic/docs/manual.htm $(RPMHIPNOTICDIR)/$(INSTALLDIR)/hipnotic/docs/. + cp $(MASTER_DIR)/hipnotic/docs/manual.txt $(RPMHIPNOTICDIR)/$(INSTALLDIR)/hipnotic/docs/. + cp $(MASTER_DIR)/hipnotic/docs/readme.doc $(RPMHIPNOTICDIR)/$(INSTALLDIR)/hipnotic/docs/. + cp $(MASTER_DIR)/hipnotic/docs/readme.htm $(RPMHIPNOTICDIR)/$(INSTALLDIR)/hipnotic/docs/. + cp $(MASTER_DIR)/hipnotic/docs/readme.txt $(RPMHIPNOTICDIR)/$(INSTALLDIR)/hipnotic/docs/. + cp quake-hipnotic.spec $(RPMROOT)/SPECS/. + cd $(RPMROOT)/SPECS; $(RPM) $(RPMFLAGS) quake-hipnotic.spec + rm -rf $(RPMHIPNOTICDIR) + rm -f $(RPMROOT)/SOURCES/quake-hipnotic-$(BASEVERSION).tar.gz + + mv $(RPMROOT)/RPMS/$(NOARCH)/quake-hipnotic-$(BASEVERSION)-$(RPM_RELEASE).$(NOARCH).rpm RPMS/. + +RPMROGUEDIR=$(TMPDIR)/quake-rogue-$(BASEVERSION) +rpm-rogue: quake-rogue.spec + touch $(RPMROOT)/SOURCES/quake-rogue-$(BASEVERSION).tar.gz + if [ ! -d RPMS ];then mkdir RPMS;fi + cp $(MOUNT_DIR)/quake.gif $(RPMROOT)/SOURCES/quake.gif + -mkdirhier $(RPMROGUEDIR)/$(INSTALLDIR)/rogue/docs + cp $(MASTER_DIR)/rogue/pak0.pak $(RPMROGUEDIR)/$(INSTALLDIR)/rogue/. + cp $(MASTER_DIR)/rogue/docs/manual.doc $(RPMROGUEDIR)/$(INSTALLDIR)/rogue/docs/. + cp $(MASTER_DIR)/rogue/docs/manual.htm $(RPMROGUEDIR)/$(INSTALLDIR)/rogue/docs/. + cp $(MASTER_DIR)/rogue/docs/manual.txt $(RPMROGUEDIR)/$(INSTALLDIR)/rogue/docs/. + cp $(MASTER_DIR)/rogue/docs/readme.doc $(RPMROGUEDIR)/$(INSTALLDIR)/rogue/docs/. + cp $(MASTER_DIR)/rogue/docs/readme.htm $(RPMROGUEDIR)/$(INSTALLDIR)/rogue/docs/. + cp $(MASTER_DIR)/rogue/docs/readme.txt $(RPMROGUEDIR)/$(INSTALLDIR)/rogue/docs/. + cp $(MASTER_DIR)/rogue/docs/ctf.doc $(RPMROGUEDIR)/$(INSTALLDIR)/rogue/docs/. + cp $(MASTER_DIR)/rogue/docs/ctf.htm $(RPMROGUEDIR)/$(INSTALLDIR)/rogue/docs/. + cp $(MASTER_DIR)/rogue/docs/ctf.txt $(RPMROGUEDIR)/$(INSTALLDIR)/rogue/docs/. + cp quake-rogue.spec $(RPMROOT)/SPECS/. + cd $(RPMROOT)/SPECS; $(RPM) $(RPMFLAGS) quake-rogue.spec + rm -rf $(RPMROGUEDIR) + rm -f $(RPMROOT)/SOURCES/quake-rogue-$(BASEVERSION).tar.gz + + mv $(RPMROOT)/RPMS/$(NOARCH)/quake-rogue-$(BASEVERSION)-$(RPM_RELEASE).$(NOARCH).rpm RPMS/. + +quake.spec : $(MOUNT_DIR)/quake.spec.sh + sh $< $(VERSION) $(RPM_RELEASE) $(INSTALLDIR) > $@ + +quake-data.spec : $(MOUNT_DIR)/quake-data.spec.sh + sh $< $(BASEVERSION) $(RPM_RELEASE) $(INSTALLDIR) > $@ + +quake-hipnotic.spec : $(MOUNT_DIR)/quake-hipnotic.spec.sh + sh $< $(BASEVERSION) $(RPM_RELEASE) $(INSTALLDIR) > $@ + +quake-rogue.spec : $(MOUNT_DIR)/quake-rogue.spec.sh + sh $< $(BASEVERSION) $(RPM_RELEASE) $(INSTALLDIR) > $@ + +############################################################################# +# MISC +############################################################################# + +clean: clean-debug clean-release + rm -f squake.spec glquake.spec quake.x11.spec + +clean-debug: + $(MAKE) clean2 BUILDDIR=$(BUILD_DEBUG_DIR) CFLAGS="$(DEBUG_CFLAGS)" + +clean-release: + $(MAKE) clean2 BUILDDIR=$(BUILD_RELEASE_DIR) CFLAGS="$(DEBUG_CFLAGS)" + +clean2: + -rm -f $(SQUAKE_OBJS) $(X11_OBJS) $(GLQUAKE_OBJS) $(GLSVGA_OBJS) \ + $(GLX_OBJS) + diff --git a/doc/makefile.solaris b/doc/makefile.solaris new file mode 100644 index 000000000..8b91379d7 --- /dev/null +++ b/doc/makefile.solaris @@ -0,0 +1,483 @@ +# +# Quake Makefile for Solaris +# +# Nov '97 by Zoid +# +# ELF only +# + +VERSION=1.09 + +ifneq (,$(findstring i86pc,$(shell uname -m))) +ARCH=i386 +else +ARCH=sparc +endif + +MOUNT_DIR=/grog/Projects/WinQuake + +BUILD_DEBUG_DIR=debug$(ARCH) +BUILD_RELEASE_DIR=release$(ARCH) + +CC=gcc +BASE_CFLAGS=-I/usr/openwin/include + +RELEASE_CFLAGS=$(BASE_CFLAGS) -O6 -ffast-math -funroll-loops -fomit-frame-pointer -fexpensive-optimizations +DEBUG_CFLAGS=$(BASE_CFLAGS) -g +LDFLAGS=-R /usr/openwin/lib -L /usr/openwin/lib -lm -lX11 -lXext -lsocket -lnsl -lthread -ldl +XIL_LDFLAGS=-L /opt/SUNWits/Graphics-sw/xil/lib -R /opt/SUNWits/Graphics-sw/xil/lib:/usr/openwin/lib -L /usr/openwin/lib -lm -lxil -lX11 -lXext -lsocket -lnsl -lthread -ldl + +DO_CC=$(CC) $(CFLAGS) -o $@ -c $< +DO_AS=$(CC) $(CFLAGS) -DELF -x assembler-with-cpp -o $@ -c $< + +############################################################################# +# SETUP AND BUILD +############################################################################# + +TARGETS=$(BUILDDIR)/quake.sw $(BUILDDIR)/quake.xil + +build_debug: + @-mkdir $(BUILD_DEBUG_DIR) + $(MAKE) targets BUILDDIR=$(BUILD_DEBUG_DIR) CFLAGS="$(DEBUG_CFLAGS)" + +build_release: + @-mkdir $(BUILD_RELEASE_DIR) + $(MAKE) targets BUILDDIR=$(BUILD_RELEASE_DIR) CFLAGS="$(RELEASE_CFLAGS)" + +all: build_debug build_release + +targets: $(TARGETS) + +############################################################################# +# CLIENT/SERVER +############################################################################# + +QUAKE_OBJS= \ + $(BUILDDIR)/chase.o \ + $(BUILDDIR)/cl_demo.o \ + $(BUILDDIR)/cl_input.o \ + $(BUILDDIR)/cl_main.o \ + $(BUILDDIR)/cl_parse.o \ + $(BUILDDIR)/cl_tent.o \ + $(BUILDDIR)/cmd.o \ + $(BUILDDIR)/common.o \ + $(BUILDDIR)/console.o \ + $(BUILDDIR)/crc.o \ + $(BUILDDIR)/cvar.o \ + $(BUILDDIR)/draw.o \ + $(BUILDDIR)/d_edge.o \ + $(BUILDDIR)/d_fill.o \ + $(BUILDDIR)/d_init.o \ + $(BUILDDIR)/d_modech.o \ + $(BUILDDIR)/d_part.o \ + $(BUILDDIR)/d_polyse.o \ + $(BUILDDIR)/d_scan.o \ + $(BUILDDIR)/d_sky.o \ + $(BUILDDIR)/d_sprite.o \ + $(BUILDDIR)/d_surf.o \ + $(BUILDDIR)/d_vars.o \ + $(BUILDDIR)/d_zpoint.o \ + $(BUILDDIR)/host.o \ + $(BUILDDIR)/host_cmd.o \ + $(BUILDDIR)/keys.o \ + $(BUILDDIR)/menu.o \ + $(BUILDDIR)/mathlib.o \ + $(BUILDDIR)/model.o \ + $(BUILDDIR)/nonintel.o \ + $(BUILDDIR)/pr_cmds.o \ + $(BUILDDIR)/pr_edict.o \ + $(BUILDDIR)/pr_exec.o \ + $(BUILDDIR)/r_aclip.o \ + $(BUILDDIR)/r_alias.o \ + $(BUILDDIR)/r_bsp.o \ + $(BUILDDIR)/r_light.o \ + $(BUILDDIR)/r_draw.o \ + $(BUILDDIR)/r_efrag.o \ + $(BUILDDIR)/r_edge.o \ + $(BUILDDIR)/r_misc.o \ + $(BUILDDIR)/r_main.o \ + $(BUILDDIR)/r_sky.o \ + $(BUILDDIR)/r_sprite.o \ + $(BUILDDIR)/r_surf.o \ + $(BUILDDIR)/r_part.o \ + $(BUILDDIR)/r_vars.o \ + $(BUILDDIR)/screen.o \ + $(BUILDDIR)/sbar.o \ + $(BUILDDIR)/sv_main.o \ + $(BUILDDIR)/sv_phys.o \ + $(BUILDDIR)/sv_move.o \ + $(BUILDDIR)/sv_user.o \ + $(BUILDDIR)/zone.o \ + $(BUILDDIR)/view.o \ + $(BUILDDIR)/wad.o \ + $(BUILDDIR)/world.o \ + $(BUILDDIR)/cd_null.o \ + $(BUILDDIR)/snd_dma.o \ + $(BUILDDIR)/snd_mix.o \ + $(BUILDDIR)/snd_mem.o \ + $(BUILDDIR)/net_dgrm.o \ + $(BUILDDIR)/net_loop.o \ + $(BUILDDIR)/net_main.o \ + $(BUILDDIR)/net_vcr.o \ + $(BUILDDIR)/net_udp.o \ + $(BUILDDIR)/net_bsd.o \ + $(BUILDDIR)/sys_sun.o \ + $(BUILDDIR)/snd_sun.o + +QUAKE_AS_OBJS= \ + $(BUILDDIR)/d_copy.o \ + $(BUILDDIR)/d_draw.o \ + $(BUILDDIR)/d_draw16.o \ + $(BUILDDIR)/d_parta.o \ + $(BUILDDIR)/d_polysa.o \ + $(BUILDDIR)/d_scana.o \ + $(BUILDDIR)/d_spr8.o \ + $(BUILDDIR)/d_varsa.o \ + $(BUILDDIR)/math.o \ + $(BUILDDIR)/r_aliasa.o \ + $(BUILDDIR)/r_drawa.o \ + $(BUILDDIR)/r_edgea.o \ + $(BUILDDIR)/r_varsa.o \ + $(BUILDDIR)/surf16.o \ + $(BUILDDIR)/surf8.o \ + $(BUILDDIR)/worlda.o \ + $(BUILDDIR)/r_aclipa.o \ + $(BUILDDIR)/snd_mixa.o \ + $(BUILDDIR)/sys_dosa.o + +QUAKE_X_OBJS = $(BUILDDIR)/vid_sunx.o + +QUAKE_XIL_OBJS = $(BUILDDIR)/vid_sunxil.o + +ifeq ($(ARCH),i386) +$(BUILDDIR)/quake.sw : $(QUAKE_OBJS) $(QUAKE_AS_OBJS) $(QUAKE_X_OBJS) + $(CC) -o $(@) $(QUAKE_OBJS) $(QUAKE_AS_OBJS) $(QUAKE_X_OBJS) $(LDFLAGS) + +$(BUILDDIR)/quake.xil: $(QUAKE_OBJS) $(QUAKE_AS_OBJS) $(QUAKE_XIL_OBJS) + $(CC) -o $(@) $(QUAKE_OBJS) $(QUAKE_AS_OBJS) $(QUAKE_XIL_OBJS) $(XIL_LDFLAGS) +else +$(BUILDDIR)/quake.sw : $(QUAKE_OBJS) $(QUAKE_X_OBJS) + $(CC) -o $(@) $(QUAKE_OBJS) $(QUAKE_X_OBJS) $(LDFLAGS) + +$(BUILDDIR)/quake.xil: $(QUAKE_OBJS) $(QUAKE_XIL_OBJS) + $(CC) -o $(@) $(QUAKE_OBJS) $(QUAKE_XIL_OBJS) $(XIL_LDFLAGS) +endif + +## + +$(BUILDDIR)/chase.o : $(MOUNT_DIR)/chase.c + $(DO_CC) + +$(BUILDDIR)/cl_demo.o : $(MOUNT_DIR)/cl_demo.c + $(DO_CC) + +$(BUILDDIR)/cl_input.o : $(MOUNT_DIR)/cl_input.c + $(DO_CC) + +$(BUILDDIR)/cl_main.o : $(MOUNT_DIR)/cl_main.c + $(DO_CC) + +$(BUILDDIR)/cl_parse.o : $(MOUNT_DIR)/cl_parse.c + $(DO_CC) + +$(BUILDDIR)/cl_tent.o : $(MOUNT_DIR)/cl_tent.c + $(DO_CC) + +$(BUILDDIR)/cmd.o : $(MOUNT_DIR)/cmd.c + $(DO_CC) + +$(BUILDDIR)/common.o : $(MOUNT_DIR)/common.c + $(DO_CC) + +$(BUILDDIR)/console.o : $(MOUNT_DIR)/console.c + $(DO_CC) + +$(BUILDDIR)/crc.o : $(MOUNT_DIR)/crc.c + $(DO_CC) + +$(BUILDDIR)/cvar.o : $(MOUNT_DIR)/cvar.c + $(DO_CC) + +$(BUILDDIR)/draw.o : $(MOUNT_DIR)/draw.c + $(DO_CC) + +$(BUILDDIR)/d_edge.o : $(MOUNT_DIR)/d_edge.c + $(DO_CC) + +$(BUILDDIR)/d_fill.o : $(MOUNT_DIR)/d_fill.c + $(DO_CC) + +$(BUILDDIR)/d_init.o : $(MOUNT_DIR)/d_init.c + $(DO_CC) + +$(BUILDDIR)/d_modech.o : $(MOUNT_DIR)/d_modech.c + $(DO_CC) + +$(BUILDDIR)/d_part.o : $(MOUNT_DIR)/d_part.c + $(DO_CC) + +$(BUILDDIR)/d_polyse.o : $(MOUNT_DIR)/d_polyse.c + $(DO_CC) + +$(BUILDDIR)/d_scan.o : $(MOUNT_DIR)/d_scan.c + $(DO_CC) + +$(BUILDDIR)/d_sky.o : $(MOUNT_DIR)/d_sky.c + $(DO_CC) + +$(BUILDDIR)/d_sprite.o : $(MOUNT_DIR)/d_sprite.c + $(DO_CC) + +$(BUILDDIR)/d_surf.o : $(MOUNT_DIR)/d_surf.c + $(DO_CC) + +$(BUILDDIR)/d_vars.o : $(MOUNT_DIR)/d_vars.c + $(DO_CC) + +$(BUILDDIR)/d_zpoint.o : $(MOUNT_DIR)/d_zpoint.c + $(DO_CC) + +$(BUILDDIR)/host.o : $(MOUNT_DIR)/host.c + $(DO_CC) + +$(BUILDDIR)/host_cmd.o : $(MOUNT_DIR)/host_cmd.c + $(DO_CC) + +$(BUILDDIR)/keys.o : $(MOUNT_DIR)/keys.c + $(DO_CC) + +$(BUILDDIR)/menu.o : $(MOUNT_DIR)/menu.c + $(DO_CC) + +$(BUILDDIR)/mathlib.o : $(MOUNT_DIR)/mathlib.c + $(DO_CC) + +$(BUILDDIR)/model.o : $(MOUNT_DIR)/model.c + $(DO_CC) + +$(BUILDDIR)/nonintel.o : $(MOUNT_DIR)/nonintel.c + $(DO_CC) + +$(BUILDDIR)/pr_cmds.o : $(MOUNT_DIR)/pr_cmds.c + $(DO_CC) + +$(BUILDDIR)/pr_edict.o : $(MOUNT_DIR)/pr_edict.c + $(DO_CC) + +$(BUILDDIR)/pr_exec.o : $(MOUNT_DIR)/pr_exec.c + $(DO_CC) + +$(BUILDDIR)/r_aclip.o : $(MOUNT_DIR)/r_aclip.c + $(DO_CC) + +$(BUILDDIR)/r_alias.o : $(MOUNT_DIR)/r_alias.c + $(DO_CC) + +$(BUILDDIR)/r_bsp.o : $(MOUNT_DIR)/r_bsp.c + $(DO_CC) + +$(BUILDDIR)/r_light.o : $(MOUNT_DIR)/r_light.c + $(DO_CC) + +$(BUILDDIR)/r_draw.o : $(MOUNT_DIR)/r_draw.c + $(DO_CC) + +$(BUILDDIR)/r_efrag.o : $(MOUNT_DIR)/r_efrag.c + $(DO_CC) + +$(BUILDDIR)/r_edge.o : $(MOUNT_DIR)/r_edge.c + $(DO_CC) + +$(BUILDDIR)/r_misc.o : $(MOUNT_DIR)/r_misc.c + $(DO_CC) + +$(BUILDDIR)/r_main.o : $(MOUNT_DIR)/r_main.c + $(DO_CC) + +$(BUILDDIR)/r_sky.o : $(MOUNT_DIR)/r_sky.c + $(DO_CC) + +$(BUILDDIR)/r_sprite.o : $(MOUNT_DIR)/r_sprite.c + $(DO_CC) + +$(BUILDDIR)/r_surf.o : $(MOUNT_DIR)/r_surf.c + $(DO_CC) + +$(BUILDDIR)/r_part.o : $(MOUNT_DIR)/r_part.c + $(DO_CC) + +$(BUILDDIR)/r_vars.o : $(MOUNT_DIR)/r_vars.c + $(DO_CC) + +$(BUILDDIR)/screen.o : $(MOUNT_DIR)/screen.c + $(DO_CC) + +$(BUILDDIR)/sbar.o : $(MOUNT_DIR)/sbar.c + $(DO_CC) + +$(BUILDDIR)/sv_main.o : $(MOUNT_DIR)/sv_main.c + $(DO_CC) + +$(BUILDDIR)/sv_phys.o : $(MOUNT_DIR)/sv_phys.c + $(DO_CC) + +$(BUILDDIR)/sv_move.o : $(MOUNT_DIR)/sv_move.c + $(DO_CC) + +$(BUILDDIR)/sv_user.o : $(MOUNT_DIR)/sv_user.c + $(DO_CC) + +$(BUILDDIR)/zone.o : $(MOUNT_DIR)/zone.c + $(DO_CC) + +$(BUILDDIR)/view.o : $(MOUNT_DIR)/view.c + $(DO_CC) + +$(BUILDDIR)/wad.o : $(MOUNT_DIR)/wad.c + $(DO_CC) + +$(BUILDDIR)/world.o : $(MOUNT_DIR)/world.c + $(DO_CC) + +$(BUILDDIR)/cd_null.o : $(MOUNT_DIR)/cd_null.c + $(DO_CC) + +$(BUILDDIR)/snd_dma.o : $(MOUNT_DIR)/snd_dma.c + $(DO_CC) + +$(BUILDDIR)/snd_mix.o : $(MOUNT_DIR)/snd_mix.c + $(DO_CC) + +$(BUILDDIR)/snd_mem.o : $(MOUNT_DIR)/snd_mem.c + $(DO_CC) + +$(BUILDDIR)/net_dgrm.o : $(MOUNT_DIR)/net_dgrm.c + $(DO_CC) + +$(BUILDDIR)/net_loop.o : $(MOUNT_DIR)/net_loop.c + $(DO_CC) + +$(BUILDDIR)/net_main.o : $(MOUNT_DIR)/net_main.c + $(DO_CC) + +$(BUILDDIR)/net_vcr.o : $(MOUNT_DIR)/net_vcr.c + $(DO_CC) + +$(BUILDDIR)/net_udp.o : $(MOUNT_DIR)/net_udp.c + $(DO_CC) + +$(BUILDDIR)/net_bsd.o : $(MOUNT_DIR)/net_bsd.c + $(DO_CC) + +$(BUILDDIR)/sys_sun.o : $(MOUNT_DIR)/sys_sun.c + $(DO_CC) + +$(BUILDDIR)/snd_sun.o : $(MOUNT_DIR)/snd_sun.c + $(DO_CC) + +$(BUILDDIR)/in_sun.o : $(MOUNT_DIR)/in_sun.c + $(DO_CC) + +$(BUILDDIR)/vid_sunx.o : $(MOUNT_DIR)/vid_sunx.c + $(DO_CC) + +$(BUILDDIR)/vid_sunxil.o : $(MOUNT_DIR)/vid_sunxil.c + $(DO_CC) + +##### + +$(BUILDDIR)/d_copy.o : $(MOUNT_DIR)/d_copy.s + $(DO_AS) + +$(BUILDDIR)/d_draw.o : $(MOUNT_DIR)/d_draw.s + $(DO_AS) + +$(BUILDDIR)/d_draw16.o : $(MOUNT_DIR)/d_draw16.s + $(DO_AS) + +$(BUILDDIR)/d_parta.o : $(MOUNT_DIR)/d_parta.s + $(DO_AS) + +$(BUILDDIR)/d_polysa.o : $(MOUNT_DIR)/d_polysa.s + $(DO_AS) + +$(BUILDDIR)/d_scana.o : $(MOUNT_DIR)/d_scana.s + $(DO_AS) + +$(BUILDDIR)/d_spr8.o : $(MOUNT_DIR)/d_spr8.s + $(DO_AS) + +$(BUILDDIR)/d_varsa.o : $(MOUNT_DIR)/d_varsa.s + $(DO_AS) + +$(BUILDDIR)/math.o : $(MOUNT_DIR)/math.s + $(DO_AS) + +$(BUILDDIR)/r_aliasa.o : $(MOUNT_DIR)/r_aliasa.s + $(DO_AS) + +$(BUILDDIR)/r_drawa.o : $(MOUNT_DIR)/r_drawa.s + $(DO_AS) + +$(BUILDDIR)/r_edgea.o : $(MOUNT_DIR)/r_edgea.s + $(DO_AS) + +$(BUILDDIR)/r_varsa.o : $(MOUNT_DIR)/r_varsa.s + $(DO_AS) + +$(BUILDDIR)/surf16.o : $(MOUNT_DIR)/surf16.s + $(DO_AS) + +$(BUILDDIR)/surf8.o : $(MOUNT_DIR)/surf8.s + $(DO_AS) + +$(BUILDDIR)/worlda.o : $(MOUNT_DIR)/worlda.s + $(DO_AS) + +$(BUILDDIR)/r_aclipa.o : $(MOUNT_DIR)/r_aclipa.s + $(DO_AS) + +$(BUILDDIR)/snd_mixa.o : $(MOUNT_DIR)/snd_mixa.s + $(DO_AS) + +$(BUILDDIR)/sys_dosa.o : $(MOUNT_DIR)/sys_dosa.s + $(DO_AS) + +############################################################################# +# TAR +############################################################################# + +# Make RPMs. You need to be root to make this work +RPMDIR = /var/tmp/quake-$(VERSION) + +tar: + if [ ! -d archives ];then mkdir archives;fi + $(MAKE) copyfiles COPYDIR=$(RPMDIR) + cd $(RPMDIR); tar cvf q2ded-$(VERSION)-$(ARCH)-sun-solaris2.5.1.tar * + cd $(RPMDIR); compress q2ded-$(VERSION)-$(ARCH)-sun-solaris2.5.1.tar + mv $(RPMDIR)/*.tar.Z archives/. + rm -rf $(RPMDIR) + +copyfiles: + -mkdirhier $(COPYDIR) + cp $(BUILD_RELEASE_DIR)/quake.sw $(COPYDIR) + cp $(BUILD_RELEASE_DIR)/quake.xil $(COPYDIR) + strip $(COPYDIR)/quake + strip $(COPYDIR)/quake.xil + cp $(MOUNT_DIR)/README.Solaris $(COPYDIR)/README.Solaris + +############################################################################# +# MISC +############################################################################# + +clean: clean-debug clean-release + +clean-debug: + $(MAKE) clean2 BUILDDIR=$(BUILD_DEBUG_DIR) CFLAGS="$(DEBUG_CFLAGS)" + +clean-release: + $(MAKE) clean2 BUILDDIR=$(BUILD_RELEASE_DIR) CFLAGS="$(DEBUG_CFLAGS)" + +clean2: + -rm -f $(QUAKE_OBJS) $(QUAKE_X_OBJS) $(QUAKE_XIL_OBJS) + diff --git a/doc/man/.gitignore b/doc/man/.gitignore new file mode 100644 index 000000000..3dda72986 --- /dev/null +++ b/doc/man/.gitignore @@ -0,0 +1,2 @@ +Makefile.in +Makefile diff --git a/doc/man/Makefile.am b/doc/man/Makefile.am new file mode 100644 index 000000000..1101ab47a --- /dev/null +++ b/doc/man/Makefile.am @@ -0,0 +1,4 @@ +## Process this file with automake to produce Makefile.in +man_MANS = quakeforge.1 + +EXTRA_DIST = $(man_MANS) diff --git a/doc/man/quakeforge.1 b/doc/man/quakeforge.1 new file mode 100644 index 000000000..3419db5e1 --- /dev/null +++ b/doc/man/quakeforge.1 @@ -0,0 +1,47 @@ +.\" hey, Emacs: -*- nroff -*- +.\" quakeforge is free software; you can redistribute it and/or modify +.\" it under the terms of the GNU General Public License as published by +.\" the Free Software Foundation; either version 2 of the License, or +.\" (at your option) any later version. +.\" +.\" This program is distributed in the hope that it will be useful, +.\" but WITHOUT ANY WARRANTY; without even the implied warranty of +.\" MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +.\" GNU General Public License for more details. +.\" +.\" You should have received a copy of the GNU General Public License +.\" along with this program; see the file COPYING. If not, write to +.\" the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. +.\" +.TH QUAKEFORGE 1 "May 15, 2000" +.\" Please update the above date whenever this man page is modified. +.SH NAME +quakeforge \- 3D game engine based on id Software's Quake engine +.SH SYNOPSIS +.B quakeforge +.RI [ options ] +.SH DESCRIPTION +\fBquakeforge\fP washes your windows, mends your fences, mows your lawn... +.PP +It also... +.SH OPTIONS +\fBquakeforge\fP accepts the following options: +.TP +.BR -i , " --interactive" +Prompt for confirmation. +.TP +.BR -q , " --quiet" , " --silent" +Inhibit usual output. +.TP +.B --verbose +Print more information. +.TP +.B \-h, \-\-help +Show summary of options. +.TP +.B \-v, \-\-version +Show version of program. +.\" .SH "SEE ALSO" +.\" .BR foo "(1), " bar (1) +.SH AUTHOR +The QuakeForge Project . diff --git a/doc/net_DoS_protection.txt b/doc/net_DoS_protection.txt new file mode 100644 index 000000000..ef1104778 --- /dev/null +++ b/doc/net_DoS_protection.txt @@ -0,0 +1,49 @@ + +SV_NETDOSPROTECT 0/1 +Used to turn on/off Denial Of Service protections. Makes it more +difficult to use quakeworld servers to conduct DoS attacks against +other sites. + +NETDOSVALUES +Tells server how many of specified kind of requests (per IP addr) +are allowed during time defined with NETDOSEXPIRE. +Possible request types: + + +NETDOSEXPIRE +Tells server how much time must pass before request counter expires +and gets set to zero. + + + +NETDOSVALUES +NETDOSEXPIRE + +defaults are: + +NETDOSVALUES 12 1 3 1 1 1 1 +NETDOSEXPIRE 1 1 2 0.9 1 5 + +meaning : +maximum of 12 PINGS are allowed in 1 second +maximum of 1 LOG request / second +maximum of 2 connect requests / 3 seconds +maximum of 1 status request / 0.9 seconds +maximum of 1 rcon command / 1 second +maximum of 1 request from banned IP / 5 second + +Examples +if server receives 15 ping requests under 1 second, it will allow 12 requests +and drop 3 without response. + +Other commands: + +sv_allow_log +Allow/disallow remote LOG requests + +sv_allow_status +Allow/disallow remote status requests + +sv_allow_ping +Allow/disallow remote pings + diff --git a/doc/progdefs.q1 b/doc/progdefs.q1 new file mode 100644 index 000000000..eb15c45c6 --- /dev/null +++ b/doc/progdefs.q1 @@ -0,0 +1,143 @@ + +/* file generated by qcc, do not modify */ + +typedef struct +{ int pad[28]; + int self; + int other; + int world; + float time; + float frametime; + float force_retouch; + string_t mapname; + float deathmatch; + float coop; + float teamplay; + float serverflags; + float total_secrets; + float total_monsters; + float found_secrets; + float killed_monsters; + float parm1; + float parm2; + float parm3; + float parm4; + float parm5; + float parm6; + float parm7; + float parm8; + float parm9; + float parm10; + float parm11; + float parm12; + float parm13; + float parm14; + float parm15; + float parm16; + vec3_t v_forward; + vec3_t v_up; + vec3_t v_right; + float trace_allsolid; + float trace_startsolid; + float trace_fraction; + vec3_t trace_endpos; + vec3_t trace_plane_normal; + float trace_plane_dist; + int trace_ent; + float trace_inopen; + float trace_inwater; + int msg_entity; + func_t main; + func_t StartFrame; + func_t PlayerPreThink; + func_t PlayerPostThink; + func_t ClientKill; + func_t ClientConnect; + func_t PutClientInServer; + func_t ClientDisconnect; + func_t SetNewParms; + func_t SetChangeParms; +} globalvars_t; + +typedef struct +{ + float modelindex; + vec3_t absmin; + vec3_t absmax; + float ltime; + float movetype; + float solid; + vec3_t origin; + vec3_t oldorigin; + vec3_t velocity; + vec3_t angles; + vec3_t avelocity; + vec3_t punchangle; + string_t classname; + string_t model; + float frame; + float skin; + float effects; + vec3_t mins; + vec3_t maxs; + vec3_t size; + func_t touch; + func_t use; + func_t think; + func_t blocked; + float nextthink; + int groundentity; + float health; + float frags; + float weapon; + string_t weaponmodel; + float weaponframe; + float currentammo; + float ammo_shells; + float ammo_nails; + float ammo_rockets; + float ammo_cells; + float items; + float takedamage; + int chain; + float deadflag; + vec3_t view_ofs; + float button0; + float button1; + float button2; + float impulse; + float fixangle; + vec3_t v_angle; + float idealpitch; + string_t netname; + int enemy; + float flags; + float colormap; + float team; + float max_health; + float teleport_time; + float armortype; + float armorvalue; + float waterlevel; + float watertype; + float ideal_yaw; + float yaw_speed; + int aiment; + int goalentity; + float spawnflags; + string_t target; + string_t targetname; + float dmg_take; + float dmg_save; + int dmg_inflictor; + int owner; + vec3_t movedir; + string_t message; + float sounds; + string_t noise; + string_t noise1; + string_t noise2; + string_t noise3; +} entvars_t; + +#define PROGHEADER_CRC 5927 diff --git a/doc/progdefs.q2 b/doc/progdefs.q2 new file mode 100644 index 000000000..dc7f3be9b --- /dev/null +++ b/doc/progdefs.q2 @@ -0,0 +1,158 @@ + +/* file generated by qcc, do not modify */ + +typedef struct +{ int pad[28]; + int self; + int other; + int world; + float time; + float frametime; + float force_retouch; + string_t mapname; + string_t startspot; + float deathmatch; + float coop; + float teamplay; + float serverflags; + float total_secrets; + float total_monsters; + float found_secrets; + float killed_monsters; + float parm1; + float parm2; + float parm3; + float parm4; + float parm5; + float parm6; + float parm7; + float parm8; + float parm9; + float parm10; + float parm11; + float parm12; + float parm13; + float parm14; + float parm15; + float parm16; + vec3_t v_forward; + vec3_t v_up; + vec3_t v_right; + float trace_allsolid; + float trace_startsolid; + float trace_fraction; + vec3_t trace_endpos; + vec3_t trace_plane_normal; + float trace_plane_dist; + int trace_ent; + float trace_inopen; + float trace_inwater; + int msg_entity; + string_t null; + func_t main; + func_t StartFrame; + func_t PlayerPreThink; + func_t PlayerPostThink; + func_t ClientKill; + func_t ClientConnect; + func_t PutClientInServer; + func_t ClientDisconnect; + func_t SetNewParms; + func_t SetChangeParms; +} globalvars_t; + +typedef struct +{ + float modelindex; + vec3_t absmin; + vec3_t absmax; + float ltime; + float movetype; + float solid; + vec3_t origin; + vec3_t oldorigin; + vec3_t velocity; + vec3_t angles; + vec3_t avelocity; + vec3_t basevelocity; + vec3_t punchangle; + string_t classname; + string_t model; + float frame; + float skin; + float effects; + float drawPercent; + float gravity; + float mass; + float light_level; + vec3_t mins; + vec3_t maxs; + vec3_t size; + func_t touch; + func_t use; + func_t think; + func_t blocked; + float nextthink; + int groundentity; + float health; + float frags; + float weapon; + string_t weaponmodel; + float weaponframe; + float currentammo; + float ammo_shells; + float ammo_nails; + float ammo_rockets; + float ammo_cells; + float items; + float items2; + float takedamage; + int chain; + float deadflag; + vec3_t view_ofs; + float button0; + float button1; + float button2; + float impulse; + float fixangle; + vec3_t v_angle; + float idealpitch; + float pitch_speed; + string_t netname; + int enemy; + float flags; + float colormap; + float team; + float max_health; + float teleport_time; + float armortype; + float armorvalue; + float waterlevel; + float watertype; + float ideal_yaw; + float yaw_speed; + int aiment; + int goalentity; + float spawnflags; + string_t target; + string_t targetname; + float dmg_take; + float dmg_save; + int dmg_inflictor; + int owner; + vec3_t movedir; + string_t message; + float sounds; + string_t noise; + string_t noise1; + string_t noise2; + string_t noise3; + float dmg; + float dmgtime; + float air_finished; + float pain_finished; + float radsuit_finished; + float speed; +} entvars_t; + +#define PROGHEADER_CRC 31586 diff --git a/doc/qe3.ico b/doc/qe3.ico new file mode 100644 index 000000000..35ee0d278 Binary files /dev/null and b/doc/qe3.ico differ diff --git a/doc/quake.gif b/doc/quake.gif new file mode 100644 index 000000000..a16ca00a2 Binary files /dev/null and b/doc/quake.gif differ diff --git a/doc/quake.ico b/doc/quake.ico new file mode 100644 index 000000000..507c87d21 Binary files /dev/null and b/doc/quake.ico differ diff --git a/doc/readme.solaris b/doc/readme.solaris new file mode 100644 index 000000000..6d52ed01c --- /dev/null +++ b/doc/readme.solaris @@ -0,0 +1,98 @@ +Solaris 2 Quake / QuakeWorld +---------------------------- + + This is an UNSUPPORTED version of Quake and QuakeWorld. Don't + bother id software about it. Bug reports will be ignored. + +PORT DETAILS +------------ + + There are a few major difference between this port and the + vanilla Quake/QuakeWorld available on the internet. For + optimum performance, you should copy everything to a directory + on your local system before starting play so that you are + not mounting files from a remote filesystem. + + In order to use this program, you need the files pak0.pak + and pak1.pak in the id1 directory found on a registered copy of + Quake. You can ftp them to your Solaris host from a Windows95 + machine for example. The files must be in an id1 subdirectory from + the directory you install Quake/QuakeWorld, and all file names must + be lowercase. Add on packages such as ThreeWave CTF work fine as + well, just place such addon packages in their own directory as you + would on a Windows95 installation. But again, make sure all files + are lowercase. + + COMMAND LINE FLAGS: + + +pixel_multiply + + You can magnify the screen by using this flag: + + Ex: % quake +pixel_multiply 2 + + You can also use this command (without the dash) + from the Quake console. pixel_multiply is a Quake + cvar and is saved from session to session in the + config.cfg file. + + -winsize + + Set the size of the window when you start + + -count_frames + + See how many frames per second you're getting + + GAME SETTINGS + + mouse binding + + You can bind and unbind the mouse to the Quake window + by using the Use Mouse selection in the Options menu, + or with the "_windowed_mouse" command in the console, + ex "_windowed_mouse 1" Now, moving the mouse will move + your player. Use "_windowed_mouse 0" to unbind. You + can bind or alias this to a key. + + Example command: + + % quake.xil +pixel_multiply 2 -winsize 400 300 + +WHAT IS "QUAKEWORLD" AND HOW DO I USE IT? +----------------------------------------- + + In a nutshell, QuakeWorld is an extension of Quake that is + much more user friendly. It allows the user to dynamically + download changes from the server, such as new maps and new + weapons while inside the Quake client. It is not directly + compatible with Quake (ie, you can't connect to a Quake server + from a QuakeWorld client) but in general it is superior to + Quake. QuakeWorld also offers much smoother play over the + Internet by using client prediction. For more information, + check out http://www.quakeworld.net/. + + In order to use it, you must make a copy of the "qw" + directory. Any new stuff that is downloaded from a QuakeWorld + server will be stored in this directory. All regular Quake + flags apply so you can use the same command line as before. + + Example command: + + % qwcl.xil +pixel_multiply 2 -winsize 400 300 + +WHERE CAN I FIND OUT ABOUT... +----------------------------- + + If you've got questions about Quake, rest assured that there + are answers out there. Try checking out these web sites: + + http://www.planetquake.com/ + http://www.stomped.com/ + http://www.quakeworld.net/ + + If all else fails use a search engine. + +Happy fragging, +the Quake/Solaris team + diff --git a/doc/readme.txt b/doc/readme.txt new file mode 100644 index 000000000..132bc4d14 --- /dev/null +++ b/doc/readme.txt @@ -0,0 +1,60 @@ + +This is the complete source code for winquake, glquake, quakeworld, and +glquakeworld. + +The projects have been tested with visual C++ 6.0, but masm is also required +to build the assembly language files. It is possible to change a #define and +build with only C code, but the software rendering versions lose almost half +its speed. The OpenGL versions will not be effected very much. The +gas2masm tool was created to allow us to use the same source for the dos, +linux, and windows versions, but I don't really recommend anyone mess +with the asm code. + +The original dos version of Quake should also be buildable from these +sources, but we didn't bother trying. + +The code is all licensed under the terms of the GPL (gnu public license). +You should read the entire license, but the gist of it is that you can do +anything you want with the code, including sell your new version. The catch +is that if you distribute new binary versions, you are required to make the +entire source code available for free to everyone. + +Our previous code releases have been under licenses that preclude +commercial exploitation, but have no clause forcing sharing of source code. +There have been some unfortunate losses to the community as a result of +mod teams keeping their sources closed (and sometimes losing them). If +you are going to publicly release modified versions of this code, you must +also make source code available. I would encourage teams to even go a step +farther and investigate using public CVS servers for development where +possible. + +The primary intent of this release is for entertainment and educational +purposes, but the GPL does allow commercial exploitation if you obey the +full license. If you want to do something commercial and you just can't bear +to have your source changes released, we could still negotiate a separate +license agreement (for $$$), but I would encourage you to just live with the +GPL. + +All of the Quake data files remain copyrighted and licensed under the +original terms, so you cannot redistribute data from the original game, but if +you do a true total conversion, you can create a standalone game based on +this code. + +I will see about having the license changed on the shareware episode of +quake to allow it to be duplicated more freely (for linux distributions, for +example), but I can't give a timeframe for it. You can still download one of +the original quake demos and use that data with the code, but there are +restrictions on the redistribution of the demo data. + +If you never actually bought a complete version of Quake, you might want +to rummage around in a local software bargain bin for one of the originals, +or perhaps find a copy of the "Quake: the offering" boxed set with both +mission packs. + +Thanks to Dave "Zoid" Kirsh and Robert Duffy for doing the grunt work of +building this release. + +John Carmack +Id Software + + diff --git a/doc/skybox.fig b/doc/skybox.fig new file mode 100644 index 000000000..738118dd6 --- /dev/null +++ b/doc/skybox.fig @@ -0,0 +1,219 @@ +#FIG 3.2 +Landscape +Center +Inches +Letter +100.00 +Single +-2 +1200 2 +6 900 4500 2100 5700 +2 2 0 1 0 7 50 0 -1 0.000 0 0 -1 0 0 5 + 1200 4800 1800 4800 1800 5400 1200 5400 1200 4800 +2 1 0 1 0 7 50 0 -1 0.000 0 0 -1 0 0 2 + 1200 4800 900 4500 +2 1 0 1 0 7 50 0 -1 0.000 0 0 -1 0 0 2 + 1800 5400 2100 5700 +2 1 0 1 0 7 50 0 -1 0.000 0 0 -1 0 0 2 + 1800 4800 2100 4500 +2 1 0 1 0 7 50 0 -1 0.000 0 0 -1 0 0 2 + 1200 5400 900 5700 +-6 +6 2700 4500 3900 5700 +2 2 0 1 0 7 50 0 -1 0.000 0 0 -1 0 0 5 + 3000 4800 3600 4800 3600 5400 3000 5400 3000 4800 +2 1 0 1 0 7 50 0 -1 0.000 0 0 -1 0 0 2 + 3000 4800 2700 4500 +2 1 0 1 0 7 50 0 -1 0.000 0 0 -1 0 0 2 + 3600 5400 3900 5700 +2 1 0 1 0 7 50 0 -1 0.000 0 0 -1 0 0 2 + 3600 4800 3900 4500 +2 1 0 1 0 7 50 0 -1 0.000 0 0 -1 0 0 2 + 3000 5400 2700 5700 +-6 +6 4500 4500 5700 5700 +2 2 0 1 0 7 50 0 -1 0.000 0 0 -1 0 0 5 + 4800 4800 5400 4800 5400 5400 4800 5400 4800 4800 +2 1 0 1 0 7 50 0 -1 0.000 0 0 -1 0 0 2 + 4800 4800 4500 4500 +2 1 0 1 0 7 50 0 -1 0.000 0 0 -1 0 0 2 + 5400 5400 5700 5700 +2 1 0 1 0 7 50 0 -1 0.000 0 0 -1 0 0 2 + 5400 4800 5700 4500 +2 1 0 1 0 7 50 0 -1 0.000 0 0 -1 0 0 2 + 4800 5400 4500 5700 +-6 +6 6300 4500 7500 5700 +2 2 0 1 0 7 50 0 -1 0.000 0 0 -1 0 0 5 + 6600 4800 7200 4800 7200 5400 6600 5400 6600 4800 +2 1 0 1 0 7 50 0 -1 0.000 0 0 -1 0 0 2 + 6600 4800 6300 4500 +2 1 0 1 0 7 50 0 -1 0.000 0 0 -1 0 0 2 + 7200 5400 7500 5700 +2 1 0 1 0 7 50 0 -1 0.000 0 0 -1 0 0 2 + 7200 4800 7500 4500 +2 1 0 1 0 7 50 0 -1 0.000 0 0 -1 0 0 2 + 6600 5400 6300 5700 +-6 +6 900 2700 2100 3900 +2 2 0 1 0 7 50 0 -1 0.000 0 0 -1 0 0 5 + 1200 3000 1800 3000 1800 3600 1200 3600 1200 3000 +2 1 0 1 0 7 50 0 -1 0.000 0 0 -1 0 0 2 + 1200 3000 900 2700 +2 1 0 1 0 7 50 0 -1 0.000 0 0 -1 0 0 2 + 1800 3600 2100 3900 +2 1 0 1 0 7 50 0 -1 0.000 0 0 -1 0 0 2 + 1800 3000 2100 2700 +2 1 0 1 0 7 50 0 -1 0.000 0 0 -1 0 0 2 + 1200 3600 900 3900 +-6 +6 2700 2700 3900 3900 +2 2 0 1 0 7 50 0 -1 0.000 0 0 -1 0 0 5 + 3000 3000 3600 3000 3600 3600 3000 3600 3000 3000 +2 1 0 1 0 7 50 0 -1 0.000 0 0 -1 0 0 2 + 3000 3000 2700 2700 +2 1 0 1 0 7 50 0 -1 0.000 0 0 -1 0 0 2 + 3600 3600 3900 3900 +2 1 0 1 0 7 50 0 -1 0.000 0 0 -1 0 0 2 + 3600 3000 3900 2700 +2 1 0 1 0 7 50 0 -1 0.000 0 0 -1 0 0 2 + 3000 3600 2700 3900 +-6 +6 4500 2700 5700 3900 +2 2 0 1 0 7 50 0 -1 0.000 0 0 -1 0 0 5 + 4800 3000 5400 3000 5400 3600 4800 3600 4800 3000 +2 1 0 1 0 7 50 0 -1 0.000 0 0 -1 0 0 2 + 4800 3000 4500 2700 +2 1 0 1 0 7 50 0 -1 0.000 0 0 -1 0 0 2 + 5400 3600 5700 3900 +2 1 0 1 0 7 50 0 -1 0.000 0 0 -1 0 0 2 + 5400 3000 5700 2700 +2 1 0 1 0 7 50 0 -1 0.000 0 0 -1 0 0 2 + 4800 3600 4500 3900 +-6 +6 6300 2700 7500 3900 +2 2 0 1 0 7 50 0 -1 0.000 0 0 -1 0 0 5 + 6600 3000 7200 3000 7200 3600 6600 3600 6600 3000 +2 1 0 1 0 7 50 0 -1 0.000 0 0 -1 0 0 2 + 6600 3000 6300 2700 +2 1 0 1 0 7 50 0 -1 0.000 0 0 -1 0 0 2 + 7200 3600 7500 3900 +2 1 0 1 0 7 50 0 -1 0.000 0 0 -1 0 0 2 + 7200 3000 7500 2700 +2 1 0 1 0 7 50 0 -1 0.000 0 0 -1 0 0 2 + 6600 3600 6300 3900 +-6 +6 8100 2700 9300 3900 +2 2 0 1 0 7 50 0 -1 0.000 0 0 -1 0 0 5 + 8400 3000 9000 3000 9000 3600 8400 3600 8400 3000 +2 1 0 1 0 7 50 0 -1 0.000 0 0 -1 0 0 2 + 8400 3000 8100 2700 +2 1 0 1 0 7 50 0 -1 0.000 0 0 -1 0 0 2 + 9000 3600 9300 3900 +2 1 0 1 0 7 50 0 -1 0.000 0 0 -1 0 0 2 + 9000 3000 9300 2700 +2 1 0 1 0 7 50 0 -1 0.000 0 0 -1 0 0 2 + 8400 3600 8100 3900 +-6 +6 900 900 2100 2100 +2 2 0 1 0 7 50 0 -1 0.000 0 0 -1 0 0 5 + 1200 1200 1800 1200 1800 1800 1200 1800 1200 1200 +2 1 0 1 0 7 50 0 -1 0.000 0 0 -1 0 0 2 + 1200 1200 900 900 +2 1 0 1 0 7 50 0 -1 0.000 0 0 -1 0 0 2 + 1800 1800 2100 2100 +2 1 0 1 0 7 50 0 -1 0.000 0 0 -1 0 0 2 + 1800 1200 2100 900 +2 1 0 1 0 7 50 0 -1 0.000 0 0 -1 0 0 2 + 1200 1800 900 2100 +-6 +6 2700 900 3900 2100 +2 2 0 1 0 7 50 0 -1 0.000 0 0 -1 0 0 5 + 3000 1200 3600 1200 3600 1800 3000 1800 3000 1200 +2 1 0 1 0 7 50 0 -1 0.000 0 0 -1 0 0 2 + 3000 1200 2700 900 +2 1 0 1 0 7 50 0 -1 0.000 0 0 -1 0 0 2 + 3600 1800 3900 2100 +2 1 0 1 0 7 50 0 -1 0.000 0 0 -1 0 0 2 + 3600 1200 3900 900 +2 1 0 1 0 7 50 0 -1 0.000 0 0 -1 0 0 2 + 3000 1800 2700 2100 +-6 +6 4500 900 5700 2100 +2 2 0 1 0 7 50 0 -1 0.000 0 0 -1 0 0 5 + 4800 1200 5400 1200 5400 1800 4800 1800 4800 1200 +2 1 0 1 0 7 50 0 -1 0.000 0 0 -1 0 0 2 + 4800 1200 4500 900 +2 1 0 1 0 7 50 0 -1 0.000 0 0 -1 0 0 2 + 5400 1800 5700 2100 +2 1 0 1 0 7 50 0 -1 0.000 0 0 -1 0 0 2 + 5400 1200 5700 900 +2 1 0 1 0 7 50 0 -1 0.000 0 0 -1 0 0 2 + 4800 1800 4500 2100 +-6 +6 6300 900 7500 2100 +2 2 0 1 0 7 50 0 -1 0.000 0 0 -1 0 0 5 + 6600 1200 7200 1200 7200 1800 6600 1800 6600 1200 +2 1 0 1 0 7 50 0 -1 0.000 0 0 -1 0 0 2 + 6600 1200 6300 900 +2 1 0 1 0 7 50 0 -1 0.000 0 0 -1 0 0 2 + 7200 1800 7500 2100 +2 1 0 1 0 7 50 0 -1 0.000 0 0 -1 0 0 2 + 7200 1200 7500 900 +2 1 0 1 0 7 50 0 -1 0.000 0 0 -1 0 0 2 + 6600 1800 6300 2100 +-6 +6 8100 900 9300 2100 +2 2 0 1 0 7 50 0 -1 0.000 0 0 -1 0 0 5 + 8400 1200 9000 1200 9000 1800 8400 1800 8400 1200 +2 1 0 1 0 7 50 0 -1 0.000 0 0 -1 0 0 2 + 8400 1200 8100 900 +2 1 0 1 0 7 50 0 -1 0.000 0 0 -1 0 0 2 + 9000 1800 9300 2100 +2 1 0 1 0 7 50 0 -1 0.000 0 0 -1 0 0 2 + 9000 1200 9300 900 +2 1 0 1 0 7 50 0 -1 0.000 0 0 -1 0 0 2 + 8400 1800 8100 2100 +-6 +2 2 0 1 0 7 50 0 -1 0.000 0 0 -1 0 0 5 + 1350 1425 1650 1425 1650 1650 1350 1650 1350 1425 +2 2 0 1 0 7 50 0 -1 0.000 0 0 -1 0 0 5 + 3150 1125 3450 1125 3450 1275 3150 1275 3150 1125 +2 2 0 1 0 7 50 0 -1 0.000 0 0 -1 0 0 5 + 4950 1125 5250 1125 5250 1950 4950 1950 4950 1125 +2 3 0 1 0 7 50 0 -1 0.000 0 0 -1 0 0 5 + 6975 1050 6825 1050 6525 1500 6525 1725 6975 1050 +2 2 0 1 0 7 50 0 -1 0.000 0 0 -1 0 0 5 + 8325 2850 9225 2850 9225 3150 8325 3150 8325 2850 +2 2 0 1 0 7 50 0 -1 0.000 0 0 -1 0 0 5 + 6450 4500 7350 4500 7350 5700 6450 5700 6450 4500 +2 3 0 1 0 7 50 0 -1 0.000 0 0 -1 0 0 6 + 1650 5625 1050 4875 1050 4500 1275 4500 2025 5400 1650 5625 +2 3 0 1 0 7 50 0 -1 0.000 0 0 -1 0 0 5 + 3300 5625 2775 4875 2850 4500 3975 4725 3300 5625 +2 3 0 1 0 7 50 0 -1 0.000 0 0 -1 0 0 5 + 5400 5700 4650 4950 4800 4500 5775 4800 5400 5700 +2 3 0 1 0 7 50 0 -1 0.000 0 0 -1 0 0 5 + 5700 3450 4650 3075 4650 2775 4875 2775 5700 3450 +2 3 0 1 0 7 50 0 -1 0.000 0 0 -1 0 0 6 + 6825 3750 6450 3075 6450 2700 6750 2700 7350 3375 6825 3750 +2 3 0 1 0 7 50 0 -1 0.000 0 0 -1 0 0 5 + 1950 3300 1500 2850 1050 3375 1500 3750 1950 3300 +2 3 0 1 0 7 50 0 -1 0.000 0 0 -1 0 0 4 + 8850 1950 8775 975 8250 1575 8850 1950 +2 2 0 1 0 7 50 0 -1 0.000 0 0 -1 0 0 5 + 2850 2775 3225 2775 3225 3225 2850 3225 2850 2775 +4 0 0 50 0 0 16 0.0000 4 120 105 900 825 a\001 +4 0 0 50 0 0 16 0.0000 4 165 120 2700 825 b\001 +4 0 0 50 0 0 16 0.0000 4 120 105 4500 825 c\001 +4 0 0 50 0 0 16 0.0000 4 165 120 6300 825 d\001 +4 0 0 50 0 0 16 0.0000 4 120 105 8100 825 e\001 +4 0 0 50 0 0 16 0.0000 4 165 90 900 2625 f\001 +4 0 0 50 0 0 16 0.0000 4 180 120 2700 2625 g\001 +4 0 0 50 0 0 16 0.0000 4 165 120 4500 2625 h\001 +4 0 0 50 0 0 16 0.0000 4 165 75 6300 2625 i\001 +4 0 0 50 0 0 16 0.0000 4 225 60 8100 2625 j\001 +4 0 0 50 0 0 16 0.0000 4 165 120 900 4425 k\001 +4 0 0 50 0 0 16 0.0000 4 165 75 2700 4425 l\001 +4 0 0 50 0 0 16 0.0000 4 120 195 4500 4425 m\001 +4 0 0 50 0 0 16 0.0000 4 120 120 6300 4425 n\001 diff --git a/doc/template.h b/doc/template.h new file mode 100644 index 000000000..f55ab305a --- /dev/null +++ b/doc/template.h @@ -0,0 +1,31 @@ +/* + #FILENAME# + + #DESCRIPTION# + + Copyright (C) 2000 #AUTHOR# + + Author: #AUTHOR# + Date: #DATE# + + This program is free software; you can redistribute it and/or + modify it under the terms of the GNU General Public License + as published by the Free Software Foundation; either version 2 + of the License, or (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. + + See the GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to: + + Free Software Foundation, Inc. + 59 Temple Place - Suite 330 + Boston, MA 02111-1307, USA + + $Id$ +*/ + diff --git a/doc/texinfo/.gitignore b/doc/texinfo/.gitignore new file mode 100644 index 000000000..6b29f7fc6 --- /dev/null +++ b/doc/texinfo/.gitignore @@ -0,0 +1,3 @@ +Makefile.in +Makefile +quakeforge.info diff --git a/doc/texinfo/Makefile.am b/doc/texinfo/Makefile.am new file mode 100644 index 000000000..ea498dee2 --- /dev/null +++ b/doc/texinfo/Makefile.am @@ -0,0 +1,4 @@ +## Process this file with automake to produce Makefile.in +info_TEXINFOS = quakeforge.texinfo + +EXTRA_DIST = gpl.texinfo diff --git a/doc/texinfo/gpl.texinfo b/doc/texinfo/gpl.texinfo new file mode 100644 index 000000000..ce7d62ec8 --- /dev/null +++ b/doc/texinfo/gpl.texinfo @@ -0,0 +1,398 @@ +@c This GPL is meant to be included from other files. +@c To format a standalone GPL, use license.texi. + +@center Version 2, June 1991 + +@display +Copyright @copyright{} 1989, 1991 Free Software Foundation, Inc. 675 +Mass Ave, Boston, MA 02111-1307, USA + +Everyone is permitted to copy and distribute verbatim copies +of this license document, but changing it is not allowed. +@end display + +@unnumberedsec Preamble + + The licenses for most software are designed to take away your +freedom to share and change it. By contrast, the GNU General Public +License is intended to guarantee your freedom to share and change free +software---to make sure the software is free for all its users. This +General Public License applies to most of the Free Software +Foundation's software and to any other program whose authors commit to +using it. (Some other Free Software Foundation software is covered by +the GNU Library General Public License instead.) You can apply it to +your programs, too. + + When we speak of free software, we are referring to freedom, not +price. Our General Public Licenses are designed to make sure that you +have the freedom to distribute copies of free software (and charge for +this service if you wish), that you receive source code or can get it +if you want it, that you can change the software or use pieces of it +in new free programs; and that you know you can do these things. + + To protect your rights, we need to make restrictions that forbid +anyone to deny you these rights or to ask you to surrender the rights. +These restrictions translate to certain responsibilities for you if you +distribute copies of the software, or if you modify it. + + For example, if you distribute copies of such a program, whether +gratis or for a fee, you must give the recipients all the rights that +you have. You must make sure that they, too, receive or can get the +source code. And you must show them these terms so they know their +rights. + + We protect your rights with two steps: (1) copyright the software, and +(2) offer you this license which gives you legal permission to copy, +distribute and/or modify the software. + + Also, for each author's protection and ours, we want to make certain +that everyone understands that there is no warranty for this free +software. If the software is modified by someone else and passed on, we +want its recipients to know that what they have is not the original, so +that any problems introduced by others will not reflect on the original +authors' reputations. + + Finally, any free program is threatened constantly by software +patents. We wish to avoid the danger that redistributors of a free +program will individually obtain patent licenses, in effect making the +program proprietary. To prevent this, we have made it clear that any +patent must be licensed for everyone's free use or not licensed at all. + + The precise terms and conditions for copying, distribution and +modification follow. + +@iftex +@unnumberedsec TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION +@end iftex +@ifinfo +@center TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION +@end ifinfo + +@enumerate 0 +@item +This License applies to any program or other work which contains +a notice placed by the copyright holder saying it may be distributed +under the terms of this General Public License. The ``Program'', below, +refers to any such program or work, and a ``work based on the Program'' +means either the Program or any derivative work under copyright law: +that is to say, a work containing the Program or a portion of it, +either verbatim or with modifications and/or translated into another +language. (Hereinafter, translation is included without limitation in +the term ``modification''.) Each licensee is addressed as ``you''. + +Activities other than copying, distribution and modification are not +covered by this License; they are outside its scope. The act of +running the Program is not restricted, and the output from the Program +is covered only if its contents constitute a work based on the +Program (independent of having been made by running the Program). +Whether that is true depends on what the Program does. + +@item +You may copy and distribute verbatim copies of the Program's +source code as you receive it, in any medium, provided that you +conspicuously and appropriately publish on each copy an appropriate +copyright notice and disclaimer of warranty; keep intact all the +notices that refer to this License and to the absence of any warranty; +and give any other recipients of the Program a copy of this License +along with the Program. + +You may charge a fee for the physical act of transferring a copy, and +you may at your option offer warranty protection in exchange for a fee. + +@item +You may modify your copy or copies of the Program or any portion +of it, thus forming a work based on the Program, and copy and +distribute such modifications or work under the terms of Section 1 +above, provided that you also meet all of these conditions: + +@enumerate a +@item +You must cause the modified files to carry prominent notices +stating that you changed the files and the date of any change. + +@item +You must cause any work that you distribute or publish, that in +whole or in part contains or is derived from the Program or any +part thereof, to be licensed as a whole at no charge to all third +parties under the terms of this License. + +@item +If the modified program normally reads commands interactively +when run, you must cause it, when started running for such +interactive use in the most ordinary way, to print or display an +announcement including an appropriate copyright notice and a +notice that there is no warranty (or else, saying that you provide +a warranty) and that users may redistribute the program under +these conditions, and telling the user how to view a copy of this +License. (Exception: if the Program itself is interactive but +does not normally print such an announcement, your work based on +the Program is not required to print an announcement.) +@end enumerate + +These requirements apply to the modified work as a whole. If +identifiable sections of that work are not derived from the Program, +and can be reasonably considered independent and separate works in +themselves, then this License, and its terms, do not apply to those +sections when you distribute them as separate works. But when you +distribute the same sections as part of a whole which is a work based +on the Program, the distribution of the whole must be on the terms of +this License, whose permissions for other licensees extend to the +entire whole, and thus to each and every part regardless of who wrote it. + +Thus, it is not the intent of this section to claim rights or contest +your rights to work written entirely by you; rather, the intent is to +exercise the right to control the distribution of derivative or +collective works based on the Program. + +In addition, mere aggregation of another work not based on the Program +with the Program (or with a work based on the Program) on a volume of +a storage or distribution medium does not bring the other work under +the scope of this License. + +@item +You may copy and distribute the Program (or a work based on it, +under Section 2) in object code or executable form under the terms of +Sections 1 and 2 above provided that you also do one of the following: + +@enumerate a +@item +Accompany it with the complete corresponding machine-readable +source code, which must be distributed under the terms of Sections +1 and 2 above on a medium customarily used for software interchange; or, + +@item +Accompany it with a written offer, valid for at least three +years, to give any third party, for a charge no more than your +cost of physically performing source distribution, a complete +machine-readable copy of the corresponding source code, to be +distributed under the terms of Sections 1 and 2 above on a medium +customarily used for software interchange; or, + +@item +Accompany it with the information you received as to the offer +to distribute corresponding source code. (This alternative is +allowed only for noncommercial distribution and only if you +received the program in object code or executable form with such +an offer, in accord with Subsection b above.) +@end enumerate + +The source code for a work means the preferred form of the work for +making modifications to it. For an executable work, complete source +code means all the source code for all modules it contains, plus any +associated interface definition files, plus the scripts used to +control compilation and installation of the executable. However, as a +special exception, the source code distributed need not include +anything that is normally distributed (in either source or binary +form) with the major components (compiler, kernel, and so on) of the +operating system on which the executable runs, unless that component +itself accompanies the executable. + +If distribution of executable or object code is made by offering +access to copy from a designated place, then offering equivalent +access to copy the source code from the same place counts as +distribution of the source code, even though third parties are not +compelled to copy the source along with the object code. + +@item +You may not copy, modify, sublicense, or distribute the Program +except as expressly provided under this License. Any attempt +otherwise to copy, modify, sublicense or distribute the Program is +void, and will automatically terminate your rights under this License. +However, parties who have received copies, or rights, from you under +this License will not have their licenses terminated so long as such +parties remain in full compliance. + +@item +You are not required to accept this License, since you have not +signed it. However, nothing else grants you permission to modify or +distribute the Program or its derivative works. These actions are +prohibited by law if you do not accept this License. Therefore, by +modifying or distributing the Program (or any work based on the +Program), you indicate your acceptance of this License to do so, and +all its terms and conditions for copying, distributing or modifying +the Program or works based on it. + +@item +Each time you redistribute the Program (or any work based on the +Program), the recipient automatically receives a license from the +original licensor to copy, distribute or modify the Program subject to +these terms and conditions. You may not impose any further +restrictions on the recipients' exercise of the rights granted herein. +You are not responsible for enforcing compliance by third parties to +this License. + +@item +If, as a consequence of a court judgment or allegation of patent +infringement or for any other reason (not limited to patent issues), +conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot +distribute so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you +may not distribute the Program at all. For example, if a patent +license would not permit royalty-free redistribution of the Program by +all those who receive copies directly or indirectly through you, then +the only way you could satisfy both it and this License would be to +refrain entirely from distribution of the Program. + +If any portion of this section is held invalid or unenforceable under +any particular circumstance, the balance of the section is intended to +apply and the section as a whole is intended to apply in other +circumstances. + +It is not the purpose of this section to induce you to infringe any +patents or other property right claims or to contest validity of any +such claims; this section has the sole purpose of protecting the +integrity of the free software distribution system, which is +implemented by public license practices. Many people have made +generous contributions to the wide range of software distributed +through that system in reliance on consistent application of that +system; it is up to the author/donor to decide if he or she is willing +to distribute software through any other system and a licensee cannot +impose that choice. + +This section is intended to make thoroughly clear what is believed to +be a consequence of the rest of this License. + +@item +If the distribution and/or use of the Program is restricted in +certain countries either by patents or by copyrighted interfaces, the +original copyright holder who places the Program under this License +may add an explicit geographical distribution limitation excluding +those countries, so that distribution is permitted only in or among +countries not thus excluded. In such case, this License incorporates +the limitation as if written in the body of this License. + +@item +The Free Software Foundation may publish revised and/or new versions +of the General Public License from time to time. Such new versions will +be similar in spirit to the present version, but may differ in detail to +address new problems or concerns. + +Each version is given a distinguishing version number. If the Program +specifies a version number of this License which applies to it and ``any +later version'', you have the option of following the terms and conditions +either of that version or of any later version published by the Free +Software Foundation. If the Program does not specify a version number of +this License, you may choose any version ever published by the Free Software +Foundation. + +@item +If you wish to incorporate parts of the Program into other free +programs whose distribution conditions are different, write to the author +to ask for permission. For software which is copyrighted by the Free +Software Foundation, write to the Free Software Foundation; we sometimes +make exceptions for this. Our decision will be guided by the two goals +of preserving the free status of all derivatives of our free software and +of promoting the sharing and reuse of software generally. + +@iftex +@vskip -@baselineskip +@vskip -@baselineskip +@heading NO WARRANTY +@end iftex +@ifinfo +@center NO WARRANTY +@end ifinfo + +@item +BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY +FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN +OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES +PROVIDE THE PROGRAM ``AS IS'' WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED +OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF +MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS +TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE +PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, +REPAIR OR CORRECTION. + +@item +IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING +WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR +REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, +INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING +OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED +TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY +YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER +PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE +POSSIBILITY OF SUCH DAMAGES. +@end enumerate + +@iftex +@heading END OF TERMS AND CONDITIONS +@end iftex +@ifinfo +@center END OF TERMS AND CONDITIONS +@end ifinfo + +@page +@unnumberedsec How to Apply These Terms to Your New Programs + + If you develop a new program, and you want it to be of the greatest +possible use to the public, the best way to achieve this is to make it +free software which everyone can redistribute and change under these terms. + + To do so, attach the following notices to the program. It is safest +to attach them to the start of each source file to most effectively +convey the exclusion of warranty; and each file should have at least +the ``copyright'' line and a pointer to where the full notice is found. + +@smallexample +@var{one line to give the program's name and an idea of what it does.} +Copyright (C) 19@var{yy} @var{name of author} + +This program is free software; you can redistribute it and/or +modify it under the terms of the GNU General Public License +as published by the Free Software Foundation; either version 2 +of the License, or (at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program; if not, write to the Free Software +Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. +@end smallexample + +Also add information on how to contact you by electronic and paper mail. + +If the program is interactive, make it output a short notice like this +when it starts in an interactive mode: + +@smallexample +Gnomovision version 69, Copyright (C) 19@var{yy} @var{name of author} +Gnomovision comes with ABSOLUTELY NO WARRANTY; for details +type `show w'. This is free software, and you are welcome +to redistribute it under certain conditions; type `show c' +for details. +@end smallexample + +The hypothetical commands @samp{show w} and @samp{show c} should show +the appropriate parts of the General Public License. Of course, the +commands you use may be called something other than @samp{show w} and +@samp{show c}; they could even be mouse-clicks or menu items---whatever +suits your program. + +You should also get your employer (if you work as a programmer) or your +school, if any, to sign a ``copyright disclaimer'' for the program, if +necessary. Here is a sample; alter the names: + +@example +@group +Yoyodyne, Inc., hereby disclaims all copyright +interest in the program `Gnomovision' +(which makes passes at compilers) written +by James Hacker. + +@var{signature of Ty Coon}, 1 April 1989 +Ty Coon, President of Vice +@end group +@end example + +This General Public License does not permit incorporating your program into +proprietary programs. If your program is a subroutine library, you may +consider it more useful to permit linking proprietary applications with the +library. If this is what you want to do, use the GNU Library General +Public License instead of this License. diff --git a/doc/texinfo/quakeforge.texinfo b/doc/texinfo/quakeforge.texinfo new file mode 100644 index 000000000..ac2bbc8b5 --- /dev/null +++ b/doc/texinfo/quakeforge.texinfo @@ -0,0 +1,195 @@ +\input texinfo @c -*-texinfo-*- +@c %**start of header +@setfilename quakeforge.info +@settitle 3D game engine based on id Software's Quake engine +@finalout +@setchapternewpage odd +@c %**end of header + +@set VERSION 0.1.0 + +@ifinfo +This file documents the @code{quakeforge} command which 3D game engine based on id Software's Quake engine + +Copyright (C) 2000 The QuakeForge Project + +Permission is granted to make and distribute verbatim copies of +this manual provided the copyright notice and this permission notice +are preserved on all copies. + +@ignore +Permission is granted to process this file through TeX and print the +results, provided the printed document carries copying permission +notice identical to this one except for the removal of this paragraph +(this paragraph not being relevant to the printed manual). + +@end ignore +Permission is granted to copy and distribute modified versions of this +manual under the conditions for verbatim copying, provided that the entire +resulting derived work is distributed under the terms of a permission +notice identical to this one. + +Permission is granted to copy and distribute translations of this manual +into another language, under the above conditions for modified versions, +except that this permission notice may be stated in a translation approved +by the Foundation. +@end ifinfo + +@titlepage +@title quakeforge +@subtitle 3D game engine based on id Software's Quake engine +@subtitle for quakeforge Version @value{VERSION} +@author by The QuakeForge Project + +@page +@vskip 0pt plus 1filll +Copyright @copyright{} 2000 The QuakeForge Project + +Permission is granted to make and distribute verbatim copies of +this manual provided the copyright notice and this permission notice +are preserved on all copies. + +Permission is granted to copy and distribute modified versions of this +manual under the conditions for verbatim copying, provided that the entire +resulting derived work is distributed under the terms of a permission +notice identical to this one. + +Permission is granted to copy and distribute translations of this manual +into another language, under the above conditions for modified versions, +except that this permission notice may be stated in a translation approved +by the Foundation. +@end titlepage + +@c All the nodes can be updated using the EMACS command +@c texinfo-every-node-update, which is normally bound to C-c C-u C-e. +@node Top, Instructions, (dir), (dir) + +@ifinfo +This file documents the @code{quakeforge} command to 3D game engine based on id Software's Quake engine. +@end ifinfo + +@c All the menus can be updated with the EMACS command +@c texinfo-all-menus-update, which is normally bound to C-c C-u C-a. +@menu +* Instructions:: How to read this manual. +* Copying:: How you can copy and share @code{quakeforge}. +* Overview:: Preliminary information. +* Sample:: Sample output from @code{quakeforge}. +* Invoking quakeforge:: How to run @code{quakeforge}. +* Problems:: Reporting bugs. +* Concept Index:: Index of concepts. +@end menu + +@node Instructions, Copying, Top, Top +@chapter How to Read This Manual + +@cindex reading +@cindex manual, how to read +@cindex how to read +To read this manual, begin at the beginning, reading from left to right +and top to bottom, until you get to the end. Then stop. You may pause +for a beer anywhere in the middle as well, if you wish. (Please note, +however, that The King strongly advises against heavy use of +prescription pharmaceuticals, based on his extensive personal and +professional experience.) + +@node Copying, Overview, Instructions, Top +@include gpl.texinfo + +@node Overview, Sample, Copying, Top +@chapter Overview +@cindex greetings +@cindex overview + +The GNU @code{quakeforge} program produces a familiar, friendly greeting. +It allows nonprogrammers to use a classic computer science tool which +would otherwise be unavailable to them. Because it is protected by the +GNU General Public License, users are free to share and change it. + +GNU @code{quakeforge} was written by The QuakeForge Project. + +@node Sample, Invoking quakeforge, Overview, Top +@chapter Sample Output +@cindex sample + +Here are some realistic examples of running @code{quakeforge}. + +This is the output of the command @samp{quakeforge}: + +@example +hello, world! +@end example + +This is the output of the command @samp{quakeforge --help}: + +@example +3D game engine based on id Software's Quake engine +Usage: quakeforge [options] + -h, --help Print a summary of the options + -v, --version Print the version number +@end example + +@node Invoking quakeforge, Problems, Sample, Top +@chapter Invoking @code{quakeforge} +@cindex invoking +@cindex version +@cindex options +@cindex usage +@cindex help +@cindex getting help + +The format for running the @code{quakeforge} program is: + +@example +quakeforge @var{option} @dots{} +@end example + +@code{quakeforge} supports the following options: + +@table @samp +@item --interactive +@itemx -i +Prompt for confirmation. + +@item --quiet +@item --silent +@itemx -q +Inhibit usual output. + +@item --verbose +Print more information. + +@item --help +@itemx -h +Print an informative help message describing the options and then exit. + +@item --version +@itemx -v +Print the version number of @code{quakeforge} on the standard error output +and then exit. +@end table + +@node Problems, Concept Index, Invoking quakeforge, Top +@chapter Reporting Bugs +@cindex bugs +@cindex problems + +If you find a bug in @code{quakeforge}, please send electronic mail to +@w{@samp{quake-devel@@lists.sourceforge.net}}. Include the version number, which you can find by +running @w{@samp{quakeforge --version}}. Also include in your message the +output that the program produced and the output you expected.@refill + +If you have other questions, comments or suggestions about +@code{quakeforge}, contact the author via electronic mail to +@w{@samp{quake-devel@@lists.sourceforge.net}}. The author will try to help you out, although he +may not have time to fix your problems. + +@node Concept Index, , Problems, Top +@unnumbered Concept Index + +@cindex tail recursion +@printindex cp + +@shortcontents +@contents +@bye diff --git a/doc/timestamps.txt b/doc/timestamps.txt new file mode 100644 index 000000000..328823e1b --- /dev/null +++ b/doc/timestamps.txt @@ -0,0 +1,77 @@ +To enable time-stamped messages in the server, set the Cvar sv_timestamps to a +value other than 0. When enabled, the string Cvar sv_timefmt is used to format +the date and time. + +The following special codes are interpreted inside sv_timefmt strings. + + %a The abbreviated weekday name according to the cur­ + rent locale. + + %A The full weekday name according to the current + locale. + + %b The abbreviated month name according to the current + locale. + + %B The full month name according to the current + locale. + + %c The preferred date and time representation for the + current locale. + + %d The day of the month as a decimal number (range 01 + to 31). + + %h Equivalent to %b. (SU) + + %H The hour as a decimal number using a 24-hour clock + (range 00 to 23). + + %I The hour as a decimal number using a 12-hour clock + (range 01 to 12). + + %j The day of the year as a decimal number (range 001 + to 366). + + %k The hour (24-hour clock) as a decimal number (range + 0 to 23); single digits are preceded by a blank. + (See also %H.) (TZ) + + %m The month as a decimal number (range 01 to 12). + + %M The minute as a decimal number (range 00 to 59). + + %p Either `AM' or `PM' according to the given time + value, or the corresponding strings for the current + locale. Noon is treated as `pm' and midnight as + `am'. + + %S The second as a decimal number (range 00 to 61). + + %U The week number of the current year as a decimal + number, range 00 to 53, starting with the first + Sunday as the first day of week 01. See also %V and + %W. + + %w The day of the week as a decimal, range 0 to 6, + Sunday being 0. See also %u. + + %W The week number of the current year as a decimal + number, range 00 to 53, starting with the first + Monday as the first day of week 01. + + %x The preferred date representation for the current + locale without the time. + + %X The preferred time representation for the current + locale without the date. + + %y The year as a decimal number without a century + (range 00 to 99). + + %Y The year as a decimal number including the century. + + %Z The time zone name or abbreviation. + + %% A literal `%' character. + diff --git a/doc/wqreadme.txt b/doc/wqreadme.txt new file mode 100644 index 000000000..9ba2f1b67 --- /dev/null +++ b/doc/wqreadme.txt @@ -0,0 +1,1119 @@ +-------------------------- +| wqreadme.txt | +| WinQuake documentation | +| 3/21/97 | +-------------------------- + +WinQuake (WQ) is a native Win32 version of Quake, 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 WQ 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. If your problem +doesn't appear on the list, please fill out and submit the WQ bug +report at http://www.idsoftware.com/contact/. + +The material accompanying Quake is the reference for all +non-Windows-related matters concerning WinQuake; in terms of gameplay, +WQ is the same as Quake. This file contains Windows-related +information only. + +The rest of this document is organized as follows: + +Installing and running WinQuake +Common problems and workarounds +A bit about how WQ video works +Video command-line switches +A bit about how WQ sound works +Sound command-line switches +Notes on networking +Notes on the mouse +Log of changes to documentation +Special thanks + + +----------------------------------- +| Installing and running WinQuake | +----------------------------------- + +In order to run WinQuake, you must first have Quake installed. +Assuming Quake is installed in the standard directory, c:\quake, +unzip the WinQuake zip file into c:\quake. The following files +from the zip file must be present in order for WQ to run: + +winquake.exe +pmpro16.dll +pmpro32.dll +wdir16.dll +wdir32.dll +wdirnop.com +wdirnop.pif + +Then you can run WinQuake by making c:\quake the current directory, +typing "winquake" and pressing the Enter key. Alternatively, you can +use wq.bat to run WinQuake. The wq batch file requires one parameter +describing how to configure WQ for performance; just type "wq" to get +a list of the six options. The first of the six options is + +wq fast + +This is the same as typing "winquake"; this runs WinQuake 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 WinQuake or even your system to crash if there are bugs or +incompatibilities in your video or sound drivers. Alternatively, you +can use + +wq safe + +to run WinQuake 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 + +wq verysafe + +to run WinQuake 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 + +wq fastvid + +which has maximum video performance, but greater sound latency (delay +until the sound is heard), and + +wq 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 "wq fastvid" is actually faster, by as much as 5-10%, +than "wq fast"; however, it may not feel faster, because the sound +will lag.) + +Finally, you can use + +wq max + +which is the same as wq 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 WQ to run, but WQ 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 WQ 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 WQ to run, but WQ 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 WQ. An easy way to get reliable VESA 2.0 +support is by obtaining SciTech Display Doctor; see below for +further information. WQ can also use VBE/AF 1.0 and greater modes; +again, SciTech Display Doctor is the commonest way to get VBE/AF +support. + +Note that winquake -dedicated completely replaces the old winded +dedicated Win32 server, which is now obsolete. + +WinQuake 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"; you can disable the +joystick with "joystick 0" at any time. The joystick setting +remains in effect for subsequent WinQuake 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 +WinQuake at all, you can start WinQuake -nojoy to complete disable the +joystick for that session. + + +----------------------------------- +| Common problems and workarounds | +----------------------------------- + +WQ crashes or won't run +----------------------- + +If WQ refuses to run or crashes on your system, try running +it using "wq safe" or "wq verysafe". Or you can use command-line +switches: + +winquake -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: + +winquake -dibonly -nosound + +which forces WQ 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 WQ 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 WQ operation? +---------------------------------------------------- +Check out WQ'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, WQ 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 WQ video +works" section, below. + + +Gee, I wish I could use a mouse to play WQ 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 WQ. + + +Serial/modem menu is missing +---------------------------- +WQ currently does not support direct connect serial or modem play. + + +DOS Quake reports unknown variables on startup after running WQ +--------------------------------------------------------------- +WQ uses some console variables that do not exist in DOS Quake, and +some of these are automatically archived in config.cfg when you exit +WQ. 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 WQ. Apart from losing the +settings, this is harmless; ignore it. + + +Problems running WQ on NT 3.51 +------------------------------ +NT 3.51 isn't supported by WQ. + + +WQ 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. + + +WQ 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 WQ 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 WQ 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 WQ 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 WQ to run 5-10% faster on some systems. That's about all you +can do to speed up fullscreen WQ 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, WQ 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 WQ 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. WQ 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, WQ's sound should automatically be snappier. + + +Sound breaks up or gets choppy, especially in menus +--------------------------------------------------- +This is generally a sign that WQ'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 WQ 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 WQ 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 WQ 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 WinQuake is running +------------------------------------------------------- +The sound hardware is currently not a fully shareable resource on +Win32. Consequently, while WQ 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 WQ is using DirectSound), +apps that use wave sound (most non-game apps) will not be able to play +sound while WQ is running, even if WQ is minimized or not the active +app, although other DirectSound apps will be able to play sound when +WQ is not the active app. If WQ 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 WQ is running, +period. + + +WQ doesn't have quite the right colors when it’s not the active app +------------------------------------------------------------------- +We're working on fixing this. But WQ puts everything back again as +soon as it is reactivated, and anyway, when it’s not active, you can’t +actually do anything in WQ, so it doesn’t really matter anyway, right? + + +Desktop is weird colors when WQ runs windowed +--------------------------------------------- +WQ 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 WQ button in task bar to close doesn’t work as expected +---------------------------------------------------------------------- +In some modes, right-clicking on the WQ 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 WQ fullscreen +------------------------------------------------------ +It does work windowed, but when WinQuake is fullscreen, it completely +owns the screen and doesn't share it with anyone, even the +screensaver. If you use Alt-Tab to minimize WQ, the screensaver will +then be enabled, so Alt-Tab away from WQ if you're leaving your +computer alone for a while and want the screensaver to be able to kick +in. + + +WQ 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 WQ fullscreen. + + +Can't minimize window while mouse active +---------------------------------------- +When running in a window with the mouse active as a WQ 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 WQ. To minimize, you +can disable the mouse for WQ and use it to minimize the window. Or +on Win95 you can Alt-Tab away from WQ, then use the mouse to +minimize (this doesn't work on NT, where clicking on the window +controls just reactivates WQ). 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 WQ), if you Alt-Tab away from WQ, then use the mouse +to click on the WQ system menu control, or the minimize, maximize, or +close controls, the controls are ignored and WQ just reactivates. + + +Mouse sometimes vanishes in system menu on Win95 +------------------------------------------------ +On Win95, if WQ is running in a window with the mouse enabled (so you +can use the mouse to play WQ), 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. + + +WQ behaves oddly if Scandisk starts defragmenting +------------------------------------------------- +If WQ is running fullscreen on Win95 when Scandisk starts an automatic +defragging, WQ 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 WQ 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 WQ menus, hangs have +been reported. + + +Joystick worked fine with earlier versions of WinQuake but not now +------------------------------------------------------------------ +The joystick was enabled by default in earlier versions of +WinQuake, 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 (WinQuake +remembers this setting, so this only needs to be done once). + + +WQ runs very slowly when it has the focus under NT +-------------------------------------------------- +In one case, WQ 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 WQ 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 +----------------------------------------- +WQ 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 WinQuake +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 WinQuake in a low-res +mode, sometimes when you exit WinQuake 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 WinQuake. + + +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 WQ goes fullscreen first +--------------------------------------------------------- +For internal reasons, WQ 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 WQ 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 WinQuake +---------------------------------------------------- +If you right-click on minimized WinQuake on the task bar, the +Close selection in the right-click menu doesn't work; you have +to restore WQ 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 WQ +------------------------------------------ +We're trying to fix this, but it's not harmful, just a mite ugly. + + +QBENCH doesn't work with WinQuake +--------------------------------- +We've had a report that QBENCH doesn't work with WinQuake, but +haven't had a chance to look into it yet. + + +MWAVE sound loses focus +----------------------- +We've had a report that on a ThinkPad with MWAVE sound, WQ loses +sound focus (and thus sound) every few seconds. + + +Desktop doesn't reset to proper resolution on WQ exit +----------------------------------------------------- +We've had a report that on exiting WQ, 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 +------------------------------- +WQ is hardwired for QWERTY. + + +Cursor messed up after running WQ +--------------------------------- +This is a Windows driver bug; the driver isn't restoring the +cursor properly on return from fullscreen WQ to the desktop. +Try newer drivers. + + +Dedicated server runs very slowly while typing at console +--------------------------------------------------------- +When you type at a dedicated server's console, the game runs +very slowly for everyone who's connected. + + +Ctrl-Alt-Del on NT sometimes doesn't allow return to WQ +------------------------------------------------------- +This happens on some machines while running WQ 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 WQ input +------------------------------------------------------ +If you Alt-Tab fast lots of times on Win95 with WQ running +fullscreen, sometimes you end up in fullscreen WQ, 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 WQ video works | +---------------------------------- + +WQ 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. + +WQ 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. + +WQ 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 WQ, 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 WQ 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 WQ (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 WQ 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, WQ 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, WQ 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 WQ makes available on +your machine given the command-line switches you've used. Each mode +is followed by the name of the internal WQ driver that supports it, so +you can tell which modes are DirectDraw, VESA, and so on, as follows: + +WINDOWED: WQ 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 WQ does not take advantage of + VBE/AF acceleration; so far as WQ 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 WQ 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 WinQuake window if and only if +WinQuake is running in a windowed mode. You can bind a key to +the commands "vid_windowed; wait; vid_minimize" to minimize WQ +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 WinQuake 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 WinQuake in a window, the window is +placed at the same location it was in the last time WinQuake 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: WQ 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 WQ has. + +-nowindirect: WQ 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, WQ 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 WQ is crashing +because of a buggy VESA driver. + +-nodirectdraw: WQ will not try to use DirectDraw modes. This can be +useful if WQ is crashing because of a buggy DirectDraw driver. + +-novbeaf: WQ will not try to use VBE/AF 1.0 or later modes. + +-startwindowed: WQ will come up in a windowed mode, without going +fullscreen even during initialization. + +-noforcevga: normally, WQ 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 WQ sound works | +---------------------------------- + +WQ 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 WQ 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 WQ 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: WQ 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 WQ 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 WinQuake 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, WinQuake 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, WinQuake 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 WQ 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). + + + +----------------------------------- +| Log of changes to documentation | +----------------------------------- + +*** WinQuake 0.994 *** + +Fixed bug where in some cases involving IPX, whenever a new person +entered the game, a current player got dumped. + +Added DirectInput mouse support, and the -dinput command-line to +enable it. + +Added -notriplebuf to disable triple buffering to work around +possible problems with some modes on some DirectDraw drivers. + +Added remembering last window position, and restoring that, rather +than centering the window, whenever WinQuake runs in a window. +Can be reset with the -resetwinpos command-line switch. + +Added the vid_minimize command, which minimizes WinQuake if and only +if the current mode is windowed. + +Made it so WinQuake no longer gets suspended when Alt-Tab is used to +switch away from a fullscreen session. The means you can Alt-Tab +away from fullscreen WinQuake without losing a connection to a +Quake server. + +Added vid_nopageflip console variable to turn off page flipping, and +documented page flipping problems this can be used to work around. + +Documented that Del-Ctrl-Alt (in that order) causes WinQuake to +fault on Win95. + +Fixed the winsock TCP/IP driver so it will not cause a dial-up +internet connection to automatically start up when Quake is started. +If you start Quake with the internet connection already active, there +will be no difference. 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 now. 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 now force WinQuake to bind to a +specific IP adress. There is a new command line option "-ip" that +takes an IP address as its parameter. + +Added vid_fullscreen_mode and ability to select that mode by +clicking on the maximize button. Added two commands: +vid_fullscreen to switch to vid_fullscreen_mode, and +vid_windowed to switch to vid_windowed mode. + +Changed joystick default to disabled; now it only works if the +joystick cvar is set to 1; however, this setting now remains in +effect permanently. Added joystick documentation below. + +Documented dprint only works if developer set to 1. + +Documented scrunching of MS-DOS windows on Alt-Tab. + +Documented that NT versions earlier to 4.0 are not supported. + +Added DirectInput support for devices such as First Person +Gaming's Assassin controller. All buttons should now +be configurable in WinQuake. + +Fixed bug where when low-res fullscreen DIB modes selected from +the menu sometimes ran very slowly or produced garbled displays. + +Fixed bug where 1.06 and earlier save files couldn't be loaded +by WinQuake. + +Removed "Net play pauses every few seconds" bug; it was determined +not to be a bug, just an artifact of network play. + +Noted that even when BIOSes do have VESA 2.0 built-in, it's often +so buggy that WinQuake crashes in faster configurations, and that +SciTech Display Doctor is the easiest way to get reliable VESA +support. + +Added note on Alt-Tab only working if Tab released first. + + +*** WinQuake 0.992 *** + +Implemented force_centerview. + +Fixed backspace bug in dedicated console. + +Made "player entering game" messages and "say" messages visible +in dedicated console. + +Added description of -heapsize (how to change default memory +allocation). + +Added description of "net play pauses every few seconds" bug. + +Added description of "playdemo fails across multiple levels" bug. + +Added hooks for QHost; however, WinQuake won't work with QHost +until a new version of QHost 3.0, which uses the hooks, is +released. QHost 3.0 will not work with WinQuake. + +Fixed bug where savegame descriptions weren't always terminated +properly. + +Fixed bug where running -dedicated reset part of config.cfg to +defaults. + + +*** WinQuake 0.991 *** + +Fixed problem with pre-1.07 (DOS) clients connecting to WinQuake. + +Got rid of "Starting Quake..." dialog when running -dedicated. + +Added -novbeaf switch to turn off VBE/AF support in case of problems, +and updated documentation. + +Corrected SciTech's U.S. Mail address in documentation. + +Added joystick bug decriptions and workarounds. + + + +------------------ +| Special thanks | +------------------ + +Special thanks for help with WinQuake to: + +James Barnes +Kendall Bennett +Raymond Chen +John Colleran +Andrew Goossen +Mike Harrington +Chris Hecker +Todd Laney +Scott Ludwig +...and all the beta testers! + +====================================================================== +End of Document 3/21/97 +======================================================================