Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Durazno does not work on Metro Exodus. #52

Open
pAlxBalc opened this issue May 28, 2021 · 28 comments
Open

Durazno does not work on Metro Exodus. #52

pAlxBalc opened this issue May 28, 2021 · 28 comments

Comments

@pAlxBalc
Copy link

Greetings, I being using Durazno for quite some time, and I am very satisfied with it. I have a prefixed profile that is working perfectly, with just about every FPS game I've tried it on. I recently started playing Metro Exodus, and unfortunately Durazno doesn't seem to work/affect the game at all.

I tried the process with the latest v0.6-43 version and as I always do, I pasted the files “Durazno.exe, Durazno.ini, xinput1_1.dll, xinput1_2.dll, xinput1_3.dll, xinput1_4.dll, xinput9_1_0.dll, xinputuap.dll” in the games Executable folder.... I always paste, all the .dll files, as I cannot distinguish/understand what each game needs. Likewise, I also tried the x64 version with no results.

I've just read, that the game's PC version has compatibility with the PS5 DualSense as well as with the Switch controller, can this be related to the problem I am facing?

I would appreciate it, if you could help me find a solution.
Thank you.

@KrossX
Copy link
Owner

KrossX commented May 28, 2021

For Durazno to work, the game has to use the XInput API to get input information. I've been having troubles even with Unity games as their input system might try XInput to see if there's a controller there, but the actual input information is then aquired through a HID interface bypassing the API.

I would guess Metro Exodus is not using XInput directly at least, probably the Steam input API and maybe some exclusive HID code for the DualSense. If it's using the Steam input API though, you can customize your input from Steam itself, it's something at least.

@garoto
Copy link

garoto commented May 28, 2021

Can it be that OP is using the UWP version of the game binary? How those fare with DLL injection nowadays?

@pAlxBalc
Copy link
Author

pAlxBalc commented May 29, 2021

I've found out that Metro Exodus, is PS5 DualSense compatible only on the Enhanced edition, but still the normal installation of the game, has the option to select either Automatic, Xbox, PS4 or Switch controller inputs and changes the button prompts accordingly, so you're definitely right, they must be using some kind of exclusive code, like you've said, which I believe has back-fired a little, since the game feels unresponsive and has terrible input lag while opening the weapon or item menus. Even if you compare it to the other 2 franchise games, that had big problems with controller implementation also. You had to use only the second controller profile and crank the sensitivity to maximum, in order for the FOV to turn in a satisfying speed. I can't believe how they've managed to migrate the same buggy behavior, on their 3rd game.

It does seem to use the Steam input API, but as much as I've tried, I was never able to recreate the low Deadzones(5%-6%) feel, and I believe there is no way to achieve the results you have, while cranking negatively the Linearity option on Durazno, so I don't use it and favor Durazno instead.

What does using the UWP version of the game binary mean?
I just did what I always do, and have done on the previous Metro games, that has always worked.

What I now find disheartening, is that they are changing the way they are implementing controller input/output, to cater to more Official controllers support on PC.

Will this be something, that will drastically limit the abilities/compatibility/functionality of Durazno, in the future maybe?

@KrossX
Copy link
Owner

KrossX commented May 29, 2021

Will this be something, that will drastically limit the abilities/compatibility/functionality of Durazno, in the future maybe?

Definitely. To me, Durazno has been useless since quite some time. The solution I use currently is ViGEm as I only have a cheap USB controller without XInput support. This tool creates a virtual controller and you gotta make a client to fill its input data with, I gain XInput support and also support in games that use USB HID directly. You also need another driver/filter to hide the source controller and avoid double input in some games. So I think that's where the solution is, driver based customization as games have moved to use HID for specific controller support.

What does using the UWP version of the game binary mean?

Games on the Windows Store are UWP applications, Universal Windows Platform application using the WinRT API. It used to be quite the secure environment in how to handle games to the point of making them impossible to mod, or very hard to. I remember some old talks about relaxing the restrictions a bit to allow for some modding in the future, but I don't know how it's been. Maybe they just allow WinAPI as well in the Store, but UWP versions would still be restricted? No idea. Anyhow, if you had been using the UWP version, that would've been it.

@pAlxBalc
Copy link
Author

pAlxBalc commented May 29, 2021

I'm a bit gutted, that is bad news for me. I always gave each game some borrowed time, to see if I would like the default settings, and most of the time, I ended using Durazno.

