HeroicGamesLauncher icon indicating copy to clipboard operation
HeroicGamesLauncher copied to clipboard

GOG Linux native Dead Cells on Steam Deck misses libbsd

Open sluedecke opened this issue 3 years ago • 3 comments

Describe the bug

Dead Cells installs fine, but does not launch. The error message says:

** ERROR ** Missing library libbsd.so.0

When starting the game with minigalaxy, it works fine in desktop mode.

The game is installed on the SD card here:

/run/media/mmcblk0p1/gog/Dead Cells

Add logs

(deck@steamdeck logs)$ pwd /home/deck/Games/Heroic/HeroicBashLauncher/GameFiles/logs (deck@steamdeck logs)$ cat DeadCells_Heroic.log ERROR: ld.so: object '/home/deck/.local/share/Steam/ubuntu12_32/gameoverlayrenderer.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS32): ignored. ERROR: ld.so: object '/home/deck/.local/share/Steam/ubuntu12_32/gameoverlayrenderer.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS32): ignored. ERROR: ld.so: object '/home/deck/.local/share/Steam/ubuntu12_32/gameoverlayrenderer.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS32): ignored. ERROR: ld.so: object '/home/deck/.local/share/Steam/ubuntu12_32/gameoverlayrenderer.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS32): ignored. 3.32.0 ERROR: ld.so: object '/home/deck/.local/share/Steam/ubuntu12_32/gameoverlayrenderer.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS32): ignored. ERROR: ld.so: object '/home/deck/.local/share/Steam/ubuntu12_32/gameoverlayrenderer.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS32): ignored. ERROR: ld.so: object '/home/deck/.local/share/Steam/ubuntu12_32/gameoverlayrenderer.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS32): ignored. ERROR: ld.so: object '/home/deck/.local/share/Steam/ubuntu12_32/gameoverlayrenderer.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS32): ignored. Using Bash Launcher v2.9.2 NOTE - This is an independent project and not affiliated with Heroic Games Launcher.

ERROR: ld.so: object '/home/deck/.local/share/Steam/ubuntu12_32/gameoverlayrenderer.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS32): ignored. ERROR: ld.so: object '/home/deck/.local/share/Steam/ubuntu12_32/gameoverlayrenderer.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS32): ignored. ERROR: ld.so: object '/home/deck/.local/share/Steam/ubuntu12_32/gameoverlayrenderer.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS32): ignored. ERROR: ld.so: object '/home/deck/.local/share/Steam/ubuntu12_32/gameoverlayrenderer.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS32): ignored. Running Dead Cells ** ERROR ** Missing library libbsd.so.0 ** ERROR ** Missing library libbsd.so.0 ** ERROR ** Missing library libbsd.so.0 ** ERROR ** Missing library libbsd.so.0 ** ERROR ** Missing library libbsd.so.0 src/module.c(321) : FATAL ERROR : Failed to load library sdl.hdll Launch command: ['/run/media/mmcblk0p1/gog/Dead Cells/start.sh'] ERROR: ld.so: object '/home/deck/.local/share/Steam/ubuntu12_32/gameoverlayrenderer.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS32): ignored. pid 110 != 2, skipping destruction (fork without exec?)

Steps to reproduce

  1. Install Dead Cells from GOG, use Linux native version
  2. start game in heroic

Expected behavior

Game starts

Screenshots

Game starts

