Prey
Methanhydrat Aug 11, 2017 @ 9:55am
[PreyXInputFix] Now compatible with v1.08
IMPORTANT

Since game version v1.09 this fix is no longer needed, because the game received an official option to enable XInput support.

If you are interested in using PS4 button prompts, you can find a corresponding option in the most recent version of the PRIC mod.


---

TL;DR

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)
Features

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.

Instructions

Supported Versions

This fix is designed for the latest, fully patched version of Prey and the Mooncrash DLC and might not work when used with older or otherwise modified executables.
  • Steam v1.08
Note that the fix currently does not work with the demo version of the game.

Install

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
Uninstall
  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[methanhydrat.wordpress.com]. 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

v1.1:
  • Fixed launch issues for users that do not own the Mooncrash DLC
v1.0:
  • Upgraded the fix to game version v1.08
v0.6:
  • Added support for Mooncrash DLC
v0.5:
  • Upgraded the fix to game version v1.06
v0.4:
  • Controller movement no longer gets stuck on interactive items when using PS4 prompts
v0.3:
  • Added a separate version that shows button prompts of the PS4 instead of the XBox controller
  • Added more detailed instructions to the readme file
v0.2:
  • Added support for demo version of Prey
  • Added measures to make the fix more robust to updates of the game
v0.1:
  • Initial release
Last edited by Methanhydrat; Aug 12, 2018 @ 3:08pm
< >
Showing 151-165 of 293 comments
Pantherr Jun 12, 2018 @ 1:07am 
I'd be interested to know how that goes.... and I wish you luck. This has really annoyed me also. I like this game but can't play with kb&m for too long and now they screwed me/us out of using an actual fix that did work... :(
Neon Kitten Jun 12, 2018 @ 1:10am 
Actually looking at the game in my account I'm reminded that I can't refund it on Steam, as I bought it as a retail key from Green Man Gaming.

So I have a game that had its native controller support removed early on, which made me wait and wait and wait to play it while I waited for a fix that never came - and now there's paid DLC that new purchasers effectively get for free.

Great to know Bethesda stands behind its products :-\
Pantherr Jun 12, 2018 @ 1:12am 
Yeah, it's not right....
Last edited by Pantherr; Jun 12, 2018 @ 3:09am
76561198020020479 Jun 12, 2018 @ 2:39am 
Is there a working fix for the add-on now?
Pantherr Jun 12, 2018 @ 3:10am 
Not yet as far as I know..
Devilot Jun 12, 2018 @ 3:16am 
If i put any of both .dll the game crashes 1-2 seconds after Bethesda logo..
Methanhydrat Jun 12, 2018 @ 3:46am 
As I said earlier, the fix was broken by the last patch and currently does not work with the latest version of the game.

If you have the fix installed, please uninstall it by removing the corresponding DLL as stated in the readme.
Orion1189 Jun 12, 2018 @ 3:47am 
For whatever it's worth, SweetFX/ReShade still works just fine with the game. So, some dlls can still hook into the game without it crashing.
Last edited by Orion1189; Jun 12, 2018 @ 3:49am
Methanhydrat Jun 12, 2018 @ 4:04am 
Originally posted by Orion1189:
For whatever it's worth, SweetFX/ReShade still works just fine with the game. So, some dlls can still hook into the game with it crashing.

It depends on what exactly mods or tools are doing. Hooking into a library interface such as DirectX is usually unaffected by updates to a game, because the entry points have clearly defined addresses.

Hooking internal functions of a game is usually much more fragile, because addresses can change arbitrarily. This is why many implementations use pattern matching to make the hooking more robust to game updates. But even then, the program only has to be compiled with a newer compiled or different compiler flags to produce very different results for the same code.

In this case, the developers also moved the majority of the game code to a separate DLL, which requires some adjustments to the hooking. Making the fix work again might be possible, but I am reluctant to say anything definitive before I had the chance to take a deeper look.
ShepardCmdrr Jun 12, 2018 @ 10:02am 
Originally posted by Methanhydrat:
Originally posted by Orion1189:
For whatever it's worth, SweetFX/ReShade still works just fine with the game. So, some dlls can still hook into the game with it crashing.

It depends on what exactly mods or tools are doing. Hooking into a library interface such as DirectX is usually unaffected by updates to a game, because the entry points have clearly defined addresses.

Hooking internal functions of a game is usually much more fragile, because addresses can change arbitrarily. This is why many implementations use pattern matching to make the hooking more robust to game updates. But even then, the program only has to be compiled with a newer compiled or different compiler flags to produce very different results for the same code.

In this case, the developers also moved the majority of the game code to a separate DLL, which requires some adjustments to the hooking. Making the fix work again might be possible, but I am reluctant to say anything definitive before I had the chance to take a deeper look.
Best of luck. Hoping you can make the mod work again
Orion1189 Jun 12, 2018 @ 10:10am 
Originally posted by Methanhydrat:
Originally posted by Orion1189:
For whatever it's worth, SweetFX/ReShade still works just fine with the game. So, some dlls can still hook into the game with it crashing.

It depends on what exactly mods or tools are doing. Hooking into a library interface such as DirectX is usually unaffected by updates to a game, because the entry points have clearly defined addresses.

Hooking internal functions of a game is usually much more fragile, because addresses can change arbitrarily. This is why many implementations use pattern matching to make the hooking more robust to game updates. But even then, the program only has to be compiled with a newer compiled or different compiler flags to produce very different results for the same code.

In this case, the developers also moved the majority of the game code to a separate DLL, which requires some adjustments to the hooking. Making the fix work again might be possible, but I am reluctant to say anything definitive before I had the chance to take a deeper look.
Thanks for the explanation, and good luck in trying to get the fix working again. And even if you can't, you still put way more effort into fixing it than Arkane has.
Neon Kitten Jun 12, 2018 @ 10:13am 
Originally posted by Orion1189:
Thanks for the explanation, and good luck in trying to get the fix working again. And even if you can't, you still put way more effort into fixing it than Arkane has.

Aside from the fact that this is sadly true ;) it's pretty clear Arkane and Bethesda made the changes deliberately (for reasons only they can understand, surely) and after acknoledging the change here a year ago have been completely silent since. They never had any intention of fixing this.