Not only that, but I love the simplicity it has, I tried Durazno2, but found the extra settings a fuss to master, and eventually not substantial, for the simple task I wanted them for.

The solution you describe is a bit tech-savvy for me, but from what I understand, the solution would be to manipulate the input before it reaches the Game Engine.

What can you do, I hope that alternative solutions to Durazno, that apply to the majority of games will come up, because I have never coped well, with the default settings of games, and not being able to manipulate that, ruins the experience each one has, a lot....

@pAlxBalc pAlxBalc reopened this May 29, 2021
@pAlxBalc
Copy link
Author

pAlxBalc commented Jun 20, 2021

Hello again.
Sorry for insisting, but I am not ready to give up on Durazno, just yet.

I did some tests with the "Dependency Walker" tool, to find out the changes made to the Metro Exodus Xinput9_1_0.dll file, while using Durazno on it, maybe you can detect what the problem is?

Those are the results on the Metro Exodus.exe file, without any Xinput wrapper:

Metro Exodus Before Durazno

Those are when I "paste" the latest Durazno version with all the DLL files, but the ones that come as default on the zip file, not the ones that are in the x64 folder. It clearly detects a problem as it becomes red and does not recognize it as a x64, which I understand is normal:

Metro Exodus After Durazno

And those are the results when I "paste" the DLL files onto the games' directory, from the x64 folder on the zip file instead:

Metro Exodus After Durazno with all x64 dll

It looks like it is seemingly working. The problem is that as soon as I "paste" the x64 DLL files to the game's folder, I see that on Durazno's test option, the upper screen(the one that shows the real controller input) stops working. This doesn't happen when I "paste" the default DLL files from the zip file, like I mentioned earlier.

Could that be where the problem originates and not on the game itself?

For other references, here is the Metro Exodus game with x360ce attached to it, which works just fine:

Metro Exodus After X360e

The Xinput1_3.Dll entry on "Metro Last Light"(the previous Metro game) before Durazno:

Metro Last Light Before Durazno

And after Durazno, which works just fine:

Metro Last Light After Durazno

Please, I would appreciate it, if you looked into it, when you find the time.
Thank you.

@KrossX
Copy link
Owner

KrossX commented Jun 21, 2021

I'm afraid the only useful information is that x360ce seems to work, it is a more advanced program though. The GUI tool not working is because it looks for xinput1_3.dll, never updated it to deal with different names.

So just to be clear, the issue is Metro Exodus or Metro Exodus Enhanced Edition, or both? Does x360ce works well in both? A log from it might be useful.

Otherwise, I would need to run them in a debugger and I don't even have the specs for that. I guess I could take a look at the exe files, try uploading them and I'll see if I understand anything.

@pAlxBalc
Copy link
Author

pAlxBalc commented Jun 21, 2021

So what you are saying is, that even if the GUI on the test option is not displaying something, it has nothing to do with whether it will work or not, it will just not display the default inputs?

I have only Metro Exodus installed, I don't have the PC "horsepower" for the Enhanced Edition.

For some reason, only the TocaEdit version of x360ce works, It detects all the changes, but since I use an Xbox one controller, it has the known problem with the triggers not registering, when both of them are pressed simultaneously.
Have you got any idea, how I can get a log from it?

Another Xinput wrapper that works is XinputPlus. I've tried Durazno^2 and Jocys.com x360ce also, but neither of them work.

For the last subject. I've sent you an email, on the address you have disclosed here.

@KrossX
Copy link
Owner

KrossX commented Jun 21, 2021

XInputPlus is quite the advanced wrapper and like x360ce also have some tricks to increase compatibility, like hooking. Durazno is a trival thing in comparison.

Odd that only the TocaEdit version of x360ce works, github shows all its changed have been merged upstream after all. Maybe there's something interesting there.

So what you are saying is, that even if the GUI on the test option is not displaying something, it has nothing to do with whether it will work or not, it will just not display the default inputs?

Yup. The GUI tool only uses xinput1_3.dll, remove the file or have the wrong one (arch mismatch) and the test tab won't work properly.

For the last subject. I've sent you an email, on the address you have disclosed here.

I gave it a look and the XInput usage is quite simple, but the input function has a Steam function right in the middle of it and that's all I can make sense of it. So maybe there's something tricky going on with that and the hooking methods of XInputPlus and x360ce make it work.

@pAlxBalc
Copy link
Author

pAlxBalc commented Jun 21, 2021

