So it’s 2018 – we have 5k displays and powerful graphics cards and CPUs. But we are nostalgic and want to fire up old games, like Quake III Arena. But how do we tune such an old game to tickle all the available processing speeds and huge screens?
Here’s how you run Quake III Arena with High Definition Graphics & at 120 FPS or more
First things first: get the ioquake3 launcher
Playing Quake 3 today should be done using the amazing ioquake3 app which is still in active development by the community today (since ID software open sourced the Quake 3-sourcecode):
- ioquake3 Mac Source Port (64-bit Apple Silicon optimized)
- Alternatively: ioquake 3 website
Update the Quake III Arena game content & graphics with high definition content
High definition UI, fonts, models
Grab the “High Quality Quake [HQQ] pack for Quake III Arena” on moddb.com. This will bring you a beautiful sharp UI elements, fonts & models.
Once you have downloaded the pak9hqq36.pk3
-file, either copy it directly into your “baseq3
“-directory – or, if you want to keep the original content in place, into a new directory named “hqq
” on the same level as the baseq3
dir is located (basically inside your Q3 game folder).
High definition textures
Additionally, get the “xcsv
” high resolution textures pack developed by Paul Marshall (aka Kpax) based on ioquake3. This will bring you beautiful high resolution textures in maps:
Again, simply copy the xcsv_bq3hi-res.pk3
-file into your existing “baseq3”-directory.
Configure Quake 3 for widescreen 4k & 5k screen resolutions
Regarding playing Quake III Arena on newer computers supporting widescreen and high definition resolutions, there is good and bad news:
Good news: using the ioquake3 app, changing the game resolution from the Graphics menu works – and provides you with a list of good resolution choices. However, if you really want to run Quake 3 natively to higher screen resolutions (e.g. 5k), then you still need to modify the Quake 3 config-file.
Manually tweaking Quake 3 config for widescreen high resolution displays
Note: the config files for ioQuake3 are loaded from the Application Support
folder. So either edit the q3config.cfg
or autoexec.cfg
from the following path:
~/Library/Application Support/Quake3/
Open the “q3config.cfg
” from within your “baseq3
“-directory or – better – edit/create the user specific config file named “autoexec.cfg
” inside the baseq3
directory.
Add or change the following parameters:
Setting | Value | Remarks |
---|---|---|
seta r_mode |
"-1" |
-1 basically translates to “custom settings“ |
seta r_customwidth |
"5120" |
Preferred screen width * |
seta r_customheight |
"2880" |
Preferred screen height * |
seta seta cg_fov |
"115" |
Change the FOV to >100 in order to correct the first person view on widescreen displays |
* assuming a 16:9-widescreen display, the following widths and heights apply:
- for 5k:
5120
width ×2880
height - for 4k:
4096
width x2160
height - find more standard widescreen resolutions for 16:9 and 16:10 aspect ratios here.
Boosting Quake III Arena’s graphics settings
When you have Q3 launched, go to Settings
> Graphics
and make sure, you have the following parameters set:
Setting | Value | Remarks |
---|---|---|
Graphics Settings | Custom |
Referring to custom Video Mode, as described before |
Color Depth | 32 bit |
Corresponding autoexec.cfg command: seta r_colorbits "32" |
Lighting | Lightmap |
Lightmap is much better in terms of graphics quality compared to “Vortex “ |
Geometric Detail | High |
Corresponding autoexec.cfg command: seta r_lodbias "-2" |
Texture Details | 100% |
Corresponding autoexec.cfg command: seta r_picmip "0" |
Texture Quality | 32 bit |
Corresponding autoexec.cfg command: seta r_texturebits "32" |
Texture Filter | Trilinear |
Corresponding autoexec.cfg command: seta r_textureMode "GL_LINEAR_MIPMAP_LINEAR" |
Additional graphics fine-tuning via the Quake 3 config
As with the custom display resolution, you can modify the Quake 3 config-file for many more options affecting the graphical quality of the game.
These are the most important settings in order to beautify Quake III Arena:
Setting | Value | Remarks |
---|---|---|
seta r_hdr |
"1" |
Enable HDR |
seta cl_renderer |
"opengl2" |
The new OpenGL2 introduced by ioquake3 |
seta r_allowSoftwareGL |
"0" |
Disable software based GL renderer |
seta r_picmip |
"0" |
0 = best texture quality (100%) |
seta com_hunkmegs |
"512" |
|
seta r_displayrefresh |
"0" |
Refresh rate will sync to your display’s refresh rate |
seta r_preloadtextures |
"1" |
|
seta r_subdivisions |
"1" |
|
seta r_ext_texture_filter_anisotropic |
"1" |
Enable anisotropy texture filtering |
seta r_ext_max_anisotropy |
"16" |
Highest level of anisotropy texture filtering |
seta r_ext_multisample |
"4" |
OpenGL1 only: highest level of anti-aliasing rendering |
seta r_ext_framebuffer_multisample |
"4" |
OpenGL2 only: Highest level of anti-aliasing rendering |
seta r_ext_compressed_textures |
"0" |
Don’t compress textures |
seta r_dynamiclight |
"1" |
Enable dynamics lightning |
seta r_shadowFilter |
"2" |
Shadows will have a smoother look, 2 = prettiest. |
seta r_dlightMode |
"2" |
Enable modern light and shadows |
seta r_deluxeMapping |
"1" |
Gives much better lightning effects in maps |
seta r_flares |
"1" |
Gives a flare effect around dynamics lights |
seta r_lodbias |
"-2" |
Always use highest model level-of-detail, regardless of distance from player. This avoids visible item/player model level-of-detail changes. |
Here’s an ioquake3 configuration-file for best visual quality in Quake 3
Sources used:
- ioquake3 Wiki – HD/High Resolutions
- ioquake3 GitHub – OpenGL2 Readme
- The Open Tangent – Quake3 in HD
- oxygen’s Quake 3 Resolution Changer
- Quake 3 Arena HD resolution + texture pack + small fixes
- Quake III Engine Smoothness
- joz3d – q3console commands
- Here is an in-depth guide to console commands and variables in Q3A
- Quake 3 Arena Grafik Guide
- OpenArena – Manual/Graphic options
- Comment on this post by ZTurtleMan
xcsv_bq3hi-res.pk3 was made by Paul Marshall (aka Kpax) not mecwerks. (As noted at https://ioquake3.org/extras/replacement_content/ )
Use r_lodbias -2 to always use highest model level-of-detail regardless of distance from player. This avoids visible item/player model level-of-detail changes.
Texture Detail 100% is “r_picmip 0” not “r_detailtextures 1”.
Texture Filter Trilinear is “r_textureMode GL_LINEAR_MIPMAP_LINEAR”.
r_ext_texture_filter_anisotropicexture is a misspelled and incorrectly documented.
Missing from “Additional graphics fine-tuning via the Quake 3 config” section:
seta r_ext_texture_filter_anisotropic 1 // enable anisotropy texture filter
seta r_ext_max_anisotropy 16 // 16x anisotropy texture filter
seta r_ext_multisample 4 // use 4x anti-alias (opengl1 renderer)
seta r_ext_framebuffer_multisample 4 // use 4x anti-alias (opengl2 renderer)
The final config has “r_ext_multitexture 0” but should be 1. It’s required for optimal rendering using the opengl1 renderer; there is no visible difference.
~zturtleman
Hey Zack,
Appreciate your comment & all the suggestions! I updated the post & the Gist accordingly 😊
I appreciate the thought and hard work for making this old game look better, but IMHO if you want real nostalgia, get a CRT monitor, an uncomfortable chair and set r_picmip 5 XD
Thanks alot! Looks beautiful! The only downside is that the fans on my iMac (Retina 5K, 27-inch, Late 2014) runs wild playing. But i’m gonna do some experiments to see what’s causing it.
I’m trying to get q3a running on a MacBook Pro, 2019 model… I’ve got the pak0.pk3 file, it’s in place, but no dice…
Hi Andy,
It should be no problem running Q3A on a Mac even with the most recent macOS Catalina – just make sure you use ioquake3 & follow the Installation instructions in the ReadMe.rtf included in the dmg: https://ioquake3.org/get-it/
unfortunately using autoconfig.cfg with the suggested settings is not changing the game resolution properly. It’s either still a square aspect ratio or it’s the desired aspect ratio but the game screen renders far outside the boundary of my screen
Hey thinsoldier
Thanks for pointing this out.
Actually the config files to work with ioQuake3 are loaded from the
Application Support
folder – not directly from the/baseq3/
in the Quake 3 game folder.So either edit the
q3config.cfg
orautoexec.cfg
from the following path:Hope this helps!
Where is “~/Library/Application Support/Quake3/” in windows 10?
@Scott on Windows it could be in
C:\Users\[My name]\AppData\Local\VirtualStore\Program Files (x86)\Quake3
according to this Stackoverflow Q&AHow can I change the font size in the console? It is really tiny on FullHD.
Seems like this might not be possible in plain ioquake3/Q3A according to this old thread on Quake3World. Unless to lower your Game screen resolution (which is not what we basically want…).
Only thing I found are these commands with different values, but marked as „archived“:
ui_bigFont "0.4"
ui_smallFont "0.25"
from joz3d – Quake 3 Arena Console Commands
For Quake 3 OSP-Mod (but not Console related it seems):
Enable
cg_enableOSPHUD "1"
set cf_Statusbar "24x48"
from ioquake3 OSP Docs
Working only in Quake 3 Steam-Version:
con_scale "0.7"
This seems to work on Steam-version only :/
I get an “unkonwn command” error.
@Casshern: didn’t know – updated my previous comment. But doesn’t seem to be possible.
You may want to raise this as an issue on ioquake3‘s GitHub page: https://github.com/ioquake/ioq3/issues
Now as I read a lot more threads con_scale is in fact part of ioquake, but it does not work for me. Maybe I need a newer version, but I only found 1.36
Use Quake3e. It has a high-quality proportional font renderer.
Thank you. For now I am somewhat confused. I have installed ioquake3 1.36 on Linux. I have a nice and sharp image 1920×1080. But the ioquake commands don’t work. Set command con_scale should work on any ioquake, no sun or real shadows.
Is there another updated executable out there??
I looked but didn’t find something that’d be useful. Would recommend you post this to the ioquake3 Issue tracker on GitHub, they are very active there & for sure will be able to help. Good luck
Getting a sound file error on ioquake3. I’ve used the high def pack in the baseq3 folder. Any idea how to fix this?
Try to remove the high def pack from the Q3 folder and see if the issue still occurs.
However for better help on such technical errors, you should post this in the official ioquake3-issues Page on GitHub: https://github.com/ioquake/ioq3/issues
Hey Olivier, thanks for your article. I would like to know if ioQuake3 support DSR (dynamic super resolution), which is a downsampling method proprietary to NVIDIA as I would like to try 4K DSR on my 1080p display.
Hi Joe,
you should ask or propose this to the devs directly in the official ioquake3-issues Page on GitHub: https://github.com/ioquake/ioq3/issues
Alright I will, thanks.
Incredible work on the textures and model upgrades. Q3A looks like a new game.
Very helpful info on setting up to run with hires wide screens.
Thanks!!!
Hey I was reinstalling Quake 3 for old times sake and was looking up for guides to make it run best on modern systems and holy shit this is literally the best thing ever, it’s almost like the game is as beautiful as the first time I saw it two decades ago
Hello Oliver,
amazing work and effort.
I would like to play a few maps with you on our dedicated server.
Kind regards,
Frank
Thanks for mentioning my mod (HQQ) for Q3A!
If you have installed High Quality Quake [HQQ], you have this features:
Wide-screen support:
1. Open the console with [^]
2. Type: /exec res1920x1080 (example)
3. Execute with [Enter]
Highest possible graphic settings:
1. Open the console with [^]
2. Type: /exec hq
3. Execute with [Enter]
HAVE FUN! ;o)
How do I install that on Linux?