Opened 3 years ago
Closed 2 years ago
#11555 closed defect (fixed)
BACKENDS: NDS - Failure to load most plugins
|Reported by:||ccawley2011||Owned by:||ccawley2011|
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.
Change History (12)
by , 3 years ago
comment:1 by , 3 years ago
|Summary:||DS: Failure to load most plugins → BACKENDS: NDS - Failure to load most plugins|
comment:2 by , 3 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:3 by , 3 years ago
I'm using this branch: https://github.com/ccawley2011/scummvm/tree/ds-rewrite
comment:4 by , 3 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
comment:5 by , 3 years ago
I'm currently building on Windows with the following packages installed:
- default-arm7 0.7.4-7
- devkitARM r55-1
- devkitarm-crtls 1.1.0-1
- devkitarm-rules 1.2.1-2
- dswifi 0.4.2-1
- libfat-nds 1.1.5-1
- libnds 1.8.1-2
- maxmod-nds 1.0.14-1
- nds-libmad 0.15.1b-1 (https://github.com/devkitPro/pacman-packages/pull/198)
- nds-zlib 1.2.11-1
- ndstool 2.1.2-1
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 the latest DeSmuME builds from AppVeyor.
comment:6 by , 3 years ago
|Priority:||blocker → normal|
comment:7 by , 3 years ago
|Status:||new → closed|
The port is dead.
comment:8 by , 3 years ago
|Resolution:||outdated → fixed|
Thanks, fixed in 55db121.
ScummVM still crashes for me when starting games, but at least the plugins load.
comment:9 by , 3 years ago
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
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
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 , 3 years ago
|Status:||closed → new|
comment:11 by , 2 years ago
|Status:||new → closed|
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.
When you say "most", which plugins do actually load?