Thief 1/2 & SShock 2: DDFix and Enhanced Resolution Patch - discussion - by bikerdude
Hiatus on 13/3/2008 at 19:26
ok, with UseSysMemOverlay=1 added to .ini ddfix-log.txt contents are the same as w/o it (as in step 2, with only UseCompatibleZBuffer=1 added).
3D H/W mode works as well in set res, and no crash.
ps nice performance now, btw: almost 100% (95-97%) of vanilla version (in the same checkpoint as mentioned a few posts above) whereas 1.1.1 only had ~80% of vaniila T2 in that particular place (heavily CPU bound - an extreme place in game specifically chosen for such tests).
====
more observations:
- with only UseCompatibleZBuffer=1 added to .ini (no UseCompatibleZBuffer=1 present) game is in 3D S/W mode and crashes quickly but mode is 1024x768x16, not 640x480x16.
so UseCompatibleZBuffer=1 is the key to 3D H/W mode.
- fog works fine in fog enabled missions (tested LotP only for now)
Timeslip on 13/3/2008 at 19:47
Quote Posted by Hiatus
adding only line: UseCompatibleZBuffer=1 to ddfix.ini fixed crashes and 3D hardware accelerated mode now WORKS! (in 1024x768x16)
Yay. :D
I've updated the beta to 1.2.2. Baring any more major problems, It'll replace 1.1 as the current version tomorrow.
I've set the UseCompatibleZBuffer line in ddfix.ini to 1 by default to fix the ATi crashes, but anyone with a nvidia card can set it back to 0 to get a slightly more accurate zbuffer if they want it. (Actually, I'd be interested to know if anyone can spot any difference between the two settings. Most games look horrific with a 16 bit zbuffer, but thief 2 seems to get away with it without any noticable artifacts. :confused:)
Hiatus on 13/3/2008 at 19:55
so UseCompatibleZBuffer=1 is 16bit Z-buffer essentially, and UseCompatibleZBuffer=0 is 24-bit (or 32)?
- 1 more thing I'd like to ask you to try to fix if possible (present in vanilla T2 as well): in game equipment loadout screen (where you you buy item, weapons etc) if you select an item to buy (arrow, for example), they rotate insenely fast on fast/modern machines, even though Vsync is enabled (looks like Vsync doesn't apply here). Do you have an idea what might be causing this and whether it is fixable?
- 2nd thing (also present in vanilla T2): texture seams. Do you remember (GL)Quake 1 for example and command gl_keeptjunctions 1 added to autoexec.cfg to get rid of texture seams (white "lines" visible more or less on some texture intersections)? T2 has them, too - to some extent. And I wonder if there's some D3D function (or just driver setting/tweak for Nvidia/ATI) to enable in D3D the equivalent of 'gl_keeptjunctions 1' in GLQuake. If it is, it's certainly set to disabled by default, and I wonder if there's a way to force enabling it to get rid of seams (these seams are especially visible on rooftop textures in level LotP for example when fog is enabled; but also in levels w/o fog). I'm not sure these seams are these because of not enough precise calculations by driver/card, or stem from not precise alignment of textures during level building, but the effect is still the same, and annoying.
Timeslip on 13/3/2008 at 20:14
Quote Posted by Hiatus
so UseCompatibleZBuffer=1 is 16bit Z-buffer essentially, and UseCompatibleZBuffer=0 is 24-bit (or 32)?
Yup. Using =1 creates a 16 bit zbuffer, and =0 creates a 24 bit zbuffer. (Actually it's 32 bit with 8 bits ignored. I've yet to see a graphics card that supports using all 32 bits.)
Unmodded thief uses a 16 bit zbuffer. I originally had it default to 24 bit because some graphics cards don't like using a 16 bit zbuffer with a 32 bit backbuffer. I've no idea why ATi fails to create a 24 bit zbuffer; I probably just had the z mask incorrect or something.
Quote Posted by Hiatus
- 1 more thing I'd like to ask you to try to fix if possible: in game equipment loadout screen (where you you buy item, weapons etc) if you select an item to buy (arrow, for example), they rotate insenely fast on fast/modern machines, even though Vsync is enabled (looks like Vsync doesn't apply here). Do you have an idea what might be causing this and whether it is fixable?
On menu screens thief 2 doesn't flip between the front and backbuffer, so it isn't limited by vsync. It just locks the front buffer and writes to it directly. I can force a vsync, but when I tried doing that in older versions it caused problems like the stuttery movies, the background not updating while you moved the mouse etc. In 1.1 it forced a vsync every few frames by default, which fixed the spinning without messing up the backgrounds, but it still meant that you manually had to hit scroll lock to disable it for for movies, or they would stutter.
Quote Posted by Hiatus
- 2nd thing (also present in vanilla T2): texture seams. Do you remember (GL)Quake 1 for example and command gl_keeptjunctions 1 added to autoexec.cfg to get rid of texture seams (white "lines" visible more or less on some texture intersections)? T2 has them, too - to some extent. And I wonder if there's some D3D function (or just driver setting/tweak for Nvidia/ATI) to enable in D3D the equivalent of 'gl_keeptjunctions 1' in GLQuake. If it is, it's certainly set to disabled by default, and I wonder if there's a way to force enabling it to get rid of seams (these seams are especially viisble on rooftop textures in level LotP for example when fog is enabled; but also in levels w/o fog). I'm not sure these seams are these because of not enough precise calculations by driver/card, or stem from not precise alignment of textures during level building, but the effect is still the same, and annoying.
I reduced the seams a bit in 1.1 by making sure the texture coords on any vertex were never exactly 0 or 1 on any vertex, but in the end I dropped it because it didn't help much. I think it's just a quirk of positioning that I can't fix. :(
bikerdude on 13/3/2008 at 20:24
Quote Posted by Timeslip
Yay. :D
I've updated the beta to 1.2.2. Baring any more major problems, It'll replace 1.1 as the current version tomorrow.
Smashing... will this version come with the gui..?
many thanks again for all the hard work.
biker
Hiatus on 13/3/2008 at 20:26
ok, we'll just have to live with both texture seams and fast-rotating objects in menus if fixing them is unfeasible/causes undesired side effects.
1 more thing I've noticed (on vanilla T2 and both modern nVidia/ATI) when I was replaying level Shipping and Receiving (2nd in game) lately (possible that also seen in other levels): disappearing objects: when looking from a certain distance/angle objects in game disappear completely/partially. Examples on that level: metal stairs between 2 big buildings (A and B) on that level, table/chair on the ship on the same level etc. Again, do you have any idea of the cause of this and whether it's fixable? Could it be caused by only 16-bit Z-buffer (or sth like alpha channel etc)?
Timeslip on 13/3/2008 at 21:21
Quote Posted by Bikerdude
Smashing... will this version come with the gui..?
Sure. I'll drop the storing ddfix.ini in the appdata folder thing though; ddfixGUI already needs to run with admin privelages to patch thief2.exe properly, so there's no harm in keeping the ini in with the rest of the gunk.
Quote Posted by Hiatus
1 more thing I've noticed (on vanilla T2 and both modern nVidia/ATI) when I was replaying level Shipping and Receiving (2nd in game) lately (possible that also seen in other levels): disappearing objects: when looking from a certain distance/angle objects in game disappear completely/partially. Examples on that level: metal stairs between 2 big buildings (A and B) on that level, table/chair on the ship on the same level etc. Again, do you have any idea of the cause of this and whether it's fixable? Could it be caused by only 16-bit Z-buffer (or sth like alpha channel etc)?
Does it happen without ddfix? If so, it's probably a dodgy view frustum check. That's something handled by the game before it gets to directx, so my patch won't be able to help. I doubt it's the zbuffer - that would cause parts of the object that were close to another object to disappear behind it even if it was in front when you got closer.
Hiatus on 13/3/2008 at 21:36
Quote:
Does it happen without ddfix?
yes, it was on both vanilla T2 and ddfix 1.1.1 (will try with 1.2.2 but I doubt it'll change anything in this regard).
EDIT: just checked: also happens on 1.2.2.
Nameless Voice on 13/3/2008 at 23:04
Quote Posted by Hiatus
...they rotate insenely fast on fast/modern machines
More likely because it rotates as fast as the computer can render it, rather than using a proper timer.
Quote Posted by Hiatus
texture seams.
That happens because Dark (and many other engines) blend the leftmost pixel of the texture with the rightmost pixel of the texture. If the next surface has a different texture on it, then the blending will still be with the other side of each texture, rather with the neighbouring texture.
Quote Posted by Hiatus
disappearing objects: when looking from a certain distance/angle objects in game disappear completely/partially.
Again, Dark Engine renderer fault / optimisation. It sometimes mistakely considers a very large object to be offscreen if only the very edge of it would be viisible. Also, objects start to vanish if there are more than a certain number of them onscreen at any one time (regardless of the number of polies in each object). This limit is ~128 objects.
Hiatus on 13/3/2008 at 23:30
@NV:
thanks for the explanation: I suspected at least some of these issues were graphics driver related (and I was cursing ATI/nVidia along the way), now I know it's not the case. Are all of these issues completely unfixable without DE full source code available?
[dream mode on]I wish DE games were ported to something like Unreal Engine 3 etc one day. Something like 10/15/20th Anniversary Edition on a modern/suitable engine[dream mode off]