Hi guys, i've read several threads over the past few days claiming rolling back to forceware 71.xx solves the problem. While i do not question the genuine intent in helping fellow civ fans here, rolling back drivers isn't exactly any sort of solution in my humble opinion. Granted the older versions might have been the ones used by the civ developers during beta testing, but more often than not, newer (at least for nvidia) drivers do not break already existing functionalities. The driver updates aim at tweaking for better performance or adding support for newer cards. Existing interfaces should not have been broken with newer drivers.
That said, let me go into the problem itself. Like many of you, I am using a Nvidia card myself, 6600gt to be exact. The original drivers I was using was the 78.01, and that worked pretty alright, other than the occasional (probably once every 5 hrs of gaming) bsods and CTDs. I wasn't pleased at all, given such a game shouldn't require extreme high end stuff. Following various advices from civfanatics as well as apolyton forums, I tried rolling back to 71.xx, tried upgrading to the latest official 80 series drivers, with dismay results for both. Rolling back resulted in severe performance hit, the screen lagged pretty obviously even at 2x antialiasing, while using the latest 8x.xx only created frequent CTDs (less than 10mins). Trying my luck further, I installed 81.85 beta, as well as 81.87 beta. In fact, the 78.xx and 8x.xx drivers had pretty decent performance. Speed-wise, definitely better than 71.xx. However, CTDs remained.
I was a little disturbed by the fact that this shouldn't be happening. For a problem associated with a specific break in algorithm at driver level, it shouldn't exhibit varying degree (as well as forms) of crashes for so many different driver revisions. I then started experimenting with the settings themselves and guess what, I have just completed 4hrs straight, superb performance, no CTDs on 81.87 beta (yes, and its a beta somemore).
Not keeping you guys in suspense, and of course putting a disclaimer first, I am merely offering my findings, you have the choice to adopt them or otherwise and I will not be responsible for any major hiccups (though changing of settings can hardly do much harm, just undoing the changes will safely revert to the previous state).
I've observed that prior to the CTDs that happened ever so often on the 80 series drivers, my hdd started thrashing real badly, and screen updates become sporadic, pointing to the fact that the graphics end was doing badly. So I looked at the civ4 ini file and saw this:
; Sync input to smooth interface (may run slower)
SyncInput = 1
What I think this is for is probably vsync. Original setting was 0, I set it to 1 so that the graphics card wouldn't process frames in advance. This is normally enabled in games to avoid tearing, but I guess in civ4 it helps in stability.
; Enable Trilinear Filtering for the Minimap
MinimapTrilinearFilter = 0
This is basically what it says it is. Trilinear filtering for minimap. No big deal over this, you can set it to 1 if you like. For me, bilinear or trilinear makes no difference.
; Set max frame rate clamp (0 means none)
SetMaxFrameRate = 40
This setting, together with the vsync setting, is probably where the problem lies. Limiting the fps to 40 does not in anyway impair gameplay, this is not a First Player Shooter. For comparison, normal movies have 28fps thereabouts. Human eyes cannot discern significant difference from 30fps and above. So there is absolutely no reason to allow civ4 to attempt to process extraordinarily high framerates, which might be the reason why it breaks, probably due to problems with buffer or memory overwriting.
; Specify the number of turns between autoSaves. 0 means no autosave.
AutoSaveInterval = 1
This is (very likely) not related to the graphics problems. But many people are using this for convenience. Basically the game autosaves every x turns you specified.
; Enable D3D9 Queries
D3D9Query = 1
This is another area which might have caused stability issues. Original setting was 0. I set it to 1 since my card is Direct9 compliant. Another note for gen6 and gen7 nvidia card users, rolling back drivers is a bad idea because directx9c was constantly updated for its runtime components even up till today. You really ought to be using the latest drivers for better directx9c support.
Next, I looked into my forceware driver settings. Under "Performance and Quality Settings", in order to complement the civ4 ini settings and not introduce driver-level forced settings, basically here's what i set for most of the settings:
Antialiasing/Anisotropic = both application controlled
Image setting = Performance
Vertical sync = application controlled
Force mipmaps = Bilinear (Trilinear probably works as well, but you know me..)
Extension limit = off
Conformant Texture clamp = on
Triple buffering = off
Probably just ensuring vsync is app controlled would be enough, but I hadn't got the time to test it out with other values for the other settings. And this i what I have that got me through 4hrs of non-stop, god-speed civ4 gaming. . Hope this helps!
P.S. Just saying "hi" to all fellow Singaporean players..
That said, let me go into the problem itself. Like many of you, I am using a Nvidia card myself, 6600gt to be exact. The original drivers I was using was the 78.01, and that worked pretty alright, other than the occasional (probably once every 5 hrs of gaming) bsods and CTDs. I wasn't pleased at all, given such a game shouldn't require extreme high end stuff. Following various advices from civfanatics as well as apolyton forums, I tried rolling back to 71.xx, tried upgrading to the latest official 80 series drivers, with dismay results for both. Rolling back resulted in severe performance hit, the screen lagged pretty obviously even at 2x antialiasing, while using the latest 8x.xx only created frequent CTDs (less than 10mins). Trying my luck further, I installed 81.85 beta, as well as 81.87 beta. In fact, the 78.xx and 8x.xx drivers had pretty decent performance. Speed-wise, definitely better than 71.xx. However, CTDs remained.
I was a little disturbed by the fact that this shouldn't be happening. For a problem associated with a specific break in algorithm at driver level, it shouldn't exhibit varying degree (as well as forms) of crashes for so many different driver revisions. I then started experimenting with the settings themselves and guess what, I have just completed 4hrs straight, superb performance, no CTDs on 81.87 beta (yes, and its a beta somemore).
Not keeping you guys in suspense, and of course putting a disclaimer first, I am merely offering my findings, you have the choice to adopt them or otherwise and I will not be responsible for any major hiccups (though changing of settings can hardly do much harm, just undoing the changes will safely revert to the previous state).
I've observed that prior to the CTDs that happened ever so often on the 80 series drivers, my hdd started thrashing real badly, and screen updates become sporadic, pointing to the fact that the graphics end was doing badly. So I looked at the civ4 ini file and saw this:
; Sync input to smooth interface (may run slower)
SyncInput = 1
What I think this is for is probably vsync. Original setting was 0, I set it to 1 so that the graphics card wouldn't process frames in advance. This is normally enabled in games to avoid tearing, but I guess in civ4 it helps in stability.
; Enable Trilinear Filtering for the Minimap
MinimapTrilinearFilter = 0
This is basically what it says it is. Trilinear filtering for minimap. No big deal over this, you can set it to 1 if you like. For me, bilinear or trilinear makes no difference.
; Set max frame rate clamp (0 means none)
SetMaxFrameRate = 40
This setting, together with the vsync setting, is probably where the problem lies. Limiting the fps to 40 does not in anyway impair gameplay, this is not a First Player Shooter. For comparison, normal movies have 28fps thereabouts. Human eyes cannot discern significant difference from 30fps and above. So there is absolutely no reason to allow civ4 to attempt to process extraordinarily high framerates, which might be the reason why it breaks, probably due to problems with buffer or memory overwriting.
; Specify the number of turns between autoSaves. 0 means no autosave.
AutoSaveInterval = 1
This is (very likely) not related to the graphics problems. But many people are using this for convenience. Basically the game autosaves every x turns you specified.
; Enable D3D9 Queries
D3D9Query = 1
This is another area which might have caused stability issues. Original setting was 0. I set it to 1 since my card is Direct9 compliant. Another note for gen6 and gen7 nvidia card users, rolling back drivers is a bad idea because directx9c was constantly updated for its runtime components even up till today. You really ought to be using the latest drivers for better directx9c support.
Next, I looked into my forceware driver settings. Under "Performance and Quality Settings", in order to complement the civ4 ini settings and not introduce driver-level forced settings, basically here's what i set for most of the settings:
Antialiasing/Anisotropic = both application controlled
Image setting = Performance
Vertical sync = application controlled
Force mipmaps = Bilinear (Trilinear probably works as well, but you know me..)
Extension limit = off
Conformant Texture clamp = on
Triple buffering = off
Probably just ensuring vsync is app controlled would be enough, but I hadn't got the time to test it out with other values for the other settings. And this i what I have that got me through 4hrs of non-stop, god-speed civ4 gaming. . Hope this helps!
P.S. Just saying "hi" to all fellow Singaporean players..