ptitSeb / box64

Box64 - Linux Userspace x86_64 Emulator with a twist, targeted at ARM64 Linux devices
https://box86.org
MIT License
3.7k stars 263 forks source link

Eufloria HD Segmentation fault after showing logo screen #916

Closed ricoazzurro closed 1 year ago

ricoazzurro commented 1 year ago

Description

Eufloria HD, v1.1.0-212, Linux x64, Steam, with Goldberg, Steam BuildID: 5272442 (2020-07-11)

Box64 with Dynarec v0.2.3 6b5ee5e

Rock 5B, LFS, BSP kernel 5.10.160 rkr5.1, panfork-mesa, Gnome 44.3 PAN_MESA_DEBUG=gofaster,gl3 1080p, default game setting

Crashed to console after showing logo screen. Tested sideloading libSDL_image-1.2, libSDL_mixer-1.2, libvorbisfile.so.

Not working.

rico [ /opt/games/eufloria_hd ]$ ./EufloriaHD.bin.x86_64 
Dynarec for ARM64, with extension: ASIMD AES CRC32 PMULL ATOMICS PageSize:4096 Running on Cortex-A55 Cortex-A76 with 8 Cores
Params database has 24 entries
Box64 with Dynarec v0.2.3 6b5ee5e built on Jul 31 2023 07:15:55
Using default BOX64_LD_LIBRARY_PATH: ./:lib/:lib64/:x86_64/:bin64/:libs64/
Using default BOX64_PATH: ./:bin/
Counted 61 Env var
Looking for ./EufloriaHD.bin.x86_64
Rename process to "EufloriaHD.bin.x86_64"
Using emulated /opt/games/eufloria_hd/lib64/libsteam_api.so
Using native(wrapped) libGL.so.1
Using native(wrapped) libGLU.so.1
Using native(wrapped) libSDL-1.2.so.0
Using native(wrapped) libm.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
Error initializing native libSDL_image-1.2.so.0 (last dlerror is libSDL_image-1.2.so.0: cannot open shared object file: No such file or directory)
Using emulated /opt/games/eufloria_hd/lib64/libSDL_image-1.2.so.0
Error initializing native libSDL_mixer-1.2.so.0 (last dlerror is libSDL_mixer-1.2.so.0: cannot open shared object file: No such file or directory)
Using emulated /opt/games/eufloria_hd/lib64/libSDL_mixer-1.2.so.0
Using emulated /opt/games/eufloria_hd/lib64/libCg.so
Using emulated /opt/games/eufloria_hd/lib64/libCgGL.so
Using emulated /lib/x86_64-linux-gnu/libstdc++.so.6
Using emulated /lib/x86_64-linux-gnu/libgcc_s.so.1
Memory tracker offline.

Initialising Steam: Done
Initialising System.

2023-08-01 09:10:14
Using emulated /opt/games/eufloria_hd/lib64/libpng.so.3
Using native(wrapped) libz.so.1
Initialising Renderer.

Initialising Input.

Initialising Sound.

Initialisation successful.

Eufloria is initialising.

Initialize Lua

Loading font...

Font loaded.

Loaded shader res/Win32/polyline.vso.

Loaded shader res/Win32/trapezium.vso.

Loaded shader res/Win32/rotate.vso.

Loaded shader res/Win32/passthrough.vso.

Loaded shader res/Win32/passthrough242.vso.

Loaded shader res/Win32/passthrough.fso.

Loaded shader res/Win32/GeneratedTexture.fso.

Loaded shader res/Win32/polyline.vso.

Loaded shader res/Win32/trapezium.vso.

Loaded shader res/Win32/rotate.vso.

Loaded shader res/Win32/passthrough.vso.

Loaded shader res/Win32/passthrough242.vso.

Loaded shader res/Win32/passthrough.fso.

Loaded shader res/Win32/GeneratedTexture.fso.

Loaded shader res/Win32/polyline.vso.

Loaded shader res/Win32/trapezium.vso.

Loaded shader res/Win32/rotate.vso.

Loaded shader res/Win32/passthrough.vso.

Loaded shader res/Win32/passthrough242.vso.

Loaded shader res/Win32/passthrough.fso.

