Non-Standard Bindings

Dark Souls Input Customizer

What is this?

Have you ever wanted to open the gesture menu by Left Trigger + Spacebar + Mouse Wheel Down? Now you can! The Dark Souls Input Customizer allows you to bind any action to arbitrary combinations of keys or buttons on the controller, the mouse or the keyboard. Use a simple GUI to create individual input profiles with advanced options, such as separate sensitivities for bow aiming or the usage of of non-standard actions like roll-only. It also includes a complete fix of the mouse controls as well as dedicated support for the Steam Controller.

Overview

Description

The Dark Souls Input Customizer (DSIC) allows full customization of the controls of Dark Souls. It uses an intuitive input system that allows the rebinding of every action to arbitrary combinations of keys or buttons on the controller, mouse or keyboard. Although this can in part also be achieved with existing tools, DSIC is much more flexible and wraps it all up in an easy to use package, with additional functionality that is specially tailored to Dark Souls.

DSIC also fully includes the Dark Souls Mouse Fix, which does not have to be installed separately.

Features

  • Allows any action to be bound to an arbitrary combination of keys or buttons on the controller, mouse or keyboard
  • Flexible options such as individual sensitivities for camera movement and bow aiming
  • Complete fix of the mouse controls with UI cursor support and no additional smoothing or acceleration
  • Includes a GUI for easy configuration
  • Steam Controller support
  • Compatible with DSFix

Instructions

Supported Versions

This mod only works with the latest, fully patched Steam version.

Important: The mod relies on the layout of the executable. Older versions or ones that otherwise have been tempered with probably will not work. This also means that if the game were to be patched — which is very unlikely at this point — it might break the mod and require it to be updated.

Install

The mod does not make any permanent changes to the system, the game or the configuration of the game and can easily be removed (see below).

  1. Install Durante’s DSFix if you haven’t already
  2. Extract the contents of the DarkSoulsInputCustomizer.zip to the same folder. For example: "C:\Program Files (x86)\Steam\steamapps\common\Dark Souls Prepare to Die Edition\DATA"
  3. Look for the dinput8dllWrapper line in DSFix.ini and set it to dinput8dllWrapper DarkSoulsInputCustomizer.dll. No additional configuration of DSFix is necessary
  4. Start DarkSoulsInputCustomizerGUI.exe to set bindings and other settings as desired
  5. Start the game normally, for example directly through Steam. If you want to change the settings while in the game, see the Configuration section below on how to do that

A few additional notes on the installation:

  • You should hear a DSIC loaded message on game launch when the fix is installed correctly. This sound can be turned of in the config
  • If you currently have the Dark Souls Mouse Fix installed, make sure to replace the line with dinput8dllWrapper DarkSoulsInputCustomizer.dll instead of just adding another one
  • The GUI requires the Microsoft .NET Framework 4.6.1, which should already be installed on most systems. If you are having problems starting the GUI, you can download the required version here

Uninstall

  1. Set the dinput8dllWrapper setting in DSFix.ini to none and delete the files of the fix

Configuration

Although the configuration using the GUI should be easy and straight-forward, there are some things to note:

  • The GUI provides tooltips with additional information about a setting
  • You can change settings while in the game by using the Reload Config binding, which is per default set to the '-' key on the numpad. Just change the settings in the GUI as necessary, press save and then use the binding to reload the config in-game. You should hear a DSIC Reloaded sound message when the reloading was successful
  • You may also want to enable borderlessFullscreen in DSFix for easier switching between the GUI and the game
  • It is not necessary to unbind a key or button in the in-game settings to use it with the fix

Binding System

The binding system allows you to bind any action to an arbitrary combination of keys and buttons on the controller, mouse or keyboard. The system works reactively. To bind an action, double left click the corresponding box. When the box turns green, press the combination of keys or buttons you would like to assign. The combination is set once any pressed keys or buttons are released.

The mod should work with arbitrary devices that are either mice, keyboards or XInput compatible controllers. In the case of keyboards you should be able to use almost any keyboard key, independent of the keyboard type or layout. The key names are dependent on the layout currently set in Windows. If you are using an English layout, the key names will be in English, while an AZERTY layout will lead to French names. Bear in mind that the key names are automatically determined by using a Windows function and not all keys have pleasant display names.

