Quake Engines & Source Ports: A Beginners Guide

What even is a source port anyway?

A source port is a port of the source code for the Quake engine (originally only available for DOS platforms) to other platforms. Often times, these new source code ports will upgrade the capabilities of the game engine, granting mod developers the chance to expand the original game's content and compatibility to what was originally intended.​
In more general terms, a Source Port is just what us people in these retro game communities call a new engine derived from the original.
Since the old engines no longer run on modern systems / weren't ported by the developers to consoles / etc, you'll need to have one of these bad boys to play Quake in all of it's glory on modern hardware.​

Right so I need a Source Port then, any recommendations?

Uh, yeah! Glad you asked. Below, we will go over the generally agreed upon best Source Ports to use when playing Quake, with a focus on compatibility with custom content, along with a short recommendation blurb to sum-up the overall perception of the source ports.


QuakeSpasm by Ozkan, Eric, Sander and Stevenauus.

QuakeSpasm is a multi-platform engine that aims to be an improved successor to the original Quake engine, focused on keeping the classic gameplay and graphics. It it is currently the most used source port within the wider community, and has many forks (engines that use QuakeSpasm as a base) that improve optimization, add new features, and generally have higher compatibility than this base version of QuakeSpasm.​

A Saint Nobody Has Heard Of (udob4.bsp) by Lunaran, showing the crisp and clean visuals of Quakespasm.Features include a large set of graphical refinements that can help hardware rendered Quake look as faithful as it can to the original, emulating many software-only rendering techniques that were sadly left out of the original hardware rendered Quake, and has many modern comforts including support for high-resolutions, ultra-wide resolutions, Xbox controllers and numerous bug-fixes done to the vanilla engine.

+ Current community standard, resulting in high compatibility with modern releases
+ High-quality emulation of software rendering features, resulting in a modern but faithful look and feel (Pictured)
+ Lowest system requirements
+ Supports lightmapped water
- Below average performance
- Framerates above 72 will break physics
- Infrequently updated
- Surpassed by its forks




While still the most popular port used within the community,
this port is not explicitly recommended only due to the
many forks (listed below) that simply improve it.

Quake Re-release / KexQuake by ID Software / Nightdive Studios

Released by ID Software in 2021, this updated Quake engine is included when purchasing Quake on Steam, as well as on consoles (PS5, Xbox Series, Switch). It is a faithful port of the engine using the original code to new platforms, wrapped up in a more presentable package with limits increased to support some modern map and mod projects.
While not using any of the code from QuakeSpasm, it offers a majority of it's features. Including hardware representation of originally software-only graphical features, enhanced dynamic lighting for muzzle flashes and maps that support it, and a suite of UI improvements to make using a controller less jank.​

KexQuake supports up to four players in easy-to-setup cooperative modes.
+ Modern mouse-controlled UI
+ Supports high framerates (>72 without breaking physics)
+ Features a new campaign created by Machine Games
+ Features ID-vetted community content with an easy-to-use in-game download system
+ Easy Multiplayer and Cooperative mode server creation, crossplay with console players
+ Optional high-quality refinements of all enemy and weapon models
+ Native controller support including auto-aim and a weapon wheel
~ A visually touched-up original campaign, with mixed results
- Paid software / Steam DRM
- Slightly inaccurate physics
- Can have poor performance on highly detailed levels
- Installing custom content is a pain
- Requires a GPU with Vulkan support
- Limited community mod/map support
- No CSQC support


While being a good port in it's own right, the community tends to favor
compatibility with QuakeSpasm derivatives over this official port when playing community
releases, as it has many game-breaking bugs when playing custom content and lacks
features that QuakeSpasm has improved over it's long development.



VkQuake by Novum

VkQuake is a QuakeSpasm fork that runs entirely using the Vulkan graphics API instead of OpenGL. It includes many new features derived from Quakespasm Spiked (listed below), aiming to be a soft upgrade for QuakeSpasm, supporting things such as custom particle effects, support for moddable huds, and decoupling physics from framerate.​

