About This File
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 is the successor to the Dark Souls Mouse Fix and allows you to bind any action to arbitrary combinations of keys or buttons on the controller, the mouse or the keyboard via a simple GUI. In addition to a complete fix of the mouse controls, the mod also provides advanced options, such as separate sensitivities for bow aiming or the usage of of non-standard actions like Kick, the creation of input profiles, as well as dedicated support for the Steam Controller.
The Dark Souls Input Customizer (DSIC) offers full customization of the controls of Dark Souls. It uses a flexible input system that allows the rebinding of every action to arbitrary combinations of keys or buttons on the controller, the mouse or the 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, along 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.
- Bind any action 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
- Non-standard bindings such as Roll-Only, Kick or Leap Attack
- 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
This mod is designed for the latest, fully patched Steam version and might not work when used with an older or otherwise modified executable.
The mod does not make any permanent changes to the game or to Windows and can easily be removed.
- Install Durante's DSFix if you have not already
- 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"
- Look for the dinput8dllWrapper line in DSFix.ini and set it to dinput8dllWrapper DarkSoulsInputCustomizer.dll. No additional configuration of DSFix is necessary
- Start DarkSoulsInputCustomizerGUI.exe to set bindings and other settings as desired
- 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:
- See Loading Other Fixes/Mods/Injectors for information on how to solve conflicts with other mods that also use a DirectInput wrapper DLL
- 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
- Set the dinput8dllWrapper setting in DSFix.ini to none and delete the files of the fix
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. 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
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 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
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.
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.
The dialog that pops up when summoning a co-op partner can currently not be controlled with the mouse cursor.
All keybindings are currently disabled in the main menu. This is on purpose to prevent issues when navigating the menu and when entering a character name.
Since this mod consists of an executable DLL file that uses "hacking techniques" such as injection and hooking, it could be classified as malicious by antivirus software. In that case, it might be necessary to add an exception rule to the scanner.
If you lack the trust in random people on the internet -- and I would not blame you -- feel free to use a meta online virus scanner like VirusTotal to verify the file.
The GUI requires the Microsoft .NET Framework 4.7.1 to work; which should already be installed on most systems. If you are having problems starting the program, you can download the required version either through a recommended Windows update (Windows 7 and later) or at Microsoft here.
Loading Other Fixes/Mods/Injectors
To increase the compatibility with other mods or injectors that are using a wrapper DLL, this fix offers two methods for remote loading of additional files. Note that there might still be compatibility issues between the different fixes, mods or injectors that have nothing to do with the loading process.
The mod will load another dinput8.dll automatically if it has the name dinput8_Remote.dll. Just rename the DLL you want to load accordingly. Using this method will lead to an error if the renamed DLL is not itself a dinput8.dll.
The mod will also automatically load all DLLs regardless of their names in a dinput8_Remote sub-directory. Just create a corresponding folder in the install directory of the mod. This is the only way to load multiple (conflicting) files.
The GUI allows the binding of an action to an arbitrary combination of keys and buttons on the keyboard, the mouse or an XInput compatible controller. The system purposefully does not restrict conflicts, so multiple actions can be bound to the same key.
In case of the keyboard there might be a discrepancy between the key that was pressed and the one that is displayed. This is because the names are automatically translated based on the keyboard layout by using a Windows function. However, the mod always uses the physical keys as they were used during the creation of the binding, independent of the name that is displayed.
Modifier bindings can be created by just using the corresponding key combinations. If you bind one action to Space and another another to LCTRL + Space and a third one to LALT + LCTRL + Space, only one of them will be triggered when Space is down, depending on the state of LCTRL and LALT. The system is not restricted to the usual modifier keys ALT, CTRL or SHIFT. Any key or button pressed before another acts as a modifier for the next one. Note that the order of the keys or buttons is only relevant during the binding process to distinguish bindings with the same modifiers. In the above example, Space could be held down and the other actions triggered by pressing LCTRL or LALT afterwards.
I would like to thank Kaibz for his extensive testing, detailed feedback and valuable suggestions during the development of the alpha versions of the mod. Without him, creating the mod 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 with a donation, you can find more information on my website. There you can also find out more about other mods that I have done and means to contact me if you have a question, want to provide feedback, bug reports and suggestions.
What's New in Version 1.1 See changelog
- Updated the input system. Among other things, it now only blocks button and key presses from reaching the game if they were responsible for triggering a binding
- Updated the address system to increase the compatibility with modified versions of the game
- Updated the loading system to add support for remote loading of additional DLLs for increased compatibility with other mods (see Loading Other Fixes/Mods/Injectors)
- Auto-Lock Camera is now Cursor Lock and locks the camera when the cursor is shown. In addition, the camera is now always being locked when the game is not in the foreground
- Show UI Cursor is now Invert UI Cursor and either temporarily shows the cursor or allows movement of the camera, depending on whether the cursor is currently visible
- Updated the GUI to .NET version 4.7.1 to fix a problem where the program would crash on startup (shout-out to /u/XodmQ for his help in investigating this issue)
- Fixed a bug that caused keys and buttons to "stick" under some circumstances
- Fixed a bug that caused manual cursor visibility and capture changes to sometimes not being applied correctly
- Fixed a bug that caused the Manual Targeting Threshold to not being respected with Auto UI Cursor disabled
- Fixed a bug that caused the mouse cursor to not correctly be recaptured in fullscreen mode when switching back into the game from the desktop
- Fixed a display bug in the GUI that caused some keys to falsely be displayed as the corresponding versions on the numpad