taysta / TaystJK

Effort to maintain and improve EternalJK

Home Page:https://taysta.github.io/TaystJK/

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

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 to eternaljk.x86_64.exe and write 6020 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 the eternaljk.x86_64.exe
  • Copy the file sdk\redistributable_bin\steam_api.dll and paste it next to the eternaljk.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.