Thief 1/2 & SShock 2: DDFix and Enhanced Resolution Patch - discussion - by bikerdude
Slynt on 21/10/2007 at 14:25
Just installed 1.0.8 and the crashing is gone now. Thank you! :thumb:
bikerdude on 21/10/2007 at 15:29
on my system:-
XFX nForce 680i
C2D E6600_2.4Ghz
8800GTX
DDR2-800
Xfi XtremeMusic
# Version 1.0.2:
-textures closeup look like they do when Thief2 is in software mode
-lurchy movment (eg. when Garret is moving),
-when attempting to quit the game, it would go to desk then, you would have to go back into the game and quit.
-the main menu animation would freeze when moving the mouse.
#Version 1.0.4, same as above
-textures closeup look like they do when Thief2 is in software mode
-when attempting to quit the game, it would go to desk then, you would have to go back into the game and quit.
-the main menu animation would freeze when moving the mouse.
#Version 1.0.7:
-textures closeup look like they do when Thief2 is in software mode
-Cutscenese dont play correctly.
#Version 1.0.8:
-textures closeup look like they do when Thief2 is in software mode
-Cutscenese dont play correctly.
biker
smithpd on 21/10/2007 at 17:13
Quote Posted by Nameless Voice
Confirming that the patch also works with System Shock 2....
Secondly, weapons are not properly rendered on top of everything else. Standing too close to a wall or object will make them disappear into that object
I had similar issues with Thief Gold. It seems that the patch is not a blanket fix but is dependent on what program you are fixing. It's not at all surprising, but it is a bit unfortunate.
Quote:
The DromEd problems still remain, though, which means that the supply of new FMs will probably dry up when the authors are stuck with DX10 cards...
This would be bad!:( I certainly hope this aspect can be fixed.
Pondering a little, one approach might be to disclose all of this to Nvidia and hope that they can include some fundamental fixes in their drivers, as opposed to patches for individual applications. One problem is that Nvidia does not communicate with users.
@Timeslip,
Based on your understanding (which seems to be pretty deep), do you think that fundamental changes to the drivers are possible? I would guess that you have a certain standing now and you might be able to penetrate Nvidia's wall with help from the rest of us.
WET on 21/10/2007 at 19:02
Quote Posted by owl
Quote Posted by Timeslip
Could be some sort of copy protection that uses an encrypted exe. What happens if you use the installer version?
I have the same problem as Muzman. My Thief2 is the official boxed version for Germany. Thief2.exe size is 250.438 Bytes, Thief2.icd 2.662.445 Bytes.
Version says 1.18, but I already learned that there are actually different versions with this label. There is no reference to DDRAW.DLL in all files of my Thief2 program directory. Same applies to my boxed german version of System Shock 2. Also my Thief2 and System Shock 2 run under XP without having to set the compatibilty mode, and I have no other problems with NVidia 8800 GTS.
Your installer is also clueless, it says "Could not locate code section to overwrite. Your version of Thief2 seems to be incompatible with this patch".
The DLL reference has to be scrambled somewhere in the .exe or .icd file.
The fixed exe from Nameless Voice (big THANK YOU) is 2.662.400 Bytes long and guessing from file size is like my .exe and .icd combined, but with much more DLL sections.
This is a direct consequence of the copy protection :p. Those who have versions of Thief (or SShock2) which use the loathsome SafeDiscV1 disk protection scheme (i.e. have an ICD file) are going to have this sort of problem. The main EXE is just the SafeDisc loader (basically a decryption program) which has nothing whatever to do with the game itself (the ICD file). Note that it is usually possible to decrypt ICD files using something like unSafedisc. (But you didn't hear that from me :angel:.)
It is also particularly interesting that there are at least three categories of users: those for whom things just work on XP, those who need various minor tweaks, and those (like me) who have needed to perform major surgery to get things working. (I still can't run SShock2.) I wonder what the common thread is.
On a related note: it would be a nice touch if we could arrange for a patch which didn't actually require changing the main binary at all. I think we could probably get away with arranging for a DLL to either pre-load or to be introduced earlier in the search path (e.g. Using the InjectDll, IgnoreLoadLibrary, and/or LoadLibraryCWD fixes from the Application Compatibility Toolkit). Then the patch could be version agnostic. If I read the 1.0.6 source properly, the only patch done directly to existing code is for the WindowFix: either we might find another way to work around that or else the patching could be done on-the-fly using pattern matching. (BTW what exactly is the WindowFix for?)
We could also whittle down what the patch needs to do by leveraging the already existing Application Compatibility Toolkit technology. For example, it already includes patches for the multi-core issue, the disk space issue, and several others. (FWIW, I've wrapped up my stab at a useful set and put it up at (
http://neilschellenberger.googlepages.com/) http://neilschellenberger.googlepages.com/.)
@Timeslip: I'd be happy to collaborate on this (or in any other way that I can). Just say the word.
Quote Posted by owl
By the way I find all the contributions in this forum just amazing. Thank you and respect.
That goes double for me. The TTLG crowd is a terrific bunch! And, in particular, the hacker of the hour: Timeslip!
frogdude on 21/10/2007 at 19:12
@Timeslip - i too am interested if a driver fix by Nvidia would be possible... so far, the only promising answer we've got from them was that they're aware of the issue and that they will fix it in the future (go here for to see the exact message i got from level 2 support: (
http://www.ttlg.com/forums/showthread.php?t=117468) )
So, in your opinion, could these modifications be integrated in a future driver release by Nvidia?
Btw, thanks again for all that you're doing! So far we've been hitting in the dark with little success (after a 10 page thread on the Nvidia forums + multiple complaints towards Customer Care all we got was the vague promise of a future fix mentioned above). Since you came along, things are finally starting to look a little more promising.:)
Slynt on 21/10/2007 at 23:12
Quote Posted by Bikerdude
#Version 1.0.8:
-textures closeup look like they do when Thief2 is in software mode
-Cutscenese dont play correctly.
That texture problem is starting to really bug me. I wonder what's causing it? The cutscenes not so much, since I can just play them outside the game.
Another problem I've got with 1.0.8 is that when I press esc to bring up the game's menu, the cursor will be the white Windows arrow rather than Thief's gold arrow. If I click, the game will minimize to Windows and I need to bring it up again to get the game's gold arrow cursor working.
Kerrle on 21/10/2007 at 23:42
I'd also like to confirm this works when running Thief2 in Linux using Wine - essentially it's just like Windows: better textures and sky, but no fog.
Timeslip on 22/10/2007 at 06:15
Quote Posted by Bikerdude
textures closeup look like they do when Thief2 is in software mode
What do you mean by that? Can I have a screenshot? Textures look fine here...
Quote Posted by Smithpd
Based on your understanding (which seems to be pretty deep), do you think that fundamental changes to the drivers are possible? I would guess that you have a certain standing now and you might be able to penetrate Nvidia's wall with help from the rest of us.
Dunno, I'm not a driver programmer. There's no reason why they couldn't do everything that I have in their driver; it's a case of whether they'd have to do it on a game by game basis, (in which case I doubt they'd bother,) or if they could do a blanket fix for everything that uses a 16 bit render target.
Quote Posted by WET
On a related note: it would be a nice touch if we could arrange for a patch which didn't actually require changing the main binary at all. I think we could probably get away with arranging for a DLL to either pre-load or to be introduced earlier in the search path
My usual method for these sort of patches is to just name the dll 'ddraw.dll'. Except when it's looking for a protected system dll, windows will check the application directory before the system folder, so my dll will get loaded instead of the real one. The problem with doing that here is that because of the interfaces thief tries to get, other DX dll's end up calling functions in ddraw.dll, and if they end up calling into my dll instead of the real one then thief crashes. afaik there is no windows api function to prevent the application directory being searched for dlls, or I could just remove it from the search path once my dll had loaded.
Injecting the dll would probably require version specific code for every version of thief 2 I wanted to support.
Quote Posted by WET
BTW what exactly is the WindowFix for?
This:
Quote Posted by Slynt
Another problem I've got with 1.0.8 is that when I press esc to bring up the game's menu, the cursor will be the white Windows arrow rather than Thief's gold arrow. If I click, the game will minimize to Windows and I need to bring it up again to get the game's gold arrow cursor working.
d'Spair on 22/10/2007 at 16:39
Quote:
The DromEd problems still remain, though, which means that the supply of new FMs will probably dry up when the authors are stuck with DX10 cards...
i don't think that it's SUCH a problem to construct new fan missions even with some crappy colors in the rendering mode
bikerdude on 22/10/2007 at 18:20
Quote Posted by Timeslip
What do you mean by that? Can I have a screenshot? Textures look fine here...
This is tested with a 8800GTX under 163.71 driver @1280x1024 - standard ddfix.ini settings
original:
Inline Image:
http://img232.imageshack.us/img232/7623/orginaltw5.jpgDDfix
Inline Image:
http://img517.imageshack.us/img517/9089/ddfixyn8.jpgSoftware:
(I've forgoten how to get thief to run in software mode)
The DDfix version seems to sharpen the textures - which resembles the way they look under the software version
biker