Building on the feature set of QuakeSpasm, this port is somewhat of a middle child of
Quakespasm's innacurate waterwarp effect alongside VkQuake's more accurate offering.
regular QuakeSpasm and QuakeSpasm Spiked, and has progressed to the point where it is seen as a straight upgrade to QS for players with a Vulkan-capable graphics card.
Popular among players, it is a well-rounded port that is regularly being updated by its author.

+ Based on QuakeSpasm, offering familiarity
+ Supports high framerates (>72)
+ Very good performance (comparable to Ironwail)
+ Mod selection UI
+ Emulates original game's underwater screen warp effect (Pictured)
+ "Software Emulation" mode uses a palletization filter for more authentic visuals
+ Supports CSQC huds and the Arcane Dimensions particle system
+ Supports lightmapped water
- Requires a GPU with Vulkan support


This port is recommended due to simply being Quakespasm
with clean, tasteful additions, high framerate support,
and improved performance on cards that support Vulkan.


Ironwail by Andrei Drexler

A relative newcomer to the scene, Ironwail is a fork of Quakespasm that overhauls the rendering API, with a focus on high performance instead of broad compatibility.​

Ironwail r_softemu in action (left) and disabled (right)
Capable of handling even the most ridiculously demanding maps at very high framerates, it is a great port for those with more recent (~2009 and onward) GPUs, or integrated graphics that have a hard time running modern graphically-intensive levels at an acceptable framerate. It gains a great deal of frames (anywhere from 50 to 500% more) over regular Quakespasm and its other less-performant forks.

+ Based on QuakeSpasm, offering familiarity
+ Supports high framerates (>72)
+ Very good performance (comparable to vkQuake)
+ Enhanced menu (mouse control, mod/level selection UI)
+ "Software Emulation" mode uses a palletization filter for more authentic visuals (Pictured)
+ Expanded options menu, featuring many console-only options in an easy-to-understand format
- Requires a relatively modern (~2009) GPU to run



As with VkQuake, this port is recommended due to being a
straight upgrade to QuakeSpasm for compatible hardware,
with the added benefit of an expanded options menu and
a classy software emulation mode.
Author's personal choice.


QuakeSpasm Spiked by Spike

QuakeSpasm Spiked is a popular fork of the QuakeSpasm engine that aims to improve the QuakeSpasm engine further, expanding limits and features even past the default QuakeSpasm, and as such has amazing compatibility for modern levels and several mods that utilize CSQC to extend Quake's modding capabilities.​

The portal to Tears of the False God by Bal, showing off the custom particle support of QSS.
Building on the feature set of QuakeSpasm, Spiked has introduced a lot of new features that have become standard across ports (Enhanced Particles, Extended Hud Modding Support) since it's inception.

+ Based on QuakeSpasm, offering familiarity
+ Supports high framerates (>72)
+ Supports CSQC huds and the Arcane Dimensions particle system (Pictured)
- No noticeable performance improvements over QuakeSpasm
- Features occasional game-breaking bugs that other QS forks don't
- Suppresses precache crashes, resulting in unforeseen crashes on other forks if used for map/mod testing.





Offering similar upsides to the other QuakeSpasm derivatives listed here,
it is worth noting that during regular gameplay there may be map breaking
b
ugs that do not exist on other forks of QuakeSpasm.
As such, this port is only explicitly recommended if you want the new particles
and do not have a VkQuake compatible GPU.


JoeQuake by Jozsef Szalontai

Popular within the speedrunning community over at SDA, JoeQuake has seen significant updates that help it stand on it's own as a port for the general Quake userbase.​

A player attacking a vore with a rocket launcher, showing off the new coloured explosive lighting effects in JoeQuake.

While not being a descendant of Quakespasm, JoeQuake still features all of the common modern limit-removing features of the other ports on this list, and stands on it's own as a port for modern releases and old classics alike.

+ Supports high framerates (>72)
+ Supports lightmapped water
+ Has new optional effects, such as coloured dynamic lighting and new viewmodel options (pictured)
+ Expanded options menu, featuring many console-only options in an easy-to-understand format
+ Enhanced menu (mouse control, mod/level/demo selection UI)
- No CSQC support
- Performance can be an issue in larger, more detailed community levels.





This port is highly recommended to players interested in speedrunning
in the SDA community.
However, it is still a sufficient choice for playing modern releases and is
constantly being updated to fix bugs and improve compatibility.


