Thief 1/2 & SShock 2: DDFix and Enhanced Resolution Patch - discussion - by bikerdude
owl on 20/10/2007 at 07:29
Quote Posted by Muzman
Haha. Looking at Thief2.exe in the first free hex editor I could find shows no instances of ddraw.dll (or DDRAW.dll, or DDRAW.DLL) anywhere in the file. Quite a few other dlls get mentioned though.
Oh well, guess I'm out of this game.
No DDRAW.DLL in my thief2.exe, too. Version is 1.18, file length 250.438 Bytes.
Nameless Voice on 20/10/2007 at 08:00
I've temporarily uploaded the patched .exe file (
http://senduit.com/bd062e) here. That link will expire in one week, by which time we'll hopefully have a full patch uploaded somewhere anyway.
Note: That archive just has the modified Thief2.exe (which I renamed to
ddfix-Thief2.exe to avoid confusion / overwriting). It does not include Timeslip's fix itself.
TheNightTerror on 20/10/2007 at 08:15
*whisper* That's a link to a local hard drive directory. *whisper*
Nameless Voice on 20/10/2007 at 08:19
Oops, fixed now! :o
Timeslip on 20/10/2007 at 16:43
Quote Posted by Nameless Voice
I get this with the new version:
oops..
Fixed in 1.0.6.
Quote Posted by WET
@Timeslip: Any chance of sharing the source code so that we can see the techniques being used? Along the same lines, how are you debugging all of this? I've been painstakingly single-stepping using a remote IDA Pro session but it sounds like you have some higher level tools to see the DirectDraw and D3D stuff directly. PM me if you've got the time and inclination.
Source code is included with the non-installer version, in the src folder.
ida pro wasn't involved, apart from looking at a few callback function to see which texture types thief was checking for. It's just a pile of fake DX interfaces, so they don't really care what thief is doing, just which DX functions it calls.
Nameless Voice on 20/10/2007 at 17:15
A few more:
* Trying to start a game with the resolution ingame set to anything other than the resolution in the .ini will cause a crash. (I think you know that already)
* Bringing up the console ( with shift+; ) makes the screen go black. You can't see the game or the console, until you hit return or esc.
* ParticleFixTest=1 doesn't fix the particle bug.
* DromEd issues are still present.
* Setting the CPU speed to Highest instead of Adaptive (I'm using a laptop) has no effect on the massive slowdown.
Edit: On another note: Bikerdude, it's really hard to find the link to the patch in your original post. Plus, you have a section in blue, which has an underlined section. Since links are underlined and blue on this forum, one automatically assumes it's a link and tries to click it - which, of course, doesn't work.
bikerdude on 20/10/2007 at 19:27
Fixed..
Btw does anyone think its worth getting the admin's to making this thread a sticky..?
NB. ive updated the 1st post to include the ongoing work by Timeslip.
biker
Nameless Voice on 20/10/2007 at 19:39
Not just yet, but maybe later.
smithpd on 20/10/2007 at 20:51
I suggest that sticky status should wait until ddfix is debugged and stable. Then the title can be changed. It might be worthwhile actually to start a new sticky thread when all is stable and leave all this debugging discussion out of it. It is up there and active anyway.
@Timeslip,
Two new issues and one question.
I encountered an error in the GUI. Before install it said it needed .NET framework 2.0 or later but it couldn't find it. I already had .NET 2.0 SP2 installed at the time. I continued installing the GUI, and on launch it said "The application failed to initialize properly (0xc0000135)". I then ran a repair on the .NET 2 installation, and nothing changed. I then deinstalled .NET 2 and installed .NET 3 and it worked. Do you really require .NET 3? If yes, the error message is misleading. If no, then do you know why .NET 2 did not work for me?
I have found something strange with the frame rates that may shed light on the performance hit some people are describing. I guess my system is fast enough that I don't have a performance issue in game, but I noticed another problem described below.
First of all, before I installed ddfix, I used to let the application decide on vsync, and it worked just fine with Thief2.exe. Garrett ran at a normal speed with app controlled vsync. Now, with ddfix applied, application controlled vsync doesn't work. If I set both vwait=0 and LimitFPS=0, then Garrett runs very fast. I think this means that vsync is not working, which means that the application is not sending the control message to the driver. If, then, I go into the Nvidia control panel and force vsync to always on, then Garrett runs normally as he should. This seems all right in game, but then I notice a very stuttery response while in the Thief menu. The mouse-over effects are slow to react. Also, the resolution change on reading books is slow and jerky. So, something about forcing vsync on in the drivers is working badly in the ddfix version. I suspect that this issue may be affecting frame rate in-game for some.
To check out this stuttering menu problem, I set vsync back to app controlled in the driver and, to prevent Garrett running fast, I set LimitFPS=1 for the game. Now Garrett runs normally again, and strangely, the menus and resolution changes are again quick to react. I also notice another small issue. Garrett's running motion is not totally smooth in this LimitFPS mode. There are small speed variations -- not enough to complain about, but noticeable compared with the way the driver's vsync used to work. I speculate that you might be controlling FPS by some time-wasting procedure that is adversely affecting performance for some people. I wonder if it might be worthwhile to bring back the old default behavior, where application-controled vsync worked, as an option. This might resolve performance problems, but I really don't know. In any case, it seems that that menu stuttering needs more study.
Last and not least, do you have any word on the fog? I am waiting with bated breath.
Thanks again for your work on this! :)
Nameless Voice on 20/10/2007 at 21:14
Only if you use the GUI, I presume.
I don't have the .NET 2 framework installed (I seem to have 1.1?) and it still worked. I didn't use the GUI, of course, since I already have my own patched .exe.