Games from the Attic #1 – KOTOR.

This feature will look at games from around 10 years ago and newer (OpenGL/DX9) and see how good they can look with todays graphical bells and whistles. I’ll be applying as much of the Better Visuals guide stuff as I can.

First up, Star Wars – Knights of the Old Republic . Knights of the Old Republic (KOTOR) was released for the PC way back in 2003 and the combination of Bioware and Star Wars proved to be a hit. A lot of the core features of KOTOR were carried over to the Mass Effect series.

Playing KOTOR out of the box would give you a 4:3 resolution of up to 1600×1200. But our good friends over at Widescreen Gaming Forum (WSGF) have done the leg work to get it running at a few 16:10 and 16:9 resolutions. Some other fans have provided updated higher resolution textures which up the eye-candy nicely.

If you have the Steam version of the game then do yourself a couple of favours. First, disable the in-game overlay by right-clicking the game in steam -> properties -> general -> uncheck ‘Enable Steam Community In-Game’ and also disable the automatic updates on the updates tab so you can download the ‘fixed’ exe v1.03 by Fairlight which isn’t encrypted like the steam version.

Installing the widescreen mod is fairly straightfoward after that and a nice guide can be found here.

After I got the widescreen mod up and running I did a search for texture updates and found KOTOR Ultimate v0.1. It looks like the author will be releasing a v0.2 soon so check for that if you get this far.

Finally I used RadeonPro to apply 16x Anisotropic Filtering and FXAA.

The results (click for a larger version):
swkotor_sandcrawlerswkotor_tattooine

Better Visuals Part 2: Injection perfection

So if your favourite DX9/10/11 game doesn’t have built-in PPAA support and the driver-level stuff makes the GUI look gooey then what’s the solution? Injection. By injecting some code to catch the final rendered image and apply post-processing filters you can have PPAA on almost any game. Some games require that you turn off in-game AA and some 3rd party overlays can cause issues (Steam, Origin, Afterburner), but in general, 60% of the time it works every time. Installation involves copying a few files to the game directory and the injector handles the rest. Over time the basic PPAA injectors have evolved into suites of filters that can effect the sharpness, vibrance, gamma and other properties of the final image. FXAATool and SweetFX are becoming the most popular of these.

Far Cry 3 with SweetFX

For AMD/ATi users there is a tool called RadeonPro that allows you to create profiles to tweak all the visual aspects of your game. It includes SweetFX integration support and experimental features like Ambient Occlusion (self-shadowing). It can take screenshots, make videos, overclock your card, show an on-screen display and, critically, can get all the SweetFX features working on 64-bit executables (standalone SweetFX is limited to 32-bit). This would be important if you wanted PPAA in 64-bit games like DCS World.

Prince of Persia with SweetFX splitscreen

Part 3 will conclude this guide to Better Visuals with a look at downsampling.

Links:
SweetFX Configurator (SweetFX and a GUI to help configure the various filters)
Radeon Pro (grab SweetFX below to enable it through RadeonPro)
SweetFX v1.4
FXAA Tool

j2p0_dish1

Better Visuals Part 1: Post-processing AA

aacomp

Anti-aliasing. We all love it but it costs too much. In modern games running 4xMSAA at 1080p and higher resolutions is going to cost you 25%+ of your framerate. Now if you’ve got the GPU grunt to push 100+ FPS then 25% won’t hurt you but if you’re on the limit of playability (30-40FPS) then you have to compromise by dropping AA or reducing other settings to maintain fluidity. This is where post-process anti-aliasing (PPAA) comes in.

Removing aliased edges in a post-processing step is faster and uses less memory as you are working with a texture and not a scene. There are lots of flavours of PPAA all with instantly forgettable four letter acronyms. The most basic (i.e. blunt-force) methods perform the GPU equivalent of slapping vaseline on the lens. The result, as you can imagine, is a softened, blurry mess that also smudges the UI. ATI’s MLAA and Nvidia’s driver-level FXAA fall into this category along with a few other less well known versions. If developers decide to include the likes of FXAA in their games then they can prevent the UIs being filtered and you get good performance and image quality. Deus Ex Human Revolution and ARMA 2 are two examples of this approach. Then we have SMAA which looks to tick all the boxes in terms of smoothing aliasing without introducing the vaseline effect and all with a relatively small performance hit. Most PPAA methods work only in engines using DX9 and above (FXAA works for OpenGL) but with the older engines you should be able to use standard AA and not run into performance problems.

Another issue with traditional anti-aliasing methods is that they consume large amounts of VRAM especially if you try supersampling or edge-detect modes. FXAA/SMAA do not have high VRAM overhead.

ppaa

Part 2 will deal with how to get these nice PPAA methods working in your games.