furiousgeorge on 6/3/2012 at 09:08
Question for all of you knowledgeable folks out there...
I've spent the better part of the evening mucking around with different versions of DDfix and Thief 2, trying to get the renderer to be recognized by my nVidia 3d Vision driver. As DirectX is used, and all Dark engine games at one point worked with nVidia's old stereoscopic driver, it *should* be possible to get Thief/T2/SS2 working with 3d Vision.
I've tried 3 different versions of DDfix (all the ones included in the latest TafferPatcher). And strangely enough it doesn't work with 2 more recent versions, but the oldest version (1.1.1) is detected as a 3d app by 3d Vision (IE, it knows you're playing a game and tries to render in 3d). The strange thing is it never seperates the view into 2 positions (doesn't fully work). The glasses and transmitter are definitely on. It seems very close to working.
I'm starting this thread in the hopes that those interested can contribute ideas/expertise on how we can get this working. Hopefully (if successful) we could turn it into an FAQ and more Taffers/Shockers can get in on the action.
For what it's worth, I've had my 3d stereo glasses for a year and enjoy them tremendously. I know there are detractors for stereo 3d, but I can honestly say it has helped me immerse myself far more into even old favorites. Might not be for everyone, but for those of us that like it, being able to play dark engine games in 3d would be frankly f'ing fantastic.
So, thoughts anyone? My next thought is to disable all new features implemented since 1.1.1 and see if 3d vision detects the game. Then the options can be turned on one by one. That way we can figure out how to get the latest ddfix at least partially working with it, and pinpoint bugs that hopefully could be addressed.
I should mention that I've got 3d vision working with DX1 (partially - one renderer), after similar efforts.
voodoo47 on 6/3/2012 at 12:58
1.1.1 uses dx9, all newer version use dx6, and therefore they will not work.
jermi on 6/3/2012 at 18:45
I assume such external stereoscopic rendering enablers work by modifying the hardware view transforms. If so, they will never work with Thief, since Thief does all transforms in software.
Theoretically it should still be possible to do at least some sort of stereo based on the vertex depth information, for example by offsetting the vertices in ddfix. Even if that were possible, the per-vertex calculations would probably be on the heavy side, enough to lower the frame rate at least a little.
Child Of Karras on 6/3/2012 at 21:34
Quote Posted by voodoo47
1.1.1 uses dx9, all newer version use dx6, and therefore they will not work.
That.
The new nvidia 3D vision as well as iZ3D require DX9 rendering or higher. nVidia used to have 3D Stereo implemented in older drivers that supported older DX versions, but they abandoned it in 2006 or something.
furiousgeorge on 7/3/2012 at 02:36
Quote Posted by jermi
I assume such external stereoscopic rendering enablers work by modifying the hardware view transforms. If so, they will never work with Thief, since Thief does all transforms in software.
I have no idea here. Would there be a way to determine this for sure? This tech has actually been around for years, and we know that dark engine games used to work with a now-retired nV stereo driver.
Quote Posted by jermi
Theoretically it should still be possible to do at least some sort of stereo based on the vertex depth information, for example by offsetting the vertices in ddfix. Even if that were possible, the per-vertex calculations would probably be on the heavy side, enough to lower the frame rate at least a little.
From my basic understanding of how the tech works, any time you enable stereo your vertex calculations do go up and you see a noticeable performance difference (20-40% frame rate from my experience), so yes that would be the expected result. The game is old enough, I'm not very concerned about a slight performance hit. Doing the rooftop mission in 3d will be worth it... :)
Thanks for the info about 1.1.1 as well guys.
For now, I'm going to revert to 1.1.1 and mess with the options and see if it helps at all.
EDIT: BTW, this wouldn't matter to me as much if I hadn't been told that DX1 would never work again with stereo either. one DX9 renderer later, it works GREAT.
Timeslip on 8/3/2012 at 08:39
Quote Posted by furiousgeorge
For now, I'm going to revert to 1.1.1 and mess with the options and see if it helps at all.
It wont. afaik, nvidia's drivers require you to render directly to the backbuffer. ddfix 1.1 renders to a seperate surface, and then draws that to the backbuffer later. Since everything drawn to the backbuffer has the same z-coordinate, it looks like everything is at a flat distance to the drivers.
partol on 11/3/2012 at 15:41
Is this the correct source code for DDFix Version 1.1.1 ?
(
http://enbseries.3dn.ru/forum/18-424-1)
(
http://www.mediafire.com/?31844vmebl1l111)
I opened this source code in Microsoft Visual Web Developer 2010 Express.
The file "ddinput.cpp" contains code for creating "fake surfaces" and other "fake" graphic entities. I edited ddinput.cpp and tried to re-compile back to ddfix.dll but I don't understand how to do that.
Please let me know which software I need to edit the source code and re-compile back to DDFix.dll
I have nvidia 3D vision. I would love to play Thief 1/2 (and possibly other dx6/7 games) in 3D.
What is the reason for these separate surfaces? What problems will happen if I skip the separate surfaces and instead, output directly to the buffers? I have no directX and no graphics coding experience. not sure what must be done but I would like to try.
Timeslip on 12/3/2012 at 07:07
Sorry to be blunt, but if you need to ask that you're probably not going to be able to modify it yourself. But you need visualC, not web developer, along with the directx sdk. The express version of VC should work.
The separate surface is required because of the way thief draws text to the screen. If you sidestep it, you'll lose inventory labels and the messages that appear at the top of the screen.
partol on 12/3/2012 at 20:55
need some help please. I am trying to compile the ddfix 1.1.1 source code.
Currently using Visual C++ 2008 Express Edition (from microsoft's website).
and DirectX 9.0 SDK (June 2005)
when opening ddfix.sln
6 files appear to open:
exports.def
SafeWrite.cpp
main.cpp
ddoutput.cpp
ddoutput.h
ddinput.cpp
I added full paths to all header includes which I found in those 6 files.
#include full_path_to/file_name.h
It compiles to ddfix.dll 543KB which is much larger than the original 1.1.1 version of ddfix.dll 79KB.
When I run thief2.exe with the re-compiled ddfix.dll
the error message is
"The program cant start because d3dx9_26.dll is missing from your computer."
Any help is appreciated.
At the top of ddinput.cpp , I see "#define DIRECT3D_VERSION 0x0600"
At the top of ddoutput.cpp , I see "#define DIRECT3D_VERSION 0x900"
partol on 12/3/2012 at 21:09
Nevermind. I figured out the problem.
Had to change compile mode from "Debug" to "Release".
ddfix.dll compiles now and thief2.exe starts and runs in dx9. no errors.
5-10 frustrating hours to reach this point. :erg:
Now for the hard part ... modifying the source code :confused: