ptitSeb / box86-compatibility-list

Box86 Compatibility List (Games and Software)
MIT License
65 stars 2 forks source link

Caves of Qud (Native) #297

Open ricoazzurro opened 1 year ago

ricoazzurro commented 1 year ago

Description

Caves of Qud, v2.0.204.82 (65056), Linux x64, GOG, Engine: Unity

Box64 with Dynarec v0.2.3 f4c8c29

Rock 5B, LFS, BSP kernel 5.10.160+ rkr4, Gnome 44.1 PAN_MESA_DEBUG=gofaster,gl3 1080p, default game setting

Working.

Need preload x64 zlib. Thanks to @thaihugo 's tips. Mine is aquired from debian deb and set in start script as export LD_PRELOAD=/opt/box-libs/x86_64/libz.so.1

Otherwise the game will crash when creating the world in menu.

rico [ /opt/games/caves_of_qud ]$ ./box64-start.sh 
ERROR: ld.so: object '/opt/box-libs/x86_64/libz.so.1' from LD_PRELOAD cannot be preloaded (cannot open shared object file): ignored.
Dynarec for ARM64, with extension: ASIMD AES CRC32 PMULL ATOMICS PageSize:4096 ERROR: ld.so: object '/opt/box-libs/x86_64/libz.so.1' from LD_PRELOAD cannot be preloaded (cannot open shared object file): ignored.
ERROR: ld.so: object '/opt/box-libs/x86_64/libz.so.1' from LD_PRELOAD cannot be preloaded (cannot open shared object file): ignored.
ERROR: ld.so: object '/opt/box-libs/x86_64/libz.so.1' from LD_PRELOAD cannot be preloaded (cannot open shared object file): ignored.
ERROR: ld.so: object '/opt/box-libs/x86_64/libz.so.1' from LD_PRELOAD cannot be preloaded (cannot open shared object file): ignored.
Running on Cortex-A55 Cortex-A76 with 8 Cores
Params database has 24 entries
Box64 with Dynarec v0.2.3 f4c8c29 built on Jun  4 2023 21:38:41
Using default BOX64_LD_LIBRARY_PATH: ./:lib/:lib64/:x86_64/:bin64/:libs64/
Using default BOX64_PATH: ./:bin/
Counted 62 Env var
BOX64 try to Preload /opt/box-libs/x86_64/libz.so.1 
Looking for ./CoQ.x86_64
Rename process to "CoQ.x86_64"
Using emulated /opt/box-libs/x86_64/libz.so.1
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 emulated UnityPlayer.so
Using native(wrapped) libm.so.6
Using emulated /lib/x86_64-linux-gnu/libgcc_s.so.1
Using native(wrapped) libdl.so.2
[UnityMemory] Configuration Parameters - Can be set up in boot.config
    "memorysetup-bucket-allocator-granularity=16"
    "memorysetup-bucket-allocator-bucket-count=8"
    "memorysetup-bucket-allocator-block-size=4194304"
    "memorysetup-bucket-allocator-block-count=1"
    "memorysetup-main-allocator-block-size=16777216"
    "memorysetup-thread-allocator-block-size=16777216"
    "memorysetup-gfx-main-allocator-block-size=16777216"
    "memorysetup-gfx-thread-allocator-block-size=16777216"
    "memorysetup-cache-allocator-block-size=4194304"
    "memorysetup-typetree-allocator-block-size=2097152"
    "memorysetup-profiler-bucket-allocator-granularity=16"
    "memorysetup-profiler-bucket-allocator-bucket-count=8"
    "memorysetup-profiler-bucket-allocator-block-size=4194304"
    "memorysetup-profiler-bucket-allocator-block-count=1"
    "memorysetup-profiler-allocator-block-size=16777216"
    "memorysetup-profiler-editor-allocator-block-size=1048576"
    "memorysetup-temp-allocator-size-main=4194304"
    "memorysetup-job-temp-allocator-block-size=2097152"
    "memorysetup-job-temp-allocator-block-size-background=1048576"
    "memorysetup-job-temp-allocator-reduction-small-platforms=262144"
    "memorysetup-temp-allocator-size-background-worker=32768"
    "memorysetup-temp-allocator-size-job-worker=262144"
    "memorysetup-temp-allocator-size-preload-manager=262144"
    "memorysetup-temp-allocator-size-nav-mesh-worker=65536"
    "memorysetup-temp-allocator-size-audio-worker=65536"
    "memorysetup-temp-allocator-size-cloud-worker=32768"
    "memorysetup-temp-allocator-size-gfx=262144"