A few additional notes on the binding system:

  • Each key or button pressed before another acts as a modifier for the next one
  • Any key or button can be used as a modifier, not just ALT, CTRL or SHIFT
  • There is no limit to how many keys or buttons can participate in a binding. You can set a combination involving half a dozen of them if you want to
  • The order you are pressing the keys or buttons in is only important during the binding process to differentiate between bindings that involve the same modifiers
  • To unbind an action double right click the corresponding box

Profiles

Profiles can be used to create specific configurations for certain builds or to use different control schemes for multiple people who are using the same computer. The check mark on the tab indicates which profile is currently active and being used by the mod. You can also toggle all available profiles while in the game by using the Toggle Profile binding.

On first launch, DSIC will create a set of standard profiles for each basic control method — mouse and keyboard, gamepad and the Steam Controller. You can either modify these basic profiles or create as many new ones as you want by clicking the + button on the profile bar. To rename or delete a profile, just right click the tab.

The profile system works on the basis of files. If you want to share a profile with someone else, just copy the file with the corresponding name.

Movement And Camera Control

The Movement/Camera Control setting determines how the camera and the basic movement of the character are controlled:

  • Keyboard and Mouse: Enables raw mouse input for camera control and uses bindings for movement. Deactivates analog sticks and vibrations
  • Gamepad: Standard controller behavior. Uses the left and right analog stick for movement and camera control. Disables raw mouse camera
  • Steam Controller: Enables raw mouse input for camera control and uses the left analog stick for movement. This requires that the mouse is mapped to the right control pad in the Steam Controller software

Note that this setting has no effect on any other bindings. It is entirely possible to use keyboard or mouse bindings in Gamepad mode an vice versa. This mod is all about customization and the input system is purposefully designed to be as flexible as possible. This should hopefully also help people who are using unusual controllers or are otherwise not able to play the game in the regular way.

Non-Standard Bindings

Non-standard bindings execute actions that usually have to be performed by using a context-sensitive key or a combination of keys. DSIC currently offers bindings for:

  • Kick and Leap Attack
  • Roll Only and Dash Only
  • Auto Run

Although they do not allow anything that cannot also be done manually, there has been some debate in the past over whether automation like this could be considered cheating. I am still not convinced by that and am currently of the opinion that the listed actions are primarily a matter of the controls and not the player’s skill. Especially since similar effects can already be achieved with external tools, such as AutoHotkey or severals different types of gaming software.

However, since Dark Souls is also a PvP game, I am willing to listen to peoples concerns. Should there be a significant negative response, the bindings could for example forcibly be disabled when using DSIC together with Dark Souls PvP Watchdog.

If you have an opinion about this, please participate in the discussion in the official reddit thread in /r/pcgaming.

Additional Information

What You Should Know

Since the mod consists of an executable DLL-File, I could have put any harmful shenanigans in there. You just have to trust me that the file is clean.

If you don’t — and why should you — feel free to use a meta online virus scanner like VirusTotal to verify the file. Be aware however, that because the fix uses “hacking techniques” such as injection and hooking, it could trigger anti-virus software without being harmful.

Known Issues

The Auto Cursor currently briefly activates the cursor when opening certain doors with keys. This is not easily fixable but should only be a minor issue, due to the short duration and small number of situations where this problem occurs.

Apparently the dialog that pops up when summoning a co-op partner can currently not be controlled with the mouse cursor (unconfirmed).

Acknowledgments

I would like to thank Kaibz for his extensive testing, detailed feedback and valuable suggestions during the development of the alpha versions of the fix. Without him, creating the fix would have taken even longer than it already did.

Additionally, I would also like to give a shout-out to the author of the original DSMFix for Dark Souls, which allowed me to enjoy several playthroughs of the game over the years.

Finally, I would like to thank Durante, author of DSFix, who made the game playable in the first place. Without his work, everything I have done would not be worth much.

Contact And Support

If you like this mod and want to support the development or show your appreciation, you can find more information on my website. There you can also find out more about other fixes that I have done and means to contact me if you have a question, want to provide feedback, bug reports or suggestions.

Version History

v1.0:

  • Initial public release