Closed scaledteam closed 3 years ago
Try this to get a 32 bit build
Unfortunately it fails too. Also, now CS1.6 don't want to preload 32 bit library o.O Worms Ultimate Mayhem through wine (OpenGL) don't work too. 64bit games works fine.
GTA San Andreas now works through wine with dxvk, thank you for that.
Directly from terminal:
$ LD_PRELOAD=/home/scaled/git/obs-vkcapture/build32/libobs_glcapture.so ./hl.sh
ERROR: ld.so: object '/home/scaled/git/obs-vkcapture/build32/libobs_glcapture.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS32): ignored.
ERROR: ld.so: object '/home/scaled/git/obs-vkcapture/build32/libobs_glcapture.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS32): ignored.
[obs-vkcapture] Init 0.9.0
Using breakpad crash handler
Failed to initalize authentication interface. Exiting...
From Steam:
[obs-vkcapture] Texture GL_RGBA 1920x1080
assert_20210810113223_1.dmp[168475]: Uploading dump (out-of-process)
/tmp/dumps/assert_20210810113223_1.dmp
/home/scaled/.steam/debian-installation/steamapps/common/Half-Life/hl.sh: line 43: 168369 Segmentation fault ${DEBUGGER} "${GAMEROOT}"/${GAMEEXE} $@
You have to load the 32bit library to 32bit games and 64bit lib to 64bit games of course.
What is the PKGBUILD doing is to build both 32 and 64bit libraries and installs them system-wide (/usr/lib
and /usr/lib32
) which makes the LD_PRELOAD=libobs_glcapture.so
choose the correct library to preload.
Library path may be different on your system, if you are on Debian it would be /usr/lib/x86_64-linux-gnu
and /usr/lib/x86_32-linux-gnu
.
Strange that CS 1.6 don't want to preload 32bit and 64bit libraries. But why?
ERROR: ld.so: object '/usr/lib/libobs_glcapture.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS64): ignored.
ERROR: ld.so: object '/home/scaled/git/obs-vkcapture/build32/libobs_glcapture.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS32): ignored.
Also, how to use pkgbuild properly? I just compiled program twice with cmake.
Strange that CS 1.6 don't want to preload 32bit and 64bit libraries. But why?
I have no idea here, sorry.
Also, how to use pkgbuild properly? I just compiled program twice with cmake.
That's only for ArchLinux.
Ok, thank you. Will try to place library into /usr/lib/x86_32-linux-gnu
later.
If you are going to set LD_PRELOAD with absolute path to correct library, you don't really have to. It's only done like that so you can just use obs-glcapture %command%
and it will work for both 32 and 64 bit.
When trying to capture 32bit game, it doesn't want to load library:
I tried to compile it with crossbuild-essential-i386, but it can't link some files to OBS.
But i still tried to preload some generated files and program just crashed, when i opened OBS.