Prey XInput Fix

Download Sources


This fix resolves controller issues in Prey that were introduced with patch v1.05, by forcing the game to use XInput instead of the Steam Controller API by Valve.

Quick start guide:

  1. Open the archive and choose the button prompts you want to use by opening the corresponding folder
  2. Extract the file dinput8.dll to the release sub-folder of Prey. For example: "C:\Program Files (x86)\Steam\steamapps\common\Prey\Binaries\Danielle\x64\Release\"
  3. Start the game like you would normally, for example directly through Steam or Big Picture mode
  4. Important: If the fix does not work, make sure that you have turned off the usage of the Steam Controller API (see below)


While Prey originally offered good controller support, patch v1.05 introduced various issues. Instead of choosing either XInput or the Steam Controller API based on the user settings, the game always uses the latter. This results in problems with the movement as well as certain controller settings or the controller not working at all if the user has disabled the usage of the Steam Controller API in game’s properties in Steam.

This fix re-enables XInput support and forces the game to use it, regardless of the settings.


Supported Versions

This fix is is designed for latest, fully patched Steam installation of Prey and might crash when it is used with any other version than v1.06.


The fix does not make any permanent changes to the game or to Windows and can easily be removed.

Important: When using a non-XInput controller such as the DS4, you will need a XInput emulator like DS4Windows for this fix to work

  1. Open the archive and choose the button prompts you want to use by opening the corresponding folder
  2. Extract the file dinput8.dll to the release sub-folder of Prey. For example: "C:\Program Files (x86)\Steam\steamapps\common\Prey\Binaries\Danielle\x64\Release\"
  3. Start the game like you would normally, for example directly through Steam or Big Picture mode
  4. Important: If the fix does not work, make sure that you have turned off the usage of the Steam Controller API (see below)

Although the fix forces the game to use XInput, it is necessary to disable the usage of the Steam Controller API in the game’s settings.

The safest way to do this is the following:

  1. In the Steam client go to the menu Steam -> Settings -> Controller -> General Controller Settings
  2. Make sure PS4/XBox Configuration Support is checked
  3. Go to Big Picture mode and find Prey in you library
  4. Click Mange Game -> Controller Options and uncheck Use Steam Configuration for Non-Steam Controllers
  5. Uncheck the setting from step 1 again, depending on whether it was checked in the first place


  1. Remove or rename the dinput8.dll from the folder of the game.

Known Issues

There are currently no known issues with using the fix.

Additional Information

Antivirus Software

Since this fix 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.

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.

File method:

The fix 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.

Folder method:

The fix 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 fix. This is the only way to load multiple (conflicting) files.

Contact And Support

If you like this fix 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.

Version History


  • Added support for Mooncrash DLC


  • Upgraded the fix to game version v1.06


  • Controller movement no longer gets stuck on interactive items when using PS4 prompts


  • Added a separate version that shows button prompts of the PS4 instead of the XBox controller
  • Added more detailed instructions to the readme file


  • Added support for demo version of Prey
  • Added measures to make the fix more robust to updates of the game


  • Initial release

FEAR 2 Mouse Fix

What is this?

This fix makes FEAR2 use raw mouse input and removes the game’s deadzone and sensitivity problems. It is easy to install and use and does not require any external configuration.

You can download the fix from PC Gaming Wiki here or from Nexusmods here.



While the mouse controls are pretty responsive, FEAR2 suffers from a deadzone for small movements, as well as an unusual high sensitivity, even on the lowest settings.

This fix removes these problems by acquiring raw mouse input and injecting it directly into the game’s input function.


  • Raw mouse input
  • No additional smoothing or positive/negative mouse acceleration
  • Configuration via the ingame settings as usual
  • Simple installation and usage without any external configuration


Supported Versions

This fix relies on the latest, fully patched executables of the supported versions. Older versions or ones that otherwise have been tempered with might not work.

  • Steam/Retail
  • GOG


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

  1. Extract the file X3DAudio1_5.dll to your main game folder. For example: "C:\Program Files (x86)\Steam\steamapps\common\FEAR2\"
  2. Start the game like you would normally, for example directly through Steam or Origin


  1. Remove or rename the X3DAudio1_5.dll from the folder of the game.

