<!doctype linuxdoc system>
<article>
<title>QuakeSpasm 
<toc>
<verb></verb>

QuakeSpasm 0.85.4 (27 March 2011)

<sect> About <p>

QuakeSpasm is a Quake 1 engine based on the SDL port of FitzQuake.
It includes 64bit CPU support, a new sound driver, several networking fixes and a few graphical niceities.

<url url="http://quakespasm.sourceforge.net">

<sect> Downloads <p>

<url url="http://sourceforge.net/projects/quakespasm/files/quakespasm-0.85.4.tgz/download" name="Source">
<newline>
<url url="http://sourceforge.net/projects/quakespasm/files/quakespasm-0.85.4_linux.tgz/download" name="Linux (x86)">
<newline>
<url url="http://sourceforge.net/projects/quakespasm/files/quakespasm-0.85.4_windows.zip/download" name="Windows (x86)">
<newline>
<url url="http://sourceforge.net/projects/quakespasm/files/quakespasm-0.85.4_osx.zip/download" name="OSX universal binary">
<newline>

<sect> Hints <p>

<em> Visit the <url url="http://www.celephais.net/fitzquake" name="FitzQuake Homepage"> for a full run-down of the engine's commands and variables.</em>

<itemize>
<item>To disable some changes, use "<bf>quakespasm -fitz</bf>"

<item>For different sound drivers use "<bf>SDL_AUDIODRIVER=</bf><em>DRIVER</em><bf> ./quakespasm</bf>"
, where DRIVER may be alsa, dsp, pulse, esd ...

<item><bf>Shift+Escape</bf> draws the Console.
<item>From the console, use <bf>UP</bf> to browse the command line history and
<bf>TAB</bf> to autocomplete command and map names.
<item>There is currently no CD Music volume support. cd_sdl.c needs replacing with cd_linux.c, cd_bsd.c etc..
<item>In windows, alternative CD drives are accessible by "<bf>quakespasm -cddev F</bf>" (for example)

<item>Quakespasm allows loading new games (mods) on the fly with "<bf>game</bf> <em>GAMENAME</em>"
</itemize>
</p>
<sect1>Music Playback<p>
Since version 0.85.4, Quakespasm can play back external MP3, OGG and Wave music files.
<itemize>
<item>Tracks should be named like "track02.ogg", "track03.ogg" ... (there is no track01) and placed into "Quake/id1/music".
<item>Unix users may need some extra libraries installed: "libmad" or "libmpg123" for MP3, and "libogg" and "libvorbis" for OGG.
<item>Use the "-noextmusic" option to disable this feature.
</itemize>



<sect> Compiling <p>
After extracting the source tarball, browse the Makefile and edit the music streaming options, then
<code>
make
cp quakespasm /usr/local/games/quake (for example)
</code>
<newline>
Compile time options include
<itemize>
<item><bf>make DEBUG=1</bf> for debugging
<item><bf>make SDLNET=1</bf> to enable SDL_net (Otherwise the socket api will be used directly)
<item><bf>make SDL_CONFIG=</bf><em>/PATH/TO/SDL-CONFIG</em> for unusual SDL installations
</itemize>
<p>Streaming music playback requires "libmad" or "libmpg123" for MP3, and "libogg" and "libvorbis" for OGG files.
<p>HOME directory support can be enabled via <bf>Misc/homedir_0.patch</bf>
<p>The project can also be built with Codeblocks (project files included).</p>.