Loaded shader res/Win32/GeneratedTexture.fso.

Loaded shader res/Win32/polyline.vso.

Loaded shader res/Win32/trapezium.vso.

Loaded shader res/Win32/rotate.vso.

Loaded shader res/Win32/passthrough.vso.

Loaded shader res/Win32/passthrough242.vso.

Loaded shader res/Win32/passthrough.fso.

Loaded shader res/Win32/GeneratedTexture.fso.

Loaded shader res/Win32/polyline.vso.

Loaded shader res/Win32/trapezium.vso.

Loaded shader res/Win32/rotate.vso.

Loaded shader res/Win32/passthrough.vso.

Loaded shader res/Win32/passthrough242.vso.

Loaded shader res/Win32/passthrough.fso.

Loaded shader res/Win32/GeneratedTexture.fso.

Loaded shader res/Win32/polyline.vso.

Loaded shader res/Win32/trapezium.vso.

Loaded shader res/Win32/rotate.vso.

Loaded shader res/Win32/passthrough.vso.

Loaded shader res/Win32/passthrough242.vso.

Loaded shader res/Win32/passthrough.fso.

Loaded shader res/Win32/GeneratedTexture.fso.

Loaded shader res/Win32/polyline.vso.

Loaded shader res/Win32/trapezium.vso.

Loaded shader res/Win32/rotate.vso.

Loaded shader res/Win32/passthrough.vso.

Loaded shader res/Win32/passthrough242.vso.

Loaded shader res/Win32/passthrough.fso.

Loaded shader res/Win32/GeneratedTexture.fso.

Loaded shader res/Win32/polyline.vso.

Loaded shader res/Win32/trapezium.vso.

Loaded shader res/Win32/rotate.vso.

Loaded shader res/Win32/passthrough.vso.

Loaded shader res/Win32/passthrough242.vso.

Loaded shader res/Win32/passthrough.fso.

Loaded shader res/Win32/GeneratedTexture.fso.

Loaded shader res/Win32/polyline.vso.

Loaded shader res/Win32/trapezium.vso.

Loaded shader res/Win32/rotate.vso.

Loaded shader res/Win32/passthrough.vso.

Loaded shader res/Win32/passthrough242.vso.

Loaded shader res/Win32/passthrough.fso.

Loaded shader res/Win32/GeneratedTexture.fso.

Loaded shader res/Win32/polyline.vso.

Loaded shader res/Win32/trapezium.vso.

Loaded shader res/Win32/rotate.vso.

Loaded shader res/Win32/passthrough.vso.

Loaded shader res/Win32/passthrough242.vso.

Loaded shader res/Win32/passthrough.fso.

Loaded shader res/Win32/GeneratedTexture.fso.

Loaded shader res/Win32/polyline.vso.

Loaded shader res/Win32/trapezium.vso.

Loaded shader res/Win32/rotate.vso.

Loaded shader res/Win32/passthrough.vso.

Loaded shader res/Win32/passthrough242.vso.

Loaded shader res/Win32/passthrough.fso.

Loaded shader res/Win32/GeneratedTexture.fso.

INIT: Generating graphics.

INIT: Loading SFX.

INIT: Wait for license check.

INIT: Pre-allocating entities.

Init complete.

Using native(wrapped) libvorbisfile.so.3
4173|SIGSEGV @0x7fa9eff0a4 (???(/usr/lib/libSDL2-2.0.so.0+0x7fa9eff0a4)) (x64pc=0x60160/???:"???", rsp=0x1036cef10, stack=0x102ed0000:0x1036d0000 own=0x102ed0000 fp=0x1000), for accessing 0xb0 (code=1/prot=0), db=(nil)((nil):(nil)/(nil):(nil)/???:clean, hash:0/0) handler=(nil)
RSP-0x20:0x0000000000000000 RSP-0x18:0x0000000000000000 RSP-0x10:0x000000006343d760 RSP-0x08:0x0000000000000005
RSP+0x00:0x00000001028260b7 RSP+0x08:0x000000010000ac44 RSP+0x10:0x0000000000000000 RSP+0x18:0x00000001036cef38
RAX:0x0000000000001000 RCX:0x0000000000000002 RDX:0x0000000000001000 RBX:0x0000000000001000 
RSP:0x00000001036cef10 RBP:0x0000000000001000 RSI:0x0000007f84008ed0 RDI:0x00000000000000b0 
 R8:0x0000000000008010  R9:0x0000000000000002 R10:0x0000000000000020 R11:0x0000000000000000 
