Skip to content

Add linux64 gamedata (CS:S x86_64) - #32

Merged
Rushaway merged 3 commits into
masterfrom
feat/linux64-gamedata
Oct 28, 2026
Merged

Rushaway merged 3 commits into
masterfrom
feat/linux64-gamedata

Conversation

@cmer81

@cmer81 cmer81 commented Oct 19, 2026 •

Copy link
Copy Markdown
Member

Valve moved CS:S to x86_64 in 2025. We're moving our ZE server to the 64-bit build (SourceMod 1.13.0.7427 + DHooks Linux x86_64, srcdslab/sourcemod#9 and srcdslab/metamod-source#4). SourceMod reads "linux64" keys there and doesn't fall back to "linux", so without them this plugin fails to load.

Changes

addons/sourcemod/gamedata/Extend.games.txt: 1 "linux64" value(s) and 1 Addresses platform block(s).

How the values were checked

On the CS:S dedicated server build 11003710 (same binaries as our x64 server), comparing the x86 and x86_64 server_srv.so/engine_srv.so. Both still have symbols.

  • @symbol signatures: the same symbol exists in the x86_64 library.
  • vtable offsets: the method at the linux index in the x86 vtable is at the same index in the x86_64 one.

Testing

Loaded on a CS:S x64 test bench running the full ZE SourceMod config: no gamedata errors left for this plugin.
x86 is unchanged (only linux64 keys are added).

CI: SourceMod 1.13.0.7427

This plugin deals with addresses. Built with 1.12 includes, Address is 32-bit, and on x86_64 SourceMod 1.13 just sign-extends it (there are no pseudo-addresses), so its pointers are wrong there. With LagCompensation this crashed CS:S x64 in CCollisionProperty::MarkPartitionHandleDirty. CI now builds with SourceMod 1.13.0.7427 (setup-sp 1.13.7427), what production runs. The plugin compiles unchanged.

Same vtable indices and symbol names as linux on the x86_64 server binaries
(build 11003710), checked against both server_srv.so.
Built with 1.12 includes, Address is 32-bit: on x86_64 SourceMod 1.13 just
sign-extends it (there are no pseudo-addresses), so pointers from
GetEntityAddress/GameData.GetAddress are wrong there. With LagCompensation this
crashed CS:S x64 in CCollisionProperty::MarkPartitionHandleDirty (SDKCall_Raw
on GetEntityAddress + m_Collision). 1.13 is what production runs.
@cmer81 cmer81 added x86_64 CS:S x86_64 (64-bit srcds) support requires SM 1.13 Built with SourceMod 1.13 includes; does not load on 1.12 labels Oct 19, 2026
@cmer81

cmer81 commented Oct 19, 2026

Copy link
Copy Markdown
Member Author

The plugin is now built with SourceMod 1.13 includes (64-bit Address). Releases will not load on SourceMod 1.12 servers anymore.

@Rushaway
Rushaway merged commit 7d40453 into master Oct 28, 2026
6 checks passed
@Rushaway
Rushaway deleted the feat/linux64-gamedata branch October 28, 2026 07:47
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

requires SM 1.13 Built with SourceMod 1.13 includes; does not load on 1.12 x86_64 CS:S x86_64 (64-bit srcds) support

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants