About This File
Restores Knights of the Old Republic's full lighting on current graphics drivers, and stops the grass from stretching into the sky.
See every fix side by side: https://synchro.codeberg.page/kotor-modern-driver-compatibility/what-it-fixes.html
Why the game looks wrong
KOTOR lights its world with one of two methods from 2003, one from ATI and one from NVIDIA. AMD's and Intel's Windows drivers offer neither, so the game falls back to a path meant for cards with no per-pixel lighting, which is also where the grass bug comes from. The patch rebuilds the game's lighting on a method every current driver supports, and puts every card on it.
What it restores
- Grass that stays on the ground
- Light from the room on lightmapped walls and floors
- Reflections on metal, armour and water, including cube map reflections on Intel cards
- Fog, where the game meant to have it
- Soft shadows, glow, motion blur, film grain and Force power distortion
- Bump lighting on creatures, which the game only ever drew on NVIDIA cards
What it also fixes
- The glow around lights and the edges of soft shadows no longer shimmer as the camera moves. The game did this on the hardware of its day too.
- The brightness slider works, cutscenes included, on drivers that refuse the game's request to change brightness, NVIDIA's on Windows among them.
- For modders: normal maps, bump lighting on lightmapped surfaces, and reflective skins with a flat reflection map never drew on any card. They do now.
The Cube Map Fix and Soft Shadows Fix are part of this patch. Don't install them alongside it.
Requirements
- KotOR version 1.03: GOG, Steam, or a CD copy with the common 1.03 no-CD executable
- KotOR Patch Manager 0.7.2 or later: https://github.com/LaneDibello/Kotor-Patch-Manager
Install guide: https://synchro.codeberg.page/kotor-modern-driver-compatibility/installing.html
If the Patch Manager won't accept your swkotor.exe because another tool has modified it, use the standalone download instead: https://synchro.codeberg.page/kotor-modern-driver-compatibility/installing-standalone.html
Settings
You don't need to change anything to play. K1DriverCompat.ini, beside the game, lists every setting with an explanation, and with the Mod Options patch installed the game's options screen has menus for them.
By default the patch draws the game as a GeForce card of the time did. Set look to ati to see it as an ATI Radeon did. In the game's own content the two differ only a little.
Settings: https://synchro.codeberg.page/kotor-modern-driver-compatibility/settings.html
The two looks: https://synchro.codeberg.page/kotor-modern-driver-compatibility/looks.html
Replacement Shaders
Modders can replace any of the patch's shading programs with their own, with nothing to rebuild. Put a plain text ARB fragment program in override/shaders/, named after the program it replaces, and the patch uses it in place of its own. The log records each replacement it loads, and warns about any file that matches no program.
Guide: https://synchro.codeberg.page/kotor-modern-driver-compatibility/replacement-shaders.html
Reporting issues
Open an issue at https://codeberg.org/Synchro/kotor-modern-driver-compatibility/issues or post in the comments here, and attach logs/K1DriverCompat.log from your game folder.
Thanks
@Lane and @J, who tested this on cards and installs I do not own. Nearly everything here is a claim about how some particular driver behaves, and a claim like that is worth nothing until somebody with that hardware runs it and reports back. This would not have been finishable without them.
Lane also wrote the KotOR Patch Manager, which this patch is built for.
@Vriff, Who took reference screenshots on period-correct hardware. They show what the game looked like on the cards it was written for, which is what the patch strives to match.
Full documentation: https://synchro.codeberg.page/kotor-modern-driver-compatibility/
Source: https://codeberg.org/Synchro/kotor-modern-driver-compatibility
LLM Disclosure
This project made use of an LLM during development, in the following capacities:
- Brainstorming: exploring possible approaches and design directions
- Decompilation assistance: help interpreting and structuring reverse-engineered code
- Code comments: refining and clarifying existing comments
- Skeletons and fixes: generating initial code scaffolding and minor fixes
All LLM-assisted output was modified and reviewed by a human before being committed.
Edited by Synchro
Fix up some of the sections a bit.
What's New in Version 1.2.0 See changelog
Released
Nothing new to see in this one. What is new is a second way to install it.
Some mods and tools change swkotor.exe itself, a widescreen patch being the common one. Once that has happened the Patch Manager no longer recognises the
file and will not patch it. There is now a download for exactly that case, which installs without the manager and only looks at the parts it needs to change.
You copy two files into your game folder and that is it. The patch is then there whether you start the game from Steam, a shortcut, or anything else. On Linux there is one extra setting, and the guide in the download explains it.
If the Patch Manager works for you, keep using it. It leaves your game files alone and lets you turn the patch off again from a list.
Added
- A second download that installs without the Patch Manager
Changed
- Both downloads now put the file you need to move into a clearly named folder
Requires
The new standalone download needs nothing but the game.
The ordinary one still needs the KotOR Patch Manager 0.6.2 or newer. Earlier versions did not always install sqlite3.dll, and without that file the game crashes on load.
With version 1.2.0:- Download