Trine: Illegal instruction
Trying to run Trine x86_64 build from humble bundle I get:
Dynarec for ARM64, with extension: ASIMD AES CRC32 PMULL SHA1 SHA2 PageSize:4096 Running on Cortex-A53 Cortex-A72 with 6 Cores
Will use Hardware counter measured at 24.0 MHz emulating 3.0 GHz
Params database has 90 entries
Box64 with Dynarec v0.3.1 15842f34 built on Sep 21 2024 06:26:01
BOX64: Detected 48bits at least of address space
Counted 45 Env var
BOX64 LIB PATH: BOX64 BIN PATH: ./:bin/:/usr/local/bin/:/usr/bin/:/bin/:/usr/local/games/:/usr/games/
Looking for ./TrineUpdate4.64.run
Rename process to "TrineUpdate4.64.run"
Using emulated /lib/x86_64-linux-gnu/libglade-2.0.so.0
Using native(wrapped) libgtk-x11-2.0.so.0
Using native(wrapped) libgdk-x11-2.0.so.0
Using native(wrapped) libgobject-2.0.so.0
Using native(wrapped) libglib-2.0.so.0
Using native(wrapped) libgio-2.0.so.0
Using native(wrapped) libgmodule-2.0.so.0
Using native(wrapped) libgdk_pixbuf-2.0.so.0
Using native(wrapped) libpangocairo-1.0.so.0
Using native(wrapped) libpango-1.0.so.0
Using native(wrapped) libz.so.1
Using emulated /usr/lib/box64-x86_64-linux-gnu/libstdc++.so.6
Using emulated /usr/lib/box64-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
Using native(wrapped) libm.so.6
Using native(wrapped) libxml2.so.2
Using native(wrapped) libatk-1.0.so.0
19152|SIGILL @0x7fff0000d860 (???(0x7fff0000d860)) (x64pc=0x140080/"???", rsp=0xffff9236ebe8, stack=0xffff91b70000:0xffff92370000 own=(nil) fp=0x494fc8e0), for accessing 0x7fff0000d860 (code=1/prot=5), db=(nil)((nil):(nil)/(nil):(nil)/???:clean, hash:0/0) handler=(nil)
RSP-0x20:0x0000000049496fa0 RSP-0x18:0x0000000049519ee0 RSP-0x10:0x0000000000010080 RSP-0x08:0x00000000494fc8e0
RSP+0x00:0x00007fff000107c4 RSP+0x08:0x000000004951a670 RSP+0x10:0x0000ffff9236ec00 RSP+0x18:0x0000000000000000
RAX:0x0000000049533fe0 RCX:0x0000000049390012 RDX:0x0000000000000031 RBX:0x0000000000000000
RSP:0x0000ffff9236ebe8 RBP:0x00000000494fc8e0 RSI:0x0000ffff9236ec00 RDI:0x0000000000000020
R8:0x0000000000000000 R9:0x0000000049497bc0 R10:0x000000000000000f R11:0x0000000000000006
R12:0x000000000041b160 R13:0x0000000000006c79 R14:0x0000000000000000 R15:0x0000000000000000
ES:0x002b CS:0x0033 SS:0x002b DS:0x002b FS:0x0043 GS:0x0053 opcode=48 B8 00 00 00 00 16 00 (CC 53 43 50 68)
Illegal instruction
Please update your box64 to the latest version, you are using a very old one.
Upgraded but no change:
[BOX64] Box64 with Dynarec v0.3.5 e7b71cba built on Mar 30 2025 06:28:18
[BOX64] Dynarec for ARM64, with extension: ASIMD AES CRC32 PMULL SHA1 SHA2
[BOX64] Running on Cortex-A53 with 6 cores, pagesize: 4096
[BOX64] Will use hardware counter measured at 24.0 MHz emulating 3.0 GHz
[BOX64] Detected 48bits at least of address space
[BOX64] Counted 47 Env var
[BOX64] Library search path:
[BOX64] Binary search path: ./:bin/:/usr/local/bin/:/usr/bin/:/bin/:/usr/local/games/:/usr/games/
[BOX64] Looking for ./TrineUpdate4.64.run
[BOX64] Rename process to "TrineUpdate4.64.run"
[BOX64] Using emulated /lib/x86_64-linux-gnu/libglade-2.0.so.0
[BOX64] Using native(wrapped) libgtk-x11-2.0.so.0
[BOX64] Using native(wrapped) libgdk-x11-2.0.so.0
[BOX64] Using native(wrapped) libgobject-2.0.so.0
[BOX64] Using native(wrapped) libglib-2.0.so.0
[BOX64] Using native(wrapped) libgio-2.0.so.0
[BOX64] Using native(wrapped) libgmodule-2.0.so.0
[BOX64] Using native(wrapped) libgdk_pixbuf-2.0.so.0
[BOX64] Using native(wrapped) libpangocairo-1.0.so.0
[BOX64] Using native(wrapped) libpango-1.0.so.0
[BOX64] Using native(wrapped) libz.so.1
[BOX64] Using emulated /usr/lib/box64-x86_64-linux-gnu/libstdc++.so.6
[BOX64] Using emulated /usr/lib/box64-x86_64-linux-gnu/libgcc_s.so.1
[BOX64] Using native(wrapped) libpthread.so.0
[BOX64] Using native(wrapped) libc.so.6
[BOX64] Using native(wrapped) ld-linux-x86-64.so.2
[BOX64] Using native(wrapped) libdl.so.2
[BOX64] Using native(wrapped) libutil.so.1
[BOX64] Using native(wrapped) librt.so.1
[BOX64] Using native(wrapped) libbsd.so.0
[BOX64] Using native(wrapped) libm.so.6
[BOX64] Using native(wrapped) libxml2.so.2
[BOX64] Using native(wrapped) libatk-1.0.so.0
[BOX64] 36371|SIGILL @0x7fff0000d860 (???(0x7fff0000d860)) (x64pc=0x30130080/"???", rsp=0xffff9b238b58, stack=0xffff9aa3a000:0xffff9b23a000 own=(nil) fp=0x5d37f0e0), for accessing 0x7fff0000d860 (code=1/prot=5), db=(nil)((nil):(nil)/(nil):(nil)/???:clean, hash:0/0) handler=(nil)
RSP-0x20:0x000000005d3197a0 RSP-0x18:0x000000005d39ccd0 RSP-0x10:0x0000000030000080 RSP-0x08:0x000000005d37f0e0
RSP+0x00:0x00007fff000107c4 RSP+0x08:0x000000005d39dc50 RSP+0x10:0x0000ffff9b238b70 RSP+0x18:0x0000000000000000
RAX:0x000000005d3bf3b0 RCX:0x000000005d20f018 RDX:0x0000000000000031 RBX:0x0000000000000000
RSP:0x0000ffff9b238b58 RBP:0x000000005d37f0e0 RSI:0x0000ffff9b238b70 RDI:0x0000000000000020
R8:0x0000000000000000 R9:0x000000005d31a3c0 R10:0x000000005d24d090 R11:0x000000005d24d3f0
R12:0x000000000041b160 R13:0x0000000000006c79 R14:0x0000000000000000 R15:0x0000000000000000
ES:0x002b CS:0x0033 SS:0x002b DS:0x002b FS:0x0043 GS:0x0053 opcode=48 B8 00 00 00 00 16 00 (CC 53 43 14 CE)
Illegal instruction
This seems to be a function wrapping missing some callback handling. Can you run with BOX64_ROLLING_LOG=1 to see the last called functions?
[BOX64] Box64 with Dynarec v0.3.5 e7b71cba built on Mar 30 2025 06:28:18
[BOX64] Dynarec for ARM64, with extension: ASIMD AES CRC32 PMULL SHA1 SHA2
[BOX64] Running on Cortex-A53 with 6 cores, pagesize: 4096
[BOX64] Will use hardware counter measured at 24.0 MHz emulating 3.0 GHz
[BOX64] Detected 48bits at least of address space
[BOX64] Counted 46 Env var
[BOX64] Library search path:
[BOX64] Binary search path: ./:bin/:/usr/local/bin/:/usr/bin/:/bin/:/usr/local/games/:/usr/games/
[BOX64] Looking for ./TrineUpdate4.64.run
[BOX64] BOX64ENV: Variables overridden via env and/or RC file:
BOX64_ROLLING_LOG=1
[BOX64] Rename process to "TrineUpdate4.64.run"
[BOX64] Using emulated /lib/x86_64-linux-gnu/libglade-2.0.so.0
[BOX64] Using native(wrapped) libgtk-x11-2.0.so.0
[BOX64] Using native(wrapped) libgdk-x11-2.0.so.0
[BOX64] Using native(wrapped) libgobject-2.0.so.0
[BOX64] Using native(wrapped) libglib-2.0.so.0
[BOX64] Using native(wrapped) libgio-2.0.so.0
[BOX64] Using native(wrapped) libgmodule-2.0.so.0
[BOX64] Using native(wrapped) libgdk_pixbuf-2.0.so.0
[BOX64] Using native(wrapped) libpangocairo-1.0.so.0
[BOX64] Using native(wrapped) libpango-1.0.so.0
[BOX64] Using native(wrapped) libz.so.1
[BOX64] Using emulated /usr/lib/box64-x86_64-linux-gnu/libstdc++.so.6
[BOX64] Using emulated /usr/lib/box64-x86_64-linux-gnu/libgcc_s.so.1
[BOX64] Using native(wrapped) libpthread.so.0
[BOX64] Using native(wrapped) libc.so.6
[BOX64] Using native(wrapped) ld-linux-x86-64.so.2
[BOX64] Using native(wrapped) libdl.so.2
[BOX64] Using native(wrapped) libutil.so.1
[BOX64] Using native(wrapped) librt.so.1
[BOX64] Using native(wrapped) libbsd.so.0
[BOX64] Using native(wrapped) libm.so.6
[BOX64] Using native(wrapped) libxml2.so.2
[BOX64] Using native(wrapped) libatk-1.0.so.0
[BOX64] Last calls
[BOX64] 38315|0x30000080: Calling my_wrap_xmlMalloc(0x2F0, 0xFFFF875C8B90, 0x41B160, ...) => return 0x55BAE980
[BOX64] 38315|0x30000080: Calling my_wrap_xmlMalloc(0x40, 0xFFFF875C8B90, 0x41B160, ...) => return 0x55BAEC80
[BOX64] 38315|0x30000080: Calling my_wrap_xmlMalloc(0x1000, 0xFFFF875C8B90, 0x41B160, ...) => return 0x55BC1160
[BOX64] 38315|0x30000080: Calling my_wrap_xmlMalloc(0x100, 0xFFFF875C8B90, 0x41B160, ...) => return 0x55BAECD0
[BOX64] 38315|0x30000080: Calling my_wrap_xmlMalloc(0x28, 0xFFFF875C8B90, 0x41B160, ...) => return 0x55BAEDE0
[BOX64] 38315|0x30000080: Calling my_wrap_xmlMalloc(0x50, 0xFFFF875C8B90, 0x41B160, ...) => return 0x55BB5750
[BOX64] 38315|0x30000080: Calling my_wrap_xmlMalloc(0x50, 0xFFFF875C8B90, 0x41B160, ...) => return 0x55BB57B0
[BOX64] 38315|0x30000080: Calling my_wrap_xmlMalloc(0x28, 0xFFFF875C8B90, 0x41B160, ...) => return 0x55BB5810
[BOX64] 38315|0x30000080: Calling my_wrap_xmlMalloc(0x40, 0xFFFF875C8B90, 0x41B160, ...) => return 0x55BB5840
[BOX64] 38315|0x30000080: Calling my_wrap_xmlMalloc(0x40, 0xFFFF875C8B90, 0x41B160, ...) => return 0x55BB5890
[BOX64] 38315|0x30000080: Calling my_wrap_xmlFree(0x55BC2170, 0xFFFF875C8B90, 0x41B160, ...) => return 0x55BB5890
[BOX64] 38315|0x30000080: Calling my_wrap_xmlMalloc(0x68, 0xFFFF875C8B90, 0x41B160, ...) => return 0x55BB58E0
[BOX64] 38315|0x30000080: Calling my_wrap_xmlFree(0x55BAECD0, 0xFFFF875C8B90, 0x41B160, ...) => return 0x55BB58E0
[BOX64] 38315|0x30000080: Calling my_wrap_xmlMalloc(0x418, 0xFFFF875C8B90, 0x41B160, ...) => return 0x55BB1290
[BOX64] 38315|0x30000080: Calling my_wrap_xmlMalloc(0x20, 0xFFFF875C8B90, 0x41B160, ...) => return 0x55BB5950
[BOX64] 38315|0x30000080: Calling my_wrap_xmlMalloc(0x38, 0xFFFF875C8B90, 0x41B160, ...) => return 0x55BB5710
[BOX64] 38315|SIGILL @0x7fff0000d860 (???(0x7fff0000d860)) (x64pc=0x30130093/"???", rsp=0xffff875c8b78, stack=0xffff86dca000:0xffff875ca000 own=(nil) fp=0x55b770e0), for accessing 0x7fff0000d860 (code=1/prot=5), db=(nil)((nil):(nil)/(nil):(nil)/???:clean, hash:0/0) handler=(nil)
RSP-0x20:0x0000000055b0e190 RSP-0x18:0x0000000055b948d0 RSP-0x10:0x0000000030000080 RSP-0x08:0x0000000055b770e0
RSP+0x00:0x00007fff000107c4 RSP+0x08:0x0000000055b95850 RSP+0x10:0x0000ffff875c8b90 RSP+0x18:0x0000000000000000
RAX:0x0000000055bb5950 RCX:0x0000000000006c79 RDX:0x000000000041b160 RBX:0x0000000000000000
RSP:0x0000ffff875c8b78 RBP:0x0000000055b770e0 RSI:0x0000ffff875c8b90 RDI:0x0000000000000020
R8:0x0000000000000000 R9:0x0000000055b0edb0 R10:0x0000000055a44e80 R11:0x0000000055a3aee0
R12:0x000000000041b160 R13:0x0000000000006c79 R14:0x0000000000000000 R15:0x0000000000000000
ES:0x002b CS:0x0033 SS:0x002b DS:0x002b FS:0x0043 GS:0x0053 opcode=48 B8 00 00 00 00 16 00 (C3 00 00 59 8E)
Illegal instruction
maybe not super helpful seems to be many calls to the same wrapper...
Yeah, not super usefull. You can use BOX64_ROLLING_LOG=128 for a bigger trace, and also BOX64_SHOWBT=1 to have the backtrace at the segfault, that might help.