Yeah, but none of them have the minus/plus linearity option like Durazno has.
I mean on all FPS games, on the right thumb-stick, I set the Deadzone to 6% (I don't mind a little drifting, it is more responsive like that), Antideadzone to 20% and Linearity to -1,70, and mess with the in-game setting afterwards... And it reaches perfection, it becomes responsive like a mouse, no other wrapper, as much as I have experimented with them, can achieve those results like Durazno can...
That is unfortunate. If I remember correctly, I read on another comment of yours, that you haven't found the know-how, to implement it to hook.

To tell you the truth, I had a lot of problems with Jocys.com x360ce, and I never finished the process, to see if it will eventually work with it. It needs to first download the Virtual Gamepad Emulation Bus and the HID guardian, and afterwards the color of the controller it detects remains yellow, and it doesn't let me map the buttons at all... So I stopped messing with it, since the settings are identical with the TocaEdit version, and they didn't satisfy me at all.

Last night, I was experimenting with Deadzone, Antideadzone and Custom curves on Steam, and I had left it with those settings on. I just removed everything that has to do with controller settings from steam, and emailed you the new link of the *.exe file again, hope this solves that problem. By the way, Steam settings are garbage, even with a 0,02% Deadzone, 20% Antideadzone and a more responsive thumb-stick curve, it feels mushy.

Lastly, you didn't specify what log you need me to send.

@KrossX
Copy link
Owner

KrossX commented Jun 21, 2021

The input function that deals with XInput seems to be the same in the new file you sent, so no change there. Was it supposed to be a previous version? If so, I saw no difference.

[...] Virtual Gamepad Emulation Bus and the HID guardian [...]

That's what I've been doing manually for myself. I remember latest x360ce moved to that solution but there should be a previous version still available with the old wrapper.

Lastly, you didn't specify what log you need me to send.

Anything the tool you're using has to offer. You would need to check its documentation and see how to enable logging and where it places the file, etc. Set it to maximum level, start the game and reach a menu or something and exit. That should be enough I think.

@garoto
Copy link

garoto commented Jun 21, 2021

While XInputPlus doesn't have a specific antideadzone named setting, same or similar behavior can be achieved with that marvelous little tool. I don't have the exact steps needed to reproduce Durazno's antideadzone behavior, but I was able to succesfully emulate Durazno's settings with XInputPlus together with Dead Space in the past.

@KrossX
Copy link
Owner

KrossX commented Jun 21, 2021

I only ran it a few times but I remember thinking it was quite the featured tool. There's some graph to edit the axes perhaps?

@garoto
Copy link

garoto commented Jun 21, 2021

You don't adjust the axis parameters via a mouse-driven graph no, but there's a real-time display of the input and output gamepad data in the form of a circular joypad:

screenshot-0709-21-06-2021

It also can load x360ce DLLs via proxy as seem in the screenshot.

Screenshot is from my real usage of "Tomb Raider Legend" that I was playing not too long ago using a "Logitech Rumblepad 2" and x360ce as DInput proxy.

@pAlxBalc
Copy link
Author

pAlxBalc commented Jun 22, 2021

When I first sent you the *.exe file, I had Steam's "Xbox Configuration Support" enabled, in the Metro Exodus steam menu I had "Steam Input enabled" for the Game, and I had made changes from the Steam "controller configuration", on the Deadzone, Antideadzone and had customized the thumb-stick's curvature.

In the second file I've sent you, I had reverted all the changes to default, disabled the in-game "Steam Input enabled", but now I see I've forgotten to disable Steam's general "Xbox Configuration Support".

Do me a favor, I am going to send you the Metro Exodus.exe file again, now I have disabled everything that has to do with Steam. I am going to send you the Metro Last Light.exe file also, Durazno works fine with it, and I have now the same Steam settings for both games.

If you still find the presence of Steam you've mentioned, on Metro Exodus but not on Metro Last Light, then that must mean, that steam has changed its settings for handling controller implementation on newer games, that in some way prohibits Xinput wrappers from working, without having to hook on the game first, in order to bypass it.

The Jocys.com x360ce uses Virtual Gamepad Emulation Bus and the HID guardian, the TocaEdit x360ce is the older version and does not.

I used "Dependency Walker" on Metro Exodus, and saved it on *.dwi format. I've sent it to you, via an email, with the link to download the Dependency Walker program, if you do not have any other way to open the file.

Furthermore, It has the option to save it as a Text( *.txt), Text with Import/Export lists( *.txt) and Comma Separated Values( *.csv). I've sent all those files to you also.

@pAlxBalc
Copy link
Author

pAlxBalc commented Jun 22, 2021

Screenshot is from my real usage of "Tomb Raider Legend" that I was playing not too long ago using a "Logitech Rumblepad 2" and x360ce as DInput proxy.

Garoto:
I've tried ruffly the same settings you have with Xinput Plus, but on my right thumb-stick. I had Linearity around 0.5 and played with 0%-5% on the deadzone(a big problem that it does not have percentages in-between). It still could not reach Durazno's capabilities.

As I've said, I mess with the default controller settings only for FPS games. With the settings I've mentioned on Durazno, I can Quick-Scope effortlessly, as I can perform with it perfect small circles and micro-adjustments on the fly.

Unfortunately, I could not replicate the same results with any other wrapper, I've tried.

@KrossX
Copy link
Owner

KrossX commented Jun 22, 2021

I think you've been sending me the very same MetroExodus.exe file each time. I didn't save the previous ones but just changing Steam settings wouldn't alter the executable file.

As for a difference with the other metro.exe file, this older executable is using a different Steamworks SDK version altogether which doesn't even have the function I saw on the input related function. Other than that, can't see anything cuz it seems obfuscated or maybe encrypted too.

@pAlxBalc
Copy link
Author

pAlxBalc commented Jun 22, 2021

OK, I was indeed under the assumption, that changing the Steam settings would somehow change the *.exe file.

The encryption part got me thinking, and after some search I found out, that Metro Exodus was using Denuvo, the anti-tamper software when it first launched but has since dropped it. Maybe now they are using some other kind of encryption method of their own?

But again, the question is, how does x360ce and XinputPus manage to bypass it?

@KrossX
Copy link
Owner

KrossX commented Jun 22, 2021

The encryption part got me thinking, and after some search I found out, that Metro Exodus was using Denuvo, the anti-tamper software when it first launched but has since dropped it. Maybe now they are using some other kind of encryption method of their own?

Didn't seem like it, the platform DRM would be good enough at that point I think.

But again, the question is, how does x360ce and XinputPus manage to bypass it?

Probably hooking, that's why I was interested in logs.

@pAlxBalc
Copy link
Author

If you eventually find anything of help, with the logs I've sent you, notify me, please.

I know you've said that Durazno is useless to you for quite some time, and implementing a hooking method on it, will be a bit difficult, since you don't know the process yet.
Would you consider doing something for it in that direction, maybe some time in the future?

@KrossX
Copy link
Owner

KrossX commented Jun 23, 2021

If you eventually find anything of help, with the logs I've sent you, notify me, please.

By logs you've sent, do you mean the "Dependency Walker" data? If so, I'm afraid that's of no use. It's a useful tool to check if you're missing some file or similar. What I was interested in was logs from the tools that worked for you, x360ce and XInputPlus. I don't even know what logs can those tools provide but at most it would only help to confirm if hooking was needed, that is all.

I know you've said that Durazno is useless to you for quite some time, and implementing a hooking method on it, will be a bit difficult, since you don't know the process yet.
Would you consider doing something for it in that direction, maybe some time in the future?

Learning hooking has been on my todo list for ages, but there's always something else that takes its place. In the case of this issue though, I would need to run Metro Exodus myself to see what it does and if whatever I'm doing works. That's another problem as not only I don't have the game, I wouldn't have the space to install it nor the specs to even reach the menu (has a fancy 3d menu it seems), if it could run at all. So the chances of me working on it are very low, and if it happens it would be in a long time.

Thus, I suggest you try and make other tools work, XInput Plus seems the better fit. You could even try and bite the bullet with ViGEm and HID Guardian, which new x360ce uses I think. This creates a new virtual x360 controller, so your customization could be applied globally without having to tinker with each game.

@pAlxBalc
Copy link
Author

Excuse my ignorance, I thought those files would help.

I found out that x360ce keeps all the log files to "c:\ProgramData\X360CE", but because I have experimented a lot, with both the x360ce versions and did not know what action I did had eventually worked, I decided to remove all the files that were inside the folder, to monitor what the two different versions of x360ce create inside it. And somehow I am currently not able to make any of the two versions work with Metro Exodus. I will continue experimenting, to find out what it needs to work.

On the other hand, I found what makes XinputPlus work:
You do what you would normally do, you select the Target Program(MetroExodus.exe), go to "Settings ->Dll" tick the Xinput file you want, I know that it needs the Xinput9_1_0.dll, but I ticked them all for insurance and then select the 64bit version(x64). Afterwards, you press "Apply".

This should theoretically work, but it does not. You need to also go to the "DirectInput" section and tick enable DirecInput Output and press Apply again. This creates two extra files in the games' folder, named Dinput.dll and Dinput8.dll. Those two files are the key factor.

Since I cannot find any info where XinputPlus creates any log files, I've sent you all the files that it created inside the Metro Exodus Folder, hope I won't waste your time again, and they will be of some use.

For some reason, It cannot currently remap buttons on the controller, but the Thumb-stick modifications work just fine in the game.

@pAlxBalc
Copy link
Author

Learning hooking has been on my todo list for ages, but there's always something else that takes its place.

What I would like to say is, do not abandon Durazno altogether. In my opinion, it is a great app that has made my, and I believe other users gaming experience a lot better, and I know that I tend to repeat myself, but out of all the Xinput wrappers I've tried, I had the best results with it... For me, It has worked fluently for years, it just needs a little refreshment, to catch up with the changes the new games have done, and maybe try to find the time to learn how to apply a hooking method to it. From what I see, it would be preferable to take the Xinput Plus implementation as an example, because it was very easy for me to make it work with Metro that is a game made in 2019. The x360ce method needs to install a Virtual Device and HID Guardian, but still did not work right away, I have to search now what extra steps it needs to work like it did before.

In the case of this issue though, I would need to run Metro Exodus myself to see what it does and if whatever I'm doing works. That's another problem as not only I don't have the game, I wouldn't have the space to install it nor the specs to even reach the menu (has a fancy 3d menu it seems), if it could run at all. So the chances of me working on it are very low, and if it happens it would be in a long time.

You are right, I have a fairly old system too, and I can only play it on 1600x1900 with a lot of Graphics set to low, and it needs to install around 77,7GB on the drive.

@KrossX
Copy link
Owner

KrossX commented Jun 24, 2021

The files you sent are just the files needed for XInputPlus to work. A log file is usually just a text file, maybe with a .log extension. Don't worry about it though since as I mentioned before it would only help confirm a thought, it wouldn't help with any implementation problem.

I did remember with the ini file that you can specify a proxy dll file as @garoto mentioned previously. It's meant for x360ce it seems but maybe you could try and point it to Durazno instead. The Durazno dll file should be in another path but I think the durazno.ini would need to be on the game directory though, so copy it there. Worth a try.

The x360ce method needs to install a Virtual Device and HID Guardian, but still did not work right away, I have to search now what extra steps it needs to work like it did before.

It's the most bulletproof solution but the most tricky and expensive to create (it's an actual driver for once and it also requires a costly signature). And so with the hard work already done by ViGEm, the customization is then done through a client program. I've made a client for myself, it works, but is completely user unfriendly and unusuable beyond my setup. I was thinking about making a client others could use but their new and improved hiding tool requires Windows 8.1+, the latest driver requires Windows 10 and I'm still using Windows 7 so that was that.

