Replies: 1 comment
-
|
Good idea |
Beta Was this translation helpful? Give feedback.
0 replies
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
-
Some games run multiplayer through EOS instead of Steam. The current 480 trick can't reach that since the EOS traffic never crosses Steam, so the only way to support them is in-process — i.e. a small DLL (
OnlineFix.dll) injected into the game by OpenSteamTool on launch.I've put together a working implementation in #97. The reasonable concern is that this crosses the boundary of "SteamClient-side only" that OpenSteamTool tries to keep, so this poll serves to gauge community interest before deciding whether to merge it (likely as an opt-in / experimental feature rather than on by default).
Maintenance scope
The only piece that meaningfully needs upkeep is
EosBridge, which patches a handful of EOS SDK exports:EOS_Connect_Login,EOS_Connect_CreateDeviceIdEOS_Lobby_CreateLobby,EOS_Lobby_JoinLobby,EOS_Lobby_JoinLobbyById(just clearing thebPresenceEnabledfield, whose offset is per-struct)EOS_IntegratedPlatformOptionsContainer_AddIf any of these are renamed or removed in a future SDK,
GetProcAddressreturns null,EosBridgeaborts before installing any hook, and the game runs without any modifications.As for the struct layouts:
bPresenceEnabled— everything's fine. Our partial mirror inEosTypes.hstops at that field, so anything past it is simply ignored. The offset we use doesn't change.bPresenceEnabled— the offset would shift, and the mirror would need the new field added to stay correct. This has never happened in EOS so far; new releases only append at the end.Everything else (injection, payload boot, process-tree propagation, logging) is OS-level glue that doesn't really change.
9 votes ·
Beta Was this translation helpful? Give feedback.
All reactions