xomachine / SteamForwarder

steam_api.dll implementation for wine. Your windows games now can interact with your linux steam! (This repo mirrors https://gitlab.com/xomachine/SteamForwarder)
MIT License
198 stars 8 forks source link

Is it possible to do this with a VM? #1

Closed IamCarbonMan closed 6 years ago

IamCarbonMan commented 7 years ago

Not sure if this is even feasible, but I find that my games sometimes work better in VirtualBox than in Wine. Could this project integrate Windows games in a VM guest with the host's Linux Steam installation?

xomachine commented 7 years ago

In theory it is possible to build project that provides such an integration (it could be done via wrapping steam api calls to network packets and passing it through VMs network adapter).

But this project is only provides the wine-specific realization of the wrapper.

IamCarbonMan commented 7 years ago

I don't have a ton of time to browse the source at the moment, how do Wine games communicate with Linux Steam under your implementation currently? I might be able to write a TCP wrapper to accomplish this.

On Feb 24, 2017 12:57, "Dmitriy Fomichev" notifications@github.com wrote:

In theory it is possible to build project that provides such an integration (it could be done via wrapping steam api calls to network packets and passing it through VMs network adapter).

But this project is only provides the wine-specific realization of the wrapper.

— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub https://github.com/xomachine/SteamForwarder/issues/1#issuecomment-282402432, or mute the thread https://github.com/notifications/unsubscribe-auth/APgjsIEKRaRJpACmIEdE50PxBYnGAmJ_ks5rf0QpgaJpZM4MLiiJ .

xomachine commented 7 years ago

It uses wine native mechanism of making linux side calls from the windows side code, so no network stuff is necessary. More about that can be found here and especially here. Most of the SteamForwarder code is automatically generated routine that just declares a method or a function for windows call conventions and calls the linux-side steam api method inside the implementation. The interesting parts can be only found in callback related code and in methods that return CSteamID (there is some magic to fit windows call conventions)

xomachine commented 6 years ago

Seems like a question a bit outdated and was already answered, so I'm closing it.