YaLTeR / OpenAG

An open-source reimplementation of Adrenaline Gamer's client library.
https://j.mp/OpenAG
Other
134 stars 40 forks source link

[LINUX] could not load library /home/.../ag/cl_dlls/client.so #181

Open Lamborge opened 1 year ago

Lamborge commented 1 year ago

just install agmod and it won't start gdb output: (gdb) call (void*) dlopen("ag/cl_dlls/client.so", 2) $1 = (void *) 0x0 (gdb) call (char*) dlerror() $2 = 0x8077690 "ag/cl_dlls/client.so: undefined symbol: SDL_SetRelativeMouseMode"

YaLTeR commented 1 year ago

Try with the "legacy" beta on Half-Life.

SmileyAG commented 1 year ago

According to error, might be this has something to do that with the release of the 25th anniversary version, they removed the libSDL2 libs from the Half-Life folder for Linux depot: https://steamdb.info/depot/8/history/?changeid=M:2809540380682473923

Although the latest version of the engine is still dynamically linked to the libSDL2, it's just borrows version now from steam runtime (from info sharedlibrary in gdb):

0xf5c6cda0  0xf5d8d978  Yes (*)     /home/smileyag/.steam/debian-installation/ubuntu12_32/steam-runtime/i386/usr/lib/i386-linux-gnu/libSDL2-2.0.so.0
Lamborge commented 1 year ago

I did run Half-Life with Native Runtime. So, as i understand, if just install libSDL2 or move .so file of libSDL2 to Half-Life folder, problem will solve?

krangm commented 1 year ago

Can confirm Linux OpenAG launches fine with libSDL2-2.0.so.0 preloaded.

Lamborge commented 1 year ago

adding LD_PRELOAD=/usr/lib32/libSDL2-2.0.so.0 %command% to launch parameters solve the problem

SmileyAG commented 1 year ago

adding LD_PRELOAD=/usr/lib32/libSDL2-2.0.so.0 %command% to launch parameters solve the problem

Let me note that it is not necessary to use the system one libSDL2-2.0.so.0, you can also use it from steam runtime, the only important is that it must be preloaded:

LD_PRELOAD=$STEAM_RUNTIME/usr/lib/i386-linux-gnu/libSDL2-2.0.so.0 %command% -game ag
krangm commented 1 year ago

adding LD_PRELOAD=/usr/lib32/libSDL2-2.0.so.0 %command% to launch parameters solve the problem

Let me note that it is not necessary to use the system one libSDL2-2.0.so.0, you can also use it from steam runtime, the only important is that it must be preloaded:

LD_PRELOAD=$STEAM_RUNTIME/usr/lib/i386-linux-gnu/libSDL2-2.0.so.0 %command% -game ag

Have not tested after 25th anniversary update, but historically HL was shipped with badly outdated libSDL2 so it is recommended to replace game-shipped lib with the one from the system. Otherwise mouse rawinput is wrong and acceleration exists despite of config values. Some other bugs may happen too.