How To Use

After the installation the fix does not require any additional treatment. Just launch and configure the game as usual.

Additional Information

What You Should Know

This fix is essentially a hack and relies on the layout of the specific executable. There may be crashes or unexpected issues. Feel free to provide feedback so that the problems can get fixed.

Since the fix 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 mouse controls of the mech are currently unaffected by the fix and might use a higher sensitivity than the rest of the game. This should not be a big issue, since those sections are quite short and comparatively easy.

Contact And Support

If you like this fix 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

Beta 0.3:

  • Added support for GOG version
  • The fix is now disabled when controlling the mech. This is a temporary workaround until a proper fix for the mech controls is available

Beta 0.2:

  • The fix now uses a X3DAudio1_5.dll instead of the d3d9.dll for loading, to increase the compatibility with other fixes

Beta 0.1:

  • Initial release

Waypoint Interview – Complete Answers

A few months ago I was interviewed by the gaming website Waypoint about the development of the Dark Souls Mouse Fix (which later evolved into the Dark Souls Input Customizer). As with almost any interview, the answers were cut down to fit the style of the site and the intended flow of the author. I have no idea how many people read the original article or are even interested in this kind of thing, but for the few people who are, here are my complete answers to the questions I was given.

Be wary of wall of text

Can you talk to me a little bit about what you do in real-life, and what kinds of games you’re usually drawn to?

I recently received my master’s degree in computer science and am currently in the process of transitioning out of the lazy life of a student to something more, I guess, grown-up. What that will exactly look like I am not sure about at the moment. As a side job, I have been working as a tutor for a few years now and am currently teaching software development and software engineering at a university.

I am interested in a broad spectrum of games and there really are only a few genres I do not touch at all. But although I play almost anything from RPGs, strategy and adventure games to platformers or weird indie games, I am definitively most drawn to first-person shooters.

Dark Souls shipped with mouse support on PC, but obviously it wasn’t right for everyone. What didn’t work?

As probably most people know by now, the PC version of Dark Souls was a total mess at release and is to this day only properly playable thanks to the fantastic DSFix by Durante. Aside from many technical issues, people also quickly discovered that the mouse and keyboard controls were in a state one could, without exaggeration, only describe as unplayable. Not only showed the default layout of the keybindings a profound lack of understanding of how games are played with that control method, it was also basically impossible to properly control the camera. While there are other games out there which have sub-optimal mouse input, they usually only suffer from unwanted acceleration, sluggish movement or input lag. But the original mouse controls of Dark Souls have a very weird behavior, where the movement is choppy and controlling the camera feels like using a mouse that only updates once a second.

While the keybindings could easily be fixed in the ingame settings, the camera controls were basically broken. Another modder (whose name unfortunately escapes me), very early on came up with a solution that was the way to go when wanting to play the game with the mouse. What he did was writing a controller emulator that feeds the mouse input to the game as movement of the right analog stick, thereby circumventing the original mouse input of the game altogether. This was a good enough solution and made the game finally playable for people who do not have a controller or someone like me who just prefers to use mouse and keyboard.

Although it did a great job in helping many people (including myself) to enjoy the game over the years, it is not an optimal solution, because using an analog stick is very different on a technical level from mouse movement and therefore emulating it with a mouse does not feel like you would expect or want from a PC game. Aside from sluggish movement, the most prominent drawback of that solution is negative acceleration, meaning that the faster you move the mouse, the less camera movement is produced. This had bothered me and other people for years, but we just accepted it, because the only way of this getting fixed was for the game to be patched, which everybody knew would was not going to happen at that point.

It’s hard for me to even imagine playing Dark Souls with a mouse; a gamepad is ingrained into my mind. Is there an advantage to using a mouse, or just preference?

This is something that always comes up when talking about the Souls games. Some people even go so far and claim that those games are impossible to be played with mouse and keyboard. This is of course nonsense. All the games can be played fine with mouse and keyboard from start to finish. It is of course undeniably true that you lose a little control of the movement, because you are trading an analog stick for binary keyboard input, but in practice this actually makes very little difference. The two relevant movement speeds can be specified with a modifier key and using the eight rolling directions the keyboard offers work perfectly well to do anything you need in those games. On the other hand, you gain fine control of the camera with a mouse, which makes some things such as aiming with a bow easier. But I would be the first to admit that this also does not have a major impact to the overall gameplay, unless maybe you are playing a bow-only build.

So for most people it is not about getting an advantage, but rather personal preference. I personally cannot stand using a controller for any game in which I have direct control over a 3D camera. Even though precise input is not necessary from a gameplay stand point, I am just more comfortable with a mouse and keyboard. One of the beautiful aspects of PC Gaming is that everyone can use the control scheme he or she prefers, even though it may deemed to be inferior by other people.

What did you aim to fix with your mod, and what changed as you went about developing it?

The development was actually pretty straight forward, because it was a well defined problem, with which I as devout Dark Souls player was very familiar with. The goal was to iron out all the remaining issues the mouse and keyboard controls had, primarily by making the camera movement feel as you would expect from a proper PC game. Before I started to work on the Dark Souls fix, I had already developed a somewhat similar fix for Dead Space, which also suffers from bad mouse controls. Although these kind of fixes are custom tailored to a specific game and therefore few components can be reused, I was already familiar with the general approach of injecting the raw mouse input directly into a game’s camera functions. However, the Dark Souls fix turned out to be more challenging, because a lot more things had to be taken care of to make it work properly.

This mod goes far beyond swapping texture or importing a character model. I have to imagine this was complex. What was its development like?

Yes, even though it might not appear like it, because there are no changes to the visuals or the gameplay, fixes like this actually do take a lot of effort to make. The problem is that these kind of technical issues often cannot be fixed from outside of the game. When it comes to controls, there is only so much you can do by tinkering with configuration files or using external tools, such as AutoHotkey. If they are broken on a fundamental level, like they were with Dark Souls, you actually have to dive deep down into the guts of the game to figure out a way to solve the problem. This is why this approach should only be used as a last resort, when it is pretty clear that all other options have been exhausted and that there is no hope for an official patch to fix the problem.

To do something like this, you have to apply techniques that in computer science are referred to by the term reverse engineering. The same way you can break apart your toaster to find out how it works, you can take a look at the executable file of a piece of software to reveal its inner workings, without having access to the source code. Now, this is easier said than done, because a modern game is of course much more complex than a toaster and you are looking for very specific parts in a program that quite a few people spend years on to develop.

After having found what you were looking for, you are faced with the question of how solve the actual problem. This is a little different from conventional software development, because there are a lot of factors you do not have any control over and you have to find a way to make the game do what you want, all while being very careful not to break something. The whole process can be tedious and time-consuming, but it can also be a lot of fun because it is a challenging problem. It can also be very interesting so see how things are actually implemented in a particular game, which often provides some insight into why a game behaves in the way it does.

How long it will take to do a fix such as this is highly dependent on experience and intuition. People hacked into games forever, and of course I am far from the only person being able to do this. To be honest, I have very limited experience and skills in this kind of thing, especially compared to some other people out there, who in some cases have been doing nothing else for the past 20 years. Unfortunately, more often than not, those people usually end up developing cheats or cracks for games, instead of using their powers for good.

Was there a particular aspect of this mod that was challenging to put together? What took the most time and why?

The development of a fix such as this can broken down into two parts. First, you have the hacking part, in which you are trying to solve the actual problem by dissecting the executable and finding ways to make the game do what you want. Secondly, once you have actually achieved what you wanted, you have to think about how to make the fix usable by other people. Although the first part consumed more time overall, the second one consumed more time than I had anticipated.

What you have to keep in mind, is that you are trying to deploy something that is essentially a hack, to a game without any modding support whatsoever, for a lot of people with vastly different combinations of hardware, tools and other mods they are using with the game.

This is much harder than it may seem, because especially with Dark Souls you cannot assume that people are playing the same way you do. You have to ask yourself things such as: Is the fix easy enough to install or configure, so it can also be used by people who might not be tech-savvy? Are the instructions and the GUI design intuitively to understand? Can players configure the controls the ways they want?

