Wrong Steam API library used for the x86_64 release
CansecoDev opened this issue · comments
Description:
The x86_64
build is using steam_api.dll
instead of steam_api64.dll
, even if it is not bundled with JKA, the x86_64
build should use that library.
Reproduction steps:
Copy the x86_64
release files to the GameData in the Steam directory (steamapps\common\Jedi Academy\GameData) and run the game from eternaljk.x86_64.exe
, the Steam overlay won't work. Doing the same with the x86
release will work.
Workaround:
Since the game itself doesn't ship with a steam_api64.dll
this is tricky, an end user would need to build a project using the latest Steamworks SDK, grab the resulting steam_api64.dll
, put it on the GameData directory and rename it to steam_api.dll
, while this currently works, it is not ideal.
I'd like to open the conversation to evaluate bundling the steam_api64.dll
with the x86_64
releases, I don't know about the legals of doing this (not the linking issue with GPL, but redistributing the API library), but seeing that it's called a "redistributable_bin" on the Steamworks SDK directory makes me think of this possibility. The end goal being making it easy for non-developer users to be able to use x86_64
EternalJK build and be able to use the Steam overlay, playing profile, etc.
Notes:
I do believe that this issue doesn't exist on linux since libsteam_api.so
doesn't seem to have different file names for x86
and x86_64
, but I have not tested it.
I've not checked how any of this works, but if the GPL is really a problem with the Steamworks SDK (I'm not able to find where this comes from), this might be useful.
Hi, thanks for reporting this issue.
Ultimately I would like to shift over to using SteamShim. My main drawback is that SteamShim requires a launcher to be used which interfaces with the game and with steam, from my understanding. For now I would be okay with including steam_api64.dll and bundling it with the x86_64 builds until SteamShim gets implemented and #15 is closed.
Leaving this here just if someone needs to get a working library from the only valid provider (Steam):
- Make a file
steam_appid.txt
next toeternaljk.x86_64.exe
and write6020
inside of it, save and close. - Register to the Steamworks partner program: https://partner.steamgames.com (yes...)
- Download the 1.44 version of the SDK from here: https://partner.steamgames.com/downloads/steamworks_sdk_144.zip
- Copy the file
sdk\redistributable_bin\win64\steam_api64.dll
and paste it next to theeternaljk.x86_64.exe
- Copy the file
sdk\redistributable_bin\steam_api.dll
and paste it next to theeternaljk.x86.exe
Then after this and a fix in the engine that makes the x86_64
build look for the proper library, it should work just fine.