R12:0x000000006c76e2a0 R13:0x0000000000004000 R14:0x00000000000000b0 R15:0x000000006c76e670 
ES:0x002b CS:0x0033 SS:0x002b DS:0x002b FS:0x0043 GS:0x0053 
Segmentation fault (core dumped)

Tested on

Box64 with Dynarec v0.2.3 6b5ee5e

Rock 5B, LFS, BSP kernel 5.10.160 rkr5.1, panfork-mesa, Gnome 44.3 PAN_MESA_DEBUG=gofaster,gl3 1080p, default game setting

Status

Previous behavior:

Working. https://github.com/ptitSeb/box86-compatibility-list/issues/343

Current behavior:

Segmentation fault after showing logo screen.

Screenshots

OpenGL

Additional Information

https://www.pcgamingwiki.com/wiki/Eufloria

ptitSeb commented 1 year ago

Can you do a run with BOX64_ROLLING_LOG=1 , it seems the crash happens in SDL2...

ricoazzurro commented 1 year ago

Thank you for looking at it.

BOX64_ROLLING_LOG=1,

rico [ /opt/games/eufloria_hd ]$ BOX64_ROLLING_LOG=1 box64 ./EufloriaHD.bin.x86_64 
Rolling log, showing last 16 function call on signals
Dynarec for ARM64, with extension: ASIMD AES CRC32 PMULL ATOMICS PageSize:4096 Running on Cortex-A55 Cortex-A76 with 8 Cores
Params database has 24 entries
Box64 with Dynarec v0.2.3 6b5ee5e built on Jul 31 2023 07:15:55
Using default BOX64_LD_LIBRARY_PATH: ./:lib/:lib64/:x86_64/:bin64/:libs64/
Using default BOX64_PATH: ./:bin/
Counted 62 Env var
Looking for ./EufloriaHD.bin.x86_64
Rename process to "EufloriaHD.bin.x86_64"
Using emulated /opt/games/eufloria_hd/lib64/libsteam_api.so
Using native(wrapped) libGL.so.1
Using native(wrapped) libGLU.so.1
Using native(wrapped) libSDL-1.2.so.0
Using native(wrapped) libm.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
Error initializing native libSDL_image-1.2.so.0 (last dlerror is libSDL_image-1.2.so.0: cannot open shared object file: No such file or directory)
Using emulated /opt/games/eufloria_hd/lib64/libSDL_image-1.2.so.0
Error initializing native libSDL_mixer-1.2.so.0 (last dlerror is libSDL_mixer-1.2.so.0: cannot open shared object file: No such file or directory)
Using emulated /opt/games/eufloria_hd/lib64/libSDL_mixer-1.2.so.0
Using emulated /opt/games/eufloria_hd/lib64/libCg.so
Using emulated /opt/games/eufloria_hd/lib64/libCgGL.so
Using emulated /lib/x86_64-linux-gnu/libstdc++.so.6
Using emulated /lib/x86_64-linux-gnu/libgcc_s.so.1
Memory tracker offline.

Initialising Steam: Done
Initialising System.

2023-08-01 15:55:02
Using emulated /opt/games/eufloria_hd/lib64/libpng.so.3
Using native(wrapped) libz.so.1
Initialising Renderer.

Initialising Input.

Initialising Sound.

Initialisation successful.

Eufloria is initialising.

Initialize Lua

Loading font...

Font loaded.

Loaded shader res/Win32/polyline.vso.

Loaded shader res/Win32/trapezium.vso.

Loaded shader res/Win32/rotate.vso.

Loaded shader res/Win32/passthrough.vso.

Loaded shader res/Win32/passthrough242.vso.

Loaded shader res/Win32/passthrough.fso.

Loaded shader res/Win32/GeneratedTexture.fso.

INIT: Generating graphics.

INIT: Loading SFX.

INIT: Wait for license check.

INIT: Pre-allocating entities.

Init complete.