@pAlxBalc
Copy link
Author

pAlxBalc commented Jun 24, 2021

I apologize again, I have no implementation or IT knowledge whatsoever...

I did remember with the ini file that you can specify a proxy dll file as @garoto mentioned previously. It's meant for x360ce it seems but maybe you could try and point it to Durazno instead. The Durazno dll file should be in another path but I think the durazno.ini would need to be on the game directory though, so copy it there. Worth a try.

I will try to experiment into that direction today when I find the time. Maybe @garoto if you are still with us in the discussion, you can describe the process a bit, if you remember it?

It's the most bulletproof solution but the most tricky and expensive to create (it's an actual driver for once and it also requires a costly signature). And so with the hard work already done by ViGEm, the customization is then done through a client program. I've made a client for myself, it works, but is completely user unfriendly and unusuable beyond my setup.

To my narrow knowledge as a user and nothing more, when I tried it on x360ce, it isn't user-friendly and hasn't worked for what I needed it, up to now.
But I suspect it is because I am using it with an Xbox One Controller and not a 360, so maybe it cannot hide the controller from the system that well and the game sees the original Xinput first? I will unearth an old 360 controller I have, and see if this will make a difference.

Do you know what the Dinput.dll and Dinput8.dll files stand for? Maybe if you implemented Durazno to create, read and use those files to its advantage, it would be a first step in that direction? Up to now, I never needed hooking for any game, but I have older games in my Library and the only new one is Metro Exodus, which has that problem I've described, But hooking on it doesn't work, and those two files work, so I don't have a formed opinion.

