lutris / buildbot

41 stars 27 forks source link

Lutris provides incorrect architecture library for the Flycast core in libretro #135

Open DoktorSeven opened 3 years ago

DoktorSeven commented 3 years ago

libretro core "flycast" provided by lutris is a 32-bit library for 64-bit systems/libretro, causing an error.

Add a libretro game, select a Dreamcast chd/cue/etc. Select "Sega Dreamcast/NAOMI (Flycast)" as its core. Run and allow it to download the core. Running the core after download will not start the game because of a "wrong ELF class: ELFCLASS32" error.

[INFO] Loading dynamic libretro core from: "/home/xxx/.local/share/lutris/runners/retroarch/cores/flycast_libretro.so" [ERROR] Failed to open libretro core: "/home/xxx/.local/share/lutris/runners/retroarch/cores/flycast_libretro.so" Error(s): /home/xxx/.local/share/lutris/runners/retroarch/cores/flycast_libretro.so: wrong ELF class: ELFCLASS32 [INFO] Content ran for a total of: 00 hours, 00 minutes, 00 seconds.

64bit Ubuntu 20.10. RetroArch is correctly pointing to a directory with the proper Dreamcast BIOS files which works with standalone RetroArch's Flycast core.

Removing the 32bit flycast_libretro.so file, manually running RetroArch from Lutris, downloading the flycast_libretro.so from the menu within Retroarch, exiting, and re-running the added game from the Lutris game list works properly.

Lutris downloaded file: $ file flycast_libretro.so flycast_libretro.so: ELF 32-bit LSB shared object, Intel 80386, version 1 (GNU/Linux), dynamically linked, BuildID[sha1]=e6f9ae0382a5fdba930b14eedda9e3c1ea819cef, stripped

Retroarch downloaded file: $ file flycast_libretro.so flycast_libretro.so: ELF 64-bit LSB shared object, x86-64, version 1 (GNU/Linux), dynamically linked, BuildID[sha1]=3b893ede7b1fb3b78beaed0a01c0666bcad0dbe6, stripped

Retroarch binary provided by Lutris: $ file retroarch retroarch: ELF 64-bit LSB shared object, x86-64, version 1 (GNU/Linux), dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, for GNU/Linux 3.2.0, BuildID[sha1]=98d7259da319b89978812a77b008981ca84c2f8f, stripped

Note the 64 and 32 bit discrepancy.