Other ports
Ports that have significantly different goals to typical community engines, featuring new and interesting ways to play Quake, while not having a focus on broad compatibility with modern releases.​
[QuakeVR] by Vittorio Romeo
A version of Quake with upgraded locomotion and QOL improvements for playing Quake maps in VR. Features a large amount of VR-standard locomotion methods, dual wielding, a grappling hook, positional damage and full room scale. Certainly worth checking out if you have a VR headset.
[Super8] by Qbism
With the goal of bringing 8-bit Software Rendering into the modern era, Super8 allows you to play Quake in a faux-nostalgic gritty software palette while keeping support for modern large-scale maps and hundreds of monsters. Requires a beefy CPU to run properly, and has some mouse input issues, but can run the majority of modern Quake mods with ease.
[RetroQuad] by Mankrip
Self-described by the author as "The most advanced realtime 8-bit color software renderer on Earth." Utilizing many features of modern source ports, RetroQuad is notable mostly for an oddity, being unable to play many modern releases in it's current state. The author goes into more detail as to their methods on pages linked through their [Patreon], which you can also use to aquire the engine- as the latest releases are not free.
[FTE] by Spike
A featurelist powerhouse, FTE is the pet project of QSS creator Spike, and is somewhat of an anomaly within the community. Featuring support for everything under the sun, the port does everything in one way or another, but not anything particularly well. As well as Quake, the port runs Quake2, Quake3, Hexen2 and various FTE-exclusive games. Other than it's broad feature set, the port is also the choice of many indie game developers, featuring a powerful scripting engine that allows you to break the limits of what any given Quake engine on this list can do. Worth a look-see just to marvel at all of the features.
[Darkplaces] by Ladyhavoc
The undisputed king of the HD texture pack, and the choice of many developers who look to build their own game on top of the Quake engine (Wrath: Aeon of Ruin, Doombringer, Xonotic). While the engine has fallen out of favor of the community, many still use it to play the exclusive Quake 1.5 mod, and to utilize HD textures and effects that are otherwise impossible without the engine. Not reccomended, but hey, I'm not stopping you.
Historical Ports
Ports that have fallen out of compatibility with contemporary custom content, or have simply been surpassed by a port and no longer receive updates.​

[MarkV] by Baker​
Once a side-by-side compliment to Quakespasm, this port has been deprecated and is no longer updated.
Poor mouse input, no OGG music compatibility and limited custom content support make this a tough one to recommend over it's peers.​

[FitzQuake] by John Fitzgibbons​
The pioneer of many groundbreaking and current standard features, FQ has been succeeded directly by the QuakeSpasm engine family.​
 
Last edited:
Baker also made Quakedroid, a version for Android phones. Like Mark V, it hasn't been updated since 2018, but probably still works and provides a way for Android users to get their fix of Quake on the go. Maybe mention it on the other ports or historical ports section?
 
Baker also made Quakedroid, a version for Android phones. Like Mark V, it hasn't been updated since 2018, but probably still works and provides a way for Android users to get their fix of Quake on the go. Maybe mention it on the other ports or historical ports section?
I am most likely going to do a deep-dive into Quake mobile ports soon, then amend this once I have good information. I wouldn't want to recommend something sub-par.
 
mark v's mouse input issues can be pretty much mitigated by setting the usb polling rate for your mouse to 125hz. anything higher than that it just can't handle, with dropped/delayed inputs on the buttons and negative acceleration. the default on most new mice is 1000hz, and if it's a "gaming" mouse from the past 10-15 years it is very likely that it can be adjusted, either through software drivers or on the mouse itself.

i've also had issues running some stuff under dosbox, and lowering the polling rate has helped there as well.
 
Mark V is deprecated and shouldn't be anyone's daily driver engine imo. It doesn't even support protocol 666.
 
  • Like
Reactions: Fairweather
It says it does support it, Markie [V]. Do you mean protocol 999? In any case, I don't know why you have to choose between source ports since you can use multiple. I have a few installed, and when I'm playing many of the simple maps around, I will often use Mark V for convenience's sake.
 
  • Like