<sect> Changes<p>
<sect1> 0.85.4<p>
<itemize>
<item> Implement music (OGG, MP3, WAV) playback
<item> A better fix for the infamous SV_TouchLinks problem, no more hard lockups with maps such as "whiteroom"
<item> Add support for mouse buttons 4 and 5
<item> Fix the "unalias" console command
<item> Restore the "screen size" menu item
<item> Fixed an erroneous protocol check in the server code
<item> Raised the default zone memory size to 384 kb
<item> Raised the default max_edicts from 1024 to 2048
<item> Revised lit file loading, the lit file must be from the same game directory as the map itself or from a searchpath with a higher priority
<item> Fixed rest of the compiler warnings
<item> Other minor sound and cdaudio updates
</itemize>
</p>
<sect1> 0.85.3<p>
<itemize>
<item> Fix the "-dedicated" option (thanks Oz) and add platform specific networking code (default) rather than SDL_net
<item> Much needed OSX framework stuff from Kristian
<item> Add a persistent history feature (thanks Baker)
<item> Add a slider for scr_sbaralpha, which now defaults to 0.95 (slightly transparent, allowing for a nicer status bar)
<item> Allow player messages longer than 32 characters
<item> Sockaddr fix for FreeBSD/OSX/etc networking
<item> Connect status bar size to the scale slider
<item> Include an ISNAN (is not-a-number) fix to catch the occassional quake C bug giving traceline problems
<item> Enumerate options menus
<item> Add a "prev weapon" menu item (from Sander)
<item> Small fix to Sound Block/Unblock on win32
<item> Lots of code fixes (some from uhexen2)
<item> Sys_Error calls Host_Shutdown
<item> Added MS Visual Studio support
<item> Add a "-cd" option to let the CD Player work in dedicated mode, and some other CD tweaks.

</itemize>

<sect1> 0.85.2<p>
<itemize>
<item> Replace the old "Screen size" slider with a "Scale" slider
<item> Don't constantly open and close condebug log
<item> Heap of C clean-ups
<item> Fix mapname sorting
<item> Alias the "mods" command to "games"
<item> Block/Unblock sound upon focus loss/gain
<item> NAT fix (networking protocol fix)
<item> SDLNet_ResolveHost bug-fix allowing connection to ports other than 26000
<item> sv_main.c (localmodels) Bumped array size from 5 to 6 in order for it to operate correctly with the raised limits of fitzquake-0.85
<item> Accept commandline options like "+connect ip:port"
<item> Add OSX Makefile (tested?)
</itemize>

<sect1> 0.85.1<p>
<itemize>
<item>64 bit CPU support
<item>Restructured SDL sound driver
<item>Custom conback 
<item>Tweaked the command line completion and added a map/changelevel autocompletion function
<item>Alt+Enter toggles fullscreen
<item>Disable Draw_BeginDisc which causes core dumps when called excessively
<item>Show helpful info on start-up
<item>Include real map name (sv.name) and skill in the status bar
<item>Remove confirm quit dialog
<item>Don't spam the console with PackFile seek requests
<item>Default to window mode
<item>Withdraw console when playing demos
<item>Don't play demos on program init
<item>Default Heapsize is 64meg
<item>Changes to default console alpha, speed
<item>Changes to cvar persistence gl_flashblend (default 0), r_shadow, r_wateralpha, r_dynamic, r_novis
</itemize>


<sect> Todo <p>
<itemize>
<item>Add HoT's first person camera (and menu item)
<item>Native CD audio support (if desired). cd_sdl.c doesn't have proper volume controls
<item>Test usb keyboards. Do the keypads work? Make the OSX apple key work.
<item>Tested HOME directory support
<item>Finalize OSX automatic updating feature
<item>Fix Centerview (V_StartPitchDrift)
<item>There is still an unnecessary screen render on program init under some conditions, when using the "-window/-fullscreen" options.
</itemize>

<sect> Links <p>

<url url="http://quakespasm.sourceforge.net" name="QuakeSpasm Homepage">
<newline>
<url url="http://sourceforge.net/projects/quakespasm" name="QuakeSpasm Project page">
<newline>
<url url="http://www.celephais.net/fitzquake" name="FitzQuake Homepage">
<newline>
<url url="http://www.kristianduske.com/fitzquake" name="Sleepwalkr's Original SDL Port">
<newline>
<url name="Baker's 0.85 Source Code" url="http://quakeone.com/proquake/src_other/fitzquake_sdl_20090510_src_beta_1.zip">
<newline>
<url url="http://www.celephais.net/board/view_thread.php?id=60452" name="Func Quakespasm forum">
<newline>
<url url="http://www.celephais.net/board/view_thread.php?id=60172" name="Func SDL Fitzquake forum">
<newline>
<url url="mailto:gmail - dot - com - username - sezeroz" name="Ozkan's email">
<newline>
<url url="mailto:yahoo - dot - com - username - stevenaaus" name="Stevenaaus email">
<newline>
<url url="mailto:gmail - dot - com - username - inveigle" name="Kristian's email">

</article>
