Hi,

The attached port is minimally modified version of the hlsteam
middleware for hashlink. This expands the games that can run by
allowing access to API in goldberg_emulator, like achievements, cloud
saves, etc (which are all emulated locally unlike the real Steam client
does).

For a little context, until recently the approach to handle the
dependencies of some of the commercial FNA or hashlink games on Steam
API has been to use a collection of the stubbed middleware libraries in
games/steamworks-nosteam. Those serve usually as a middle layer between
the game and libsteam_api.so (on Linux). The stubs basically cut all
calls to libsteam_api.so short. This approach has its shortcomings, as
not all cases can be handled appropriately. In addition, this means
installing and maintaining multiple different library files - at the
moment there are 5 in steamworks-nosteam.

With goldberg_emulator, the goal is to simplify the situation, that is
let libsteam_api.so from goldberg_emulator handle most (all?) API
emulation or stubs. At the same time, native middleware libraries can
be used largely unmodified from their source.

With hlsteam, this allows running several games that couldn't run
previously: Northgard (newer versions now with most modes; even GOG
version), Darksburg, Evoland Legendary Edition, Nuclear Blaze, and the
demo of Wartales. If you have one of these games and want to try it,
just remove all *.so* and *.hdll files from the game's directory, then
use '$ hl' from the hashlink port to run.

Going forward, my plan is to replace the other stubs in
steamworks-nosteam with functioning versions where possible, as well as
adding libCSteamworks.so which so far is mostly blocked by a stub of
Steamworks.NET.dll. This should eventually make steamworks-nosteam
unnecessary.

I have tested the port with all the above mentioned games. It should
even be possible to play over LAN, as that is one of the main purposes
of goldberg emulator, but I haven't tested that part.

ok?

Attachment: hlsteam.tgz
Description: Binary data

Reply via email to