The Binding of Isaac: Rebirth (v2022.12.08 with DLCs Afterbirth and Afterbirth+, Linux x64, Steam) Segmentation fault ### Description The Binding of Isaac Rebirth v2022.12.08 with DLC Afterbirth and Afterbirth+, Linux x64, Steam, With Goldberg. Rock 5B, Box64 with Dynarec v0.2.1 f82a6b7, PAN_MESA_DEBUG=gofaster,gl3 Not working, ending with Segmentation fault. Also reported here, https://github.com/ptitSeb/box86-compatibility-list/issues/240 Already tested: - Added missing lib, liballegro.so.5.0 (x64), I can't find compiled liballegro.so.5.0, so I symlinked liballegro_color.so.5.2.6 - Added missing lib, libGLX.so.0 (native aarch64) - libGLdispatch.so.0 (native aarch64), from libglvnd package. My final log, at this point, I don't know how to carry on further. ```bash rico [ ~/the_binding_of_isaac_rebirth ]$ LD_LIBRARY_PATH="lib64:/home/rico/deb/usr/lib/x86_64-linux-gnu:/home/rico/deb/usr/lib/aarch64-linux-gnu:$LD_LIBRARY_PATH" box64 ./isaac.x64 Dynarec for ARM64, with extension: ASIMD AES CRC32 PMULL ATOMICS PageSize:4096 Running on Cortex-A55 Cortex-A76 with 8 Cores Params database has 21 entries Using bash "/home/rico/box64/tests/bash" Box64 with Dynarec v0.2.1 f82a6b7 built on Mar 8 2023 20:13:59 Using default BOX64_LD_LIBRARY_PATH: ./:lib/:lib64/:x86_64/:bin64/:libs64/ Using default BOX64_PATH: ./:bin/ Counted 58 Env var Looking for ./isaac.x64 Rename process to "isaac.x64" Using native(wrapped) libGL.so.1 Using native(wrapped) libGLU.so.1 Using native(wrapped) libX11.so.6 Using native(wrapped) libXxf86vm.so.1 Using native(wrapped) libXext.so.6 Using native(wrapped) libxcb.so.1 Using native(wrapped) libXau.so.6 Using native(wrapped) libdl.so.2 Using native(wrapped) libc.so.6 Using native(wrapped) ld-linux-x86-64.so.2 Using native(wrapped) libpthread.so.0 Using native(wrapped) libutil.so.1 Using native(wrapped) librt.so.1 Using native(wrapped) libXdmcp.so.6 Using native(wrapped) libXrandr.so.2 Using native(wrapped) libXrender.so.1 Using native(wrapped) libXi.so.6 Using native(wrapped) libopenal.so.1 Using emulated lib64/libsteam_api.so Using emulated /lib/x86_64-linux-gnu/libstdc++.so.6 Using native(wrapped) libm.so.6 Using emulated /lib/x86_64-linux-gnu/libgcc_s.so.1 Initializing Theora Playback Library (1.1) - libtheora version: Xiph.Org libtheora 1.2.0alpha 20100924 (Ptalarbvorm) - libvorbis version: Xiph.Org libVorbis 1.3.4 ------------------------------------ Using emulated /home/rico/deb/usr/lib/x86_64-linux-gnu/liballegro.so.5.0 Using native(wrapped) libXcursor.so.1 Using native(wrapped) libXpm.so.4 Using native(wrapped) libXinerama.so.1 Using native(wrapped) libOpenGL.so.0 Using native(wrapped) libGLX.so.0 Using native(wrapped) libdbus-1.so.3 2043|SIGSEGV @0x7f8a9aa050 (???(0x7f8a9aa050)) (x64pc=0x8fc998//home/rico/the_binding_of_isaac_rebirth/isaac.x64:"/home/rico/the_binding_of_isaac_rebirth/isaac.x64/_Z17_glfwPlatformInitv + 472", rsp=0x101ffef60, stack=0x101800000:0x102000000 own=(nil) fp=0x4ec76cc0), for accessing 0xc (code=1/prot=0), db=0x7f8a9f8ad8(0x7f8a9aa050:0x7f8a9aca1c/0x8fc998:0x8fd0cb//home/rico/the_binding_of_isaac_rebirth/isaac.x64/_Z17_glfwPlatformInitv + 472:clean, hash:2a1f5242/2a1f5242) handler=(nil) RAX:0x0000000000000000 RCX:0x0000000000000000 RDX:0x0000000000000000 RBX:0x0000000000000001 RSP:0x0000000101ffef60 RBP:0x000000004ec76cc0 RSI:0x0000000000000001 RDI:0x0000007f8da66a84 R8:0x0000000000000001 R9:0x0000000000e04db4 R10:0x2dc030705ed92be0 R11:0x2f6c61636f6c2e2f R12:0x0000000000000004 R13:0x0000000000000000 R14:0x0000000000000000 R15:0x0000000000000000 RSP-0x20:0x000000004e665ca8 RSP-0x18:0x000000004df87cd0 RSP-0x10:0x0000000000000194 RSP-0x08:0x00000000008fc998 RSP+0x00:0x0000000101fff000 RSP+0x08:0x000000004e64eff0 RSP+0x10:0x000000004ebef8c0 RSP+0x18:0x000000004ebef8d4 Segmentation fault (core dumped) ``` ### Tested on RADXA Rock 5B (rk3588) 16GB LFS, BSP kernel 5.10.110+ (rkr3.6), Gnome 43.4, Box64 with Dynarec v0.2.1 f82a6b7 1080p, default game setting ### Reproduce ```bash # game dir is prepared in $HOME/the_binding_of_isaac_rebirth # read launching scrpits in game folder, I run the game with the following cmds, lib64 is Goldberg's libsteam_api.so. cd ~/the_binding_of_isaac_rebirth LD_LIBRARY_PATH="lib64:$LD_LIBRARY_PATH" box64 ./isaac.x64 # then I got isaac-1.log # Error loading needed lib liballegro.so.5.0 # Warning: Cannot dlopen("liballegro.so.5.0"/0x9a677b, 1) # Using native(wrapped) libdbus-1.so.3 # 1517|SIGSEGV @0x7fbc07c628 (???(0x7fbc07c628)) (x64pc=0x8fc998//home/rico/the_binding_of_isaac_rebirth/isaac.x64:"/home/rico/the_binding_of_isaac_rebirth/isaac.x64/_Z17_glfwPlatformInitv + 472", rsp=0x101ffefb0, stack=0x101800000:0x102000000 own=(nil) fp=0x4471c750), for accessing 0xc (code=1/prot=0), db=0x7fbc16e4d0(0x7fbc07c628:0x7fbc07eff4/0x8fc998:0x8fd0cb//home/rico/the_binding_of_isaac_rebirth/isaac.x64/_Z17_glfwPlatformInitv + 472:clean, hash:2a1f5242/2a1f5242) handler=(nil) # RAX:0x0000000000000000 RCX:0x0000000000000000 RDX:0x0000000000000000 RBX:0x0000000000000001 # RSP:0x0000000101ffefb0 RBP:0x000000004471c750 RSI:0x0000000000000001 RDI:0x0000007fbed76a84 # R8:0x0000000000000001 R9:0x0000000000e04db4 R10:0x956dc8f516c2ab39 R11:0x2f6c61636f6c2e2f # R12:0x0000000000000000 R13:0x0000000000000000 R14:0x0000000000000000 R15:0x0000000000000000 # RSP-0x20:0x00000000442c3ca8 RSP-0x18:0x0000000043beab60 RSP-0x10:0x0000000000000194 RSP-0x08:0x00000000008fc998 # RSP+0x00:0x0000000101fff050 RSP+0x08:0x00000000442b1d10 RSP+0x10:0x00000000442b1fa0 RSP+0x18:0x00000000442b1fb4 # Segmentation fault (core dumped) # So I went to solve the missing libs. libs for game testing are stored in $HOME/deb mkdir -pv ~/deb cd ~/deb # liballegro.so.5.0 (x64) # https://packages.debian.org/stable/libs/liballegro5.2 //can not find liballegro.so.5.0 even in older branch # https://github.com/liballeg/allegro5/releases/tag/5.0.11 //the pkg repo, I don't have x64 linux at hand, so can't compile myself wget http://ftp.debian.org/debian/pool/main/a/allegro5/liballegro5.2_5.2.6.0-3_amd64.deb ar -x liballegro5.2_5.2.6.0-3_amd64.deb tar -xf data.tar.xz # symlink to liballegro.so.5.0 see if I can trick the game. cd usr/lib/x86_64-linux-gnu ln -sfv liballegro_color.so.5.2.6 liballegro.so.5.0 # run the game again, I got isaac-2.log, isaac-3.log, more missing libs. cd ~/the_binding_of_isaac_rebirth LD_LIBRARY_PATH="lib64:/home/rico/deb/usr/lib/x86_64-linux-gnu:$LD_LIBRARY_PATH" box64 ./isaac.x64 # Error initializing native libGLX.so.0 (last dlerror is libGLX.so.0: cannot open shared object file: No such file or directory) # Error initializing native libGLX.so.0 (last dlerror is libGLdispatch.so.0: cannot open shared object file: No such file or directory) # Hinted by solving stardew last time, when seeing 'cannot open shared object file', I need native aarch64 libs. cd ~/deb # libGLX.so.0 (native aarch64) //from arch pkg page, I'm worried if I install this one will break my mesa, so I sideload it. # https://packages.debian.org/bullseye/libs/libglx0 wget http://ftp.debian.org/debian/pool/main/libg/libglvnd/libglx0_1.3.2-1_arm64.deb ar -x libglx0_1.3.2-1_arm64.deb tar -xf data.tar.xz # libGLdispatch.so.0 (native aarch64) //a lot of pkgs at debian include dispatch, from arch pkg page, I think I need glvnd # https://packages.debian.org/bullseye/libs/libglvnd0 wget http://ftp.debian.org/debian/pool/main/libg/libglvnd/libglvnd0_1.3.2-1_arm64.deb ar -x libglvnd0_1.3.2-1_arm64.deb tar -xf data.tar.xz # run the game again, I got isaac-4.log, as attached above as my final log. cd ~/the_binding_of_isaac_rebirth LD_LIBRARY_PATH="lib64:/home/rico/deb/usr/lib/x86_64-linux-gnu:/home/rico/deb/usr/lib/aarch64-linux-gnu:$LD_LIBRARY_PATH" box64 ./isaac.x64 # I don't know how to carry on, liballegro.so.5.0? dbus? ls -lah /usr/lib/libdbus-1* # lrwxrwxrwx 1 root root 19 Mar 2 10:11 /usr/lib/libdbus-1.so -> libdbus-1.so.3.32.2 # lrwxrwxrwx 1 root root 19 Mar 2 10:11 /usr/lib/libdbus-1.so.3 -> libdbus-1.so.3.32.2 # -rwxr-xr-x 1 root root 541K Mar 2 10:11 /usr/lib/libdbus-1.so.3.32.2 # my dbus is compiled following instructiong at https://linuxfromscratch.org/blfs/view/systemd/general/dbus.html # attached ``` ### Logs [isaac-1.log](https://github.com/ptitSeb/box64/files/10931441/isaac-1.log) [isaac-2.log](https://github.com/ptitSeb/box64/files/10931444/isaac-2.log) [isaac-3.log](https://github.com/ptitSeb/box64/files/10931446/isaac-3.log) [isaac-4.log](https://github.com/ptitSeb/box64/files/10931447/isaac-4.log) ### My dbus lib [libdbus-1.so.3.32.zip](https://github.com/ptitSeb/box64/files/10931454/libdbus-1.so.3.32.zip) ### Status **Previous behavior:** Working via box86, https://github.com/ptitSeb/box86-compatibility-list/issues/4 **Current behavior:** Segmentation fault via box64 ### Screenshots ### OpenGL OpenGL 2 ### Additional Information PAN_MESA_DEBUG=gofaster,gl3 Box64 with Dynarec v0.2.1 f82a6b7, compiled with -DRK3588=1 Thanks again for the awesome project. Since Isaac might be Steam's icon, it will be nice to have it working :) I wrote the above niebie stuff, hope it won't bother you too much and issue post here may benifit more gamers. Have a lovely day :)