Closed joan31 closed 2 years ago
Hello
I guess that in this case Proton is still best (if not "only available") solution. SteamForwarder has its own restrictions related to the steam_api.dll
. To interact with linux steam it still needs libsteam_api.so with version matching the version of steam_api.dll
from the game. Valve does not distribute old versions of libsteam_api.so
, so I collected as many of them as I was able. But it is not a complete list, especially considering that the SteamForwarder project now is at the end of life stage and newer versions of the libsteam_api.so
were not added. So there is a chance that it won't work.
If you had any problems while generating steam_api.dll.so, I need to take a look on logs and error messages that have been produced by the tool to try to help. The problem might be related to newer versions of the Nim compiler (the Nim language was quite volatile when SteamForwarder was written) or to the restriction I mentioned above, but I can not figure it out until I see the logs.
Otherwise I would suggest to use Proton from Steam. It might be possible if, for example, you will install the vanilla version of the game via Steam, launch it once to generate the wine prefix, then disable updates for the game and copy your modded version to the game directory managed by steam.
Hi,
I tried to patch directly the game on Steam but it does not work.
Ok I will send you (in few days) the error from SteamForwarder. I just need to create the steam_api.dll.so and the sh script to launch the game with the dll override.
Thanks for your help. :)
Hi,
So I tried to start SteamForwarfer :+1:
python3 sf_install 39140 --steamnative --no-download
WARNING! You are using experimental feature --steamnative!
In case of any problems please remove --steamnative flag and install steamcmd.
Connecting to steam instance...
Steam process found
PID: 1717
Intercepting steam stderr pipe to pid: 1242
Command pipe: None
Can not find steam input pipe (steam.pipe)! Did it renamed?
With steamcmdclient (with Steam Native closed)
python3 sf_install 39140 --steamcmdclient /usr/bin/steamcmd --no-download
Traceback (most recent call last):
File "/home/joan/Téléchargements/Steam/redist/share/SteamForwarder/sf_install", line 242, in <module>
steamapps = detectSteamAppsInVolume(steaminterface.volumes[config['volume']])
IndexError: list index out of range
FYI I'm on Arch Linux.
Thanks for your help.
In the first attempt SteamForwarder was unable to find the pipe to communicate with Steam. I also use Arch Linux and in my case the pipe can be found using following command (96933 is the PID of the running Steam instance)
$ ls -l /proc/96933/fd | grep pipe
lr-x------ 1 xomachine users 64 авг 28 10:15 107 -> pipe:[52442275]
l-wx------ 1 xomachine users 64 авг 28 10:15 108 -> pipe:[52442275]
lr-x------ 1 xomachine users 64 авг 28 10:15 38 -> pipe:[52112121]
l-wx------ 1 xomachine users 64 авг 28 10:15 39 -> pipe:[52112121]
lr-x------ 1 xomachine users 64 авг 28 10:15 5 -> /home/xomachine/.steam/steam.pipe
lr-x------ 1 xomachine users 64 авг 28 10:15 68 -> pipe:[52161241]
l-wx------ 1 xomachine users 64 авг 28 10:15 69 -> pipe:[52161241]
The fifth one is the pipe we are looking for. Please check the output of this command on your system. If there is no steam.pipe
file, try to execute the command steam steam://open/console
while steam is running. It may trigger the creation of that file.
In the second attempt the problem is in missing information. SteamForwarder does not know where the game is installed, so you need to tell it. You can do it by passing the the --volume
option either the --steamapps
option (list of available volumes can be obtained via --volumelist
). The volume selection should be performed even if the problem in from the first attempt will be fixed.
I've launched steam steam://open/console
and start again steam forwarder, nothing change :
python3 sf_install 39140 --steamnative --no-download
WARNING! You are using experimental feature --steamnative!
In case of any problems please remove --steamnative flag and install steamcmd.
Connecting to steam instance...
Steam process found
PID: 7564
Intercepting steam stderr pipe to pid: 1237
Command pipe: None
Can not find steam input pipe (steam.pipe)! Did it renamed?
ls -l /proc/7564/fd | grep pipe
So I tried to find the good PID :
ps -aef | grep steam
joan 7168 1 0 14:17 ? 00:00:00 bash /home/joan/.local/share/Steam/steam.sh %U -silent
joan 7282 7168 1 14:17 ? 00:00:19 /home/joan/.local/share/Steam/ubuntu12_32/steam %U -silent
joan 7564 7282 0 14:17 ? 00:00:00 /home/joan/.local/share/Steam/ubuntu12_32/steam %U -silent
ls -l /proc/7282/fd | grep pipe
lr-x------ 1 joan joan 64 28 août 14:33 5 -> /home/joan/.steam/steam.pipe
lr-x------ 1 joan joan 64 28 août 14:33 35 -> pipe:[21161]
l-wx------ 1 joan joan 64 28 août 14:33 36 -> pipe:[21161]
lr-x------ 1 joan joan 64 28 août 14:33 64 -> pipe:[27449]
l-wx------ 1 joan joan 64 28 août 14:33 65 -> pipe:[27449]
lr-x------ 1 joan joan 64 28 août 14:33 104 -> pipe:[35977]
l-wx------ 1 joan joan 64 28 août 14:33 105 -> pipe:[35977]
It looks like something is changed in Steam since the project has been archived. How about steamcmd? Does it work after setting the volume or the steamapps path where the game is installed?
python3 sf_install 39140 --steamcmdclient /usr/bin/steamcmd --no-download --steamapps /home/joan/.steam/steam/steamapps
Obtaining app info...
And nothing happens... it gets stuck.
I guess the command steamcmd +app_info_print 39140 +quit
hungs too? Well it this case you can try to kill steamcmd process while running the sf_install command or set non-existing location for steamcmdclient as a workaround. It should fallback to the http steam db method for obtaining app info...
... which won't work as well because the steam db page is changed since the method was written.
Well I think all we can do now is to investigate the issue with steamcmd. Does the command steamcmd +app_info_print 39140 +quit
really gets stuck?
steamcmd +app_info_print 39140 +quit
Redirecting stderr to '/home/joan/.local/share/Steam/logs/stderr.txt'
Looks like steam didn't shutdown cleanly, scheduling immediate update check
[ 0%] Recherche de nouvelles mises à jour...
[----] Vérification de l'installation...
Steam Console Client (c) Valve Corporation - version 1660762488
-- type 'quit' to exit --
Loading Steam API...OK
src/clientdll/appdatacache.cpp (1743) : GSteamEngine().IsEngineThreadRunning()
Yes the command gets stuck, but if I enter directly on steamcmd I get all the app info correclty :
steamcmd
Redirecting stderr to '/home/joan/.local/share/Steam/logs/stderr.txt'
Looks like steam didn't shutdown cleanly, scheduling immediate update check
[ 0%] Recherche de nouvelles mises à jour...
[----] Vérification de l'installation...
Steam Console Client (c) Valve Corporation - version 1660762488
-- type 'quit' to exit --
Loading Steam API...OK
Steam>app_info_print 39140
AppID : 39140, change number : 15847478/0, last change : Sat Aug 6 11:16:12 2022
"39140"
{
"common"
{
"name" "FINAL FANTASY VII"
"languages"
{
"english" "1"
"german" "1"
"french" "1"
"spanish" "1"
}
"type" "Game"
"oslist" "windows"
"clienticon" "16d1e8e7492f7c41cffb87537dbd04d90f4a2b47"
"clienttga" "291c386e9a7f3278b0eba35b5805bb75fed3d46c"
"icon" "dc89ce8f07d5ec36a5617a66fe16e3541d2cc172"
"logo" "a54e96c44d2b2c65a75702655ef47df336e0492a"
"logo_small" "a54e96c44d2b2c65a75702655ef47df336e0492a_thumb"
"eulas"
{
"0"
{
"url" "http://store.steampowered.com/eula/39140_eula"
"id" "39140_eula"
"name" "39140_eula"
}
}
"steam_deck_compatibility"
{
"category" "2"
"test_timestamp" "1658966400"
"tested_build_id" "115956"
"tests"
{
"0"
{
"display" "3"
"token" "#SteamDeckVerified_TestResult_LauncherInteractionIssues"
}
"1"
{
"display" "3"
"token" "#SteamDeckVerified_TestResult_DefaultControllerConfigNotFullyFunctional"
}
"2"
{
"display" "4"
"token" "#SteamDeckVerified_TestResult_ControllerGlyphsMatchDeckDevice"
}
"3"
{
"display" "4"
"token" "#SteamDeckVerified_TestResult_InterfaceTextIsLegible"
}
"4"
{
"display" "4"
"token" "#SteamDeckVerified_TestResult_DefaultConfigurationIsPerformant"
}
"5"
{
"display" "1"
"token" "#SteamDeckVerified_TestResult_SingleplayerGameplayRequiresActiveInternetConnection"
}
"6"
{
"display" "1"
"token" "#SteamDeckVerified_TestResult_ExternalControllersNotSupportedPrimaryPlayer"
}
}
"configuration"
{
"supported_input" "gamepad"
"requires_manual_keyboard_invoke" "1"
"requires_non_controller_launcher_nav" "1"
"primary_player_is_controller_slot_0" "1"
"non_deck_display_glyphs" "0"
"small_text" "0"
"requires_internet_for_setup" "0"
"requires_internet_for_singleplayer" "1"
"recommended_runtime" "proton-stable"
"requires_h264" "0"
"gamescope_frame_limiter_not_supported" "0"
}
}
"metacritic_name" "Final Fantasy VII"
"controller_support" "partial"
"small_capsule"
{
"english" "capsule_231x87.jpg"
}
"header_image"
{
"english" "header.jpg"
}
"library_assets"
{
"library_capsule" "en"
"library_hero" "en"
"library_logo" "en"
"logo_position"
{
"pinned_position" "BottomLeft"
"width_pct" "50"
"height_pct" "73.97351873861481"
}
}
"store_asset_mtime" "1574952402"
"associations"
{
"0"
{
"type" "developer"
"name" "Square Enix"
}
"1"
{
"type" "publisher"
"name" "Square Enix"
}
"2"
{
"type" "franchise"
"name" "FINAL FANTASY"
}
}
"primary_genre" "3"
"genres"
{
"0" "3"
}
"category"
{
"category_2" "1"
"category_18" "1"
"category_22" "1"
"category_41" "1"
"category_42" "1"
}
"supported_languages"
{
"english"
{
"supported" "1"
}
"german"
{
"supported" "1"
}
"french"
{
"supported" "1"
}
"spanish"
{
"supported" "1"
}
}
"community_visible_stats" "1"
"community_hub_visible" "1"
"gameid" "39140"
"store_tags"
{
"0" "4434"
"1" "122"
"2" "1693"
"3" "1677"
"4" "1742"
"5" "4182"
"6" "1756"
"7" "1684"
"8" "4004"
"9" "21"
"10" "10695"
"11" "3965"
"12" "1695"
"13" "3942"
"14" "4115"
"15" "4166"
"16" "3834"
"17" "5030"
"18" "6691"
"19" "9"
}
"review_score" "8"
"review_percentage" "92"
}
"extended"
{
"developer" "Square Enix"
"gamedir" "Final Fantasy VII"
"homepage" "http://www.finalfantasyviipc.com"
"icon" ""
"installscript" "installscript.vdf"
"launcheula" "http://store.steampowered.com/eula/39140_eula"
"noservers" "1"
"order" "1"
"serverbrowsername" ""
"state" "eStateAvailable"
"publisher" "Square Enix"
}
"config"
{
"launch"
{
"0"
{
"executable" "FF7_Launcher.exe"
"description" "FINAL FANTASY VII Launcher"
"config"
{
"oslist" "windows"
}
}
}
"contenttype" "3"
"installdir" "FINAL FANTASY VII"
"steamcontrollertouchtemplateindex" "1"
"steamcontrollertouchconfigdetails"
{
"1865087761"
{
"controller_type" "controller_mobile_touch"
"enabled_branches" "default"
"use_action_block" "false"
}
}
}
"depots"
{
"overridescddb" "1"
"baselanguages" ""
"228982"
{
"name" "VC 2008 Redist"
"config"
{
"oslist" "windows"
}
"maxsize" "9688647"
"depotfromapp" "228980"
"sharedinstall" "1"
}
"228990"
{
"name" "DirectX Jun 2010 Redist"
"config"
{
"oslist" "windows"
}
"maxsize" "102931551"
"depotfromapp" "228980"
"sharedinstall" "1"
}
"39142"
{
"name" "FINAL FANTASY VII"
"systemdefined" "1"
"manifests"
{
"public" "208551466200385657"
}
"maxsize" "1249369018"
"encryptedmanifests"
{
"test"
{
"encrypted_gid_2" "7175094918A443662E3D41A56217605A"
"encrypted_size_2" "3C0FABE45384CF9F4B311A6938E38850"
}
}
}
"39143"
{
"name" "FF7 English"
"config"
{
"language" "english"
}
"manifests"
{
"public" "1726957378011170066"
}
"maxsize" "288992100"
"encryptedmanifests"
{
"test"
{
"encrypted_gid_2" "5C9B7349ED338FF590F41FD22587A627"
"encrypted_size_2" "DA2F780B3A46E2000F87291D7CDB1DB8"
}
}
}
"39144"
{
"name" "FF7 French"
"config"
{
"language" "french"
}
"manifests"
{
"public" "6574848179124542893"
}
"maxsize" "290054899"
"encryptedmanifests"
{
"test"
{
"encrypted_gid_2" "54322312331682191F9C973E0BD36303"
"encrypted_size_2" "88146035E88076AA3D99DC3FF385C688"
}
}
}
"39145"
{
"name" "FF7 German"
"config"
{
"language" "german"
}
"manifests"
{
"public" "9099229143834763732"
}
"maxsize" "289170972"
"encryptedmanifests"
{
"test"
{
"encrypted_gid_2" "F96789FB97B9BDDE15242CC5DE74491D"
"encrypted_size_2" "70BA43A54AD5B70F4602F11C6228566B"
}
}
}
"39146"
{
"name" "FF7 Spanish"
"config"
{
"language" "spanish"
}
"manifests"
{
"public" "7654531756823292283"
}
"maxsize" "289114933"
"encryptedmanifests"
{
"test"
{
"encrypted_gid_2" "593B89E7BEF8E25F27A04913739EDA7E"
"encrypted_size_2" "21A256D3BEB7E1E9126F9241E5F15309"
}
}
}
"branches"
{
"public"
{
"buildid" "115956"
}
"test"
{
"buildid" "865231"
"description" "test build"
"pwdrequired" "1"
}
}
}
}
Steam>
I reproduced the hanging on my system. Seems like it is the steamcmd issue. Hanging occurs randomly and I was able to generate the runscript in less than 10 attempts (Try, wait 10 seconds, Ctrl+C, another try).
I've tried more than 10 attempts and nothing change :(
python3 sf_install 39140 --steamcmdclient /usr/bin/steamcmd --no-download --steamapps /home/joan/.steam/steam/steamapps
Obtaining app info...
:(
If I wait a long time I have this message :
/home/joan/.steam/steamcmd/steamcmd.sh : ligne 39 : 11618 Processus arrêté $DEBUGGER "$STEAMEXE" "$@"
Traceback (most recent call last):
File "/home/joan/Téléchargements/Steam/redist/bin/sf_install", line 245, in <module>
appinfos = steaminterface.getAppInfo()
File "/home/joan/Téléchargements/Steam/redist/share/SteamForwarder/installer/steamcmd.py", line 22, in getAppInfo
result = subprocess.check_output(["steamcmd", "+app_info_print",
File "/usr/lib/python3.10/subprocess.py", line 420, in check_output
return run(*popenargs, stdout=PIPE, timeout=timeout, check=True,
File "/usr/lib/python3.10/subprocess.py", line 524, in run
raise CalledProcessError(retcode, process.args,
subprocess.CalledProcessError: Command '['steamcmd', '+app_info_print', '39140', '+quit']' returned non-zero exit status 137.
Failed to get appinfo via steamcmd, falling back to http method...
Traceback (most recent call last):
File "/home/joan/Téléchargements/Steam/redist/bin/sf_install", line 245, in <module>
appinfos = steaminterface.getAppInfo()
File "/home/joan/Téléchargements/Steam/redist/share/SteamForwarder/installer/steamcmd.py", line 22, in getAppInfo
result = subprocess.check_output(["steamcmd", "+app_info_print",
File "/usr/lib/python3.10/subprocess.py", line 420, in check_output
return run(*popenargs, stdout=PIPE, timeout=timeout, check=True,
File "/usr/lib/python3.10/subprocess.py", line 524, in run
raise CalledProcessError(retcode, process.args,
subprocess.CalledProcessError: Command '['steamcmd', '+app_info_print', '39140', '+quit']' returned non-zero exit status 137.
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/home/joan/Téléchargements/Steam/redist/bin/sf_install", line 249, in <module>
appinfos = get_app_config_http(appid)
File "/home/joan/Téléchargements/Steam/redist/bin/sf_install", line 58, in get_app_config_http
content = urlopen(req).read().decode('utf-8')
File "/usr/lib/python3.10/urllib/request.py", line 216, in urlopen
return opener.open(url, data, timeout)
File "/usr/lib/python3.10/urllib/request.py", line 525, in open
response = meth(req, response)
File "/usr/lib/python3.10/urllib/request.py", line 634, in http_response
response = self.parent.error(
File "/usr/lib/python3.10/urllib/request.py", line 557, in error
result = self._call_chain(*args)
File "/usr/lib/python3.10/urllib/request.py", line 496, in _call_chain
result = func(*args)
File "/usr/lib/python3.10/urllib/request.py", line 749, in http_error_302
return self.parent.open(new, timeout=req.timeout)
File "/usr/lib/python3.10/urllib/request.py", line 525, in open
response = meth(req, response)
File "/usr/lib/python3.10/urllib/request.py", line 634, in http_response
response = self.parent.error(
File "/usr/lib/python3.10/urllib/request.py", line 563, in error
return self._call_chain(*args)
File "/usr/lib/python3.10/urllib/request.py", line 496, in _call_chain
result = func(*args)
File "/usr/lib/python3.10/urllib/request.py", line 643, in http_error_default
raise HTTPError(req.full_url, code, msg, hdrs, fp)
urllib.error.HTTPError: HTTP Error 451: Unavailable For Legal Reasons
I tried directly the command steamcmd +app_info_print 39140 +quit
and some times I have the result, with the game info, but I'm stuck on the steamcmd console and it seem the +quit
does not work.
I found part of the solution may be.
If I try steamcmd +app_info_print 39140 +quit
I do not have the result.
But if try with steamcmd +login anonymous +app_info_print 39140 +quit
it work allways.
And it work :) I've changed the line on /installer/steamcmd.py
line 22 :
result = subprocess.check_output(["steamcmd", "+login anonymous", "+app_info_print"
python3 sf_install 39140 --steamcmdclient /usr/bin/steamcmd --no-download --steamapps /home/joan/.steam/steam/steamapps
Obtaining app info...
Depots related to the game:
228982: VC 2008 Redist
228990: DirectX Jun 2010 Redist
39142: FINAL FANTASY VII
39143: FF7 English
39144: FF7 French
39145: FF7 German
39146: FF7 Spanish
Generating manifest...
Generating the steam_api.dll wrapper just for this game...
Found steam_api.dll: /tmp/tmp3tv3tc9m/thegame/steam_api.dll
Specfile will be generated: /tmp/tmp3tv3tc9m/thegame/steam_api.orig_spec
cd "`dirname "/tmp/tmp3tv3tc9m/thegame/steam_api.dll"`"; \
winedump spec "/tmp/tmp3tv3tc9m/thegame/steam_api.dll"; \
rm -f /tmp/tmp3tv3tc9m/thegame/steam_api_main.c Makefile.in; \
mv /tmp/tmp3tv3tc9m/thegame/steam_api.spec /tmp/tmp3tv3tc9m/thegame/steam_api.orig_spec
Contents of /tmp/tmp3tv3tc9m/thegame/steam_api.dll: 104872 bytes
57 named symbols in DLL, 57 total, 57 unique (ordinal base = 1)
Done dumping /tmp/tmp3tv3tc9m/thegame/steam_api.dll
Export 1 - 'GetHSteamPipe' ... [Ignoring]
Export 2 - 'GetHSteamUser' ... [Ignoring]
Export 3 - 'SteamAPI_GetHSteamPipe' ... [Ignoring]
Export 4 - 'SteamAPI_GetHSteamUser' ... [Ignoring]
Export 5 - 'SteamAPI_GetSteamInstallPath' ... [Ignoring]
Export 6 - 'SteamAPI_Init' ... [Ignoring]
Export 7 - 'SteamAPI_InitSafe' ... [Ignoring]
Export 8 - 'SteamAPI_IsSteamRunning' ... [Ignoring]
Export 9 - 'SteamAPI_RegisterCallResult' ... [Ignoring]
Export 10 - 'SteamAPI_RegisterCallback' ... [Ignoring]
Export 11 - 'SteamAPI_RestartAppIfNecessary' ... [Ignoring]
Export 12 - 'SteamAPI_RunCallbacks' ... [Ignoring]
Export 13 - 'SteamAPI_SetBreakpadAppID' ... [Ignoring]
Export 14 - 'SteamAPI_SetMiniDumpComment' ... [Ignoring]
Export 15 - 'SteamAPI_SetTryCatchCallbacks' ... [Ignoring]
Export 16 - 'SteamAPI_Shutdown' ... [Ignoring]
Export 17 - 'SteamAPI_UnregisterCallResult' ... [Ignoring]
Export 18 - 'SteamAPI_UnregisterCallback' ... [Ignoring]
Export 19 - 'SteamAPI_UseBreakpadCrashHandler' ... [Ignoring]
Export 20 - 'SteamAPI_WriteMiniDump' ... [Ignoring]
Export 21 - 'SteamApps' ... [Ignoring]
Export 22 - 'SteamClient' ... [Ignoring]
Export 23 - 'SteamContentServer' ... [Ignoring]
Export 24 - 'SteamContentServerUtils' ... [Ignoring]
Export 25 - 'SteamContentServer_Init' ... [Ignoring]
Export 26 - 'SteamContentServer_RunCallbacks' ... [Ignoring]
Export 27 - 'SteamContentServer_Shutdown' ... [Ignoring]
Export 28 - 'SteamFriends' ... [Ignoring]
Export 29 - 'SteamGameServer' ... [Ignoring]
Export 30 - 'SteamGameServerApps' ... [Ignoring]
Export 31 - 'SteamGameServerHTTP' ... [Ignoring]
Export 32 - 'SteamGameServerNetworking' ... [Ignoring]
Export 33 - 'SteamGameServerStats' ... [Ignoring]
Export 34 - 'SteamGameServerUtils' ... [Ignoring]
Export 35 - 'SteamGameServer_BSecure' ... [Ignoring]
Export 36 - 'SteamGameServer_GetHSteamPipe' ... [Ignoring]
Export 37 - 'SteamGameServer_GetHSteamUser' ... [Ignoring]
Export 38 - 'SteamGameServer_GetIPCCallCount' ... [Ignoring]
Export 39 - 'SteamGameServer_GetSteamID' ... [Ignoring]
Export 40 - 'SteamGameServer_Init' ... [Ignoring]
Export 41 - 'SteamGameServer_InitSafe' ... [Ignoring]
Export 42 - 'SteamGameServer_RunCallbacks' ... [Ignoring]
Export 43 - 'SteamGameServer_Shutdown' ... [Ignoring]
Export 44 - 'SteamHTTP' ... [Ignoring]
Export 45 - 'SteamMatchmaking' ... [Ignoring]
Export 46 - 'SteamMatchmakingServers' ... [Ignoring]
Export 47 - 'SteamNetworking' ... [Ignoring]
Export 48 - 'SteamRemoteStorage' ... [Ignoring]
Export 49 - 'SteamScreenshots' ... [Ignoring]
Export 50 - 'SteamUnifiedMessages' ... [Ignoring]
Export 51 - 'SteamUser' ... [Ignoring]
Export 52 - 'SteamUserStats' ... [Ignoring]
Export 53 - 'SteamUtils' ... [Ignoring]
Export 54 - 'Steam_GetHSteamUserCurrent' ... [Ignoring]
Export 55 - 'Steam_RegisterInterfaceFuncs' ... [Ignoring]
Export 56 - 'Steam_RunCallbacks' ... [Ignoring]
Export 57 - 'g_pSteamClientGameServer' ... [Ignoring]
Searching for precompiled version of steam_api.dll.so...
1.26...Found
The best matching version is 1.26
Generating runscripts...
...for FINAL FANTASY VII/FF7_Launcher.exe
Placing steam_appid.txt to the game location...
Done! You may launch the game via scripts located at /home/joan/.steam/steam/steamapps/common/FINAL FANTASY VII/
Done :)
You can close this issue, now I have to try if this work with steam api I will send a change on the code for this.
Hi,
I want to use the steamforwarder.
I know, now we have Steamplay and proton.
But in my case, I have the game on Steam (it is an old game), but I install it in standalone with a moded pack with hd version, better music, better graphics etc... so outside Steam.
And this modded version can deal with the Steam Api. It use steam_api.dll to dialog with steam and get achievment etc... It work on windows of course, and it work too with wine (I installed it with Lutris) and installing steam windows version on the same wine prefix of the game.
But, I want to "translate" the steam_api.dll to allow this wine game to dialog directly with steam native version. Therefore, it will not be necessary to install a windows client. That the purpose of SteamForwarder.
I'm on Arch Linux. I tried SteamForwarder, but it did not work. I can't generate an steam_api.dll.so, and the script .sh to launch the game with wine (with DLLOVERRIDE...).
So can you help me please, or explain how can I make it work ?
I didn't need to download the game on steam, it is already dowloaded. Or use steamcmd. Juste need to find how can I forward wine steam game (or exactly a standalone game using the steam api) to linux native.
Thank you so much if you can learn me how I can realize this project.
See you :)