Using native(wrapped) libvorbisfile.so.3
Last calls
1250|0x33672229f5: Calling glGetDoublev (/usr/lib/libGL.so.1)(0xBA6, 0x101FFEB20, 0x3368951BDC, ...) => return 0x4
1250|0x3367222a07: Calling glGetDoublev (/usr/lib/libGL.so.1)(0xBA7, 0x101FFEAA0, 0x3368951BDC, ...) => return 0x4
1250|0x3367f94c3d: Calling pthread_mutex_lock (/usr/lib/libc.so.6)(0x3368920940, 0x336737BF00, 0x101FFEBA0, ...) => return 0x0
1250|0x3367244681: Calling ???(/usr/lib/libglapi.so.0+0x7fbaee2370)(0x5, 0x8620, 0x1, ...) => return 0x39AF8B40
1250|0x3367f854c5: Calling __pthread_mutex_unlock (/usr/lib/libc.so.6)(0x3368920940, 0x8620, 0x1, ...) => return 0x0
1250|0x3367221f35: Calling __pthread_mutex_unlock (/usr/lib/libc.so.6)(0x3368920940, 0x8620, 0x1, ...) => return 0x0
1250|0x3367f7a98f: Calling pthread_mutex_lock (/usr/lib/libc.so.6)(0x3368920940, 0x8620, 0x1, ...) => return 0x0
1250|0x3367f7a962: Calling __pthread_mutex_unlock (/usr/lib/libc.so.6)(0x3368920940, 0x8620, 0x1, ...) => return 0x0
1250|0x594056: Calling glBindTexture (/usr/lib/libGL.so.1)(0xDE1, 0x1, 0x1, ...) => return 0x39123510
1250|0x58d8a5: Calling glEnable (/usr/lib/libGL.so.1)(0xDE1, 0x1, 0x1, ...) => return 0x39123510
1250|0x58d8c2: Calling glBindTexture (/usr/lib/libGL.so.1)(0xDE1, 0x0, 0x1, ...) => return 0x39123510
1250|0x58a747: Calling sincosf (/usr/lib/libm.so.6)(0x101FFE9EC, 0x101FFE9E8, 0x200, ...) => return 0x10
1250|0x58a747: Calling sincosf (/usr/lib/libm.so.6)(0x101FFE9EC, 0x101FFE9E8, 0x200, ...) => return 0x10
1250|0x58a747: Calling sincosf (/usr/lib/libm.so.6)(0x101FFE9EC, 0x101FFE9E8, 0x200, ...) => return 0x10
1250|0x58a747: Calling sincosf (/usr/lib/libm.so.6)(0x101FFE9EC, 0x101FFE9E8, 0x200, ...) => return 0x10
1250|0x58a747: Calling sincosf (/usr/lib/libm.so.6)(0x101FFE9EC, 0x101FFE9E8, 0x200, ...) => return 0x10
1306|SIGSEGV @0x7fba3ff0a4 (sincosf (/usr/lib/libm.so.6)) (x64pc=0x60173/???:"???", rsp=0x1036cef10, stack=0x102ed0000:0x1036d0000 own=0x102ed0000 fp=0x1000), for accessing 0x50 (code=1/prot=0), db=(nil)((nil):(nil)/(nil):(nil)/???:clean, hash:0/0) handler=(nil)
RSP-0x20:0x0000000000000000 RSP-0x18:0x0000000000000000 RSP-0x10:0x0000000038188e00 RSP-0x08:0x0000000000000005
RSP+0x00:0x00000001028260b7 RSP+0x08:0x00000001036cff44 RSP+0x10:0x0000000000000000 RSP+0x18:0x00000001036cef38
RAX:0x0000000000001000 RCX:0x000000000000001d RDX:0x0000000000001000 RBX:0x0000000000001000 
RSP:0x00000001036cef10 RBP:0x0000000000001000 RSI:0x0000007f94008770 RDI:0x0000000000000050 
 R8:0x0000000000000002  R9:0x0000000000000001 R10:0x0000000000000020 R11:0x0000000000000000 
R12:0x0000000041692980 R13:0x0000000000004000 R14:0x0000000000000050 R15:0x0000000041692d50 
ES:0x002b CS:0x0033 SS:0x002b DS:0x002b FS:0x0043 GS:0x0053 
Segmentation fault (core dumped)