Additionally, there is also the problem of compatibility. People are using all kinds of different mods and tools to customize the game, sometimes resulting in Frankenstanian amalgamations of different programs and DLLs that all interact with the game simultaneously, and you have to take care that at least the most popular ones are working with your fix. Although there was a fair amount of alpha testing before the fix was made public, there were a lot of issues like this that I had not seen coming.

At this point, Dark Souls is several years old, with most of the community having moved on to newer games like Dark Souls 3. Why keep working on Dark Souls?

Even though the sequels were generally well received, the first Dark Souls is already somewhat of a cult-classic and is by many people considered to be the best part in the series. The SteamSpy statistics seem to confirm this, with the first Dark Souls still being roughly on par with Dark Souls 2 in terms of concurrent players. Even Dark Souls 3 has only a little over twice as many, despite being a much younger game. So the first Dark Souls is far from dead and it is also a game many people hold dear and come back to for another playthrough a few years later.

Additionally, even though some games do not age well, great games generally do not suddenly become bad because they are a few years old. And I am of the opinion that good games deserve to be preserved.

How’d you originally discover Dark Souls, and what drew you to it?

As a PC-only gamer, I initially heard of Demons Souls and Dark Souls as one of the great examples of console games that are not available on the PC. And after reading about them I was kind of baffled by the decision, because from the description they struck me as the kind of games that would be very successful on a PC. I then participated in the petition to port the game to the PC, which must have been one of the very rare cases where a petition actually did have an impact on something, and then waited in anticipation for it to come out.

The thing I find most intriguing about Dark Souls is the world design and how it is connected to the gameplay. While other fantasy settings often present a peaceful world under attack by evil, the world of Dark Souls is a bleak place full of misery and despair, while at the same time being quite beautiful and appealing in its own way. The atmosphere the game creates with its art design and music immediately makes it clear that you should not expect any help to progress in the game and are supposed to figure things out on your own.

I think it is unfortunate that the Souls games are mostly known for their supposed difficulty, when a much better word to describe them would be tough. Although they are certainly not easy and may appear to be unfair at times, they are mostly about being thoughtful and observant of the environment, and will punish you if you are careless.

Do you have a history with modding, and do you tinker with things in real-life, too?

I am a long time PC gamer and came first into contact with the concept of modding around 1995, when building levels for the Star Wars game Dark Forces, together with my father and brother. Not only was it amazing to see how much work people put in custom campaigns, it was also an interesting experience to exchange levels online at a point in time where most people around you had not even heard about the internet.

While I was dabbling around with an editor to create a custom map for the original Counter Strike, I quickly realized that I lacked the creativity and dedication to contribute anything valuable for other people and I just kept enjoying modding as a player instead of a developer.

Some time ago I ran into a notorious problem in one of my all-time favorite shooters named F.E.A.R, which on many modern systems slows the performance of the game down to an unplayable degree and can only be fixed by a tedious workaround. I took a deeper look into the problem and was able to determine the cause and develop a fix for it. After I released it I was amazed by the reception and it made me realize that I could contribute to the PC community in ways that did not require any creative talent.

That is why I do not consider myself a modder in the traditional sense of the word. Up to this point, I did not create anything that changes the gameplay or visuals of a game, but rather help people to better utilize their hardware and to allow them to play a game in the way they like. There are many other great people doing stuff like this, such as Durante or the developers behind tools such as Flawless Widescreen.

Unfortunately, I have two left hands when it comes to fixing things in real-life that have nothing to do with computers. But I have an unspoken agreement with a long-time friend of mine, who works as a craftsman. I will fix any problems he has with his PC, and he will help me with any handiwork around my apartment. Which is also an idealized way I like to think about the PC gaming community as a whole.

When I saw this mod posted to reddit, the outcry of support was huge. People seemed to really appreciate it. What was that like?

It is always great to see that something you have created is helping people to enjoy a game more. Aside from the few expected naysayers claiming that the game should not even be played with mouse and keyboard in the first place, the reception was pretty good and I am very grateful for the acknowledgement I got. Although I was fully aware that the vast majority of players prefer to play the game with a controller, I did anticipate that there would be at least a few people who would be happy with a fix like this. What I did not see coming was the coverage the fix got on many, mostly PC-centric, gaming websites. This was a very pleasant surprise.

