37 Commits

Author SHA1 Message Date
Billy Laws
8ff40aad6e lsteamclient: Add support for ARM64. 2025-04-24 18:03:45 +03:00
Billy Laws
c295dcb636 lsteamclient: Generate WOW64 thunks. 2025-04-24 18:03:45 +03:00
Billy Laws
725044535f lsteamclient: Pad some client pointers. 2025-04-24 18:03:45 +03:00
Billy Laws
2dd569b5e6 lsteamclient: Use a cookie to pass unix side temporary CallbackMsg_t. 2025-04-24 18:03:45 +03:00
Rémi Bernon
8d0ab1f8d3 lsteamclient: Use overloads and static dispatch for networking_message. 2025-04-24 18:03:44 +03:00
Rémi Bernon
11083b94b5 lsteamclient: Use the PE side request to cache GetServerDetails results. 2025-04-24 18:03:44 +03:00
Rémi Bernon
8e9e7b97ab lsteamclient: Keep the unix side response object on the PE side request. 2025-04-24 18:03:44 +03:00
Rémi Bernon
47d5d59f1b lsteamclient: Allocate server list request handles on the PE side. 2025-04-24 18:03:44 +03:00
Billy Laws
c059a702ae lsteamclient: Drop unused vtable callback argument. 2025-04-24 18:03:44 +03:00
Billy Laws
6c13702ab3 lsteamclient: Introduce unix-side buffer cache with PE allocate pointers.
There are several steam API calls that currently pass unix pointers
for e.g. strings directly to the PE-side, this allows for caching such
return values and returning a PE-side pointer instead.
2025-04-24 18:03:44 +03:00
Rémi Bernon
d89c5c80bb lsteamclient: Use 64bit handles for unix side interface pointers.
Based on a patch from Billy Laws.
2025-04-24 18:03:44 +03:00
Rémi Bernon
661da904e4 lsteamclient: Rename w_steam_iface to w_iface. 2025-04-24 18:03:44 +03:00
Billy Laws
42f2d563a4 steamclient: Call Windows vtable callbacks with the correct arg count
The x86 Windows ABI pushes all arguments onto the stack in the caller
and expects the callee to clean them up. The mismatch in parameter
counts thus causes the stack to be offset after calling these
callbacks leading to a crash.
2025-04-24 17:58:12 +03:00
Paul Gofman
a287ebaaf9 lsteamclient: Propagate Unix side access violation to the PE side exception.
CW-Bug-Id: #23623
2024-04-04 08:53:20 -06:00
Rémi Bernon
121cdab5fc lsteamclient: Copy the ServerResponded parameter for delayed callbacks.
CW-Bug-Id: #23272
2024-02-15 15:53:29 +02:00
Paul Gofman
051cb009df lsteamclient: Fix g_tmppath buffer length.
CW-Bug-Id: #23197
2024-02-15 15:53:29 +02:00
Rémi Bernon
eb45ddf6f8 lsteamclient: Add warnings and asserts to unixlib calls.
CW-Bug-Id: #22729
2024-02-15 15:53:29 +02:00
Rémi Bernon
838d14d66e lsteamclient: Split unixlib and build with msvcrt.
CW-Bug-Id: #22729
2024-02-15 15:53:28 +02:00
Rémi Bernon
5e70a92e17 lsteamclient: Default calling convention is cdecl.
CW-Bug-Id: #22729
CW-Bug-Id: #23085
2024-02-15 15:53:28 +02:00
Rémi Bernon
1bf0e86507 lsteamclient: Make sure the param structs are consistently aligned.
CW-Bug-Id: #22729
2024-02-15 15:53:28 +02:00
Rémi Bernon
cd4a31f4e0 lsteamclient: Use int8_t instead of ambiguous sized bool.
CW-Bug-Id: #22729
2024-02-15 15:53:28 +02:00
Rémi Bernon
98a90a1458 lsteamclient: Queue callback for input EnableActionEventCallbacks functions.
CW-Bug-Id: #22729
2024-02-15 15:53:28 +02:00
Rémi Bernon
6a7dbe6160 lsteamclient: Queue callback for networking SetConfigValue functions.
CW-Bug-Id: #22729
2024-02-15 15:53:28 +02:00
Rémi Bernon
5a552fbe77 lsteamclient: Use unix callbacks for custom client classes.
CW-Bug-Id: #22729
2024-02-15 15:53:28 +02:00
Rémi Bernon
c95536019c lsteamclient: Move unix to dos path conversions to the unix side.
CW-Bug-Id: #22729
2024-02-15 15:53:28 +02:00
Rémi Bernon
049342a555 lsteamclient: Move dos to unix path conversion to the unix side.
CW-Bug-Id: #22729
2024-02-15 15:53:27 +02:00
Rémi Bernon
cf89fdf018 lsteamclient: Use unixlib interface for C API functions.
CW-Bug-Id: #22729
2024-02-15 15:53:27 +02:00
Rémi Bernon
b22627053d lsteamclient: Generate unixlib interface in unixlib_generated.h.
CW-Bug-Id: #22729
2024-02-15 15:53:27 +02:00
Rémi Bernon
e0b2b50fb1 lsteamclient: Move unix library loading to the unix side.
CW-Bug-Id: #22729
2024-02-15 15:53:27 +02:00
Rémi Bernon
0564207f84 lsteamclient: Use the new converters for Steam_BGetCallback.
CW-Bug-Id: #22729
2024-02-15 15:53:27 +02:00
Rémi Bernon
2170b64142 lsteamclient: Generate callback wrappers with the new structs.
CW-Bug-Id: #22729
2024-02-15 15:53:27 +02:00
Rémi Bernon
77e83d193a lsteamclient: Execute debug callbacks from within Steam_BGetCallback.
CW-Bug-Id: #22729
2024-02-15 15:53:27 +02:00
Rémi Bernon
1b4cd4fc7a lsteamclient: Remove now unused steamclient_manual_common.cpp.
CW-Bug-Id: #22729
2024-02-15 15:53:27 +02:00
Rémi Bernon
05f84c8595 lsteamclient: Rewrite SteamNetworkingMessage_t_153a unix thunks.
CW-Bug-Id: #22729
2024-02-15 15:53:27 +02:00
Rémi Bernon
fa9ded4baf lsteamclient: Rewrite SteamNetworkingMessage_t_147 unix thunks.
CW-Bug-Id: #22729
2024-02-15 15:53:27 +02:00
Rémi Bernon
b56d6aa766 lsteamclient: Rewrite SteamNetworkingMessage_t_144 unix thunks.
CW-Bug-Id: #22729
2024-02-15 15:53:27 +02:00
Rémi Bernon
9ea65fe0d0 lsteamclient: Use the new structures in thunks.
CW-Bug-Id: #22729
2024-02-15 15:53:26 +02:00