Приветствую, уважаемое сообщество!
На днях я довёл до более-менее рабочего состояния обёртку для steam_api.dll в wine и теперь хочу поделиться наработками с общественностью.
Зачем это нужно?
Чтобы не устанавливать steam под wine, если захотелось поиграть в игру из steam для windows.
Как это работает?
Wine отлично умеет пробрасывать вызовы библиотек windows в linux, steam_api.dll не является исключением. Все вызовы к steam_api.dll перехватываются wine, направляются в SteamForwarder, там по необходимости допиливаются до совместимых с linux и перенаправляются в libsteam_api.so.
А за это не забанят?
На данный момент существует аналогичная софтина, но с более мудрёной схемой работы, под названием steambridge. За 2 года её использования, автору не поступали сообщения о банах. Хотя легальность подобной подмены dll всё ещё под вопросом, Valve игнорируют вопросы на эту тему.
Как установить игру для windows без windows версии steam?
Для этого существует небольшой скрипт app_install.py. Он создаёт манифест для steam, скачивает игру через steamcmd и формирует скрипт для запуска игры (чтобы работал оверлей, и wine не потерял обёртку для steam_api.dll). После этих нехитрых манипуляций steam под linux начнёт видеть игру, но настоятельно не рекомендуется позволять ему её обновлять (особенно есть кроме версии игры под винду есть еще и версия под мак), может стереть все файлы игры. Для обновления лучше использовать steamcmd или app_install.py.
Ознакомиться с наработками можно тут: https://github.com/xomachine/SteamForwarder
Баг репорты и предложения по улучшению приветствуются.