QSS-M is a open source port of the original ID Software Quake. Over 25 years Quake 1.09 became Fitzquake to Quakespasm that lead to Quakespasm Spiked and now Quakespasm Spiked Multiplayer (QSS-M). NetQuake competitive multiplayer clients started with ProQuake, transitioned to Qrack or Mark V, and now QSS-M made possible by all those voluntary efforts.
Credits: JPG, r00k, Spoike for QSS and FTEQW, Ozkan Sezer & Eric Wasylishen (Quakespasm), John Fitzgibbons (FitzQuake), Baker (MarkV), MH, Joe (JoeQuake), Andrei Drexler (Ironwail), & many more
Ironwail Ports & Adaptations
Input, Window, and Display
- Advanced controller support: gyro, rumble, flick stick, hot-plugging, alt-modifier binds, controller menus, and test menus
- Current desktop resolution is used on first launch instead of 800x600
- Automatic UI scaling is selected from the first-run resolution
- Window resizing support with saved window size (
vid_saveresize) - Mouse input is ignored until the client is ready, preventing loading/signon misfires
- Mouse sensitivity precision fix for non-integer sensitivity values
- Windows Caps Lock interception and extended scan-code fixes
- Lost-focus key hook fix for smoother multi-instance play
- Startup window raise/focus fix
- Built-in zoom controls with adjusted mouse sensitivity
- Game and server summary in the window title
- Print Screen screenshot support
Console, Commands, and Completion
- Console text selection, copy support, selected-text highlighting, and word-by-word cursor movement
- Windowed-mode clickable console links for generated files and folders
- Fading console notifications
- Multi-column tab-completion output
- Search-match highlighting in console output, tab completion, menus, and texture filters
- Natural sorting for map and command-completion lists
- Tab completion for commands, cvars, aliases,
writeconfig,bind, andunbind - Tab completion for files, maps, demos, sounds, models, screenshots, and classnames
- Tab completion for video, texture, fog, sky, HUD, crosshair, color, player, and rendering cvars
- Tab completion inside quoted command arguments and bind strings
writeconfigsupport with safer.cfgfilename handling- Easier command discovery with
find/apropos behavior improvements - Updated
versioncommand output imagelistandimagedumpfiltering
Menus, Servers, and Map Browsing
- Mouse support for classic menus, including sliders and menu navigation
- Options/menu value display improvements
- Menu live previews for visual options, including Shift pinning (
ui_live_preview) - Long-name scrolling and search highlighting in menu lists
- Mods, Levels/Maps, and Skill menus
- Map descriptions and cached map metadata
- Autoload last save on map restart
Demos and Gameplay
- Demo playback controls: pause, rewind, fast-forward, speed changes, frame stepping, and position jumps
- Demo playback overlay with configurable timeout (
scr_demobar_timeout) - Demo rewind keeps sounds, particles, beams, dynamic lights, stats, and screen color flashes in sync
- Underwater sound filter (
snd_waterfx) nomonsters 1support when starting maps- Savegame pitch-angle correction
- Background savegame writing from a main-thread snapshot, keeping large-map saves from stalling gameplay
Rendering, Debugging, and Compatibility
- Centerprint background styles (
scr_centerprintbg) - Classic screen-space underwater warp (
r_waterwarp 1), with the GLQuake fov-wobble retained as an option (r_waterwarp 2) - Sky wind support (
r_skywind) r_showbboxesmodel-type coloring and filtering- PVS-aware entity checks for more accurate bounding-box debug overlays
r_showfieldsentity overlay inspector- Expanded
viewposoutput with camera position and sun angle - Status bar and intermission fixes for large monster counts
- Higher alias model frame/mesh limits for large mods
- Corrected viewmodel interpolation for >10Hz animations
- Fixed upright sprite rendering with Dutch-angle cameras
- Signon buffer fragmentation and server buffer crash fixes for large maps
- Larger single-player datagram buffer for complex maps
- Particle trail emission-rate limiting
- Particle trail state tracking for cleaner demo playback and rewinds
- External HUD/menu texture clamp and padding fixes to reduce edge bleeding
- Dynamic multi-segment hunk allocator so large maps load without needing
-heapsize Hunk_AllocNoFillskips zero-fill on hot allocation paths- Out-of-memory and size-overflow guards on previously unchecked malloc sites
ALL QSS-M Commands & Variables (Google Sheets)
timbergeron@gmail.com | discord.quakeone.com (woods#3451)