lib64 folder comes with the game,

rico [ ~ ]$ ls -lah /opt/games/eufloria_hd/lib64
total 20M
drwx------ 2 rico rico 4.0K Jul 21 05:05 .
drwx------ 5 rico rico 4.0K Jul 31 20:55 ..
-rw-rw-r-- 1 rico rico 502K Jul 21 05:03 libCgGL.so
-rw-rw-r-- 1 rico rico  15M Jul 21 05:03 libCg.so
-rw-rw-r-- 1 rico rico  22K Jul 21 05:03 libogg.so.0
-rw-rw-r-- 1 rico rico 144K Jul 21 05:03 libpng.so.3
-rw-rw-r-- 1 rico rico 413K Jul 21 05:03 libSDL-1.2.so.0
-rw-rw-r-- 1 rico rico  16K Jul 21 05:03 libSDL_image-1.2.so.0
-rw-rw-r-- 1 rico rico 146K Jul 21 05:03 libSDL_mixer-1.2.so.0
-rw-rw-r-- 1 rico rico 4.0M Sep  6  2022 libsteam_api.so
-rw-rw-r-- 1 rico rico  32K Jul 21 05:03 libvorbisfile.so.3
-rw-rw-r-- 1 rico rico 174K Jul 21 05:03 libvorbis.so.0

native aarch64 SDL libs in system,

rico [ /opt/games/eufloria_hd ]$ ls -lah /usr/lib/libSDL*
lrwxrwxrwx 1 root root   15 Jul 28 23:36 /usr/lib/libSDL-1.2.so -> libSDL-1.2.so.0
lrwxrwxrwx 1 root root   20 Jul 28 23:36 /usr/lib/libSDL-1.2.so.0 -> libSDL-1.2.so.1.2.64
-rwxr-xr-x 1 root root 227K Jul 30 16:59 /usr/lib/libSDL-1.2.so.1.2.64
lrwxrwxrwx 1 root root   16 Jul 28 23:36 /usr/lib/libSDL2-2.0.so -> libSDL2-2.0.so.0
lrwxrwxrwx 1 root root   23 Jul 28 23:36 /usr/lib/libSDL2-2.0.so.0 -> libSDL2-2.0.so.0.2800.1
-rwxr-xr-x 1 root root 2.5M Jul 30 21:35 /usr/lib/libSDL2-2.0.so.0.2800.1
-rw-r--r-- 1 root root 1.5K Jul 30 21:35 /usr/lib/libSDL2main.a
lrwxrwxrwx 1 root root   22 Jul 29 13:34 /usr/lib/libSDL2_mixer-2.0.so -> libSDL2_mixer-2.0.so.0
lrwxrwxrwx 1 root root   28 Jul 29 13:34 /usr/lib/libSDL2_mixer-2.0.so.0 -> libSDL2_mixer-2.0.so.0.600.3
-rwxr-xr-x 1 root root 422K Jul 31 06:54 /usr/lib/libSDL2_mixer-2.0.so.0.600.3
lrwxrwxrwx 1 root root   22 Jul 29 13:34 /usr/lib/libSDL2_mixer.so -> libSDL2_mixer-2.0.so.0
lrwxrwxrwx 1 root root   14 Jul 28 23:36 /usr/lib/libSDL2.so -> libSDL2-2.0.so
-rw-r--r-- 1 root root 1.2K Jul 30 16:58 /usr/lib/libSDLmain.a
lrwxrwxrwx 1 root root   13 Jul 28 23:36 /usr/lib/libSDL.so -> libSDL-1.2.so
ptitSeb commented 1 year ago

I tried my copy of Eufloria HD from Steam, and I have no issue with it. Do you still have issue on your side with latest box64?

ricoazzurro commented 1 year ago

Thank you for asking. I'll retry with latest box in a week :)

ricoazzurro commented 1 year ago

Yahoo. Fixed! The game can be launched and played via Box64 with Dynarec v0.2.5 2c7daa3 .

ricoazzurro commented 1 year ago

Fixed at Box64 with Dynarec v0.2.5 2c7daa3