[Scummvm-tracker] [ScummVM :: Bugs] #11319: [GNU/Linux aarch64] ["toon" engine] Toonstruck crashes on "Start new game"

ScummVM :: Bugs trac at scummvm.org
Sun Jan 19 21:28:19 UTC 2020


#11319: [GNU/Linux aarch64] ["toon" engine] Toonstruck crashes on "Start new game"
---------------------+--------------------------
Reporter:  vanfanel  |      Owner:  (none)
    Type:  defect    |     Status:  new
Priority:  normal    |  Component:  Engine: Toon
Keywords:            |       Game:  Toonstruck
---------------------+--------------------------
 Hi there,

 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

 {{{
 Toon::ToonEngine::setPaletteEntries
 }}}

 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.
-- 
Ticket URL: <https://bugs.scummvm.org/ticket/11319>
ScummVM :: Bugs <https://bugs.scummvm.org>
ScummVM


More information about the Scummvm-tracker mailing list