Another thing that took me by surprise was the interest in the fix by people who do not even want to play the game with mouse and keyboard. As it turned out, the changes to the mouse movement improve the camera controls with the Steam Controller, when mapping the mouse movement to one of the trackpads. This resulted in the experimental Steam Controller support, which was introduced to the Dark Souls Mouse Fix in version 1.3.

Any plans for future mods? What’s next for Methanhydrat?

I am definitely planning to continue working on something in the future. What that will be I am currently not sure about. The Dark Souls fix needs some additional work, as there are still some minor bugs to fix and also additional features that I would like to add. Aside from Dark Souls, I also have a few other games in mind that would benefit from some fixing. I am also always open for suggestions. I originally developed the fix to remove the mouse acceleration in Mass Effect for just one person. So if you have an idea, get in touch with me, make a good case for it, and we will see what will happen.

However, due to the ongoing changes in my work life, it is currently hard to say how much time there will be in the future for stuff like this.

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 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.

You can download the mod from PC Gaming Wiki here, from Nexusmods here or from ModDB here.



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


Supported Versions

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.

  1. Install Durante’s DSFix if you have not already
  2. Extract the contents of the 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:

  • 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


  1. 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

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.

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.

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.

Additional Information

Antivirus Software

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.

GUI Requirements

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.

File method:

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.

Folder method:

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.

Input Bindings

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.

Key Names:

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.

Version History


  • 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


  • Initial public release

Dark Souls Mouse Fix – Update to Beta 1.4

I did have some free time on my hands again and took the opportunity to tackle some of the bigger remaining issues of the mouse fix for Dark Souls. This is a major update and should remedy many gripes and problems some people had with the previous version. It has gotten a fairly well reception and I am pretty confident that from this point forward there are no issues left that could be considered major. You can find the latest version on Nexus here or on PC Gaming Wiki here.

Instead of just posting the change log as I normally do, I will summarize them in reasonable sections.

New Binding System:

This is a big one. The old binding system was very clunky and restrictive, because users had to manually select the key they wanted to bind from a predefined list of keys out of a dropdown menu. I was not a big fan of that system in the first place, but it was the only thing feasible I could do at that point in time. To keep that list manageable, I only included the most common keys. This was a problem because people are using a wide variety of keyboard layouts and languages, which sometimes prevented them from binding the keys they wanted. Another issue was that the old system did not properly support modifier keys, which had to be added manually for each option. This was overall one of the most requested features.

After I had thought about the problem for a while, I came up with a solution I am quite happy with. The new binding system allows you to bind any action to an arbitrary combination of keyboard keys, mouse buttons or the mouse wheel. Have you ever wanted to switch your magic spell with Space+W+~+MouseWheelUp? Now you can. Instead of manually selecting a key from a limited set of predefined keys, the new system works reactively. To bind an action, double left click the corresponding box. When the box turns green, press the combination of keys you would like to assign. The combination is set once any pressed keys are released.

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 names the keys are getting in the GUI are sometimes not entirely correct. For example, both the left and the right control keys can be referred to by the same identifier, while keys like Page Up might refer to the corresponding key on the numpad. This is because the key names are generated dynamically by using a Windows function, which does not distinguish between certain keys and does not always lead to pleasant display names. However, this is entirely a cosmetic issue and the keys will get recognized in the game as they are pressed in the GUI.

A few additional notes on the binding system:

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

There are some videos out there that show how the binding works in practice. For example this one.

Manual Targeting Option:

It is now possible to enable the switching of targets by flicking the mouse. After the keybindings, this was the second most requested feature. I honestly did not anticipate that so many people would prefer to switch targets by using the mouse instead of a dedicated binding.

Manual targeting can either be always enabled or specified by a hold or a toggle binding. Additionally, one of the things that always prevented me from using this kind of target switching was how easy it was to unintentionally switch targets. For this reason, I also added a Targting Threshold option, which determines how far you have to move the mouse for a target switch to occur. Take a look into the GUI tooltips for more information.

