QuakeSpasm
Page last edited Apr. 12, 2013
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.
http://quakespasm.sourceforge.net
Visit the
FitzQuake Homepage for a full run-down of the engine's commands and variables.
- To disable some changes, use "quakespasm -fitz"
- For different sound drivers use "SDL_AUDIODRIVER=DRIVER ./quakespasm"
, where DRIVER may be alsa, dsp, pulse, esd ...
- Shift+Escape draws the Console.
- From the console, use UP to browse the command line history and
TAB to autocomplete command and map names.
- There is currently no CD Music volume support. cd_sdl.c needs replacing with cd_linux.c, cd_bsd.c etc..
- In windows, alternative CD drives are accessible by "quakespasm -cddev F" (for example)
- Quakespasm allows loading new games (mods) on the fly with "game GAMENAME"
Since version 0.85.4, Quakespasm can play back external MP3, OGG and Wave music files.
- Tracks should be named like "track02.ogg", "track03.ogg" ... (there is no track01) and placed into "Quake/id1/music".
- Unix users may need some extra libraries installed: "libmad" or "libmpg123" for MP3, and "libogg" and "libvorbis" for OGG.
- To prevent tracks from being downsampled, use the "-sndspeed" option to set a sufficiently high sample rate.
- Use the "-noextmusic" option to disable this feature.
- See
README.music for more details.
To check-out the latest version of QuakeSpasm, use :
svn co svn://svn.code.sf.net/p/quakespasm/code/trunk/quakespasm
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
- make DEBUG=1 for debugging
- 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).
The QuakeSpasm developers cross-compile windows binaries using
MinGW and
Mingw-w64.
The project can also be built using Visual Studio 2005 (or newer).
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.
Some versions of Xorg and SDL have brightness issues. If you have Xorg >= 7.5 and broken brightness,
these patched libSDL binaries may help.
- Fixes for several undefined behaviors in C code (gcc-4.8 support.)
- Implemented Hor+ style field of view (FOV) scaling, useful for widescreen resolutions. Configured by new cvar fov_adapt: set it to 1 and your fov will be scaled automatically according to the resolution. Enabled by default.
- Adjusted string buffers for PR_ValueString and friends to fix crashes with excessively long global strings seen in some rude mods.
- Toned down warning messages from PF_VarString() a bit.
- Fixed Fitzquake's map existence check in changelevel (used to leak file handles which would end up in a Sys_Error() due to consuming all free handles if many maps reside not in pak files.)
- Fixes/cleanups in chat mode handling. Client no longer gets stuck in chat mode upon disconnect.
- Mouse grab/key_dest fixes and key cleanups.
- The "speedkey" now acts as "slowkey" when "always run" is on.
- Support for demo recording after connection to server. (thanks to Baker for a patch)
- Corner case fixes in COM_Parse() for quoted strings and support for C-style /*..*/ comments.
- Changed lightmaps to GL_RGBA instead of GL_RGB.
- Better parse for opengl extensions list (from quakeforge.)
- Vsync saving/loading fixes.
- Fixed pointfile loading.
- Multiple cleanups in gl_vidsdl.c.
- Opus music decoding support (as an optional patch only.)
- Several other minor fixes/cleanups.
- Made Quake shareware 1.00 and 1.01 versions to be recognized properly.
- Fixed control-character handling in unicode mode. Keyboard input tweaks.
- Made the keypad keys to send separate key events in game mode.
- Text pasting support from OS clipboard to console. (windows and macosx.)
- Support for the Apple (Command) key on macosx.
- Fixed increased (more than 32) dynamic lights.
- Music playback: Made sure that the file's channels count is supported.
- Support for Solaris.
- Switched to using libmad instead of libmpg123 for MP3 playback on Mac OS X.
- Better support for building the Mac OS X version using a makefile, support for cross-compiling on Linux.
- Fixed a minor intermissions glitch.
- Increased string buffer size from 256 to 384 for PF_VarString to work around broken mods such as UQC.
- Restored original behavior for Quake registered version detection.
- Minor demo recording/playback tweaks.
- Minor tweaks to the scale menu option.
- unbindall before loading stored bindings (configurable by new cvar cfg_unbindall, enabled by default.)
- New icon.
- Miscellaneous source code cleanups.
- Added support for cross-level demo playback
- gl_texturemode is reimplemented as a cvar with a callback and the setting is automatically saved to the config
- Fixed execution of external files without a newline at the end
- Reduced memory usage during reloading of textures
- Fixed compilation on GNU/kFreeBSD (Debian bug #657793)
- Fixed backspace key on Ma