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):

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 5k5120 width × 2880 height
  • for 4k4096 width x 2160 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:

Quake 3 Arena - System Setup - Graphics Settings

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:
Share:
  • 30
  • 16

30 thoughts on “Quake III Arena with High Definition Graphics & 120 FPS on 5k resolution”

  1. 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

    1. Hey Zack,
      Appreciate your comment & all the suggestions! I updated the post & the Gist accordingly 😊

  2. 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

  3. 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.

  4. 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…

  5. 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

    1. 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 or autoexec.cfg from the following path:

      ~/Library/Application Support/Quake3/

      Hope this helps!

    1. 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"

      1. This seems to work on Steam-version only :/
        I get an “unkonwn command” error.

      2. 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

  6. 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??

  7. Getting a sound file error on ioquake3. I’ve used the high def pack in the baseq3 folder. Any idea how to fix this?

  8. 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.

  9. 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!!!

  10. 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

  11. 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)

Questions? Suggestions? Let us know with a comment!

This site uses Akismet to reduce spam. Learn how your comment data is processed.