Reactions: Esrael
Mark V is deprecated and shouldn't be anyone's daily driver engine imo. It doesn't even support protocol 666.
it isn't my daily driver. however, i've got no opengl 2 support and certainly no vulkan support on my laptop under windows 10, thanks intel! if i'm trying to throw down a quake session when i'm about, i keep mark v around. i do so with an understanding that most community-made content after 2018 isn't likely to be compatible. if i want to play quake and am in a scenario where i am running windows and can only use proper software rendering, i would prefer to use mark v winquake over super8, engoo, or the winquake that is included on disc. it would be very exciting if a port were to come around that has protocol 999 support, feature parity with quakespasm and an 8bit, cpu-reliant software renderer.

i've been using ironwail for a day now because of this guide, and i thank y'all dearly for mentioning it here. i am loving it. the palletization shaders get close enough to the aesthetics of 256 color software rendering with quakespasm compatibility, but it still relies on opengl! it is not possible to run quakespasm, ironwail or vkquake on a system that barely even supports opengl 1.1 under windows 10 for reasons only the cpu manufacturer knows.

say whatever you must about deprecation of the hard or soft wares, but there will be instances where some folks will want to run quake, a 26 year old game that only supported cpu-based software rendering on launch, without a graphics processing unit, be it the retail game and expansions or most of the first 22ish years of user-made content. until something else comes around, mark v winquake and super8 remain the best options under such a scenario.
 
We could touch up the vkQuake and Ironwail feature points a bit. E.g. the Ironwail section lists lightmapped water but the vkQuake section does not (although vkQuake does also have lit water).

FWIW I recently went through the exercise of making a vkQuake/Ironwail feature comparison table and ended up with this: https://neogeographica.com/quakesta...ngines.html#which-one-to-use-for-singleplayer

Probably not all of those are high-profile-enough features to mention here, but see what you think. If I were updating the vkQuake/Ironwail featurepoints here, I'd probably do:

* For vkQuake, add mention of: mods menu, 8-bit color emulation, lightmapped water
* For Ironwail, add mention of: mods menu, mouse support in UI
 
We could touch up the vkQuake and Ironwail feature points a bit. E.g. the Ironwail section lists lightmapped water but the vkQuake section does not (although vkQuake does also have lit water).

FWIW I recently went through the exercise of making a vkQuake/Ironwail feature comparison table and ended up with this: https://neogeographica.com/quakesta...ngines.html#which-one-to-use-for-singleplayer

Probably not all of those are high-profile-enough features to mention here, but see what you think. If I were updating the vkQuake/Ironwail featurepoints here, I'd probably do:

* For vkQuake, add mention of: mods menu, 8-bit color emulation, lightmapped water
* For Ironwail, add mention of: mods menu, mouse support in UI
Afaik these were updated extremely recently, so that is why I hadn't updated it as of yet. Thanks for the sum-up.
Edit: Added.
 
  • Like
Reactions: Joel B
it isn't my daily driver. however, i've got no opengl 2 support and certainly no vulkan support on my laptop under windows 10, thanks intel! if i'm trying to throw down a quake session when i'm about, i keep mark v around. i do so with an understanding that most community-made content after 2018 isn't likely to be compatible. if i want to play quake and am in a scenario where i am running windows and can only use proper software rendering, i would prefer to use mark v winquake over super8, engoo, or the winquake that is included on disc. it would be very exciting if a port were to come around that has protocol 999 support, feature parity with quakespasm and an 8bit, cpu-reliant software renderer.

i've been using ironwail for a day now because of this guide, and i thank y'all dearly for mentioning it here. i am loving it. the palletization shaders get close enough to the aesthetics of 256 color software rendering with quakespasm compatibility, but it still relies on opengl! it is not possible to run quakespasm, ironwail or vkquake on a system that barely even supports opengl 1.1 under windows 10 for reasons only the cpu manufacturer knows.

say whatever you must about deprecation of the hard or soft wares, but there will be instances where some folks will want to run quake, a 26 year old game that only supported cpu-based software rendering on launch, without a graphics processing unit, be it the retail game and expansions or most of the first 22ish years of user-made content. until something else comes around, mark v winquake and super8 remain the best options under such a scenario.
Try out ChadQuake

