ddfix

Play Thief 2 on modern hardware in high resolution and true color

 

Last updated 19.1.2014
jere.leppanen@gmail.com
jermi at ttlg.com/forums

Based on ddfix 1.3.11 by Timeslip. Up to version 1.5.5 changes are included as a diff patch that applies on 1.3.11. Starting with version 1.5.6 there is a separate source code package. All packages are available at http://jermi.dyndns.org/~jermi/ddfix/, including the latest binary package and the latest source package. See instructions and changelog for 1.3.11 and earlier versions in ddfix 1.3.11 readme.txt.

Supported games: TG v1.37, T2 v1.18, SS2 v2.3, FU3 v1.9.

Supported editors: Dromed v1.37, Dromed2 v1.18, ShockEd v2.12.

Need help? Start here.

Changelog

ddfix 1.5.13

  • Flight Unlimited 3 support.
    • Support for arbitrary resolutions (up to 2048x2048, 1024x768 is the smallest that works).
    • Overlay flickering fixed.
    • Pointer trailing removed.
    • Clean overlay transparency edges.
    • New sun texture.
    • New lens flare implementation and textures.
    • Aeroplane shadow partially fixed.
    • Fixed post processing and set reasonable defaults specifically for FU3.
    • Fixed stars.
    • Installation instructions:
      1. Extract the package into the FU3 installation directory.
      2. Since FU3 doesn't have it, create a file named "cam.cfg" with this content (substitute whatever resolution you like):
        game_screen_size 1920 1080
      3. If you want, you can enable post processing by editing ddfix.ini and setting
        [PostProcessing]
        Enable=1
      4. Either replace the game exe with a prepatched exe or patch your current game exe by opening it with a hex editor and replacing the first and only the first occurence of the ascii string "ddraw.dll" with "ddfix.dll".
      5. Start the game.
      6. If you get to the menu (fingers crossed), set the resolution to 1024x768 in the graphics options, unless already set.
      7. Start the engine, release the brakes, you know the rest.
  • Fixed normal (non-dynamic) gamma control.

ddfix 1.5.12

  • Removed white line at the top and left edges of the screen when using bloom and anti-aliasing.
  • Fixed expanding minimap and notifications in SS2 when using ModulateShift.
  • Fixed a rare crash during replacement texture loading.
  • Texture auto replacement support for SS2 and ShockEd game mode.

ddfix 1.5.11

  • New parameter ModulateShift. D3DTOP_MODULATE is replaced by D3DTOP_MODULATE2X or D3DTOP_MODULATE4X. Effectively, levels are multiplied by 2**ModulateShift without any posterization.
  • Dynamic gamma.
  • Dynamic bloom threshold.
  • New parameter FlipVSync.
  • Fixed scouting orb aspect ratio.
  • Widescreen memory patches now use SafeWrites, which may behave better in some systems.
  • New parameter SafeMode.
  • Max sky intensity in mis files is ignored. No need to run t2skies.exe / t2stars.exe for FMs anymore.
  • Default for TripleBuffer changed from 0 to 1.
  • Default for ZBufferBitDepth changed from 16 to 24.

ddfix 1.5.10

  • Removed the useless alpha channel from the screenshots.
  • Even more improved limb rendering fix for custom limb models with self-illuminating materials. T2 only.
  • LimbZBufferFix now works also in "Masks".
  • Fixed a problem with water transparency. New parameter WaterAlphaFix.
  • Fog for "Framed" is no longer forced by default.
  • The default for BloomUI is now 0 for the game executables and 1 for the editors, because BloomUI=0 doesn't work with the editors.

ddfix 1.5.9

  • Fixed bloom for arrows when BloomUI=0.
  • Improved limb rendering fix for custom limb and carry models. No effect on original models.
  • Fixed overlay key color problems that caused solid color screen on some systems. Default key color is 0xffdf for both Thief and SS2.
  • Fixed a bug that caused saturation to be applied even when post processing was disabled.

ddfix 1.5.8

  • Fix for the limb model rendering bug in T2. New ini file parameter LimbZBufferFix.
  • Replaced the ini file parameter UseCompatibleZBuffer with new parameter ZBufferBitDepth.
  • All UI elements are now unaffected by bloom (except the minimap and some text boxes in SS2). New ini file parameter BloomUI.
  • Replaced the ini file parameter BaseSaturation with Saturation, which is an overall saturation control affecting also bloom and the overlay. Bloom is affected by both Saturation and BloomSaturation.
  • Fixed some crashes (with debug version) due to released FakeVidTextures being used.
  • Fixed some crashes (with debug version) due to lost surfaces.
  • Renovated the sample ini file. Now all the settings are commented out, and are exactly the same as the defaults in the binary.
  • Bloom trailing no longer causes indefinite afterimages.

