ptitSeb / box64

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

Unable to run《A Short Hike》 on handheld ARM devices #1252

Open stgapr opened 9 months ago

stgapr commented 9 months ago

Dear ptitSeb,I noticed that "A short Hike" was described on the game compatibility list as running well, so I tried to load it again on my Powkiddy RGB30 (Rockchip RK3566), with parameters “PAN_MESA_DEBUG=gl3”,Then it stalled after outputting the following information . (These commands are executed through SSH , because debug information is not visible if I run it by launching .sh script directly through portmaster on the handheld device which also failed (Just black screen, no sound) )

Dynarec for ARM64, with extension: ASIMD AES CRC32 PMULL SHA1 SHA2 PageSize:4096 Running on Cortex-A55 with 4 Cores Params database has 48 entries Params database has 48 entries BOX64: Didn't detect 48bits of address space, considering it's 39bits Counted 21 Env var BOX64 LIB PATH: /usr/lib/:/usr/lib32/:/roms2/ports/psebay/libs/:./:lib/:lib64/:x86_64/:bin64/:libs64/:/lib/x86_64-linux-gnu/:/usr/lib/x86_64-linux-gnu/ BOX64 BIN PATH: ./:bin/:/usr/local/sbin/:/usr/local/bin/:/usr/sbin/:/usr/bin/:/sbin/:/bin/ Looking for ./AShortHike.x86_64 Rename process to "AShortHike.x86_64" Using emulated UnityPlayer.so Using native(wrapped) libm.so.6 Using emulated /lib/x86_64-linux-gnu/libgcc_s.so.1 Using native(wrapped) libpthread.so.0 Using native(wrapped) libc.so.6 Using native(wrapped) ld-linux-x86-64.so.2 Using native(wrapped) libdl.so.2 Using native(wrapped) libutil.so.1 Using native(wrapped) librt.so.1 Using native(wrapped) libbsd.so.0 Found path: /roms2/ports/ASH/game/AShortHike.x86_64 Using native(wrapped) libX11.so.6 Using native(wrapped) libXext.so.6 Using native(wrapped) libxcb.so.1 Using native(wrapped) libXau.so.6 Using native(wrapped) libXdmcp.so.6 Using native(wrapped) libXcursor.so.1 Using native(wrapped) libXinerama.so.1 Using native(wrapped) libXi.so.6 Using native(wrapped) libXrandr.so.2 Using native(wrapped) libXrender.so.1 Using native(wrapped) libXss.so.1 Using native(wrapped) libXxf86vm.so.1


I also check the path game\conf\unity3d\adamgryu\A Short Hike\, there is a Player.log which shows:

Using emulated /roms2/ports/ASH/game/AShortHike_Data/MonoBleedingEdge/x86_64/libmonobdwgc-2.0.so MonoBleedingEdge detected, disable Dynarec BigBlock and enable Dynarec StrongMem Mono path[0] = '/roms2/ports/ASH/game/AShortHike_Data/Managed' Mono config path = '/roms2/ports/ASH/game/AShortHike_Data/MonoBleedingEdge/etc' Using emulated /roms2/ports/ASH/game/AShortHike_Data/Plugins/UnityFbxSdkNative.so Using native(wrapped) libxml2.so.2 Using native(wrapped) libz.so.1 Using emulated /lib/x86_64-linux-gnu/libstdc++.so.6 Warning: Global Symbol _ZN9__gnu_cxx21zoneinfo_dir_overrideEv not found, cannot apply R_X86_64_GLOB_DAT @0x3f0624e268 ((nil)) in /lib/x86_64-linux-gnu/libstdc++.so.6 Warning: Weak Symbol _ITM_memcpyRtWn not found, cannot apply R_X86_64_JUMP_SLOT @0x3f0624f060 (0x9c0f6) Warning: Weak Symbol _ITM_RU1 not found, cannot apply R_X86_64_JUMP_SLOT @0x3f0624f6a0 (0x9cd76) Warning: Weak Symbol _ZGTtdlPv not found, cannot apply R_X86_64_JUMP_SLOT @0x3f0624fb00 (0x9d636) Warning: Weak Symbol _ITM_RU8 not found, cannot apply R_X86_64_JUMP_SLOT @0x3f0624fff8 (0x9e026) Warning: Weak Symbol _ITM_memcpyRnWt not found, cannot apply R_X86_64_JUMP_SLOT @0x3f062504a8 (0x9e986) Warning: Weak Symbol _ZGTtnam not found, cannot apply R_X86_64_JUMP_SLOT @0x3f06250c88 (0x9f946) Preloaded 'UnityFbxSdkNative.so' Using emulated /roms2/ports/ASH/game/AShortHike_Data/Plugins/libsteam_api.so Preloaded 'libsteam_api.so' Unable to load player prefs Desktop is 0 x 0 @ 0 Hz <-----【there may be some wrong?】 Using native(wrapped) libXcursor.so.1 Using native(wrapped) libXinerama.so.1 Using native(wrapped) libXi.so.6 Using native(wrapped) libXrandr.so.2 Using native(wrapped) libXss.so.1 Using native(wrapped) libXxf86vm.so.1

btw, I'm not sure if that is warranted, your box86/box64 project seems to have become part of openKylin's windows program running compatibility layer called KWRE (Kylin Windows Runtime Environment,approximately box86/64+ wine + crossover), installed by default in many computers in China mainland.

ricoazzurro commented 9 months ago
  1. Box64 version matters. And most unity games work since v0.2.2+ on RK3588. (Actually, fixed during steam_chrome branch time.) You may check your box64 version in logs or box64 --version
  2. A lot modern unity games require opengl 3. If your gpu is already mainlined and support opengl 3, you do not need PAN_MESA_DEBUG=gl3.
  3. If your gpu didn't meet opengl 3, you might need some envs to workaround/make unity believe you have opengl 3.
  4. RK3566 has Mali G52 gpu, ie. Bifrost (v7), so I think PAN_MESA_DEBUG=gl3 is correct. ref, https://docs.mesa3d.org/drivers/panfrost.html

Try in the game's folder, PAN_MESA_DEBUG=gl3 box64 ./"AShortHike.x86_64"