It is forked from MarkV but has a lot of updated features and scaling options. Also software rendered.
 
  • Like
Reactions: heliumlamb
I'm curious about something I've yet to find any clear info on, granted I haven't spent too much time looking. Why is JoeQuake the only source port allowed on the Speed Demos Archive? I would assume that Quakespasm derived source ports and others either alter mechanics or can't produce fully accurate demos but I don't like making assumptions.
 
Try out ChadQuake

It is forked from MarkV but has a lot of updated features and scaling options. Also software rendered.
How is chadquake like? Because to me it just seems like MarkV software mode but with features removed. It looks like something you could easily set up with the regular one instead
 
After playing bit on it, that's still my impression, Nolcoz. I think visual presentation is the main concern here with the integer scaling option.
 
I'm curious about something I've yet to find any clear info on, granted I haven't spent too much time looking. Why is JoeQuake the only source port allowed on the Speed Demos Archive? I would assume that Quakespasm derived source ports and others either alter mechanics or can't produce fully accurate demos but I don't like making assumptions.
This is all I could find as far as "official" word goes on the SDA rules page for Quake:
User created exe's can give you an advantage in an infinite number of ways that we'd never know about. This is mainly an issue of trust... please dont use them!
JoeQuake's developer is a speedrunner himself, and if I had to guess I'd say his source port is allowed because he is a trusted figure in that community, but that's just speculation on my part. Beyond that, JoeQuake has some speedrun-centric features like the ability to display your movement speed as well as time/kills/secrets directly on screen that most other ports don't offer.
 
  • Like
Reactions: StodgyAyatollah
How is chadquake like? Because to me it just seems like MarkV software mode but with features removed. It looks like something you could easily set up with the regular one instead
it does fix the issues with mouse input it seems (*feels* like 125hz polling but i didn't set that on my end?), but yeah the featureset has been scaled back even compared to what could have been done with mark v winquake. that would make sense in an environment where striving for creating "vanilla compatible" content is as valid a goal and challenge as it is in the dooms, but it seems not to be much of a concern with quake, which is totally fine! i have loved seeing the level of detail in brushwork increase throughout the ages.

TyrQuake might be another potential option for those seeking a software renderer for whatever reasons, aesthetic or practical, which seems to be in somewhat active development. it has winquake and glquake exes, for both netquake and quakeworld! i will be giving it a good run at some point in the next week.

i feel like a goal with quake going forward should be "keep Quake Now running on as many machines as possible, past and present", an ethos similar to how folks do what they can to run the dooms on whatever they can. the abandonement and ignoration of software rendered, winquake engines en masse is directly antithetical to keeping quake running on as many machines as possible. i promise that i'm not trying to be annoying by continuing to go off on true software rendering in quake, and i am sorry if that has ended up being the case. i am but a longtime quake player and neophyte brush layer who just happens to be an owner and enjoyer of a computer with intel hd3000 graphics under windows 10. i could probably run crysis (not well) on that laptop, but not arcane dimensions? that is something that just makes me profoundly sad. with regards to technology in particular, the current idea of "obsolescence" is what needs to be deprecated. a machine that can still perform its expected tasks, especially one that is wholly dependent on human input, is not obsolete until it is no longer functioning in any manner, and even then repair can mitigate that. my thinkpad sure as shit aint gonna wind up in a landfill, and i will do everything in my power to keep that machine going at least another 10 years, i hope more.
 
Last edited:
I'm curious about something I've yet to find any clear info on, granted I haven't spent too much time looking. Why is JoeQuake the only source port allowed on the Speed Demos Archive? I would assume that Quakespasm derived source ports and others either alter mechanics or can't produce fully accurate demos but I don't like making assumptions.
I am not a speedrunner myself, but since they don't seem to be around here, I'll answer what I think I know. JoeQuake's physics are the truest to the original Quake exe. Some exploits like power bunny hopping can only be done in it. As for why only it is allowed in SDA, then it probably has to do with what I already said, plus possible some anti-cheat code in the engine itself, and also having everyone compete in a level playing field, with the same engine.

I advise you to take a look at the speedrunning Discord and speaking to the members there. The/A SDA admin, Flecked, posts in there. https://discord.gg/8b2jxF3x