Opened 4 years ago
Closed 4 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)
Change History (12)
by , 4 years ago
Attachment: | scummvm-ds-plugins-error.png added |
---|
comment:1 by , 4 years ago
Summary: | DS: Failure to load most plugins → BACKENDS: NDS - Failure to load most plugins |
---|
comment:2 by , 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:3 by , 4 years ago
I'm using this branch: https://github.com/ccawley2011/scummvm/tree/ds-rewrite
comment:4 by , 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
comment:5 by , 4 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 with the latest DeSmuME builds from AppVeyor.
comment:6 by , 4 years ago
Priority: | blocker → normal |
---|
comment:7 by , 4 years ago
Owner: | set to |
---|---|
Resolution: | → outdated |
Status: | new → closed |
The port is dead.
comment:8 by , 4 years ago
Owner: | changed from | to
---|---|
Resolution: | outdated → fixed |
Thanks, fixed in 55db121.
ScummVM still crashes for me when starting games, but at least the plugins load.
comment:9 by , 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 , 4 years ago
Resolution: | fixed |
---|---|
Status: | closed → new |
comment:11 by , 4 years ago
Owner: | changed from | to
---|---|
Resolution: | → fixed |
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?