System Information

  • OS: Steam OS (Linux steamdeck 5.13.0-valve21.1-1-neptune-02211-gc54cda5a36f3 #1 SMP PREEMPT Mon, 08 Aug 2022 22:27:56 +0000 x86_64 GNU/Linux)
  • Heroic Version: 2.4.3

Additional information

No response

sluedecke avatar Sep 21 '22 07:09 sluedecke

Interesstingly if I install heroic with pacman (yes, I disabled readonly) instead of using the flatpack version, Dead Cells starts just fine.

sluedecke avatar Sep 27 '22 05:09 sluedecke

Interesstingly if I install heroic with pacman (yes, I disabled readonly) instead of using the flatpack version, Dead Cells starts just fine.

this means one thing: the flatpak runtime does not include this lib. HAve you tried to enable the Steam runtime on the game settings in Heroic? Might be that it works.

flavioislima avatar Sep 27 '22 08:09 flavioislima

I think I tried that without success, but I am not sure. In the end I fell back to using pacman, but that is not a general solution to the problem. I would need to reinstall heroic and add all the games once again ...

Is there any other way on how to check this?

minigalaxy uses runtime/org.gnome.Platform/x86_64/42 and heroic uses runtime/org.freedesktop.Platform/x86_64/22.08 as far as I can tell.

sluedecke avatar Sep 27 '22 11:09 sluedecke

I tried with the steam runtime with a flatpak install of heroic and it does not work.

sluedecke avatar Oct 09 '22 07:10 sluedecke

I'd rename this to 'Executing native linux games from flatpak'.

I faced similar issues with 3 games:

  • 1 dosbox game is missing libcaca.so
  • 1 scummvm game is missing libjpeg.so.8
  • 1 native game is missing libpng8.so

It seems games have no access to /usr/lib, because even putting a symlink to game-dir/libs/ (or something similar) has no effect.

For example:

...
Game Log:
Running The Pillars of the Earth
./pillars: error while loading shared libraries: libpng12.so.0: cannot open shared object file: No such file or directory

It looks like the player crashed! If you need support, please include the
contents of the log file in your problem report.
Unfortunately, no log file has been created!
Launch command: ['/home/deck/Games/Heroic/The Pillars of the Earth/start.sh']

But:

deck@steamdeck ~> ll /home/deck/Games/Heroic/The\ Pillars\ of\ the\ Earth/game/libs64/
total 111M
-rw-r--r-- 1 deck deck  21M Mar 13  2018 libGalaxy64.so
-rw-r--r-- 1 deck deck  75M Mar 13  2018 libGalaxyPeer64.so
-rw-r--r-- 1 deck deck  11M Mar 13  2018 libavcodec.so.56
-rw-r--r-- 1 deck deck  15K Mar 13  2018 libavdevice.so.56
-rw-r--r-- 1 deck deck 1.1M Mar 13  2018 libavfilter.so.5
-rw-r--r-- 1 deck deck 1.9M Mar 13  2018 libavformat.so.56
-rw-r--r-- 1 deck deck 319K Mar 13  2018 libavutil.so.54
-rw-r--r-- 1 deck deck 680K Mar 13  2018 libopenal.so
lrwxrwxrwx 1 deck deck   20 Dec  3 12:27 libpng12.so.0 -> /usr/lib/libpng12.so*
-rw-r--r-- 1 deck deck 107K Mar 13  2018 libswresample.so.1
-rw-r--r-- 1 deck deck 475K Mar 13  2018 libswscale.so.3
-rw-r--r-- 1 deck deck 101K Mar 13  2018 libz.so.1

Manually executing /home/deck/Games/Heroic/The Pillars of the Earth/start.sh works fine.

dmig avatar Dec 03 '22 12:12 dmig

I can confirm that adding the start.sh directly to steam or calling it directly works fine.

sluedecke avatar Dec 05 '22 08:12 sluedecke

I tried with the steam runtime with a flatpak install of heroic and it does not work.

One thing, for the Steam runtime to work you need to confirm that the path to steam is correct on Heroic settings. If you have the Steam flatpak then that setting needs to be changed.

flavioislima avatar Dec 05 '22 11:12 flavioislima

@flavioislima thank you for looking into this!

I tried with different settings in heroic, but unfortunately to no avail yet:

  • FAILS fresh install of dead cells started from heroic
  • FAILS dead cells set to "use steam runtime" in heroic
  • WORKS run start.sh from dead cells in desktop mode
  • WORKS add start.sh as non-steam game to steam

Here are some configs:

Dead Cells log:

System Info:
Heroic Version: 2.5.1 Yamato
Legendary Version:  0.20.31 Dark Energy (hotfix #5)
GOGdl Version: 0.5
OS: Freedesktop SDK KERNEL: 5.13.0-valve21.3-1-neptune ARCH: x64
CPU: AMD Custom APU 0405 @2.4 GOVERNOR: schedutil
RAM: Total: 14.49 GiB Available: 11.31 GiB
GRAPHICS: GPU0: VanGogh [AMD Custom GPU 0405] VRAM: 512MB  
PROTOCOL: x11

Game Settings: {
	"autoInstallDxvk": false,
	"autoInstallVkd3d": false,
	"preferSystemLibs": false,
	"maxSharpness": 2,
	"nvidiaPrime": false,
	"enviromentOptions": [],
	"wrapperOptions": [],
	"savesPath": "",
	"showFps": false,
	"targetExe": "",
	"useGameMode": false,
	"useSteamRuntime": true,
	"language": "",
	"wineVersion": {
		"bin": "",
		"name": "Default Wine - Not Found",
		"type": "wine"
	},
	"winePrefix": "/home/deck/Games/Heroic/Prefixes/Dead Cells",
	"eacRuntime": false,
	"battlEyeRuntime": false,
	"gogSaves": []
}

Game launched at: Sun Dec 11 2022 11:58:32 GMT+0100 (Central European Standard Time)

Launch Command: /home/deck/.local/share/Steam/ubuntu12_32/steam-runtime/run.sh /app/bin/heroic/resources/app.asar.unpacked/build/bin/linux/gogdl launch "/run/media/mmcblk0p1/gog/Dead Cells" 1237807960 --platform linux

Game Log:
Running Dead Cells
** ERROR ** Missing library libbsd.so.0
** ERROR ** Missing library libbsd.so.0
** ERROR ** Missing library libbsd.so.0
** ERROR ** Missing library libbsd.so.0
** ERROR ** Missing library libbsd.so.0
src/module.c(321) : FATAL ERROR : Failed to load library sdl.hdll
Launch command: ['/run/media/mmcblk0p1/gog/Dead Cells/start.sh']
All processes exited

Heroic Settings

{
  "checkUpdatesInterval": 10,
  "enableUpdates": false,
  "addDesktopShortcuts": false,
  "addStartMenuShortcuts": false,
  "autoInstallDxvk": false,
  "autoInstallVkd3d": false,
  "addSteamShortcuts": true,
  "preferSystemLibs": false,
  "checkForUpdatesOnStartup": false,
  "customWinePaths": [],
  "defaultInstallPath": "/run/media/mmcblk0p1/gog",
  "libraryTopSection": "recently_played_installed",
  "defaultSteamPath": "/home/deck/.steam/steam",
  "defaultWinePrefix": "/home/deck/Games/Heroic/Prefixes",
  "hideChangelogsOnStartup": false,
  "language": "en",
  "maxWorkers": 0,
  "minimizeOnLaunch": false,
  "nvidiaPrime": false,
  "enviromentOptions": [],
  "wrapperOptions": [],
  "showFps": false,
  "useGameMode": false,
  "userInfo": {
    "epicId": "e7b0717ad5a7463fae23c0b13c11ee89",
    "name": "deck"
  },
  "wineCrossoverBottle": "Heroic",
  "winePrefix": "/home/deck/.wine",
  "wineVersion": {
    "bin": "/home/deck/.var/app/com.heroicgameslauncher.hgl/config/heroic/tools/wine/Wine-GE-Proton7-31/bin/wine",
    "name": "Wine - Wine-GE-Proton7-31",
    "type": "wine",
    "lib": "/home/deck/.var/app/com.heroicgameslauncher.hgl/config/heroic/tools/wine/Wine-GE-Proton7-31/lib64",
    "lib32": "/home/deck/.var/app/com.heroicgameslauncher.hgl/config/heroic/tools/wine/Wine-GE-Proton7-31/lib",
    "wineserver": "/home/deck/.var/app/com.heroicgameslauncher.hgl/config/heroic/tools/wine/Wine-GE-Proton7-31/bin/wineserver",
    "wineboot": "/home/deck/.var/app/com.heroicgameslauncher.hgl/config/heroic/tools/wine/Wine-GE-Proton7-31/bin/wineboot"
  },
  "altLegendaryBin": "",
  "altGogdlBin": "",
  "darkTrayIcon": false,
  "disableController": false,
  "egsLinkedPath": "",
  "maxRecentGames": 5,
  "showUnrealMarket": false,
  "eacRuntime": false,
  "battlEyeRuntime": false
}

Dead Cells Settings

{"appName":"1237807960","title":"Dead Cells","autoInstallDxvk":false,"autoInstallVkd3d":false,"preferSystemLibs":false,"maxSharpness":2,"nvidiaPrime":false,"enviromentOptions":[],"wrapperOptions":[],"savesPath":"","showFps":false,"targetExe":"","useGameMode":false,"useSteamRuntime":false,"language":"","wineVersion":{"bin":"","name":"Default Wine - Not Found","type":"wine"},"winePrefix":"/home/deck/Games/Heroic/Prefixes/Dead Cells","eacRuntime":false,"battlEyeRuntime":false,"gogSaves":[]}

sluedecke avatar Dec 12 '22 09:12 sluedecke

I just tested with 2.12.0 flatpak and dead cells linux native works out of the box

arielj avatar Jan 12 '24 02:01 arielj