Opened 4 years ago

Closed 3 years ago

#11555 closed defect (fixed)

BACKENDS: NDS - Failure to load most plugins

Reported by: ccawley2011 Owned by: ccawley2011
Priority: normal Component: Port: NDS
Version: Keywords:
Cc: ccawley2011 Game:

Description

When building for Nintendo DS with dynamic plugins enabled, the majority of plugins fail to load with "elfloader: R_ARM_CALL/R_ARM_JUMP24: Out of range relocation ..." errors, as shown in the screenshot.

Attachments (1)

scummvm-ds-plugins-error.png (13.5 KB ) - added by ccawley2011 4 years ago.

Download all attachments as: .zip

Change History (12)

by ccawley2011, 4 years ago

comment:1 by raziel-, 4 years ago

Summary: DS: Failure to load most pluginsBACKENDS: NDS - Failure to load most plugins

When you say "most", which plugins do actually load?

comment:2 by bgK, 4 years ago

How do you reach this error? I tried on a DS, ScummVM crashes when trying to add a game before reaching that point. I tried on a 3DS using nds-bootstrap, ScummVM crashes on startup.

comment:4 by bgK, 4 years ago

Do you have more hints? The version built from this branch using the latest versions from devkitpro and these configure flags ../configure --disable-all-engines --enable-engine=scumm --host=ds --enable-plugins --default-dynamic --disable-debug:

  • Fails to start on a DS (white screen)
  • Crashes when adding a game on a 3DS using nds-bootstrap (data abort, PC at 0xFFC)
  • Generates an invalid instruction error in no$gba when adding a game
  • Infinitely loops in desmume when adding a game
Last edited 4 years ago by bgK (previous) (diff)

comment:5 by ccawley2011, 4 years ago

I'm currently building on Windows with the following packages installed:

I usually compile ScummVM with the following commands:

$ source $DEVKITPRO/ndsvars.sh
$ ./configure --host=ds --enable-plugins --default-dynamic --enable-all-engines --disable-png --disable-freetype2 --enable-debug
$ make -j6

The resulting scummvm.nds file works on a DSi with TWiLight Menu++ v15.3.0, as well as with the latest DeSmuME builds from AppVeyor.

Last edited 4 years ago by ccawley2011 (previous) (diff)

comment:6 by sev-, 4 years ago

Priority: blockernormal

comment:7 by sev-, 4 years ago

Owner: set to sev-
Resolution: outdated
Status: newclosed

The port is dead.

comment:8 by bgK, 4 years ago

Owner: changed from sev- to bgK
Resolution: outdatedfixed

Thanks, fixed in 55db121.

ScummVM still crashes for me when starting games, but at least the plugins load.

comment:9 by ccawley2011, 4 years ago

Thanks.

Unfortunately, only the games that worked before that change still work. The ones that didn't can now be added to the launcher but throw a Guru Meditation Error when run.

For reference, the following games work for me with dynamic plugins:

  • Beneath a Steel Sky
  • Eye of the Beholder
  • Eye of the Beholder II
  • Lure of the Temptress
  • Testbed

and the following games crash on startup:

  • Full Throttle
  • Future Wars (demo)
  • Operation Stealth (demo)
  • Simon the Sorcerer (demo)
  • Space Quest I (SCI)
  • Space Quest II
  • Teenagent

In addition, Flight of the Amazon Queen used to work with dynamic plugins, but now crashes during the intro.

Most of the games I tried work fine when using static linking.

comment:10 by ccawley2011, 4 years ago

Resolution: fixed
Status: closednew

comment:11 by ccawley2011, 3 years ago

Owner: changed from bgK to ccawley2011
Resolution: fixed
Status: newclosed

From what I can tell, the issue seems to be with mixing ARM and THUMB code in plugins. The file-specific optimizations and ARM assembler code has been disabled in the ds-rewrite branch which seems to have fixed most of the games I previously mentioned.

Note: See TracTickets for help on using tickets.