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.1.0 See changelog
Released
Eyeballs! Two things you can see in this one. (ha)
Creatures get their bump lighting back. The game only ever drew it on an NVIDIA card, and this patch had been answering "no" to the capability that turns it on. The Hutts are where you notice it first, around the eyes.
And shiny surfaces are fogged again. Armour, sabres and anything else wearing a reflection were punching straight through the fog on the default look, in every area that has any. The Taris cantina makes it obvious.
Fixed
- Bump lighting on creatures now draws on every card, clamped so strong lights do not blow out
- Environment mapped surfaces are fogged again on the default look
- Shaders that already blend their own fog no longer get a second blend applied on top of it
Added
- Settings files pick up new options. An ini written by an earlier version has the new switches appended with their documentation, rather than needing to be deleted and set up again
- The log says which shader family the programs were built as, and which source the build came from
- A frames switch reports what the patch did per window of frames instead of per session
Requires
The KotOR Patch Manager 0.6.2 or newer. Earlier versions did not always
deploy sqlite3.dll, without which the game will crash on load.
With version 1.1.0:- Download