Using native(wrapped) libdbus-1.so.3
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
Using native(wrapped) libudev.so.1

Tested on

Box64 with Dynarec v0.2.3 f4c8c29

Rock 5B, LFS, BSP kernel 5.10.160+ rkr4, Gnome 44.1 PAN_MESA_DEBUG=gofaster,gl3 1080p, default game setting

Status

Previous behavior:

Not working when creating the world. https://github.com/ptitSeb/box86-compatibility-list/issues/289

Current behavior:

Working. Thanks to @thaihugo 's tips about preload x64 zlib.

Screenshots

Caves of Qud-1 Caves of Qud-2 Caves of Qud-3

OpenGL

Unity engine build: 2020.3.19f1

Additional Information

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

ricoazzurro commented 1 year ago

zlib issue is fixed by our beloved Seb via https://github.com/ptitSeb/box64/commit/157a9cc65126e32d27b2b9d0dc837fde9ec0945f

No need to preload x86_64 libz.so.1

# export LD_PRELOAD=/opt/box-libs/x86_64/libz.so.1
# export BOX64_LD_PRELOAD=/opt/box-libs/x86_64/libz.so.1

Thanks ptitSeb <3

Tested Caves of Qud v2.0.204.90 (65721) GOG via Box64 with Dynarec v0.2.3 a450806

Log as follows,

rico [ /opt/games/caves_of_qud ]$ ./box64-start.sh 
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 a450806 built on Jul  4 2023 16:32:14
Using default BOX64_LD_LIBRARY_PATH: ./:lib/:lib64/:x86_64/:bin64/:libs64/
Using default BOX64_PATH: ./:bin/
Counted 62 Env var
Looking for ./CoQ.x86_64
Rename process to "CoQ.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) libutil.so.1
Using native(wrapped) librt.so.1
Using native(wrapped) libdl.so.2
[UnityMemory] Configuration Parameters - Can be set up in boot.config
    "memorysetup-bucket-allocator-granularity=16"
    "memorysetup-bucket-allocator-bucket-count=8"
    "memorysetup-bucket-allocator-block-size=4194304"
    "memorysetup-bucket-allocator-block-count=1"
    "memorysetup-main-allocator-block-size=16777216"
    "memorysetup-thread-allocator-block-size=16777216"
    "memorysetup-gfx-main-allocator-block-size=16777216"
    "memorysetup-gfx-thread-allocator-block-size=16777216"
    "memorysetup-cache-allocator-block-size=4194304"
    "memorysetup-typetree-allocator-block-size=2097152"
    "memorysetup-profiler-bucket-allocator-granularity=16"
    "memorysetup-profiler-bucket-allocator-bucket-count=8"
    "memorysetup-profiler-bucket-allocator-block-size=4194304"
    "memorysetup-profiler-bucket-allocator-block-count=1"
    "memorysetup-profiler-allocator-block-size=16777216"
    "memorysetup-profiler-editor-allocator-block-size=1048576"
    "memorysetup-temp-allocator-size-main=4194304"
    "memorysetup-job-temp-allocator-block-size=2097152"
    "memorysetup-job-temp-allocator-block-size-background=1048576"
    "memorysetup-job-temp-allocator-reduction-small-platforms=262144"
    "memorysetup-temp-allocator-size-background-worker=32768"
    "memorysetup-temp-allocator-size-job-worker=262144"
    "memorysetup-temp-allocator-size-preload-manager=262144"
    "memorysetup-temp-allocator-size-nav-mesh-worker=65536"
    "memorysetup-temp-allocator-size-audio-worker=65536"
    "memorysetup-temp-allocator-size-cloud-worker=32768"
    "memorysetup-temp-allocator-size-gfx=262144"
Using native(wrapped) libdbus-1.so.3
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
Using native(wrapped) libudev.so.1

Caves of Qud v2 0 204 90 (65721) GOG

ricoazzurro commented 7 months ago

Re-Tested due to New version or New platform

Caves of Qud, v2.0.206.73 (72305), Linux x64, GOG, Engine: Unity

