[GNU/Linux aarch64] ["toon" engine] Toonstruck crashes on "Start new game"
|Reported by:||vanfanel||Owned by:||antoniou79|
|Version:||Keywords:||segmentation fault, new game|
I usually build an aarch64 version of Scummvm (not so exotic, since ARM is going aarch64 anyway).
Thing is, Toonstruck works well on x86_64 but not on aarch64, where it crashes when I click on the "Start a New game" option of the menu.
This is what gdb has to say:
For help, type "help". Type "apropos word" to search for commands related to "word"... Reading symbols from ./scummvm...done. (gdb) r Starting program: /home/pi/scummvm/scummvm [Thread debugging using libthread_db enabled] Using host libthread_db library "/lib/aarch64-linux-gnu/libthread_db.so.1". [New Thread 0x7fbdcd51c0 (LWP 5531)] [New Thread 0x7fbd4d41c0 (LWP 5532)] [New Thread 0x7fbccd31c0 (LWP 5533)] WARNING: Could not find theme 'scummremastered' falling back to builtin! User picked target 'toon' (gameid 'toon')... Looking for a plugin supporting this gameid... Toonstruck Starting 'Toonstruck' Thread 1 "scummvm" received signal SIGSEGV, Segmentation fault. __memcpy_generic () at ../sysdeps/aarch64/multiarch/../memcpy.S:170 170 ../sysdeps/aarch64/multiarch/../memcpy.S: No such file or directory. (gdb) (gdb) bt #0 __memcpy_generic () at ../sysdeps/aarch64/multiarch/../memcpy.S:170 #1 0x0000007fbdef88b8 in Toon::ToonEngine::setPaletteEntries (this=0x5555cf4590, palette=0x0, offset=1, num=128) at engines/toon/toon.cpp:1387 #2 0x0000007fbdee0264 in Toon::Picture::setupPalette (this=0x5556983d00) at engines/toon/picture.cpp:155 #3 0x0000007fbdef9544 in Toon::ToonEngine::loadScene (this=0x5555cf4590, SceneId=4, forGameLoad=false) at engines/toon/toon.cpp:1538 #4 0x0000007fbdf00958 in Toon::ToonEngine::newGame (this=0x5555cf4590) at engines/toon/toon.cpp:3198 #5 0x0000007fbdef7580 in Toon::ToonEngine::run (this=0x5555cf4590) at engines/toon/toon.cpp:1143 #6 0x00000055556be9e0 in runGame (plugin=0x5555b312f0, system=..., edebuglevels=...) at base/main.cpp:280 #7 0x00000055556bf768 in scummvm_main (argc=1, argv=0x7ffffff5c8) at base/main.cpp:562 #8 0x00000055556bc960 in main (argc=1, argv=0x7ffffff5c8) at backends/platform/sdl/posix/posix-main.cpp:45
So, it seems that
is receiving a palette pointing to 0x0, and this is a problem on aarch64 but not in x86_64, for some reason.
My guess is that game logic should not pass a 0x0 pointer to this function, but I am just guessing here.