Durazno^2 has some kind of hooking mode, but it doesn't work also.

I was thinking about making a client others could use but their new and improved hiding tool requires Windows 8.1+, the latest driver requires Windows 10 and I'm still using Windows 7 so that was that.

Microsoft used to offer Windows 10 to all people that had older Windows versions. I had Windows 7 too and upgraded to Windows 10 with this offer and have them now registered free to my name. I very recently read that although the offer has officially "ended", some users can do this up to today. It is also rumored that Windows 11 will provide the same offer to older Windows users. (Microsoft is going to do a presentation for Windows 11 today at some time in the US).
Maybe look into this.

Although Windows 7 and 8, had far more complex capabilities and were not spying the user so much, so do a research for your favorite apps before upgrading...

@KrossX
Copy link
Owner

KrossX commented Jun 24, 2021

I apologize again, I have no implementation or IT knowledge whatsoever...

No problem. Other than reporting if a game doesn't work there ain't much a user can do unless you go down the rabbit hole. And even then, it would only be to say "Yup, won't work."

To my narrow knowledge as a user and nothing more, when I tried it on x360ce, it isn't user-friendly and hasn't worked for what I needed it, up to now.

But it does have a UI, it does let you configure some things, it's usable with more than a single particular controller and... doesn't BSOD your computer. I think that counts as quite user friendly to me.