:steamfacepalm:
Methanhydrat Jun 16, 2018 @ 4:27am 
I just updated the fix to be compatible with game version v1.06. It should now work as it did before the update, but since I usually do not play the game with a controller, there might be some things I missed. Please let me know if that is the case.

And sorry that this took so long, but I was kind of busy with grown up stuff. It also took more effort to upgrade the fix than expected, since the internal structure of the game changed a fair amount with the update.

Release notes:

v0.5:
  • Upgraded the fix to game version v1.06
Last edited by Methanhydrat; Jun 16, 2018 @ 4:27am
DeJaVuRick Jun 16, 2018 @ 4:40am 
Originally posted by Methanhydrat:
I just updated the fix to be compatible with game version v1.06. It should now work as it did before the update, but since I usually do not play the game with a controller, there might be some things I missed. Please let me know if that is the case.

And sorry that this took so long, but I was kind of busy with grown up stuff. It also took more effort to upgrade the fix than expected, since the internal structure of the game changed a fair amount with the update.

Release notes:

v0.5:
  • Upgraded the fix to game version v1.06
Dont be sorry you are a star! Thank you very much for fixing this!
TheDyingSun Jun 16, 2018 @ 5:31am 
Originally posted by Methanhydrat:
I just updated the fix to be compatible with game version v1.06. It should now work as it did before the update, but since I usually do not play the game with a controller, there might be some things I missed. Please let me know if that is the case.

And sorry that this took so long, but I was kind of busy with grown up stuff. It also took more effort to upgrade the fix than expected, since the internal structure of the game changed a fair amount with the update.

Release notes:

v0.5:
  • Upgraded the fix to game version v1.06

You are seriously the man (or woman?) I ended up using m/kb for my playthrough, but I whole heartedly appreciate the work you've put into this for the community.
< >
Showing 151-165 of 293 comments
Per page: 1530 50

Date Posted: Aug 11, 2017 @ 9:55am
Posts: 293