ptitSeb / box86-compatibility-list

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

Unreal World x86_64 linux (survivalist roguelike) #219

Open clort81 opened 1 year ago

clort81 commented 1 year ago

Result:

Opens a window, then crashes after a bit

~/LinuxGames/URW/urw-3.63-x86_64-linux-gnu$ box64 ./urw3-bin 
Disable the use of pulseaudio libs
Dynarec for ARM64, with extension: ASIMD AES CRC32 PMULL PageSize:4096 Cores:6
Params database has 11 entries
Box64 with Dynarec v0.2.1 dff14a86 built on Dec  9 2022 23:38:45
Using default BOX64_LD_LIBRARY_PATH: ./:lib/:lib64/:x86_64/:bin64/:libs64/
Using default BOX64_PATH: ./:bin/
Counted 64 Env var
Looking for ./urw3-bin
Rename process to "urw3-bin"
Using native(wrapped) libSDL2-2.0.so.0
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) librt.so.1
Using native(wrapped) libm.so.6
Using native(wrapped) libSDL2_mixer-2.0.so.0
Using native(wrapped) libSDL2_image-2.0.so.0
Using native(wrapped) libSDL2_net-2.0.so.0
Using emulated /lib/x86_64-linux-gnu/libstdc++.so.6
Using emulated /lib/x86_64-linux-gnu/libgcc_s.so.1
146994|SIGILL @0x30160 (???(0x30160)) (x64pc=0x40353/???:"???", rsp=0xffff87efe9e8, stack=0xffff87700000:0xffff87f00000 own=(nil) fp=0x20), for accessing 0x30160 (code=1/prot=87), db=(nil)((nil):(nil)/(nil):(nil)/???:clean, hash:0/0) handler=(nil)
RSP-0x20:0x0000000044265650 RSP-0x18:0x0000000000000031 RSP-0x10:0x0000000044265650 RSP-0x08:0x0000000000000045
RSP+0x00:0x00000000004e18e2 RSP+0x08:0x000000004458ec10 RSP+0x10:0x00000000004063d2 RSP+0x18:0x00000f0016161804 opcode=CC 53 43 20 F1 A6 34 00 (C3 00 00 00 00)
Illegal instruction

Looks a bit different with today's 2023-02-27 build:

/LinuxGames/URW/urw-3.63-x86_64-linux-gnu$ box86 ./urw3-bin 
Box86 with Dynarec v0.2.3  built on Nov  9 2021 12:48:21
Error: reading elf header of ./urw3-bin, try to launch using box64 instead
Disable the use of pulseaudio libs
Dynarec for ARM64, with extension: ASIMD AES CRC32 PMULL PageSize:4096 Cores:6
Params database has 15 entries
Box64 with Dynarec v0.2.1 8d9c6b2d built on Feb 27 2023 10:57:29
Using default BOX64_LD_LIBRARY_PATH: ./:lib/:lib64/:x86_64/:bin64/:libs64/
Using default BOX64_PATH: ./:bin/
Counted 64 Env var
Looking for ./urw3-bin
Rename process to "urw3-bin"
Using native(wrapped) libSDL2-2.0.so.0
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) libm.so.6
Using native(wrapped) libSDL2_mixer-2.0.so.0
Using native(wrapped) libSDL2_image-2.0.so.0
Using native(wrapped) libSDL2_net-2.0.so.0
Using emulated /lib/x86_64-linux-gnu/libstdc++.so.6
Using emulated /lib/x86_64-linux-gnu/libgcc_s.so.1
150063|SIGILL @0x30164 (???(0x30164)) (x64pc=0x40353/???:"???", rsp=0x101ffe9e8, stack=0x101800000:0x102000000 own=(nil) fp=0x20), for accessing 0x30164 (code=1/prot=87), db=(nil)((nil):(nil)/(nil):(nil)/???:clean, hash:0/0) handler=(nil)
RSP-0x20:0x00000000550d7b90 RSP-0x18:0x0000000000000031 RSP-0x10:0x00000000550d7b90 RSP-0x08:0x0000000000000045
RSP+0x00:0x00000000004e18e2 RSP+0x08:0x0000000055411640 RSP+0x10:0x00000000004063d2 RSP+0x18:0x00000f0016161804
RAX:0x0000000055fecad0 RCX:0x0015120f001a1613 RDX:0x0000000000000001 RBX:0x0000000055411640 
RSP:0x0000000101ffe9e8 RBP:0x0000000000000020 RSI:0x0000000055fecad0 RDI:0x0000000055ffd010 
 R8:0x0000000000000001  R9:0x000000000000001a R10:0x00000000ffffc5ac R11:0x000000000000001a 
R12:0x0000000000000000 R13:0x0000000000000000 R14:0x0000000000000000 R15:0x0000000000000000  opcode=14 A6 34 00 00 00 00 90 (C3 00 00 00 00)
Illegal instruction

With export BOD64_DYNAREC=0 i get same problem. With dynarec off and BOX64_JITGDB=1 i get

Attaching to process 150302
[New LWP 150303]
[New LWP 150304]
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/aarch64-linux-gnu/libthread_db.so.1".
0x0000ffff94353b60 in __GI___clock_nanosleep (clock_id=<optimized out>, clock_id@entry=0, flags=flags@entry=0, 
    req=req@entry=0xffffcd0b5e58, rem=rem@entry=0x0) at ../sysdeps/unix/sysv/linux/clock_nanosleep.c:48
48      ../sysdeps/unix/sysv/linux/clock_nanosleep.c: No such file or directory.
(gdb) bt
#0  0x0000ffff94353b60 in __GI___clock_nanosleep (clock_id=<optimized out>, 
    clock_id@entry=0, flags=flags@entry=0, req=req@entry=0xffffcd0b5e58, rem=rem@entry=0x0)
    at ../sysdeps/unix/sysv/linux/clock_nanosleep.c:48
#1  0x0000ffff94358a9c in __GI___nanosleep (req=req@entry=0xffffcd0b5e58, rem=rem@entry=0x0)
    at ../sysdeps/unix/sysv/linux/nanosleep.c:25
#2  0x0000ffff94381574 in usleep (useconds=useconds@entry=1000) at ../sysdeps/posix/usleep.c:31
#3  0x00000000349c6708 in my_box64signalhandler (sig=4, info=0xffffcd0b63e0, ucntx=0xffffcd0b6460)
    at /pr/Emulators/box64/src/libtools/signals.c:1050
#4  0x0000ffff944c3790 in <signal handler called> ()
#5  0x0000000000030164 in  ()
#6  0x000000006c114990 in  ()

Tested on

khadas vim3-pro box64 git build 2023-02-27 with -DODROIDN2=1

Status

None reported

Current behavior: SIGILL

Screenshots

OpenGL

No. seems to be using SDL2

Additional Information

environment: BOX64_NOPULSE=1

file ./urw3-bin 
./urw3-bin: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, for GNU/Linux 2.6.24, BuildID[sha1]=587eb206152eb49ed73fe222009242aa3136ed92, not stripped

In 32bit chroot it looks similar, opens a window but then exits WITHOUT SIGILL error.

I tried disabling sound and music and setting old hardware mode in the urw_ini.txt [OLD_HARDWARE_MODE:YES]

Since we have symbols i can get disassembly with labels, which is neat! But i don't know what to do with that. x86_64-linux-gnu-objdump -C -S -D urw3-bin > urw3-bin.asm

If you've gotten this far, the windows version of 3.63 seems to work but I need to find time to play it a bit before making my report.

Cheers! Heads up, shoulders straight.

ptitSeb commented 1 year ago

You can probably open a ticket on the main box64 for this one. I guess the issue is an incorrect wrapping of a callback function. If you can run with BOX64_ROLLING_LOG=1 it should give the last function call before the SIGILL and might help finding the issue.

clort81 commented 1 year ago

I don't see what file the rolling log creates. BUT! I used the spirits of my ancestors to ls -altr and i saw an empty file SKILLSBG.BMP was being created in the game directory. Then i looked at the working wine version directory and saw: 1440054 Feb 26 22:22 SKILLSBG.BMP So copied that into the /LinuxGames/URW/urw-3.63-x86_64-linux-gnu dir and reran, and got the same error And i saw a 0-byte SKILLSBG.BMP was created... So i copied over SKILLSBG.BMP and RITUALSBG.BMP, then made then immutable with sudo chattr+i Reran the game and..... urw_linux_64 It runs! The game may be download from the author's homepage here: http://www.unrealworld.fi/urw_linuxmirror.html But buy it on steam if you can! https://store.steampowered.com/app/351700/UnReal_World You'll just need these two .bmp files and make them immutable: SKILLS_AND_RITUALS_BMPs.zip

ptitSeb commented 1 year ago

The bmp files are probably created with SDL2-image, I'll check myself later thanks for the links.

Cebion commented 6 months ago

I don't see what file the rolling log creates. BUT! I used the spirits of my ancestors to ls -altr and i saw an empty file SKILLSBG.BMP was being created in the game directory. Then i looked at the working wine version directory and saw: 1440054 Feb 26 22:22 SKILLSBG.BMP So copied that into the /LinuxGames/URW/urw-3.63-x86_64-linux-gnu dir and reran, and got the same error And i saw a 0-byte SKILLSBG.BMP was created... So i copied over SKILLSBG.BMP and RITUALSBG.BMP, then made then immutable with sudo chattr+i Reran the game and..... ) It runs! The game may be download from the author's homepage here: http://www.unrealworld.fi/urw_linuxmirror.html But buy it on steam if you can! https://store.steampowered.com/app/351700/UnReal_World You'll just need these two .bmp files and make them immutable: SKILLS_AND_RITUALS_BMPs.zip

Thank you, unfortunetaly my RK3566 SBC runs on exfat. So chattr+i is out of the question. Bummer