DSfix FAQ & current development

Since there are some question that are repeatedly asked (over and over again), I thought I’d put up a small FAQ.

The game crashes, help!
Make sure that you are not running any other applications that interact with Direct3D, such as various overlays. Also, some people seem to be able to solve the issue by renaming or removing the movie files in the “movWW” folder.

The game only shows up in a small part in the upper left corner!
Turn off the in-game AA option. And read the readme.

Can you improve the performance of the game?
Beyond reducing the main/dof resolution (which likely isn’t the issue on most low-end systems anyway) there is not much I can do, sorry.

Will you release the source code?
Yes, as soon as it is at least remotely presentable and I no longer make large changes daily. I hope it will help people attempt similar things for other games and/or implement the 100s of features people are asking for in Dark Souls that I will never get to.

 

Today’s Progress (or lack thereof)

What I spent most of today on was trying to make it possible to accurately track texture and surface usage through the whole application. This would enable far more fine-grained and specific changes. My idea was to wrap IDirect3DTexture and IDirect3DSurface — which also requires wrapping IDirect3DBaseTexture9 and IDirect3DResource9. Currently (up to and including 0.8) only IDirect3DDevice9 is wrapped.

The problem is that when I finished wrapping all these objects I get a crash at startup. It seems that the GFWL overlay is doing something strange with a texture it generates, and I simply cannot find out exactly what is going on. I spent hours trying to debug the issue. Now I have two options: either I give up on the idea of wrapping textures/surfaces (throwing away a day of work and the cleanest way to accomplish future modifications) or keep working on it in the hope that I can somehow track down the issue.

Neither of those seem very enticing right now, but I still lean towards the latter. My first step is to sleep over it. If I really cannot resolve the issue in the next few days I may just release the source in its current state and hope that many eyes see more than two (and that people are forgiving of terrible code).

 

DSfix 0.8

I hope all the Optimus users enjoy this one! It required quite a bit of effort. Changes:

  • DSfix is now a Direct Input wrapper instead of a d3d9.dll wrapper. This was done to fix the Optimus issue, and it should also allow people to use other additional D3D wrappers for postprocessing effects (FXAA, SMAA, etc)
  • There is a new setting “dinput8dllWrapper” which allows you to use additional DirectInput wrappers on top of DSfix should you so desire. I don’t think many people will need this, but it’s there for those who do!
  • The way logging was handled when disabled has been improved, so you could see slightly improved performance in CPU limited situations with “logLevel 0″ (the default)

When upgrading from previous versions, make sure to first delete d3d9.dll and the old .ini!

Consider donating if you like the mod.

DSfix version 0.8 download

Please please remember to read the README.txt!

Edit: before I forget, thanks to Boris Vorontsov for putting me on the right track for how to fix this issue!

DSfix 0.7

Edit: it seems the intro skipping feature isn’t working properly for most people. Just ignore it for now!

This release adds 2 new features:

  • Save game backups: backs up the saves at regular intervals. The maximum number of stored backups can also be set. I implemented this since I almost lost my save while testing. The minimum interval is set fairly high to discourage people from using this to cheat death.
  • Intro skipping. NOTE: the way this is implemented is completely insane. It works for me, but I can’t guarantee that it won’t set your computer on fire. Just turn it off if you experience problems.

Now that these convenience features are out of the way I’ll focus on the graphics again.

Consider donating if you like the mod.
Regarding donations, I was told that the donation page was in German so far, it should now be set to English.

DSfix version 0.7 download

Please please remember to read the README.txt!

DSfix 0.6

There is more changed “under the hood” here than what is visible, but I managed to fulfill 2 popular requests:

  • Added a “borderless windowed fullscreen” mode. This is very useful for people with multiple monitors, or even if you just want to do fast alt-tabbing. You can switch from windowed mode to “fake fullscreen” and back using F8. It can also be configured as a startup setting in the .ini
  • Added a language override option in the .ini
    Set it to e.g. en-GB to play the game in English without manually changing your system locale back and forth. (This is probably only useful for non-English users)

I also improved the code base significantly. Just as one example, previously adding a new setting, reading it from the .ini, making it available where it is needed and logging it required 6 or so lines of code in 4 different places. Now it’s just 1 line in 1 place.

Also, some compilation settings and manual optimizations were introduced that may make the wrapper marginally faster, but this most likely won’t have an effect on game performance.

As always, consider donating if you like the mod.

DSfix version 0.6 download

Please please remember to read the README.txt!

DSfix 0.5

This is a maintenance release, and adds a few mouse-related features people were asking for.

  • Mouse cursor toggling with F9 should now be less finicky
  • You can toggle whether the mouse is allowed to leave the window with F10
    (this is useful in windowed mode or in fullscreen with multiple monitors)
  • Both of these settings can also be set in the .ini
  • The fix introduced in version 0.2 for cut-off text/buttons has been reworked to be much less invasive — if you have seen any degradation in performance or functionality from 0.1 to 0.2 this should fix it (I haven’t seen any changes)

This will probably be the last version for a little while, I have to go to work tomorrow ;)

Consider donating if you like the mod.

DSfix version 0.5 download

Please please remember to read the README.txt!

DSFix Optimus testing

Edit: This fix didn’t work out, sorry. No further testing required for the moment.

I was told that the Nvidia card can be directly selected by an application on an Optimus system by selecting a different D3D adapter. I have no way of testing this since I do not own an Optimus device.

If you are an Optimus user (and only if you are an Optimus user) please download this version, test it on your system, and leave feedback below.

(link removed, this fix does not work)

Also, please do not get your hopes up just yet that this will fix the Optimus issue. Since I have no way of testing it I have no idea if it will work.

DSfix 0.4

This version fixes the Depth of Field (DoF) effect, the last huge “bug” of the mod in my opinion.

  • Added an .ini setting for overriding the DoF resolution
  • I also provide the option to completely disable DoF scaling. However, I don’t recommend that. I think the game looks better with DoF, and it’s the way From Software intended it. Also, disabling the DoF this way may actually reduce performance.

See a screenshot showing off the fixed DoF here.

Consider donating if you like the mod.

DSfix version 0.4 download

Please please remember to read the README.txt!

Some important DSfix remarks

  • If you just see a black screen with a grey square in it, disable the in-game AA setting. And try to read the readme in the future.
  • The issue with Optimus is know, but I can’t promise a fix soon, since I don’t own an Optimus device to test on.
  • I am currently working on fixing the DoF effect, I can’t say when that will be ready. Other requests will come after that.