Giter VIP home page Giter VIP logo

Comments (4)

eterniti avatar eterniti commented on August 13, 2024

Don't worry about the Epatches. Those relative addresses from the .exe shouldn't be different in Windows or Proton, regardless of wether they use ASLR or not. (Besides that, the patcher actually searches the patches, those addresses are only the starting point of search).

If the DLL run at all, there should be a file called "xv2_log.txt" inside the XV2PATCHER directory, with log information. If there isn't, then the most likely cause is that Proton didn't even load the .dll, e.g, it loaded its own version of xinput.dll (maybe a native version of it) and ignored the one of the patcher. The xv2patcher dll work under the premise that Windows give priority to the dll next to the .exe than the ones in System32, but I don't know if Proton ignores that.

from xv2patcher.

DebugDax avatar DebugDax commented on August 13, 2024

If the DLL run at all, there should be a file called "xv2_log.txt" inside the XV2PATCHER directory

I don't think 3.711 has logging enabled? Even on my Windows machine where the patcher does work, there is no log file present in /XV2PATCHER/ yet it loads the game patched.

--

I did have success though!
I followed this comment and I can get the patcher to load now: https://www.reddit.com/r/SatisfactoryGame/comments/izomcx/anyone_else_playing_this_on_linux/g6kgahj/
Adding WINEDLLOVERRIDES="xinput1_3.dll=n,b" %command% to the game launch properties.

But the controls do not work in-game when overriding the DLL.

I replaced xinput1_3.dll with dinput8.dll and now it works loading the patches and input!

So to anyone with future issues getting this utility to run on a Steam Deck, you just need to modify your game's launch command and make sure to use dinput8.dll and not xinput.

from xv2patcher.

eterniti avatar eterniti commented on August 13, 2024

Debug is enabled by default. It is controlled by .ini variable General:default_log_level, which should be set to 2 in default .ini file. If there is no log file in XV2PATCHER, maybe there is no writing permissions on that folder.

At first sight of the wine code, it looks like it is missing some functions that are present in the Microsoft dll (I guess the undocumented functions). It is possible that this is making the function "load_dll" exit ahead of time, leaving some functions redirected to the wine xinput dll, and some not. I guess that if I reorder the functions in such a way that I put first all the ones that are common in Windows and Wine, it may work.

Something that may worth at least try is the following: grab a xinput1_3.dll from a real windows (it should be in System32 directory) and put it next to the patcher dll with the name "xinput_other.dll". If that file is present, the patcher would load that instead of the System32 one (this feature was added so that some controller apps could work together with the patcher). Now the question is wether the original Windows dll can work in Wine or not.

from xv2patcher.

eterniti avatar eterniti commented on August 13, 2024

I've commited some code to check if the patcher is running under Wine, and ignore the error of missing functions so that the redirect functions loop can continue. It's untested and unknown if it will solve the problem.

I attach the binary.
xinput1_3.zip

from xv2patcher.

Related Issues (8)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.