Do you know what the Dinput.dll and Dinput8.dll files stand for? Maybe if you implemented Durazno to create, read and use those files to its advantage, it would be a first step in that direction?

Those are the dlls for the DirectInput API an older and more complex API to handle input, it was set aside in favor of XInput when it showed up. While XInput is quite simple since it's meant for Xbox controllers, DirectInput was used for all sort of control types like wheels and HOTAS setups. Supporting controllers could get complicated since even rumble would depend on the device driver installed which would most likely lie about effects supported and whatnot. Anyhow, the answer is no, I intentionally went with XInput since I just wanted to customize the x360 controls. DirectInput is too generic of an API for what I wanted to do, and nothing was using it anymore anyway.

Again, any work at all would require testing the game and looking into what its doing and that's not gonna happen anytime soon.

Microsoft used to offer Windows 10 to all people that had older Windows versions.

I know, I have a license. I've tried it after every major update but always end up having to go back to W7, it just kept getting in the way. Last time, I remember wondering why my test program wouldn't do anything, an update disabled the error message box. Linux has been getting more usable to me than Windows 10 so far.

@pAlxBalc
Copy link
Author

pAlxBalc commented Jul 5, 2021

I gave it a look and the XInput usage is quite simple, but the input function has a Steam function right in the middle of it and that's all I can make sense of it. So maybe there's something tricky going on with that and the hooking methods of XInputPlus and x360ce make it work.

Today, I confirmed your hypothesis about Steam having an input function right in the middle of it.
Via an acquaintance, we tested the GOG.com version of "Metro Exodus", that is supposed to be DRM free, doesn't use a Game Engine to start, and does not have any controller implementation, like Steam has, whatsoever.

And it works without a problem.

So Steam's input function is indeed the culprit. The problem is that I discovered that presumably, Steam has made the change you've detected, in all the games created from 2019 and after, and I believe that Durazno, and all the other Xinput wrappers, presumably have stopped working on newer Steam games altogether, because of this. I've tested it on one of the most recent of the games I have available on my Steam Library, "Wolfenstein: Youngblood", which was created in 2019, around the same time with Metro Exodus, and it does not work either, although, Durazno works on all the previous Wolfenstein games.

I presume you won't get any help from this again, but I will send you the "Metro Exodus" EXE files, of both the Steam And GOG versions, to see how the file is supposed to behave and what changes Steam has made.

I will send you the "Wolfenstein: Youngblood" EXE file also, that has the same Steam restrictions, to have a broader view of the said problem.

I know, as you've said, without having the games you cannot do much. But at least now you will know what the problem is, and were to look, if you decide to find a solution for it, some time in the future.

Keep also in mind, that the only way I've found up to now, in order to bypass the restrictions that Steam implements, on the EXE file, is to enable the **XinputPlus "DirectInput Output" function, that creates the Dinput.dll and Dinput8.dll files, on the EXE file's location folder...

@KrossX
Copy link
Owner

KrossX commented Jul 5, 2021

That makes me think it's probably how Steam is able to provide input customization, by doing the wrapper thing itself and bypassing classic wrappers while at it. Quite the annoying thing.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants