QuakeSpasm ____________________________________________________________ Table of Contents 1. About 2. Downloads 3. Hints 3.1 Music Playback 4. Compiling 4.1 Linux/Unix 4.2 Windows 4.3 Mac OS X 5. Changes 5.1 Changes in 0.85.6 5.2 Changes in 0.85.5 5.3 Changes in 0.85.4 5.4 Changes in 0.85.3 5.5 Changes in 0.85.2 5.6 Changes in 0.85.1 6. Todo 7. Links ______________________________________________________________________ QuakeSpasm 0.85.6 (02 January 2012) 1. About 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. 2. Downloads o Source o Linux (x86) o Windows (x86) o OSX image 3. Hints Visit the FitzQuake Homepage for a full run-down of the engine's commands and variables. o To disable some changes, use "quakespasm -fitz" o For different sound drivers use "SDL_AUDIODRIVER=DRIVER ./quakespasm" , where DRIVER may be alsa, dsp, pulse, esd ... o Shift+Escape draws the Console. o From the console, use UP to browse the command line history and TAB to autocomplete command and map names. o There is currently no CD Music volume support. cd_sdl.c needs replacing with cd_linux.c, cd_bsd.c etc.. o In windows, alternative CD drives are accessible by "quakespasm -cddev F" (for example) o Quakespasm allows loading new games (mods) on the fly with "game GAMENAME" 3.1. Music Playback Since version 0.85.4, Quakespasm can play back external MP3, OGG and Wave music files. o Tracks should be named like "track02.ogg", "track03.ogg" ... (there is no track01) and placed into "Quake/id1/music". o Unix users may need some extra libraries installed: "libmad" or "libmpg123" for MP3, and "libogg" and "libvorbis" for OGG. o To prevent tracks from being downsampled, use the "-sndspeed" option to set a sufficiently high sample rate. o Use the "-noextmusic" option to disable this feature. o See README.music for more details, if necessary. 4. Compiling To check-out the latest version of QuakeSpasm, use : svn co https://quakespasm.svn.sourceforge.net/svnroot/quakespasm/trunk 4.1. Linux/Unix After extracting the source tarball, browse the Makefile and edit the music streaming options, then ______________________________________________________________________ make cp quakespasm /usr/local/games/quake (for example) ______________________________________________________________________ Compile time options include o make DEBUG=1 for debugging o make SDL_CONFIG=/PATH/TO/SDL-CONFIG for unusual SDL installations Streaming music playback requires "libmad" or "libmpg123" for MP3, and "libogg" and "libvorbis" for OGG files. HOME directory support can be enabled via Misc/homedir_0.patch The project can also be built with Codeblocks (project files included). 4.2. Windows The QuakeSpasm developers cross-compile windows binaries using MinGW and Mingw-w64 . The project can also be built using Visual Studio 2005 (or newer). 4.3. Mac OS X A Quakespasm App (including program launcher and update framework) can be made using the Xcode template found in the MacOSX directory. Alternatively, have a look at Makefile.darwin for more instructions on building from a console. 5. Changes 5.1. Changes in 0.85.6 o More work for string buffer safety o Reverted v0.85.5 change of not allowing deathmatch and coop cvars to be set at the same time (was reported for possibility of causing compatibility issues with mods) o Several cleanups in the cvar layer 5.2. Changes in 0.85.5 o SDL input driver updated adding native keymap and dead key support to the console o Fixed a crash in net play in maps with extended limits o Verified successful compilation using gcc-4.6.x o Added workaround against GL texture flicker (z fighting), controlled by new cvar 'gl_zfix' o Read video variables early so that a vid_restart isn't necessary after init o mlook and lookspring fixes o Added support for loading external entity files, controlled by new cvar 'external_ents' o Made mp3 playback to allocate system memory instead of zone o Some updates to the progs interpreter code o Fixed r_nolerp_list parsing code of fitzquake o Made sure that deathmatch and coop are not set at the same time o Several code updates from uHexen2 project, several code cleanups. 5.3. Changes in 0.85.4 o Implement music (OGG, MP3, WAV) playback o A better fix for the infamous SV_TouchLinks problem, no more hard lockups with maps such as "whiteroom" o Add support for mouse buttons 4 and 5 o Fix the "unalias" console command o Restore the "screen size" menu item o Fixed an erroneous protocol check in the server code o Raised the default zone memory size to 384 kb o Raised the default max_edicts from 1024 to 2048 o 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 o Fixed rest of the compiler warnings o Other minor sound and cdaudio updates 5.4. Changes in 0.85.3 o Fix the "-dedicated" option (thanks Oz) and add platform specific networking code (default) rather than SDL_net o Much needed OSX framework stuff from Kristian o Add a persistent history feature (thanks Baker) o Add a slider for scr_sbaralpha, which now defaults to 0.95 (slightly transparent, allowing for a nicer status bar) o Allow player messages longer than 32 characters o Sockaddr fix for FreeBSD/OSX/etc networking o Connect status bar size to the scale slider o Include an ISNAN (is not-a-number) fix to catch the occassional quake C bug giving traceline problems o Enumerate options menus o Add a "prev weapon" menu item (from Sander) o Small fix to Sound Block/Unblock on win32 o Lots of code fixes (some from uhexen2) o Sys_Error calls Host_Shutdown o Added MS Visual Studio support o Add a "-cd" option to let the CD Player work in dedicated mode, and some other CD tweaks. 5.5. Changes in 0.85.2 o Replace the old "Screen size" slider with a "Scale" slider o Don't constantly open and close condebug log o Heap of C clean-ups o Fix mapname sorting o Alias the "mods" command to "games" o Block/Unblock sound upon focus loss/gain o NAT fix (networking protocol fix) o SDLNet_ResolveHost bug-fix allowing connection to ports other than 26000 o Bumped array size of sv_main.c::localmodels from 5 to 6 fixing an old fitzquake-0.85 bug which used to cause segfaults depending on the compiler. o Accept commandline options like "+connect ip:port" o Add OSX Makefile (tested?) 5.6. Changes in 0.85.1 o 64 bit CPU support o Restructured SDL sound driver o Custom conback o Tweaked the command line completion and added a map/changelevel autocompletion function o Alt+Enter toggles fullscreen o Disable Draw_BeginDisc which causes core dumps when called excessively o Show helpful info on start-up o Include real map name (sv.name) and skill in the status bar o Remove confirm quit dialog o Don't spam the console with PackFile seek requests o Default to window mode o Withdraw console when playing demos o Don't play demos on program init o Default Heapsize is 64meg o Changes to default console alpha, speed o Changes to cvar persistence gl_flashblend (default 0), r_shadow, r_wateralpha, r_dynamic, r_novis 6. Todo o Add uHexen2's first person camera (and menu item) o Native CD audio support (if desired). cd_sdl.c doesn't have proper volume controls o Test usb keyboards. Do the keypads work? Make the OSX apple key work. o Complete the unix user directories support o Finalize OSX automatic updating feature 7. Links o QuakeSpasm Homepage o QuakeSpasm Project page o FitzQuake Homepage o Sleepwalkr's Original SDL Port o Baker's 0.85 Source Code o Func Quakespasm forum o Func SDL Fitzquake forum o Ozkan's email o Stevenaaus email o Kristian's email