Non-Standard Bindings:

Added a set of non-standard bindings. It is now possible to bind Leap Attack, Kick, Dash Only, Roll Only and Auto Run actions to further enhance the customization of the controls. See the corresponding GUI tooltips for details.

There has been some considerable amount of thinking and discussion about whether to include non-standard bindings at all in the fix. I actually started a discussion about this in the main reddit thread when the mouse fix first came out, but it did not really gain much traction. The question was at which point something ceases to be a matter of controls and begins to just make the game easier. Especially with the Kick and Leap Attack, one might argue that being able to execute them well is part of the learning process of the game.

In the end, I decided to include them because they do not allow you to do anything that cannot also be done manually. Additionally, the actions are not that difficult to execute in the first place and most of the bindings could also be easily replicated without the fix, by using external tools such as AutoHotkey. I am personally also not a fan of context-sensitive bindings and it is nice to see that there are also other people out there who prefer to have dedicated bindings for rolling and dashing.

However, if you are a purist, feel free not to use them. PC Gaming is all about choice after all.


  • Added a custom mouse cursor that should be more suitable for the game. The cursor is enabled by default but can be disabled in the GUI
  • Added audio feedback for certain status changes, such as loading of the mouse fix, reloading the config or changing the input mode
  • Multiple changes to the usability of the GUI, including a revision of the labels and tooltips
  • Added a complete initial default config that should be decently intuitive for most players that are not familiar with the game

These are just some little quality of life features to improve the overall experience. They should be pretty self-explanatory. The custom cursor is called Das Black and was created by a user named aroche. If you want to know how it looks, you can find pictures of it on his Devian Art page.

Major Bugfixes:

  • The GUI no longer loads a local d3d3.dll to prevent conflicts with certain mods/injectors, such as DSPW or SweetFX/ReShade (thanks to SeanPesce for his feedback and research on the issue)
  • The Auto Cursor will no longer enable the cursor and lock the camera when UI elements are shown that cannot be controlled with the mouse, such as subtitles or certain floating messages
  • Fixed a bug that caused the Auto Cursor to not recapture the cursor correctly after having switched out of the game

I am very happy that I got these fixed.

The first one was not only quite annoying, but also confusing to the user. Although not many people seem to use SweetFX with Dark Souls, Dark Souls PvP Watch Dog (DSPW) is a popular tool and I got many reports of people who had no idea why starting the GUI caused an error box of DSPW, which lead them to believe the mouse fix was incompatible with the it.

The Auto Cursor problem was probably the most severe ingame bug, as it could potentially lock you out from controlling your character in situations where that could actually cause you to die. Aside from some very rare situations involving keys opened by doors (see Known Issues), the Auto Cursor should now work correctly in all situations.

That is it for now. Aside from potential hotfixes, it will probably take a while before the mod is updated again. But as always, do not hesitate to provide feedback or suggestions. I will keep them in mind. Also, if more people are suggesting a feature, it is more likely that it will get implemented.

Have fun.

Origin Update For Mass Effect and Dead Space Mouse Fixes

I recently started to have a little bit more free time at my disposal again and used it to tackle an annoying problem that plagued the mouse fixes for both Dead Space and Mass Effect. The change logs for both games are as follows:

Beta 0.5:

  • The fix should now correctly work with Origin versions from any region

This might not look very impressive, but fixing this issue involved tackling a more severe underlying problem with Origin. Although the fixes were advertised to work with Origin, they would show an unsupported version pop-up for some users, while working fine for others.

Games are often available on a variety of distribution platforms, which usually all come with their own executable file of the game. This means that even if the versions are practically the same, the executables of say the Steam version most likely will have a different layout compared to the Origin or GOG version. A game can also have multiple versions on the same platform. This is most often the case for games that are distributed with certain languages that are only available in some regions.

While other game fixes work on a more abstract level, fixes like the ones for Dead Space of Mass Effect hook into the game and need to know the specific locations (i.e. memory addresses) of functions or data to hook into. If the addresses are wrong, the game usually just crashes. For this reason, every version has to be supported separately by a fix. This is often not trivial, because a fix might rely on several addresses which all have to be determined individually for every version. This also presupposes that I have access to every version in the first place, which is often not the case. Additionally, this process usually has to be repeated every time a game is patched.

