libTAS icon indicating copy to clipboard operation
libTAS copied to clipboard

[Wine] Virtual Steam Client

Open kitlith opened this issue 6 years ago • 4 comments

As of right now, the Virtual Steam Client option does not appear to work with games running under wine, such as the Source Unpack for Portal, which requires the steam client in order to run. (It will run if you also run steam under wine, but that probably has the same desync issues that caused this project to create the virtual steam client in the first place)

kitlith avatar Jul 31 '19 01:07 kitlith

I presume games are using LoadLibrary/GetProcAddress to run Steam functions. The problem is that those functions are inside kernel32, which is "hard-loaded" when the Windows process is being created. Thus, our way of hooking functions does not work with those. Actually, I'm not sure if we can hook any Windows API function defined by wine.

clementgallet avatar Oct 25 '19 21:10 clementgallet

Is there anything preventing us from, say, doing something similar to what steam's proton does to handle steam client stuff under wine?

kitlith avatar Oct 25 '19 23:10 kitlith

That is something different. I think proton translates Windows Steam DLL calls into Linux Steam .so calls, so that Steam games can use the Steam API. We need to have access to Windows Steam DLL calls in the first place.

You could find a dummy Steam dll client somewhere, until this issue is fixed.

clementgallet avatar Dec 25 '19 10:12 clementgallet

Well, I figured we could use proton's thing to perform dll <-> so, and then use your current stuff in place of the official one(s)? I dunno.

kitlith avatar Jan 06 '20 03:01 kitlith