ddfix 1.5.7

  • Fixed bloom whiteout when console is active.
  • Fixed messed up and flickering console. (Still some flickering remains if TripleBuffer=1.)
  • New parameter LayeredOverlay. If LayeredOverlay=1, overlay is blitted to the backbuffer on every Unlock() call. This fixes the missing item model bug in SS2 inventory info.
  • Auto replacement textures are now placed in the same directory with the texture to be replaced, and replacement extension must be .r.dds, .r.tga, .r.bmp or .r.avi. (r for "replacement")
  • Widescreen support. Based on weak-ling's DarkWidescreen patch. Parameters gWidth and gHeight removed, information in cam.cfg is used instead. New MemAddr parameters Resolution, VertResLimit and AspectCorrection are set automatically for TG, T2 and SS2.
  • Field of view (FOV) modification support. Based on weak-ling's DarkWidescreen patch. New parameter FovModification. New MemAddr parameter FovModification is set automatically for TG, T2 and SS2.
  • Item size setting (Thief only). Based on weak-ling's DarkWidescreen patch. New parameter ItemSize. New MemAddr parameter ItemSize is set automatically for TG, T2 and SS2.
  • UseSysMemOverlay and TextOverlayColourKey as well as LayeredOverlay are set automatically for TG, T2 and SS2.

ddfix 1.5.6

  • Texture (pcx,gif,tga) auto replacement (uses giflib to decode gifs).
  • Replacement texture search order changed from tga,dds,bmp,avi to dds,tga,bmp,avi.

ddfix 1.5.5

  • Fixed a bug with the screen turning pure white when looking at a near wall in SS2.
  • Per-mission ini files, new parameter EnableMissionIni.
  • New parameter EnableGamma. Set EnableGamma=0 to disable gamma correction.
  • New postprocessing parameters BloomShift and BloomShiftRemodulate.

ddfix 1.5.4

  • Desktop resolution is restored when returning from Dromed game mode, even if game mode and editor are set to the same resolution.
  • If UseCompatibleZBuffer=0, out of two different z-buffer formats the one that works is used.
  • Texture replacement support for Dromed2 v1.18, Dromed v1.37, ShockEd v2.12. (Excluding TextureExists hook.)

ddfix 1.5.3

  • Fixed UseCompatibleZBuffer=0, which now means 24 bits (UseCompatibleZBuffer=1 still means 16 bits).
  • Menu screens and videos use Flip(), and triple buffering if TripleBuffer=1. There should be no more video tearing if vsync is on. As a side effect, Fraps can record seamlessly including menu screens, loadout and videos.
  • MenuUpdateDelay is off by default. It's not needed if vsync is on.
  • Texture replacement support for SS2 v2.3.

ddfix 1.5.2

  • Anisotropic filtering for the first stage only, linear for the second stage. For the second stage (light maps) anisotropic does cause some glitches after all.
  • Triple buffering.
  • FlipInterval option. Translates directly to DDFLIP_INTERVAL* flag in the Flip() call.
  • MenuUpdateDelay option.

ddfix 1.5.1

  • PrintScreen works for menu screens now also.
  • Added setting of maxanisotropy for the second texture stage.
  • Frame rate limiter.
  • Revisited menu screen update delay. Supports T2 and TG.
  • New ini file option for setting the menu screen aspect ratio.
  • Texture replacement support for TG v1.37 (T2 v1.18 was already supported). Removed Thief2Extensions option and added new TextureReplacement option.
  • New ini file section MemAddr allows direct setting of the memory addresses to be patched.

ddfix 1.5.0

  • Fog. SiO2's idea: fog requires w-friendly projection transform.
  • Added restoring the filter functions for the second texture stage after post processing.

ddfix 1.3.11.4

  • Added post processing options: (de)saturation, bloom.

ddfix 1.3.11.3

  • Introduced some delay in the menu / loadout / readable screen update to lower GPU temperature and to slow down object rotation in the loadout screen.

ddfix 1.3.11.2

  • Added support for Avi textures. The usual size restrictions apply. Use any VfW combatible codec that decodes into RGB.

ddfix 1.3.11.1

  • Fixed the mipmap problems with the replacements to some textures, such as grass textures (NTEX), green water, and others.
  • Removed the "You seem to be trying to use ddfix 1.3.11 or newer with an exe patched to use 1.3.10 or older" check.

External Components

giflib

The GIFLIB distribution is Copyright (c) 1997  Eric S. Raymond

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
THE SOFTWARE.