Fortunately, the number of different official versions is often rather small and the chances that an older game gets patched are often pretty slim. By restricting a fix to only support the latest, fully patched version it is usually feasible to cover most — if not all — official distribution sources.

However, as it turned out, Origin does not like to play ball with this approach. While Steam usually only provides multiple versions if they actually differ from a content point of view (e.g. languages or censoring), Origin seems to always distribute technically different version for every region, even if they are practically identical. It is hard to tell how many regions Origin uses, but I saw different versions for Western Europe, Eastern Europe, Northern Europe, North America, Russia and more.

Because it is not feasible to support all of them, the updated versions of the mouse fixes now use a pattern matcher to handle Origin versions. Because they are usually very similar, it is possible to search for certain memory patterns in the executable, instead of specifying the addresses directly.

This should hopefully be sufficient to properly handle Origin versions for all fixes in the future.

Dark Souls Mouse Fix – Update to Beta 1.3 – Preliminary Modifiers, Experimental Steam Controller Support

Although I really should do other things right now, I invested some more time into the mouse fix to add some often requested features and fix some annoying bugs.

Beta 1.3 change log:

  • Added preliminary modifier bindings that turn left and right attacks into heavy attacks (see Configuration for details)
  • Made all modifier bindings non-blocking so they can also be used as a modifier in the ingame settings where applicable (see Configuration for details)
  • Added proper Input Mode setting to the config that allows easy switching between mouse and controller input (see Configuration for details)
  • Added experimental Steam Controller support (see Configuration for details)
  • Replaced Toggle Mouse Fix binding with Toggle Input Mode
  • Fixed bug that prevented the number keys from getting bound correctly
  • Fixed bug in the GUI that prevented an action from getting unbound correctly when there was a default binding for it

From the documentation:

Modifier Bindings

Modifiers change the behavior of a binding when they are down. The current implementation is preliminary and has some shortcomings:

  • Modifiers are currently only available for movement as well as left and right attack. The implementation will be overhauled in the future to allow all actions to be bound with a modifier
  • Any key or mouse button can be set as a modifier
  • While a mouse wheel direction can be set as a modifier, it will not work properly, because rolling the mouse wheel cannot be hold down
  • A key or button used as a modifier will not be blocked in the game to make it also usable as a modifier with the ingame keybindings. This also means that it may be necessary to unbind some ingame keybindings to make everything work properly

As you can see there are some drawbacks to the modifiers. Although I am really not happy with the way the modifier keys are implemented right now, I figured it would be better to have them for at least those bindings which seem to be most important to people, rather than not having them at all. But to be honest, I cannot wait to have some free time again to do modifiers and bindings in general properly.

Again from the documentation:

Input Mode:

The input mode specifies the behavior of the fix:

  • Mouse: Enables raw mouse camera and keyboard standard action bindings, deactivates controller input and vibrations
  • Gamepad: Standard controller behavior, disables raw mouse camera and keyboard standard action bindings
  • Steam Controller (experimental): Standard controller behavior with the exception that the raw mouse camera is enabled and the right analog stick is disabled

This point might be surprising to some people, but I had an unanticipated amount of requests to make the fix usable with the Steam Controller. Apparently the new mouse movement is a big improvement to the usual analog controls of the gamepad. I had actually posted an experimental version a few days back in the Steam Controller reddit, which now got fully incorporated into the fix alongside a few bugfixes.

I also took the opportunity to implement a proper input mode, because there previously was no clear divide in the code that specified when which components of the fix should be active or not. As you can see, it is now properly supported to have the fix installed alongside a controller and to switch between the input modes, even on-the-fly, without having to fiddle around with the setup.

This is all I can do for the moment. Although there are still things left to do and also a lot of room for improvements in other areas, most of those things either require a considerable update of the software or another deep look into the engine of the game, both of which I unfortunately currently do not have time for.

As always, let me know if you encounter any problems.