Thief 1/2 & SShock 2: DDFix and Enhanced Resolution Patch - discussion - by bikerdude
Asaki on 16/11/2007 at 18:28
Quote Posted by smithpd
I think that means that the textures are originated as much smaller images in terms of screen pixel dimensions. They must be up-scaled (resized) to fit the screen dimensions wanted.
It's not really a matter of what resolution your monitor is running at, it's how the texture is stretched over the map architecture. The standard resolution textures are what was used in games such as Wolf3D, DOOM, Quake, and Quake 2. Say you've got a door that is 64 units wide, and 64 units tall, and you place a door texture over it that's 64x64 pixels (this is only an example, the texture could be any size, really, but there would be a portion of the texture that wouldn't be visible on the door). That's the standard resolution, and that's what a
few of the textures in Thief 2 are (the ones that appear blocky).
Most of the textures in Thief 2 are 2x res (most modern games scale them even higher), so take that same 64x64 door, and shrink a 128x128 texture to fit onto it. Dunno if that makes sense, but that's the best way I can think to explain it without using pictures.
Quote Posted by smithpd
Clearly, if you do the filtering after the texture is upscaled (by a factor of 8), it will not affect the blocky appearance so much.
It's the other way around, and I'm pretty sure they're scaled by 2x.
Quote Posted by smithpd
Another factor is that if you have higher resolution textures to begin with, then there will not be such extensive blocking.
I'm guessing that Thief 2's engine (or this DLL) is treating the 2x textures as the default size, and then stretching the normal res textures (which are now 1/2 res to the engine) to compensate...otherwise your one door would look like it had four smaller doors painted on it. It isn't the fact that the 2x textures are higher res that makes them not blocky, it's the fact that they aren't being stretched.
IMO, it's not really that big of a deal. The alternative is textures that are blurrier than all the rest, rather than being blocky, so there's no real happy medium without modifications to the game itself. Like I said before, it's not really a bug or even very distracting, it's just a matter of taste, like adding bilinear filtering to the menus, scrolls, maps, etc.
Sorry if I got a bit long winded, there.
smithpd on 17/11/2007 at 17:33
Asaki,
That's OK. Thanks for the information. But I still don't understand. If it is only a question of stretching in game space, then why do the door textures in the original EXE have a filtered look, but the door textures in the DDFIX'ed EXE have an unfiltered look? I can think of only one reason. It looks to me like the algorithm for stretching is different between the two. Apparently the procedures being called by DDFIX are giving each stretched block a constant color, and the original T2 is giving each stretched block a spatially varying color. The spatially varying color is done with a filtering or interpolation procedure. What causes that difference?
One thing I do understand now, which should have been obvious, is that the screen resolution doesn't matter - it is just an overlay on the intended display. If I increased my screen resolution 25% on each side, the blocks would change from 8 x 8 screen pixels to 10 x 10 screen pixels, right? But for a screen of the same physical dimension, the blocks would subtend the same solid angle to my eyeball, so they would look about the same, assuming I could not distinguish screen pixels. Is this correct?
Sorry if this discussion seems OT. I think it is important if the objective is to make the DDFIX'ed textures look like the original Thief 2 textures. The more I look at them, the more I think that DDFIX'ed textures are all sharper than the original T2 textures. The doors are only more obvious because they have larger sized blocks to begin with, so the lack of filtering / interpolation at some stage of the display is more noticeable.
My question is, what is that stage, and why is the filtering / interpolation not being applied in the same way?
Cary L. Brown on 18/11/2007 at 00:26
This did it. This wrapper allows me to run Thief TDP and Thief Gold on my machine. I haven't tried it with Thief2 yet (don't NEED to in order to play...) but I probably will at some point.
Anyway... this allowed me to run these programs on a system that refused to do it before due to the "DirectX incorrectly reports texture memory" error.
I then had to play with the cfg files for Thief to get my audio card (a non-Creative card... the HTOmega Claro Plus, a MAGNIFICENT sound card that also includes EAX 2.0 support). Thief assumed that I was using "device #2" and I had to manually edit to tell it that this was "device #1."
But as of right now, for the first time in over a year, I have the original Thief games running. I'm just ecstatic! :D
The only bug I have is the Light Gem issue that other folks have already talked about. It seems that the light gem is drawn, in "game space," at a distance of about eight to twelve feet "ahead" of me, so it's seldom visible. I have to stop and look up to see it.
Anybody know where in the program the depth of that item is set? If the render depth of this element could be fixed, the program would be PERFECT again.
smithpd on 18/11/2007 at 07:17
@Cary,
I am glad you are finally able to play Thief 1, but I think there should be a better way.
I tried DDFIX on T1 (it was not designed for T1) just to see what would happen, and it did the same thing. Some objects like the light gem had to be elevated above horizontal to make them display. It's not really satisfactory. I think there are better ways to get T1 working. In particular, if you have an Nvidia card, then you need to use certain drivers to make T1 work. Only a couple of versions (a modified 84.56 and 163.71) will work at present. You also need to set affinity to one processor if you have a dual core - something DDFIX does for you, but you can do in other ways. This is off topic here, so I don't think we should hijack this thread to discuss it further. You should start another thread or do a search if you want further information. Be sure to list your system stats.
Eshaktaar on 18/11/2007 at 11:43
I'm playing Thief 2 on Vista with a GeForce 8800 GTX, and this fix works very well. The only thing I notice performancewise is that when Garrett runs forward, there is a very slight hiccup in the forward motion.
The fog does not work, as mentioned before.
Concerning the blocky textures, it seems to me that all objects suffer from this. As Asaki explained, it looks like the texture is only filtered after it got scaled up, causing the individual pixels to still be quite visible.
Particle effects work well, TGAs included.
The only thing I found looking a bit odd (in my current FM which uses lots of TGAs) was a semi-transparent object that was too visible (as if only the TGA's transparency was taken into account, but not the object's).
Fantastic work - this looks so much better!
Cary L. Brown on 18/11/2007 at 17:23
Quote Posted by smithpd
@Cary,
I am glad you are finally able to play Thief 1, but I think there should be a better way.
I tried DDFIX on T1 (it was not designed for T1) just to see what would happen, and it did the same thing. Some objects like the light gem had to be elevated above horizontal to make them display. It's not really satisfactory.
Well, I agree that it's not ideal. But...
Quote:
I think there are better ways to get T1 working. In particular, if you have an Nvidia card, then you need to use certain drivers to make T1 work. Only a couple of versions (a modified 84.56 and 163.71) will work at present.
.. but that is completely unacceptable. I should not be required to reconfigure my entire system just to make one program work, and I have many other applications besides Thief that run on here which might be adversely affected by doing this.
The advantage of this "wrapper" is that it allows me to run Thief 1/G on this system without having to "specially customize" the machine... but rather to "specially customize" the application.
Quote:
You also need to set affinity to one processor if you have a dual core - something DDFIX does for you, but you can do in other ways.
Yep, very true. I use the "single processor affinity" setting from the MS Compatibility Administrator on virtually all of my games... it's annoying but true, anything more than about two years old will not run properly on multiple cores, I've found.
Quote:
This is off topic here, so I don't think we should hijack this thread to discuss it further.
I'm not at all in agreement that this is "hijacking" anything. I'm talking specifically about this wrapper. I am NOT talking about installing some hacked OS-level drivers (which I will not do just for a single application). I'm talking about fixing the application, and using this wrapper as the core of doing so.
If I knew where in the code the "render depth" for the light gem was, I think I (or someone, at least) could probably alter that to put it at a shallower depth... and that, as I said, would combine with this wrapper to make Thief 1/G run perfectly on machines it could not run on previously. I appreciate your input but in this case, it's entirely on-topic, I think.
Quote:
You should start another thread or do a search if you want further information. Be sure to list your system stats.
I may do that as well... but it would still have to link back to this because I have, as of yet, found no other way to get around the hard-coded Thief1 engine texture check bug. And short of someone getting their hands on the source code for that revision of the Dark engine, I doubt anyone ever will. Decompiling and reverse-engineering the original Dark engine just to find and excise the check (which clearly assumed some upper limit of texture memory... if you have more than that, it gets confused and assumes you have a negative amount of memory, most likely!) is an exercise I wouldn't be willing to take on... not without source code. I just don't have that much free time.
So, this wrapper (even if intended for other purposes) is a Godsend. I'm hopeful that it will grow beyond what it is today and lead to a DX wrapper that can simulate different versions of Direct3D and different hardware limits... which would make many currently-non-functional applications work again (and would inevitably, therefore, piss Microsoft off pretty severely... planned obsolescence is part of their corporate policy, after all!)
smithpd on 20/11/2007 at 06:05
First, you need to use an image editor to increase gamma in your screen shots. They are too dark to be seen without either (a) a super bright monitor, or (b) editing by the viewer (me). In-game gamma setting has no effect on screen shots. Typically, changing gamma from 1.0 to 1.8 in the image editor will make them visible to all.
Second, to answer your question, your image is the way Thief 2 should look with a 7000 series video card and without DDFIX, the topic of this thread. This is much better than the 8000 series video card, which is a mess. Still, you have a bad, blotchy looking sky, no stars, and some dark textures that could be improved. DDFIX will give you much improved sky, stars, and some improved dark textures (not evident in this scene). There will be a few negatives, too, such as returning from an escape to desktop and some textures that look more grainy. Try it. You will probably like it. Save a copy of your old EXE to compare them.
northeast on 21/11/2007 at 21:02
Would this also fix the flickering textures found in Thief 2 while running Vista? (Not all have this problem, but, some do.)
EvaUnit02 on 23/11/2007 at 01:52
When using DDfix with T2, the cutscenes are really laggy. Any way to fix this?
Thanks in advance.