Box64 with Dynarec v0.2.7 a8866c3 Rock 5B, LFS, Kernel rk-6.1-rkr1-panthor-v6, Mesa 24.1.0, Gnome 46

Working Log,

rico [ /opt/games/caves_of_qud ]$ ./box64-start.sh 
Dynarec for ARM64, with extension: ASIMD AES CRC32 PMULL ATOMICS SHA1 SHA2 PageSize:4096 Running on Cortex-A55 Cortex-A76 with 8 Cores
Will use Hardware counter measured at 24.0 MHz emulating 768 MHz
Params database has 61 entries
Box64 with Dynarec v0.2.7 a8866c3 built on Apr  3 2024 08:04:05
BOX64: Detected 48bits at least of address space
Counted 66 Env var
BOX64 LIB PATH: /opt/box-libs/aarch64/:/opt/box-libs/x86_64/:./x64/:./:lib/:lib64/:x86_64/:bin64/:libs64/:/lib/x86_64-linux-gnu/:/usr/lib/x86_64-linux-gnu/
BOX64 BIN PATH: ./:bin/:/opt/rustc/bin/:/usr/local/bin/:/usr/bin/:/opt/ant/bin/:/opt/jdk/bin/:/opt/bin/
Looking for ./CoQ.x86_64
Rename process to "CoQ.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
[UnityMemory] Configuration Parameters - Can be set up in boot.config
    "memorysetup-bucket-allocator-granularity=16"
    "memorysetup-bucket-allocator-bucket-count=8"
    "memorysetup-bucket-allocator-block-size=4194304"
    "memorysetup-bucket-allocator-block-count=1"
    "memorysetup-main-allocator-block-size=16777216"
    "memorysetup-thread-allocator-block-size=16777216"
    "memorysetup-gfx-main-allocator-block-size=16777216"
    "memorysetup-gfx-thread-allocator-block-size=16777216"
    "memorysetup-cache-allocator-block-size=4194304"
    "memorysetup-typetree-allocator-block-size=2097152"
    "memorysetup-profiler-bucket-allocator-granularity=16"
    "memorysetup-profiler-bucket-allocator-bucket-count=8"
    "memorysetup-profiler-bucket-allocator-block-size=4194304"
    "memorysetup-profiler-bucket-allocator-block-count=1"
    "memorysetup-profiler-allocator-block-size=16777216"
    "memorysetup-profiler-editor-allocator-block-size=1048576"
    "memorysetup-temp-allocator-size-main=4194304"
    "memorysetup-job-temp-allocator-block-size=2097152"
    "memorysetup-job-temp-allocator-block-size-background=1048576"
    "memorysetup-job-temp-allocator-reduction-small-platforms=262144"
    "memorysetup-allocator-temp-initial-block-size-main=262144"
    "memorysetup-allocator-temp-initial-block-size-worker=262144"
    "memorysetup-temp-allocator-size-background-worker=32768"
    "memorysetup-temp-allocator-size-job-worker=262144"
    "memorysetup-temp-allocator-size-preload-manager=262144"
    "memorysetup-temp-allocator-size-nav-mesh-worker=65536"
    "memorysetup-temp-allocator-size-audio-worker=65536"
    "memorysetup-temp-allocator-size-cloud-worker=32768"
    "memorysetup-temp-allocator-size-gfx=262144"
Using native(wrapped) libdbus-1.so.3
Using native(wrapped) libX11.so.6
Using native(wrapped) libxcb.so.1
Using native(wrapped) libXau.so.6
Using native(wrapped) libXdmcp.so.6
Using native(wrapped) libXext.so.6
Using native(wrapped) libXcursor.so.1
Using native(wrapped) libXfixes.so.3
Using native(wrapped) libXrender.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
Using native(wrapped) libudev.so.1

Tested on

ptitSeb commented 7 months ago

Might need a BOX64_DYNAREC_STRONGMEM=1 (either on command line or box64rc) to avoid the freeze?

ricoazzurro commented 7 months ago

BOX64_DYNAREC_STRONGMEM=1 works! Played 20 mins and no freeze.

ptitSeb commented 7 months ago

Probably a good idea to add it in default box64rc then. Can you do a PR with that?

ricoazzurro commented 7 months ago

Still learning git. I don't know how long it takes me to finish the Pro Git book :)